zfs-localpv/e2e-tests/experiments/chaos/app_pod_failure/test.yml

105 lines
3.2 KiB
YAML
Raw Normal View History

---
- hosts: localhost
connection: local
gather_facts: False
vars_files:
- test_vars.yml
- /mnt/parameters.yml
tasks:
- block:
## Generating the testname for application pod failure chaos test
- include_tasks: /e2e-tests/hack/create_testname.yml
## Record SOT (start of test) in e2e result e2e-cr (e2e-custom-resource)
- include_tasks: /e2e-tests/hack/update_e2e_result_resource.yml
vars:
status: 'SOT'
- name: Identify the data consistency util to be invoked
template:
src: data_persistence.j2
dest: data_persistence.yml
- include_vars:
file: data_persistence.yml
- name: Record the data consistency util path
set_fact:
data_consistency_util_path: "{{ consistencyutil }}"
when: data_persistence != ''
- name: Display the app information passed via the test job
debug:
msg:
- "The application info is as follows:"
- "Namespace : {{ app_ns }}"
- "Label : {{ app_label }}"
- block:
- name: Get application pod name
shell: >
kubectl get pods -n {{ app_ns }} -l {{ app_label }} --no-headers
-o=custom-columns=NAME:".metadata.name" | shuf -n 1
args:
executable: /bin/bash
register: app_pod_name
- name: Check that application pod is in running state
shell: >
kubectl get pod {{ app_pod_name.stdout }} -n {{ app_ns }}
--no-headers -o custom-columns=:.status.phase
args:
executable: /bin/bash
register: pod_status
failed_when: "pod_status.stdout != 'Running'"
- name: Create some test data
include: "{{ data_consistency_util_path }}"
vars:
status: 'LOAD'
ns: "{{ app_ns }}"
pod_name: "{{ app_pod_name.stdout }}"
when: data_persistence != ''
## APPLICATION FAULT INJECTION
- include_tasks: /e2e-tests/chaoslib/pumba/pod_failure_by_sigkill.yaml
vars:
action: "killapp"
app_pod: "{{ app_pod_name.stdout }}"
namespace: "{{ app_ns }}"
label: "{{ app_label }}"
- name: Verify application data persistence
include: "{{ data_consistency_util_path }}"
vars:
status: 'VERIFY'
ns: "{{ app_ns }}"
label: "{{ app_label }}"
pod_name: "{{ app_pod_name.stdout }}"
when: data_persistence != ''
- set_fact:
flag: "Pass"
rescue:
- set_fact:
flag: "Fail"
always:
## RECORD END-OF-TEST IN e2e RESULT CR
- include_tasks: /e2e-tests/hack/update_e2e_result_resource.yml
vars:
status: 'EOT'
chaostype: ""
app: ""
- include_tasks: /e2e-tests/chaoslib/pumba/pod_failure_by_sigkill.yaml
vars:
action: "deletepumba"
namespace: "{{ app_ns }}"