[bitnami/argo-cd] feat: Add missing health probes (#21642)

Signed-off-by: Javier Salmeron Garcia <jsalmeron@vmware.com>
Signed-off-by: Javier J. Salmerón-García <jsalmeron@vmware.com>
This commit is contained in:
Javier J. Salmerón-García
2024-01-10 11:21:16 +01:00
committed by GitHub
parent 5684474c0a
commit 649b712162
6 changed files with 242 additions and 3 deletions

View File

@@ -39,4 +39,4 @@ maintainers:
name: argo-cd
sources:
- https://github.com/bitnami/charts/tree/main/bitnami/argo-cd
version: 5.2.12
version: 5.3.0

View File

@@ -384,6 +384,27 @@ The command removes all the Kubernetes components associated with the chart and
| `notifications.extraEnvVars` | Array with extra environment variables to add to Argo CD notifications controller nodes | `[]` |
| `notifications.extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for Argo CD notifications controller nodes | `""` |
| `notifications.extraEnvVarsSecret` | Name of existing Secret containing extra env vars for Argo CD notifications controller nodes | `""` |
| `notifications.startupProbe.enabled` | Enable startupProbe on Notification nodes | `false` |
| `notifications.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `10` |
| `notifications.startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
| `notifications.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `1` |
| `notifications.startupProbe.failureThreshold` | Failure threshold for startupProbe | `3` |
| `notifications.startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
| `notifications.livenessProbe.enabled` | Enable livenessProbe on Notification nodes | `true` |
| `notifications.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `10` |
| `notifications.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
| `notifications.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `1` |
| `notifications.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` |
| `notifications.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
| `notifications.readinessProbe.enabled` | Enable readinessProbe on Notification nodes | `true` |
| `notifications.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `10` |
| `notifications.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
| `notifications.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` |
| `notifications.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` |
| `notifications.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
| `notifications.customStartupProbe` | Custom startupProbe that overrides the default one | `{}` |
| `notifications.customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` |
| `notifications.customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` |
| `notifications.webhook.ingress.enabled` | Enable an ingress resource for Webhooks | `false` |
| `notifications.webhook.ingress.annotations` | Additional ingress annotations | `{}` |
| `notifications.webhook.ingress.labels` | Additional ingress labels | `{}` |
@@ -419,6 +440,28 @@ The command removes all the Kubernetes components associated with the chart and
| `notifications.bots.slack.nodeAffinityPreset.type` | Node affinity preset type. Ignored if `notifications.bots.slack.affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `notifications.bots.slack.nodeAffinityPreset.key` | Node label key to match. Ignored if `notifications.bots.slack.affinity` is set | `""` |
| `notifications.bots.slack.nodeAffinityPreset.values` | Node label values to match. Ignored if `notifications.bots.slack.affinity` is set | `[]` |
| `notifications.bots.slack.containerPorts.metrics` | Slack Bot controller metrics port number | `9001` |
| `notifications.bots.slack.startupProbe.enabled` | Enable startupProbe on Slack Bot nodes | `false` |
| `notifications.bots.slack.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `10` |
| `notifications.bots.slack.startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
| `notifications.bots.slack.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `1` |
| `notifications.bots.slack.startupProbe.failureThreshold` | Failure threshold for startupProbe | `3` |
| `notifications.bots.slack.startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
| `notifications.bots.slack.livenessProbe.enabled` | Enable livenessProbe on Slack Bot nodes | `true` |
| `notifications.bots.slack.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `10` |
| `notifications.bots.slack.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
| `notifications.bots.slack.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `1` |
| `notifications.bots.slack.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` |
| `notifications.bots.slack.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
| `notifications.bots.slack.readinessProbe.enabled` | Enable readinessProbe on Slack Bot nodes | `true` |
| `notifications.bots.slack.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `10` |
| `notifications.bots.slack.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
| `notifications.bots.slack.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` |
| `notifications.bots.slack.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` |
| `notifications.bots.slack.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
| `notifications.bots.slack.customStartupProbe` | Custom startupProbe that overrides the default one | `{}` |
| `notifications.bots.slack.customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` |
| `notifications.bots.slack.customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` |
| `notifications.bots.slack.affinity` | Affinity for Argo CD Slack bot pods assignment | `{}` |
| `notifications.bots.slack.podAnnotations` | Annotations for Argo CD Slack bot pods | `{}` |
| `notifications.bots.slack.podLabels` | Extra labels for Argo CD Slack bot pods | `{}` |

View File

@@ -18,7 +18,7 @@ spec:
replicas: 1
strategy:
type: Recreate
{{- $podLabels := include "common.tplvalues.merge" ( dict "values" ( list .Values.bots.slack.podLabels .Values.commonLabels ) "context" . ) }}
{{- $podLabels := include "common.tplvalues.merge" ( dict "values" ( list .Values.notifications.bots.slack.podLabels .Values.commonLabels ) "context" . ) }}
selector:
matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 6 }}
app.kubernetes.io/component: notifications-slack-bot
@@ -65,6 +65,8 @@ spec:
args:
- argocd-notifications
- bot
- --metrics-port
- {{ .Values.notifications.bots.slack.containerPorts.metrics | quote }}
{{- if .Values.notifications.bots.slack.extraArgs }}
{{- include "common.tplvalues.render" (dict "value" .Values.notifications.bots.slack.extraArgs "context" $) | nindent 12 }}
{{- end }}
@@ -86,6 +88,48 @@ spec:
- name: http
containerPort: 8080
protocol: TCP
- name: metrics
containerPort: {{ .Values.notifications.bots.slack.containerPorts.metrics }}
protocol: TCP
{{- if .Values.notifications.bots.slack.customLivenessProbe }}
livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.notifications.bots.slack.customLivenessProbe "context" $) | nindent 12 }}
{{- else if .Values.notifications.bots.slack.livenessProbe.enabled }}
livenessProbe:
httpGet:
port: metrics
path: /metrics
initialDelaySeconds: {{ .Values.notifications.bots.slack.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.notifications.bots.slack.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.notifications.bots.slack.livenessProbe.timeoutSeconds }}
successThreshold: {{ .Values.notifications.bots.slack.livenessProbe.successThreshold }}
failureThreshold: {{ .Values.notifications.bots.slack.livenessProbe.failureThreshold }}
{{- end }}
{{- if .Values.notifications.bots.slack.customReadinessProbe }}
readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.notifications.bots.slack.customReadinessProbe "context" $) | nindent 12 }}
{{- else if .Values.notifications.bots.slack.readinessProbe.enabled }}
readinessProbe:
httpGet:
port: metrics
path: /metrics
initialDelaySeconds: {{ .Values.notifications.bots.slack.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.notifications.bots.slack.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.notifications.bots.slack.readinessProbe.timeoutSeconds }}
successThreshold: {{ .Values.notifications.bots.slack.readinessProbe.successThreshold }}
failureThreshold: {{ .Values.notifications.bots.slack.readinessProbe.failureThreshold }}
{{- end }}
{{- if .Values.notifications.bots.slack.customStartupProbe }}
startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.notifications.bots.slack.customStartupProbe "context" $) | nindent 12 }}
{{- else if .Values.notifications.bots.slack.startupProbe.enabled }}
startupProbe:
httpGet:
port: metrics
path: /metrics
initialDelaySeconds: {{ .Values.notifications.bots.slack.startupProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.notifications.bots.slack.startupProbe.periodSeconds }}
timeoutSeconds: {{ .Values.notifications.bots.slack.startupProbe.timeoutSeconds }}
successThreshold: {{ .Values.notifications.bots.slack.startupProbe.successThreshold }}
failureThreshold: {{ .Values.notifications.bots.slack.startupProbe.failureThreshold }}
{{- end }}
{{- if .Values.notifications.bots.slack.resources }}
resources: {{- toYaml .Values.notifications.bots.slack.resources | nindent 12 }}
{{- end }}

View File

@@ -47,7 +47,7 @@ spec:
{{- if .Values.notifications.bots.slack.service.extraPorts }}
{{- include "common.tplvalues.render" (dict "value" .Values.notifications.bots.slack.service.extraPorts "context" $) | nindent 4 }}
{{- end }}
{{- $podLabels := include "common.tplvalues.merge" ( dict "values" ( list .Values.bots.slack.podLabels .Values.commonLabels ) "context" . ) }}
{{- $podLabels := include "common.tplvalues.merge" ( dict "values" ( list .Values.notifications.bots.slack.podLabels .Values.commonLabels ) "context" . ) }}
selector: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 4 }}
app.kubernetes.io/component: notifications-slack-bot
{{ end }}

View File

@@ -93,6 +93,45 @@ spec:
- name: metrics
containerPort: {{ .Values.notifications.containerPorts.metrics }}
protocol: TCP
{{- if .Values.notifications.customLivenessProbe }}
livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.notifications.customLivenessProbe "context" $) | nindent 12 }}
{{- else if .Values.notifications.livenessProbe.enabled }}
livenessProbe:
httpGet:
port: metrics
path: /metrics
initialDelaySeconds: {{ .Values.notifications.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.notifications.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.notifications.livenessProbe.timeoutSeconds }}
successThreshold: {{ .Values.notifications.livenessProbe.successThreshold }}
failureThreshold: {{ .Values.notifications.livenessProbe.failureThreshold }}
{{- end }}
{{- if .Values.notifications.customReadinessProbe }}
readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.notifications.customReadinessProbe "context" $) | nindent 12 }}
{{- else if .Values.notifications.readinessProbe.enabled }}
readinessProbe:
httpGet:
port: metrics
path: /metrics
initialDelaySeconds: {{ .Values.notifications.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.notifications.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.notifications.readinessProbe.timeoutSeconds }}
successThreshold: {{ .Values.notifications.readinessProbe.successThreshold }}
failureThreshold: {{ .Values.notifications.readinessProbe.failureThreshold }}
{{- end }}
{{- if .Values.notifications.customStartupProbe }}
startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.notifications.customStartupProbe "context" $) | nindent 12 }}
{{- else if .Values.notifications.startupProbe.enabled }}
startupProbe:
httpGet:
path: /metrics
port: metrics
initialDelaySeconds: {{ .Values.notifications.startupProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.notifications.startupProbe.periodSeconds }}
timeoutSeconds: {{ .Values.notifications.startupProbe.timeoutSeconds }}
successThreshold: {{ .Values.notifications.startupProbe.successThreshold }}
failureThreshold: {{ .Values.notifications.startupProbe.failureThreshold }}
{{- end }}
{{- if .Values.notifications.resources }}
resources: {{- toYaml .Values.notifications.resources | nindent 12 }}
{{- end }}

View File

@@ -1270,6 +1270,59 @@ notifications:
## @param notifications.extraEnvVarsSecret Name of existing Secret containing extra env vars for Argo CD notifications controller nodes
##
extraEnvVarsSecret: ""
## Configure extra options for Notification containers' liveness and readiness probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
## @param notifications.startupProbe.enabled Enable startupProbe on Notification nodes
## @param notifications.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
## @param notifications.startupProbe.periodSeconds Period seconds for startupProbe
## @param notifications.startupProbe.timeoutSeconds Timeout seconds for startupProbe
## @param notifications.startupProbe.failureThreshold Failure threshold for startupProbe
## @param notifications.startupProbe.successThreshold Success threshold for startupProbe
##
startupProbe:
enabled: false
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
successThreshold: 1
## @param notifications.livenessProbe.enabled Enable livenessProbe on Notification nodes
## @param notifications.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
## @param notifications.livenessProbe.periodSeconds Period seconds for livenessProbe
## @param notifications.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
## @param notifications.livenessProbe.failureThreshold Failure threshold for livenessProbe
## @param notifications.livenessProbe.successThreshold Success threshold for livenessProbe
##
livenessProbe:
enabled: true
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
successThreshold: 1
## @param notifications.readinessProbe.enabled Enable readinessProbe on Notification nodes
## @param notifications.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
## @param notifications.readinessProbe.periodSeconds Period seconds for readinessProbe
## @param notifications.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
## @param notifications.readinessProbe.failureThreshold Failure threshold for readinessProbe
## @param notifications.readinessProbe.successThreshold Success threshold for readinessProbe
##
readinessProbe:
enabled: true
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
successThreshold: 1
## @param notifications.customStartupProbe Custom startupProbe that overrides the default one
##
customStartupProbe: {}
## @param notifications.customLivenessProbe Custom livenessProbe that overrides the default one
##
customLivenessProbe: {}
## @param notifications.customReadinessProbe Custom readinessProbe that overrides the default one
##
customReadinessProbe: {}
## Webhook for the Git Generator
## Ref: https://argocd-notifications.readthedocs.io/en/master/Generators-Git/#webhook-configuration)
##
@@ -1443,6 +1496,66 @@ notifications:
## - e2e-az2
##
values: []
## Argo CD Slack Bot controller ports
## @param notifications.bots.slack.containerPorts.metrics Slack Bot controller metrics port number
##
containerPorts:
metrics: 9001
## Configure extra options for Slack Bot containers' liveness and readiness probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
## @param notifications.bots.slack.startupProbe.enabled Enable startupProbe on Slack Bot nodes
## @param notifications.bots.slack.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
## @param notifications.bots.slack.startupProbe.periodSeconds Period seconds for startupProbe
## @param notifications.bots.slack.startupProbe.timeoutSeconds Timeout seconds for startupProbe
## @param notifications.bots.slack.startupProbe.failureThreshold Failure threshold for startupProbe
## @param notifications.bots.slack.startupProbe.successThreshold Success threshold for startupProbe
##
startupProbe:
enabled: false
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
successThreshold: 1
## @param notifications.bots.slack.livenessProbe.enabled Enable livenessProbe on Slack Bot nodes
## @param notifications.bots.slack.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
## @param notifications.bots.slack.livenessProbe.periodSeconds Period seconds for livenessProbe
## @param notifications.bots.slack.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
## @param notifications.bots.slack.livenessProbe.failureThreshold Failure threshold for livenessProbe
## @param notifications.bots.slack.livenessProbe.successThreshold Success threshold for livenessProbe
##
livenessProbe:
enabled: true
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
successThreshold: 1
## @param notifications.bots.slack.readinessProbe.enabled Enable readinessProbe on Slack Bot nodes
## @param notifications.bots.slack.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
## @param notifications.bots.slack.readinessProbe.periodSeconds Period seconds for readinessProbe
## @param notifications.bots.slack.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
## @param notifications.bots.slack.readinessProbe.failureThreshold Failure threshold for readinessProbe
## @param notifications.bots.slack.readinessProbe.successThreshold Success threshold for readinessProbe
##
readinessProbe:
enabled: true
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
successThreshold: 1
## @param notifications.bots.slack.customStartupProbe Custom startupProbe that overrides the default one
##
customStartupProbe: {}
## @param notifications.bots.slack.customLivenessProbe Custom livenessProbe that overrides the default one
##
customLivenessProbe: {}
## @param notifications.bots.slack.customReadinessProbe Custom readinessProbe that overrides the default one
##
customReadinessProbe: {}
## @param notifications.bots.slack.affinity Affinity for Argo CD Slack bot pods assignment
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
## NOTE: `notifications.bots.slack.podAffinityPreset`, `notifications.bots.slack.podAntiAffinityPreset`, and `notifications.bots.slack.nodeAffinityPreset` will be ignored when it's set