From 2aca72b8c88390a6f8ef277da7ca1dbbfbe30712 Mon Sep 17 00:00:00 2001 From: Daniel Reuter Date: Tue, 21 Nov 2023 11:31:01 +0100 Subject: [PATCH] feat: make probes configurable via helm-chart --- charts/steadybit-extension-datadog/Chart.yaml | 2 +- .../templates/deployment.yaml | 10 ++ .../__snapshot__/deployment_test.yaml.snap | 100 ++++++++++++++++++ .../steadybit-extension-datadog/values.yaml | 16 +++ 4 files changed, 127 insertions(+), 1 deletion(-) diff --git a/charts/steadybit-extension-datadog/Chart.yaml b/charts/steadybit-extension-datadog/Chart.yaml index 2fb14e8..aa147b3 100644 --- a/charts/steadybit-extension-datadog/Chart.yaml +++ b/charts/steadybit-extension-datadog/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 name: steadybit-extension-datadog description: Steadybit Kubernetes extension Helm chart for Datadog. -version: 1.4.23 +version: 1.4.24 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-datadog/templates/deployment.yaml b/charts/steadybit-extension-datadog/templates/deployment.yaml index 4815fbe..2b4e49f 100644 --- a/charts/steadybit-extension-datadog/templates/deployment.yaml +++ b/charts/steadybit-extension-datadog/templates/deployment.yaml @@ -93,10 +93,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: 8091 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: 8091 diff --git a/charts/steadybit-extension-datadog/tests/__snapshot__/deployment_test.yaml.snap b/charts/steadybit-extension-datadog/tests/__snapshot__/deployment_test.yaml.snap index 3601a96..181e857 100644 --- a/charts/steadybit-extension-datadog/tests/__snapshot__/deployment_test.yaml.snap +++ b/charts/steadybit-extension-datadog/tests/__snapshot__/deployment_test.yaml.snap @@ -54,16 +54,26 @@ manifest should match snapshot using podAnnotations and Labels: image: ghcr.io/steadybit/extension-datadog:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension ports: - containerPort: 8090 readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -141,16 +151,26 @@ manifest should match snapshot with TLS: image: ghcr.io/steadybit/extension-datadog:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension ports: - containerPort: 8090 readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -238,16 +258,26 @@ manifest should match snapshot with extra env vars: image: ghcr.io/steadybit/extension-datadog:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension ports: - containerPort: 8090 readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -323,16 +353,26 @@ manifest should match snapshot with extra labels: image: ghcr.io/steadybit/extension-datadog:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension ports: - containerPort: 8090 readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -410,16 +450,26 @@ manifest should match snapshot with mock server: image: ghcr.io/steadybit/extension-datadog:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension ports: - containerPort: 8090 readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -499,16 +549,26 @@ manifest should match snapshot with mutual TLS: image: ghcr.io/steadybit/extension-datadog:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension ports: - containerPort: 8090 readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -602,16 +662,26 @@ manifest should match snapshot with mutual TLS using containerPaths: image: ghcr.io/steadybit/extension-datadog:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension ports: - containerPort: 8090 readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -685,16 +755,26 @@ manifest should match snapshot with podSecurityContext: image: ghcr.io/steadybit/extension-datadog:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension ports: - containerPort: 8090 readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -770,16 +850,26 @@ manifest should match snapshot with priority class: image: ghcr.io/steadybit/extension-datadog:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension ports: - containerPort: 8090 readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m @@ -854,16 +944,26 @@ manifest should match snapshot without TLS: image: ghcr.io/steadybit/extension-datadog:latest imagePullPolicy: Always livenessProbe: + failureThreshold: 5 httpGet: path: /health/liveness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 name: extension ports: - containerPort: 8090 readinessProbe: + failureThreshold: 3 httpGet: path: /health/readiness port: 8091 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 resources: limits: cpu: 200m diff --git a/charts/steadybit-extension-datadog/values.yaml b/charts/steadybit-extension-datadog/values.yaml index 4c035a5..1203318 100644 --- a/charts/steadybit-extension-datadog/values.yaml +++ b/charts/steadybit-extension-datadog/values.yaml @@ -55,6 +55,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