From dbba1fc6d01e66600f94653a8a1c090cd60c38e3 Mon Sep 17 00:00:00 2001 From: Brian Oldfield Date: Thu, 21 Nov 2024 14:41:07 -0800 Subject: [PATCH] Allow prefixing of rollout-group value and ingester name Signed-off-by: Brian Oldfield --- charts/tempo-distributed/Chart.yaml | 2 +- charts/tempo-distributed/README.md | 2 ++ .../templates/ingester/_helpers-ingester.tpl | 24 ++++++++++++++----- .../ingester/statefulset-ingester.yaml | 4 ++++ charts/tempo-distributed/values.yaml | 6 +++++ 5 files changed, 31 insertions(+), 7 deletions(-) diff --git a/charts/tempo-distributed/Chart.yaml b/charts/tempo-distributed/Chart.yaml index 33f58d970c..74f2da80ba 100644 --- a/charts/tempo-distributed/Chart.yaml +++ b/charts/tempo-distributed/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: tempo-distributed description: Grafana Tempo in MicroService mode type: application -version: 1.22.2 +version: 1.22.3 appVersion: 2.6.0 engine: gotpl home: https://grafana.com/docs/tempo/latest/ diff --git a/charts/tempo-distributed/README.md b/charts/tempo-distributed/README.md index d500749d7b..63d83d1624 100755 --- a/charts/tempo-distributed/README.md +++ b/charts/tempo-distributed/README.md @@ -509,6 +509,7 @@ The memcached default args are removed and should be provided manually. The sett | global.image.registry | string | `"docker.io"` | Overrides the Docker registry globally for all images, excluding enterprise. | | global.priorityClassName | string | `nil` | Overrides the priorityClassName for all pods | | global_overrides.per_tenant_override_config | string | `"/runtime-config/overrides.yaml"` | | +| ingester.addIngesterNamePrefix | bool | `false` | Optionally allow adding 'tempo-' prefix to Ingester StatefulSet names, this is helpful when running multiple LTGM components in a single namespace. | | ingester.affinity | string | Soft node and soft zone anti-affinity | Affinity for ingester pods. Passed through `tpl` and, thus, to be configured as string | | ingester.annotations | object | `{}` | Annotations for the ingester StatefulSet | | ingester.appProtocol | object | `{"grpc":null}` | Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection. | @@ -548,6 +549,7 @@ The memcached default args are removed and should be provided manually. The sett | ingester.priorityClassName | string | `nil` | The name of the PriorityClass for ingester pods | | ingester.replicas | int | `3` | Number of replicas for the ingester | | ingester.resources | object | `{}` | Resource requests and limits for the ingester | +| ingester.rolloutGroupPrefix | string | `null` | Optionally add supplied prefix to the Ingester StatefulSet rollout-group label. This is helpful when running multiple LTGM components in a single namespace. | | ingester.service.annotations | object | `{}` | Annotations for ingester service | | ingester.service.internalTrafficPolicy | string | `"Cluster"` | https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/ | | ingester.service.type | string | `"ClusterIP"` | Type of the service: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types | diff --git a/charts/tempo-distributed/templates/ingester/_helpers-ingester.tpl b/charts/tempo-distributed/templates/ingester/_helpers-ingester.tpl index 4d417ada2c..d76894b09f 100644 --- a/charts/tempo-distributed/templates/ingester/_helpers-ingester.tpl +++ b/charts/tempo-distributed/templates/ingester/_helpers-ingester.tpl @@ -40,7 +40,7 @@ Params: - key: rollout-group operator: In values: - - ingester + - "{{ include "ingester.rolloutGroupNamePrefix" .ctx | trim }}{{ .component }}" - key: zone operator: NotIn values: @@ -72,8 +72,8 @@ ingester labels */}} {{- define "ingester.labels" -}} {{- if and .ctx.Values.ingester.zoneAwareReplication.enabled .rolloutZoneName }} -name: {{ printf "%s-%s" .component .rolloutZoneName }} -rollout-group: {{ .component }} +name: "{{ include "ingester.namePrefix" .ctx | trim }}{{ .component | trim }}-{{ .rolloutZoneName }}" +rollout-group: "{{ include "ingester.rolloutGroupNamePrefix" .ctx | trim }}{{ .component }}" zone: {{ .rolloutZoneName }} {{- end }} helm.sh/chart: {{ include "tempo.chart" .ctx }} @@ -125,7 +125,7 @@ app.kubernetes.io/component: {{ .component }} {{- if not .component }} {{- printf "Component name cannot be empty if rolloutZoneName (%s) is set" .rolloutZoneName | fail }} {{- end }} -rollout-group: {{ .component }} +rollout-group: "{{ include "ingester.rolloutGroupNamePrefix" .ctx | trim }}{{ .component }}" zone: {{ .rolloutZoneName }} {{- end }} {{- end -}} @@ -176,8 +176,20 @@ app.kubernetes.io/part-of: memberlist {{- if not .component }} {{- printf "Component name cannot be empty if rolloutZoneName (%s) is set" .rolloutZoneName | fail }} {{- end }} -name: "{{ .component }}-{{ .rolloutZoneName }}" {{- /* Currently required for rollout-operator. https://github.com/grafana/rollout-operator/issues/15 */}} -rollout-group: ingester +name: "{{ include "ingester.namePrefix" .ctx | trim }}{{ .component }}-{{ .rolloutZoneName }}"{{- /* Currently required for rollout-operator. https://github.com/grafana/rollout-operator/issues/15 */}} +rollout-group: "{{ include "ingester.rolloutGroupNamePrefix" .ctx | trim }}{{ .component }}" zone: {{ .rolloutZoneName }} {{- end }} {{- end -}} + +{{- define "ingester.rolloutGroupNamePrefix" -}} +{{- if .Values.ingester.rolloutGroupPrefix }} +{{ .Values.ingester.rolloutGroupPrefix }}- +{{- end }} +{{- end -}} + +{{- define "ingester.namePrefix" -}} +{{- if .Values.ingester.addNamePrefix }} +tempo- +{{- end }} +{{- end -}} diff --git a/charts/tempo-distributed/templates/ingester/statefulset-ingester.yaml b/charts/tempo-distributed/templates/ingester/statefulset-ingester.yaml index f7254deb89..6aeea9d596 100644 --- a/charts/tempo-distributed/templates/ingester/statefulset-ingester.yaml +++ b/charts/tempo-distributed/templates/ingester/statefulset-ingester.yaml @@ -26,7 +26,11 @@ spec: selector: matchLabels: {{- include "ingester.selectorLabels" $dict | nindent 6}} + {{- if not .Values.ingester.zoneNamespacedServiceName }} serviceName: ingester + {{- else }} + serviceName: tempo-ingester-{{ $zoneName }} + {{- end }} podManagementPolicy: Parallel updateStrategy: {{- if .Values.ingester.zoneAwareReplication.enabled }} diff --git a/charts/tempo-distributed/values.yaml b/charts/tempo-distributed/values.yaml index aaed57b276..739903f9fe 100755 --- a/charts/tempo-distributed/values.yaml +++ b/charts/tempo-distributed/values.yaml @@ -287,6 +287,12 @@ ingester: # If set to "-", then use `storageClassName: ""`, which disables dynamic provisioning # If undefined or set to null (the default), then fall back to the value of `ingester.persistentVolume.storageClass`. storageClass: null + # optionally allow adding 'tempo-' prefix to ingester name label + addNamePrefix: false + # optionally allow adding arbitrary prefix to the ingester rollout-group label + rolloutGroupPrefix: '' + # optionally namespace StatefulSet serviceName with zone. ex: temp-ingester-zone-a + zoneNamespacedServiceName: false # Configuration for the metrics-generator metricsGenerator: