Guillaume Coré
2019-04-11 9b4332995d217a7c84851688c97322642bd87224
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
85
86
87
88
89
---
# Workloads should run on bastion. This enables using the k8s module in the workload.
# Masters don't have Python/pip/openshift python module installed
# And in OCP 4 we don't have access to masters anyway anymore...
- name: Install workloads
  hosts: bastions
  gather_facts: false
  run_once: true
  become: false
  tasks:
  - name: Install ocp-default workloads
    when:
    - default_workloads | d("") | length > 0
    tags:
    - default_workloads
    block:
    - name: Install ocp-default-workloads
      when:
      - default_workloads | d("") | length >0
      block:
      - name: Deploy ocp-default workloads
        include_role:
          name: "{{ workload_loop_var }}"
        vars:
          ocp_username: "system:admin"
          ACTION: "provision"
        loop: "{{ default_workloads }}"
        loop_control:
          loop_var: workload_loop_var
 
  - name: Install ocp-infra workloads
    when:
    - infra_workloads|d("")|length > 0
    tags:
      - infra_workloads
    block:
    - name: Check if admin_user is set
      fail:
        msg: admin_user must be set for ocp-infra workloads
      when:
      - not admin_user is defined or admin_user|length == 0
    - name: Install ocp-infra-workloads
      when:
      - infra_workloads|d("")|length >0
      block:
      - name: Deploy ocp-infra workloads
        include_role:
          name: "{{ workload_loop_var }}"
        vars:
          ocp_username: "{{ admin_user }}"
          ACTION: "provision"
        loop: "{{ infra_workloads.split(',')|list }}"
        loop_control:
          loop_var: workload_loop_var
 
  - name: Install ocp-workloads
    when:
    - user_count|d(0)|int > 0
    - student_workloads|d("")|length > 0
    tags:
      - student_workloads
    block:
    - name: Check if authentication mechanism is set to htpasswd
      fail:
        msg: Authentication Mechanism must be htpasswd
      when:
      - install_idm|d("") != "htpasswd"
    - name: Check if remove_self_provisioners=true
      fail:
        msg: remove_self_provisioners must be set to true
      tags:
        - remove_self_provisioners
      when:
      - not remove_self_provisioners|d(False)|bool
 
    - name: Generate list of User IDs
      set_fact:
        users: "{{ lookup('sequence', 'start=1 end={{ user_count|int }}', wantlist=true) | map('int') | list }}"
 
    - name: Deploy ocp-workloads for each user ID
      include_role:
        name: "{{ workload_loop_var[1] }}"
      vars:
        ocp_username: "user{{ workload_loop_var[0] }}"
        become_override: yes
        ACTION: "provision"
      loop: "{{ users | product(student_workloads.split(','))|list }}"
      loop_control:
        loop_var: workload_loop_var