Skip to content

Commit

Permalink
k8s minor bug fixes (ansible#56168)
Browse files Browse the repository at this point in the history
Ensure `wait_condition`s with `Status: Unknown` actually
complete

Return k8s object after wait rather than k8s object before
wait when object is patched.
  • Loading branch information
willthames authored and resmo committed May 22, 2019
1 parent 3e8ca02 commit 4065692
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 2 deletions.
3 changes: 3 additions & 0 deletions changelogs/fragments/k8s-raw-minor-fixes.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
bugfixes:
- k8s - ensure wait_condition works when Status is Unknown
- k8s - ensure k8s returns result of a resource update as it is at the end of the wait period
6 changes: 5 additions & 1 deletion lib/ansible/module_utils/k8s/raw.py
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,6 @@ def perform_action(self, resource, definition):
if wait:
success, result['result'], result['duration'] = self.wait(resource, definition, wait_timeout, condition=wait_condition)
match, diffs = self.diff_objects(existing.to_dict(), result['result'])
result['result'] = k8s_obj
result['changed'] = not match
result['method'] = 'patch'
result['diff'] = diffs
Expand Down Expand Up @@ -437,6 +436,11 @@ def _custom_condition(resource):
# There should never be more than one condition of a specific type
match = match[0]
if match.status == 'Unknown':
if match.status == condition['status']:
if 'reason' not in condition:
return True
if condition['reason']:
return match.reason == condition['reason']
return False
status = True if match.status == 'True' else False
if status == condition['status']:
Expand Down
2 changes: 1 addition & 1 deletion test/integration/targets/k8s/tasks/waiter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@
- condition.reason == "DeploymentPaused"
- condition.status == "Unknown"
vars:
condition: '{{ pause_deploy.result.status.conditions | selectattr("type", "Progressing")).0 }}'
condition: '{{ pause_deploy.result.status.conditions | json_query("[?type==`Progressing`]") | first }}'

- name: add a service based on the deployment
k8s:
Expand Down

0 comments on commit 4065692

Please sign in to comment.