From d55f8d4130d60adebf924da8c77f377b879d44a4 Mon Sep 17 00:00:00 2001 From: Vladimir Varankin Date: Tue, 21 Jan 2025 09:37:58 +0100 Subject: [PATCH] mimir-distributed: allow StatefulSets to configure their PVC template names (#10376) * helm: allow to configure sts pvc template names Signed-off-by: Vladimir Varankin * update changelog Signed-off-by: Vladimir Varankin * Update operations/helm/charts/mimir-distributed/CHANGELOG.md Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com> --------- Signed-off-by: Vladimir Varankin Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com> --- .../helm/charts/mimir-distributed/CHANGELOG.md | 1 + .../alertmanager/alertmanager-statefulset.yaml | 14 ++++++++------ .../compactor/compactor-statefulset.yaml | 18 ++++++++++-------- .../ingester/ingester-statefulset.yaml | 14 ++++++++------ .../store-gateway-statefulset.yaml | 14 ++++++++------ .../helm/charts/mimir-distributed/values.yaml | 16 ++++++++++++++++ 6 files changed, 51 insertions(+), 26 deletions(-) diff --git a/operations/helm/charts/mimir-distributed/CHANGELOG.md b/operations/helm/charts/mimir-distributed/CHANGELOG.md index 0f277626446..dc0f227b9b9 100644 --- a/operations/helm/charts/mimir-distributed/CHANGELOG.md +++ b/operations/helm/charts/mimir-distributed/CHANGELOG.md @@ -32,6 +32,7 @@ Entries should include a reference to the Pull Request that introduced the chang * [CHANGE] Memcached: Update to Memcached 1.6.34. #10318 * [ENHANCEMENT] Minio: update subchart to v5.4.0. #10346 * [ENHANCEMENT] Individual mimir components can override their container images via the *.image values. The component's image definitions always override the values set in global `image` or `enterprise.image`. #10340 +* [ENHANCEMENT] Alertmanager, compactor, ingester, and store-gateway StatefulSets can configure their PVC template name via the corresponding *.persistentVolume.name values. #10376 * [BUGFIX] Fix calculation of `mimir.siToBytes` and use floating point arithmetics. #10044 ## 5.6.0 diff --git a/operations/helm/charts/mimir-distributed/templates/alertmanager/alertmanager-statefulset.yaml b/operations/helm/charts/mimir-distributed/templates/alertmanager/alertmanager-statefulset.yaml index 68fb3b30f52..290446a68e4 100644 --- a/operations/helm/charts/mimir-distributed/templates/alertmanager/alertmanager-statefulset.yaml +++ b/operations/helm/charts/mimir-distributed/templates/alertmanager/alertmanager-statefulset.yaml @@ -32,17 +32,18 @@ spec: {{- end }} serviceName: {{ template "mimir.fullname" . }}-alertmanager {{- if .Values.alertmanager.persistentVolume.enabled }} + {{- with .Values.alertmanager.persistentVolume }} volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: - name: storage - {{- if .Values.alertmanager.persistentVolume.annotations }} + name: {{ .name }} + {{- if .annotations }} annotations: - {{ toYaml .Values.alertmanager.persistentVolume.annotations | nindent 10 }} + {{ toYaml .annotations | nindent 10 }} {{- end }} spec: - {{- $storageClass := default .Values.alertmanager.persistentVolume.storageClass $rolloutZone.storageClass }} + {{- $storageClass := default .storageClass $rolloutZone.storageClass }} {{- if $storageClass }} {{- if (eq "-" $storageClass) }} storageClassName: "" @@ -51,10 +52,11 @@ spec: {{- end }} {{- end }} accessModes: - {{- toYaml .Values.alertmanager.persistentVolume.accessModes | nindent 10 }} + {{- toYaml .accessModes | nindent 10 }} resources: requests: - storage: "{{ .Values.alertmanager.persistentVolume.size }}" + storage: "{{ .size }}" + {{- end }} {{- end }} template: metadata: diff --git a/operations/helm/charts/mimir-distributed/templates/compactor/compactor-statefulset.yaml b/operations/helm/charts/mimir-distributed/templates/compactor/compactor-statefulset.yaml index b8a451373fd..981dc04396c 100644 --- a/operations/helm/charts/mimir-distributed/templates/compactor/compactor-statefulset.yaml +++ b/operations/helm/charts/mimir-distributed/templates/compactor/compactor-statefulset.yaml @@ -23,28 +23,30 @@ spec: {{- toYaml .Values.compactor.strategy | nindent 4 }} serviceName: {{ template "mimir.fullname" . }}-compactor {{- if .Values.compactor.persistentVolume.enabled }} + {{- with .Values.compactor.persistentVolume }} volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: - name: storage - {{- if .Values.compactor.persistentVolume.annotations }} + name: {{ .name }} + {{- if .annotations }} annotations: - {{ toYaml .Values.compactor.persistentVolume.annotations | nindent 10 }} + {{ toYaml .annotations | nindent 10 }} {{- end }} spec: - {{- if .Values.compactor.persistentVolume.storageClass }} - {{- if (eq "-" .Values.compactor.persistentVolume.storageClass) }} + {{- if .storageClass }} + {{- if (eq "-" .storageClass) }} storageClassName: "" {{- else }} - storageClassName: "{{ .Values.compactor.persistentVolume.storageClass }}" + storageClassName: "{{ .storageClass }}" {{- end }} {{- end }} accessModes: - {{- toYaml .Values.compactor.persistentVolume.accessModes | nindent 10 }} + {{- toYaml .accessModes | nindent 10 }} resources: requests: - storage: "{{ .Values.compactor.persistentVolume.size }}" + storage: "{{ .size }}" + {{- end }} {{- end }} template: metadata: diff --git a/operations/helm/charts/mimir-distributed/templates/ingester/ingester-statefulset.yaml b/operations/helm/charts/mimir-distributed/templates/ingester/ingester-statefulset.yaml index d13a949f46b..1a56c4fcb5b 100644 --- a/operations/helm/charts/mimir-distributed/templates/ingester/ingester-statefulset.yaml +++ b/operations/helm/charts/mimir-distributed/templates/ingester/ingester-statefulset.yaml @@ -32,17 +32,18 @@ spec: {{- end }} serviceName: {{ template "mimir.fullname" . }}-ingester{{- if not .Values.enterprise.legacyLabels -}}-headless{{- end -}} {{- if .Values.ingester.persistentVolume.enabled }} + {{- with .Values.ingester.persistentVolume }} volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: - name: storage - {{- if .Values.ingester.persistentVolume.annotations }} + name: {{ .name }} + {{- if .annotations }} annotations: - {{- toYaml .Values.ingester.persistentVolume.annotations | nindent 10 }} + {{- toYaml .annotations | nindent 10 }} {{- end }} spec: - {{- $storageClass := default .Values.ingester.persistentVolume.storageClass $rolloutZone.storageClass }} + {{- $storageClass := default .storageClass $rolloutZone.storageClass }} {{- if $storageClass }} {{- if (eq "-" $storageClass) }} storageClassName: "" @@ -51,10 +52,11 @@ spec: {{- end }} {{- end }} accessModes: - {{- toYaml .Values.ingester.persistentVolume.accessModes | nindent 10 }} + {{- toYaml .accessModes | nindent 10 }} resources: requests: - storage: "{{ .Values.ingester.persistentVolume.size }}" + storage: "{{ .size }}" + {{- end }} {{- end }} template: metadata: diff --git a/operations/helm/charts/mimir-distributed/templates/store-gateway/store-gateway-statefulset.yaml b/operations/helm/charts/mimir-distributed/templates/store-gateway/store-gateway-statefulset.yaml index 43bf4f3f025..0bdf2d3d4ff 100644 --- a/operations/helm/charts/mimir-distributed/templates/store-gateway/store-gateway-statefulset.yaml +++ b/operations/helm/charts/mimir-distributed/templates/store-gateway/store-gateway-statefulset.yaml @@ -32,17 +32,18 @@ spec: {{- end }} serviceName: {{ template "mimir.fullname" . }}-store-gateway{{- if not .Values.enterprise.legacyLabels -}}-headless{{- end -}} {{- if .Values.store_gateway.persistentVolume.enabled }} + {{- with .Values.store_gateway.persistentVolume }} volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: - name: storage - {{- if .Values.store_gateway.persistentVolume.annotations }} + name: {{ .name }} + {{- if .annotations }} annotations: - {{- toYaml .Values.store_gateway.persistentVolume.annotations | nindent 10 }} + {{- toYaml .annotations | nindent 10 }} {{- end }} spec: - {{- $storageClass := default .Values.store_gateway.persistentVolume.storageClass $rolloutZone.storageClass }} + {{- $storageClass := default .storageClass $rolloutZone.storageClass }} {{- if $storageClass }} {{- if (eq "-" $storageClass) }} storageClassName: "" @@ -51,10 +52,11 @@ spec: {{- end }} {{- end }} accessModes: - {{- toYaml .Values.store_gateway.persistentVolume.accessModes | nindent 10 }} + {{- toYaml .accessModes | nindent 10 }} resources: requests: - storage: "{{ .Values.store_gateway.persistentVolume.size }}" + storage: "{{ .size }}" + {{- end }} {{- end }} template: metadata: diff --git a/operations/helm/charts/mimir-distributed/values.yaml b/operations/helm/charts/mimir-distributed/values.yaml index df76a799443..f2f7e472351 100644 --- a/operations/helm/charts/mimir-distributed/values.yaml +++ b/operations/helm/charts/mimir-distributed/values.yaml @@ -636,6 +636,10 @@ alertmanager: # If false, use emptyDir enabled: true + # Alertmanager data Persistent Volume Claim template name + # + name: storage + # Alertmanager data Persistent Volume Claim annotations # annotations: {} @@ -1015,6 +1019,10 @@ ingester: # enabled: true + # Ingester data Persistent Volume Claim template name + # + name: storage + # Ingester data Persistent Volume Claim annotations # annotations: {} @@ -2154,6 +2162,10 @@ store_gateway: # enabled: true + # Store-gateway data Persistent Volume Claim template name + # + name: storage + # Store-gateway data Persistent Volume Claim annotations # annotations: {} @@ -2366,6 +2378,10 @@ compactor: # enabled: true + # compactor data Persistent Volume Claim template name + # + name: storage + # compactor data Persistent Volume Claim annotations # annotations: {}