@@ -434,19 +434,23 @@ so any inner `${...}` reaches goose verbatim and fails URL parsing.
434434CLICKHOUSE_PASSWORD must contain only URL-userinfo-safe characters — the
435435value is substituted verbatim, so `@ : / ? # [ ] %` break the URL. Use a
436436hex-encoded password or percent-encode before storing in the Secret.
437+
438+ Inline credentials (auth.* and external.* values) are percent-encoded via
439+ urlquery, so special characters are safe there — except spaces, which
440+ urlquery encodes as `+` and userinfo decoding keeps literal.
437441*/ }}
438442{{- define " trigger-v4.clickhouse.url" -}}
439443{{- if .Values.clickhouse.deploy -}}
440444{{- $protocol := ternary " https" " http" .Values.clickhouse.secure -}}
441445{{- $secure := ternary " true" " false" .Values.clickhouse.secure -}}
442- {{ $protocol }}://{{ .Values.clickhouse.auth.username }}:{{ .Values.clickhouse.auth.password }}@{{ include " trigger-v4.clickhouse.hostname" . }}:{{ .Values.clickhouse.service.ports.http }}?secure= {{ $secure }}
446+ {{ $protocol }}://{{ .Values.clickhouse.auth.username | urlquery }}:{{ .Values.clickhouse.auth.password | urlquery }}@{{ include " trigger-v4.clickhouse.hostname" . }}:{{ .Values.clickhouse.service.ports.http }}?secure= {{ $secure }}
443447{{- else if .Values.clickhouse.external.host -}}
444448{{- $protocol := ternary " https" " http" .Values.clickhouse.external.secure -}}
445449{{- $secure := ternary " true" " false" .Values.clickhouse.external.secure -}}
446450{{- if .Values.clickhouse.external.existingSecret -}}
447- {{ $protocol }}://{{ .Values.clickhouse.external.username }}:$ (CLICKHOUSE_PASSWORD)@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}?secure= {{ $secure }}
451+ {{ $protocol }}://{{ .Values.clickhouse.external.username | urlquery }}:$ (CLICKHOUSE_PASSWORD)@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}?secure= {{ $secure }}
448452{{- else -}}
449- {{ $protocol }}://{{ .Values.clickhouse.external.username }}:{{ .Values.clickhouse.external.password }}@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}?secure= {{ $secure }}
453+ {{ $protocol }}://{{ .Values.clickhouse.external.username | urlquery }}:{{ .Values.clickhouse.external.password | urlquery }}@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}?secure= {{ $secure }}
450454{{- end -}}
451455{{- end -}}
452456{{- end }}
@@ -460,13 +464,13 @@ applies to the replication URL.
460464{{- define " trigger-v4.clickhouse.replication.url" -}}
461465{{- if .Values.clickhouse.deploy -}}
462466{{- $protocol := ternary " https" " http" .Values.clickhouse.secure -}}
463- {{ $protocol }}://{{ .Values.clickhouse.auth.username }}:{{ .Values.clickhouse.auth.password }}@{{ include " trigger-v4.clickhouse.hostname" . }}:{{ .Values.clickhouse.service.ports.http }}
467+ {{ $protocol }}://{{ .Values.clickhouse.auth.username | urlquery }}:{{ .Values.clickhouse.auth.password | urlquery }}@{{ include " trigger-v4.clickhouse.hostname" . }}:{{ .Values.clickhouse.service.ports.http }}
464468{{- else if .Values.clickhouse.external.host -}}
465469{{- $protocol := ternary " https" " http" .Values.clickhouse.external.secure -}}
466470{{- if .Values.clickhouse.external.existingSecret -}}
467- {{ $protocol }}://{{ .Values.clickhouse.external.username }}:$ (CLICKHOUSE_PASSWORD)@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}
471+ {{ $protocol }}://{{ .Values.clickhouse.external.username | urlquery }}:$ (CLICKHOUSE_PASSWORD)@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}
468472{{- else -}}
469- {{ $protocol }}://{{ .Values.clickhouse.external.username }}:{{ .Values.clickhouse.external.password }}@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}
473+ {{ $protocol }}://{{ .Values.clickhouse.external.username | urlquery }}:{{ .Values.clickhouse.external.password | urlquery }}@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}
470474{{- end -}}
471475{{- end -}}
472476{{- end }}
0 commit comments