summaryrefslogtreecommitdiffstats
path: root/tools/clusterdevel/roles/minishift/tasks/main.yml
blob: e1033bb20ab3712cc2a76afec18b56792efa2ee9 (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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
---
- name: Get status of minishift
  shell: minishift status
  register: minishift_status

- name: Echo minishift status so if verification fails we can see the results
  debug:
    var: minishift_status.stdout

- name: Verify status of minishift
  assert:
    that:
      - "'Minishift:  Running' == minishift_status.stdout_lines[0]"
      - "'OpenShift:  Running' in minishift_status.stdout_lines[2]"

- name: Get minishift ip
  shell: minishift ip
  register: minishift_ip

- name: Get minishift oc location
  shell: minishift oc-env
  register: minishift_oc_env

- shell: |
    eval $(minishift oc-env)
    echo $PATH
  register: oc_path

- name: Deploy Tower
  block:
    - name: Login as admin
      shell: "oc login -u system:admin"

    - name: Create privileged user service account awx
      shell: "oc adm policy add-scc-to-user privileged system:serviceaccount:{{ awx_dev_project }}:awx"

    - name: Unattach AWX dev tree volume locally
      shell: "minishift hostfolder remove awx || true"

    - name: Attach AWX dev tree volume locally
      shell: "minishift hostfolder add -t sshfs --source {{ devtree_directory }} --target /mnt/sda1/awx awx"

    - name: Unmount AWX dev volume
      shell: "minishift hostfolder umount awx || true"

    - name: Mount AWX dev volume
      shell: minishift hostfolder mount awx

    - name: Get Project Detail
      shell: "oc get project {{ awx_dev_project }}"
      register: project_details
      ignore_errors: yes

    - name: Get Postgres Service Detail
      shell: "oc describe svc postgresql -n {{ awx_dev_project }}"
      register: postgres_svc_details
      ignore_errors: yes

    - name: Create AWX Openshift Project
      shell: "oc new-project {{ awx_dev_project }}"
      when: project_details.rc != 0

    - name: Stage serviceacct.yml
      template:
        src: serviceacct.yml.j2
        dest: /tmp/serviceacct.yml

    - name: Apply svc account
      shell: "oc apply -f /tmp/serviceacct.yml && rm -rf /tmp/serviceaccount.yml"

    - name: Stage hostfolderpvc.yml
      template:
        src: hostfolderpvc.yml.j2
        dest: /tmp/hostfolderpvc.yml

    - name: Create PV for host folder
      shell: "oc apply -f /tmp/hostfolderpvc.yml && rm -rf /tmp/hostfolderpvc.yml"

    - name: Stage volumeclaim.yml
      template:
        src: volumeclaim.yml.j2
        dest: /tmp/volumeclaim.yml

    - name: Create PV for host folder
      shell: "oc apply -f /tmp/volumeclaim.yml && rm -rf /tmp/volumeclaim.yml"

    - name: Deploy and Activate Postgres
      shell: "oc new-app --template=postgresql-persistent -e MEMORY_LIMIT={{ pg_memory_limit|default('512') }}Mi -e NAMESPACE=openshift -e DATABASE_SERVICE_NAME=postgresql  -e POSTGRESQL_USER={{ pg_username|default('awx') }} -e POSTGRESQL_PASSWORD={{ pg_password|default('awx') }} -e POSTGRESQL_DATABASE={{ pg_database|default('awx') }} -e VOLUME_CAPACITY={{ pg_volume_capacity|default('5')}}Gi -e POSTGRESQL_VERSION=10 -n {{ awx_dev_project }}"
      when: postgres_svc_details is defined and postgres_svc_details.rc != 0
      register: openshift_pg_activate

    - name: Wait for Postgres to activate
      pause:
        seconds: 15
      when: openshift_pg_activate|changed

    - name: Template configmap
      template:
        src: configmap.yml.j2
        dest: "/tmp/configmap.yml"

    - name: Create configmap
      shell: "oc apply -f /tmp/configmap.yml && rm -rf /tmp/configmap.yml"

    - name: Template deployment
      template:
        src: hostdev.yml.j2
        dest: "/tmp/hostdev.yml"

    - name: Create deployment
      shell: "oc apply -f /tmp/hostdev.yml && rm -rf /tmp/hostdev.yml"

    - name: Please login
      debug:
        msg: "Login at https://{{ minishift_ip.stdout }}:8443 with admin / admin"
  environment:
    PATH: '{{ oc_path.stdout }}'