From 79eae2ca25c8faa262c246bafcf913eb4e8fd2c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20B=C3=BCtler?= <48495685+fbuetler@users.noreply.github.com> Date: Thu, 8 Jan 2026 18:25:16 +0100 Subject: [PATCH] fix(helm): Respect global registry in sidecar image (#18246) (#19347) Signed-off-by: Jay Clifford <45856600+Jayclifford345@users.noreply.github.com> Signed-off-by: J Stickler Co-authored-by: Jay Clifford <45856600+Jayclifford345@users.noreply.github.com> Co-authored-by: J Stickler Co-authored-by: Jayclifford345 --- docs/sources/setup/install/helm/reference.md | 11 +++++++- docs/sources/setup/upgrade/_index.md | 9 +++++++ production/helm/loki/CHANGELOG.md | 2 ++ production/helm/loki/README.md | 2 +- production/helm/loki/templates/_helpers.tpl | 26 ++++++++++++------- .../backend/statefulset-backend.yaml | 4 --- .../compactor/_helpers-compactor.tpl | 2 +- .../templates/gateway/_helpers-gateway.tpl | 2 +- .../index-gateway/_helpers-index-gateway.tpl | 2 +- .../loki/templates/loki-canary/_helpers.tpl | 2 +- .../loki/templates/provisioner/_helpers.yaml | 2 +- .../_helpers-query-scheduler.tpl | 2 +- .../loki/templates/ruler/_helpers-ruler.tpl | 2 +- .../templates/ruler/statefulset-ruler.yaml | 4 --- .../statefulset-recreate-job.yaml | 4 +-- .../templates/single-binary/statefulset.yaml | 4 --- .../helm/loki/templates/tests/_helpers.tpl | 2 +- production/helm/loki/values.yaml | 3 ++- 18 files changed, 50 insertions(+), 35 deletions(-) diff --git a/docs/sources/setup/install/helm/reference.md b/docs/sources/setup/install/helm/reference.md index ac99edea8f..f6b71eb8a6 100644 --- a/docs/sources/setup/install/helm/reference.md +++ b/docs/sources/setup/install/helm/reference.md @@ -12490,6 +12490,15 @@ false
 "IfNotPresent"
 
+ + + + sidecar.image.registry + string + +
+"docker.io"
+
@@ -12497,7 +12506,7 @@ false string The Docker registry and image for the k8s sidecar
-"docker.io/kiwigrid/k8s-sidecar"
+"kiwigrid/k8s-sidecar"
 
diff --git a/docs/sources/setup/upgrade/_index.md b/docs/sources/setup/upgrade/_index.md index 29b83e4b18..47b11e4af7 100644 --- a/docs/sources/setup/upgrade/_index.md +++ b/docs/sources/setup/upgrade/_index.md @@ -45,6 +45,15 @@ Supported clients should check the configuration options for max send message si ## Helm Chart Upgrades +### Helm Chart 6.46.1 - Respect the global registry in the sidecar image + +If you prefixed the sidecar container with a private registry (`sidecar.image.repository`), this is no longer necessary and is deprecated as the global registry is used starting with Helm chart 6.46.1. Therefore please use `global.imageRegistry` or alternatively, `sidecar.image.registry` for more fine-grained control. + +### Helm Chart 6.46.1 - Uniform naming for image digest also in the sidecar image + +For most images used in the helm chart, a `.digest` is available to pin an image to a specific hash. The sidecar images diverges from this convention by introducing a `.tag`. +Starting with Helm chart 6.46.1, the `.tag` is deprecated and `.digest` should be used. + ### Helm Chart 6.34.0 - Zone-aware Ingester Breaking Change {{< admonition type="warning" >}} diff --git a/production/helm/loki/CHANGELOG.md b/production/helm/loki/CHANGELOG.md index 41eb68f584..07c65e73f5 100644 --- a/production/helm/loki/CHANGELOG.md +++ b/production/helm/loki/CHANGELOG.md @@ -13,6 +13,8 @@ Entries should include a reference to the pull request that introduced the chang ## Unreleased +- [BUGFIX] Respect global registry in sidecar image [#19347](https://github.com/grafana/loki/pull/19347). + ## 6.49.0 - [CHANGE] Updated version of Grafana Loki to 3.6.3 diff --git a/production/helm/loki/README.md b/production/helm/loki/README.md index bcf745a036..7b290a008f 100644 --- a/production/helm/loki/README.md +++ b/production/helm/loki/README.md @@ -16,7 +16,7 @@ Helm chart for Grafana Loki and Grafana Enterprise Logs supporting monolithic, s |------------|------|---------| | https://charts.min.io/ | minio(minio) | 5.4.0 | | https://grafana.github.io/helm-charts | grafana-agent-operator(grafana-agent-operator) | 0.5.2 | -| https://grafana.github.io/helm-charts | rollout_operator(rollout-operator) | 0.38.2 | +| https://grafana.github.io/helm-charts | rollout_operator(rollout-operator) | 0.40.0 | Find more information in the Loki Helm Chart [documentation](https://grafana.com/docs/loki/latest/setup/install/helm/). diff --git a/production/helm/loki/templates/_helpers.tpl b/production/helm/loki/templates/_helpers.tpl index 1569e29c5c..897e6f80f1 100644 --- a/production/helm/loki/templates/_helpers.tpl +++ b/production/helm/loki/templates/_helpers.tpl @@ -163,23 +163,30 @@ Create the name of the service account to use {{/* Base template for building docker image reference +Determines the final image name, respecting the global registry if defined, unless the local repository +already contains a full registry (indicated by a dot '.') for backwards-compatibility. +It also respects `.digest` as well as `.sha` (deprecated). */}} {{- define "loki.baseImage" }} {{- $registry := .global.imageRegistry | default ((.global.image).registry) | default .global.registry | default .service.registry | default "" -}} {{- $repository := .service.repository | default "" -}} -{{- $ref := ternary (printf ":%s" (.service.tag | default .defaultVersion | toString)) (printf "@%s" .service.digest) (empty .service.digest) -}} -{{- if and $registry $repository -}} - {{- printf "%s/%s%s" $registry $repository $ref -}} -{{- else -}} - {{- printf "%s%s%s" $registry $repository $ref -}} +{{- $sha := and .service.sha (printf "@sha256:%s" .service.sha) | default "" -}} +{{- $digest := and .service.digest (printf "@%s" .service.digest) | default $sha -}} +{{- $ref := ternary (printf ":%s" (.service.tag | default .defaultVersion | toString)) ($digest) (empty $digest) -}} + +{{- $prefix := "" -}} +{{- if and $registry (not (contains "." $repository)) -}} +{{- $prefix = printf "%s/" $registry -}} {{- end -}} + +{{- printf "%s%s%s" $prefix $repository $ref -}} {{- end -}} {{/* Docker image name for Loki */}} {{- define "loki.lokiImage" -}} -{{- $dict := dict "service" .Values.loki.image "global" .Values.global.image "defaultVersion" .Chart.AppVersion -}} +{{- $dict := dict "service" .Values.loki.image "global" .Values.global "defaultVersion" .Chart.AppVersion -}} {{- include "loki.baseImage" $dict -}} {{- end -}} @@ -187,7 +194,7 @@ Docker image name for Loki Docker image name for enterprise logs */}} {{- define "loki.enterpriseImage" -}} -{{- $dict := dict "service" .Values.enterprise.image "global" .Values.global.image "defaultVersion" .Values.enterprise.version -}} +{{- $dict := dict "service" .Values.enterprise.image "global" .Values.global "defaultVersion" .Values.enterprise.version -}} {{- include "loki.baseImage" $dict -}} {{- end -}} @@ -198,7 +205,6 @@ Docker image name {{- if .Values.enterprise.enabled -}}{{- include "loki.enterpriseImage" . -}}{{- else -}}{{- include "loki.lokiImage" . -}}{{- end -}} {{- end -}} - {{/* Generated storage config for loki common config */}} @@ -514,7 +520,7 @@ configMap: Memcached Docker image */}} {{- define "loki.memcachedImage" -}} -{{- $dict := dict "service" .Values.memcached.image "global" .Values.global.image -}} +{{- $dict := dict "service" .Values.memcached.image "global" .Values.global -}} {{- include "loki.image" $dict -}} {{- end }} @@ -522,7 +528,7 @@ Memcached Docker image Memcached Exporter Docker image */}} {{- define "loki.memcachedExporterImage" -}} -{{- $dict := dict "service" .Values.memcachedExporter.image "global" .Values.global.image -}} +{{- $dict := dict "service" .Values.memcachedExporter.image "global" .Values.global -}} {{- include "loki.image" $dict -}} {{- end }} diff --git a/production/helm/loki/templates/backend/statefulset-backend.yaml b/production/helm/loki/templates/backend/statefulset-backend.yaml index 3f5978ab95..e1c396065f 100644 --- a/production/helm/loki/templates/backend/statefulset-backend.yaml +++ b/production/helm/loki/templates/backend/statefulset-backend.yaml @@ -144,11 +144,7 @@ spec: {{- if .Values.sidecar.rules.enabled }} - name: loki-sc-rules {{- $dict := dict "service" .Values.sidecar.image "global" .Values.global }} - {{- if .Values.sidecar.image.sha }} - image: "{{ include "loki.baseImage" $dict }}@sha256:{{ .Values.sidecar.image.sha }}" - {{- else }} image: {{ include "loki.baseImage" $dict }} - {{- end }} imagePullPolicy: {{ .Values.sidecar.image.pullPolicy }} env: - name: METHOD diff --git a/production/helm/loki/templates/compactor/_helpers-compactor.tpl b/production/helm/loki/templates/compactor/_helpers-compactor.tpl index 061dfc874d..1a9fe34a1b 100644 --- a/production/helm/loki/templates/compactor/_helpers-compactor.tpl +++ b/production/helm/loki/templates/compactor/_helpers-compactor.tpl @@ -25,7 +25,7 @@ app.kubernetes.io/component: compactor compactor image */}} {{- define "loki.compactorImage" -}} -{{- $dict := dict "loki" .Values.loki.image "service" .Values.compactor.image "global" .Values.global.image "defaultVersion" .Chart.AppVersion -}} +{{- $dict := dict "loki" .Values.loki.image "service" .Values.compactor.image "global" .Values.global "defaultVersion" .Chart.AppVersion -}} {{- include "loki.lokiImage" $dict -}} {{- end }} diff --git a/production/helm/loki/templates/gateway/_helpers-gateway.tpl b/production/helm/loki/templates/gateway/_helpers-gateway.tpl index 39890b12e9..cecd38c0b8 100644 --- a/production/helm/loki/templates/gateway/_helpers-gateway.tpl +++ b/production/helm/loki/templates/gateway/_helpers-gateway.tpl @@ -32,7 +32,7 @@ gateway auth secret name gateway Docker image */}} {{- define "loki.gatewayImage" -}} -{{- $dict := dict "service" .Values.gateway.image "global" .Values.global.image -}} +{{- $dict := dict "service" .Values.gateway.image "global" .Values.global -}} {{- include "loki.baseImage" $dict -}} {{- end }} diff --git a/production/helm/loki/templates/index-gateway/_helpers-index-gateway.tpl b/production/helm/loki/templates/index-gateway/_helpers-index-gateway.tpl index f42dff3d06..ac2ff3ff7d 100644 --- a/production/helm/loki/templates/index-gateway/_helpers-index-gateway.tpl +++ b/production/helm/loki/templates/index-gateway/_helpers-index-gateway.tpl @@ -25,7 +25,7 @@ app.kubernetes.io/component: index-gateway index-gateway image */}} {{- define "loki.indexGatewayImage" -}} -{{- $dict := dict "loki" .Values.loki.image "service" .Values.indexGateway.image "global" .Values.global.image "defaultVersion" .Chart.AppVersion -}} +{{- $dict := dict "loki" .Values.loki.image "service" .Values.indexGateway.image "global" .Values.global "defaultVersion" .Chart.AppVersion -}} {{- include "loki.lokiImage" $dict -}} {{- end }} diff --git a/production/helm/loki/templates/loki-canary/_helpers.tpl b/production/helm/loki/templates/loki-canary/_helpers.tpl index 01e588c8d1..10cdf08e66 100644 --- a/production/helm/loki/templates/loki-canary/_helpers.tpl +++ b/production/helm/loki/templates/loki-canary/_helpers.tpl @@ -25,7 +25,7 @@ app.kubernetes.io/component: canary Docker image name for loki-canary */}} {{- define "loki-canary.image" -}} -{{- $dict := dict "service" .Values.lokiCanary.image "global" .Values.global.image "defaultVersion" .Chart.AppVersion -}} +{{- $dict := dict "service" .Values.lokiCanary.image "global" .Values.global "defaultVersion" .Chart.AppVersion -}} {{- include "loki.baseImage" $dict -}} {{- end -}} diff --git a/production/helm/loki/templates/provisioner/_helpers.yaml b/production/helm/loki/templates/provisioner/_helpers.yaml index 8b04b07796..5463ba8ecd 100644 --- a/production/helm/loki/templates/provisioner/_helpers.yaml +++ b/production/helm/loki/templates/provisioner/_helpers.yaml @@ -25,7 +25,7 @@ app.kubernetes.io/component: provisioner provisioner image name */}} {{- define "enterprise-logs.provisionerImage" -}} -{{- $dict := dict "service" .Values.enterprise.provisioner.image "global" .Values.global.image "defaultVersion" "latest" -}} +{{- $dict := dict "service" .Values.enterprise.provisioner.image "global" .Values.global "defaultVersion" "latest" -}} {{- include "loki.baseImage" $dict -}} {{- end -}} diff --git a/production/helm/loki/templates/query-scheduler/_helpers-query-scheduler.tpl b/production/helm/loki/templates/query-scheduler/_helpers-query-scheduler.tpl index 1f64802428..22eebff032 100644 --- a/production/helm/loki/templates/query-scheduler/_helpers-query-scheduler.tpl +++ b/production/helm/loki/templates/query-scheduler/_helpers-query-scheduler.tpl @@ -25,7 +25,7 @@ app.kubernetes.io/component: query-scheduler query-scheduler image */}} {{- define "loki.querySchedulerImage" -}} -{{- $dict := dict "loki" .Values.loki.image "service" .Values.queryScheduler.image "global" .Values.global.image "defaultVersion" .Chart.AppVersion -}} +{{- $dict := dict "loki" .Values.loki.image "service" .Values.queryScheduler.image "global" .Values.global "defaultVersion" .Chart.AppVersion -}} {{- include "loki.lokiImage" $dict -}} {{- end }} diff --git a/production/helm/loki/templates/ruler/_helpers-ruler.tpl b/production/helm/loki/templates/ruler/_helpers-ruler.tpl index 2079e03b03..68990bedbe 100644 --- a/production/helm/loki/templates/ruler/_helpers-ruler.tpl +++ b/production/helm/loki/templates/ruler/_helpers-ruler.tpl @@ -25,7 +25,7 @@ app.kubernetes.io/component: ruler ruler image */}} {{- define "loki.rulerImage" -}} -{{- $dict := dict "loki" .Values.loki.image "service" .Values.ruler.image "global" .Values.global.image "defaultVersion" .Chart.AppVersion -}} +{{- $dict := dict "loki" .Values.loki.image "service" .Values.ruler.image "global" .Values.global "defaultVersion" .Chart.AppVersion -}} {{- include "loki.lokiImage" $dict -}} {{- end }} diff --git a/production/helm/loki/templates/ruler/statefulset-ruler.yaml b/production/helm/loki/templates/ruler/statefulset-ruler.yaml index 932150e347..6a900b24ff 100644 --- a/production/helm/loki/templates/ruler/statefulset-ruler.yaml +++ b/production/helm/loki/templates/ruler/statefulset-ruler.yaml @@ -126,11 +126,7 @@ spec: {{- if and .Values.sidecar.rules.enabled .Values.ruler.sidecar }} - name: loki-sc-rules {{- $dict := dict "service" .Values.sidecar.image "global" .Values.global }} - {{- if .Values.sidecar.image.sha }} - image: "{{ include "loki.baseImage" $dict }}@sha256:{{ .Values.sidecar.image.sha }}" - {{- else }} image: {{ include "loki.baseImage" $dict }} - {{- end }} imagePullPolicy: {{ .Values.sidecar.image.pullPolicy }} env: - name: METHOD diff --git a/production/helm/loki/templates/single-binary/statefulset-recreate-job.yaml b/production/helm/loki/templates/single-binary/statefulset-recreate-job.yaml index 30851e6e18..5efca5e6ca 100644 --- a/production/helm/loki/templates/single-binary/statefulset-recreate-job.yaml +++ b/production/helm/loki/templates/single-binary/statefulset-recreate-job.yaml @@ -52,7 +52,7 @@ spec: serviceAccountName: {{ $newStatefulSet.metadata.name }}-recreate containers: - name: recreate-statefulset - image: {{ include "loki.baseImage" (dict "service" (dict "registry" "docker.io" "repository" "rancher/kubectl" "tag" (.Capabilities.KubeVersion.Version | default "v1.33.0")) "global" .Values.global.image) }} + image: {{ include "loki.baseImage" (dict "service" (dict "registry" "docker.io" "repository" "rancher/kubectl" "tag" (.Capabilities.KubeVersion.Version | default "v1.33.0")) "global" .Values.global) }} command: - delete - statefulset @@ -62,7 +62,7 @@ spec: {{- range $index := until (int $currentStatefulset.spec.replicas) }} {{- range $template, $size := $templates }} - name: patch-pvc-{{ $template }}-{{ $index }} - image: {{ include "loki.baseImage" (dict "service" (dict "registry" "docker.io" "repository" "rancher/kubectl" "tag" ($.Capabilities.KubeVersion.Version | default "v1.33.0")) "global" $.Values.global.image) }} + image: {{ include "loki.baseImage" (dict "service" (dict "registry" "docker.io" "repository" "rancher/kubectl" "tag" ($.Capabilities.KubeVersion.Version | default "v1.33.0")) "global" $.Values.global) }} command: - patch - pvc diff --git a/production/helm/loki/templates/single-binary/statefulset.yaml b/production/helm/loki/templates/single-binary/statefulset.yaml index e1652e24b9..ba1eedf552 100644 --- a/production/helm/loki/templates/single-binary/statefulset.yaml +++ b/production/helm/loki/templates/single-binary/statefulset.yaml @@ -158,11 +158,7 @@ spec: {{- if .Values.sidecar.rules.enabled }} - name: loki-sc-rules {{- $dict := dict "service" .Values.sidecar.image "global" .Values.global }} - {{- if .Values.sidecar.image.sha }} - image: "{{ include "loki.baseImage" $dict }}@sha256:{{ .Values.sidecar.image.sha }}" - {{- else }} image: {{ include "loki.baseImage" $dict }} - {{- end }} imagePullPolicy: {{ .Values.sidecar.image.pullPolicy }} env: - name: METHOD diff --git a/production/helm/loki/templates/tests/_helpers.tpl b/production/helm/loki/templates/tests/_helpers.tpl index 440d808d08..4a42d9de17 100644 --- a/production/helm/loki/templates/tests/_helpers.tpl +++ b/production/helm/loki/templates/tests/_helpers.tpl @@ -2,7 +2,7 @@ Docker image name for loki helm test */}} {{- define "loki.helmTestImage" -}} -{{- $dict := dict "service" .Values.test.image "global" .Values.global.image "defaultVersion" .Chart.AppVersion -}} +{{- $dict := dict "service" .Values.test.image "global" .Values.global "defaultVersion" .Chart.AppVersion -}} {{- include "loki.baseImage" $dict -}} {{- end -}} diff --git a/production/helm/loki/values.yaml b/production/helm/loki/values.yaml index 8115664d36..71af28fdd9 100644 --- a/production/helm/loki/values.yaml +++ b/production/helm/loki/values.yaml @@ -4076,8 +4076,9 @@ extraObjects: null sidecar: image: + registry: docker.io # -- The Docker registry and image for the k8s sidecar - repository: docker.io/kiwigrid/k8s-sidecar + repository: kiwigrid/k8s-sidecar # -- Docker image tag tag: 1.30.9 # -- Docker image sha. If empty, no sha will be used