--- - vars: exec_namespace: k8s-exec pod: sleep-pod exec_pod_definition: apiVersion: v1 kind: Pod metadata: name: "{{ pod }}" namespace: "{{ exec_namespace }}" spec: containers: - name: sleeper image: busybox command: ["sleep", "infinity"] block: - name: "Ensure that {{ exec_namespace }} namespace exists" k8s: kind: Namespace name: "{{ exec_namespace }}" - name: "Create a pod" k8s: definition: "{{ exec_pod_definition }}" wait: yes wait_sleep: 1 wait_timeout: 30 - name: "Execute a command" k8s_exec: pod: "{{ pod }}" namespace: "{{ exec_namespace }}" command: cat /etc/resolv.conf register: output - name: "Show k8s_exec output" debug: var: output - name: "Assert k8s_exec output is correct" assert: that: - "'nameserver' in output.stdout" - name: Check if rc is returned for the given command k8s_exec: namespace: "{{ exec_namespace }}" pod: "{{ pod }}" command: 'false' register: command_status ignore_errors: True - name: Check last command status assert: that: - command_status.return_code != 0 always: - name: "Cleanup namespace" k8s: kind: Namespace name: "{{ exec_namespace }}" state: absent