Skip to content

Conversation

@timtor-bot
Copy link
Collaborator

@timtor-bot timtor-bot commented Nov 1, 2025

This PR contains the following updates:

Package Update Change
mimir-distributed (source) major 5.0.0 -> 6.0.4

Release Notes

grafana/helm-charts (mimir-distributed)

v6.0.4

Compare Source

Grafana Mimir

Source commit: grafana/mimir@8979e96

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-6.0.4

v6.0.3

Compare Source

Grafana Mimir

Source commit: grafana/mimir@9535f96

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-6.0.3

v6.0.2

Compare Source

Grafana Mimir

Source commit: grafana/mimir@cc9589e

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-6.0.2

v6.0.1

Compare Source

Grafana Mimir

Source commit: grafana/mimir@547f23d

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-6.0.1

v6.0.0

Compare Source

Grafana Mimir

Source commit: grafana/mimir@ffe7a32

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-6.0.0

v5.8.0

Compare Source

Grafana Mimir

Source commit: grafana/mimir@195852d

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.8.0

v5.7.0

Compare Source

Grafana Mimir

Source commit: grafana/mimir@4315aff

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.7.0

v5.6.1

Compare Source

Grafana Mimir

Source commit: grafana/mimir@fa84498

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.6.1

v5.6.0

Compare Source

Grafana Mimir

Source commit: grafana/mimir@a3ae5dd

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.6.0

v5.5.1

Compare Source

Grafana Mimir

Source commit: grafana/mimir@d8d4caf

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.5.1

v5.5.0

Compare Source

Grafana Mimir

Source commit: grafana/mimir@4acb439

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.5.0

v5.4.1

Compare Source

Grafana Mimir

Source commit: grafana/mimir@cf8fdba

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.4.1

v5.4.0

Compare Source

Grafana Mimir

Source commit: grafana/mimir@28c73df

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.4.0

v5.3.1

Compare Source

Grafana Mimir

Source commit: grafana/mimir@ef7190b

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.3.1

v5.3.0

Compare Source

Grafana Mimir

Source commit: grafana/mimir@1d7ce15

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.3.0

v5.2.3

Compare Source

Grafana Mimir

Source commit: grafana/mimir@86a63fb

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.2.3

v5.2.2

Compare Source

Grafana Mimir

Source commit: grafana/mimir@94f63ad

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.2.2

v5.2.1

Compare Source

Grafana Mimir

Source commit: grafana/mimir@5ff1873

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.2.1

v5.2.0

Compare Source

Grafana Mimir

Source commit: grafana/mimir@98a8380

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.2.0

v5.1.4

Compare Source

Grafana Mimir

Source commit: grafana/mimir@0fc87e6

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.1.4

v5.1.3

Compare Source

Grafana Mimir

Source commit: grafana/mimir@3d73ab0

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.1.3

v5.1.2

Compare Source

Grafana Mimir

Source commit: grafana/mimir@2111c58

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.1.2

v5.1.1

Compare Source

Grafana Mimir

Source commit: grafana/mimir@dbf191b

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.1.1

v5.1.0

Compare Source

Grafana Mimir

Source commit: grafana/mimir@0312d54

Tag on source: https://github.com/grafana/mimir/releases/tag/mimir-distributed-5.1.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@github-actions
Copy link

github-actions bot commented Nov 1, 2025

--- kubernetes/mimir Kustomization: flux-system/5-mimir HelmRelease: mimir/mimir

+++ kubernetes/mimir Kustomization: flux-system/5-mimir HelmRelease: mimir/mimir

@@ -11,13 +11,13 @@

   chart:
     spec:
       chart: mimir-distributed
       sourceRef:
         kind: HelmRepository
         name: grafana
-      version: 5.0.0
+      version: 6.0.4
   interval: 1h
   maxHistory: 1
   values:
     alertmanager:
       enabled: false
     compactor:

@github-actions
Copy link

github-actions bot commented Nov 1, 2025

--- HelmRelease: mimir/mimir PodDisruptionBudget: mimir/mimir-query-scheduler

+++ HelmRelease: mimir/mimir PodDisruptionBudget: mimir/mimir-query-scheduler

@@ -1,19 +0,0 @@

----
-apiVersion: policy/v1
-kind: PodDisruptionBudget
-metadata:
-  name: mimir-query-scheduler
-  labels:
-    app.kubernetes.io/name: mimir
-    app.kubernetes.io/instance: mimir
-    app.kubernetes.io/component: query-scheduler
-    app.kubernetes.io/managed-by: Helm
-  namespace: mimir
-spec:
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: mimir
-      app.kubernetes.io/instance: mimir
-      app.kubernetes.io/component: query-scheduler
-  maxUnavailable: 1
-
--- HelmRelease: mimir/mimir ServiceAccount: mimir/mimir-rollout-operator

+++ HelmRelease: mimir/mimir ServiceAccount: mimir/mimir-rollout-operator

@@ -1,10 +1,11 @@

 ---
 apiVersion: v1
 kind: ServiceAccount
 metadata:
   name: mimir-rollout-operator
+  namespace: mimir
   labels:
     app.kubernetes.io/name: rollout-operator
     app.kubernetes.io/instance: mimir
     app.kubernetes.io/managed-by: Helm
 
--- HelmRelease: mimir/mimir ConfigMap: mimir/mimir-config

+++ HelmRelease: mimir/mimir ConfigMap: mimir/mimir-config

@@ -38,24 +38,42 @@

       data_dir: /data
       deletion_delay: 2h
       first_level_compaction_wait_period: 25m
       max_closing_blocks_concurrency: 2
       max_opening_blocks_concurrency: 4
       sharding_ring:
+        heartbeat_period: 1m
+        heartbeat_timeout: 4m
         wait_stability_min_duration: 1m
       symbols_flushers_concurrency: 4
+    distributor:
+      remote_timeout: 5s
+      ring:
+        heartbeat_period: 1m
+        heartbeat_timeout: 4m
     frontend:
       max_outstanding_per_tenant: 1024
       parallelize_shardable_queries: true
+      scheduler_address: mimir-query-scheduler-headless.mimir.svc:9095
     frontend_worker:
-      frontend_address: mimir-query-frontend-headless.mimir.svc:9095
       grpc_client_config:
         max_send_msg_size: 419430400
+      scheduler_address: mimir-query-scheduler-headless.mimir.svc:9095
+    ingest_storage:
+      enabled: true
+      kafka:
+        address: mimir-kafka.mimir.svc.cluster.local.:9092
+        auto_create_topic_default_partitions: 100
+        auto_create_topic_enabled: true
+        topic: mimir-ingest
     ingester:
+      push_grpc_method_enabled: false
       ring:
         final_sleep: 0s
+        heartbeat_period: 2m
+        heartbeat_timeout: 10m
         num_tokens: 512
         tokens_file_path: /data/tokens
         unregister_on_shutdown: false
     ingester_client:
       grpc_client_config:
         max_recv_msg_size: 104857600
@@ -67,31 +85,28 @@

       max_query_parallelism: 240
       max_total_query_length: 12000h
     memberlist:
       abort_if_cluster_join_fails: false
       compression_enabled: false
       join_members:
-      - dns+mimir-gossip-ring.mimir.svc.cluster.local:7946
+      - dns+mimir-gossip-ring.mimir.svc.cluster.local.:7946
     multitenancy_enabled: false
     querier:
       max_concurrent: 1024
     query_scheduler:
       max_outstanding_requests_per_tenant: 800
     ruler:
