mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-05-07 21:42:38 +00:00
k8s ability to wait on arbitrary property (#105)
* missing implementation of jsonpath library
* not tested
* sanity
* save
* updates
* Update args_common.py
* lint validation
* fix
* Update k8s.py
* attribute should match for all
* select wait
* Revert "select wait"
This reverts commit a20a1f6f01.
* sanity
* Update molecule/default/tasks/waiter.yml
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
* Update jsonpath_extractor.py
* Update k8s_wait_options.py
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
This commit is contained in:
@@ -364,6 +364,93 @@
|
||||
that:
|
||||
- short_wait_remove_pod is failed
|
||||
|
||||
- name: add a simple crashing pod and wait until container is running
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: pod-crash-0
|
||||
namespace: "{{ wait_namespace }}"
|
||||
spec:
|
||||
containers:
|
||||
- name: crashing-container
|
||||
image: busybox
|
||||
command: ['/dummy/dummy-shell', '-c', 'sleep 2000']
|
||||
wait: yes
|
||||
wait_timeout: 10
|
||||
wait_property:
|
||||
property: status.containerStatuses[*].state.running
|
||||
ignore_errors: true
|
||||
register: crash_pod
|
||||
|
||||
- name: assert that task failed
|
||||
assert:
|
||||
that:
|
||||
- crash_pod is failed
|
||||
- crash_pod is changed
|
||||
- '"Resource creation timed out" in crash_pod.msg'
|
||||
|
||||
- name: add a valid pod and wait until container is running
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: pod-valid-0
|
||||
namespace: "{{ wait_namespace }}"
|
||||
spec:
|
||||
containers:
|
||||
- name: crashing-container
|
||||
image: busybox
|
||||
command: ['/bin/sh', '-c', 'sleep 10000']
|
||||
wait: yes
|
||||
wait_timeout: 10
|
||||
wait_property:
|
||||
property: status.containerStatuses[*].state.running
|
||||
ignore_errors: true
|
||||
register: valid_pod
|
||||
|
||||
- name: assert that task failed
|
||||
assert:
|
||||
that:
|
||||
- valid_pod is successful
|
||||
- valid_pod.changed
|
||||
- valid_pod.result.status.containerStatuses[0].state.running is defined
|
||||
|
||||
- name: create pod (waiting for container.ready set to false)
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: redis-pod
|
||||
namespace: "{{ wait_namespace }}"
|
||||
spec:
|
||||
containers:
|
||||
- name: redis-container
|
||||
image: redis
|
||||
volumeMounts:
|
||||
- name: test
|
||||
mountPath: "/etc/test"
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: test
|
||||
configMap:
|
||||
name: redis-config
|
||||
wait: yes
|
||||
wait_timeout: 10
|
||||
wait_property:
|
||||
property: status.containerStatuses[0].ready
|
||||
value: "false"
|
||||
register: wait_boolean
|
||||
|
||||
- name: assert that pod was created but not running
|
||||
assert:
|
||||
that:
|
||||
- wait_boolean.changed
|
||||
- wait_boolean.result.status.phase == 'Pending'
|
||||
|
||||
always:
|
||||
- name: Remove namespace
|
||||
k8s:
|
||||
|
||||
Reference in New Issue
Block a user