This is an automated email from the ASF dual-hosted git repository.
kaxilnaik pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/master by this push:
new 77e0106 Fix image and add airflow config for cleanup pods (#13576)
77e0106 is described below
commit 77e010670f3f0ffc9094d665a5f6010798a4122a
Author: Jun <[email protected]>
AuthorDate: Sat Jan 9 06:44:35 2021 +0800
Fix image and add airflow config for cleanup pods (#13576)
---
chart/templates/cleanup/cleanup-cronjob.yaml | 11 ++++-
chart/tests/test_cleanup_pods.py | 68 ++++++++++++++++++++++++++++
2 files changed, 78 insertions(+), 1 deletion(-)
diff --git a/chart/templates/cleanup/cleanup-cronjob.yaml
b/chart/templates/cleanup/cleanup-cronjob.yaml
index a2b1d0d..4bfc10e 100644
--- a/chart/templates/cleanup/cleanup-cronjob.yaml
+++ b/chart/templates/cleanup/cleanup-cronjob.yaml
@@ -61,10 +61,19 @@ spec:
{{- end }}
containers:
- name: airflow-cleanup-pods
- image: {{ template "default_airflow_image" . }}
+ image: {{ template "airflow_image" . }}
imagePullPolicy: {{ .Values.images.airflow.pullPolicy }}
# Don't use entry point here, we don't need to wait on
pg-bouncer etc being available.
args: ["kubernetes", "cleanup-pods", "--namespace={{
.Release.Namespace }}"]
env:
{{- include "standard_airflow_environment" . | indent 12 }}
+ volumeMounts:
+ - name: config
+ mountPath: {{ template "airflow_config_path" . }}
+ subPath: airflow.cfg
+ readOnly: true
+ volumes:
+ - name: config
+ configMap:
+ name: {{ template "airflow_config" . }}
{{- end }}
diff --git a/chart/tests/test_cleanup_pods.py b/chart/tests/test_cleanup_pods.py
new file mode 100644
index 0000000..df2b3a0
--- /dev/null
+++ b/chart/tests/test_cleanup_pods.py
@@ -0,0 +1,68 @@
+# 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.
+
+import unittest
+
+import jmespath
+
+from tests.helm_template_generator import render_chart
+
+
+class CleanupPodsTest(unittest.TestCase):
+ def test_should_create_cronjob_for_enabled_cleanup(self):
+ docs = render_chart(
+ values={
+ "cleanup": {"enabled": True},
+ },
+ show_only=["templates/cleanup/cleanup-cronjob.yaml"],
+ )
+
+ self.assertEqual(
+ "airflow-cleanup-pods",
+
jmespath.search("spec.jobTemplate.spec.template.spec.containers[0].name",
docs[0]),
+ )
+ self.assertEqual(
+ "apache/airflow:2.0.0",
+
jmespath.search("spec.jobTemplate.spec.template.spec.containers[0].image",
docs[0]),
+ )
+ self.assertIn(
+ {"name": "config", "configMap": {"name":
"RELEASE-NAME-airflow-config"}},
+ jmespath.search("spec.jobTemplate.spec.template.spec.volumes",
docs[0]),
+ )
+ self.assertIn(
+ {
+ "name": "config",
+ "mountPath": "/opt/airflow/airflow.cfg",
+ "subPath": "airflow.cfg",
+ "readOnly": True,
+ },
+
jmespath.search("spec.jobTemplate.spec.template.spec.containers[0].volumeMounts",
docs[0]),
+ )
+
+ def test_should_change_image_when_set_airflow_image(self):
+ docs = render_chart(
+ values={
+ "cleanup": {"enabled": True},
+ "images": {"airflow": {"repository": "airflow", "tag":
"test"}},
+ },
+ show_only=["templates/cleanup/cleanup-cronjob.yaml"],
+ )
+
+ self.assertEqual(
+ "airflow:test",
+
jmespath.search("spec.jobTemplate.spec.template.spec.containers[0].image",
docs[0]),
+ )