You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by je...@apache.org on 2022/08/23 18:13:12 UTC
[airflow] branch main updated: Added labels to specific airflow components (#25031)
This is an automated email from the ASF dual-hosted git repository.
jedcunningham pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 1e807ce974 Added labels to specific airflow components (#25031)
1e807ce974 is described below
commit 1e807ce97446c16270c61167a3e03d3e2bfb0f1d
Author: Rishabh Karajgi <ri...@gmail.com>
AuthorDate: Tue Aug 23 23:43:01 2022 +0530
Added labels to specific airflow components (#25031)
---
chart/files/pod-template-file.kubernetes-helm-yaml | 4 +-
chart/templates/cleanup/cleanup-cronjob.yaml | 6 +-
.../templates/cleanup/cleanup-serviceaccount.yaml | 6 +-
chart/templates/flower/flower-deployment.yaml | 4 +-
chart/templates/flower/flower-ingress.yaml | 6 +-
chart/templates/flower/flower-networkpolicy.yaml | 4 +-
chart/templates/flower/flower-service.yaml | 4 +-
chart/templates/flower/flower-serviceaccount.yaml | 6 +-
.../jobs/create-user-job-serviceaccount.yaml | 6 +-
chart/templates/jobs/create-user-job.yaml | 4 +-
.../templates/scheduler/scheduler-deployment.yaml | 4 +-
.../scheduler/scheduler-networkpolicy.yaml | 4 +-
.../scheduler/scheduler-poddisruptionbudget.yaml | 4 +-
chart/templates/scheduler/scheduler-service.yaml | 4 +-
.../scheduler/scheduler-serviceaccount.yaml | 6 +-
.../templates/triggerer/triggerer-deployment.yaml | 6 +-
.../triggerer/triggerer-serviceaccount.yaml | 6 +-
.../templates/webserver/webserver-deployment.yaml | 4 +-
chart/templates/webserver/webserver-ingress.yaml | 6 +-
.../webserver/webserver-networkpolicy.yaml | 4 +-
.../webserver/webserver-poddisruptionbudget.yaml | 4 +-
chart/templates/webserver/webserver-service.yaml | 4 +-
.../webserver/webserver-serviceaccount.yaml | 6 +-
chart/templates/workers/worker-deployment.yaml | 4 +-
chart/templates/workers/worker-kedaautoscaler.yaml | 4 +-
chart/templates/workers/worker-networkpolicy.yaml | 4 +-
chart/templates/workers/worker-service.yaml | 4 +-
chart/templates/workers/worker-serviceaccount.yaml | 6 +-
chart/values.schema.json | 56 +++++++++++++++
chart/values.yaml | 20 ++++++
tests/charts/test_cleanup_pods.py | 33 +++++++++
tests/charts/test_create_user_job.py | 27 ++++++++
tests/charts/test_flower.py | 59 ++++++++++++++++
tests/charts/test_ingress_flower.py | 15 ++++
tests/charts/test_ingress_web.py | 13 ++++
tests/charts/test_pdb_scheduler.py | 16 +++++
tests/charts/test_pdb_webserver.py | 15 ++++
tests/charts/test_pod_template_file.py | 15 ++++
tests/charts/test_scheduler.py | 62 +++++++++++++++++
tests/charts/test_triggerer.py | 29 ++++++++
tests/charts/test_webserver.py | 53 ++++++++++++++
tests/charts/test_worker.py | 81 ++++++++++++++++++++++
42 files changed, 561 insertions(+), 67 deletions(-)
diff --git a/chart/files/pod-template-file.kubernetes-helm-yaml b/chart/files/pod-template-file.kubernetes-helm-yaml
index 12ec49a71c..35b2b382ec 100644
--- a/chart/files/pod-template-file.kubernetes-helm-yaml
+++ b/chart/files/pod-template-file.kubernetes-helm-yaml
@@ -28,8 +28,8 @@ metadata:
tier: airflow
component: worker
release: {{ .Release.Name }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 4 }}
+{{- if or (.Values.labels) (.Values.workers.labels) }}
+{{- mustMerge .Values.workers.labels .Values.labels | toYaml | nindent 4 }}
{{- end }}
{{- if or .Values.airflowPodAnnotations .Values.workers.podAnnotations }}
annotations:
diff --git a/chart/templates/cleanup/cleanup-cronjob.yaml b/chart/templates/cleanup/cleanup-cronjob.yaml
index 583d9a11b4..05e0c0330e 100644
--- a/chart/templates/cleanup/cleanup-cronjob.yaml
+++ b/chart/templates/cleanup/cleanup-cronjob.yaml
@@ -54,9 +54,9 @@ spec:
tier: airflow
component: airflow-cleanup-pods
release: {{ .Release.Name }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 12 }}
-{{- end }}
+ {{- if or (.Values.labels) (.Values.cleanup.labels) }}
+ {{- mustMerge .Values.cleanup.labels .Values.labels | toYaml | nindent 12 }}
+ {{- end }}
annotations:
sidecar.istio.io/inject: "false"
{{- if .Values.airflowPodAnnotations }}
diff --git a/chart/templates/cleanup/cleanup-serviceaccount.yaml b/chart/templates/cleanup/cleanup-serviceaccount.yaml
index f4e1f02dce..faaa809ba7 100644
--- a/chart/templates/cleanup/cleanup-serviceaccount.yaml
+++ b/chart/templates/cleanup/cleanup-serviceaccount.yaml
@@ -28,9 +28,9 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
- {{- with .Values.labels }}
- {{ toYaml . | nindent 4 }}
- {{- end }}
+ {{- if or (.Values.labels) (.Values.cleanup.labels) }}
+ {{- mustMerge .Values.cleanup.labels .Values.labels | toYaml | nindent 4 }}
+ {{- end }}
{{- with .Values.cleanup.serviceAccount.annotations }}
annotations:
{{ toYaml . | nindent 4 }}
diff --git a/chart/templates/flower/flower-deployment.yaml b/chart/templates/flower/flower-deployment.yaml
index 9111c4625e..f8c9b2a663 100644
--- a/chart/templates/flower/flower-deployment.yaml
+++ b/chart/templates/flower/flower-deployment.yaml
@@ -55,8 +55,8 @@ spec:
tier: airflow
component: flower
release: {{ .Release.Name }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 8 }}
+{{- if or (.Values.labels) (.Values.flower.labels) }}
+{{- mustMerge .Values.flower.labels .Values.labels | toYaml | nindent 8 }}
{{- end }}
annotations:
checksum/airflow-config: {{ include (print $.Template.BasePath "/configmaps/configmap.yaml") . | sha256sum }}
diff --git a/chart/templates/flower/flower-ingress.yaml b/chart/templates/flower/flower-ingress.yaml
index 152c1a2ee7..994f8a0ea4 100644
--- a/chart/templates/flower/flower-ingress.yaml
+++ b/chart/templates/flower/flower-ingress.yaml
@@ -35,9 +35,9 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
- {{- with .Values.labels }}
- {{- toYaml . | nindent 4 }}
- {{- end }}
+{{- if or (.Values.labels) (.Values.flower.labels) }}
+{{- mustMerge .Values.flower.labels .Values.labels | toYaml | nindent 4 }}
+{{- end }}
{{- with .Values.ingress.flower.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
diff --git a/chart/templates/flower/flower-networkpolicy.yaml b/chart/templates/flower/flower-networkpolicy.yaml
index d9bf0f89da..32a0e5288c 100644
--- a/chart/templates/flower/flower-networkpolicy.yaml
+++ b/chart/templates/flower/flower-networkpolicy.yaml
@@ -32,8 +32,8 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 4 }}
+{{- if or (.Values.labels) (.Values.flower.labels) }}
+{{- mustMerge .Values.flower.labels .Values.labels | toYaml | nindent 4 }}
{{- end }}
spec:
podSelector:
diff --git a/chart/templates/flower/flower-service.yaml b/chart/templates/flower/flower-service.yaml
index 785f15041d..07e114e9db 100644
--- a/chart/templates/flower/flower-service.yaml
+++ b/chart/templates/flower/flower-service.yaml
@@ -30,8 +30,8 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 4 }}
+{{- if or (.Values.labels) (.Values.flower.labels) }}
+{{- mustMerge .Values.flower.labels .Values.labels | toYaml | nindent 4 }}
{{- end }}
{{- with .Values.flower.service.annotations }}
annotations:
diff --git a/chart/templates/flower/flower-serviceaccount.yaml b/chart/templates/flower/flower-serviceaccount.yaml
index 27da42fc55..ab05a06baf 100644
--- a/chart/templates/flower/flower-serviceaccount.yaml
+++ b/chart/templates/flower/flower-serviceaccount.yaml
@@ -29,9 +29,9 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
- {{- with .Values.labels }}
- {{ toYaml . | nindent 4 }}
- {{- end }}
+{{- if or (.Values.labels) (.Values.flower.labels) }}
+{{- mustMerge .Values.flower.labels .Values.labels | toYaml | nindent 4 }}
+{{- end }}
{{- with .Values.flower.serviceAccount.annotations }}
annotations:
{{ toYaml . | nindent 4 }}
diff --git a/chart/templates/jobs/create-user-job-serviceaccount.yaml b/chart/templates/jobs/create-user-job-serviceaccount.yaml
index 588218dc81..f81b0819ee 100644
--- a/chart/templates/jobs/create-user-job-serviceaccount.yaml
+++ b/chart/templates/jobs/create-user-job-serviceaccount.yaml
@@ -29,9 +29,9 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
- {{- with .Values.labels }}
- {{ toYaml . | nindent 4 }}
- {{- end }}
+{{- if or (.Values.labels) (.Values.createUserJob.labels) }}
+{{- mustMerge .Values.createUserJob.labels .Values.labels | toYaml | nindent 4 }}
+{{- end }}
{{- with .Values.createUserJob.serviceAccount.annotations }}
annotations:
{{ toYaml . | nindent 4 }}
diff --git a/chart/templates/jobs/create-user-job.yaml b/chart/templates/jobs/create-user-job.yaml
index f0b2160fe3..5de066c416 100644
--- a/chart/templates/jobs/create-user-job.yaml
+++ b/chart/templates/jobs/create-user-job.yaml
@@ -54,8 +54,8 @@ spec:
tier: airflow
component: create-user-job
release: {{ .Release.Name }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 8 }}
+{{- if or (.Values.labels) (.Values.createUserJob.labels) }}
+{{- mustMerge .Values.createUserJob.labels .Values.labels | toYaml | nindent 8 }}
{{- end }}
{{- if or .Values.airflowPodAnnotations .Values.createUserJob.annotations }}
annotations:
diff --git a/chart/templates/scheduler/scheduler-deployment.yaml b/chart/templates/scheduler/scheduler-deployment.yaml
index 49684ef7d6..a4a93190f6 100644
--- a/chart/templates/scheduler/scheduler-deployment.yaml
+++ b/chart/templates/scheduler/scheduler-deployment.yaml
@@ -77,8 +77,8 @@ spec:
tier: airflow
component: scheduler
release: {{ .Release.Name }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 8 }}
+{{- if or (.Values.labels) (.Values.scheduler.labels) }}
+{{- mustMerge .Values.scheduler.labels .Values.labels | toYaml | nindent 8 }}
{{- end }}
annotations:
checksum/metadata-secret: {{ include (print $.Template.BasePath "/secrets/metadata-connection-secret.yaml") . | sha256sum }}
diff --git a/chart/templates/scheduler/scheduler-networkpolicy.yaml b/chart/templates/scheduler/scheduler-networkpolicy.yaml
index 37e00ed93c..a65d43b454 100644
--- a/chart/templates/scheduler/scheduler-networkpolicy.yaml
+++ b/chart/templates/scheduler/scheduler-networkpolicy.yaml
@@ -29,8 +29,8 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 4 }}
+{{- if or (.Values.labels) (.Values.scheduler.labels) }}
+{{- mustMerge .Values.scheduler.labels .Values.labels | toYaml | nindent 4 }}
{{- end }}
spec:
podSelector:
diff --git a/chart/templates/scheduler/scheduler-poddisruptionbudget.yaml b/chart/templates/scheduler/scheduler-poddisruptionbudget.yaml
index 24a627f270..5f634b93bc 100644
--- a/chart/templates/scheduler/scheduler-poddisruptionbudget.yaml
+++ b/chart/templates/scheduler/scheduler-poddisruptionbudget.yaml
@@ -33,8 +33,8 @@ metadata:
release: {{ .Release.Name }}
chart: {{ .Chart.Name }}
heritage: {{ .Release.Service }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 4 }}
+{{- if or (.Values.labels) (.Values.scheduler.labels) }}
+{{- mustMerge .Values.scheduler.labels .Values.labels | toYaml | nindent 4 }}
{{- end }}
spec:
selector:
diff --git a/chart/templates/scheduler/scheduler-service.yaml b/chart/templates/scheduler/scheduler-service.yaml
index 55e6f012bf..1bc9c9f54e 100644
--- a/chart/templates/scheduler/scheduler-service.yaml
+++ b/chart/templates/scheduler/scheduler-service.yaml
@@ -29,8 +29,8 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 4 }}
+{{- if or (.Values.labels) (.Values.scheduler.labels) }}
+{{- mustMerge .Values.scheduler.labels .Values.labels | toYaml | nindent 4 }}
{{- end }}
spec:
clusterIP: None
diff --git a/chart/templates/scheduler/scheduler-serviceaccount.yaml b/chart/templates/scheduler/scheduler-serviceaccount.yaml
index c1acedd41c..8d851f24af 100644
--- a/chart/templates/scheduler/scheduler-serviceaccount.yaml
+++ b/chart/templates/scheduler/scheduler-serviceaccount.yaml
@@ -29,9 +29,9 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
- {{- with .Values.labels }}
- {{ toYaml . | nindent 4 }}
- {{- end }}
+{{- if or (.Values.labels) (.Values.scheduler.labels) }}
+{{- mustMerge .Values.scheduler.labels .Values.labels | toYaml | nindent 4 }}
+{{- end }}
{{- with .Values.scheduler.serviceAccount.annotations }}
annotations:
{{- range $key, $value := . }}
diff --git a/chart/templates/triggerer/triggerer-deployment.yaml b/chart/templates/triggerer/triggerer-deployment.yaml
index 65be4738d6..434b1037c3 100644
--- a/chart/templates/triggerer/triggerer-deployment.yaml
+++ b/chart/templates/triggerer/triggerer-deployment.yaml
@@ -59,9 +59,9 @@ spec:
tier: airflow
component: triggerer
release: {{ .Release.Name }}
- {{- with .Values.labels }}
- {{- toYaml . | nindent 8 }}
- {{- end }}
+{{- if or (.Values.labels) (.Values.triggerer.labels) }}
+{{- mustMerge .Values.triggerer.labels .Values.labels | toYaml | nindent 8 }}
+{{- end }}
annotations:
checksum/metadata-secret: {{ include (print $.Template.BasePath "/secrets/metadata-connection-secret.yaml") . | sha256sum }}
checksum/pgbouncer-config-secret: {{ include (print $.Template.BasePath "/secrets/pgbouncer-config-secret.yaml") . | sha256sum }}
diff --git a/chart/templates/triggerer/triggerer-serviceaccount.yaml b/chart/templates/triggerer/triggerer-serviceaccount.yaml
index cf128abe8c..c3836a82bc 100644
--- a/chart/templates/triggerer/triggerer-serviceaccount.yaml
+++ b/chart/templates/triggerer/triggerer-serviceaccount.yaml
@@ -30,9 +30,9 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
- {{- with .Values.labels }}
- {{ toYaml . | nindent 4 }}
- {{- end }}
+{{- if or (.Values.labels) (.Values.triggerer.labels) }}
+{{- mustMerge .Values.triggerer.labels .Values.labels | toYaml | nindent 4 }}
+{{- end }}
{{- with .Values.triggerer.serviceAccount.annotations}}
annotations:
{{ toYaml . | nindent 4 }}
diff --git a/chart/templates/webserver/webserver-deployment.yaml b/chart/templates/webserver/webserver-deployment.yaml
index 572f54f6c4..0a3033a029 100644
--- a/chart/templates/webserver/webserver-deployment.yaml
+++ b/chart/templates/webserver/webserver-deployment.yaml
@@ -73,8 +73,8 @@ spec:
tier: airflow
component: webserver
release: {{ .Release.Name }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 8 }}
+{{- if or (.Values.labels) (.Values.webserver.labels) }}
+{{- mustMerge .Values.webserver.labels .Values.labels | toYaml | nindent 8 }}
{{- end }}
annotations:
checksum/metadata-secret: {{ include (print $.Template.BasePath "/secrets/metadata-connection-secret.yaml") . | sha256sum }}
diff --git a/chart/templates/webserver/webserver-ingress.yaml b/chart/templates/webserver/webserver-ingress.yaml
index 8c0f169f70..e6ab4b0533 100644
--- a/chart/templates/webserver/webserver-ingress.yaml
+++ b/chart/templates/webserver/webserver-ingress.yaml
@@ -34,9 +34,9 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
- {{- with .Values.labels }}
- {{- toYaml . | nindent 4 }}
- {{- end }}
+{{- if or (.Values.labels) (.Values.webserver.labels) }}
+{{- mustMerge .Values.webserver.labels .Values.labels | toYaml | nindent 4 }}
+{{- end }}
{{- with .Values.ingress.web.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
diff --git a/chart/templates/webserver/webserver-networkpolicy.yaml b/chart/templates/webserver/webserver-networkpolicy.yaml
index 65d0cb18ee..8a2970c933 100644
--- a/chart/templates/webserver/webserver-networkpolicy.yaml
+++ b/chart/templates/webserver/webserver-networkpolicy.yaml
@@ -30,8 +30,8 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 4 }}
+{{- if or (.Values.labels) (.Values.webserver.labels) }}
+{{- mustMerge .Values.webserver.labels .Values.labels | toYaml | nindent 4 }}
{{- end }}
spec:
podSelector:
diff --git a/chart/templates/webserver/webserver-poddisruptionbudget.yaml b/chart/templates/webserver/webserver-poddisruptionbudget.yaml
index ea5af88de6..c96f5a24c5 100644
--- a/chart/templates/webserver/webserver-poddisruptionbudget.yaml
+++ b/chart/templates/webserver/webserver-poddisruptionbudget.yaml
@@ -33,8 +33,8 @@ metadata:
release: {{ .Release.Name }}
chart: {{ .Chart.Name }}
heritage: {{ .Release.Service }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 4 }}
+{{- if or (.Values.labels) (.Values.webserver.labels) }}
+{{- mustMerge .Values.webserver.labels .Values.labels | toYaml | nindent 4 }}
{{- end }}
spec:
selector:
diff --git a/chart/templates/webserver/webserver-service.yaml b/chart/templates/webserver/webserver-service.yaml
index 9ccba11f7b..7c5f9958c5 100644
--- a/chart/templates/webserver/webserver-service.yaml
+++ b/chart/templates/webserver/webserver-service.yaml
@@ -28,8 +28,8 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 4 }}
+{{- if or (.Values.labels) (.Values.webserver.labels) }}
+{{- mustMerge .Values.webserver.labels .Values.labels | toYaml | nindent 4 }}
{{- end }}
{{- with .Values.webserver.service.annotations }}
annotations:
diff --git a/chart/templates/webserver/webserver-serviceaccount.yaml b/chart/templates/webserver/webserver-serviceaccount.yaml
index 369a0476fa..f9d6f25c6a 100644
--- a/chart/templates/webserver/webserver-serviceaccount.yaml
+++ b/chart/templates/webserver/webserver-serviceaccount.yaml
@@ -29,9 +29,9 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
- {{- with .Values.labels }}
- {{ toYaml . | nindent 4 }}
- {{- end }}
+{{- if or (.Values.labels) (.Values.webserver.labels) }}
+{{- mustMerge .Values.webserver.labels .Values.labels | toYaml | nindent 4 }}
+{{- end }}
{{- with .Values.webserver.serviceAccount.annotations }}
annotations:
{{ toYaml . | nindent 4 }}
diff --git a/chart/templates/workers/worker-deployment.yaml b/chart/templates/workers/worker-deployment.yaml
index 5901585ff0..5cde38a181 100644
--- a/chart/templates/workers/worker-deployment.yaml
+++ b/chart/templates/workers/worker-deployment.yaml
@@ -66,8 +66,8 @@ spec:
tier: airflow
component: worker
release: {{ .Release.Name }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 8 }}
+{{- if or (.Values.labels) (.Values.workers.labels) }}
+{{- mustMerge .Values.workers.labels .Values.labels | toYaml | nindent 8 }}
{{- end }}
annotations:
checksum/metadata-secret: {{ include (print $.Template.BasePath "/secrets/metadata-connection-secret.yaml") . | sha256sum }}
diff --git a/chart/templates/workers/worker-kedaautoscaler.yaml b/chart/templates/workers/worker-kedaautoscaler.yaml
index 9fe869facc..7fae352f93 100644
--- a/chart/templates/workers/worker-kedaautoscaler.yaml
+++ b/chart/templates/workers/worker-kedaautoscaler.yaml
@@ -30,8 +30,8 @@ metadata:
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
deploymentName: {{ .Release.Name }}-worker
-{{- with .Values.labels }}
-{{ toYaml . | indent 4 }}
+{{- if or (.Values.labels) (.Values.workers.labels) }}
+{{- mustMerge .Values.workers.labels .Values.labels | toYaml | nindent 4 }}
{{- end }}
spec:
scaleTargetRef:
diff --git a/chart/templates/workers/worker-networkpolicy.yaml b/chart/templates/workers/worker-networkpolicy.yaml
index 193b55ee28..a0bfc02c21 100644
--- a/chart/templates/workers/worker-networkpolicy.yaml
+++ b/chart/templates/workers/worker-networkpolicy.yaml
@@ -29,8 +29,8 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 4 }}
+{{- if or (.Values.labels) (.Values.workers.labels) }}
+{{- mustMerge .Values.workers.labels .Values.labels | toYaml | nindent 4 }}
{{- end }}
spec:
podSelector:
diff --git a/chart/templates/workers/worker-service.yaml b/chart/templates/workers/worker-service.yaml
index 8923f53879..170427f12d 100644
--- a/chart/templates/workers/worker-service.yaml
+++ b/chart/templates/workers/worker-service.yaml
@@ -29,8 +29,8 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
-{{- with .Values.labels }}
-{{ toYaml . | indent 4 }}
+{{- if or (.Values.labels) (.Values.workers.labels) }}
+{{- mustMerge .Values.workers.labels .Values.labels | toYaml | nindent 4 }}
{{- end }}
spec:
clusterIP: None
diff --git a/chart/templates/workers/worker-serviceaccount.yaml b/chart/templates/workers/worker-serviceaccount.yaml
index 563c521512..bebddb96be 100644
--- a/chart/templates/workers/worker-serviceaccount.yaml
+++ b/chart/templates/workers/worker-serviceaccount.yaml
@@ -29,9 +29,9 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
- {{- with .Values.labels }}
- {{ toYaml . | nindent 4 }}
- {{- end }}
+{{- if or (.Values.labels) (.Values.workers.labels) }}
+{{- mustMerge .Values.workers.labels .Values.labels | toYaml | nindent 4 }}
+{{- end }}
{{- with .Values.workers.serviceAccount.annotations}}
annotations:
{{ toYaml . | nindent 4 }}
diff --git a/chart/values.schema.json b/chart/values.schema.json
index 75ca8a411a..3d9ef3f0cd 100644
--- a/chart/values.schema.json
+++ b/chart/values.schema.json
@@ -1506,6 +1506,14 @@
"type": "string"
}
},
+ "labels": {
+ "description": "Labels to add to the worker objects and pods.",
+ "type": "object",
+ "default": {},
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
"logGroomerSidecar": {
"description": "Configuration for worker log groomer sidecar",
"type": "object",
@@ -1884,6 +1892,14 @@
"type": "string"
}
},
+ "labels": {
+ "description": "Labels to add to the scheduler objects and pods.",
+ "type": "object",
+ "default": {},
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
"logGroomerSidecar": {
"description": "Configuration for the schedulers log groomer sidecar.",
"type": "object",
@@ -2252,6 +2268,14 @@
"type": "string"
}
},
+ "labels": {
+ "description": "Labels to add to the triggerer objects and pods.",
+ "type": "object",
+ "default": {},
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
"securityContext": {
"description": "Security context for the triggerer pod. If not set, the values from `securityContext` will be used.",
"type": "object",
@@ -2691,6 +2715,14 @@
"type": "string"
}
},
+ "labels": {
+ "description": "Labels to add to the create user job objects and pods.",
+ "type": "object",
+ "default": {},
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
"serviceAccount": {
"description": "Create ServiceAccount.",
"type": "object",
@@ -3485,6 +3517,14 @@
"type": "string"
}
},
+ "labels": {
+ "description": "Labels to add to the webserver objects and pods.",
+ "type": "object",
+ "default": {},
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
"waitForMigrations": {
"description": "wait-for-airflow-migrations init container.",
"type": "object",
@@ -3856,6 +3896,14 @@
"type": "string"
}
},
+ "labels": {
+ "description": "Labels to add to the flower objects and pods.",
+ "type": "object",
+ "default": {},
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
"securityContext": {
"description": "Security context for the flower pod. If not set, the values from `securityContext` will be used.",
"type": "object",
@@ -4854,6 +4902,14 @@
"type": "string"
}
},
+ "labels": {
+ "description": "labels to add to cleanup pods.",
+ "type": "object",
+ "default": {},
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
"resources": {
"description": "Resources for or cleanup pods",
"type": "object",
diff --git a/chart/values.yaml b/chart/values.yaml
index 64156dea44..ded3f02d61 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -586,6 +586,9 @@ workers:
podAnnotations: {}
+ # Labels specific to workers objects and pods
+ labels: {}
+
logGroomerSidecar:
# Command to use when running the Airflow worker log groomer sidecar (templated).
command: ~
@@ -699,6 +702,9 @@ scheduler:
podAnnotations: {}
+ # Labels specific to scheduler objects and pods
+ labels: {}
+
logGroomerSidecar:
# Whether to deploy the Airflow scheduler log groomer sidecar.
enabled: true
@@ -754,6 +760,9 @@ createUserJob:
# jobAnnotations are annotations on the create user job
jobAnnotations: {}
+ # Labels specific to createUserJob objects and pods
+ labels: {}
+
# When not set, the values defined in the global securityContext will be used
securityContext: {}
# runAsUser: 50000
@@ -999,6 +1008,9 @@ webserver:
podAnnotations: {}
+ # Labels specific webserver app
+ labels: {}
+
waitForMigrations:
# Whether to create init container to wait for db migrations
enabled: true
@@ -1094,6 +1106,9 @@ triggerer:
podAnnotations: {}
+ # Labels specific to triggerer objects and pods
+ labels: {}
+
waitForMigrations:
# Whether to create init container to wait for db migrations
enabled: true
@@ -1291,6 +1306,8 @@ flower:
podAnnotations: {}
+ # Labels specific to flower objects and pods
+ labels: {}
env: []
# StatsD settings
@@ -1585,6 +1602,9 @@ cleanup:
podAnnotations: {}
+ # Labels specific to cleanup objects and pods
+ labels: {}
+
resources: {}
# limits:
# cpu: 100m
diff --git a/tests/charts/test_cleanup_pods.py b/tests/charts/test_cleanup_pods.py
index 1fff271169..c1f1e2c80b 100644
--- a/tests/charts/test_cleanup_pods.py
+++ b/tests/charts/test_cleanup_pods.py
@@ -190,6 +190,23 @@ class CleanupPodsTest(unittest.TestCase):
"project": "airflow",
} == jmespath.search("spec.jobTemplate.spec.template.metadata.labels", docs[0])
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "cleanup": {
+ "enabled": True,
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/cleanup/cleanup-cronjob.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("spec.jobTemplate.spec.template.metadata.labels", docs[0])
+ assert (
+ jmespath.search("spec.jobTemplate.spec.template.metadata.labels", docs[0])["test_label"]
+ == "test_label_value"
+ )
+
def test_cleanup_resources_are_configurable(self):
resources = {
"requests": {
@@ -214,3 +231,19 @@ class CleanupPodsTest(unittest.TestCase):
assert resources == jmespath.search(
"spec.jobTemplate.spec.template.spec.containers[0].resources", docs[0]
)
+
+
+class CleanupServiceAccountTest(unittest.TestCase):
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "cleanup": {
+ "enabled": True,
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/cleanup/cleanup-serviceaccount.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
diff --git a/tests/charts/test_create_user_job.py b/tests/charts/test_create_user_job.py
index 940c31c0e3..d26dd5e6aa 100644
--- a/tests/charts/test_create_user_job.py
+++ b/tests/charts/test_create_user_job.py
@@ -42,6 +42,18 @@ class CreateUserJobTest(unittest.TestCase):
assert "fiz" in job_annotations
assert "fuz" == job_annotations["fiz"]
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "createUserJob": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/jobs/create-user-job.yaml"],
+ )
+ assert "test_label" in jmespath.search("spec.template.metadata.labels", docs[0])
+ assert jmespath.search("spec.template.metadata.labels", docs[0])["test_label"] == "test_label_value"
+
def test_should_create_valid_affinity_tolerations_and_node_selector(self):
docs = render_chart(
values={
@@ -282,3 +294,18 @@ class CreateUserJobTest(unittest.TestCase):
"-p",
"whereisjane?",
] == jmespath.search("spec.template.spec.containers[0].args", docs[0])
+
+
+class CreateUserJobServiceAccountTest(unittest.TestCase):
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "createUserJob": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/jobs/create-user-job-serviceaccount.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
diff --git a/tests/charts/test_flower.py b/tests/charts/test_flower.py
index c5b602f6f9..dbe8db490f 100644
--- a/tests/charts/test_flower.py
+++ b/tests/charts/test_flower.py
@@ -280,6 +280,20 @@ class TestFlowerDeployment:
"spec.template.spec.containers[0].env", docs[0]
)
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "flower": {
+ "enabled": True,
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/flower/flower-deployment.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("spec.template.metadata.labels", docs[0])
+ assert jmespath.search("spec.template.metadata.labels", docs[0])["test_label"] == "test_label_value"
+
class TestFlowerService:
@pytest.mark.parametrize(
@@ -371,6 +385,20 @@ class TestFlowerService:
assert expected_ports == jmespath.search("spec.ports", docs[0])
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "flower": {
+ "enabled": True,
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/flower/flower-service.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
+
class TestFlowerNetworkPolicy:
def test_off_by_default(self):
@@ -454,3 +482,34 @@ class TestFlowerNetworkPolicy:
assert [{"namespaceSelector": {"matchLabels": {"release": "myrelease"}}}] == jmespath.search(
"spec.ingress[0].from", docs[0]
)
+
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "networkPolicies": {"enabled": True},
+ "flower": {
+ "enabled": True,
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/flower/flower-networkpolicy.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
+
+
+class TestFlowerServiceAccount:
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "flower": {
+ "enabled": True,
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/flower/flower-serviceaccount.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
diff --git a/tests/charts/test_ingress_flower.py b/tests/charts/test_ingress_flower.py
index 96d8bb91b6..191b06c0a0 100644
--- a/tests/charts/test_ingress_flower.py
+++ b/tests/charts/test_ingress_flower.py
@@ -168,3 +168,18 @@ class IngressFlowerTest(unittest.TestCase):
show_only=["templates/flower/flower-ingress.yaml"],
)
assert 0 == len(docs)
+
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "ingress": {"enabled": True},
+ "flower": {
+ "enabled": True,
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/flower/flower-ingress.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
diff --git a/tests/charts/test_ingress_web.py b/tests/charts/test_ingress_web.py
index 93b51e44dc..3255db39aa 100644
--- a/tests/charts/test_ingress_web.py
+++ b/tests/charts/test_ingress_web.py
@@ -152,3 +152,16 @@ class IngressWebTest(unittest.TestCase):
del values["ingress"]
docs = render_chart(values=values, show_only=["templates/webserver/webserver-ingress.yaml"])
assert expected == (1 == len(docs))
+
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "ingress": {"enabled": True},
+ "webserver": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/webserver/webserver-ingress.yaml"],
+ )
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
diff --git a/tests/charts/test_pdb_scheduler.py b/tests/charts/test_pdb_scheduler.py
index 90933f40e1..ba16ba92ea 100644
--- a/tests/charts/test_pdb_scheduler.py
+++ b/tests/charts/test_pdb_scheduler.py
@@ -17,6 +17,8 @@
import unittest
+import jmespath
+
from tests.charts.helm_template_generator import render_chart
@@ -33,3 +35,17 @@ class SchedulerPdbTest(unittest.TestCase):
show_only=["templates/scheduler/scheduler-poddisruptionbudget.yaml"],
kubernetes_version='1.16.0',
) # checks that no validation exception is raised
+
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "scheduler": {
+ "podDisruptionBudget": {"enabled": True},
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/scheduler/scheduler-poddisruptionbudget.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
diff --git a/tests/charts/test_pdb_webserver.py b/tests/charts/test_pdb_webserver.py
index aba212b6f7..7452bd0183 100644
--- a/tests/charts/test_pdb_webserver.py
+++ b/tests/charts/test_pdb_webserver.py
@@ -17,6 +17,8 @@
import unittest
+import jmespath
+
from tests.charts.helm_template_generator import render_chart
@@ -33,3 +35,16 @@ class WebserverPdbTest(unittest.TestCase):
show_only=["templates/webserver/webserver-poddisruptionbudget.yaml"],
kubernetes_version='1.16.0',
) # checks that no validation exception is raised
+
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "webserver": {
+ "podDisruptionBudget": {"enabled": True},
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/webserver/webserver-poddisruptionbudget.yaml"],
+ )
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
diff --git a/tests/charts/test_pod_template_file.py b/tests/charts/test_pod_template_file.py
index b656d5bd53..91c0b17e0f 100644
--- a/tests/charts/test_pod_template_file.py
+++ b/tests/charts/test_pod_template_file.py
@@ -650,6 +650,21 @@ class PodTemplateFileTest(unittest.TestCase):
"spec.containers[0].env", docs[0]
)
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "executor": "KubernetesExecutor",
+ "workers": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/pod-template-file.yaml"],
+ chart_dir=self.temp_chart_dir,
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
+
def test_should_add_resources(self):
docs = render_chart(
values={
diff --git a/tests/charts/test_scheduler.py b/tests/charts/test_scheduler.py
index 0131c6a617..89c05f96d0 100644
--- a/tests/charts/test_scheduler.py
+++ b/tests/charts/test_scheduler.py
@@ -145,6 +145,20 @@ class SchedulerTest(unittest.TestCase):
"spec.template.spec.initContainers[0].env", docs[0]
)
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "executor": "CeleryExecutor",
+ "scheduler": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/scheduler/scheduler-deployment.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("spec.template.metadata.labels", docs[0])
+ assert jmespath.search("spec.template.metadata.labels", docs[0])["test_label"] == "test_label_value"
+
@parameterized.expand([(8, 10), (10, 8), (8, None), (None, 10), (None, None)])
def test_revision_history_limit(self, revision_history_limit, global_revision_history_limit):
values = {"scheduler": {}}
@@ -658,3 +672,51 @@ class SchedulerTest(unittest.TestCase):
show_only=["templates/scheduler/scheduler-deployment.yaml"],
)
assert {"foo": "bar"} == jmespath.search("spec.volumeClaimTemplates[0].metadata.annotations", docs[0])
+
+
+class SchedulerNetworkPolicyTest(unittest.TestCase):
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "networkPolicies": {"enabled": True},
+ "scheduler": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/scheduler/scheduler-networkpolicy.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
+
+
+class SchedulerServiceTest(unittest.TestCase):
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "executor": "LocalExecutor",
+ "scheduler": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/scheduler/scheduler-service.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
+
+
+class SchedulerServiceAccountTest(unittest.TestCase):
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "scheduler": {
+ "serviceAccount": {"create": True},
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/scheduler/scheduler-serviceaccount.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
diff --git a/tests/charts/test_triggerer.py b/tests/charts/test_triggerer.py
index 803b97a86c..5ecad1e4c0 100644
--- a/tests/charts/test_triggerer.py
+++ b/tests/charts/test_triggerer.py
@@ -161,6 +161,19 @@ class TriggererTest(unittest.TestCase):
"spec.template.spec.initContainers[0].env", docs[0]
)
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "triggerer": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/triggerer/triggerer-deployment.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("spec.template.metadata.labels", docs[0])
+ assert jmespath.search("spec.template.metadata.labels", docs[0])["test_label"] == "test_label_value"
+
def test_should_create_valid_affinity_tolerations_and_node_selector(self):
docs = render_chart(
values={
@@ -457,3 +470,19 @@ class TriggererTest(unittest.TestCase):
assert "git-sync-init" not in [
c["name"] for c in jmespath.search("spec.template.spec.initContainers", docs[0])
]
+
+
+class TriggererServiceAccountTest(unittest.TestCase):
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "triggerer": {
+ "serviceAccount": {"create": True},
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/triggerer/triggerer-serviceaccount.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
diff --git a/tests/charts/test_webserver.py b/tests/charts/test_webserver.py
index d40e04c2a5..53e51ffd28 100644
--- a/tests/charts/test_webserver.py
+++ b/tests/charts/test_webserver.py
@@ -246,6 +246,19 @@ class WebserverDeploymentTest(unittest.TestCase):
"image": "test-registry/test-repo:test-tag",
} == jmespath.search("spec.template.spec.initContainers[-1]", docs[0])
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "webserver": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/webserver/webserver-deployment.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("spec.template.metadata.labels", docs[0])
+ assert jmespath.search("spec.template.metadata.labels", docs[0])["test_label"] == "test_label_value"
+
def test_should_create_valid_affinity_tolerations_and_node_selector(self):
docs = render_chart(
values={
@@ -695,6 +708,18 @@ class WebserverServiceTest(unittest.TestCase):
assert expected_ports == jmespath.search("spec.ports", docs[0])
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "webserver": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/webserver/webserver-service.yaml"],
+ )
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
+
class WebserverConfigmapTest(unittest.TestCase):
def test_no_webserver_config_configmap_by_default(self):
@@ -791,3 +816,31 @@ class WebserverNetworkPolicyTest(unittest.TestCase):
assert [{"namespaceSelector": {"matchLabels": {"release": "myrelease"}}}] == jmespath.search(
"spec.ingress[0].from", docs[0]
)
+
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "networkPolicies": {"enabled": True},
+ "webserver": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/webserver/webserver-networkpolicy.yaml"],
+ )
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
+
+
+class WebserverServiceAccountTest(unittest.TestCase):
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "webserver": {
+ "serviceAccount": {"create": True},
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/webserver/webserver-serviceaccount.yaml"],
+ )
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
diff --git a/tests/charts/test_worker.py b/tests/charts/test_worker.py
index accb13bee2..9020742b46 100644
--- a/tests/charts/test_worker.py
+++ b/tests/charts/test_worker.py
@@ -140,6 +140,20 @@ class WorkerTest(unittest.TestCase):
"spec.template.spec.initContainers[0].env", docs[0]
)
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "executor": "CeleryExecutor",
+ "workers": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/workers/worker-deployment.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("spec.template.metadata.labels", docs[0])
+ assert jmespath.search("spec.template.metadata.labels", docs[0])["test_label"] == "test_label_value"
+
def test_workers_host_aliases(self):
docs = render_chart(
values={
@@ -596,3 +610,70 @@ class WorkerTest(unittest.TestCase):
show_only=["templates/workers/worker-deployment.yaml"],
)
assert {"foo": "bar"} == jmespath.search("spec.volumeClaimTemplates[0].metadata.annotations", docs[0])
+
+
+class WorkerKedaAutoScalerTest(unittest.TestCase):
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "executor": "CeleryExecutor",
+ "workers": {
+ "keda": {"enabled": True},
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/workers/worker-kedaautoscaler.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
+
+
+class WorkerNetworkPolicyTest(unittest.TestCase):
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "networkPolicies": {"enabled": True},
+ "executor": "CeleryExecutor",
+ "workers": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/workers/worker-networkpolicy.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
+
+
+class WorkerServiceTest(unittest.TestCase):
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "executor": "CeleryExecutor",
+ "workers": {
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/workers/worker-service.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"
+
+
+class WorkerServiceAccountTest(unittest.TestCase):
+ def test_should_add_component_specific_labels(self):
+ docs = render_chart(
+ values={
+ "executor": "CeleryExecutor",
+ "workers": {
+ "serviceAccount": {"create": True},
+ "labels": {"test_label": "test_label_value"},
+ },
+ },
+ show_only=["templates/workers/worker-service.yaml"],
+ )
+
+ assert "test_label" in jmespath.search("metadata.labels", docs[0])
+ assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value"