Skip to content

Commit

Permalink
Fix metadata DB & port in Keda connection when usePgbouncer is false (a…
Browse files Browse the repository at this point in the history
…pache#34741)

* Fix metadata port in Keda connection when usePgbouncer is false

* load the correct database name

* Fix a typo
  • Loading branch information
hussein-awala authored Oct 7, 2023
1 parent 1f3525f commit 38e6607
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
8 changes: 5 additions & 3 deletions chart/templates/secrets/metadata-connection-secret.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,10 @@
{{- $metadataHost := .Values.data.metadataConnection.host | default $defaultMetadataHost }}
{{- $pgbouncerHost := (printf "%s-%s.%s" ( include "airflow.fullname" . ) "pgbouncer" .Release.Namespace) }}
{{- $host := ternary $pgbouncerHost $metadataHost .Values.pgbouncer.enabled }}
{{- $port := ((ternary .Values.ports.pgbouncer .Values.data.metadataConnection.port .Values.pgbouncer.enabled) | toString) }}
{{- $database := (ternary (printf "%s-%s" .Release.Name "metadata") .Values.data.metadataConnection.db .Values.pgbouncer.enabled) }}
{{- $metadataPort := .Values.data.metadataConnection.port | toString }}
{{- $port := ((ternary .Values.ports.pgbouncer $metadataPort .Values.pgbouncer.enabled) | toString) }}
{{- $metadataDatabase := .Values.data.metadataConnection.db }}
{{- $database := (ternary (printf "%s-%s" .Release.Name "metadata") $metadataDatabase .Values.pgbouncer.enabled) }}
{{- $query := ternary (printf "sslmode=%s" .Values.data.metadataConnection.sslmode) "" (eq .Values.data.metadataConnection.protocol "postgresql") }}
apiVersion: v1
kind: Secret
Expand All @@ -47,7 +49,7 @@ data:
{{- end }}
{{- if and .Values.workers.keda.enabled .Values.pgbouncer.enabled (not .Values.workers.keda.usePgbouncer) }}
{{- with .Values.data.metadataConnection }}
kedaConnection: {{ urlJoin (dict "scheme" .protocol "userinfo" (printf "%s:%s" (.user | urlquery) (.pass | urlquery) ) "host" (printf "%s:%s" $metadataHost $port) "path" (printf "/%s" $database) "query" $query) | b64enc | quote }}
kedaConnection: {{ urlJoin (dict "scheme" .protocol "userinfo" (printf "%s:%s" (.user | urlquery) (.pass | urlquery) ) "host" (printf "%s:%s" $metadataHost $metadataPort) "path" (printf "/%s" $metadataDatabase) "query" $query) | b64enc | quote }}
{{- end }}
{{- end }}
{{- end }}
10 changes: 8 additions & 2 deletions helm_tests/other/test_keda.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,10 +260,16 @@ def test_default_keda_db_connection_pgbouncer_enabled_usePgbouncer_false(self):
assert "KEDA_DB_CONN" in worker_container_env_vars

secret_data = jmespath.search("data", metadata_connection_secret)
connection_secret = base64.b64decode(secret_data["connection"]).decode()
keda_connection_secret = base64.b64decode(secret_data["kedaConnection"]).decode()
assert "connection" in secret_data.keys()
assert "@release-name-pgbouncer" in base64.b64decode(secret_data["connection"]).decode()
assert "@release-name-pgbouncer" in connection_secret
assert ":6543" in connection_secret
assert "/release-name-metadata" in connection_secret
assert "kedaConnection" in secret_data.keys()
assert "@release-name-postgresql" in base64.b64decode(secret_data["kedaConnection"]).decode()
assert "@release-name-postgresql" in keda_connection_secret
assert ":5432" in keda_connection_secret
assert "/postgres" in keda_connection_secret

autoscaler_connection_env_var = jmespath.search(
"spec.triggers[0].metadata.connectionFromEnv", keda_autoscaler
Expand Down

0 comments on commit 38e6607

Please sign in to comment.