---
|
# 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
|