Fix probe definition overrides (#717)
### Description of the change This fixes an issue when trying to apply a custom probe that is not `tcpSocket`. ### Benefits Custom probes 🥳 ### Applicable issues - Fixes #694 ### Checklist - [x] Templating unittests are added Reviewed-on: https://gitea.com/gitea/helm-chart/pulls/717 Co-authored-by: justusbunsi <sk.bunsenbrenner@gmail.com> Co-committed-by: justusbunsi <sk.bunsenbrenner@gmail.com>
This commit is contained in:
parent
7c4d6c3797
commit
478af4e381
@ -408,3 +408,21 @@ https
|
|||||||
{{ printf "gitea.admin.passwordMode must be set to one of 'keepUpdated', 'initialOnlyNoReset', or 'initialOnlyRequireReset'. Received: '%s'" .Values.gitea.admin.passwordMode | fail }}
|
{{ printf "gitea.admin.passwordMode must be set to one of 'keepUpdated', 'initialOnlyNoReset', or 'initialOnlyRequireReset'. Received: '%s'" .Values.gitea.admin.passwordMode | fail }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/* Create a functioning probe object for rendering. Given argument must be either a livenessProbe, readinessProbe, or startupProbe */}}
|
||||||
|
{{- define "gitea.deployment.probe" -}}
|
||||||
|
{{- $probe := unset . "enabled" -}}
|
||||||
|
{{- $probeKeys := keys $probe -}}
|
||||||
|
{{- $containsCustomMethod := false -}}
|
||||||
|
{{- $chartDefaultMethod := "tcpSocket" -}}
|
||||||
|
{{- $nonChartDefaultMethods := list "exec" "httpGet" "grpc" -}}
|
||||||
|
{{- range $probeKeys -}}
|
||||||
|
{{- if has . $nonChartDefaultMethods -}}
|
||||||
|
{{- $containsCustomMethod = true -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if $containsCustomMethod -}}
|
||||||
|
{{- $probe = unset . $chartDefaultMethod -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- toYaml $probe -}}
|
||||||
|
{{- end -}}
|
||||||
|
@ -312,15 +312,15 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.gitea.livenessProbe.enabled }}
|
{{- if .Values.gitea.livenessProbe.enabled }}
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
{{- toYaml (omit .Values.gitea.livenessProbe "enabled") | nindent 12 }}
|
{{- include "gitea.deployment.probe" .Values.gitea.livenessProbe | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.gitea.readinessProbe.enabled }}
|
{{- if .Values.gitea.readinessProbe.enabled }}
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
{{- toYaml (omit .Values.gitea.readinessProbe "enabled") | nindent 12 }}
|
{{- include "gitea.deployment.probe" .Values.gitea.readinessProbe | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.gitea.startupProbe.enabled }}
|
{{- if .Values.gitea.startupProbe.enabled }}
|
||||||
startupProbe:
|
startupProbe:
|
||||||
{{- toYaml (omit .Values.gitea.startupProbe "enabled") | nindent 12 }}
|
{{- include "gitea.deployment.probe" .Values.gitea.startupProbe | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
{{- toYaml .Values.resources | nindent 12 }}
|
{{- toYaml .Values.resources | nindent 12 }}
|
||||||
|
188
unittests/deployment/probes.yaml
Normal file
188
unittests/deployment/probes.yaml
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
suite: deployment template (probes)
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/deployment.yaml
|
||||||
|
- templates/gitea/config.yaml
|
||||||
|
tests:
|
||||||
|
- it: renders default liveness probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].livenessProbe.enabled
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].livenessProbe
|
||||||
|
content:
|
||||||
|
failureThreshold: 10
|
||||||
|
initialDelaySeconds: 200
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
tcpSocket:
|
||||||
|
port: http
|
||||||
|
timeoutSeconds: 1
|
||||||
|
- it: renders default readiness probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].readinessProbe.enabled
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].readinessProbe
|
||||||
|
content:
|
||||||
|
failureThreshold: 3
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
tcpSocket:
|
||||||
|
port: http
|
||||||
|
timeoutSeconds: 1
|
||||||
|
- it: does not render a default startup probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].startupProbe
|
||||||
|
- it: allows enabling a startup probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea.startupProbe.enabled: true
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].startupProbe.enabled
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].startupProbe
|
||||||
|
content:
|
||||||
|
failureThreshold: 10
|
||||||
|
initialDelaySeconds: 60
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
tcpSocket:
|
||||||
|
port: http
|
||||||
|
timeoutSeconds: 1
|
||||||
|
|
||||||
|
- it: allows overwriting the default port of the liveness probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea:
|
||||||
|
livenessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: my-port
|
||||||
|
asserts:
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].livenessProbe
|
||||||
|
content:
|
||||||
|
tcpSocket:
|
||||||
|
port: my-port
|
||||||
|
|
||||||
|
- it: allows overwriting the default port of the readiness probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea:
|
||||||
|
readinessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: my-port
|
||||||
|
asserts:
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].readinessProbe
|
||||||
|
content:
|
||||||
|
tcpSocket:
|
||||||
|
port: my-port
|
||||||
|
|
||||||
|
- it: allows overwriting the default port of the startup probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea:
|
||||||
|
startupProbe:
|
||||||
|
enabled: true
|
||||||
|
tcpSocket:
|
||||||
|
port: my-port
|
||||||
|
asserts:
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].startupProbe
|
||||||
|
content:
|
||||||
|
tcpSocket:
|
||||||
|
port: my-port
|
||||||
|
|
||||||
|
- it: allows using a non-default method as liveness probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea:
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /api/healthz
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 13371
|
||||||
|
timeoutSeconds: 13372
|
||||||
|
periodSeconds: 13373
|
||||||
|
successThreshold: 13374
|
||||||
|
failureThreshold: 13375
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].livenessProbe.tcpSocket
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].livenessProbe
|
||||||
|
content:
|
||||||
|
failureThreshold: 13375
|
||||||
|
initialDelaySeconds: 13371
|
||||||
|
periodSeconds: 13373
|
||||||
|
successThreshold: 13374
|
||||||
|
httpGet:
|
||||||
|
path: /api/healthz
|
||||||
|
port: http
|
||||||
|
timeoutSeconds: 13372
|
||||||
|
|
||||||
|
- it: allows using a non-default method as readiness probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea:
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /api/healthz
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 13371
|
||||||
|
timeoutSeconds: 13372
|
||||||
|
periodSeconds: 13373
|
||||||
|
successThreshold: 13374
|
||||||
|
failureThreshold: 13375
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].readinessProbe.tcpSocket
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].readinessProbe
|
||||||
|
content:
|
||||||
|
failureThreshold: 13375
|
||||||
|
initialDelaySeconds: 13371
|
||||||
|
periodSeconds: 13373
|
||||||
|
successThreshold: 13374
|
||||||
|
httpGet:
|
||||||
|
path: /api/healthz
|
||||||
|
port: http
|
||||||
|
timeoutSeconds: 13372
|
||||||
|
|
||||||
|
- it: allows using a non-default method as startup probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea:
|
||||||
|
startupProbe:
|
||||||
|
enabled: true
|
||||||
|
httpGet:
|
||||||
|
path: /api/healthz
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 13371
|
||||||
|
timeoutSeconds: 13372
|
||||||
|
periodSeconds: 13373
|
||||||
|
successThreshold: 13374
|
||||||
|
failureThreshold: 13375
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].startupProbe.tcpSocket
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].startupProbe
|
||||||
|
content:
|
||||||
|
failureThreshold: 13375
|
||||||
|
initialDelaySeconds: 13371
|
||||||
|
periodSeconds: 13373
|
||||||
|
successThreshold: 13374
|
||||||
|
httpGet:
|
||||||
|
path: /api/healthz
|
||||||
|
port: http
|
||||||
|
timeoutSeconds: 13372
|
Loading…
x
Reference in New Issue
Block a user