-      alertmanager_url: dnssrvnoa+http://_http-metrics._tcp.mimir-alertmanager-headless.mimir.svc.cluster.local/alertmanager
+      alertmanager_url: dnssrvnoa+http://_http-metrics._tcp.mimir-alertmanager-headless.mimir.svc.cluster.local./alertmanager
       enable_api: true
       rule_path: /data
     runtime_config:
       file: /var/mimir/runtime.yaml
-    server:
-      grpc_server_max_concurrent_streams: 1000
-      grpc_server_max_connection_age: 2m
-      grpc_server_max_connection_age_grace: 5m
-      grpc_server_max_connection_idle: 1m
     store_gateway:
       sharding_ring:
+        heartbeat_period: 1m
+        heartbeat_timeout: 10m
         tokens_file_path: /data/tokens
         unregister_on_shutdown: false
         wait_stability_min_duration: 1m
     usage_stats:
       enabled: false
       installation_mode: helm
--- HelmRelease: mimir/mimir Role: mimir/mimir-rollout-operator

+++ HelmRelease: mimir/mimir Role: mimir/mimir-rollout-operator

@@ -1,11 +1,16 @@

 ---
 apiVersion: rbac.authorization.k8s.io/v1
 kind: Role
 metadata:
   name: mimir-rollout-operator
+  namespace: mimir
+  labels:
+    app.kubernetes.io/name: rollout-operator
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/managed-by: Helm
 rules:
 - apiGroups:
   - ''
   resources:
   - pods
   verbs:
@@ -18,13 +23,30 @@

   resources:
   - statefulsets
   verbs:
   - list
   - get
   - watch
+  - patch
 - apiGroups:
   - apps
   resources:
   - statefulsets/status
   verbs:
   - update
+- apiGroups:
+  - rollout-operator.grafana.com
+  resources:
+  - zoneawarepoddisruptionbudgets
+  verbs:
+  - get
+  - list
+  - watch
+- apiGroups:
+  - rollout-operator.grafana.com
+  resources:
+  - replicatemplates/scale
+  - replicatemplates/status
+  verbs:
+  - get
+  - patch
 
--- HelmRelease: mimir/mimir RoleBinding: mimir/mimir-rollout-operator

+++ HelmRelease: mimir/mimir RoleBinding: mimir/mimir-rollout-operator

@@ -1,11 +1,16 @@

 ---
 apiVersion: rbac.authorization.k8s.io/v1
 kind: RoleBinding
 metadata:
   name: mimir-rollout-operator
+  namespace: mimir
+  labels:
+    app.kubernetes.io/name: rollout-operator
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/managed-by: Helm
 roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: Role
   name: mimir-rollout-operator
 subjects:
 - kind: ServiceAccount
--- HelmRelease: mimir/mimir Service: mimir/mimir-compactor

+++ HelmRelease: mimir/mimir Service: mimir/mimir-compactor

@@ -9,12 +9,13 @@

     app.kubernetes.io/component: compactor
     app.kubernetes.io/part-of: memberlist
     app.kubernetes.io/managed-by: Helm
   namespace: mimir
 spec:
   type: ClusterIP
+  internalTrafficPolicy: Cluster
   ports:
   - port: 8080
     protocol: TCP
     name: http-metrics
     targetPort: http-metrics
   - port: 9095
--- HelmRelease: mimir/mimir Service: mimir/mimir-distributor

+++ HelmRelease: mimir/mimir Service: mimir/mimir-distributor

@@ -9,12 +9,13 @@

     app.kubernetes.io/component: distributor
     app.kubernetes.io/part-of: memberlist
     app.kubernetes.io/managed-by: Helm
   namespace: mimir
 spec:
   type: ClusterIP
+  internalTrafficPolicy: Cluster
   ports:
   - port: 8080
     protocol: TCP
     name: http-metrics
     targetPort: http-metrics
   - port: 9095
--- HelmRelease: mimir/mimir Service: mimir/mimir-gossip-ring

+++ HelmRelease: mimir/mimir Service: mimir/mimir-gossip-ring

@@ -12,12 +12,13 @@

 spec:
   type: ClusterIP
   clusterIP: None
   ports:
   - name: gossip-ring
     port: 7946
+    appProtocol: tcp
     protocol: TCP
     targetPort: 7946
   publishNotReadyAddresses: true
   selector:
     app.kubernetes.io/name: mimir
     app.kubernetes.io/instance: mimir
--- HelmRelease: mimir/mimir Service: mimir/mimir-ingester

+++ HelmRelease: mimir/mimir Service: mimir/mimir-ingester

@@ -9,12 +9,13 @@

     app.kubernetes.io/component: ingester
     app.kubernetes.io/part-of: memberlist
     app.kubernetes.io/managed-by: Helm
   namespace: mimir
 spec:
   type: ClusterIP
+  internalTrafficPolicy: Cluster
   ports:
   - port: 8080
     protocol: TCP
     name: http-metrics
     targetPort: http-metrics
   - port: 9095
--- HelmRelease: mimir/mimir Service: mimir/mimir-querier

+++ HelmRelease: mimir/mimir Service: mimir/mimir-querier

@@ -9,12 +9,13 @@

     app.kubernetes.io/component: querier
     app.kubernetes.io/part-of: memberlist
     app.kubernetes.io/managed-by: Helm
   namespace: mimir
 spec:
   type: ClusterIP
+  internalTrafficPolicy: Cluster
   ports:
   - port: 8080
     protocol: TCP
     name: http-metrics
     targetPort: http-metrics
   - port: 9095
--- HelmRelease: mimir/mimir Service: mimir/mimir-query-frontend-headless

+++ HelmRelease: mimir/mimir Service: mimir/mimir-query-frontend-headless

@@ -1,30 +0,0 @@

----
-apiVersion: v1
-kind: Service
-metadata:
-  name: mimir-query-frontend-headless
-  labels:
-    app.kubernetes.io/name: mimir
-    app.kubernetes.io/instance: mimir
-    app.kubernetes.io/component: query-frontend
-    app.kubernetes.io/managed-by: Helm
-    prometheus.io/service-monitor: 'false'
-  namespace: mimir
-spec:
-  type: ClusterIP
-  clusterIP: None
-  publishNotReadyAddresses: true
-  ports:
-  - port: 8080
-    protocol: TCP
-    name: http-metrics
-    targetPort: http-metrics
-  - port: 9095
-    protocol: TCP
-    name: grpc
-    targetPort: grpc
-  selector:
-    app.kubernetes.io/name: mimir
-    app.kubernetes.io/instance: mimir
-    app.kubernetes.io/component: query-frontend
-
--- HelmRelease: mimir/mimir Service: mimir/mimir-query-frontend

+++ HelmRelease: mimir/mimir Service: mimir/mimir-query-frontend

@@ -8,12 +8,13 @@

     app.kubernetes.io/instance: mimir
     app.kubernetes.io/component: query-frontend
     app.kubernetes.io/managed-by: Helm
   namespace: mimir
 spec:
   type: ClusterIP
+  internalTrafficPolicy: Cluster
   ports:
   - port: 8080
     protocol: TCP
     name: http-metrics
     targetPort: http-metrics
   - port: 9095
--- HelmRelease: mimir/mimir Service: mimir/mimir-store-gateway

+++ HelmRelease: mimir/mimir Service: mimir/mimir-store-gateway

