mirror of
https://github.com/ansible/awx-operator.git
synced 2026-05-08 06:12:54 +00:00
Merge pull request #251 from tchellomello/redeploy-it
Handle statefulset updates
This commit is contained in:
@@ -59,6 +59,7 @@ rules:
|
|||||||
- apps
|
- apps
|
||||||
resources:
|
resources:
|
||||||
- deployments/scale
|
- deployments/scale
|
||||||
|
- statefulsets/scale
|
||||||
verbs:
|
verbs:
|
||||||
- patch
|
- patch
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
|||||||
@@ -413,6 +413,7 @@ rules:
|
|||||||
- apps
|
- apps
|
||||||
resources:
|
resources:
|
||||||
- deployments/scale
|
- deployments/scale
|
||||||
|
- statefulsets/scale
|
||||||
verbs:
|
verbs:
|
||||||
- patch
|
- patch
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
|||||||
@@ -460,6 +460,7 @@ spec:
|
|||||||
- apps
|
- apps
|
||||||
resources:
|
resources:
|
||||||
- deployments/scale
|
- deployments/scale
|
||||||
|
- statefulsets/scale
|
||||||
verbs:
|
verbs:
|
||||||
- patch
|
- patch
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
|||||||
@@ -64,12 +64,42 @@
|
|||||||
set_fact:
|
set_fact:
|
||||||
pg_config: '{{ _generated_pg_config_resources["resources"] | default([]) | length | ternary(_generated_pg_config_resources, _pg_config) }}'
|
pg_config: '{{ _generated_pg_config_resources["resources"] | default([]) | length | ternary(_generated_pg_config_resources, _pg_config) }}'
|
||||||
|
|
||||||
- name: Create Database if no database is specified
|
- block:
|
||||||
k8s:
|
- name: Create Database if no database is specified
|
||||||
apply: true
|
k8s:
|
||||||
definition: "{{ lookup('template', 'tower_postgres.yaml.j2') }}"
|
apply: true
|
||||||
when:
|
definition: "{{ lookup('template', 'tower_postgres.yaml.j2') }}"
|
||||||
- pg_config['resources'][0]['data']['type'] | default('') | b64decode == 'managed'
|
register: create_statefulset_result
|
||||||
|
|
||||||
|
rescue:
|
||||||
|
- name: Scale down Deployment for migration
|
||||||
|
include_tasks: scale_down_deployment.yml
|
||||||
|
|
||||||
|
- name: Scale down PostgreSQL statefulset for migration
|
||||||
|
community.kubernetes.k8s_scale:
|
||||||
|
api_version: apps/v1
|
||||||
|
kind: StatefulSet
|
||||||
|
name: "{{ meta.name }}-postgres"
|
||||||
|
namespace: "{{ meta.namespace }}"
|
||||||
|
replicas: 0
|
||||||
|
wait: yes
|
||||||
|
|
||||||
|
- name: Remove PostgreSQL statefulset for upgrade
|
||||||
|
k8s:
|
||||||
|
state: absent
|
||||||
|
api_version: apps/v1
|
||||||
|
kind: StatefulSet
|
||||||
|
name: "{{ meta.name }}-postgres"
|
||||||
|
namespace: "{{ meta.namespace }}"
|
||||||
|
wait: yes
|
||||||
|
when: create_statefulset_result.error == 422
|
||||||
|
|
||||||
|
- name: Recreate PostgreSQL statefulset with updated values
|
||||||
|
k8s:
|
||||||
|
apply: true
|
||||||
|
definition: "{{ lookup('template', 'tower_postgres.yaml.j2') }}"
|
||||||
|
when: pg_config['resources'][0]['data']['type'] | default('') | b64decode == 'managed'
|
||||||
|
|
||||||
|
|
||||||
- name: Store Database Configuration
|
- name: Store Database Configuration
|
||||||
set_fact:
|
set_fact:
|
||||||
|
|||||||
@@ -24,23 +24,8 @@
|
|||||||
set_fact:
|
set_fact:
|
||||||
postgres_pod_name: "{{ postgres_pod['resources'][0]['metadata']['name'] }}"
|
postgres_pod_name: "{{ postgres_pod['resources'][0]['metadata']['name'] }}"
|
||||||
|
|
||||||
- name: Check for presence of Deployment
|
|
||||||
k8s_info:
|
|
||||||
api_version: v1
|
|
||||||
kind: Deployment
|
|
||||||
name: "{{ meta.name }}"
|
|
||||||
namespace: "{{ meta.namespace }}"
|
|
||||||
register: tower_deployment
|
|
||||||
|
|
||||||
- name: Scale down Deployment for migration
|
- name: Scale down Deployment for migration
|
||||||
k8s_scale:
|
include_tasks: scale_down_deployment.yml
|
||||||
api_version: v1
|
|
||||||
kind: Deployment
|
|
||||||
name: "{{ meta.name }}"
|
|
||||||
namespace: "{{ meta.namespace }}"
|
|
||||||
replicas: 0
|
|
||||||
wait: yes
|
|
||||||
when: tower_deployment['resources'] | length
|
|
||||||
|
|
||||||
- name: Set pg_dump command
|
- name: Set pg_dump command
|
||||||
set_fact:
|
set_fact:
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
- name: Apply deployment resources
|
- name: Apply deployment resources
|
||||||
k8s:
|
k8s:
|
||||||
apply: yes
|
apply: yes
|
||||||
definition: "{{ lookup('template', 'tower_deployment.yaml.j2') | from_yaml }}"
|
definition: "{{ lookup('template', 'tower_deployment.yaml.j2') }}"
|
||||||
wait: yes
|
wait: yes
|
||||||
register: tower_deployment_result
|
register: tower_deployment_result
|
||||||
|
|
||||||
|
|||||||
19
roles/installer/tasks/scale_down_deployment.yml
Normal file
19
roles/installer/tasks/scale_down_deployment.yml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Check for presence of Deployment
|
||||||
|
k8s_info:
|
||||||
|
api_version: v1
|
||||||
|
kind: Deployment
|
||||||
|
name: "{{ meta.name }}"
|
||||||
|
namespace: "{{ meta.namespace }}"
|
||||||
|
register: tower_deployment
|
||||||
|
|
||||||
|
- name: Scale down Deployment for migration
|
||||||
|
community.kubernetes.k8s_scale:
|
||||||
|
api_version: v1
|
||||||
|
kind: Deployment
|
||||||
|
name: "{{ meta.name }}"
|
||||||
|
namespace: "{{ meta.namespace }}"
|
||||||
|
replicas: 0
|
||||||
|
wait: yes
|
||||||
|
when: tower_deployment['resources'] | length
|
||||||
Reference in New Issue
Block a user