Skip to content

Commit

Permalink
Chart: enable mysql keda support for triggerer (#37365)
Browse files Browse the repository at this point in the history
GitOrigin-RevId: 44a53005948a0e96b94714e71ce4aa2b5f1f9d6b
  • Loading branch information
claneys authored and Cloud Composer Team committed Nov 9, 2024
1 parent 4324e94 commit b52657b
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 1 deletion.
12 changes: 12 additions & 0 deletions chart/templates/triggerer/triggerer-kedaautoscaler.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}
1 change: 0 additions & 1 deletion chart/templates/workers/worker-kedaautoscaler.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,5 +64,4 @@ spec:
{{- end }}
query: {{ tpl .Values.workers.keda.query . | quote }}
{{- end }}

{{- end }}
17 changes: 17 additions & 0 deletions helm_tests/airflow_core/test_triggerer.py
Original file line number Diff line number Diff line change
Expand Up @@ -738,3 +738,20 @@ def test_should_use_keda_query(self, query, expected_query):
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
16 changes: 16 additions & 0 deletions helm_tests/airflow_core/test_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -1030,6 +1030,22 @@ def test_should_use_keda_query(self, query, executor, expected_query):
)
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."""
Expand Down

0 comments on commit b52657b

Please sign in to comment.