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."""

Reply via email to