Make data migration idempotent

This commit is contained in:
Christian M. Adams
2021-03-16 01:16:27 -04:00
parent e83e54419a
commit c22577bc80
5 changed files with 10 additions and 10 deletions

View File

@@ -98,6 +98,10 @@ spec:
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:io.kubernetes:Secret
path: tower_old_postgres_configuration_secret
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:io.kubernetes:Secret
- displayName: Secret key secret
path: tower_secret_key_secret
x-descriptors:

View File

@@ -65,10 +65,8 @@
name: '{{ tower_old_postgres_configuration_secret }}'
register: old_pg_config
when: tower_old_postgres_configuration_secret | length
ignore_errors: true
no_log: true
- name: Migrate data from old Openshift instance
import_tasks: migrate_data.yml
when: old_pg_config['resources'][0]['data']['host'] is defined
ignore_errors: true

View File

@@ -63,10 +63,7 @@
pod: "{{ tower_pod_name }}"
container: "{{ meta.name }}-task"
command: >-
bash -c "echo 'from django.db import connection;
tbl = \"auth_user\" in connection.introspection.table_names();
exit(0 if tbl else 1)'
| awx-manage shell"
bash -c "awx-manage showmigrations | grep -v '[X]' | grep '[ ]' | wc -l"
ignore_errors: true
changed_when: false
register: database_check
@@ -80,7 +77,7 @@
command: >-
bash -c "awx-manage migrate --noinput"
register: migrate_result
when: (k8s_defs_result is changed) or (database_check is defined and database_check.return_code != 0)
when: (k8s_defs_result is changed) or (database_check is defined and database_check.stdout != 0)
- include_tasks: initialize.yml

View File

@@ -53,8 +53,7 @@
namespace: "{{ meta.namespace }}"
pod: "{{ postgres_pod_name }}"
command: >-
bash -c "PGPASSWORD={{ tower_old_postgres_pass }} {{ pgdump }} | PGPASSWORD={{ awx_postgres_pass }} {{ psql_restore }}"
bash -c "PGPASSWORD={{ tower_old_postgres_pass }} {{ pgdump }} | PGPASSWORD={{ awx_postgres_pass }} {{ psql_restore }} && echo 'Finished'"
no_log: true
ignore_errors: true
register: data_migration
# changed_when: success_condition?
changed_when: false

View File

@@ -6,6 +6,7 @@
name: '{{ tower_secret_key_secret }}'
register: _custom_secret_key
when: tower_secret_key_secret | length
no_log: true
- name: Check for default secret key configuration
k8s_info:
@@ -17,6 +18,7 @@
- name: Set secret key secret
set_fact:
_secret_key_secret: '{{ _custom_secret_key["resources"] | default([]) | length | ternary(_custom_secret_key, _default_secret_key) }}'
no_log: true
- block:
- name: Create secret key secret