From 1e651dc3c38e1e261ec59d9955af2f905f446e02 Mon Sep 17 00:00:00 2001 From: Gage Hugo Date: Fri, 1 Oct 2021 17:13:56 -0500 Subject: [PATCH] Helm 3 - Fix Job Labels If labels are not specified on a Job, kubernetes defaults them to include the labels of their underlying Pod template. Helm 3 injects metadata into all resources [0] including a `app.kubernetes.io/managed-by: Helm` label. Thus when kubernetes sees a Job's labels they are no longer empty and thus do not get defaulted to the underlying Pod template's labels. This is a problem since Job labels are depended on by - Armada pre-upgrade delete hooks - Armada wait logic configurations - kubernetes-entrypoint dependencies Thus for each Job template this adds labels matching the underlying Pod template to retain the same labels that were present with Helm 2. [0]: https://github.com/helm/helm/pull/7649 Change-Id: Ib5a7eb494fb776d74e1edc767b9522b02453b19d --- cinder/Chart.yaml | 2 +- cinder/templates/job-backup-storage-init.yaml | 2 ++ cinder/templates/job-clean.yaml | 2 ++ cinder/templates/job-create-internal-tenant.yaml | 2 +- cinder/templates/job-storage-init.yaml | 2 ++ glance/Chart.yaml | 2 +- glance/templates/job-metadefs-load.yaml | 2 ++ heat/Chart.yaml | 2 +- heat/templates/job-ks-user-domain.yaml | 2 ++ heat/templates/job-trusts.yaml | 2 ++ horizon/Chart.yaml | 2 +- horizon/templates/job-db-sync.yaml | 2 ++ keystone/Chart.yaml | 2 +- keystone/templates/job-credential-cleanup.yaml | 2 ++ keystone/templates/job-credential-setup.yaml | 2 ++ keystone/templates/job-domain-manage.yaml | 2 ++ nova/Chart.yaml | 2 +- nova/templates/job-cell-setup.yaml | 2 ++ placement/Chart.yaml | 2 +- placement/templates/job-db-migrate.yaml | 2 ++ releasenotes/notes/cinder.yaml | 1 + releasenotes/notes/glance.yaml | 1 + releasenotes/notes/heat.yaml | 1 + releasenotes/notes/horizon.yaml | 1 + releasenotes/notes/keystone.yaml | 1 + releasenotes/notes/nova.yaml | 1 + releasenotes/notes/placement.yaml | 1 + 27 files changed, 39 insertions(+), 8 deletions(-) diff --git a/cinder/Chart.yaml b/cinder/Chart.yaml index e538b33498..746bfcdcc1 100644 --- a/cinder/Chart.yaml +++ b/cinder/Chart.yaml @@ -14,7 +14,7 @@ apiVersion: v1 appVersion: v1.0.0 description: OpenStack-Helm Cinder name: cinder -version: 0.2.9 +version: 0.2.10 home: https://docs.openstack.org/cinder/latest/ icon: https://www.openstack.org/themes/openstack/images/project-mascots/Cinder/OpenStack_Project_Cinder_vertical.png sources: diff --git a/cinder/templates/job-backup-storage-init.yaml b/cinder/templates/job-backup-storage-init.yaml index a310aebbc6..f37fb68bca 100644 --- a/cinder/templates/job-backup-storage-init.yaml +++ b/cinder/templates/job-backup-storage-init.yaml @@ -50,6 +50,8 @@ apiVersion: batch/v1 kind: Job metadata: name: cinder-backup-storage-init + labels: +{{ tuple $envAll "cinder" "backup-storage-init" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} annotations: {{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }} spec: diff --git a/cinder/templates/job-clean.yaml b/cinder/templates/job-clean.yaml index a5e118b31c..738e145bed 100755 --- a/cinder/templates/job-clean.yaml +++ b/cinder/templates/job-clean.yaml @@ -49,6 +49,8 @@ apiVersion: batch/v1 kind: Job metadata: name: {{ print "cinder-clean" }} + labels: +{{ tuple $envAll "cinder" "clean" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} annotations: "helm.sh/hook": pre-delete "helm.sh/hook-delete-policy": hook-succeeded diff --git a/cinder/templates/job-create-internal-tenant.yaml b/cinder/templates/job-create-internal-tenant.yaml index ca2f863a53..2d4a62308e 100644 --- a/cinder/templates/job-create-internal-tenant.yaml +++ b/cinder/templates/job-create-internal-tenant.yaml @@ -34,7 +34,7 @@ metadata: "helm.sh/hook-delete-policy": before-hook-creation {{- end }} labels: - application: {{ printf "%s-%s" $serviceUserPretty "create-internal-tenant" | quote }} +{{ tuple $envAll "cinder" "create-internal-tenant" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} spec: template: metadata: diff --git a/cinder/templates/job-storage-init.yaml b/cinder/templates/job-storage-init.yaml index 810a428fd8..6a7adc3c5b 100755 --- a/cinder/templates/job-storage-init.yaml +++ b/cinder/templates/job-storage-init.yaml @@ -52,6 +52,8 @@ apiVersion: batch/v1 kind: Job metadata: name: cinder-storage-init + labels: +{{ tuple $envAll "cinder" "storage-init" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} spec: template: metadata: diff --git a/glance/Chart.yaml b/glance/Chart.yaml index 098a411341..f1f278aa74 100644 --- a/glance/Chart.yaml +++ b/glance/Chart.yaml @@ -14,7 +14,7 @@ apiVersion: v1 appVersion: v1.0.0 description: OpenStack-Helm Glance name: glance -version: 0.2.7 +version: 0.2.8 home: https://docs.openstack.org/glance/latest/ icon: https://www.openstack.org/themes/openstack/images/project-mascots/Glance/OpenStack_Project_Glance_vertical.png sources: diff --git a/glance/templates/job-metadefs-load.yaml b/glance/templates/job-metadefs-load.yaml index bebae08e92..5c162a5f91 100644 --- a/glance/templates/job-metadefs-load.yaml +++ b/glance/templates/job-metadefs-load.yaml @@ -22,6 +22,8 @@ apiVersion: batch/v1 kind: Job metadata: name: glance-metadefs-load + labels: +{{ tuple $envAll "glance" "metadefs-load" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} annotations: {{- if .Values.helm3_hook }} helm.sh/hook: post-install,post-upgrade diff --git a/heat/Chart.yaml b/heat/Chart.yaml index 3660336293..6b00e760a9 100644 --- a/heat/Chart.yaml +++ b/heat/Chart.yaml @@ -14,7 +14,7 @@ apiVersion: v1 appVersion: v1.0.0 description: OpenStack-Helm Heat name: heat -version: 0.2.6 +version: 0.2.7 home: https://docs.openstack.org/heat/latest/ icon: https://www.openstack.org/themes/openstack/images/project-mascots/Heat/OpenStack_Project_Heat_vertical.png sources: diff --git a/heat/templates/job-ks-user-domain.yaml b/heat/templates/job-ks-user-domain.yaml index aead9f7202..a70960877d 100644 --- a/heat/templates/job-ks-user-domain.yaml +++ b/heat/templates/job-ks-user-domain.yaml @@ -22,6 +22,8 @@ apiVersion: batch/v1 kind: Job metadata: name: heat-domain-ks-user + labels: +{{ tuple $envAll "heat" "ks-user-domain" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} annotations: {{- if .Values.helm3_hook }} "helm.sh/hook": post-install,post-upgrade diff --git a/heat/templates/job-trusts.yaml b/heat/templates/job-trusts.yaml index 5f6f23d779..afa6bdec30 100644 --- a/heat/templates/job-trusts.yaml +++ b/heat/templates/job-trusts.yaml @@ -24,6 +24,8 @@ apiVersion: batch/v1 kind: Job metadata: name: heat-trusts + labels: +{{ tuple $envAll "heat" "trusts" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} annotations: {{- if .Values.helm3_hook }} "helm.sh/hook": post-install,post-upgrade diff --git a/horizon/Chart.yaml b/horizon/Chart.yaml index f542612ae4..905345de70 100644 --- a/horizon/Chart.yaml +++ b/horizon/Chart.yaml @@ -14,7 +14,7 @@ apiVersion: v1 appVersion: v1.0.0 description: OpenStack-Helm Horizon name: horizon -version: 0.2.9 +version: 0.2.10 home: https://docs.openstack.org/horizon/latest/ icon: https://www.openstack.org/themes/openstack/images/project-mascots/Horizon/OpenStack_Project_Horizon_vertical.png sources: diff --git a/horizon/templates/job-db-sync.yaml b/horizon/templates/job-db-sync.yaml index 9c2f88b3c8..648a5b211d 100644 --- a/horizon/templates/job-db-sync.yaml +++ b/horizon/templates/job-db-sync.yaml @@ -25,6 +25,8 @@ apiVersion: batch/v1 kind: Job metadata: name: horizon-db-sync + labels: +{{ tuple $envAll "horizon" "db-sync" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} annotations: {{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }} spec: diff --git a/keystone/Chart.yaml b/keystone/Chart.yaml index fec531494a..721c20e24c 100644 --- a/keystone/Chart.yaml +++ b/keystone/Chart.yaml @@ -14,7 +14,7 @@ apiVersion: v1 appVersion: v1.0.0 description: OpenStack-Helm Keystone name: keystone -version: 0.2.11 +version: 0.2.12 home: https://docs.openstack.org/keystone/latest/ icon: https://www.openstack.org/themes/openstack/images/project-mascots/Keystone/OpenStack_Project_Keystone_vertical.png sources: diff --git a/keystone/templates/job-credential-cleanup.yaml b/keystone/templates/job-credential-cleanup.yaml index fe74ecf9a1..854c5b67de 100644 --- a/keystone/templates/job-credential-cleanup.yaml +++ b/keystone/templates/job-credential-cleanup.yaml @@ -28,6 +28,8 @@ apiVersion: batch/v1 kind: Job metadata: name: "keystone-credential-cleanup" + labels: +{{ tuple $envAll "keystone" "credential-cleanup" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} annotations: "helm.sh/hook": pre-delete "helm.sh/hook-delete-policy": hook-succeeded, hook-failed diff --git a/keystone/templates/job-credential-setup.yaml b/keystone/templates/job-credential-setup.yaml index 2a2c13db7f..1d30eb1432 100644 --- a/keystone/templates/job-credential-setup.yaml +++ b/keystone/templates/job-credential-setup.yaml @@ -53,6 +53,8 @@ apiVersion: batch/v1 kind: Job metadata: name: keystone-credential-setup + labels: +{{ tuple $envAll "keystone" "credential-setup" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} annotations: {{- if .Values.helm3_hook }} "helm.sh/hook": post-install,post-upgrade diff --git a/keystone/templates/job-domain-manage.yaml b/keystone/templates/job-domain-manage.yaml index 1571d5cc8e..5a1c8e2b92 100644 --- a/keystone/templates/job-domain-manage.yaml +++ b/keystone/templates/job-domain-manage.yaml @@ -25,6 +25,8 @@ apiVersion: batch/v1 kind: Job metadata: name: keystone-domain-manage + labels: +{{ tuple $envAll "keystone" "domain-manage" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} annotations: "helm.sh/hook": post-install,post-upgrade "helm.sh/hook-delete-policy": before-hook-creation diff --git a/nova/Chart.yaml b/nova/Chart.yaml index 4b01a5058d..073ddd3f86 100644 --- a/nova/Chart.yaml +++ b/nova/Chart.yaml @@ -14,7 +14,7 @@ apiVersion: v1 appVersion: v1.0.0 description: OpenStack-Helm Nova name: nova -version: 0.2.20 +version: 0.2.21 home: https://docs.openstack.org/nova/latest/ icon: https://www.openstack.org/themes/openstack/images/project-mascots/Nova/OpenStack_Project_Nova_vertical.png sources: diff --git a/nova/templates/job-cell-setup.yaml b/nova/templates/job-cell-setup.yaml index b8f0eed8b5..429fed53bb 100644 --- a/nova/templates/job-cell-setup.yaml +++ b/nova/templates/job-cell-setup.yaml @@ -22,6 +22,8 @@ apiVersion: batch/v1 kind: Job metadata: name: nova-cell-setup + labels: +{{ tuple $envAll "nova" "cell-setup" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} annotations: {{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }} spec: diff --git a/placement/Chart.yaml b/placement/Chart.yaml index c33d8f5f91..1d5d88b683 100644 --- a/placement/Chart.yaml +++ b/placement/Chart.yaml @@ -16,7 +16,7 @@ apiVersion: v1 appVersion: v1.0.0 description: OpenStack-Helm Placement name: placement -version: 0.2.3 +version: 0.2.4 home: https://docs.openstack.org/placement/latest/ icon: https://www.openstack.org/themes/openstack/images/project-mascots/Placement/OpenStack_Project_Placement_vertical.png sources: diff --git a/placement/templates/job-db-migrate.yaml b/placement/templates/job-db-migrate.yaml index b9100891ca..b63ff0b70a 100644 --- a/placement/templates/job-db-migrate.yaml +++ b/placement/templates/job-db-migrate.yaml @@ -22,6 +22,8 @@ apiVersion: batch/v1 kind: Job metadata: name: placement-db-migrate + labels: +{{ tuple $envAll "placement" "db-migrate" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} annotations: {{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }} spec: diff --git a/releasenotes/notes/cinder.yaml b/releasenotes/notes/cinder.yaml index a3baedfa9b..95d6e50359 100644 --- a/releasenotes/notes/cinder.yaml +++ b/releasenotes/notes/cinder.yaml @@ -26,4 +26,5 @@ cinder: - 0.2.7 Add Victoria and Wallaby releases support - 0.2.8 Add logic to bootstrap to handle upgrade timing issue - 0.2.9 Mount rabbitmq TLS secret for audit usage cronjob + - 0.2.10 Helm 3 - Fix Job Labels ... diff --git a/releasenotes/notes/glance.yaml b/releasenotes/notes/glance.yaml index 93f6dd1081..d4dd283f06 100644 --- a/releasenotes/notes/glance.yaml +++ b/releasenotes/notes/glance.yaml @@ -17,4 +17,5 @@ glance: - 0.2.5 Add Ussuri release support - 0.2.6 Add Victoria and Wallaby releases support - 0.2.7 Added helm.sh/hook for the jobs + - 0.2.8 Helm 3 - Fix Job Labels ... diff --git a/releasenotes/notes/heat.yaml b/releasenotes/notes/heat.yaml index e117f2d7a3..34089dc8cb 100644 --- a/releasenotes/notes/heat.yaml +++ b/releasenotes/notes/heat.yaml @@ -13,4 +13,5 @@ heat: - 0.2.4 Add Ussuri release support - 0.2.5 Add Victoria and Wallaby releases support - 0.2.6 Added post-install and post-upgrade helm-hook for jobs + - 0.2.7 Helm 3 - Fix Job Labels ... diff --git a/releasenotes/notes/horizon.yaml b/releasenotes/notes/horizon.yaml index 4e470be335..0f0c4c27c8 100644 --- a/releasenotes/notes/horizon.yaml +++ b/releasenotes/notes/horizon.yaml @@ -19,4 +19,5 @@ horizon: - 0.2.7 Fix OPENSTACK_ENABLE_PASSWORD_RETRIEVE value - 0.2.8 Add default polices - 0.2.9 Removed default policy in chart in favor of default policy in code + - 0.2.10 Helm 3 - Fix Job Labels ... diff --git a/releasenotes/notes/keystone.yaml b/releasenotes/notes/keystone.yaml index dd92c9e72a..c93ef8a6d0 100644 --- a/releasenotes/notes/keystone.yaml +++ b/releasenotes/notes/keystone.yaml @@ -27,4 +27,5 @@ keystone: - 0.2.9 Add Victoria and Wallaby releases support - 0.2.10 Make internal TLS more robust - 0.2.11 Add missing slash + - 0.2.12 Helm 3 - Fix Job Labels ... diff --git a/releasenotes/notes/nova.yaml b/releasenotes/notes/nova.yaml index 7c74e57463..f7f2e3bc8e 100644 --- a/releasenotes/notes/nova.yaml +++ b/releasenotes/notes/nova.yaml @@ -41,4 +41,5 @@ nova: - 0.2.18 Give service time to restore - 0.2.19 Define service cleaner sleep time - 0.2.20 Update script to true of grep does get anything. + - 0.2.21 Helm 3 - Fix Job Labels ... diff --git a/releasenotes/notes/placement.yaml b/releasenotes/notes/placement.yaml index 85945aa4ed..cd2dabfbbd 100644 --- a/releasenotes/notes/placement.yaml +++ b/releasenotes/notes/placement.yaml @@ -12,4 +12,5 @@ placement: - 0.2.1 Add Ussuri release support - 0.2.2 Add Victoria and Wallaby releases support - 0.2.3 Added helm.sh/hook annotations for Jobs + - 0.2.4 Helm 3 - Fix Job Labels ...