mirror of
https://github.com/ansible/awx-operator.git
synced 2026-03-26 21:33:14 +00:00
71 lines
2.2 KiB
YAML
71 lines
2.2 KiB
YAML
---
|
|
- name: Include deployment type vars
|
|
include_vars: "{{ deployment_type }}.yml"
|
|
|
|
- name: Ensure configured Tower resources exist in the cluster.
|
|
k8s:
|
|
apply: yes
|
|
definition: "{{ lookup('template', item) | from_yaml_all | list }}"
|
|
register: k8s_defs_result
|
|
with_items:
|
|
- tower_postgres.yaml.j2
|
|
- tower_config.yaml.j2
|
|
- launch_awx.yaml.j2
|
|
- supervisor.yaml.j2
|
|
- tower.yaml.j2
|
|
|
|
- name: Get the Tower pod information.
|
|
k8s_info:
|
|
kind: Pod
|
|
namespace: '{{ meta.namespace }}'
|
|
label_selectors:
|
|
- app=tower
|
|
register: tower_pods
|
|
until: "tower_pods['resources'][0]['status']['phase'] == 'Running'"
|
|
delay: 5
|
|
retries: 60
|
|
|
|
- name: Set the tower pod name as a variable.
|
|
set_fact:
|
|
tower_pod_name: "{{ tower_pods['resources'][0]['metadata']['name'] }}"
|
|
|
|
- name: Verify tower_pod_name is populated.
|
|
assert:
|
|
that: tower_pod_name != ''
|
|
fail_msg: "Could not find the tower pod's name."
|
|
|
|
- name: Check if database is populated (auth_user table exists).
|
|
shell: >-
|
|
kubectl exec -n {{ meta.namespace }} -c {{ meta.name }}-task {{ tower_pod_name }} -- 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"
|
|
ignore_errors: true
|
|
changed_when: false
|
|
register: database_check
|
|
when: k8s_defs_result is not changed
|
|
|
|
- name: Migrate the database if the K8s resources were updated. # noqa 305
|
|
shell: >-
|
|
kubectl exec -n {{ meta.namespace }} -c {{ meta.name }}-task {{ tower_pod_name }} -- bash -c
|
|
"awx-manage migrate --noinput"
|
|
register: migrate_result
|
|
when: (k8s_defs_result is changed) or (database_check is defined and database_check.rc != 0)
|
|
|
|
- include_tasks: initialize.yml
|
|
|
|
- name: Scale the tower deployment to 0 replicas after migration.
|
|
k8s:
|
|
definition: "{{ lookup('template', 'tower.yaml.j2') | from_yaml_all | list }}"
|
|
vars:
|
|
tower_replicas: "0"
|
|
when: migrate_result and migrate_result.changed
|
|
|
|
- name: Scale the tower deployment back to 1 replica after migration.
|
|
k8s:
|
|
definition: "{{ lookup('template', 'tower.yaml.j2') | from_yaml_all | list }}"
|
|
vars:
|
|
tower_replicas: "1"
|
|
when: migrate_result and migrate_result.changed
|