Pranav Gaikwad
2020-02-24 3dbf1184139201308685347d38e43ded91d1ee93
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
---
# verify velero + operator in mig_namespace
- block:
  - name: "[{{ mig_namespace }}] Reading deployments"
    k8s_info:
      api_version: v1
      kind: Deployment
      namespace: "{{ mig_namespace }}"
    register: mig_verify_dc
 
  - fail:
      msg: "[{{ mig_namespace }}] Some/all deployments are not ready"
    when: item.replicas != item.readyReplicas
    loop: "{{ mig_verify_dc|json_query('resources[*].status') }}"
 
# verify restic in mig_namespace
- block:
  - name: "[{{ mig_namespace }}] Reading statefulsets"
    k8s_info:
      api_version: v1
      kind: DaemonSet
      namespace: "{{ mig_namespace }}"
    register: mig_verify_ds
  - fail:
      msg: "[{{ mig_namespace }}] Some/all daemonsets are not ready"
    when: item.desiredNumberScheduled != item.numberReady
    loop: "{{ mig_verify_ds|json_query('resources[*].status') }}"
 
# verify sample apps are running
- block:
  - name: "Discover demo apps' routes"
    k8s_info:
      api_version: route.openshift.io/v1
      kind: Route
      namespace: "{{ item }}"
    register: mig_demo_apps_routes
    loop: "{{ mig_demo_apps_ns }}"
 
  - name: "Probing demo apps' routes"
    uri:
      url: "http://{{ item | json_query('resources[*].spec.host') | first }}"
      validate_certs: false
    register: result
    failed_when: result.status != 200 and result.status != 302
    loop: "{{ mig_demo_apps_routes.results }}"
 
# Test Gluster and NFS
- block:
  - name: "Create test pod"
    k8s:
      state: present
      definition: "{{ lookup('template', 'storage-test.yml.j2') }}"
 
  - name: "Waiting for the pod to come up"
    k8s_info:
      api_version: v1
      kind: Pod
      name: storage-test
      namespace: "{{ mig_namespace }}"
    retries: 20
    delay: 10
    register: pod_stat
    ignore_errors: true
    until: pod_stat.resources|length > 0 and
           pod_stat.resources[0].status is defined and
           pod_stat.resources[0].status.phase == 'Running'
 
  - name: "Cleaning up test pod"
    k8s:
      state: absent
      definition: "{{ lookup('template', 'storage-test.yml.j2') }}"
 
  - fail:
      msg: "Storage tests failed..."
    when: pod_stat.resources[0] is not defined or
          pod_stat.resources[0].status is not defined or
          pod_stat.resources[0].status.phase != 'Running'
 
 
# Leave this as the last task in the playbook.
- name: workload tasks complete
  debug:
    msg: "Workload Tasks completed successfully."
  when: not silent|bool