From 6853ed9a5a10487ec63f2b582024bf736731f285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Bregu=C5=82a?= Date: Sat, 31 Oct 2020 17:55:09 +0100 Subject: [PATCH] All k8s resources should have global labels --- .../scheduler/scheduler-serviceaccount.yaml | 6 ++--- chart/templates/secrets/redis-secrets.yaml | 3 +++ .../webserver/webserver-serviceaccount.yaml | 10 ++++----- .../workers/worker-serviceaccount.yaml | 12 +++++----- chart/tests/test_basic_helm_chart.py | 22 ++++++++++++++++++- 5 files changed, 36 insertions(+), 17 deletions(-) diff --git a/chart/templates/scheduler/scheduler-serviceaccount.yaml b/chart/templates/scheduler/scheduler-serviceaccount.yaml index c5e97f1037106..2d61c768f68ea 100644 --- a/chart/templates/scheduler/scheduler-serviceaccount.yaml +++ b/chart/templates/scheduler/scheduler-serviceaccount.yaml @@ -28,13 +28,13 @@ metadata: release: {{ .Release.Name }} chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" heritage: {{ .Release.Service }} + {{- with .Values.labels }} + {{ toYaml . | nindent 4 }} + {{- end }} {{- with .Values.scheduler.serviceAccountAnnotations }} annotations: {{- range $key, $value := . }} {{- printf "%s: %s" $key (tpl $value $ | quote) | nindent 4 }} {{- end }} {{- end }} -{{- with .Values.labels }} -{{ toYaml . | indent 4 }} -{{- end }} {{- end }} diff --git a/chart/templates/secrets/redis-secrets.yaml b/chart/templates/secrets/redis-secrets.yaml index 7c9fe26ecf9e3..958474d232403 100644 --- a/chart/templates/secrets/redis-secrets.yaml +++ b/chart/templates/secrets/redis-secrets.yaml @@ -51,6 +51,9 @@ metadata: release: {{ .Release.Name }} chart: {{ .Chart.Name }} heritage: {{ .Release.Service }} + {{- with .Values.labels }} + {{ toYaml . | nindent 4 }} + {{- end }} annotations: "helm.sh/hook": "pre-install" "helm.sh/hook-delete-policy": "before-hook-creation" diff --git a/chart/templates/webserver/webserver-serviceaccount.yaml b/chart/templates/webserver/webserver-serviceaccount.yaml index ba99cea9ef193..e42d767c1e28b 100644 --- a/chart/templates/webserver/webserver-serviceaccount.yaml +++ b/chart/templates/webserver/webserver-serviceaccount.yaml @@ -27,12 +27,10 @@ metadata: release: {{ .Release.Name }} chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" heritage: {{ .Release.Service }} + {{- with .Values.labels }} + {{ toYaml . | nindent 4 }} + {{- end }} {{- with .Values.webserver.serviceAccountAnnotations }} annotations: - {{- range $key, $value := . }} - {{- printf "%s: %s" $key (tpl $value $ | quote) | nindent 4 }} - {{- end }} + {{ toYaml . | nindent 4 }} {{- end }} -{{- with .Values.labels }} -{{ toYaml . | indent 4 }} -{{- end }} diff --git a/chart/templates/workers/worker-serviceaccount.yaml b/chart/templates/workers/worker-serviceaccount.yaml index 3f2df95d4220b..d7ed9270092c8 100644 --- a/chart/templates/workers/worker-serviceaccount.yaml +++ b/chart/templates/workers/worker-serviceaccount.yaml @@ -28,13 +28,11 @@ metadata: release: {{ .Release.Name }} chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" heritage: {{ .Release.Service }} - {{- with .Values.workers.serviceAccountAnnotations }} + {{- with .Values.labels }} + {{ toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.workers.serviceAccountAnnotations}} annotations: - {{- range $key, $value := . }} - {{- printf "%s: %s" $key (tpl $value $ | quote) | nindent 4 }} - {{- end }} + {{ toYaml . | nindent 4 }} {{- end }} - {{- with .Values.labels }} -{{ toYaml . | indent 4 }} -{{- end }} {{- end }} diff --git a/chart/tests/test_basic_helm_chart.py b/chart/tests/test_basic_helm_chart.py index dcf20cf195ae8..e45435e7ae170 100644 --- a/chart/tests/test_basic_helm_chart.py +++ b/chart/tests/test_basic_helm_chart.py @@ -17,6 +17,8 @@ import unittest +import jmespath + from tests.helm_template_generator import render_chart OBJECT_COUNT_IN_BASIC_DEPLOYMENT = 22 @@ -24,7 +26,15 @@ class TestBaseChartTest(unittest.TestCase): def test_basic_deployments(self): - k8s_objects = render_chart("TEST-BASIC", {"chart": {'metadata': 'AA'}}) + k8s_objects = render_chart( + "TEST-BASIC", + values={ + "chart": { + 'metadata': 'AA', + }, + 'labels': {"TEST-LABEL": "TEST-VALUE"}, + }, + ) list_of_kind_names_tuples = [ (k8s_object['kind'], k8s_object['metadata']['name']) for k8s_object in k8s_objects ] @@ -56,6 +66,16 @@ def test_basic_deployments(self): ], ) self.assertEqual(OBJECT_COUNT_IN_BASIC_DEPLOYMENT, len(k8s_objects)) + for k8s_object in k8s_objects: + labels = jmespath.search('metadata.labels', k8s_object) or {} + if 'postgresql' in labels.get('chart'): + continue + k8s_name = k8s_object['kind'] + ":" + k8s_object['metadata']['name'] + self.assertEqual( + 'TEST-VALUE', + labels.get("TEST-LABEL"), + f"Missing label TEST-LABEL on {k8s_name}. Current labels: {labels}", + ) def test_basic_deployment_without_default_users(self): k8s_objects = render_chart("TEST-BASIC", {"webserver": {'defaultUser': {'enabled': False}}})