From 801b161283505e1d6d63129fea759126e33e0d18 Mon Sep 17 00:00:00 2001 From: Mike Klebolt Date: Thu, 11 Jan 2024 14:37:12 -0600 Subject: [PATCH] [kube-state-metrics] Make liveness and readiness probes customizable (#4114) Signed-off-by: Mike Klebolt --- charts/kube-state-metrics/Chart.yaml | 2 +- .../templates/deployment.yaml | 44 ++++++++++++++----- charts/kube-state-metrics/values.yaml | 24 ++++++++++ 3 files changed, 59 insertions(+), 11 deletions(-) diff --git a/charts/kube-state-metrics/Chart.yaml b/charts/kube-state-metrics/Chart.yaml index a7682a33f665..05da94e1dd2b 100644 --- a/charts/kube-state-metrics/Chart.yaml +++ b/charts/kube-state-metrics/Chart.yaml @@ -7,7 +7,7 @@ keywords: - prometheus - kubernetes type: application -version: 5.15.3 +version: 5.16.0 appVersion: 2.10.1 home: https://github.com/kubernetes/kube-state-metrics/ sources: diff --git a/charts/kube-state-metrics/templates/deployment.yaml b/charts/kube-state-metrics/templates/deployment.yaml index 2aedc92016a0..373f7dcc56a0 100644 --- a/charts/kube-state-metrics/templates/deployment.yaml +++ b/charts/kube-state-metrics/templates/deployment.yaml @@ -49,10 +49,10 @@ spec: {{- toYaml . | nindent 6 }} {{- end }} containers: - {{- $httpPort := ternary 9090 (.Values.service.port | default 8080) .Values.kubeRBACProxy.enabled}} + {{- $servicePort := ternary 9090 (.Values.service.port | default 8080) .Values.kubeRBACProxy.enabled}} {{- $telemetryPort := ternary 9091 (.Values.selfMonitor.telemetryPort | default 8081) .Values.kubeRBACProxy.enabled}} - name: {{ template "kube-state-metrics.name" . }} - {{- if .Values.autosharding.enabled }} + {{- if .Values.autosharding.enabled }} env: - name: POD_NAME valueFrom: @@ -67,7 +67,7 @@ spec: {{- if .Values.extraArgs }} {{- .Values.extraArgs | toYaml | nindent 8 }} {{- end }} - - --port={{ $httpPort }} + - --port={{ $servicePort }} {{- if .Values.collectors }} - --resources={{ .Values.collectors | join "," }} {{- end }} @@ -147,17 +147,41 @@ spec: {{- end }} {{- end }} livenessProbe: + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} httpGet: + {{- if .Values.kubeRBACProxy.enabled }} + host: 127.0.0.1 + {{- end }} + httpHeaders: + {{- range $_, $header := .Values.livenessProbe.httpGet.httpHeaders }} + - name: {{ $header.name }} + value: {{ $header.value }} + {{- end }} path: /healthz - port: {{ $httpPort }} - initialDelaySeconds: 5 - timeoutSeconds: 5 + port: {{ $servicePort }} + scheme: {{ upper .Values.livenessProbe.httpGet.scheme }} + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + successThreshold: {{ .Values.livenessProbe.successThreshold }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} readinessProbe: + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} httpGet: + {{- if .Values.kubeRBACProxy.enabled }} + host: 127.0.0.1 + {{- end }} + httpHeaders: + {{- range $_, $header := .Values.readinessProbe.httpGet.httpHeaders }} + - name: {{ $header.name }} + value: {{ $header.value }} + {{- end }} path: / - port: {{ $httpPort }} - initialDelaySeconds: 5 - timeoutSeconds: 5 + port: {{ $servicePort }} + scheme: {{ upper .Values.readinessProbe.httpGet.scheme }} + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + successThreshold: {{ .Values.readinessProbe.successThreshold }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} {{- if .Values.resources }} resources: {{ toYaml .Values.resources | indent 10 }} @@ -173,7 +197,7 @@ spec: {{- .Values.kubeRBACProxy.extraArgs | toYaml | nindent 8 }} {{- end }} - --secure-listen-address=:{{ .Values.service.port | default 8080}} - - --upstream=http://127.0.0.1:{{ $httpPort }}/ + - --upstream=http://127.0.0.1:{{ $servicePort }}/ - --proxy-endpoints-port=8888 - --config-file=/etc/kube-rbac-proxy-config/config-file.yaml volumeMounts: diff --git a/charts/kube-state-metrics/values.yaml b/charts/kube-state-metrics/values.yaml index ee6e1a9f7a74..7f312961d38d 100644 --- a/charts/kube-state-metrics/values.yaml +++ b/charts/kube-state-metrics/values.yaml @@ -454,3 +454,27 @@ containers: [] initContainers: [] # - name: crd-sidecar # image: kiwigrid/k8s-sidecar:latest + +## Liveness probe +## +livenessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: [] + scheme: http + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + +## Readiness probe +## +readinessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: [] + scheme: http + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5