- name: ensure that there are actually some nodes k8s_info: kind: Node register: nodes - block: - set_fact: delete_namespace: delete - name: ensure namespace exists k8s: definition: apiVersion: v1 kind: Namespace metadata: name: "{{ delete_namespace }}" - name: add a daemonset k8s: definition: apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: delete-daemonset namespace: "{{ delete_namespace }}" spec: selector: matchLabels: app: "{{ k8s_pod_name }}" template: "{{ k8s_pod_template }}" wait: yes wait_timeout: 180 vars: k8s_pod_name: delete-ds k8s_pod_image: gcr.io/kuar-demo/kuard-amd64:1 register: ds - name: check that daemonset wait worked assert: that: - ds.result.status.currentNumberScheduled == ds.result.status.desiredNumberScheduled - name: check if pods exist k8s_info: namespace: "{{ delete_namespace }}" kind: Pod label_selectors: - "app={{ k8s_pod_name }}" vars: k8s_pod_name: delete-ds register: pods_create - name: assert that there are pods assert: that: - pods_create.resources - name: remove the daemonset k8s: kind: DaemonSet name: delete-daemonset namespace: "{{ delete_namespace }}" state: absent wait: yes - name: show status of pods k8s_info: namespace: "{{ delete_namespace }}" kind: Pod label_selectors: - "app={{ k8s_pod_name }}" vars: k8s_pod_name: delete-ds - name: wait for background deletion pause: seconds: 30 - name: check if pods still exist k8s_info: namespace: "{{ delete_namespace }}" kind: Pod label_selectors: - "app={{ k8s_pod_name }}" vars: k8s_pod_name: delete-ds register: pods_delete - name: assert that deleting the daemonset deleted the pods assert: that: - not pods_delete.resources always: - name: remove namespace k8s: kind: Namespace name: "{{ delete_namespace }}" state: absent when: (nodes.resources | length) > 0