--- - block: - name: ensure that k8s-log namespace exists k8s: kind: Namespace name: k8s-log - name: create hello-world deployment k8s: wait: yes definition: apiVersion: apps/v1 kind: Deployment metadata: name: hello-world namespace: k8s-log spec: selector: matchLabels: app: hello-world template: metadata: labels: app: hello-world spec: containers: - image: busybox name: hello-world command: ['sh'] args: ['-c', 'while true ; do echo "hello world" && sleep 10 ; done'] restartPolicy: Always - name: retrieve the log by providing the deployment k8s_log: api_version: apps/v1 kind: Deployment namespace: k8s-log name: hello-world register: deployment_log - name: verify that the log can be retrieved via the deployment assert: that: - "'hello world' in deployment_log.log" - item == 'hello world' or item == '' with_items: '{{ deployment_log.log_lines }}' - name: retrieve the log with a label selector k8s_log: namespace: k8s-log label_selectors: - 'app=hello-world' register: label_selector_log - name: verify that the log can be retrieved via the label assert: that: - "'hello world' in label_selector_log.log" - item == 'hello world' or item == '' with_items: '{{ label_selector_log.log_lines }}' - name: get the hello-world pod k8s_info: kind: Pod namespace: k8s-log label_selectors: - 'app=hello-world' register: k8s_log_pods - name: retrieve the log directly with the pod name k8s_log: namespace: k8s-log name: '{{ k8s_log_pods.resources.0.metadata.name }}' register: pod_log - name: verify that the log can be retrieved via the pod name assert: that: - "'hello world' in pod_log.log" - item == 'hello world' or item == '' with_items: '{{ pod_log.log_lines }}' - name: Create a job that calculates 7 k8s: state: present wait: yes wait_timeout: 120 wait_condition: type: Complete status: 'True' definition: apiVersion: batch/v1 kind: Job metadata: name: int-log namespace: k8s-log spec: template: spec: containers: - name: busybox image: busybox command: ["echo", "7"] restartPolicy: Never backoffLimit: 4 - name: retrieve logs from the job k8s_log: api_version: batch/v1 kind: Job namespace: k8s-log name: int-log register: job_logs - name: verify the log was successfully retrieved assert: that: job_logs.log_lines[0] == "7" always: - name: ensure that namespace is removed k8s: kind: Namespace name: k8s-log state: absent