From 43ce2b7d59aee2fc1d8bf9807aca1bf9038e8a89 Mon Sep 17 00:00:00 2001 From: Daniel Standish <15932138+dstandish@users.noreply.github.com> Date: Tue, 7 Nov 2023 13:07:54 -0800 Subject: [PATCH] Helm chart should set AIRFLOW_HOME from airflowHome (#34839) --- chart/templates/_helpers.yaml | 2 + helm_tests/airflow_aux/test_airflow_common.py | 2 + helm_tests/airflow_core/test_env.py | 42 +++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 helm_tests/airflow_core/test_env.py diff --git a/chart/templates/_helpers.yaml b/chart/templates/_helpers.yaml index c8b41d8c29169..d7b3c43079c16 100644 --- a/chart/templates/_helpers.yaml +++ b/chart/templates/_helpers.yaml @@ -60,6 +60,8 @@ If release name contains chart name it will be used as a full name. name: {{ template "fernet_key_secret" . }} key: fernet-key {{- end }} + - name: AIRFLOW_HOME + value: {{ .Values.airflowHome }} # For Airflow <2.3, backward compatibility; moved to [database] in 2.3 {{- if .Values.enableBuiltInSecretEnvVars.AIRFLOW__CORE__SQL_ALCHEMY_CONN }} - name: AIRFLOW__CORE__SQL_ALCHEMY_CONN diff --git a/helm_tests/airflow_aux/test_airflow_common.py b/helm_tests/airflow_aux/test_airflow_common.py index e25b96e5a1370..5257b490d2b4d 100644 --- a/helm_tests/airflow_aux/test_airflow_common.py +++ b/helm_tests/airflow_aux/test_airflow_common.py @@ -331,6 +331,7 @@ def test_should_disable_some_variables(self): ) expected_vars = [ "AIRFLOW__CORE__FERNET_KEY", + "AIRFLOW_HOME", "AIRFLOW_CONN_AIRFLOW_DB", "AIRFLOW__CELERY__BROKER_URL", ] @@ -355,6 +356,7 @@ def test_have_all_variables(self): ) expected_vars = [ "AIRFLOW__CORE__FERNET_KEY", + "AIRFLOW_HOME", "AIRFLOW__CORE__SQL_ALCHEMY_CONN", "AIRFLOW__DATABASE__SQL_ALCHEMY_CONN", "AIRFLOW_CONN_AIRFLOW_DB", diff --git a/helm_tests/airflow_core/test_env.py b/helm_tests/airflow_core/test_env.py new file mode 100644 index 0000000000000..5a5ee6580a66a --- /dev/null +++ b/helm_tests/airflow_core/test_env.py @@ -0,0 +1,42 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +from __future__ import annotations + +import jmespath + +from tests.charts.helm_template_generator import render_chart + + +def test_should_add_airflow_home(): + exp_path = "/not/even/a/real/path" + docs = render_chart( + values={"airflowHome": exp_path}, + show_only=["templates/webserver/webserver-deployment.yaml"], + ) + assert {"name": "AIRFLOW_HOME", "value": exp_path} in jmespath.search( + "spec.template.spec.containers[0].env", docs[0] + ) + + +def test_should_add_airflow_home_notset(): + docs = render_chart( + values={}, + show_only=["templates/webserver/webserver-deployment.yaml"], + ) + assert {"name": "AIRFLOW_HOME", "value": "/opt/airflow"} in jmespath.search( + "spec.template.spec.containers[0].env", docs[0] + )