From bc67696e333c5030f03742ae0f5e5d13e7b85e4d Mon Sep 17 00:00:00 2001 From: Daniel Reuter Date: Tue, 21 Nov 2023 11:30:59 +0100 Subject: [PATCH] feat: make probes configurable via helm-chart --- .../steadybit-extension-prometheus/Chart.yaml | 2 +- .../templates/deployment.yaml | 10 +++ .../__snapshot__/deployment_test.yaml.snap | 90 +++++++++++++++++++ .../values.yaml | 16 ++++ 4 files changed, 117 insertions(+), 1 deletion(-) diff --git a/charts/steadybit-extension-prometheus/Chart.yaml b/charts/steadybit-extension-prometheus/Chart.yaml index 2f5eeec..c3d1a70 100644 --- a/charts/steadybit-extension-prometheus/Chart.yaml +++ b/charts/steadybit-extension-prometheus/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 name: steadybit-extension-prometheus description: Steadybit Prometheus extension Helm chart for Kubernetes. -version: 1.4.21 +version: 1.4.22 appVersion: latest home: https://www.steadybit.com/ icon: https://steadybit-website-assets.s3.amazonaws.com/logo-symbol-transparent.png diff --git a/charts/steadybit-extension-prometheus/templates/deployment.yaml b/charts/steadybit-extension-prometheus/templates/deployment.yaml index 4a25b97..fb47ef9 100644 --- a/charts/steadybit-extension-prometheus/templates/deployment.yaml +++ b/charts/steadybit-extension-prometheus/templates/deployment.yaml @@ -79,10 +79,20 @@ spec: volumeMounts: {{- include "extensionlib.deployment.volumeMounts" (list .) | nindent 12 }} livenessProbe: + initialDelaySeconds: {{ .Values.probes.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.probes.liveness.periodSeconds }} + timeoutSeconds: {{ .Values.probes.liveness.timeoutSeconds }} + successThreshold: {{ .Values.probes.liveness.successThreshold }} + failureThreshold: {{ .Values.probes.liveness.failureThreshold }} httpGet: path: /health/liveness port: 8088 readinessProbe: + initialDelaySeconds: {{ .Values.probes.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.probes.readiness.periodSeconds }} + timeoutSeconds: {{ .Values.probes.readiness.timeoutSeconds }} + successThreshold: {{ .Values.probes.readiness.successThreshold }} + failureThreshold: {{ .Values.probes.readiness.failureThreshold }} httpGet: path: /health/readiness port: 8088 diff --git a/charts/steadybit-extension-prometheus/tests/__snapshot__/deployment_test.yaml.snap b/charts/steadybit-extension-prometheus/tests/__snapshot__/deployment_test.yaml.snap index d57ea3e..3991f67 100644 --- a/charts/steadybit-extension-prometheus/tests/__snapshot__/deployment_test.yaml.snap +++ b/charts/steadybit-extension-prometheus/tests/__snapshot__/deployment_test.yaml.snap @@ -38,14 +38,24 @@ manifest should match snapshot using podAnnotations and Labels: image: ghcr.io/steadybit/extension-prometheus:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -107,14 +117,24 @@ manifest should match snapshot with TLS: image: ghcr.io/steadybit/extension-prometheus:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -186,14 +206,24 @@ manifest should match snapshot with extra env vars: image: ghcr.io/steadybit/extension-prometheus:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -253,14 +283,24 @@ manifest should match snapshot with extra labels: image: ghcr.io/steadybit/extension-prometheus:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -324,14 +364,24 @@ manifest should match snapshot with mutual TLS: image: ghcr.io/steadybit/extension-prometheus:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -409,14 +459,24 @@ manifest should match snapshot with mutual TLS using containerPaths: image: ghcr.io/steadybit/extension-prometheus:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -474,14 +534,24 @@ manifest should match snapshot with podSecurityContext: image: ghcr.io/steadybit/extension-prometheus:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -541,14 +611,24 @@ manifest should match snapshot with priority class: image: ghcr.io/steadybit/extension-prometheus:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -607,14 +687,24 @@ manifest should match snapshot without TLS: image: ghcr.io/steadybit/extension-prometheus:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8088 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m diff --git a/charts/steadybit-extension-prometheus/values.yaml b/charts/steadybit-extension-prometheus/values.yaml index 3a60dfe..80619b7 100644 --- a/charts/steadybit-extension-prometheus/values.yaml +++ b/charts/steadybit-extension-prometheus/values.yaml @@ -42,6 +42,22 @@ logging: # logging.format -- The format of the log entries. One of text, json format: text +probes: + # probes.readiness.* -- Configuration of the Kubernetes readiness probe + readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + successThreshold: 1 + # probes.liveness.* -- Configuration of the Kubernetes liveness probe + liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 5 + successThreshold: 1 + resources: requests: # resources.requests.memory -- The minimal amount of memory needed