From 08776ca2b6093dddef247029aa4247f04eed721c Mon Sep 17 00:00:00 2001 From: Marcelo Moreira de Mello Date: Mon, 17 May 2021 15:08:18 -0400 Subject: [PATCH] Extended labels to AWX Backup/Restore --- roles/backup/tasks/main.yml | 17 +++++++ roles/backup/tasks/postgres.yml | 45 ++++++++++--------- roles/backup/templates/backup_pvc.yml.j2 | 6 +++ roles/backup/templates/management-pod.yml.j2 | 6 +++ roles/restore/tasks/main.yml | 17 +++++++ roles/restore/templates/management-pod.yml.j2 | 6 +++ roles/restore/templates/secrets.yml.j2 | 24 ++++++++++ 7 files changed, 99 insertions(+), 22 deletions(-) diff --git a/roles/backup/tasks/main.yml b/roles/backup/tasks/main.yml index 0ea4ce38..a140eaa2 100644 --- a/roles/backup/tasks/main.yml +++ b/roles/backup/tasks/main.yml @@ -1,4 +1,21 @@ --- +- name: Patching labels to {{ kind }} kind + k8s: + state: present + definition: + apiVersion: '{{ api_version }}' + kind: '{{ kind }}' + name: '{{ meta.name }}' + namespace: '{{ meta.namespace }}' + metadata: + name: '{{ meta.name }}' + namespace: '{{ meta.namespace }}' + labels: + app.kubernetes.io/name: '{{ meta.name }}' + app.kubernetes.io/part-of: '{{ meta.name }}' + app.kubernetes.io/managed-by: '{{ deployment_type }}-operator' + app.kubernetes.io/component: '{{ deployment_type }}' + app.kubernetes.io/operator-version: '{{ lookup("env", "OPERATOR_VERSION") }}' - name: Look up details for this backup object k8s_info: diff --git a/roles/backup/tasks/postgres.yml b/roles/backup/tasks/postgres.yml index 64876719..7ac91a81 100644 --- a/roles/backup/tasks/postgres.yml +++ b/roles/backup/tasks/postgres.yml @@ -19,29 +19,31 @@ awx_postgres_database: "{{ pg_config['resources'][0]['data']['database'] | b64decode }}" awx_postgres_port: "{{ pg_config['resources'][0]['data']['port'] | b64decode }}" awx_postgres_host: "{{ pg_config['resources'][0]['data']['host'] | b64decode }}" - awx_postgres_type: "{{ pg_config['resources'][0]['data']['type'] | b64decode | default('unmanaged') }}" + awx_postgres_type: "{{ pg_config['resources'][0]['data']['type'] | default('unmanaged'|b64encode) | b64decode }}" -- name: Default label selector to custom resource generated postgres - set_fact: - postgres_label_selector: "app.kubernetes.io/name={{ deployment_name }}-postgres" - when: postgres_label_selector is not defined +- block: + - name: Delete pod to reload a resource configuration + set_fact: + postgres_label_selector: "app.kubernetes.io/name={{ deployment_name }}-postgres" + when: postgres_label_selector is not defined -- name: Get the postgres pod information - k8s_info: - kind: Pod - namespace: '{{ meta.namespace }}' - label_selectors: - - "{{ postgres_label_selector }}" - register: postgres_pod - until: - - "postgres_pod['resources'] | length" - - "postgres_pod['resources'][0]['status']['phase'] == 'Running'" - delay: 5 - retries: 60 + - name: Get the postgres pod information + k8s_info: + kind: Pod + namespace: '{{ meta.namespace }}' + label_selectors: + - "{{ postgres_label_selector }}" + register: postgres_pod + until: + - "postgres_pod['resources'] | length" + - "postgres_pod['resources'][0]['status']['phase'] == 'Running'" + delay: 5 + retries: 60 -- name: Set the resource pod name as a variable. - set_fact: - postgres_pod_name: "{{ postgres_pod['resources'][0]['metadata']['name'] }}" + - name: Set the resource pod name as a variable. + set_fact: + postgres_pod_name: "{{ postgres_pod['resources'][0]['metadata']['name'] }}" + when: awx_postgres_type == 'managed' - name: Determine the timestamp for the backup once for all nodes set_fact: @@ -74,8 +76,7 @@ - name: Set full resolvable host name for postgres pod set_fact: - resolvable_db_host: "{{ awx_postgres_host }}.{{ meta.namespace }}.svc.cluster.local" - when: awx_postgres_type == 'managed' + resolvable_db_host: '{{ (awx_postgres_type == "managed") | ternary(awx_postgres_host + "." + meta.namespace + ".svc.cluster.local", awx_postgres_host) }}' # noqa 204 - name: Set pg_dump command set_fact: diff --git a/roles/backup/templates/backup_pvc.yml.j2 b/roles/backup/templates/backup_pvc.yml.j2 index 67ea439a..87635fe7 100644 --- a/roles/backup/templates/backup_pvc.yml.j2 +++ b/roles/backup/templates/backup_pvc.yml.j2 @@ -4,6 +4,12 @@ kind: PersistentVolumeClaim metadata: name: {{ deployment_name }}-backup-claim namespace: {{ backup_pvc_namespace }} + labels: + app.kubernetes.io/name: '{{ meta.name }}' + app.kubernetes.io/part-of: '{{ meta.name }}' + app.kubernetes.io/managed-by: '{{ deployment_type }}-operator' + app.kubernetes.io/component: '{{ deployment_type }}' + app.kubernetes.io/operator-version: '{{ lookup("env", "OPERATOR_VERSION") }}' spec: accessModes: - ReadWriteOnce diff --git a/roles/backup/templates/management-pod.yml.j2 b/roles/backup/templates/management-pod.yml.j2 index 9aa99a1c..8dbc12c8 100644 --- a/roles/backup/templates/management-pod.yml.j2 +++ b/roles/backup/templates/management-pod.yml.j2 @@ -4,6 +4,12 @@ kind: Pod metadata: name: {{ meta.name }}-db-management namespace: {{ backup_pvc_namespace }} + labels: + app.kubernetes.io/name: '{{ meta.name }}' + app.kubernetes.io/part-of: '{{ meta.name }}' + app.kubernetes.io/managed-by: '{{ deployment_type }}-operator' + app.kubernetes.io/component: '{{ deployment_type }}' + app.kubernetes.io/operator-version: '{{ lookup("env", "OPERATOR_VERSION") }}' spec: containers: - name: {{ meta.name }}-db-management diff --git a/roles/restore/tasks/main.yml b/roles/restore/tasks/main.yml index b9cc292e..98183eb4 100644 --- a/roles/restore/tasks/main.yml +++ b/roles/restore/tasks/main.yml @@ -1,4 +1,21 @@ --- +- name: Patching labels to {{ kind }} kind + k8s: + state: present + definition: + apiVersion: '{{ api_version }}' + kind: '{{ kind }}' + name: '{{ meta.name }}' + namespace: '{{ meta.namespace }}' + metadata: + name: '{{ meta.name }}' + namespace: '{{ meta.namespace }}' + labels: + app.kubernetes.io/name: '{{ meta.name }}' + app.kubernetes.io/part-of: '{{ meta.name }}' + app.kubernetes.io/managed-by: '{{ deployment_type }}-operator' + app.kubernetes.io/component: '{{ deployment_type }}' + app.kubernetes.io/operator-version: '{{ lookup("env", "OPERATOR_VERSION") }}' - name: Look up details for this restore object k8s_info: diff --git a/roles/restore/templates/management-pod.yml.j2 b/roles/restore/templates/management-pod.yml.j2 index 301bbfbb..d35dd2f5 100644 --- a/roles/restore/templates/management-pod.yml.j2 +++ b/roles/restore/templates/management-pod.yml.j2 @@ -4,6 +4,12 @@ kind: Pod metadata: name: {{ meta.name }}-db-management namespace: {{ backup_pvc_namespace }} + labels: + app.kubernetes.io/name: '{{ meta.name }}' + app.kubernetes.io/part-of: '{{ meta.name }}' + app.kubernetes.io/managed-by: '{{ deployment_type }}-operator' + app.kubernetes.io/component: '{{ deployment_type }}' + app.kubernetes.io/operator-version: '{{ lookup("env", "OPERATOR_VERSION") }}' spec: containers: - name: {{ meta.name }}-db-management diff --git a/roles/restore/templates/secrets.yml.j2 b/roles/restore/templates/secrets.yml.j2 index fecfdcc5..a4803355 100644 --- a/roles/restore/templates/secrets.yml.j2 +++ b/roles/restore/templates/secrets.yml.j2 @@ -5,6 +5,12 @@ kind: Secret metadata: name: '{{ postgres_configuration_secret_name }}' namespace: '{{ meta.namespace }}' + labels: + app.kubernetes.io/name: '{{ meta.name }}' + app.kubernetes.io/part-of: '{{ meta.name }}' + app.kubernetes.io/managed-by: '{{ deployment_type }}-operator' + app.kubernetes.io/component: '{{ deployment_type }}' + app.kubernetes.io/operator-version: '{{ lookup("env", "OPERATOR_VERSION") }}' stringData: password: '{{ database_password }}' username: '{{ database_username }}' @@ -20,6 +26,12 @@ kind: Secret metadata: name: '{{ secret_key_secret_name }}' namespace: '{{ meta.namespace }}' + labels: + app.kubernetes.io/name: '{{ meta.name }}' + app.kubernetes.io/part-of: '{{ meta.name }}' + app.kubernetes.io/managed-by: '{{ deployment_type }}-operator' + app.kubernetes.io/component: '{{ deployment_type }}' + app.kubernetes.io/operator-version: '{{ lookup("env", "OPERATOR_VERSION") }}' stringData: secret_key: '{{ secret_key }}' @@ -30,6 +42,12 @@ kind: Secret metadata: name: '{{ admin_password_secret_name }}' namespace: '{{ meta.namespace }}' + labels: + app.kubernetes.io/name: '{{ meta.name }}' + app.kubernetes.io/part-of: '{{ meta.name }}' + app.kubernetes.io/managed-by: '{{ deployment_type }}-operator' + app.kubernetes.io/component: '{{ deployment_type }}' + app.kubernetes.io/operator-version: '{{ lookup("env", "OPERATOR_VERSION") }}' stringData: password: '{{ admin_password }}' @@ -40,5 +58,11 @@ kind: Secret metadata: name: '{{ broadcast_websocket_secret_name }}' namespace: '{{ meta.namespace }}' + labels: + app.kubernetes.io/name: '{{ meta.name }}' + app.kubernetes.io/part-of: '{{ meta.name }}' + app.kubernetes.io/managed-by: '{{ deployment_type }}-operator' + app.kubernetes.io/component: '{{ deployment_type }}' + app.kubernetes.io/operator-version: '{{ lookup("env", "OPERATOR_VERSION") }}' stringData: secret: '{{ broadcast_websocket }}'