@@ -9,12 +9,13 @@

     app.kubernetes.io/component: store-gateway
     app.kubernetes.io/part-of: memberlist
     app.kubernetes.io/managed-by: Helm
   namespace: mimir
 spec:
   type: ClusterIP
+  internalTrafficPolicy: Cluster
   ports:
   - port: 8080
     protocol: TCP
     name: http-metrics
     targetPort: http-metrics
   - port: 9095
--- HelmRelease: mimir/mimir Deployment: mimir/mimir-rollout-operator

+++ HelmRelease: mimir/mimir Deployment: mimir/mimir-rollout-operator

@@ -1,28 +1,31 @@

 ---
 apiVersion: apps/v1
 kind: Deployment
 metadata:
   name: mimir-rollout-operator
+  namespace: mimir
   labels:
     app.kubernetes.io/name: rollout-operator
     app.kubernetes.io/instance: mimir
     app.kubernetes.io/managed-by: Helm
 spec:
   replicas: 1
+  revisionHistoryLimit: 10
   minReadySeconds: 10
   selector:
     matchLabels:
       app.kubernetes.io/name: rollout-operator
       app.kubernetes.io/instance: mimir
   strategy:
     rollingUpdate:
       maxSurge: 0
       maxUnavailable: 1
   template:
     metadata:
+      namespace: mimir
       labels:
         app.kubernetes.io/name: rollout-operator
         app.kubernetes.io/instance: mimir
     spec:
       serviceAccountName: mimir-rollout-operator
       securityContext:
@@ -37,28 +40,33 @@

         securityContext:
           allowPrivilegeEscalation: false
           capabilities:
             drop:
             - ALL
           readOnlyRootFilesystem: true
-        image: grafana/rollout-operator:v0.5.0
+        image: grafana/rollout-operator:v0.32.0
         imagePullPolicy: IfNotPresent
         args:
         - -kubernetes.namespace=mimir
+        - -server-tls.enabled=true
+        - -server-tls.self-signed-cert.secret-name=certificate
+        - -server-tls.self-signed-cert.dns-name=mimir-rollout-operator.mimir.svc
         ports:
         - name: http-metrics
           containerPort: 8001
+          protocol: TCP
+        - name: https
+          containerPort: 8443
           protocol: TCP
         readinessProbe:
           httpGet:
             path: /ready
             port: http-metrics
           initialDelaySeconds: 5
           timeoutSeconds: 1
         resources:
           limits:
-            cpu: '1'
             memory: 200Mi
           requests:
             cpu: 100m
             memory: 100Mi
 
--- HelmRelease: mimir/mimir Deployment: mimir/mimir-distributor

+++ HelmRelease: mimir/mimir Deployment: mimir/mimir-distributor

@@ -39,32 +39,34 @@

         fsGroup: 10001
         runAsGroup: 10001
         runAsNonRoot: true
         runAsUser: 10001
         seccompProfile:
           type: RuntimeDefault
-      initContainers: []
       containers:
       - name: distributor
-        image: grafana/mimir:2.9.0
+        image: grafana/mimir:3.0.1
         imagePullPolicy: IfNotPresent
         args:
         - -target=distributor
         - -config.expand-env=true
         - -config.file=/etc/mimir/mimir.yaml
+        - -server.grpc.keepalive.max-connection-age=60s
+        - -server.grpc.keepalive.max-connection-age-grace=5m
+        - -server.grpc.keepalive.max-connection-idle=1m
+        - -shutdown-delay=90s
         volumeMounts:
         - mountPath: /mimir-secret
           name: mimir-secret
           readOnly: true
         - name: config
           mountPath: /etc/mimir
         - name: runtime-config
           mountPath: /var/mimir
         - name: storage
           mountPath: /data
-          subPath: null
         - name: active-queries
           mountPath: /active-query-tracker
         ports:
         - name: http-metrics
           containerPort: 8080
           protocol: TCP
@@ -87,29 +89,28 @@

         securityContext:
           allowPrivilegeEscalation: false
           capabilities:
             drop:
             - ALL
           readOnlyRootFilesystem: true
-        env: null
+        env:
+        - name: GOMAXPROCS
+          value: '8'
         envFrom:
         - secretRef:
             name: mimir-secret
-      nodeSelector: {}
-      affinity: {}
       topologySpreadConstraints:
       - maxSkew: 1
         topologyKey: kubernetes.io/hostname
         whenUnsatisfiable: ScheduleAnyway
         labelSelector:
           matchLabels:
             app.kubernetes.io/name: mimir
             app.kubernetes.io/instance: mimir
             app.kubernetes.io/component: distributor
-      tolerations: []
-      terminationGracePeriodSeconds: 60
+      terminationGracePeriodSeconds: 100
       volumes:
       - name: config
         configMap:
           name: mimir-config
           items:
           - key: mimir.yaml
--- HelmRelease: mimir/mimir Deployment: mimir/mimir-querier

+++ HelmRelease: mimir/mimir Deployment: mimir/mimir-querier

@@ -38,32 +38,31 @@

         fsGroup: 10001
         runAsGroup: 10001
         runAsNonRoot: true
         runAsUser: 10001
         seccompProfile:
           type: RuntimeDefault
-      initContainers: []
       containers:
       - name: querier
-        image: grafana/mimir:2.9.0
+        image: grafana/mimir:3.0.1
         imagePullPolicy: IfNotPresent
         args:
         - -target=querier
         - -config.expand-env=true
         - -config.file=/etc/mimir/mimir.yaml
+        - -querier.store-gateway-client.grpc-max-recv-msg-size=209715200
         volumeMounts:
         - mountPath: /mimir-secret
           name: mimir-secret
           readOnly: true
         - name: config
           mountPath: /etc/mimir
         - name: runtime-config
           mountPath: /var/mimir
         - name: storage
           mountPath: /data
-          subPath: null
         - name: active-queries
           mountPath: /active-query-tracker
         ports:
         - name: http-metrics
           containerPort: 8080
           protocol: TCP
@@ -86,28 +85,27 @@

         securityContext:
           allowPrivilegeEscalation: false
           capabilities:
             drop:
             - ALL
           readOnlyRootFilesystem: true
-        env: null
+        env:
+        - name: GOMAXPROCS
+          value: '5'
         envFrom:
         - secretRef:
             name: mimir-secret
-      nodeSelector: {}
-      affinity: {}
       topologySpreadConstraints:
       - maxSkew: 1
         topologyKey: kubernetes.io/hostname
         whenUnsatisfiable: ScheduleAnyway
         labelSelector:
           matchLabels:
             app.kubernetes.io/name: mimir
             app.kubernetes.io/instance: mimir
             app.kubernetes.io/component: querier
-      tolerations: []
       terminationGracePeriodSeconds: 180
       volumes:
       - name: config
         configMap:
           name: mimir-config
           items:
--- HelmRelease: mimir/mimir Deployment: mimir/mimir-query-frontend

+++ HelmRelease: mimir/mimir Deployment: mimir/mimir-query-frontend

@@ -37,21 +37,22 @@

         fsGroup: 10001
         runAsGroup: 10001
         runAsNonRoot: true
         runAsUser: 10001
         seccompProfile:
           type: RuntimeDefault
-      initContainers: []
       containers:
       - name: query-frontend
-        image: grafana/mimir:2.9.0
+        image: grafana/mimir:3.0.1
         imagePullPolicy: IfNotPresent
         args:
         - -target=query-frontend
         - -config.expand-env=true
         - -config.file=/etc/mimir/mimir.yaml
