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