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.
This commit is contained in:
parent
3e8ca0285f
commit
4065692e13
3 changed files with 9 additions and 2 deletions
3
changelogs/fragments/k8s-raw-minor-fixes.yml
Normal file
3
changelogs/fragments/k8s-raw-minor-fixes.yml
Normal file
|
@ -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…
Reference in a new issue