summaryrefslogtreecommitdiffstats
path: root/roles/openshift_management/tasks/main.yml
blob: f212dba7cf288677865010cc5c0da32ae15ecc9e (plain)
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
90
91
92
93
94
95
96
---
######################################################################)
# Users, projects, and privileges

- name: Run pre-install Management validation checks
  include_tasks: validate.yml

# This creates a service account allowing Container Provider
# integration (managing OCP/Origin via MIQ/Management)
- name: Enable Container Provider Integration
  include_role:
    role: openshift_manageiq

- name: "Ensure the Management '{{ openshift_management_project }}' namespace exists"
  oc_project:
    state: present
    name: "{{ openshift_management_project }}"
    display_name: "{{ openshift_management_project_description }}"

- name: Create and Authorize Management Accounts
  include_tasks: accounts.yml

######################################################################
# STORAGE - Initialize basic storage class
- name: Determine the correct NFS host if required
  include_tasks: storage/nfs_server.yml
  when: openshift_management_storage_class in ['nfs', 'nfs_external']

#---------------------------------------------------------------------
# * nfs - set up NFS shares on the first master for a proof of concept
- name: Create required NFS exports for Management app storage
  include_tasks: storage/nfs.yml
  when: openshift_management_storage_class == 'nfs'

#---------------------------------------------------------------------
# * external - NFS again, but pointing to a pre-configured NFS server
- name: Note Storage Type -  External NFS
  debug:
    msg: "Setting up external NFS storage, openshift_management_storage_class is {{ openshift_management_storage_class }}"
  when: openshift_management_storage_class == 'nfs_external'

#---------------------------------------------------------------------
# * cloudprovider - use an existing cloudprovider based storage
- name: Note Storage Type - Cloud Provider
  debug:
    msg: Validating cloud provider storage type, openshift_management_storage_class is 'cloudprovider'
  when: openshift_management_storage_class == 'cloudprovider'

#---------------------------------------------------------------------
# * preconfigured - don't do anything, assume it's all there ready to go
- name: Note Storage Type - Preconfigured
  debug:
    msg: Skipping storage configuration, openshift_management_storage_class is 'preconfigured'
  when: openshift_management_storage_class == 'preconfigured'

######################################################################
# APPLICATION TEMPLATE
- name: Install the Management app and PV templates
  include_tasks: template.yml

######################################################################
# APP & DB Storage

# For local/external NFS backed installations
- name: "Create the required App and DB PVs using {{ openshift_management_storage_class }}"
  include_tasks: storage/create_nfs_pvs.yml
  when:
    - openshift_management_storage_class in ['nfs', 'nfs_external']

######################################################################
# CREATE APP
- name: Note the correct ext-db template name
  set_fact:
    openshift_management_template_name: "{{ openshift_management_flavor }}-ext-db"
  when:
    - openshift_management_app_template in ['miq-template-ext-db', 'cfme-template-ext-db']

- name: Note the correct podified db template name
  set_fact:
    openshift_management_template_name: "{{ openshift_management_flavor }}"
  when:
    - openshift_management_app_template in ['miq-template', 'cfme-template']

- name: Ensure the Management App is created
  oc_process:
    namespace: "{{ openshift_management_project }}"
    template_name: "{{ openshift_management_template_name }}"
    create: True
    params: "{{ openshift_management_template_parameters }}"

- name: Wait for the app to come up. May take several minutes, 30s check intervals, {{ openshift_management_pod_rollout_retries }} retries
  command: "oc logs {{ openshift_management_flavor }}-0 -n {{ openshift_management_project }}"
  register: app_seeding_logs
  until: app_seeding_logs.stdout.find('Server starting complete') != -1
  delay: 30
  retries: "{{ openshift_management_pod_rollout_retries }}"