diff --git a/installer/roles/kubernetes/defaults/main.yml b/installer/roles/kubernetes/defaults/main.yml index d0cdf1cec2..861e617c2e 100644 --- a/installer/roles/kubernetes/defaults/main.yml +++ b/installer/roles/kubernetes/defaults/main.yml @@ -55,3 +55,4 @@ custom_venvs_python: "python2" ca_trust_bundle: "/etc/pki/tls/certs/ca-bundle.crt" rabbitmq_use_ssl: False +container_groups_image: "ansible/ansible-runner" diff --git a/installer/roles/kubernetes/tasks/main.yml b/installer/roles/kubernetes/tasks/main.yml index 8f03022bfb..c96a8e895c 100644 --- a/installer/roles/kubernetes/tasks/main.yml +++ b/installer/roles/kubernetes/tasks/main.yml @@ -113,58 +113,61 @@ seconds: "{{ postgress_activate_wait }}" when: openshift_pg_activate.changed or kubernetes_pg_activate.changed -- name: Check if Postgres 9.6 is being used - shell: | - POD=$({{ kubectl_or_oc }} -n {{ kubernetes_namespace }} \ - get pods -l=name=postgresql --field-selector status.phase=Running -o jsonpath="{.items[0].metadata.name}") - {{ kubectl_or_oc }} exec -ti $POD -n {{ kubernetes_namespace }} -- bash -c "psql -U {{ pg_username }} -tAc 'select version()'" - register: pg_version - -- name: Upgrade Postgres if necessary +- name: Check postgres version and upgrade Postgres if necessary block: - - name: Set new pg image - shell: | - IMAGE=registry.access.redhat.com/rhscl/postgresql-10-rhel7 - {{ kubectl_or_oc }} -n {{ kubernetes_namespace }} set image dc/postgresql postgresql=$IMAGE - - - name: Wait for change to take affect - pause: - seconds: 5 - - - name: Set env var for pg upgrade - shell: | - {{ kubectl_or_oc }} -n {{ kubernetes_namespace }} set env dc/postgresql POSTGRESQL_UPGRADE=copy - - - name: Wait for change to take affect - pause: - seconds: 5 - - - name: Set env var for new pg version - shell: | - {{ kubectl_or_oc }} -n {{ kubernetes_namespace }} set env dc/postgresql POSTGRESQL_VERSION=10 - - - name: Wait for Postgres to redeploy - pause: - seconds: "{{ postgress_activate_wait }}" - - - name: Wait for Postgres to finish upgrading + - name: Check if Postgres 9.6 is being used shell: | POD=$({{ kubectl_or_oc }} -n {{ kubernetes_namespace }} \ - get pods -l=name=postgresql -o jsonpath="{.items[0].metadata.name}") - {{ kubectl_or_oc }} -n {{ kubernetes_namespace }} logs $POD | grep 'Upgrade DONE' - register: pg_upgrade_logs - retries: 360 - delay: 10 - until: pg_upgrade_logs is success + get pods -l=name=postgresql --field-selector status.phase=Running -o jsonpath="{.items[0].metadata.name}") + oc exec $POD -n {{ kubernetes_namespace }} -- bash -c "psql -tAc 'select version()'" + register: pg_version + - name: Upgrade postgres if necessary + block: + - name: Set new pg image + shell: | + IMAGE=registry.access.redhat.com/rhscl/postgresql-10-rhel7 + {{ kubectl_or_oc }} -n {{ kubernetes_namespace }} set image dc/postgresql postgresql=$IMAGE - - name: Unset upgrade env var - shell: | - {{ kubectl_or_oc }} -n {{ kubernetes_namespace }} set env dc/postgresql POSTGRESQL_UPGRADE- + - name: Wait for change to take affect + pause: + seconds: 5 - - name: Wait for Postgres to redeploy - pause: - seconds: "{{ postgress_activate_wait }}" - when: "pg_version is success and '9.6' in pg_version.stdout" + - name: Set env var for pg upgrade + shell: | + {{ kubectl_or_oc }} -n {{ kubernetes_namespace }} set env dc/postgresql POSTGRESQL_UPGRADE=copy + + - name: Wait for change to take affect + pause: + seconds: 5 + + - name: Set env var for new pg version + shell: | + {{ kubectl_or_oc }} -n {{ kubernetes_namespace }} set env dc/postgresql POSTGRESQL_VERSION=10 + + - name: Wait for Postgres to redeploy + pause: + seconds: "{{ postgress_activate_wait }}" + + - name: Wait for Postgres to finish upgrading + shell: | + POD=$({{ kubectl_or_oc }} -n {{ kubernetes_namespace }} \ + get pods -l=name=postgresql -o jsonpath="{.items[0].metadata.name}") + {{ kubectl_or_oc }} -n {{ kubernetes_namespace }} logs $POD | grep 'Upgrade DONE' + register: pg_upgrade_logs + retries: 360 + delay: 10 + until: pg_upgrade_logs is success + + - name: Unset upgrade env var + shell: | + {{ kubectl_or_oc }} -n {{ kubernetes_namespace }} set env dc/postgresql POSTGRESQL_UPGRADE- + + - name: Wait for Postgres to redeploy + pause: + seconds: "{{ postgress_activate_wait }}" + when: "pg_version is success and '9.6' in pg_version.stdout" + when: + - pg_hostname is not defined or pg_hostname == '' - name: Set image names if using custom registry block: diff --git a/installer/roles/kubernetes/templates/configmap.yml.j2 b/installer/roles/kubernetes/templates/configmap.yml.j2 index 5588f2fc17..83efee4f68 100644 --- a/installer/roles/kubernetes/templates/configmap.yml.j2 +++ b/installer/roles/kubernetes/templates/configmap.yml.j2 @@ -202,3 +202,5 @@ data: } USE_X_FORWARDED_PORT = True + + AWX_CONTAINER_GROUP_DEFAULT_IMAGE = "{{ container_groups_image }}"