James Falkner
2020-02-28 8a5153ead912553537c193b18ce0a8e082b165cf
commit | author | age
cabda0 1 ---
JF 2 # deploy codeready operator
3 - name: Create operator subscription for CodeReady
4   k8s:
5     state: present
6     merge_type:
7     - strategic-merge
8     - merge
9     definition: "{{ lookup('file', item ) | from_yaml }}"
10   loop:
11   - ./files/codeready_operatorgroup.yaml
12   - ./files/codeready_subscription.yaml
13
14 # wait for CRD to be a thing
15 - name: Wait for CodeReady CRD to be ready
16   k8s_facts:
17     api_version: apiextensions.k8s.io/v1beta1
18     kind: CustomResourceDefinition
19     name: checlusters.org.eclipse.che
20   register: r_codeready_crd
21   retries: 200
22   delay: 10
23   ignore_errors: yes
24   until: r_codeready_crd.resources | list | length == 1
25
26 # deploy codeready CR
27 - name: Create CR for CodeReady
28   k8s:
29     state: present
30     merge_type:
31     - strategic-merge
32     - merge
33     definition: "{{ lookup('file', item ) | from_yaml }}"
34   loop:
35   - ./files/codeready_cr.yaml
36
37 # wait for che to be up
38 - name: wait for CRW to be running
39   uri:
40     url: http://codeready-labs-infra.{{ route_subdomain }}/dashboard/
41   register: result
42   until: result.status == 200
43   retries: "120"
44   delay: "15"
45
46 - name: Get codeready keycloak deployment
47   k8s_facts:
48     kind: Deployment
49     namespace: labs-infra
50     name: keycloak
51   register: r_keycloak_deployment
52
53 - name: show cr
54   debug:
55     msg: "existing keycloak deployment: {{ r_keycloak_deployment }}"
56
57 - name: set codeready username fact
58   set_fact:
59     codeready_sso_admin_username: "{{ r_keycloak_deployment.resources[0].spec.template.spec.containers[0].env | selectattr('name','equalto','SSO_ADMIN_USERNAME') |map (attribute='value') | list | first }}"
60
61 - name: set codeready password fact
62   set_fact:
63     codeready_sso_admin_password: "{{ r_keycloak_deployment.resources[0].spec.template.spec.containers[0].env | selectattr('name','equalto','SSO_ADMIN_PASSWORD') |map (attribute='value') | list | first }}"
64
65 - name: show codeready keycloak admin username
66   debug:
67     msg: "codeready keycloak admin username: {{ codeready_sso_admin_username }}"
68
69 - name: show codeready keycloak admin password
70   debug:
71     msg: "codeready keycloak admin password: {{ codeready_sso_admin_password }}"
72
73 - name: enable script upload
74   command: oc set env -n labs-infra deployment/keycloak JAVA_OPTS_APPEND="-Dkeycloak.profile.feature.scripts=enabled -Dkeycloak.profile.feature.upload_scripts=enabled"
75
76 - name: wait for keycloak to return
77   command: oc rollout -n labs-infra status --timeout=1m -w deployment/keycloak
78   register: cmd_res
79   retries: 120
80   delay: 10
81   until: cmd_res.rc == 0
82
83 - name: get keycloak pod
84   k8s_facts:
85     api_version: v1
86     kind: Pod
87     namespace: labs-infra
88     label_selectors:
89       - app = codeready
90       - component = keycloak
91   register: r_keycloak_pod
92   retries: 120
93   delay: 10
94   until: r_keycloak_pod.resources | list | length == 1
95
c9f049 96 - name: Get codeready SSO admin token
cabda0 97   uri:
c9f049 98     url: http://keycloak-labs-infra.{{ route_subdomain }}/auth/realms/master/protocol/openid-connect/token
cabda0 99     method: POST
JF 100     body:
c9f049 101       username: "{{ codeready_sso_admin_username }}"
JF 102       password: "{{ codeready_sso_admin_password }}"
cabda0 103       grant_type: "password"
JF 104       client_id: "admin-cli"
105     body_format: form-urlencoded
106     status_code: 200,201,204
c9f049 107   register: codeready_sso_admin_token
JF 108
109 - name: Increase codeready access token lifespans
110   uri:
111     url: http://keycloak-labs-infra.{{ route_subdomain }}/auth/admin/realms/codeready
112     method: PUT
113     headers:
114       Content-Type: application/json
115       Authorization: "Bearer {{ codeready_sso_admin_token.json.access_token }}"
116     body:
117       accessTokenLifespan: 28800
118       accessTokenLifespanForImplicitFlow: 28800
119       actionTokenGeneratedByUserLifespan: 28800
120       ssoSessionIdleTimeout: 28800
121       ssoSessionMaxLifespan: 28800
122     body_format: json
123     status_code: 204
124
8a5153 125 - name: create codeready users
JF 126   include_tasks: add_che_user.yaml
127   vars:
128     user: "{{ item }}"
129   with_list: "{{ users }}"
130
cabda0 131
JF 132 - name: Import stack imagestream
133   k8s:
134     state: present
135     merge_type:
136     - strategic-merge
137     - merge
138     definition: "{{ lookup('file', item ) | from_yaml }}"
139   loop:
140   - ./files/stack_imagestream.yaml
141
142 - name: wait for stack to be a thing
143   k8s_facts:
144     kind: ImageStream
145     name: quarkus-stack
146     namespace: openshift
147   register: r_stack_is
148   retries: 200
149   delay: 10
150   ignore_errors: yes
151   until: r_stack_is.resources | list | length == 1
152
153 - name: import stack image
154   shell: |
155     oc import-image --all quarkus-stack -n openshift
156
157 - name: Pre-create and warm user workspaces
158   include_tasks: create_che_workspace.yaml
159   vars:
160     user: "{{ item }}"
161   with_list: "{{ users }}"
8a5153 162
JF 163 - name: wait 2 minutes and let the image download and be registered so workspaces start up
164   pause:
165       minutes: 2
166
167 - name: Attempt to warm workspaces which failed to start
168   include_tasks: verify_che_workspace.yaml
169   vars:
170     user: "{{ item }}"
171   with_list: "{{ users }}"
172