mirror of
https://github.com/ansible/awx-operator.git
synced 2026-05-08 14:22:49 +00:00
140 lines
4.4 KiB
YAML
140 lines
4.4 KiB
YAML
---
|
|
|
|
- name: Get the current resource pod information.
|
|
k8s_info:
|
|
api_version: v1
|
|
kind: Pod
|
|
namespace: '{{ ansible_operator_meta.namespace }}'
|
|
label_selectors:
|
|
- "app.kubernetes.io/name={{ ansible_operator_meta.name }}"
|
|
- "app.kubernetes.io/managed-by={{ deployment_type }}-operator"
|
|
- "app.kubernetes.io/component={{ deployment_type }}"
|
|
field_selectors:
|
|
- status.phase=Running
|
|
register: tower_pods
|
|
|
|
- name: Set the resource pod name as a variable.
|
|
set_fact:
|
|
tower_pod_name: "{{ tower_pods['resources'][0]['metadata']['name'] | default('') }}"
|
|
|
|
- name: Apply Resources
|
|
k8s:
|
|
apply: yes
|
|
definition: "{{ lookup('template', item + '.yaml.j2') }}"
|
|
wait: yes
|
|
register: tower_resources_result
|
|
loop:
|
|
- 'config'
|
|
- 'app_credentials'
|
|
- 'service_account'
|
|
- 'persistent'
|
|
- 'service'
|
|
- 'ingress'
|
|
no_log: true
|
|
|
|
- name: Set default awx app image
|
|
set_fact:
|
|
_default_image: "{{ _image }}:{{ _image_version }}"
|
|
|
|
- name: Set user provided awx app image
|
|
set_fact:
|
|
_custom_image: "{{ image }}:{{ image_version }}"
|
|
when:
|
|
- image | default([]) | length
|
|
- image_version is defined or image_version != ''
|
|
|
|
- name: Set AWX app image URL
|
|
set_fact:
|
|
_image: "{{ _custom_image | default(lookup('env', 'RELATED_IMAGE_AWX')) | default(_default_image, true) }}"
|
|
|
|
- name: Set default awx init container image
|
|
set_fact:
|
|
_default_init_container_image: "{{ _init_container_image }}:{{ _init_container_image_version }}"
|
|
|
|
- name: Set user provided awx init image
|
|
set_fact:
|
|
_custom_init_container_image: "{{ init_container_image }}:{{ init_container_image_version }}"
|
|
when:
|
|
- init_container_image | default([]) | length
|
|
- init_container_image_version is defined or init_container_image_version != ''
|
|
|
|
- name: Set Init image URL
|
|
set_fact:
|
|
_init_container_image: >-
|
|
{{ _custom_init_container_image |
|
|
default(lookup('env', 'RELATED_IMAGE_AWX_INIT_CONTAINER')) |
|
|
default(_default_init_container_image, true) }}
|
|
|
|
- name: Set default redis image
|
|
set_fact:
|
|
_default_redis_image: "{{ _redis_image }}:{{ _redis_image_version }}"
|
|
|
|
- name: Set user provided redis image
|
|
set_fact:
|
|
_custom_redis_image: "{{ redis_image }}:{{ redis_image_version }}"
|
|
when:
|
|
- redis_image | default([]) | length
|
|
- redis_image_version is defined or redis_image_version != ''
|
|
|
|
- name: Set Redis image URL
|
|
set_fact:
|
|
_redis_image: "{{ _custom_redis_image | default(lookup('env', 'RELATED_IMAGE_AWX_REDIS')) | default(_default_redis_image, true) }}"
|
|
|
|
- name: Set user provided control plane ee image
|
|
set_fact:
|
|
_custom_control_plane_ee_image: "{{ control_plane_ee_image }}"
|
|
when:
|
|
- control_plane_ee_image | default([]) | length
|
|
|
|
- name: Set Control Plane EE image URL
|
|
set_fact:
|
|
_control_plane_ee_image: "{{ _custom_control_plane_ee_image | default(lookup('env', 'RELATED_IMAGE_CONTROL_PLANE_EE')) | default(_control_plane_ee_image, true) }}"
|
|
|
|
- name: Apply deployment resources
|
|
k8s:
|
|
apply: yes
|
|
definition: "{{ lookup('template', 'deployment.yaml.j2') }}"
|
|
wait: yes
|
|
register: tower_deployment_result
|
|
|
|
- block:
|
|
- name: Delete pod to reload a resource configuration
|
|
k8s:
|
|
api_version: v1
|
|
state: absent
|
|
kind: Pod
|
|
namespace: '{{ ansible_operator_meta.namespace }}'
|
|
name: '{{ tower_pod_name }}'
|
|
wait: yes
|
|
when:
|
|
- tower_resources_result.changed
|
|
- tower_pod_name | length
|
|
|
|
- name: Get the new resource pod information after updating resource.
|
|
k8s_info:
|
|
kind: Pod
|
|
namespace: '{{ ansible_operator_meta.namespace }}'
|
|
label_selectors:
|
|
- "app.kubernetes.io/name={{ ansible_operator_meta.name }}"
|
|
- "app.kubernetes.io/managed-by={{ deployment_type }}-operator"
|
|
- "app.kubernetes.io/component={{ deployment_type }}"
|
|
field_selectors:
|
|
- status.phase=Running
|
|
register: _new_pod
|
|
until:
|
|
- _new_pod['resources'] | length
|
|
- _new_pod['resources'][0]['metadata']['name'] != tower_pod_name
|
|
delay: 5
|
|
retries: 60
|
|
|
|
- name: Update new resource pod name as a variable.
|
|
set_fact:
|
|
tower_pod_name: '{{ _new_pod["resources"][0]["metadata"]["name"] }}'
|
|
when:
|
|
- tower_resources_result.changed or tower_deployment_result.changed
|
|
|
|
- name: Verify the resource pod name is populated.
|
|
assert:
|
|
that: tower_pod_name != ''
|
|
fail_msg: "Could not find the tower pod's name."
|