--- - name: Set actual old postgres configuration secret name set_fact: old_postgres_configuration_name: "{{ old_pg_config['resources'][0]['metadata']['name'] }}" - name: Store Database Configuration set_fact: awx_old_postgres_user: "{{ old_pg_config['resources'][0]['data']['username'] | b64decode }}" awx_old_postgres_pass: "{{ old_pg_config['resources'][0]['data']['password'] | b64decode }}" awx_old_postgres_database: "{{ old_pg_config['resources'][0]['data']['database'] | b64decode }}" awx_old_postgres_port: "{{ old_pg_config['resources'][0]['data']['port'] | b64decode }}" awx_old_postgres_host: "{{ old_pg_config['resources'][0]['data']['host'] | b64decode }}" no_log: "{{ no_log }}" - name: Set Default label selector for custom resource generated postgres set_fact: postgres_label_selector: "app.kubernetes.io/instance=postgres-{{ supported_pg_version }}-{{ ansible_operator_meta.name }}" when: postgres_label_selector is not defined - name: Get the postgres pod information k8s_info: kind: Pod namespace: "{{ ansible_operator_meta.namespace }}" label_selectors: - "{{ postgres_label_selector }}" field_selectors: - status.phase=Running register: postgres_pod - name: Set the resource pod name as a variable. set_fact: postgres_pod_name: "{{ postgres_pod['resources'][0]['metadata']['name'] }}" - name: Scale down Deployment for migration include_tasks: scale_down_deployment.yml - name: Set pg_dump command set_fact: pgdump: >- pg_dump -h {{ awx_old_postgres_host }} -U {{ awx_old_postgres_user }} -d {{ awx_old_postgres_database }} -p {{ awx_old_postgres_port }} -F custom no_log: "{{ no_log }}" - name: Set pg_restore command set_fact: pg_restore: >- pg_restore --clean --if-exists -U {{ database_username }} -d {{ database_name }} no_log: "{{ no_log }}" - name: Stream backup from pg_dump to the new postgresql container k8s_exec: namespace: "{{ ansible_operator_meta.namespace }}" pod: "{{ postgres_pod_name }}" command: | bash -c """ set -e -o pipefail PGPASSWORD='{{ awx_old_postgres_pass }}' {{ pgdump }} | PGPASSWORD='{{ awx_postgres_pass }}' {{ pg_restore }} echo 'Successful' """ no_log: "{{ no_log }}" register: data_migration failed_when: "'Successful' not in data_migration.stdout" - name: Set flag signifying that this instance has been migrated set_fact: tower_migrated_from_secret: "{{ old_postgres_configuration_name }}"