Avoid integer 0 for rancher charts value, evaluated to false
What does this MR do and why?
Addresses observations in #1568 (comment 2086120533).
Have quoted value returned for monitoring.helmrelease_spec.values.alertmanager.podDisruptionBudget.minAvailable value:
podDisruptionBudget:
enabled: true
minAvailable: "0"
instead of
podDisruptionBudget:
enabled: true
minAvailable: 0
to be able to pass it explicitly as string to the chart for PDB template rendering https://github.com/rancher/charts/blob/dev-v2.9/charts/rancher-monitoring/103.1.1+up45.31.1/templates/alertmanager/podDisruptionBudget.yaml#L11-L13, as it fails otherwise with integer 0 considered false (behavior reported in the Helm community in https://github.com/helm/helm/issues/3164):
[git:dev-v2.9]root@caasdev:103.1.1+up45.31.1# yq .alertmanager.podDisruptionBudget ../test-sylva-ci-values.yaml
enabled: true
minAvailable: "0"
[git:dev-v2.9]root@caasdev:103.1.1+up45.31.1# helm template . --values ../test-sylva-ci-values.yaml -s templates/alertmanager/podDisruptionBudget.yaml
---
# Source: rancher-monitoring/templates/alertmanager/podDisruptionBudget.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: release-name-rancher-monit-alertmanager
namespace: cattle-monitoring-system
labels:
app: rancher-monitoring-alertmanager
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
app.kubernetes.io/version: "103.1.1_up45.31.1"
app.kubernetes.io/part-of: rancher-monitoring
chart: rancher-monitoring-103.1.1_up45.31.1
release: "release-name"
heritage: "Helm"
spec:
minAvailable: 0
selector:
matchLabels:
app.kubernetes.io/name: alertmanager
alertmanager: release-name-rancher-monit-alertmanager
[git:dev-v2.9]root@caasdev:103.1.1+up45.31.1# vim ../test-sylva-ci-values.yaml
[git:dev-v2.9]root@caasdev:103.1.1+up45.31.1# yq .alertmanager.podDisruptionBudget ../test-sylva-ci-values.yaml
enabled: true
minAvailable: 0
[git:dev-v2.9]root@caasdev:103.1.1+up45.31.1# helm template . --values ../test-sylva-ci-values.yaml -s templates/alertmanager/podDisruptionBudget.yaml
---
# Source: rancher-monitoring/templates/alertmanager/podDisruptionBudget.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: release-name-rancher-monit-alertmanager
namespace: cattle-monitoring-system
labels:
app: rancher-monitoring-alertmanager
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
app.kubernetes.io/version: "103.1.1_up45.31.1"
app.kubernetes.io/part-of: rancher-monitoring
chart: rancher-monitoring-103.1.1_up45.31.1
release: "release-name"
heritage: "Helm"
spec:
selector:
matchLabels:
app.kubernetes.io/name: alertmanager
alertmanager: release-name-rancher-monit-alertmanager
[git:dev-v2.9]root@caasdev:103.1.1+up45.31.1#
The other use of | include "preserve-type" for such PDB computation is for
alertmanager-jiralert:
helmrelease_spec:
targetNamespace: cattle-monitoring-system
chart:
spec:
chart: jiralert
version: 1.7.1
values:
podDisruptionBudget:
minAvailable: '{{ .Values._internal.ha_cluster.is_ha | ternary 1 0 | include "preserve-type" }}'
but that shouldn't bite us, as the upstream chart does not use the same conditional logic: https://github.com/prometheus-community/helm-charts/blob/jiralert-1.7.1/charts/jiralert/templates/pdb.yaml#L13
Related reference(s)
Closes #1568 (closed)