--- - name: Check for specified PostgreSQL configuration k8s_info: kind: Secret namespace: '{{ meta.namespace }}' name: '{{ postgres_configuration_secret_name }}' register: pg_config - name: Store Database Configuration set_fact: awx_postgres_user: "{{ pg_config['resources'][0]['data']['username'] | b64decode }}" awx_postgres_pass: "{{ pg_config['resources'][0]['data']['password'] | b64decode }}" awx_postgres_database: "{{ pg_config['resources'][0]['data']['database'] | b64decode }}" awx_postgres_port: "{{ pg_config['resources'][0]['data']['port'] | b64decode }}" awx_postgres_host: "{{ pg_config['resources'][0]['data']['host'] | b64decode }}" awx_postgres_type: "{{ pg_config['resources'][0]['data']['type'] | b64decode | default('unmanaged') }}" - name: Default label selector to custom resource generated postgres set_fact: postgres_label_selector: "app.kubernetes.io/name={{ deployment_name }}-postgres" when: postgres_label_selector is not defined - name: Get the postgres pod information k8s_info: kind: Pod namespace: '{{ meta.namespace }}' label_selectors: - "{{ postgres_label_selector }}" register: postgres_pod until: - "postgres_pod['resources'] | length" - "postgres_pod['resources'][0]['status']['phase'] == 'Running'" delay: 5 retries: 60 - name: Set the resource pod name as a variable. set_fact: postgres_pod_name: "{{ postgres_pod['resources'][0]['metadata']['name'] }}" - name: Check for presence of AWX Deployment k8s_info: api_version: v1 kind: Deployment name: "{{ deployment_name }}" namespace: "{{ meta.namespace }}" register: this_deployment - name: Scale down Deployment for migration k8s_scale: api_version: v1 kind: Deployment name: "{{ deployment_name }}" namespace: "{{ meta.namespace }}" replicas: 0 wait: yes when: this_deployment['resources'] | length - name: Set full resolvable host name for postgres pod set_fact: resolvable_db_host: "{{ awx_postgres_host }}.{{ meta.namespace }}.svc.cluster.local" when: awx_postgres_type == 'managed' - name: Set pg_restore command set_fact: pg_restore: >- pg_restore --clean --if-exists -U {{ awx_postgres_user }} -h {{ resolvable_db_host }} -U {{ awx_postgres_user }} -d {{ awx_postgres_database }} -p {{ awx_postgres_port }} - name: Restore database dump to the new postgresql container k8s_exec: namespace: "{{ backup_pvc_namespace }}" pod: "{{ meta.name }}-db-management" command: | bash -c """ set -e -o pipefail cat {{ backup_dir }}/tower.db | PGPASSWORD={{ awx_postgres_pass }} {{ pg_restore }} echo 'Successful' """ register: data_migration failed_when: "'Successful' not in data_migration.stdout"