+        - -server.grpc.keepalive.max-connection-age=30s
+        - -shutdown-delay=90s
         volumeMounts:
         - mountPath: /mimir-secret
           name: mimir-secret
           readOnly: true
         - name: runtime-config
           mountPath: /var/mimir
@@ -81,29 +82,26 @@

         securityContext:
           allowPrivilegeEscalation: false
           capabilities:
             drop:
             - ALL
           readOnlyRootFilesystem: true
-        env: null
+        env: []
         envFrom:
         - secretRef:
             name: mimir-secret
-      nodeSelector: {}
-      affinity: {}
       topologySpreadConstraints:
       - maxSkew: 1
         topologyKey: kubernetes.io/hostname
         whenUnsatisfiable: ScheduleAnyway
         labelSelector:
           matchLabels:
             app.kubernetes.io/name: mimir
             app.kubernetes.io/instance: mimir
             app.kubernetes.io/component: query-frontend
-      tolerations: []
-      terminationGracePeriodSeconds: 180
+      terminationGracePeriodSeconds: 390
       volumes:
       - name: config
         configMap:
           name: mimir-config
           items:
           - key: mimir.yaml
--- HelmRelease: mimir/mimir StatefulSet: mimir/mimir-compactor

+++ HelmRelease: mimir/mimir StatefulSet: mimir/mimir-compactor

@@ -8,12 +8,13 @@

     app.kubernetes.io/instance: mimir
     app.kubernetes.io/component: compactor
     app.kubernetes.io/part-of: memberlist
     app.kubernetes.io/managed-by: Helm
   namespace: mimir
 spec:
+  podManagementPolicy: OrderedReady
   replicas: 2
   selector:
     matchLabels:
       app.kubernetes.io/name: mimir
       app.kubernetes.io/instance: mimir
       app.kubernetes.io/component: compactor
@@ -40,26 +41,22 @@

         fsGroup: 10001
         runAsGroup: 10001
         runAsNonRoot: true
         runAsUser: 10001
         seccompProfile:
           type: RuntimeDefault
-      initContainers: []
-      nodeSelector: {}
-      affinity: {}
       topologySpreadConstraints:
       - maxSkew: 1
         topologyKey: kubernetes.io/hostname
         whenUnsatisfiable: ScheduleAnyway
         labelSelector:
           matchLabels:
             app.kubernetes.io/name: mimir
             app.kubernetes.io/instance: mimir
             app.kubernetes.io/component: compactor
-      tolerations: []
-      terminationGracePeriodSeconds: 240
+      terminationGracePeriodSeconds: 900
       volumes:
       - name: config
         configMap:
           name: mimir-config
           items:
           - key: mimir.yaml
@@ -76,13 +73,13 @@

             secretProviderClass: mimir-secret
         name: mimir-secret
       - name: active-queries
         emptyDir: {}
       containers:
       - name: compactor
-        image: grafana/mimir:2.9.0
+        image: grafana/mimir:3.0.1
         imagePullPolicy: IfNotPresent
         args:
         - -target=compactor
         - -config.expand-env=true
         - -config.file=/etc/mimir/mimir.yaml
         volumeMounts:
@@ -120,11 +117,11 @@

         securityContext:
           allowPrivilegeEscalation: false
           capabilities:
             drop:
             - ALL
           readOnlyRootFilesystem: true
-        env: null
+        env: []
         envFrom:
         - secretRef:
             name: mimir-secret
 
--- HelmRelease: mimir/mimir StatefulSet: mimir/mimir-ingester

+++ HelmRelease: mimir/mimir StatefulSet: mimir/mimir-ingester

@@ -19,13 +19,15 @@

       app.kubernetes.io/instance: mimir
       app.kubernetes.io/component: ingester
   updateStrategy:
     type: RollingUpdate
   serviceName: mimir-ingester-headless
   volumeClaimTemplates:
-  - metadata:
+  - apiVersion: v1
+    kind: PersistentVolumeClaim
+    metadata:
       name: storage
     spec:
       storageClassName: rbd-fast-delete
       accessModes:
       - ReadWriteOnce
       resources:
@@ -48,26 +50,22 @@

         fsGroup: 10001
         runAsGroup: 10001
         runAsNonRoot: true
         runAsUser: 10001
         seccompProfile:
           type: RuntimeDefault
-      initContainers: []
-      nodeSelector: {}
-      affinity: {}
       topologySpreadConstraints:
       - maxSkew: 1
         topologyKey: kubernetes.io/hostname
         whenUnsatisfiable: ScheduleAnyway
         labelSelector:
           matchLabels:
             app.kubernetes.io/name: mimir
             app.kubernetes.io/instance: mimir
             app.kubernetes.io/component: ingester
-      tolerations: []
-      terminationGracePeriodSeconds: 240
+      terminationGracePeriodSeconds: 1200
       volumes:
       - name: config
         configMap:
           name: mimir-config
           items:
           - key: mimir.yaml
@@ -82,19 +80,21 @@

             secretProviderClass: mimir-secret
         name: mimir-secret
       - name: active-queries
         emptyDir: {}
       containers:
       - name: ingester
-        image: grafana/mimir:2.9.0
+        image: grafana/mimir:3.0.1
         imagePullPolicy: IfNotPresent
         args:
         - -target=ingester
         - -config.expand-env=true
         - -config.file=/etc/mimir/mimir.yaml
         - -ingester.ring.instance-availability-zone=zone-default
+        - -server.grpc-max-concurrent-streams=500
+        - -memberlist.abort-if-fast-join-fails=true
         volumeMounts:
         - mountPath: /mimir-secret
           name: mimir-secret
           readOnly: true
         - name: config
           mountPath: /etc/mimir
@@ -127,11 +127,13 @@

         securityContext:
           allowPrivilegeEscalation: false
           capabilities:
             drop:
             - ALL
           readOnlyRootFilesystem: true
-        env: null
+        env:
+        - name: GOMAXPROCS
+          value: '4'
         envFrom:
         - secretRef:
             name: mimir-secret
 
--- HelmRelease: mimir/mimir StatefulSet: mimir/mimir-store-gateway

+++ HelmRelease: mimir/mimir StatefulSet: mimir/mimir-store-gateway

@@ -8,12 +8,13 @@

     app.kubernetes.io/instance: mimir
     app.kubernetes.io/component: store-gateway
     app.kubernetes.io/part-of: memberlist
     app.kubernetes.io/managed-by: Helm
   namespace: mimir
 spec:
+  podManagementPolicy: OrderedReady
   replicas: 3
   selector:
     matchLabels:
       app.kubernetes.io/name: mimir
       app.kubernetes.io/instance: mimir
       app.kubernetes.io/component: store-gateway
@@ -21,13 +22,15 @@

     rollingUpdate:
       maxSurge: 1
       maxUnavailable: 0
     type: RollingUpdate
   serviceName: mimir-store-gateway-headless
   volumeClaimTemplates:
-  - metadata:
+  - apiVersion: v1
+    kind: PersistentVolumeClaim
+    metadata:
       name: storage
     spec:
       storageClassName: rbd-fast-delete
       accessModes:
       - ReadWriteOnce
       resources:
@@ -50,26 +53,22 @@

         fsGroup: 10001
         runAsGroup: 10001
         runAsNonRoot: true
         runAsUser: 10001
         seccompProfile:
           type: RuntimeDefault
