Skip to content

Commit

Permalink
add kerberos env to base container env, add webserver-config volume) (a…
Browse files Browse the repository at this point in the history
  • Loading branch information
romsharon98 authored Aug 21, 2024
1 parent 410b577 commit 4eb71d6
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
11 changes: 11 additions & 0 deletions chart/files/pod-template-file.kubernetes-helm-yaml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ spec:
env:
- name: AIRFLOW__CORE__EXECUTOR
value: LocalExecutor
{{- if or .Values.workers.kerberosSidecar.enabled .Values.workers.kerberosInitContainer.enabled}}
- name: KRB5_CONFIG
value: {{ .Values.kerberos.configPath | quote }}
- name: KRB5CCNAME
value: {{ include "kerberos_ccache_path" . | quote }}
{{- end }}
{{- include "standard_airflow_environment" . | indent 6}}
{{- include "custom_airflow_environment" . | indent 6 }}
{{- include "container_extra_envs" (list . .Values.workers.env) | indent 6 }}
Expand Down Expand Up @@ -229,6 +235,11 @@ spec:
- configMap:
name: {{ include "airflow_config" . }}
name: config
{{- if and (or .Values.webserver.webserverConfig .Values.webserver.webserverConfigConfigMapName) (or .Values.workers.kerberosInitContainer.enabled .Values.workers.kerberosSidecar.enabled)}}
- name: webserver-config
configMap:
name: {{ template "airflow_webserver_config_configmap_name" . }}
{{- end }}
{{- if .Values.volumes }}
{{- toYaml .Values.volumes | nindent 2 }}
{{- end }}
Expand Down
39 changes: 39 additions & 0 deletions helm_tests/airflow_aux/test_pod_template_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -1026,3 +1026,42 @@ def test_should_not_add_command_by_default(self):
)

assert None is jmespath.search("spec.containers[0].command", docs[0])

@pytest.mark.parametrize(
"workers_values, kerberos_init_container",
[
({"kerberosSidecar": {"enabled": True}}, False),
({"kerberosInitContainer": {"enabled": True}}, True),
],
)
def test_webserver_config_for_kerberos(self, workers_values, kerberos_init_container):
docs = render_chart(
values={"workers": workers_values, "webserver": {"webserverConfigConfigMapName": "config"}},
show_only=["templates/pod-template-file.yaml"],
chart_dir=self.temp_chart_dir,
)

kerberos_container = "spec.containers[1].volumeMounts[*].name"
if kerberos_init_container:
kerberos_container = "spec.initContainers[0].volumeMounts[*].name"

volume_mounts_names = jmespath.search(kerberos_container, docs[0])
print(volume_mounts_names)
assert "webserver-config" in volume_mounts_names
assert "webserver-config" in jmespath.search("spec.volumes[*].name", docs[0])

@pytest.mark.parametrize(
"workers_values",
[{"kerberosSidecar": {"enabled": True}}, {"kerberosInitContainer": {"enabled": True}}],
)
def test_base_contains_kerberos_env(self, workers_values):
docs = render_chart(
values={
"workers": workers_values,
},
show_only=["templates/pod-template-file.yaml"],
chart_dir=self.temp_chart_dir,
)

scheduler_env = jmespath.search("spec.containers[0].env[*].name", docs[0])
assert set(["KRB5_CONFIG", "KRB5CCNAME"]).issubset(scheduler_env)

0 comments on commit 4eb71d6

Please sign in to comment.