diff --git a/CHANGELOG.md b/CHANGELOG.md index eac4944a..54a5bf97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,8 @@ * [CHANGE] Remove startup probes from compactors from default values. It's not recommended in general #542 * [CHANGE] Use default value for num_tokens in ingester configuration #544 * [DEPENDENCY] Update kiwigrid/k8s-sidecar docker tag to v1.30.5 #531 -* [BUGFIX] fix discovering memcached instances #551 +* [BUGFIX] Fix discovering memcached instances #551 +* [ENHANCEMENT] Run overrides-exporter with high availability #557 ## 2.6.0 / 2025-05-07 diff --git a/README.md b/README.md index 12ba728b..e364fbc1 100644 --- a/README.md +++ b/README.md @@ -484,7 +484,7 @@ Kubernetes: `^1.19.0-0` | nginx.​topologySpreadConstraints | list | `[]` | | | overrides_exporter.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​key | string | `"app.kubernetes.io/component"` | | | overrides_exporter.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​operator | string | `"In"` | | -| overrides_exporter.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​values[0] | string | `"query-scheduler"` | | +| overrides_exporter.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​values[0] | string | `"overrides-exporter"` | | | overrides_exporter.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​topologyKey | string | `"kubernetes.io/hostname"` | | | overrides_exporter.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​weight | int | `100` | | | overrides_exporter.​annotations | object | `{}` | | @@ -503,9 +503,11 @@ Kubernetes: `^1.19.0-0` | overrides_exporter.​livenessProbe.​httpGet.​port | string | `"http-metrics"` | | | overrides_exporter.​nodeSelector | object | `{}` | | | overrides_exporter.​podAnnotations | object | `{"prometheus.io/port":"http-metrics","prometheus.io/scrape":"true"}` | Pod Annotations | +| overrides_exporter.​podDisruptionBudget.​maxUnavailable | string | `"30%"` | | | overrides_exporter.​podLabels | object | `{}` | Pod Labels | | overrides_exporter.​readinessProbe.​httpGet.​path | string | `"/ready"` | | | overrides_exporter.​readinessProbe.​httpGet.​port | string | `"http-metrics"` | | +| overrides_exporter.​replicas | int | `1` | | | overrides_exporter.​resources | object | `{}` | | | overrides_exporter.​securityContext | object | `{}` | | | overrides_exporter.​service.​annotations | object | `{}` | | diff --git a/templates/overrides-exporter/overrides-exporter-dep.yaml b/templates/overrides-exporter/overrides-exporter-dep.yaml index dc9e5d6e..4b7b8653 100644 --- a/templates/overrides-exporter/overrides-exporter-dep.yaml +++ b/templates/overrides-exporter/overrides-exporter-dep.yaml @@ -9,7 +9,7 @@ metadata: annotations: {{- toYaml .Values.overrides_exporter.annotations | nindent 4 }} spec: - replicas: 1 + replicas: {{ .Values.overrides_exporter.replicas }} selector: matchLabels: {{- include "cortex.overridesExporterSelectorLabels" . | nindent 6 }} diff --git a/templates/overrides-exporter/overrides-exporter-poddisruptionbudget.yaml b/templates/overrides-exporter/overrides-exporter-poddisruptionbudget.yaml new file mode 100644 index 00000000..01ed5066 --- /dev/null +++ b/templates/overrides-exporter/overrides-exporter-poddisruptionbudget.yaml @@ -0,0 +1,14 @@ +{{- if and (gt (int .Values.overrides_exporter.replicas) 1) (.Values.overrides_exporter.podDisruptionBudget) (.Values.overrides_exporter.enabled) }} +apiVersion: {{ include "cortex.pdbVersion" . }} +kind: PodDisruptionBudget +metadata: + name: {{ include "cortex.overridesExporterFullname" . }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "cortex.overridesExporterLabels" . | nindent 4 }} +spec: + selector: + matchLabels: + {{- include "cortex.overridesExporterSelectorLabels" . | nindent 6 }} + {{- toYaml .Values.overrides_exporter.podDisruptionBudget | nindent 2 }} +{{- end }} diff --git a/values.yaml b/values.yaml index f25d2cba..5ef363bf 100644 --- a/values.yaml +++ b/values.yaml @@ -1029,6 +1029,7 @@ query_scheduler: overrides_exporter: # -- https://cortexmetrics.io/docs/guides/overrides-exporter/ enabled: false + replicas: 1 service: annotations: {} @@ -1068,7 +1069,7 @@ overrides_exporter: - key: app.kubernetes.io/component operator: In values: - - query-scheduler + - overrides-exporter topologyKey: 'kubernetes.io/hostname' annotations: {} @@ -1102,6 +1103,9 @@ overrides_exporter: tolerations: [] + podDisruptionBudget: + maxUnavailable: 30% + initContainers: [] extraContainers: [] extraVolumes: []