Browse Source

add navigate pbs, parameterise strategy-finish

Grega Bremec 7 months ago
parent
commit
fc690db6a2
3 changed files with 108 additions and 1 deletions
  1. 37 0
      playbooks/navigate-finish.yml
  2. 68 0
      playbooks/navigate-start.yml
  3. 3 1
      playbooks/strategy-finish.yml

+ 37 - 0
playbooks/navigate-finish.yml

@@ -0,0 +1,37 @@
+---
+- name: Clean up after the navigate exercise
+  hosts: workstation.lab.example.com
+  gather_subset: min
+  become: no
+  vars:
+    ge_nsp: deploy-introduction
+  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 the namespace for the exercise is gone
+      k8s:
+        kubeconfig: tmp/kubeconfig-ocp4
+        validate_certs: no
+        api_version: v1
+        kind: namespace
+        name: "{{ ge_nsp }}"
+        state: absent
+...

+ 68 - 0
playbooks/navigate-start.yml

@@ -0,0 +1,68 @@
+---
+- name: Prepare for the navigate exercise
+  hosts: workstation.lab.example.com
+  gather_subset: min
+  become: no
+  vars:
+    ge_nsp: deploy-introduction
+  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: 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 strategy-finish.yml to clean up first and then re-run this playbook."
+      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
+

+ 3 - 1
playbooks/strategy-finish.yml

@@ -3,6 +3,8 @@
   hosts: workstation.lab.example.com
   hosts: workstation.lab.example.com
   gather_subset: min
   gather_subset: min
   become: no
   become: no
+  vars:
+    ge_nsp: deployments-strategy
   tasks:
   tasks:
     - name: Make sure kubeconfig is there on utility
     - name: Make sure kubeconfig is there on utility
       delegate_to: utility.lab.example.com
       delegate_to: utility.lab.example.com
@@ -30,6 +32,6 @@
         validate_certs: no
         validate_certs: no
         api_version: v1
         api_version: v1
         kind: namespace
         kind: namespace
-        name: deployments-strategy
+        name: "{{ ge_nsp }}"
         state: absent
         state: absent
 ...
 ...