Skip to content

Commit e1145ac

Browse files
Merge pull request #3927 from sringel/ingester-annotations
[tempo-distributed] Add zone specific annotations and podAnnotations for ingester statefulsets
2 parents 1777081 + 57ce4c5 commit e1145ac

File tree

4 files changed

+31
-7
lines changed

4 files changed

+31
-7
lines changed

charts/tempo-distributed/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
name: tempo-distributed
33
description: Grafana Tempo in MicroService mode
44
type: application
5-
version: 1.52.2
5+
version: 1.52.3
66
appVersion: 2.9.0
77
engine: gotpl
88
home: https://grafana.com/docs/tempo/latest/

charts/tempo-distributed/README.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# tempo-distributed
22

3-
![Version: 1.52.2](https://img.shields.io/badge/Version-1.52.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.9.0](https://img.shields.io/badge/AppVersion-2.9.0-informational?style=flat-square)
3+
![Version: 1.52.3](https://img.shields.io/badge/Version-1.52.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.9.0](https://img.shields.io/badge/AppVersion-2.9.0-informational?style=flat-square)
44

55
Grafana Tempo in MicroService mode
66

@@ -627,22 +627,28 @@ The memcached default args are removed and should be provided manually. The sett
627627
| ingester.terminationGracePeriodSeconds | int | `300` | Grace period to allow the ingester to shutdown before it is killed. Especially for the ingestor, this must be increased. It must be long enough so ingesters can be gracefully shutdown flushing/transferring all data and to successfully leave the member ring on shutdown. |
628628
| ingester.tolerations | list | `[]` | Tolerations for ingester pods |
629629
| ingester.topologySpreadConstraints | string | Defaults to allow skew no more then 1 node per AZ | topologySpread for ingester pods. Passed through `tpl` and, thus, to be configured as string |
630-
| ingester.zoneAwareReplication | object | `{"enabled":false,"maxUnavailable":50,"topologyKey":null,"zones":[{"extraAffinity":{},"name":"zone-a","nodeSelector":null,"storageClass":null},{"extraAffinity":{},"name":"zone-b","nodeSelector":null,"storageClass":null},{"extraAffinity":{},"name":"zone-c","nodeSelector":null,"storageClass":null}]}` | EXPERIMENTAL Feature, disabled by default |
630+
| ingester.zoneAwareReplication | object | `{"enabled":false,"maxUnavailable":50,"topologyKey":null,"zones":[{"annotations":{},"extraAffinity":{},"name":"zone-a","nodeSelector":null,"podAnnotations":{},"storageClass":null},{"annotations":{},"extraAffinity":{},"name":"zone-b","nodeSelector":null,"podAnnotations":{},"storageClass":null},{"annotations":{},"extraAffinity":{},"name":"zone-c","nodeSelector":null,"podAnnotations":{},"storageClass":null}]}` | EXPERIMENTAL Feature, disabled by default |
631631
| ingester.zoneAwareReplication.enabled | bool | `false` | Enable zone-aware replication for ingester |
632632
| ingester.zoneAwareReplication.maxUnavailable | int | `50` | Maximum number of ingesters that can be unavailable per zone during rollout |
633633
| ingester.zoneAwareReplication.topologyKey | string | `nil` | topologyKey to use in pod anti-affinity. If unset, no anti-affinity rules are generated. If set, the generated anti-affinity rule makes sure that pods from different zones do not mix. E.g.: topologyKey: 'kubernetes.io/hostname' |
634-
| ingester.zoneAwareReplication.zones | list | `[{"extraAffinity":{},"name":"zone-a","nodeSelector":null,"storageClass":null},{"extraAffinity":{},"name":"zone-b","nodeSelector":null,"storageClass":null},{"extraAffinity":{},"name":"zone-c","nodeSelector":null,"storageClass":null}]` | Zone definitions for ingester zones. Note: you have to redefine the whole list to change parts as YAML does not allow to modify parts of a list. |
635-
| ingester.zoneAwareReplication.zones[0] | object | `{"extraAffinity":{},"name":"zone-a","nodeSelector":null,"storageClass":null}` | Name of the zone, used in labels and selectors. Must follow Kubernetes naming restrictions: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ |
634+
| ingester.zoneAwareReplication.zones | list | `[{"annotations":{},"extraAffinity":{},"name":"zone-a","nodeSelector":null,"podAnnotations":{},"storageClass":null},{"annotations":{},"extraAffinity":{},"name":"zone-b","nodeSelector":null,"podAnnotations":{},"storageClass":null},{"annotations":{},"extraAffinity":{},"name":"zone-c","nodeSelector":null,"podAnnotations":{},"storageClass":null}]` | Zone definitions for ingester zones. Note: you have to redefine the whole list to change parts as YAML does not allow to modify parts of a list. |
635+
| ingester.zoneAwareReplication.zones[0] | object | `{"annotations":{},"extraAffinity":{},"name":"zone-a","nodeSelector":null,"podAnnotations":{},"storageClass":null}` | Name of the zone, used in labels and selectors. Must follow Kubernetes naming restrictions: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ |
636+
| ingester.zoneAwareReplication.zones[0].annotations | object | `{}` | Specific annotations to add to zone-a statefulset |
636637
| ingester.zoneAwareReplication.zones[0].extraAffinity | object | `{}` | extraAffinity adds user defined custom affinity rules (merged with generated rules) |
637638
| ingester.zoneAwareReplication.zones[0].nodeSelector | string | `nil` | nodeselector to restrict where pods of this zone can be placed. E.g.: nodeSelector: topology.kubernetes.io/zone: zone-a |
639+
| ingester.zoneAwareReplication.zones[0].podAnnotations | object | `{}` | Specific annotations to add to zone-a pods |
638640
| ingester.zoneAwareReplication.zones[0].storageClass | string | `nil` | Ingester data Persistent Volume Storage Class If defined, storageClassName: <storageClass> 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`. |
639-
| ingester.zoneAwareReplication.zones[1] | object | `{"extraAffinity":{},"name":"zone-b","nodeSelector":null,"storageClass":null}` | Name of the zone, used in labels and selectors. Must follow Kubernetes naming restrictions: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ |
641+
| ingester.zoneAwareReplication.zones[1] | object | `{"annotations":{},"extraAffinity":{},"name":"zone-b","nodeSelector":null,"podAnnotations":{},"storageClass":null}` | Name of the zone, used in labels and selectors. Must follow Kubernetes naming restrictions: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ |
642+
| ingester.zoneAwareReplication.zones[1].annotations | object | `{}` | Specific annotations to add to zone-b statefulset |
640643
| ingester.zoneAwareReplication.zones[1].extraAffinity | object | `{}` | extraAffinity adds user defined custom affinity rules (merged with generated rules) |
641644
| ingester.zoneAwareReplication.zones[1].nodeSelector | string | `nil` | nodeselector to restrict where pods of this zone can be placed. E.g.: nodeSelector: topology.kubernetes.io/zone: zone-b |
645+
| ingester.zoneAwareReplication.zones[1].podAnnotations | object | `{}` | Specific annotations to add to zone-b pods |
642646
| ingester.zoneAwareReplication.zones[1].storageClass | string | `nil` | Ingester data Persistent Volume Storage Class If defined, storageClassName: <storageClass> 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`. |
643-
| ingester.zoneAwareReplication.zones[2] | object | `{"extraAffinity":{},"name":"zone-c","nodeSelector":null,"storageClass":null}` | Name of the zone, used in labels and selectors. Must follow Kubernetes naming restrictions: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ |
647+
| ingester.zoneAwareReplication.zones[2] | object | `{"annotations":{},"extraAffinity":{},"name":"zone-c","nodeSelector":null,"podAnnotations":{},"storageClass":null}` | Name of the zone, used in labels and selectors. Must follow Kubernetes naming restrictions: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ |
648+
| ingester.zoneAwareReplication.zones[2].annotations | object | `{}` | Specific annotations to add to zone-c statefulset |
644649
| ingester.zoneAwareReplication.zones[2].extraAffinity | object | `{}` | extraAffinity adds user defined custom affinity rules (merged with generated rules) |
645650
| ingester.zoneAwareReplication.zones[2].nodeSelector | string | `nil` | nodeselector to restrict where pods of this zone can be placed. E.g.: nodeSelector: topology.kubernetes.io/zone: zone-c |
651+
| ingester.zoneAwareReplication.zones[2].podAnnotations | object | `{}` | Specific annotations to add to zone-c pods |
646652
| ingester.zoneAwareReplication.zones[2].storageClass | string | `nil` | Ingester data Persistent Volume Storage Class If defined, storageClassName: <storageClass> 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`. |
647653
| ingress.annotations | object | `{}` | |
648654
| ingress.enabled | bool | `false` | If you enable this, make sure to disable the gateway's ingress. |

charts/tempo-distributed/templates/ingester/statefulset-ingester.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ metadata:
1515
{{- if .Values.ingester.zoneAwareReplication.enabled }}
1616
annotations:
1717
{{- include "ingester.Annotations" $dict | nindent 4}}
18+
{{- with $rolloutZone.annotations }}:
19+
{{- toYaml . | nindent 4 }}
20+
{{- end }}
1821
{{- else }}
1922
{{- with .Values.ingester.annotations }}
2023
annotations:
@@ -51,6 +54,9 @@ spec:
5154
{{- with .Values.ingester.podAnnotations }}
5255
{{- toYaml . | nindent 8 }}
5356
{{- end }}
57+
{{- with $rolloutZone.podAnnotations }}:
58+
{{- toYaml . | nindent 8 }}
59+
{{- end }}
5460
spec:
5561
{{- if or (.Values.ingester.priorityClassName) (.Values.global.priorityClassName) }}
5662
priorityClassName: {{ default .Values.ingester.priorityClassName .Values.global.priorityClassName }}

charts/tempo-distributed/values.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,10 @@ ingester:
302302
# If set to "-", then use `storageClassName: ""`, which disables dynamic provisioning
303303
# If undefined or set to null (the default), then fall back to the value of `ingester.persistentVolume.storageClass`.
304304
storageClass: null
305+
# -- Specific annotations to add to zone-a statefulset
306+
annotations: {}
307+
# -- Specific annotations to add to zone-a pods
308+
podAnnotations: {}
305309
# -- Name of the zone, used in labels and selectors. Must follow Kubernetes naming restrictions: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
306310
- name: zone-b
307311
# -- nodeselector to restrict where pods of this zone can be placed. E.g.:
@@ -315,6 +319,10 @@ ingester:
315319
# If set to "-", then use `storageClassName: ""`, which disables dynamic provisioning
316320
# If undefined or set to null (the default), then fall back to the value of `ingester.persistentVolume.storageClass`.
317321
storageClass: null
322+
# -- Specific annotations to add to zone-b statefulset
323+
annotations: {}
324+
# -- Specific annotations to add to zone-b pods
325+
podAnnotations: {}
318326
# -- Name of the zone, used in labels and selectors. Must follow Kubernetes naming restrictions: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
319327
- name: zone-c
320328
# -- nodeselector to restrict where pods of this zone can be placed. E.g.:
@@ -328,6 +336,10 @@ ingester:
328336
# If set to "-", then use `storageClassName: ""`, which disables dynamic provisioning
329337
# If undefined or set to null (the default), then fall back to the value of `ingester.persistentVolume.storageClass`.
330338
storageClass: null
339+
# -- Specific annotations to add to zone-c statefulset
340+
annotations: {}
341+
# -- Specific annotations to add to zone-c pods
342+
podAnnotations: {}
331343

332344
# Configuration for the metrics-generator
333345
metricsGenerator:

0 commit comments

Comments
 (0)