-      initContainers: []
-      nodeSelector: {}
-      affinity: {}
       topologySpreadConstraints:
       - maxSkew: 1
         topologyKey: kubernetes.io/hostname
         whenUnsatisfiable: ScheduleAnyway
         labelSelector:
           matchLabels:
             app.kubernetes.io/name: mimir
             app.kubernetes.io/instance: mimir
             app.kubernetes.io/component: store-gateway
-      tolerations: []
-      terminationGracePeriodSeconds: 240
+      terminationGracePeriodSeconds: 120
       volumes:
       - name: config
         configMap:
           name: mimir-config
           items:
           - key: mimir.yaml
@@ -84,18 +83,19 @@

             secretProviderClass: mimir-secret
         name: mimir-secret
       - name: active-queries
         emptyDir: {}
       containers:
       - name: store-gateway
-        image: grafana/mimir:2.9.0
+        image: grafana/mimir:3.0.1
         imagePullPolicy: IfNotPresent
         args:
         - -target=store-gateway
         - -config.expand-env=true
         - -config.file=/etc/mimir/mimir.yaml
+        - -server.grpc-max-send-msg-size-bytes=209715200
         volumeMounts:
         - mountPath: /mimir-secret
           name: mimir-secret
           readOnly: true
         - name: config
           mountPath: /etc/mimir
--- HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-compactor

+++ HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-compactor

@@ -25,17 +25,19 @@

       values:
       - 'false'
   endpoints:
   - port: http-metrics
     interval: 1m
     relabelings:
-    - sourceLabels:
+    - action: replace
+      sourceLabels:
       - job
       replacement: mimir/compactor
       targetLabel: job
-    - replacement: mimir
+    - action: replace
+      replacement: mimir
       targetLabel: cluster
     metricRelabelings:
     - action: drop
       regex: ^(process).*
       sourceLabels:
       - __name__
--- HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-distributor

+++ HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-distributor

@@ -25,17 +25,19 @@

       values:
       - 'false'
   endpoints:
   - port: http-metrics
     interval: 1m
     relabelings:
-    - sourceLabels:
+    - action: replace
+      sourceLabels:
       - job
       replacement: mimir/distributor
       targetLabel: job
-    - replacement: mimir
+    - action: replace
+      replacement: mimir
       targetLabel: cluster
     metricRelabelings:
     - action: drop
       regex: ^(process).*
       sourceLabels:
       - __name__
--- HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-ingester

+++ HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-ingester

@@ -25,17 +25,19 @@

       values:
       - 'false'
   endpoints:
   - port: http-metrics
     interval: 1m
     relabelings:
-    - sourceLabels:
+    - action: replace
+      sourceLabels:
       - job
       replacement: mimir/ingester
       targetLabel: job
-    - replacement: mimir
+    - action: replace
+      replacement: mimir
       targetLabel: cluster
     metricRelabelings:
     - action: drop
       regex: ^(process).*
       sourceLabels:
       - __name__
--- HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-querier

+++ HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-querier

@@ -25,17 +25,19 @@

       values:
       - 'false'
   endpoints:
   - port: http-metrics
     interval: 1m
     relabelings:
-    - sourceLabels:
+    - action: replace
+      sourceLabels:
       - job
       replacement: mimir/querier
       targetLabel: job
-    - replacement: mimir
+    - action: replace
+      replacement: mimir
       targetLabel: cluster
     metricRelabelings:
     - action: drop
       regex: ^(process).*
       sourceLabels:
       - __name__
--- HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-query-frontend

+++ HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-query-frontend

@@ -24,17 +24,19 @@

       values:
       - 'false'
   endpoints:
   - port: http-metrics
     interval: 1m
     relabelings:
-    - sourceLabels:
+    - action: replace
+      sourceLabels:
       - job
       replacement: mimir/query-frontend
       targetLabel: job
-    - replacement: mimir
+    - action: replace
+      replacement: mimir
       targetLabel: cluster
     metricRelabelings:
     - action: drop
       regex: ^(process).*
       sourceLabels:
       - __name__
--- HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-store-gateway

+++ HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-store-gateway

@@ -25,17 +25,19 @@

       values:
       - 'false'
   endpoints:
   - port: http-metrics
     interval: 1m
     relabelings:
-    - sourceLabels:
+    - action: replace
+      sourceLabels:
       - job
       replacement: mimir/store-gateway
       targetLabel: job
-    - replacement: mimir
+    - action: replace
+      replacement: mimir
       targetLabel: cluster
     metricRelabelings:
     - action: drop
       regex: ^(process).*
       sourceLabels:
       - __name__
--- HelmRelease: mimir/mimir PodDisruptionBudget: mimir/mimir-gateway

+++ HelmRelease: mimir/mimir PodDisruptionBudget: mimir/mimir-gateway

@@ -0,0 +1,19 @@

+---
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+  name: mimir-gateway
+  labels:
+    app.kubernetes.io/name: mimir
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/component: gateway
+    app.kubernetes.io/managed-by: Helm
+  namespace: mimir
+spec:
+  selector:
+    matchLabels:
+      app.kubernetes.io/name: mimir
+      app.kubernetes.io/instance: mimir
+      app.kubernetes.io/component: gateway
+  maxUnavailable: 1
+
--- HelmRelease: mimir/mimir PodDisruptionBudget: mimir/mimir-kafka

+++ HelmRelease: mimir/mimir PodDisruptionBudget: mimir/mimir-kafka

@@ -0,0 +1,19 @@

+---
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+  name: mimir-kafka
+  labels:
+    app.kubernetes.io/name: mimir
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/component: kafka
+    app.kubernetes.io/managed-by: Helm
+  namespace: mimir
+spec:
+  selector:
+    matchLabels:
+      app.kubernetes.io/name: mimir
+      app.kubernetes.io/instance: mimir
+      app.kubernetes.io/component: kafka
+  maxUnavailable: 1
+
--- HelmRelease: mimir/mimir ConfigMap: mimir/mimir-gateway-nginx

+++ HelmRelease: mimir/mimir ConfigMap: mimir/mimir-gateway-nginx

@@ -0,0 +1,144 @@

