@@ -408,6 +408,16 @@ http://{{ include "trigger-v4.fullname" . }}-s2:{{ .Values.s2.service.port }}/v1
408408{{- end -}}
409409{{- end }}
410410
411+ {{/*
412+ Percent-encode a string for the userinfo part of a URL. urlquery encodes
413+ spaces as `+` (query semantics), which userinfo decoding keeps literal; a
414+ real `+` becomes `%2B`, so any `+` left in the output is a space and can be
415+ rewritten to `%20`.
416+ */ }}
417+ {{- define " trigger-v4.urlencode" -}}
418+ {{- . | urlquery | replace " +" " %20" -}}
419+ {{- end }}
420+
411421{{/*
412422ClickHouse hostname
413423*/ }}
@@ -435,22 +445,21 @@ CLICKHOUSE_PASSWORD must contain only URL-userinfo-safe characters — the
435445value is substituted verbatim, so `@ : / ? # [ ] %` break the URL. Use a
436446hex-encoded password or percent-encode before storing in the Secret.
437447
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.
448+ Inline credentials (auth.* and external.* values) are percent-encoded, so
449+ any special characters are safe there.
441450*/ }}
442451{{- define " trigger-v4.clickhouse.url" -}}
443452{{- if .Values.clickhouse.deploy -}}
444453{{- $protocol := ternary " https" " http" .Values.clickhouse.secure -}}
445454{{- $secure := ternary " true" " false" .Values.clickhouse.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 }}
455+ {{ $protocol }}://{{ include " trigger-v4.urlencode " . Values.clickhouse.auth.username }}:{{ include " trigger-v4.urlencode " . Values.clickhouse.auth.password }}@{{ include " trigger-v4.clickhouse.hostname" . }}:{{ .Values.clickhouse.service.ports.http }}?secure= {{ $secure }}
447456{{- else if .Values.clickhouse.external.host -}}
448457{{- $protocol := ternary " https" " http" .Values.clickhouse.external.secure -}}
449458{{- $secure := ternary " true" " false" .Values.clickhouse.external.secure -}}
450459{{- if .Values.clickhouse.external.existingSecret -}}
451- {{ $protocol }}://{{ . Values.clickhouse.external.username | urlquery }}:$ (CLICKHOUSE_PASSWORD)@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}?secure= {{ $secure }}
460+ {{ $protocol }}://{{ include " trigger-v4.urlencode " . Values.clickhouse.external.username }}:$ (CLICKHOUSE_PASSWORD)@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}?secure= {{ $secure }}
452461{{- else -}}
453- {{ $protocol }}://{{ . Values.clickhouse.external.username | urlquery }}:{{ . Values.clickhouse.external.password | urlquery }}@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}?secure= {{ $secure }}
462+ {{ $protocol }}://{{ include " trigger-v4.urlencode " . Values.clickhouse.external.username }}:{{ include " trigger-v4.urlencode " . Values.clickhouse.external.password }}@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}?secure= {{ $secure }}
454463{{- end -}}
455464{{- end -}}
456465{{- end }}
@@ -464,13 +473,13 @@ applies to the replication URL.
464473{{- define " trigger-v4.clickhouse.replication.url" -}}
465474{{- if .Values.clickhouse.deploy -}}
466475{{- $protocol := ternary " https" " http" .Values.clickhouse.secure -}}
467- {{ $protocol }}://{{ . Values.clickhouse.auth.username | urlquery }}:{{ . Values.clickhouse.auth.password | urlquery }}@{{ include " trigger-v4.clickhouse.hostname" . }}:{{ .Values.clickhouse.service.ports.http }}
476+ {{ $protocol }}://{{ include " trigger-v4.urlencode " . Values.clickhouse.auth.username }}:{{ include " trigger-v4.urlencode " . Values.clickhouse.auth.password }}@{{ include " trigger-v4.clickhouse.hostname" . }}:{{ .Values.clickhouse.service.ports.http }}
468477{{- else if .Values.clickhouse.external.host -}}
469478{{- $protocol := ternary " https" " http" .Values.clickhouse.external.secure -}}
470479{{- if .Values.clickhouse.external.existingSecret -}}
471- {{ $protocol }}://{{ . Values.clickhouse.external.username | urlquery }}:$ (CLICKHOUSE_PASSWORD)@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}
480+ {{ $protocol }}://{{ include " trigger-v4.urlencode " . Values.clickhouse.external.username }}:$ (CLICKHOUSE_PASSWORD)@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}
472481{{- else -}}
473- {{ $protocol }}://{{ . Values.clickhouse.external.username | urlquery }}:{{ . Values.clickhouse.external.password | urlquery }}@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}
482+ {{ $protocol }}://{{ include " trigger-v4.urlencode " . Values.clickhouse.external.username }}:{{ include " trigger-v4.urlencode " . Values.clickhouse.external.password }}@{{ .Values.clickhouse.external.host }}:{{ .Values.clickhouse.external.httpPort | default 8123 }}
474483{{- end -}}
475484{{- end -}}
476485{{- end }}
0 commit comments