mirror of
https://github.com/ansible/awx-operator.git
synced 2026-04-10 19:01:19 +00:00
Issue #3: Investigate celery errors and task queue not working on first start.
This commit is contained in:
@@ -16,6 +16,8 @@ tower_web_image: registry.access.redhat.com/ansible-tower-35/ansible-tower:3.5.3
|
||||
|
||||
tower_create_preload_data: true
|
||||
|
||||
tower_task_replicas: "1"
|
||||
|
||||
tower_memcached_image: memcached:alpine
|
||||
|
||||
tower_rabbitmq_image: rabbitmq:3
|
||||
|
||||
29
roles/tower/tasks/initialize.yml
Normal file
29
roles/tower/tasks/initialize.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
- name: Check if there are any Tower super users defined.
|
||||
shell: >-
|
||||
kubectl exec -n {{ meta.namespace }} {{ tower_pod_name }} -- bash -c
|
||||
"echo 'from django.contrib.auth.models import User;
|
||||
nsu = User.objects.filter(is_superuser=True).count();
|
||||
exit(0 if nsu > 0 else 1)'
|
||||
| awx-manage shell"
|
||||
ignore_errors: true
|
||||
changed_when: false
|
||||
register: users_result
|
||||
changed_when: users_result.rc > 0
|
||||
|
||||
- name: Create Tower super user via Django if it doesn't exist.
|
||||
shell: >-
|
||||
kubectl exec -n {{ meta.namespace }} {{ tower_pod_name }} -- bash -c
|
||||
"echo \"from django.contrib.auth.models import User;
|
||||
User.objects.create_superuser('{{ tower_admin_user }}', '{{ tower_admin_email }}', '{{ tower_admin_password }}')\"
|
||||
| awx-manage shell"
|
||||
when: users_result.rc > 0
|
||||
no_log: true
|
||||
|
||||
- name: Create preload data if necessary.
|
||||
shell: >-
|
||||
kubectl exec -n {{ meta.namespace }} {{ tower_pod_name }} -- bash -c
|
||||
"awx-manage create_preload_data"
|
||||
register: cdo
|
||||
changed_when: "'added' in cdo.stdout"
|
||||
when: tower_create_preload_data | bool
|
||||
@@ -11,7 +11,7 @@
|
||||
- tower.yaml.j2
|
||||
- tower_task.yaml.j2
|
||||
|
||||
- name: Get the Tower web pod information.
|
||||
- name: Get the Tower pod information.
|
||||
# TODO: Change to k8s_info after Ansible 2.9.0 is available in Operator image.
|
||||
k8s_facts:
|
||||
kind: Pod
|
||||
@@ -19,6 +19,9 @@
|
||||
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:
|
||||
@@ -45,32 +48,21 @@
|
||||
shell: >-
|
||||
kubectl exec -n {{ meta.namespace }} {{ 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)
|
||||
|
||||
- name: Check if there are any Tower super users defined.
|
||||
shell: >-
|
||||
kubectl exec -n {{ meta.namespace }} {{ tower_pod_name }} -- bash -c
|
||||
"echo 'from django.contrib.auth.models import User;
|
||||
nsu = User.objects.filter(is_superuser=True).count();
|
||||
exit(0 if nsu > 0 else 1)'
|
||||
| awx-manage shell"
|
||||
ignore_errors: true
|
||||
changed_when: false
|
||||
register: users_result
|
||||
changed_when: users_result.rc > 0
|
||||
- include_tasks: initialize.yml
|
||||
|
||||
- name: Create Tower super user via Django if it doesn't exist.
|
||||
shell: >-
|
||||
kubectl exec -n {{ meta.namespace }} {{ tower_pod_name }} -- bash -c
|
||||
"echo \"from django.contrib.auth.models import User;
|
||||
User.objects.create_superuser('{{ tower_admin_user }}', '{{ tower_admin_email }}', '{{ tower_admin_password }}')\"
|
||||
| awx-manage shell"
|
||||
when: users_result.rc > 0
|
||||
- name: Scale the tower_task deployment to 0 replicas after migration.
|
||||
k8s:
|
||||
definition: "{{ lookup('template', 'tower_task.yaml.j2') | from_yaml_all | list }}"
|
||||
vars:
|
||||
tower_task_replicas: "0"
|
||||
when: migrate_result and migrate_result.changed
|
||||
|
||||
- name: Create Tower super user via Django if it doesn't exist.
|
||||
shell: >-
|
||||
kubectl exec -n {{ meta.namespace }} {{ tower_pod_name }} -- bash -c
|
||||
"awx-manage create_preload_data"
|
||||
register: cdo
|
||||
changed_when: "'added' in cdo.stdout"
|
||||
when: tower_create_preload_data | bool
|
||||
- name: Scale the tower_task deployment back to 1 replica after migration.
|
||||
k8s:
|
||||
definition: "{{ lookup('template', 'tower_task.yaml.j2') | from_yaml_all | list }}"
|
||||
vars:
|
||||
tower_task_replicas: "1"
|
||||
when: migrate_result and migrate_result.changed
|
||||
|
||||
@@ -9,7 +9,7 @@ data:
|
||||
secret_key: '{{ tower_secret_key | b64encode }}'
|
||||
admin_password: '{{ tower_admin_password | b64encode }}'
|
||||
|
||||
# Tower Web Deployment.
|
||||
# Tower Deployment.
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
@@ -76,7 +76,7 @@ spec:
|
||||
- key: nginx_conf
|
||||
path: nginx.conf
|
||||
|
||||
# Tower Web Service.
|
||||
# Tower Service.
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
@@ -93,7 +93,7 @@ spec:
|
||||
selector:
|
||||
app: tower
|
||||
|
||||
# Tower Web Ingress.
|
||||
# Tower Ingress.
|
||||
---
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Ingress
|
||||
|
||||
@@ -8,7 +8,7 @@ metadata:
|
||||
labels:
|
||||
app: tower-task
|
||||
spec:
|
||||
replicas: 1
|
||||
replicas: {{ tower_task_replicas | int }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: tower-task
|
||||
|
||||
Reference in New Issue
Block a user