--- - 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 }}" - name: Default label selector to custom resource generated postgres set_fact: postgres_label_selector: "app.kubernetes.io/instance=postgres-{{ meta.name }}" when: postgres_label_selector is not defined - name: Get the postgres pod information k8s_info: kind: Pod namespace: '{{ meta.namespace }}' name: '{{ meta.name }}-postgres-0' # using name to keep compatibility field_selectors: - status.phase=Running 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: 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 - name: Set pg_restore command set_fact: pg_restore: >- pg_restore --clean --if-exists -U {{ database_username }} -d {{ database_name }} - name: Stream backup from pg_dump to the new postgresql container k8s_exec: namespace: "{{ 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' """ 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 }}"