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 279e8b7772 Chart: Allow valueFrom in env config of components (#40135)
279e8b7772 is described below
commit 279e8b7772c483890726734600df89613cca3263
Author: Daniel Gellert <[email protected]>
AuthorDate: Tue Jun 11 02:21:07 2024 +0200
Chart: Allow valueFrom in env config of components (#40135)
---
chart/templates/_helpers.yaml | 26 ++
chart/values.schema.json | 320 +++++++++++++++++++++--
helm_tests/airflow_aux/test_create_user_job.py | 20 +-
helm_tests/airflow_aux/test_pod_template_file.py | 24 +-
helm_tests/airflow_core/test_dag_processor.py | 20 +-
helm_tests/airflow_core/test_scheduler.py | 20 +-
helm_tests/airflow_core/test_triggerer.py | 20 +-
helm_tests/airflow_core/test_worker.py | 20 +-
helm_tests/other/test_flower.py | 20 +-
helm_tests/webserver/test_webserver.py | 20 +-
10 files changed, 486 insertions(+), 24 deletions(-)
diff --git a/chart/templates/_helpers.yaml b/chart/templates/_helpers.yaml
index aaa86ecbe8..dfa23fba2f 100644
--- a/chart/templates/_helpers.yaml
+++ b/chart/templates/_helpers.yaml
@@ -1025,10 +1025,36 @@ capabilities:
{{- $env := index . 1 -}}
{{- range $i, $config := $env }}
- name: {{ $config.name }}
+ {{- if $config.value }}
value: {{ $config.value | quote }}
+ {{- else if $config.valueFrom }}
+ valueFrom:
+ {{- if $config.valueFrom.secretKeyRef }}
+ secretKeyRef:
+ name: {{ $config.valueFrom.secretKeyRef.name }}
+ key: {{ $config.valueFrom.secretKeyRef.key }}
+ {{- else if $config.valueFrom.configMapKeyRef }}
+ configMapKeyRef:
+ name: {{ $config.valueFrom.configMapKeyRef.name }}
+ key: {{ $config.valueFrom.configMapKeyRef.key }}
+ {{- end }}
+ {{- end }}
{{- if or (eq $.Values.executor "KubernetesExecutor") (eq
$.Values.executor "LocalKubernetesExecutor") (eq $.Values.executor
"CeleryKubernetesExecutor") }}
- name: AIRFLOW__KUBERNETES_ENVIRONMENT_VARIABLES__{{ $config.name }}
+ {{- if $config.value }}
value: {{ $config.value | quote }}
+ {{- else if $config.valueFrom }}
+ valueFrom:
+ {{- if $config.valueFrom.secretKeyRef }}
+ secretKeyRef:
+ name: {{ $config.valueFrom.secretKeyRef.name }}
+ key: {{ $config.valueFrom.secretKeyRef.key }}
+ {{- else if $config.valueFrom.configMapKeyRef }}
+ configMapKeyRef:
+ name: {{ $config.valueFrom.configMapKeyRef.name }}
+ key: {{ $config.valueFrom.configMapKeyRef.key }}
+ {{- end }}
+ {{- end }}
{{- end }}
{{- end }}
{{- end }}
diff --git a/chart/values.schema.json b/chart/values.schema.json
index e155719720..c2abb29441 100644
--- a/chart/values.schema.json
+++ b/chart/values.schema.json
@@ -2145,11 +2145,47 @@
},
"value": {
"type": "string"
+ },
+ "valueFrom": {
+ "type": "object",
+ "properties": {
+ "configMapKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector",
+ "description": "Selects a key of a
ConfigMap."
+ },
+ "secretKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.SecretKeySelector",
+ "description": "Selects a key of a
secret in the pod's namespace"
+ }
+ },
+ "anyOf": [
+ {
+ "required": [
+ "configMapKeyRef"
+ ]
+ },
+ {
+ "required": [
+ "secretKeyRef"
+ ]
+ }
+ ]
}
},
"required": [
- "name",
- "value"
+ "name"
+ ],
+ "anyOf": [
+ {
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "required": [
+ "valueFrom"
+ ]
+ }
],
"additionalProperties": false
}
@@ -2693,11 +2729,47 @@
},
"value": {
"type": "string"
+ },
+ "valueFrom": {
+ "type": "object",
+ "properties": {
+ "configMapKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector",
+ "description": "Selects a key of a
ConfigMap."
+ },
+ "secretKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.SecretKeySelector",
+ "description": "Selects a key of a
secret in the pod's namespace"
+ }
+ },
+ "anyOf": [
+ {
+ "required": [
+ "configMapKeyRef"
+ ]
+ },
+ {
+ "required": [
+ "secretKeyRef"
+ ]
+ }
+ ]
}
},
"required": [
- "name",
- "value"
+ "name"
+ ],
+ "anyOf": [
+ {
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "required": [
+ "valueFrom"
+ ]
+ }
],
"additionalProperties": false
}
@@ -3164,11 +3236,47 @@
},
"value": {
"type": "string"
+ },
+ "valueFrom": {
+ "type": "object",
+ "properties": {
+ "configMapKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector",
+ "description": "Selects a key of a
ConfigMap."
+ },
+ "secretKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.SecretKeySelector",
+ "description": "Selects a key of a
secret in the pod's namespace"
+ }
+ },
+ "anyOf": [
+ {
+ "required": [
+ "configMapKeyRef"
+ ]
+ },
+ {
+ "required": [
+ "secretKeyRef"
+ ]
+ }
+ ]
}
},
"required": [
- "name",
- "value"
+ "name"
+ ],
+ "anyOf": [
+ {
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "required": [
+ "valueFrom"
+ ]
+ }
],
"additionalProperties": false
}
@@ -3647,11 +3755,47 @@
},
"value": {
"type": "string"
+ },
+ "valueFrom": {
+ "type": "object",
+ "properties": {
+ "configMapKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector",
+ "description": "Selects a key of a
ConfigMap."
+ },
+ "secretKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.SecretKeySelector",
+ "description": "Selects a key of a
secret in the pod's namespace"
+ }
+ },
+ "anyOf": [
+ {
+ "required": [
+ "configMapKeyRef"
+ ]
+ },
+ {
+ "required": [
+ "secretKeyRef"
+ ]
+ }
+ ]
}
},
"required": [
- "name",
- "value"
+ "name"
+ ],
+ "anyOf": [
+ {
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "required": [
+ "valueFrom"
+ ]
+ }
],
"additionalProperties": false
}
@@ -3952,11 +4096,47 @@
},
"value": {
"type": "string"
+ },
+ "valueFrom": {
+ "type": "object",
+ "properties": {
+ "configMapKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector",
+ "description": "Selects a key of a
ConfigMap."
+ },
+ "secretKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.SecretKeySelector",
+ "description": "Selects a key of a
secret in the pod's namespace"
+ }
+ },
+ "anyOf": [
+ {
+ "required": [
+ "configMapKeyRef"
+ ]
+ },
+ {
+ "required": [
+ "secretKeyRef"
+ ]
+ }
+ ]
}
},
"required": [
- "name",
- "value"
+ "name"
+ ],
+ "anyOf": [
+ {
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "required": [
+ "valueFrom"
+ ]
+ }
],
"additionalProperties": false
}
@@ -5681,11 +5861,47 @@
},
"value": {
"type": "string"
+ },
+ "valueFrom": {
+ "type": "object",
+ "properties": {
+ "configMapKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector",
+ "description": "Selects a key of a
ConfigMap."
+ },
+ "secretKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.SecretKeySelector",
+ "description": "Selects a key of a
secret in the pod's namespace"
+ }
+ },
+ "anyOf": [
+ {
+ "required": [
+ "configMapKeyRef"
+ ]
+ },
+ {
+ "required": [
+ "secretKeyRef"
+ ]
+ }
+ ]
}
},
"required": [
- "name",
- "value"
+ "name"
+ ],
+ "anyOf": [
+ {
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "required": [
+ "valueFrom"
+ ]
+ }
],
"additionalProperties": false
}
@@ -6174,11 +6390,47 @@
},
"value": {
"type": "string"
+ },
+ "valueFrom": {
+ "type": "object",
+ "properties": {
+ "configMapKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector",
+ "description": "Selects a key of a
ConfigMap."
+ },
+ "secretKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.SecretKeySelector",
+ "description": "Selects a key of a
secret in the pod's namespace"
+ }
+ },
+ "anyOf": [
+ {
+ "required": [
+ "configMapKeyRef"
+ ]
+ },
+ {
+ "required": [
+ "secretKeyRef"
+ ]
+ }
+ ]
}
},
"required": [
- "name",
- "value"
+ "name"
+ ],
+ "anyOf": [
+ {
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "required": [
+ "valueFrom"
+ ]
+ }
],
"additionalProperties": false
}
@@ -7798,11 +8050,47 @@
},
"value": {
"type": "string"
+ },
+ "valueFrom": {
+ "type": "object",
+ "properties": {
+ "configMapKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector",
+ "description": "Selects a key of a
ConfigMap."
+ },
+ "secretKeyRef": {
+ "$ref":
"#/definitions/io.k8s.api.core.v1.SecretKeySelector",
+ "description": "Selects a key of a
secret in the pod's namespace"
+ }
+ },
+ "anyOf": [
+ {
+ "required": [
+ "configMapKeyRef"
+ ]
+ },
+ {
+ "required": [
+ "secretKeyRef"
+ ]
+ }
+ ]
}
},
"required": [
- "name",
- "value"
+ "name"
+ ],
+ "anyOf": [
+ {
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "required": [
+ "valueFrom"
+ ]
+ }
],
"additionalProperties": false
}
diff --git a/helm_tests/airflow_aux/test_create_user_job.py
b/helm_tests/airflow_aux/test_create_user_job.py
index 6ee458bcbb..fb90d7c599 100644
--- a/helm_tests/airflow_aux/test_create_user_job.py
+++ b/helm_tests/airflow_aux/test_create_user_job.py
@@ -228,7 +228,17 @@ class TestCreateUserJob:
docs = render_chart(
values={
"createUserJob": {
- "env": [{"name": "TEST_ENV_1", "value": "test_env_1"}],
+ "env": [
+ {"name": "TEST_ENV_1", "value": "test_env_1"},
+ {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name":
"my-secret", "key": "my-key"}},
+ },
+ {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name":
"my-config-map", "key": "my-key"}},
+ },
+ ],
},
},
show_only=["templates/jobs/create-user-job.yaml"],
@@ -237,6 +247,14 @@ class TestCreateUserJob:
assert {"name": "TEST_ENV_1", "value": "test_env_1"} in
jmespath.search(
"spec.template.spec.containers[0].env", docs[0]
)
+ assert {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name": "my-secret", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
+ assert {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name": "my-config-map", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
def test_should_enable_custom_env(self):
docs = render_chart(
diff --git a/helm_tests/airflow_aux/test_pod_template_file.py
b/helm_tests/airflow_aux/test_pod_template_file.py
index 8216347512..1efccbf410 100644
--- a/helm_tests/airflow_aux/test_pod_template_file.py
+++ b/helm_tests/airflow_aux/test_pod_template_file.py
@@ -767,7 +767,21 @@ class TestPodTemplateFile:
def test_should_add_extraEnvs(self):
docs = render_chart(
- values={"workers": {"env": [{"name": "TEST_ENV_1", "value":
"test_env_1"}]}},
+ values={
+ "workers": {
+ "env": [
+ {"name": "TEST_ENV_1", "value": "test_env_1"},
+ {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name":
"my-secret", "key": "my-key"}},
+ },
+ {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name":
"my-config-map", "key": "my-key"}},
+ },
+ ]
+ }
+ },
show_only=["templates/pod-template-file.yaml"],
chart_dir=self.temp_chart_dir,
)
@@ -775,6 +789,14 @@ class TestPodTemplateFile:
assert {"name": "TEST_ENV_1", "value": "test_env_1"} in
jmespath.search(
"spec.containers[0].env", docs[0]
)
+ assert {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name": "my-secret", "key":
"my-key"}},
+ } in jmespath.search("spec.containers[0].env", docs[0])
+ assert {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name": "my-config-map", "key":
"my-key"}},
+ } in jmespath.search("spec.containers[0].env", docs[0])
def test_should_add_component_specific_labels(self):
docs = render_chart(
diff --git a/helm_tests/airflow_core/test_dag_processor.py
b/helm_tests/airflow_core/test_dag_processor.py
index 31256b4095..9ecf06d36c 100644
--- a/helm_tests/airflow_core/test_dag_processor.py
+++ b/helm_tests/airflow_core/test_dag_processor.py
@@ -203,7 +203,17 @@ class TestDagProcessor:
values={
"dagProcessor": {
"enabled": True,
- "env": [{"name": "TEST_ENV_1", "value": "test_env_1"}],
+ "env": [
+ {"name": "TEST_ENV_1", "value": "test_env_1"},
+ {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name":
"my-secret", "key": "my-key"}},
+ },
+ {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name":
"my-config-map", "key": "my-key"}},
+ },
+ ],
},
},
show_only=["templates/dag-processor/dag-processor-deployment.yaml"],
@@ -212,6 +222,14 @@ class TestDagProcessor:
assert {"name": "TEST_ENV_1", "value": "test_env_1"} in
jmespath.search(
"spec.template.spec.containers[0].env", docs[0]
)
+ assert {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name": "my-secret", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
+ assert {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name": "my-config-map", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
def test_should_add_extraEnvs_to_wait_for_migration_container(self):
docs = render_chart(
diff --git a/helm_tests/airflow_core/test_scheduler.py
b/helm_tests/airflow_core/test_scheduler.py
index eef2f87564..3fb7f6754d 100644
--- a/helm_tests/airflow_core/test_scheduler.py
+++ b/helm_tests/airflow_core/test_scheduler.py
@@ -169,7 +169,17 @@ class TestScheduler:
docs = render_chart(
values={
"scheduler": {
- "env": [{"name": "TEST_ENV_1", "value": "test_env_1"}],
+ "env": [
+ {"name": "TEST_ENV_1", "value": "test_env_1"},
+ {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name":
"my-secret", "key": "my-key"}},
+ },
+ {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name":
"my-config-map", "key": "my-key"}},
+ },
+ ],
},
},
show_only=["templates/scheduler/scheduler-deployment.yaml"],
@@ -178,6 +188,14 @@ class TestScheduler:
assert {"name": "TEST_ENV_1", "value": "test_env_1"} in
jmespath.search(
"spec.template.spec.containers[0].env", docs[0]
)
+ assert {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name": "my-secret", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
+ assert {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name": "my-config-map", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
def test_should_add_extraEnvs_to_wait_for_migration_container(self):
docs = render_chart(
diff --git a/helm_tests/airflow_core/test_triggerer.py
b/helm_tests/airflow_core/test_triggerer.py
index a684e0f334..0d8c4dd820 100644
--- a/helm_tests/airflow_core/test_triggerer.py
+++ b/helm_tests/airflow_core/test_triggerer.py
@@ -191,7 +191,17 @@ class TestTriggerer:
docs = render_chart(
values={
"triggerer": {
- "env": [{"name": "TEST_ENV_1", "value": "test_env_1"}],
+ "env": [
+ {"name": "TEST_ENV_1", "value": "test_env_1"},
+ {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name":
"my-secret", "key": "my-key"}},
+ },
+ {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name":
"my-config-map", "key": "my-key"}},
+ },
+ ],
}
},
show_only=["templates/triggerer/triggerer-deployment.yaml"],
@@ -200,6 +210,14 @@ class TestTriggerer:
assert {"name": "TEST_ENV_1", "value": "test_env_1"} in
jmespath.search(
"spec.template.spec.containers[0].env", docs[0]
)
+ assert {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name": "my-secret", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
+ assert {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name": "my-config-map", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
def test_should_add_extraEnvs_to_wait_for_migration_container(self):
docs = render_chart(
diff --git a/helm_tests/airflow_core/test_worker.py
b/helm_tests/airflow_core/test_worker.py
index bbfea0be68..af370f3d9a 100644
--- a/helm_tests/airflow_core/test_worker.py
+++ b/helm_tests/airflow_core/test_worker.py
@@ -182,7 +182,17 @@ class TestWorker:
docs = render_chart(
values={
"workers": {
- "env": [{"name": "TEST_ENV_1", "value": "test_env_1"}],
+ "env": [
+ {"name": "TEST_ENV_1", "value": "test_env_1"},
+ {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name":
"my-secret", "key": "my-key"}},
+ },
+ {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name":
"my-config-map", "key": "my-key"}},
+ },
+ ],
},
},
show_only=["templates/workers/worker-deployment.yaml"],
@@ -191,6 +201,14 @@ class TestWorker:
assert {"name": "TEST_ENV_1", "value": "test_env_1"} in
jmespath.search(
"spec.template.spec.containers[0].env", docs[0]
)
+ assert {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name": "my-secret", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
+ assert {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name": "my-config-map", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
def test_should_add_extraEnvs_to_wait_for_migration_container(self):
docs = render_chart(
diff --git a/helm_tests/other/test_flower.py b/helm_tests/other/test_flower.py
index b88fd25ef3..0f2f2dd66b 100644
--- a/helm_tests/other/test_flower.py
+++ b/helm_tests/other/test_flower.py
@@ -305,7 +305,17 @@ class TestFlowerDeployment:
values={
"flower": {
"enabled": True,
- "env": [{"name": "TEST_ENV_1", "value": "test_env_1"}],
+ "env": [
+ {"name": "TEST_ENV_1", "value": "test_env_1"},
+ {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name":
"my-secret", "key": "my-key"}},
+ },
+ {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name":
"my-config-map", "key": "my-key"}},
+ },
+ ],
}
},
show_only=["templates/flower/flower-deployment.yaml"],
@@ -314,6 +324,14 @@ class TestFlowerDeployment:
assert {"name": "TEST_ENV_1", "value": "test_env_1"} in
jmespath.search(
"spec.template.spec.containers[0].env", docs[0]
)
+ assert {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name": "my-secret", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
+ assert {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name": "my-config-map", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
def test_should_add_component_specific_labels(self):
docs = render_chart(
diff --git a/helm_tests/webserver/test_webserver.py
b/helm_tests/webserver/test_webserver.py
index 364a7e4b16..3d34804211 100644
--- a/helm_tests/webserver/test_webserver.py
+++ b/helm_tests/webserver/test_webserver.py
@@ -219,7 +219,17 @@ class TestWebserverDeployment:
docs = render_chart(
values={
"webserver": {
- "env": [{"name": "TEST_ENV_1", "value": "test_env_1"}],
+ "env": [
+ {"name": "TEST_ENV_1", "value": "test_env_1"},
+ {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name":
"my-secret", "key": "my-key"}},
+ },
+ {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name":
"my-config-map", "key": "my-key"}},
+ },
+ ],
},
},
show_only=["templates/webserver/webserver-deployment.yaml"],
@@ -228,6 +238,14 @@ class TestWebserverDeployment:
assert {"name": "TEST_ENV_1", "value": "test_env_1"} in
jmespath.search(
"spec.template.spec.containers[0].env", docs[0]
)
+ assert {
+ "name": "TEST_ENV_2",
+ "valueFrom": {"secretKeyRef": {"name": "my-secret", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
+ assert {
+ "name": "TEST_ENV_3",
+ "valueFrom": {"configMapKeyRef": {"name": "my-config-map", "key":
"my-key"}},
+ } in jmespath.search("spec.template.spec.containers[0].env", docs[0])
def test_should_add_extra_volume_and_extra_volume_mount(self):
docs = render_chart(