--- - name: Prepare for the alerting exercise hosts: workstation.lab.example.com gather_subset: min become: no vars: ge_nsp: monitoring-alerts tasks: - name: Make sure kubeconfig is there on utility delegate_to: utility.lab.example.com file: path: /home/lab/{{ item }}/auth/kubeconfig state: file loop: "{{ clusters }}" - name: Create a temp dir file: path: tmp state: directory - name: Copy over the kubeconfig delegate_to: utility.lab.example.com fetch: src: /home/lab/{{ item }}/auth/kubeconfig dest: tmp/kubeconfig-{{ item }} flat: yes loop: "{{ clusters }}" - name: Ensure siege is on workstation become: yes package: name: siege state: latest - name: Check whether the namespace is already there k8s_info: kubeconfig: tmp/kubeconfig-ocp4 validate_certs: no api_version: v1 kind: namespace name: "{{ ge_nsp }}" register: ge_exists - name: Fail if the namespace exists fail: msg: "The exercise namespace already exists: {{ ge_nsp }}; please run the finish playbook and then re-run this one." when: ge_exists.resources | length > 0 - name: Ensure there is a namespace for the exercise k8s: kubeconfig: tmp/kubeconfig-ocp4 validate_certs: no api_version: v1 kind: namespace name: "{{ ge_nsp }}" - name: Give developer admin role in the project k8s: kubeconfig: tmp/kubeconfig-ocp4 validate_certs: no api_version: rbac.authorization.k8s.io/v1 kind: rolebinding namespace: "{{ ge_nsp }}" name: dev-admin definition: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: admin subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: developer - name: Deploy the sample app manifests k8s: kubeconfig: tmp/kubeconfig-ocp4 validate_certs: no namespace: "{{ ge_nsp }}" src: ../labs/monitoring/alerts/{{ item }} loop: - frontend.yaml - exoplanets.yaml ...