k8s minor bug fixes (#56168)

Ensure `wait_condition`s with `Status: Unknown` actually
complete

Return k8s object after wait rather than k8s object before
wait when object is patched.
pull/56769/head
Will Thames 6 years ago committed by René Moser
parent 3e8ca0285f
commit 4065692e13

@ -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

@ -347,7 +347,6 @@ class KubernetesRawModule(KubernetesAnsibleModule):
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
@ -437,6 +436,11 @@ class KubernetesRawModule(KubernetesAnsibleModule):
# 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']:

@ -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:

Loading…
Cancel
Save