From c128c3a1514cccd2e2806893830e1e1372bf443a Mon Sep 17 00:00:00 2001 From: Matt Brock Date: Wed, 4 Sep 2024 09:35:03 -0500 Subject: [PATCH] Adding extra pod labels to post-upgrade and post-delete hook job pods (#46029) * Adding extra pod labels to post-upgrade and post-delete hook job pods * Update examples/chart/teleport-kube-agent/templates/delete_hook.yaml Co-authored-by: Tiago Silva * Update snapshot to include app label in delete hook job * Correct snapshot app label to be in delete hook job, not the role * Correct snapshot app label to be in spec metadata * Adding a test for extraLabels.pod * Adding back hook.yaml --------- Co-authored-by: Matt Brock Co-authored-by: Tiago Silva --- .../templates/delete_hook.yaml | 9 +++++++++ .../teleport-kube-agent/templates/hook.yaml | 9 +++++++++ .../tests/__snapshot__/job_test.yaml.snap | 2 ++ .../teleport-kube-agent/tests/job_test.yaml | 18 ++++++++++++++++++ examples/chart/teleport-kube-agent/values.yaml | 2 +- 5 files changed, 39 insertions(+), 1 deletion(-) diff --git a/examples/chart/teleport-kube-agent/templates/delete_hook.yaml b/examples/chart/teleport-kube-agent/templates/delete_hook.yaml index 3690ae754e78..f0a4b2edf6b0 100644 --- a/examples/chart/teleport-kube-agent/templates/delete_hook.yaml +++ b/examples/chart/teleport-kube-agent/templates/delete_hook.yaml @@ -73,6 +73,15 @@ spec: template: metadata: name: {{ .Release.Name }}-delete-hook +{{- if .Values.annotations.pod }} + annotations: + {{- toYaml .Values.annotations.pod | nindent 8 }} +{{- end }} + labels: + app: {{ .Release.Name }} +{{- if .Values.extraLabels.pod }} + {{- toYaml .Values.extraLabels.pod | nindent 8 }} +{{- end }} spec: {{- if .Values.imagePullSecrets }} imagePullSecrets: diff --git a/examples/chart/teleport-kube-agent/templates/hook.yaml b/examples/chart/teleport-kube-agent/templates/hook.yaml index e6d7de50a80f..3a2f13e98e8f 100644 --- a/examples/chart/teleport-kube-agent/templates/hook.yaml +++ b/examples/chart/teleport-kube-agent/templates/hook.yaml @@ -63,6 +63,15 @@ spec: template: metadata: name: {{ .Release.Name }}-hook +{{- if .Values.annotations.pod }} + annotations: + {{- toYaml .Values.annotations.pod | nindent 8 }} +{{- end }} + labels: + app: {{ .Release.Name }} +{{- if .Values.extraLabels.pod }} + {{- toYaml .Values.extraLabels.pod | nindent 8 }} +{{- end }} spec: {{- if .Values.priorityClassName }} priorityClassName: {{ .Values.priorityClassName }} diff --git a/examples/chart/teleport-kube-agent/tests/__snapshot__/job_test.yaml.snap b/examples/chart/teleport-kube-agent/tests/__snapshot__/job_test.yaml.snap index 34b1f8008ee6..f6533a0aeea9 100644 --- a/examples/chart/teleport-kube-agent/tests/__snapshot__/job_test.yaml.snap +++ b/examples/chart/teleport-kube-agent/tests/__snapshot__/job_test.yaml.snap @@ -91,6 +91,8 @@ should not create ServiceAccount for post-delete hook if serviceAccount.create i spec: template: metadata: + labels: + app: RELEASE-NAME name: RELEASE-NAME-delete-hook spec: containers: diff --git a/examples/chart/teleport-kube-agent/tests/job_test.yaml b/examples/chart/teleport-kube-agent/tests/job_test.yaml index febb020f6d9d..f694e0644bb8 100644 --- a/examples/chart/teleport-kube-agent/tests/job_test.yaml +++ b/examples/chart/teleport-kube-agent/tests/job_test.yaml @@ -251,3 +251,21 @@ tests: apiVersion: rbac.authorization.k8s.io/v1 - matchSnapshot: path: spec.template.spec + + - it: should contain pod labels in the Job's pod spec if extraLabels.pod is set + template: delete_hook.yaml + # documentIndex: 0=ServiceAccount 1=Role 2=RoleBinding 3=Job + documentIndex: 3 + values: + - ../.lint/backwards-compatibility.yaml + set: + extraLabels: + pod: + testLabel: testValue + asserts: + - equal: + path: spec.template.metadata.labels + value: + app: RELEASE-NAME + testLabel: testValue + diff --git a/examples/chart/teleport-kube-agent/values.yaml b/examples/chart/teleport-kube-agent/values.yaml index 0af79df0e87a..beb0d284b1ef 100644 --- a/examples/chart/teleport-kube-agent/values.yaml +++ b/examples/chart/teleport-kube-agent/values.yaml @@ -1120,7 +1120,7 @@ extraLabels: # extraLabels.job(object) -- are labels to set on the post-delete Job created by the chart. job: {} # extraLabels.pod(object) -- are labels to set on the Pods created by the - # Deployment or StatefulSet. + # Deployment, StatefulSet, or Job. pod: {} # extraLabels.podDisruptionBudget(object) -- are labels to set on the podDisruptionBudget. podDisruptionBudget: {}