+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: mimir-gateway-nginx
+  labels:
+    app.kubernetes.io/name: mimir
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/component: gateway-nginx
+    app.kubernetes.io/managed-by: Helm
+  namespace: mimir
+data:
+  nginx.conf: |
+    worker_processes  5;  ## Default: 1
+    error_log  /dev/stderr error;
+    pid        /tmp/nginx.pid;
+    worker_rlimit_nofile 8192;
+
+    events {
+      worker_connections  4096;  ## Default: 1024
+    }
+
+    http {
+      client_body_temp_path /tmp/client_temp;
+      proxy_temp_path       /tmp/proxy_temp_path;
+      fastcgi_temp_path     /tmp/fastcgi_temp;
+      uwsgi_temp_path       /tmp/uwsgi_temp;
+      scgi_temp_path        /tmp/scgi_temp;
+
+      default_type application/octet-stream;
+      log_format   main '$remote_addr - $remote_user [$time_local]  $status '
+            '"$request" $body_bytes_sent "$http_referer" '
+            '"$http_user_agent" "$http_x_forwarded_for"';
+      access_log   /dev/stderr  main;
+
+      sendfile           on;
+      tcp_nopush         on;
+      proxy_http_version 1.1;
+      resolver kube-dns.kube-system.svc.cluster.local.;
+
+      # Ensure that X-Scope-OrgID is always present, default to the no_auth_tenant for backwards compatibility when multi-tenancy was turned off.
+      map $http_x_scope_orgid $ensured_x_scope_orgid {
+        default $http_x_scope_orgid;
+        "" "anonymous";
+      }
+
+      map $http_x_scope_orgid $has_multiple_orgid_headers {
+        default 0;
+        "~^.+,.+$" 1;
+      }
+
+      proxy_read_timeout 300;
+      server {
+        listen 8080;
+        listen [::]:8080;
+        client_max_body_size 540M;
+
+        if ($has_multiple_orgid_headers = 1) {
+            return 400 'Sending multiple X-Scope-OrgID headers is not allowed. Use a single header with | as separator instead.';
+        }
+
+        location = / {
+          return 200 'OK';
+          auth_basic off;
+        }
+
+        location = /ready {
+          return 200 'OK';
+          auth_basic off;
+        }
+
+        proxy_set_header X-Scope-OrgID $ensured_x_scope_orgid;
+
+        # Distributor endpoints
+        location /distributor {
+          set $distributor mimir-distributor-headless.mimir.svc.cluster.local.;
+          proxy_pass      http://$distributor:8080$request_uri;
+        }
+        location = /api/v1/push {
+          set $distributor mimir-distributor-headless.mimir.svc.cluster.local.;
+          proxy_pass      http://$distributor:8080$request_uri;
+        }
+        location /otlp/v1/metrics {
+          set $distributor mimir-distributor-headless.mimir.svc.cluster.local.;
+          proxy_pass      http://$distributor:8080$request_uri;
+        }
+
+        # Alertmanager endpoints
+        location /alertmanager {
+          set $alertmanager mimir-alertmanager-headless.mimir.svc.cluster.local.;
+          proxy_pass      http://$alertmanager:8080$request_uri;
+        }
+        location = /multitenant_alertmanager/status {
+          set $alertmanager mimir-alertmanager-headless.mimir.svc.cluster.local.;
+          proxy_pass      http://$alertmanager:8080$request_uri;
+        }
+        location = /multitenant_alertmanager/configs {
+          set $alertmanager mimir-alertmanager-headless.mimir.svc.cluster.local.;
+          proxy_pass      http://$alertmanager:8080$request_uri;
+        }
+        location = /api/v1/alerts {
+          set $alertmanager mimir-alertmanager-headless.mimir.svc.cluster.local.;
+          proxy_pass      http://$alertmanager:8080$request_uri;
+        }
+
+        # Ruler endpoints
+        location /prometheus/config/v1/rules {
+          set $ruler mimir-ruler.mimir.svc.cluster.local.;
+          proxy_pass      http://$ruler:8080$request_uri;
+        }
+        location /prometheus/api/v1/rules {
+          set $ruler mimir-ruler.mimir.svc.cluster.local.;
+          proxy_pass      http://$ruler:8080$request_uri;
+        }
+
+        location /prometheus/api/v1/alerts {
+          set $ruler mimir-ruler.mimir.svc.cluster.local.;
+          proxy_pass      http://$ruler:8080$request_uri;
+        }
+        location = /ruler/ring {
+          set $ruler mimir-ruler.mimir.svc.cluster.local.;
+          proxy_pass      http://$ruler:8080$request_uri;
+        }
+
+        # Rest of /prometheus goes to the query frontend
+        location /prometheus {
+          set $query_frontend mimir-query-frontend.mimir.svc.cluster.local.;
+          proxy_pass      http://$query_frontend:8080$request_uri;
+        }
+
+        # Buildinfo endpoint can go to any component
+        location = /api/v1/status/buildinfo {
+          set $query_frontend mimir-query-frontend.mimir.svc.cluster.local.;
+          proxy_pass      http://$query_frontend:8080$request_uri;
+        }
+
+        # Compactor endpoint for uploading blocks
+        location /api/v1/upload/block/ {
+          set $compactor mimir-compactor.mimir.svc.cluster.local.;
+          proxy_pass      http://$compactor:8080$request_uri;
+        }
+      }
+    }
+
--- HelmRelease: mimir/mimir ClusterRole: mimir/mimir-rollout-operator-webhook-clusterrole

+++ HelmRelease: mimir/mimir ClusterRole: mimir/mimir-rollout-operator-webhook-clusterrole

@@ -0,0 +1,16 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: mimir-rollout-operator-webhook-clusterrole
+rules:
+- apiGroups:
+  - admissionregistration.k8s.io
+  resources:
+  - validatingwebhookconfigurations
+  - mutatingwebhookconfigurations
+  verbs:
+  - list
+  - patch
+  - watch
+
--- HelmRelease: mimir/mimir ClusterRoleBinding: mimir/mimir-rollout-operator-webhook-clusterrolebinding

+++ HelmRelease: mimir/mimir ClusterRoleBinding: mimir/mimir-rollout-operator-webhook-clusterrolebinding

@@ -0,0 +1,14 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+  name: mimir-rollout-operator-webhook-clusterrolebinding
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: mimir-rollout-operator-webhook-clusterrole
+subjects:
+- kind: ServiceAccount
+  name: mimir-rollout-operator
+  namespace: mimir
+
--- HelmRelease: mimir/mimir Role: mimir/mimir-rollout-operator-webhook-role

+++ HelmRelease: mimir/mimir Role: mimir/mimir-rollout-operator-webhook-role

@@ -0,0 +1,23 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+  name: mimir-rollout-operator-webhook-role
+  namespace: mimir
+rules:
+- apiGroups:
+  - ''
+  resources:
+  - secrets
+  verbs:
+  - update
+  - get
+  resourceNames:
+  - certificate
+- apiGroups:
+  - ''
+  resources:
+  - secrets
+  verbs:
+  - create
+
--- HelmRelease: mimir/mimir RoleBinding: mimir/mimir-rollout-operator-webhook-rolebinding

+++ HelmRelease: mimir/mimir RoleBinding: mimir/mimir-rollout-operator-webhook-rolebinding

@@ -0,0 +1,15 @@

+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+  name: mimir-rollout-operator-webhook-rolebinding
+  namespace: mimir
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: Role
+  name: mimir-rollout-operator-webhook-role
+subjects:
+- kind: ServiceAccount
+  name: mimir-rollout-operator
+  namespace: mimir
+
--- HelmRelease: mimir/mimir Service: mimir/mimir-rollout-operator

+++ HelmRelease: mimir/mimir Service: mimir/mimir-rollout-operator

@@ -0,0 +1,21 @@

+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: mimir-rollout-operator
+  namespace: mimir
+  labels:
+    app.kubernetes.io/name: rollout-operator
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/managed-by: Helm
+spec:
+  type: ClusterIP
+  ports:
+  - port: 443
+    protocol: TCP
+    targetPort: 8443
+    name: https
+  selector:
+    app.kubernetes.io/name: rollout-operator
+    app.kubernetes.io/instance: mimir
+
--- HelmRelease: mimir/mimir Service: mimir/mimir-gateway

+++ HelmRelease: mimir/mimir Service: mimir/mimir-gateway

@@ -0,0 +1,28 @@

+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: mimir-gateway
+  labels:
+    app.kubernetes.io/name: mimir
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/component: gateway
+    app.kubernetes.io/managed-by: Helm
+  namespace: mimir
+spec:
+  type: ClusterIP
+  internalTrafficPolicy: Cluster
+  ports:
+  - port: 80
+    protocol: TCP
+    name: http-metrics
+    targetPort: http-metrics
+  - port: 8080
+    protocol: TCP
+    name: legacy-http-metrics
+    targetPort: http-metrics
+  selector:
+    app.kubernetes.io/name: mimir
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/component: gateway
+
--- HelmRelease: mimir/mimir Service: mimir/mimir-kafka-headless

