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 44a5300594 Chart: enable mysql keda support for triggerer (#37365)
44a5300594 is described below
commit 44a53005948a0e96b94714e71ce4aa2b5f1f9d6b
Author: Forlot Romain <[email protected]>
AuthorDate: Fri Jun 7 17:52:31 2024 +0200
Chart: enable mysql keda support for triggerer (#37365)
---
chart/templates/triggerer/triggerer-kedaautoscaler.yaml | 12 ++++++++++++
chart/templates/workers/worker-kedaautoscaler.yaml | 1 -
helm_tests/airflow_core/test_triggerer.py | 17 +++++++++++++++++
helm_tests/airflow_core/test_worker.py | 16 ++++++++++++++++
4 files changed, 45 insertions(+), 1 deletion(-)
diff --git a/chart/templates/triggerer/triggerer-kedaautoscaler.yaml
b/chart/templates/triggerer/triggerer-kedaautoscaler.yaml
index a83834a838..f719281c30 100644
--- a/chart/templates/triggerer/triggerer-kedaautoscaler.yaml
+++ b/chart/templates/triggerer/triggerer-kedaautoscaler.yaml
@@ -48,10 +48,22 @@ spec:
advanced: {{- toYaml .Values.triggerer.keda.advanced | nindent 4 }}
{{- end }}
triggers:
+ {{- if eq .Values.data.metadataConnection.protocol "mysql" }}
+ - type: "mysql"
+ metadata:
+ queryValue: "1"
+ connectionStringFromEnv: KEDA_DB_CONN
+ query: {{ tpl .Values.triggerer.keda.query . | quote }}
+ {{- else }}
- type: postgresql
metadata:
targetQueryValue: "1"
+ {{- if and .Values.pgbouncer.enabled (not
.Values.triggerer.keda.usePgbouncer) }}
+ connectionFromEnv: KEDA_DB_CONN
+ {{- else }}
connectionFromEnv: AIRFLOW_CONN_AIRFLOW_DB
+ {{- end }}
query: {{ tpl .Values.triggerer.keda.query . | quote }}
+ {{- end }}
{{- end }}
{{- end }}
diff --git a/chart/templates/workers/worker-kedaautoscaler.yaml
b/chart/templates/workers/worker-kedaautoscaler.yaml
index 95adb3e126..74af09b174 100644
--- a/chart/templates/workers/worker-kedaautoscaler.yaml
+++ b/chart/templates/workers/worker-kedaautoscaler.yaml
@@ -64,5 +64,4 @@ spec:
{{- end }}
query: {{ tpl .Values.workers.keda.query . | quote }}
{{- end }}
-
{{- end }}
diff --git a/helm_tests/airflow_core/test_triggerer.py
b/helm_tests/airflow_core/test_triggerer.py
index c92683e80d..a684e0f334 100644
--- a/helm_tests/airflow_core/test_triggerer.py
+++ b/helm_tests/airflow_core/test_triggerer.py
@@ -738,3 +738,20 @@ class TestTriggererKedaAutoScaler:
show_only=["templates/triggerer/triggerer-kedaautoscaler.yaml"],
)
assert expected_query ==
jmespath.search("spec.triggers[0].metadata.query", docs[0])
+
+ def test_mysql_db_backend_keda(self):
+ docs = render_chart(
+ values={
+ "data": {"metadataConnection": {"protocol": "mysql"}},
+ "triggerer": {
+ "enabled": True,
+ "keda": {"enabled": True},
+ },
+ },
+ show_only=["templates/triggerer/triggerer-kedaautoscaler.yaml"],
+ )
+ assert "1" == jmespath.search("spec.triggers[0].metadata.queryValue",
docs[0])
+ assert jmespath.search("spec.triggers[0].metadata.targetQueryValue",
docs[0]) is None
+
+ assert "KEDA_DB_CONN" ==
jmespath.search("spec.triggers[0].metadata.connectionStringFromEnv", docs[0])
+ assert jmespath.search("spec.triggers[0].metadata.connectionFromEnv",
docs[0]) is None
diff --git a/helm_tests/airflow_core/test_worker.py
b/helm_tests/airflow_core/test_worker.py
index 100d53c28c..bbfea0be68 100644
--- a/helm_tests/airflow_core/test_worker.py
+++ b/helm_tests/airflow_core/test_worker.py
@@ -1030,6 +1030,22 @@ class TestWorkerKedaAutoScaler:
)
assert expected_query ==
jmespath.search("spec.triggers[0].metadata.query", docs[0])
+ def test_mysql_db_backend_keda(self):
+ docs = render_chart(
+ values={
+ "data": {"metadataConnection": {"protocol": "mysql"}},
+ "workers": {
+ "keda": {"enabled": True},
+ },
+ },
+ show_only=["templates/workers/worker-kedaautoscaler.yaml"],
+ )
+ assert "1" == jmespath.search("spec.triggers[0].metadata.queryValue",
docs[0])
+ assert jmespath.search("spec.triggers[0].metadata.targetQueryValue",
docs[0]) is None
+
+ assert "KEDA_DB_CONN" ==
jmespath.search("spec.triggers[0].metadata.connectionStringFromEnv", docs[0])
+ assert jmespath.search("spec.triggers[0].metadata.connectionFromEnv",
docs[0]) is None
+
class TestWorkerHPAAutoScaler:
"""Tests worker HPA auto scaler."""