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" }}'

(https://gitlab.com/sylva-projects/sylva-core/-/blob/235d95bd6a7e045b3108be1318091314571e43eb/charts/sylva-units/values.yaml#L3817)

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)

Test coverage

Edited by Bogdan-Adrian Burciu

Merge request reports

Loading