James Falkner
2020-02-28 8a5153ead912553537c193b18ce0a8e082b165cf
Improve CRW deployment robustness. Remove unused custom keycloak realm (#1205)

1 files deleted
1 files added
1 files modified
1698 ■■■■■ changed files
ansible/roles/ocp4-workload-ccnrd/files/ccnrd_keycloak_realm.json 1619 ●●●●● patch | view | raw | blame | history
ansible/roles/ocp4-workload-ccnrd/tasks/install-codeready.yaml 44 ●●●●● patch | view | raw | blame | history
ansible/roles/ocp4-workload-ccnrd/tasks/verify_che_workspace.yaml 35 ●●●●● patch | view | raw | blame | history
ansible/roles/ocp4-workload-ccnrd/files/ccnrd_keycloak_realm.json
File was deleted
ansible/roles/ocp4-workload-ccnrd/tasks/install-codeready.yaml
@@ -80,11 +80,6 @@
  delay: 10
  until: cmd_res.rc == 0
- name: copy realm to local
  copy:
    src: ./files/ccnrd_keycloak_realm.json
    dest: /tmp/realm.json
- name: get keycloak pod
  k8s_facts:
    api_version: v1
@@ -97,24 +92,6 @@
  retries: 120
  delay: 10
  until: r_keycloak_pod.resources | list | length == 1
- name: add new realm with kcadm
  shell: >
    oc cp /tmp/realm.json {{ r_keycloak_pod.resources[0].metadata.name }}:/tmp -n labs-infra &&
    oc exec -n labs-infra deployment/keycloak -c keycloak -- bash -c
    "/opt/eap/bin/kcadm.sh config credentials --server http://keycloak:8080/auth --realm master --user {{ codeready_sso_admin_username }} --password {{ codeready_sso_admin_password }} &&
    /opt/eap/bin/kcadm.sh create realms -f /tmp/realm.json &&
    rm -f /tmp/realm.json"
  register: cmd_res
  retries: 120
  delay: 10
  until: cmd_res.rc == 0
- name: create codeready users
  include_tasks: add_che_user.yaml
  vars:
    user: "{{ item }}"
  with_list: "{{ users }}"
- name: Get codeready SSO admin token
  uri:
@@ -145,6 +122,12 @@
    body_format: json
    status_code: 204
- name: create codeready users
  include_tasks: add_che_user.yaml
  vars:
    user: "{{ item }}"
  with_list: "{{ users }}"
- name: Import stack imagestream
  k8s:
@@ -171,12 +154,19 @@
  shell: |
    oc import-image --all quarkus-stack -n openshift
- name: wait 2 minutes and let the image download and be registered so workspaces start up
  pause:
      minutes: 2
- name: Pre-create and warm user workspaces
  include_tasks: create_che_workspace.yaml
  vars:
    user: "{{ item }}"
  with_list: "{{ users }}"
- name: wait 2 minutes and let the image download and be registered so workspaces start up
  pause:
      minutes: 2
- name: Attempt to warm workspaces which failed to start
  include_tasks: verify_che_workspace.yaml
  vars:
    user: "{{ item }}"
  with_list: "{{ users }}"
ansible/roles/ocp4-workload-ccnrd/tasks/verify_che_workspace.yaml
New file
@@ -0,0 +1,35 @@
---
- name: "Get Che {{ user }} token"
  uri:
    url: http://keycloak-labs-infra.{{ route_subdomain }}/auth/realms/codeready/protocol/openid-connect/token
    method: POST
    body:
      username: "{{ user }}"
      password: "{{ workshop_che_user_password }}"
      grant_type: "password"
      client_id: "admin-cli"
    body_format: form-urlencoded
    status_code: 200
  register: user_token
- name: Get workspace for {{ user }}
  uri:
    url: "http://codeready-labs-infra.{{ route_subdomain }}/api/workspace"
    method: GET
    headers:
      Accept: application/json
      Authorization: "Bearer {{ user_token.json.access_token }}"
    status_code: 200
  register: workspace_def
- name: Verify and start workspace for {{ user }} again if stopped
  when: workspace_def.json[0].status == "STOPPED"
  uri:
    url: "http://codeready-labs-infra.{{ route_subdomain }}/api/workspace/{{ workspace_def.json[0].id }}/runtime"
    method: POST
    headers:
      Accept: application/json
      Authorization: "Bearer {{ user_token.json.access_token }}"
    status_code: 200