diff --git a/chart/templates/dag-processor/dag-processor-deployment.yaml b/chart/templates/dag-processor/dag-processor-deployment.yaml index 970c94a90322e..f59ac9eac7cc7 100644 --- a/chart/templates/dag-processor/dag-processor-deployment.yaml +++ b/chart/templates/dag-processor/dag-processor-deployment.yaml @@ -206,12 +206,15 @@ spec: {{- if .Values.dagProcessor.logGroomerSidecar.args }} args: {{- tpl (toYaml .Values.dagProcessor.logGroomerSidecar.args) . | nindent 12 }} {{- end }} - {{- if .Values.dagProcessor.logGroomerSidecar.retentionDays }} env: + {{- if .Values.dagProcessor.logGroomerSidecar.retentionDays }} - name: AIRFLOW__LOG_RETENTION_DAYS value: "{{ .Values.dagProcessor.logGroomerSidecar.retentionDays }}" + {{- end }} - name: AIRFLOW_HOME value: "{{ .Values.airflowHome }}" + {{- if .Values.dagProcessor.logGroomerSidecar.env }} + {{- tpl (toYaml .Values.dagProcessor.logGroomerSidecar.env) $ | nindent 12 }} {{- end }} volumeMounts: - name: logs diff --git a/chart/templates/scheduler/scheduler-deployment.yaml b/chart/templates/scheduler/scheduler-deployment.yaml index 531ea83d1e533..4e0a1effdeb37 100644 --- a/chart/templates/scheduler/scheduler-deployment.yaml +++ b/chart/templates/scheduler/scheduler-deployment.yaml @@ -261,12 +261,15 @@ spec: {{- if .Values.scheduler.logGroomerSidecar.args }} args: {{- tpl (toYaml .Values.scheduler.logGroomerSidecar.args) . | nindent 12 }} {{- end }} - {{- if .Values.scheduler.logGroomerSidecar.retentionDays }} env: + {{- if .Values.scheduler.logGroomerSidecar.retentionDays }} - name: AIRFLOW__LOG_RETENTION_DAYS value: "{{ .Values.scheduler.logGroomerSidecar.retentionDays }}" + {{- end }} - name: AIRFLOW_HOME value: "{{ .Values.airflowHome }}" + {{- if .Values.scheduler.logGroomerSidecar.env }} + {{- tpl (toYaml .Values.scheduler.logGroomerSidecar.env) $ | nindent 12 }} {{- end }} volumeMounts: - name: logs diff --git a/chart/templates/triggerer/triggerer-deployment.yaml b/chart/templates/triggerer/triggerer-deployment.yaml index 618274bf69850..fe77cb869717f 100644 --- a/chart/templates/triggerer/triggerer-deployment.yaml +++ b/chart/templates/triggerer/triggerer-deployment.yaml @@ -234,12 +234,15 @@ spec: {{- if .Values.triggerer.logGroomerSidecar.args }} args: {{- tpl (toYaml .Values.triggerer.logGroomerSidecar.args) . | nindent 12 }} {{- end }} - {{- if .Values.triggerer.logGroomerSidecar.retentionDays }} env: + {{- if .Values.triggerer.logGroomerSidecar.retentionDays }} - name: AIRFLOW__LOG_RETENTION_DAYS value: "{{ .Values.triggerer.logGroomerSidecar.retentionDays }}" + {{- end }} - name: AIRFLOW_HOME value: "{{ .Values.airflowHome }}" + {{- if .Values.triggerer.logGroomerSidecar.env }} + {{- tpl (toYaml .Values.triggerer.logGroomerSidecar.env) $ | nindent 12 }} {{- end }} volumeMounts: - name: logs diff --git a/chart/templates/workers/worker-deployment.yaml b/chart/templates/workers/worker-deployment.yaml index 6a74fafc5dba0..2e1ffebb3b91a 100644 --- a/chart/templates/workers/worker-deployment.yaml +++ b/chart/templates/workers/worker-deployment.yaml @@ -316,12 +316,15 @@ spec: {{- if .Values.workers.logGroomerSidecar.args }} args: {{ tpl (toYaml .Values.workers.logGroomerSidecar.args) . | nindent 12 }} {{- end }} - {{- if .Values.workers.logGroomerSidecar.retentionDays }} env: + {{- if .Values.workers.logGroomerSidecar.retentionDays }} - name: AIRFLOW__LOG_RETENTION_DAYS value: "{{ .Values.workers.logGroomerSidecar.retentionDays }}" + {{- end }} - name: AIRFLOW_HOME value: "{{ .Values.airflowHome }}" + {{- if .Values.workers.logGroomerSidecar.env }} + {{- tpl (toYaml .Values.workers.logGroomerSidecar.env) $ | nindent 12 }} {{- end }} resources: {{- toYaml .Values.workers.logGroomerSidecar.resources | nindent 12 }} volumeMounts: diff --git a/chart/values.schema.json b/chart/values.schema.json index f015d40401615..3e9070e043874 100644 --- a/chart/values.schema.json +++ b/chart/values.schema.json @@ -10486,6 +10486,16 @@ "/clean-logs" ] }, + "env": { + "description": "Add additional env vars to log groomer sidecar container.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" + }, + "type": "array", + "default": [], + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, "retentionDays": { "description": "Number of days to retain the logs when running the Airflow log groomer sidecar.", "type": "integer", diff --git a/chart/values.yaml b/chart/values.yaml index e9c3c5cf2f7e4..4341dc1849c76 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -752,6 +752,7 @@ workers: # Detailed default security context for logGroomerSidecar for container level securityContexts: container: {} + env: [] waitForMigrations: # Whether to create init container to wait for db migrations @@ -951,6 +952,7 @@ scheduler: container: {} # container level lifecycle hooks containerLifecycleHooks: {} + env: [] waitForMigrations: # Whether to create init container to wait for db migrations @@ -1520,6 +1522,7 @@ triggerer: # container level lifecycle hooks containerLifecycleHooks: {} + env: [] waitForMigrations: # Whether to create init container to wait for db migrations @@ -1696,6 +1699,7 @@ dagProcessor: # memory: 128Mi securityContexts: container: {} + env: [] waitForMigrations: # Whether to create init container to wait for db migrations diff --git a/tests/charts/log_groomer.py b/tests/charts/log_groomer.py index dcbf63d537cae..fb03759415e58 100644 --- a/tests/charts/log_groomer.py +++ b/tests/charts/log_groomer.py @@ -89,6 +89,19 @@ def test_log_groomer_collector_default_retention_days(self): ) assert "15" == jmespath.search("spec.template.spec.containers[1].env[0].value", docs[0]) + def test_log_groomer_collector_custom_env(self): + env = {"name": "ENABLE_KUBE_MUTATION_TYPE", "value": "upsert"} + if self.obj_name == "dag-processor": + values = {"dagProcessor": {"enabled": True, "env": env}} + else: + values = None + + docs = render_chart( + values=values, show_only=[f"templates/{self.folder}/{self.obj_name}-deployment.yaml"] + ) + + assert env in jmespath.search("spec.template.spec.containers[1].env", docs[0]) + @pytest.mark.parametrize("command", [None, ["custom", "command"]]) @pytest.mark.parametrize("args", [None, ["custom", "args"]]) def test_log_groomer_command_and_args_overrides(self, command, args):