+++ HelmRelease: mimir/mimir Service: mimir/mimir-kafka-headless

@@ -0,0 +1,29 @@

+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: mimir-kafka-headless
+  labels:
+    app.kubernetes.io/name: mimir
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/component: kafka
+    app.kubernetes.io/managed-by: Helm
+    prometheus.io/service-monitor: 'false'
+  namespace: mimir
+spec:
+  type: ClusterIP
+  clusterIP: None
+  ports:
+  - port: 9092
+    protocol: TCP
+    name: kafka
+    targetPort: kafka
+  - port: 9093
+    protocol: TCP
+    name: controller
+    targetPort: controller
+  selector:
+    app.kubernetes.io/name: mimir
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/component: kafka
+
--- HelmRelease: mimir/mimir Service: mimir/mimir-kafka

+++ HelmRelease: mimir/mimir Service: mimir/mimir-kafka

@@ -0,0 +1,23 @@

+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: mimir-kafka
+  labels:
+    app.kubernetes.io/name: mimir
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/component: kafka
+    app.kubernetes.io/managed-by: Helm
+  namespace: mimir
+spec:
+  type: ClusterIP
+  ports:
+  - port: 9092
+    protocol: TCP
+    name: kafka
+    targetPort: kafka
+  selector:
+    app.kubernetes.io/name: mimir
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/component: kafka
+
--- HelmRelease: mimir/mimir Deployment: mimir/mimir-gateway

+++ HelmRelease: mimir/mimir Deployment: mimir/mimir-gateway

@@ -0,0 +1,102 @@

+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  labels:
+    app.kubernetes.io/name: mimir
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/component: gateway
+    app.kubernetes.io/managed-by: Helm
+  name: mimir-gateway
+  namespace: mimir
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app.kubernetes.io/name: mimir
+      app.kubernetes.io/instance: mimir
+      app.kubernetes.io/component: gateway
+  strategy:
+    rollingUpdate:
+      maxSurge: 15%
+      maxUnavailable: 0
+    type: RollingUpdate
+  template:
+    metadata:
+      labels:
+        app.kubernetes.io/name: mimir
+        app.kubernetes.io/instance: mimir
+        app.kubernetes.io/managed-by: Helm
+        app.kubernetes.io/component: gateway
+      annotations:
+        secret.reloader.stakater.com/reload: mimir-secret
+      namespace: mimir
+    spec:
+      serviceAccountName: mimir
+      securityContext:
+        fsGroup: 10001
+        runAsGroup: 10001
+        runAsNonRoot: true
+        runAsUser: 10001
+        seccompProfile:
+          type: RuntimeDefault
+      containers:
+      - name: gateway
+        image: docker.io/nginxinc/nginx-unprivileged:1.29-alpine
+        imagePullPolicy: IfNotPresent
+        volumeMounts:
+        - name: nginx-config
+          mountPath: /etc/nginx/nginx.conf
+          subPath: nginx.conf
+        - name: tmp
+          mountPath: /tmp
+        - name: docker-entrypoint-d-override
+          mountPath: /docker-entrypoint.d
+        ports:
+        - name: http-metrics
+          containerPort: 8080
+          protocol: TCP
+        readinessProbe:
+          httpGet:
+            path: /ready
+            port: http-metrics
+          initialDelaySeconds: 15
+          timeoutSeconds: 1
+        resources: {}
+        securityContext:
+          allowPrivilegeEscalation: false
+          capabilities:
+            drop:
+            - ALL
+          readOnlyRootFilesystem: true
+        envFrom:
+        - secretRef:
+            name: mimir-secret
+      topologySpreadConstraints:
+      - maxSkew: 1
+        topologyKey: kubernetes.io/hostname
+        whenUnsatisfiable: ScheduleAnyway
+        labelSelector:
+          matchLabels:
+            app.kubernetes.io/name: mimir
+            app.kubernetes.io/instance: mimir
+            app.kubernetes.io/component: gateway
+      terminationGracePeriodSeconds: 30
+      volumes:
+      - name: config
+        configMap:
+          name: mimir-config
+          items:
+          - key: mimir.yaml
+            path: mimir.yaml
+      - name: runtime-config
+        configMap:
+          name: mimir-runtime
+      - name: nginx-config
+        configMap:
+          name: mimir-gateway-nginx
+      - name: docker-entrypoint-d-override
+        emptyDir: {}
+      - name: tmp
+        emptyDir: {}
+
--- HelmRelease: mimir/mimir StatefulSet: mimir/mimir-kafka

+++ HelmRelease: mimir/mimir StatefulSet: mimir/mimir-kafka

@@ -0,0 +1,125 @@

+---
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+  name: mimir-kafka
+  labels:
+    app.kubernetes.io/name: mimir
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/component: kafka
+    app.kubernetes.io/managed-by: Helm
+  namespace: mimir
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app.kubernetes.io/name: mimir
+      app.kubernetes.io/instance: mimir
+      app.kubernetes.io/component: kafka
+  serviceName: mimir-kafka-headless
+  template:
+    metadata:
+      labels:
+        app.kubernetes.io/name: mimir
+        app.kubernetes.io/instance: mimir
+        app.kubernetes.io/managed-by: Helm
+        app.kubernetes.io/component: kafka
+      annotations:
+        secret.reloader.stakater.com/reload: mimir-secret
+      namespace: mimir
+    spec:
+      serviceAccountName: mimir
+      securityContext:
+        fsGroup: 1001
+        runAsGroup: 1001
+        runAsNonRoot: true
+        runAsUser: 1001
+        seccompProfile:
+          type: RuntimeDefault
+      terminationGracePeriodSeconds: 30
+      containers:
+      - name: kafka
+        image: apache/kafka-native:4.1.0
+        imagePullPolicy: IfNotPresent
+        ports:
+        - containerPort: 9092
+          name: kafka
+          protocol: TCP
+        - containerPort: 9093
+          name: controller
+          protocol: TCP
+        env:
+        - name: _POD_NAME
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.name
+        - name: KAFKA_CLUSTER_ID
+          value: ''
+        - name: KAFKA_NODE_ID
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.labels['apps.kubernetes.io/pod-index']
+        - name: KAFKA_PROCESS_ROLES
+          value: broker,controller
+        - name: KAFKA_LISTENERS
+          value: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
+        - name: KAFKA_ADVERTISED_LISTENERS
+          value: PLAINTEXT://$(_POD_NAME).mimir-kafka-headless.mimir.svc.cluster.local.:9092
+        - name: KAFKA_CONTROLLER_QUORUM_VOTERS
+          value: [email protected]:9093
+        - name: KAFKA_CONTROLLER_LISTENER_NAMES
+          value: CONTROLLER
+        - name: KAFKA_INTER_BROKER_LISTENER_NAME
+          value: PLAINTEXT
+        - name: KAFKA_LOG_DIRS
+          value: /var/lib/kafka/data
+        - name: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR
+          value: '1'
+        - name: KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR
+          value: '1'
+        - name: KAFKA_TRANSACTION_STATE_LOG_MIN_ISR
+          value: '1'
+        - name: KAFKA_LOG_RETENTION_HOURS
+          value: '24'
+        resources:
+          limits: {}
+          requests:
+            cpu: 1
+            memory: 1Gi
+        securityContext:
+          allowPrivilegeEscalation: false
+          capabilities:
+            drop:
+            - ALL
+          readOnlyRootFilesystem: true
+        volumeMounts:
+        - name: kafka-data
+          mountPath: /var/lib/kafka
+        - name: kafka-config
+          mountPath: /opt/kafka/config
+        - name: tmp
+          mountPath: /tmp
+        readinessProbe:
+          tcpSocket:
+            port: kafka
+          initialDelaySeconds: 10
+          periodSeconds: 5
+          timeoutSeconds: 5
+          failureThreshold: 3
+      volumes:
+      - name: kafka-config
+        emptyDir: {}
+      - name: tmp
+        emptyDir: {}
+  volumeClaimTemplates:
+  - apiVersion: v1
+    kind: PersistentVolumeClaim
+    metadata:
+      name: kafka-data
+    spec:
+      accessModes:
+      - ReadWriteOnce
+      resources:
+        requests:
+          storage: 5Gi
+
--- HelmRelease: mimir/mimir MutatingWebhookConfiguration: mimir/prepare-downscale-mimir

+++ HelmRelease: mimir/mimir MutatingWebhookConfiguration: mimir/prepare-downscale-mimir

@@ -0,0 +1,40 @@

+---
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+  name: prepare-downscale-mimir
+  labels:
+    grafana.com/inject-rollout-operator-ca: 'true'
+    grafana.com/namespace: mimir
+    app.kubernetes.io/name: rollout-operator
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/managed-by: Helm
+webhooks:
+- name: prepare-downscale-mimir.grafana.com
+  clientConfig:
+    service:
+      namespace: mimir
+      name: mimir-rollout-operator
+      path: /admission/prepare-downscale
+      port: 443
+  rules:
+  - operations:
+    - UPDATE
+    apiGroups:
+    - apps
+    apiVersions:
+    - v1
+    resources:
+    - statefulsets
+    - statefulsets/scale
+    scope: Namespaced
+  admissionReviewVersions:
+  - v1
+  namespaceSelector:
+    matchLabels:
+      kubernetes.io/metadata.name: mimir
+  sideEffects: NoneOnDryRun
+  matchPolicy: Equivalent
+  timeoutSeconds: 10
+  failurePolicy: Fail
+
--- HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-gateway

+++ HelmRelease: mimir/mimir ServiceMonitor: mimir/mimir-gateway

@@ -0,0 +1,44 @@

+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+  name: mimir-gateway
+  namespace: mimir
+  labels:
+    app.kubernetes.io/name: mimir
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/component: gateway
+    app.kubernetes.io/managed-by: Helm
+spec:
+  namespaceSelector:
+    matchNames:
+    - mimir
+  selector:
+    matchLabels:
+      app.kubernetes.io/name: mimir
+      app.kubernetes.io/instance: mimir
+      app.kubernetes.io/component: gateway
+    matchExpressions:
+    - key: prometheus.io/service-monitor
+      operator: NotIn
+      values:
+      - 'false'
+  endpoints:
+  - port: http-metrics
+    interval: 1m
+    relabelings:
+    - action: replace
+      sourceLabels:
+      - job
+      replacement: mimir/gateway
+      targetLabel: job
+    - action: replace
+      replacement: mimir
+      targetLabel: cluster
+    metricRelabelings:
+    - action: drop
+      regex: ^(process).*
+      sourceLabels:
+      - __name__
+    scheme: http
+
--- HelmRelease: mimir/mimir ValidatingWebhookConfiguration: mimir/no-downscale-mimir

+++ HelmRelease: mimir/mimir ValidatingWebhookConfiguration: mimir/no-downscale-mimir

@@ -0,0 +1,38 @@

+---
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+  name: no-downscale-mimir
+  labels:
+    grafana.com/inject-rollout-operator-ca: 'true'
+    grafana.com/namespace: mimir
+    app.kubernetes.io/name: rollout-operator
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/managed-by: Helm
+webhooks:
+- name: no-downscale-mimir.grafana.com
+  clientConfig:
+    service:
+      namespace: mimir
+      name: mimir-rollout-operator
+      path: /admission/no-downscale
+      port: 443
+  rules:
+  - operations:
+    - UPDATE
+    apiGroups:
+    - apps
+    apiVersions:
+    - v1
+    resources:
+    - statefulsets
+    - statefulsets/scale
+    scope: Namespaced
+  admissionReviewVersions:
+  - v1
+  namespaceSelector:
+    matchLabels:
+      kubernetes.io/metadata.name: mimir
+  sideEffects: None
+  failurePolicy: Fail
+
--- HelmRelease: mimir/mimir ValidatingWebhookConfiguration: mimir/pod-eviction-mimir

+++ HelmRelease: mimir/mimir ValidatingWebhookConfiguration: mimir/pod-eviction-mimir

@@ -0,0 +1,37 @@

+---
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+  name: pod-eviction-mimir
+  labels:
+    grafana.com/inject-rollout-operator-ca: 'true'
+    grafana.com/namespace: mimir
+    app.kubernetes.io/name: rollout-operator
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/managed-by: Helm
+webhooks:
+- name: pod-eviction-mimir.grafana.com
+  clientConfig:
+    service:
+      namespace: mimir
+      name: mimir-rollout-operator
+      path: /admission/pod-eviction
+      port: 443
+  rules:
+  - operations:
+    - CREATE
+    apiGroups:
+    - ''
+    apiVersions:
+    - v1
+    resources:
+    - pods/eviction
+    scope: Namespaced
+  admissionReviewVersions:
+  - v1
+  namespaceSelector:
+    matchLabels:
+      kubernetes.io/metadata.name: mimir
+  sideEffects: None
+  failurePolicy: Fail
+
--- HelmRelease: mimir/mimir ValidatingWebhookConfiguration: mimir/zpdb-validation-mimir

+++ HelmRelease: mimir/mimir ValidatingWebhookConfiguration: mimir/zpdb-validation-mimir

@@ -0,0 +1,38 @@

+---
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+  name: zpdb-validation-mimir
+  labels:
+    grafana.com/inject-rollout-operator-ca: 'true'
+    grafana.com/namespace: mimir
+    app.kubernetes.io/name: rollout-operator
+    app.kubernetes.io/instance: mimir
+    app.kubernetes.io/managed-by: Helm
+webhooks:
+- name: zpdb-validation-mimir.grafana.com
+  clientConfig:
+    service:
+      namespace: mimir
+      name: mimir-rollout-operator
+      path: /admission/zpdb-validation
+      port: 443
+  rules:
+  - operations:
+    - CREATE
+    - UPDATE
+    apiGroups:
+    - rollout-operator.grafana.com
+    apiVersions:
+    - v1
+    resources:
+    - zoneawarepoddisruptionbudgets
+    scope: Namespaced
+  admissionReviewVersions:
+  - v1
+  namespaceSelector:
+    matchLabels:
+      kubernetes.io/metadata.name: mimir
+  sideEffects: None
+  failurePolicy: Fail
+

@timtor-bot timtor-bot force-pushed the renovate/mimir-distributed-6.x branch 2 times, most recently from ffd309a to c2a5745 Compare November 6, 2025 00:19
@timtor-bot timtor-bot force-pushed the renovate/mimir-distributed-6.x branch from c2a5745 to 33e22ad Compare November 29, 2025 00:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants