From ddd1ed1f9077158fc78d87c3810b1811bd7d01f1 Mon Sep 17 00:00:00 2001 From: Gulsum Atici Date: Wed, 12 Oct 2022 01:35:29 +0300 Subject: [PATCH 1/4] Adding powerdns k8s proxy charm and descriptors Signed-off-by: Gulsum Atici --- Hackfest_Demos/OSM-MR13/powerdns/README.md | 132 ++ .../powerdns/helm-chart/powerdns-5.0.0.tgz | Bin 0 -> 105652 bytes .../powerdns/helm-chart/powerdns/.helmignore | 22 + .../powerdns/helm-chart/powerdns/Chart.lock | 9 + .../powerdns/helm-chart/powerdns/Chart.yaml | 19 + .../powerdns/helm-chart/powerdns/README.md | 148 ++ .../powerdns/README_CONFIG.md.gotmpl | 9 + .../powerdns/charts/mariadb/.helmignore | 21 + .../powerdns/charts/mariadb/Chart.lock | 6 + .../powerdns/charts/mariadb/Chart.yaml | 28 + .../powerdns/charts/mariadb/README.md | 542 +++++++ .../charts/mariadb/charts/common/.helmignore | 22 + .../charts/mariadb/charts/common/Chart.yaml | 22 + .../charts/mariadb/charts/common/README.md | 347 +++++ .../charts/common/templates/_affinities.tpl | 102 ++ .../charts/common/templates/_capabilities.tpl | 139 ++ .../charts/common/templates/_errors.tpl | 23 + .../charts/common/templates/_images.tpl | 75 + .../charts/common/templates/_ingress.tpl | 68 + .../charts/common/templates/_labels.tpl | 18 + .../charts/common/templates/_names.tpl | 63 + .../charts/common/templates/_secrets.tpl | 140 ++ .../charts/common/templates/_storage.tpl | 23 + .../charts/common/templates/_tplvalues.tpl | 13 + .../charts/common/templates/_utils.tpl | 62 + .../charts/common/templates/_warnings.tpl | 14 + .../templates/validations/_cassandra.tpl | 72 + .../common/templates/validations/_mariadb.tpl | 103 ++ .../common/templates/validations/_mongodb.tpl | 108 ++ .../templates/validations/_postgresql.tpl | 129 ++ .../common/templates/validations/_redis.tpl | 76 + .../templates/validations/_validations.tpl | 46 + .../charts/mariadb/charts/common/values.yaml | 5 + ...lues-production-with-rbac-and-metrics.yaml | 33 + .../charts/mariadb/templates/NOTES.txt | 75 + .../charts/mariadb/templates/_helpers.tpl | 149 ++ .../charts/mariadb/templates/extra-list.yaml | 4 + .../templates/networkpolicy-egress.yaml | 32 + .../mariadb/templates/primary/configmap.yaml | 18 + .../primary/initialization-configmap.yaml | 11 + .../primary/networkpolicy-ingress.yaml | 55 + .../charts/mariadb/templates/primary/pdb.yaml | 25 + .../templates/primary/statefulset.yaml | 386 +++++ .../charts/mariadb/templates/primary/svc.yaml | 61 + .../mariadb/templates/prometheusrules.yaml | 24 + .../charts/mariadb/templates/role.yaml | 21 + .../charts/mariadb/templates/rolebinding.yaml | 21 + .../templates/secondary/configmap.yaml | 18 + .../secondary/networkpolicy-ingress.yaml | 48 + .../mariadb/templates/secondary/pdb.yaml | 25 + .../templates/secondary/statefulset.yaml | 357 +++++ .../mariadb/templates/secondary/svc.yaml | 63 + .../charts/mariadb/templates/secrets.yaml | 35 + .../mariadb/templates/serviceaccount.yaml | 19 + .../mariadb/templates/servicemonitor.yaml | 48 + .../charts/mariadb/values.schema.json | 176 +++ .../powerdns/charts/mariadb/values.yaml | 1251 +++++++++++++++++ .../powerdns/charts/postgresql/.helmignore | 21 + .../powerdns/charts/postgresql/Chart.lock | 6 + .../powerdns/charts/postgresql/Chart.yaml | 28 + .../powerdns/charts/postgresql/README.md | 819 +++++++++++ .../postgresql/charts/common/.helmignore | 22 + .../postgresql/charts/common/Chart.yaml | 22 + .../charts/postgresql/charts/common/README.md | 328 +++++ .../charts/common/templates/_affinities.tpl | 102 ++ .../charts/common/templates/_capabilities.tpl | 128 ++ .../charts/common/templates/_errors.tpl | 23 + .../charts/common/templates/_images.tpl | 75 + .../charts/common/templates/_ingress.tpl | 55 + .../charts/common/templates/_labels.tpl | 18 + .../charts/common/templates/_names.tpl | 52 + .../charts/common/templates/_secrets.tpl | 129 ++ .../charts/common/templates/_storage.tpl | 23 + .../charts/common/templates/_tplvalues.tpl | 13 + .../charts/common/templates/_utils.tpl | 62 + .../charts/common/templates/_warnings.tpl | 14 + .../templates/validations/_cassandra.tpl | 72 + .../common/templates/validations/_mariadb.tpl | 103 ++ .../common/templates/validations/_mongodb.tpl | 108 ++ .../templates/validations/_postgresql.tpl | 129 ++ .../common/templates/validations/_redis.tpl | 76 + .../templates/validations/_validations.tpl | 46 + .../postgresql/charts/common/values.yaml | 5 + .../postgresql/ci/commonAnnotations.yaml | 3 + .../charts/postgresql/ci/default-values.yaml | 1 + .../ci/shmvolume-disabled-values.yaml | 2 + .../charts/postgresql/files/README.md | 1 + .../charts/postgresql/files/conf.d/README.md | 4 + .../docker-entrypoint-initdb.d/README.md | 3 + .../charts/postgresql/templates/NOTES.txt | 89 ++ .../charts/postgresql/templates/_helpers.tpl | 361 +++++ .../postgresql/templates/configmap.yaml | 34 + .../templates/extended-config-configmap.yaml | 29 + .../postgresql/templates/extra-list.yaml | 4 + .../templates/initialization-configmap.yaml | 26 + .../templates/metrics-configmap.yaml | 17 + .../postgresql/templates/metrics-svc.yaml | 29 + .../postgresql/templates/networkpolicy.yaml | 42 + .../templates/podsecuritypolicy.yaml | 42 + .../postgresql/templates/prometheusrule.yaml | 26 + .../charts/postgresql/templates/role.yaml | 24 + .../postgresql/templates/rolebinding.yaml | 23 + .../charts/postgresql/templates/secrets.yaml | 27 + .../postgresql/templates/serviceaccount.yaml | 15 + .../postgresql/templates/servicemonitor.yaml | 42 + .../templates/statefulset-readreplicas.yaml | 436 ++++++ .../postgresql/templates/statefulset.yaml | 642 +++++++++ .../postgresql/templates/svc-headless.yaml | 31 + .../postgresql/templates/svc-read-set.yaml | 42 + .../charts/postgresql/templates/svc-read.yaml | 47 + .../charts/postgresql/templates/svc.yaml | 45 + .../postgresql/templates/tls-secrets.yaml | 25 + .../charts/postgresql/values.schema.json | 103 ++ .../powerdns/charts/postgresql/values.yaml | 1001 +++++++++++++ .../helm-chart/powerdns/powerdns-5.0.0.tgz | Bin 0 -> 322335 bytes .../helm-chart/powerdns/templates/NOTES.txt | 15 + .../powerdns/templates/_helpers.tpl | 60 + .../powerdns/templates/configmap.yaml | 31 + .../powerdns/templates/deployment.yaml | 155 ++ .../helm-chart/powerdns/templates/secret.yaml | 22 + .../powerdns/templates/service.yaml | 91 ++ .../powerdns/templates/serviceaccount.yaml | 8 + .../powerdns/helm-chart/powerdns/values.yaml | 139 ++ .../charms/ops/powerdns-operator/.gitignore | 7 + .../charms/ops/powerdns-operator/.jujuignore | 3 + .../charms/ops/powerdns-operator/LICENSE | 202 +++ .../charms/ops/powerdns-operator/README.md | 5 + .../charms/ops/powerdns-operator/actions.yaml | 48 + .../ops/powerdns-operator/charmcraft.yaml | 10 + .../charms/ops/powerdns-operator/config.yaml | 13 + .../charms/ops/powerdns-operator/coverage.xml | 155 ++ .../ops/powerdns-operator/metadata.yaml | 12 + .../ops/powerdns-operator/pyproject.toml | 56 + .../powerdns-operator/requirements-test.txt | 1 + .../ops/powerdns-operator/requirements.txt | 2 + .../charms/ops/powerdns-operator/src/charm.py | 147 ++ .../ops/powerdns-operator/src/powerdns.py | 170 +++ .../ops/powerdns-operator/tests/test_charm.py | 23 + .../charms/ops/powerdns-operator/tox.ini | 95 ++ ...powerdns-operator_ubuntu-20.04-amd64.charm | Bin 0 -> 2923443 bytes .../powerdns/powerdns_knf/powerdns_vnfd.yaml | 65 + .../powerdns/powerdns_ns/powerdns_nsd.yaml | 22 + 142 files changed, 12813 insertions(+) create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/README.md create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns-5.0.0.tgz create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/.helmignore create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/Chart.lock create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/Chart.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/README.md create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/README_CONFIG.md.gotmpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/.helmignore create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/Chart.lock create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/Chart.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/README.md create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/.helmignore create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/Chart.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/README.md create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_affinities.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_capabilities.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_errors.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_images.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_ingress.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_labels.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_names.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_secrets.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_storage.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_tplvalues.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_utils.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_warnings.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_cassandra.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_mariadb.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_mongodb.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_postgresql.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_redis.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_validations.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/values.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/ci/values-production-with-rbac-and-metrics.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/NOTES.txt create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/_helpers.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/extra-list.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/networkpolicy-egress.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/configmap.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/initialization-configmap.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/networkpolicy-ingress.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/pdb.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/statefulset.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/svc.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/prometheusrules.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/role.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/rolebinding.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/configmap.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/networkpolicy-ingress.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/pdb.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/statefulset.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/svc.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secrets.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/serviceaccount.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/servicemonitor.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/values.schema.json create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/values.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/.helmignore create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/Chart.lock create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/Chart.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/README.md create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/.helmignore create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/Chart.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/README.md create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_affinities.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_capabilities.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_errors.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_images.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_ingress.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_labels.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_names.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_secrets.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_storage.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_tplvalues.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_utils.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_warnings.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_cassandra.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_mariadb.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_mongodb.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_postgresql.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_redis.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_validations.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/values.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/ci/commonAnnotations.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/ci/default-values.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/ci/shmvolume-disabled-values.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/files/README.md create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/files/conf.d/README.md create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/files/docker-entrypoint-initdb.d/README.md create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/NOTES.txt create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/_helpers.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/configmap.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/extended-config-configmap.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/extra-list.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/initialization-configmap.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/metrics-configmap.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/metrics-svc.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/networkpolicy.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/podsecuritypolicy.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/prometheusrule.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/role.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/rolebinding.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/secrets.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/serviceaccount.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/servicemonitor.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/statefulset-readreplicas.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/statefulset.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc-headless.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc-read-set.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc-read.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/tls-secrets.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/values.schema.json create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/values.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/powerdns-5.0.0.tgz create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/NOTES.txt create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/_helpers.tpl create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/configmap.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/deployment.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/secret.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/service.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/serviceaccount.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/values.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/.gitignore create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/.jujuignore create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/LICENSE create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/README.md create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/actions.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/charmcraft.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/config.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/coverage.xml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/metadata.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/pyproject.toml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/requirements-test.txt create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/requirements.txt create mode 100755 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/src/charm.py create mode 100755 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/src/powerdns.py create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/tests/test_charm.py create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/tox.ini create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/powerdns-operator_ubuntu-20.04-amd64.charm create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/powerdns_vnfd.yaml create mode 100644 Hackfest_Demos/OSM-MR13/powerdns/powerdns_ns/powerdns_nsd.yaml diff --git a/Hackfest_Demos/OSM-MR13/powerdns/README.md b/Hackfest_Demos/OSM-MR13/powerdns/README.md new file mode 100644 index 00000000..cee66c11 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/README.md @@ -0,0 +1,132 @@ +# PowerDNS NS + +Descriptors that installs a PowerDNS chart from "https://gatici.github.io/helm-repo/" repo. + +There is one VNF (powerdns_knf) with only one KDU. + +There is one NS that connects the VNF to a mgmt network + +## Download Packages + +```bash +git clone https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git +cd osm-packages/Hackfest_Demos/OSM-MR13/powerdns +``` + +## Create the VIM Account + +```bash +# This is dummy vim account +export VIM_ACCOUNT=k8s-vim +osm vim-create --name $VIM_ACCOUNT \ + --account_type dummy \ + --user dummy \ + --password dummy \ + --auth_url "http://dummy" \ + --tenant dummy +``` + +## Add K8s Cluster + +```bash +# kubeconfig.yaml exists in the HOME directory +export k8s_net= # osm-ext +osm k8scluster-add --creds ~/kubeconfig.yaml \ + --vim k8s-vim \ + --k8s-nets "{k8s_net: $k8s_net}" \ + --version 1.24 \ + k8s-cluster +``` + +## Add Helm Repository + +```bash +osm repo-add --type helm-chart --description "Repository for Powerdns helm Chart" osm-helm https://gatici.github.io/helm-repo/ +``` + +## Build the charm + +```bash +# Install charmcraft +sudo snap install charmcraft --classic +pushd powerdns_knf/charms/ops/powerdns-operator +# Pack charm +charmcraft pack +# Copy charm under VNFD/charms folder +cp powerdns-operator_ubuntu-20.04-amd64.charm ../../ +popd +``` + +## Onboarding and instantiation + +```bash +export VNF_NAME=powerdns +export KDU_NAME=powerdns +# Define the NS name +export NS_NAME= +``` + +```bash +osm nfpkg-create powerdns_knf +osm nspkg-create powerdns_ns +osm ns-create --ns_name $NS_NAME --nsd_name powerdns_ns --vim_account $VIM_ACCOUNT --config "{vld: [ {name: mgmtnet, vim-network-name: $k8s_net}]}" +# Check NS status +osm ns list +``` + +## Test Day2 Actions: add-zone, add-domain + +```bash +# Add Zone Action +# Define zone such as "example.org." +ZONE= +OP_ID=`osm ns-action --action_name add-zone --vnf_name $VNF_NAME --kdu_name $KDU_NAME --params "{"zone_name": $ZONE}" $NS_NAME` +# Check operation status +osm ns-op-show $OP_ID +# Add Domain Action +# Define domain such as "test." +DOMAIN= +# Define ip such as "192.168.2.32" +IP= +OP_ID=`osm ns-action --action_name add-domain --vnf_name $VNF_NAME --kdu_name $KDU_NAME --params "{'zone_name': $ZONE, 'subdomain': $DOMAIN, 'ip': $IP}" $NS_NAME` +# Check operation status +osm ns-op-show $OP_ID +``` + +## Testing PowerDNS server + +```bash +VNF_ID=`osm vnf-list --ns $NS_NAME | grep powerdns | awk '{print $2}'` +export DNS_IP=`osm vnf-show $VNF_ID --literal | yq -e '.kdur[0].services[] | select(.name | endswith("-tcp")) | .external_ip' | tr -d \"[]' '` +RECORD= +# Sample record: "test.example.org" +dig @${DNS_IP} +tcp $RECORD +``` + +## Test Day2 Actions: delete-domain, delete-zone + +```bash +# Delete Domain +OP_ID=`osm ns-action --action_name delete-domain --vnf_name $VNF_NAME --kdu_name $KDU_NAME --params "{'zone_name': $ZONE, 'subdomain': $DOMAIN}" $NS_NAME` +osm ns-op-show $OP_ID +dig @${DNS_IP} +tcp ${RECORD} +# Delete Zone +OP_ID=`osm ns-action --action_name delete-zone --vnf_name $KDU_NAME --kdu_name $KDU_NAME --params "{'zone_name': $ZONE}" $NS_NAME` +osm ns-op-show $OP_ID +``` + +## Upgrade Operation: Scale Out + +```bash +OP_ID=`osm ns-action --action_name upgrade --vnf_name $VNF_NAME --kdu_name $KDU_NAME --params "{'replicaCount':'3',}" $NS_NAME` +osm ns-op-show $OP_ID --literal | yq .operationState +osm vnf-show $VNF_ID --kdu $KDU_NAME | yq .config.replicaCount +``` + +## Rollback Operation: Scale In + +```bash +OP_ID=`osm ns-action --action_name rollback --vnf_name $VNF_NAME --kdu_name $KDU_NAME $NS_NAME` +osm ns-op-show $OP_ID --literal | yq .operationState +osm vnf-show $VNF_ID --kdu $KDU_NAME | yq .config.replicaCount +``` diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns-5.0.0.tgz b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns-5.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..4cae974f8164b9f0c9d69ff4b46e451849ee1750 GIT binary patch literal 105652 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 @so{}l}EH9))uu+U049>NZD&#dV$=LYSq!c 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 Iws0{30842Mj{pDw literal 0 HcmV?d00001 diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/.helmignore b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/.helmignore new file mode 100644 index 00000000..50af0317 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/.helmignore @@ -0,0 +1,22 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/Chart.lock b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/Chart.lock new file mode 100644 index 00000000..207a0020 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.16.2 +- name: mariadb + repository: https://charts.bitnami.com/bitnami + version: 10.5.1 +digest: sha256:8e15bb90e2a9a3b72069761791da93dee17fecca2fdfa74562ce2541bab15282 +generated: "2022-05-19T17:36:07.359537847Z" diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/Chart.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/Chart.yaml new file mode 100644 index 00000000..cfe12ea6 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/Chart.yaml @@ -0,0 +1,19 @@ +apiVersion: v2 +appVersion: v4.3.1 +dependencies: +- condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.16.2 +- condition: mariadb.enabled + name: mariadb + repository: https://charts.bitnami.com/bitnami + version: 10.5.1 +deprecated: true +description: PowerDNS is a DNS server, written in C++ and licensed under the GPL. It runs on most Unix derivatives. PowerDNS features a large number of different backends ranging from simple BIND style zonefiles to relational databases and load balancing/failover algorithms. A DNS recursor is provided as a separate program. +home: https://github.com/k8s-at-home/charts/tree/master/charts/stable/powerdns +icon: https://avatars.githubusercontent.com/u/1282630?s=200&v=4 +name: powerdns +sources: +- http://www.github.com/PowerDNS/ +version: 5.0.0 diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/README.md b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/README.md new file mode 100644 index 00000000..23d80ea9 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/README.md @@ -0,0 +1,148 @@ +# powerdns + +![Version: 5.0.0](https://img.shields.io/badge/Version-5.0.0-informational?style=flat-square) ![AppVersion: v4.3.1](https://img.shields.io/badge/AppVersion-v4.3.1-informational?style=flat-square) + +PowerDNS is a DNS server, written in C++ and licensed under the GPL. It runs on most Unix derivatives. PowerDNS features a large number of different backends ranging from simple BIND style zonefiles to relational databases and load balancing/failover algorithms. A DNS recursor is provided as a separate program. + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)** + +## Source Code + +* + +## Requirements + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.bitnami.com/bitnami | mariadb | 10.5.1 | +| https://charts.bitnami.com/bitnami | postgresql | 10.16.2 | + +## TL;DR + +```console +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm repo update +helm install powerdns k8s-at-home/powerdns +``` + +## Installing the Chart + +To install the chart with the release name `powerdns` + +```console +helm install powerdns k8s-at-home/powerdns +``` + +## Uninstalling the Chart + +To uninstall the `powerdns` deployment + +```console +helm uninstall powerdns +``` + +The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release. + +## Configuration + +Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common). + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install powerdns \ + --set env.TZ="America/New York" \ + k8s-at-home/powerdns +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install powerdns k8s-at-home/powerdns -f values.yaml +``` + +## Custom configuration + +N/A + +## Values + +**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common) + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| affinity | object | `{}` | | +| fullnameOverride | string | `""` | | +| image.pullPolicy | string | `"Always"` | | +| image.repository | string | `"naps/powerdns"` | | +| image.tag | string | `"4.3.1"` | | +| imagePullSecrets | list | `[]` | | +| mariadb | object | `{"architecture":"standalone","auth":{"database":"pdns","password":"pdns-pass","rootPassword":"pdnsrootpass","username":"pdns"},"enabled":false,"primary":{"persistence":{"enabled":false}}}` | ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/mariadb | +| nameOverride | string | `""` | | +| nodeSelector | object | `{}` | | +| podSecurityContext | object | `{}` | | +| postgresql | object | `{"enabled":true,"persistence":{"enabled":false},"postgresqlDatabase":"pdns","postgresqlPassword":"pdnspass","postgresqlPostgresPassword":"pdnsadminpass","postgresqlUsername":"pdns"}` | ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql | +| powerdns.additionalEnv | list | `[]` | | +| powerdns.config | object | `{}` | | +| powerdns.dnssec | bool | `true` | | +| powerdns.domain | string | `"mydomain.local"` | | +| powerdns.mysql.database | string | `"pdns"` | | +| powerdns.mysql.password | string | `"pdnspass"` | | +| powerdns.mysql.username | string | `"pdns"` | | +| powerdns.postgres.database | string | `"pdns"` | | +| powerdns.postgres.password | string | `"pdnspass"` | | +| powerdns.postgres.username | string | `"pdns"` | | +| probes.liveness.enabled | bool | `true` | | +| probes.liveness.failureThreshold | int | `5` | | +| probes.liveness.initialDelaySeconds | int | `30` | | +| probes.liveness.timeoutSeconds | int | `10` | | +| probes.readiness.enabled | bool | `true` | | +| probes.readiness.failureThreshold | int | `5` | | +| probes.readiness.initialDelaySeconds | int | `30` | | +| probes.readiness.timeoutSeconds | int | `10` | | +| probes.startup.enabled | bool | `false` | | +| probes.startup.failureThreshold | int | `30` | | +| probes.startup.periodSeconds | int | `10` | | +| replicaCount | int | `1` | | +| resources | object | `{}` | | +| securityContext | object | `{}` | | +| service.externalTrafficPolicy | string | `""` | | +| service.port | int | `53` | | +| service.type | string | `"ClusterIP"` | | +| serviceAccount.create | bool | `true` | | +| serviceAccount.name | string | `nil` | If not set and create is true, a name is generated using the fullname template | +| strategyType | string | `"Recreate"` | | +| tolerations | list | `[]` | | + +## Changelog + +### Version 5.0.0 + +#### Added + +N/A + +#### Changed + +N/A + +#### Fixed + +N/A + +### Older versions + +A historical overview of changes can be found on [ArtifactHUB](https://artifacthub.io/packages/helm/k8s-at-home/powerdns?modal=changelog) + +## Support + +- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/) +- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose) +- Ask a [question](https://github.com/k8s-at-home/organization/discussions) +- Join our [Discord](https://discord.gg/sTMX7Vh) community + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v0.1.1](https://github.com/k8s-at-home/helm-docs/releases/v0.1.1) diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/README_CONFIG.md.gotmpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/README_CONFIG.md.gotmpl new file mode 100644 index 00000000..e93d80bf --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/README_CONFIG.md.gotmpl @@ -0,0 +1,9 @@ +{{- define "custom.custom.configuration.header" -}} +## Custom configuration +{{- end -}} + +{{- define "custom.custom.configuration" -}} +{{ template "custom.custom.configuration.header" . }} + +N/A +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/.helmignore b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/.helmignore new file mode 100644 index 00000000..f0c13194 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/Chart.lock b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/Chart.lock new file mode 100644 index 00000000..ced79cbe --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://charts.bitnami.com/bitnami + version: 1.13.0 +digest: sha256:e83af41b39942278f8389623671732e624f28c6f1ad6ac2d937e210c5f354a18 +generated: "2022-03-27T01:47:43.851311689Z" diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/Chart.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/Chart.yaml new file mode 100644 index 00000000..37f69f7d --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/Chart.yaml @@ -0,0 +1,28 @@ +annotations: + category: Database +apiVersion: v2 +appVersion: 10.5.15 +dependencies: +- name: common + repository: https://charts.bitnami.com/bitnami + tags: + - bitnami-common + version: 1.x.x +description: MariaDB is an open source, community-developed SQL database server that is widely in use around the world due to its enterprise features, flexibility, and collaboration with leading tech firms. +home: https://github.com/bitnami/charts/tree/master/bitnami/mariadb +icon: https://bitnami.com/assets/stacks/mariadb/img/mariadb-stack-220x234.png +keywords: +- mariadb +- mysql +- database +- sql +- prometheus +maintainers: +- email: containers@bitnami.com + name: Bitnami +name: mariadb +sources: +- https://github.com/bitnami/bitnami-docker-mariadb +- https://github.com/prometheus/mysqld_exporter +- https://mariadb.org +version: 10.5.1 diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/README.md b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/README.md new file mode 100644 index 00000000..1ba79039 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/README.md @@ -0,0 +1,542 @@ + + +# MariaDB packaged by Bitnami + +MariaDB is an open source, community-developed SQL database server that is widely in use around the world due to its enterprise features, flexibility, and collaboration with leading tech firms. + +[Overview of MariaDB](https://mariadb.org/) + +Trademarks: This software listing is packaged by Bitnami. The respective trademarks mentioned in the offering are owned by the respective companies, and use of them does not imply any affiliation or endorsement. + +## TL;DR + +```bash +$ helm repo add bitnami https://charts.bitnami.com/bitnami +$ helm install my-release bitnami/mariadb +``` + +## Introduction + +This chart bootstraps a [MariaDB](https://github.com/bitnami/bitnami-docker-mariadb) replication cluster deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. + +MariaDB is developed as open source software and as a relational database it provides an SQL interface for accessing data. The latest versions of MariaDB also include GIS and JSON features. + +Bitnami charts can be used with [Kubeapps](https://kubeapps.com/) for deployment and management of Helm Charts in clusters. This chart has been tested to work with NGINX Ingress, cert-manager, fluentd and Prometheus on top of the [BKPR](https://kubeprod.io/). + +## Prerequisites + +- Kubernetes 1.19+ +- Helm 3.2.0+ +- PV provisioner support in the underlying infrastructure + +## Installing the Chart + +To install the chart with the release name `my-release`: + +```bash +$ helm install my-release bitnami/mariadb +``` + +The command deploys MariaDB on the Kubernetes cluster in the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation. + +> **Tip**: List all releases using `helm list` + +## Uninstalling the Chart + +To uninstall/delete the `my-release` deployment: + +```bash +$ helm delete my-release +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Parameters + +### Global parameters + +| Name | Description | Value | +| ------------------------- | ----------------------------------------------- | ----- | +| `global.imageRegistry` | Global Docker Image registry | `""` | +| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` | +| `global.storageClass` | Global storage class for dynamic provisioning | `""` | + + +### Common parameters + +| Name | Description | Value | +| ------------------------ | --------------------------------------------------------------------------------------- | --------------- | +| `kubeVersion` | Force target Kubernetes version (using Helm capabilities if not set) | `""` | +| `nameOverride` | String to partially override mariadb.fullname | `""` | +| `fullnameOverride` | String to fully override mariadb.fullname | `""` | +| `clusterDomain` | Default Kubernetes cluster domain | `cluster.local` | +| `commonAnnotations` | Common annotations to add to all MariaDB resources (sub-charts are not considered) | `{}` | +| `commonLabels` | Common labels to add to all MariaDB resources (sub-charts are not considered) | `{}` | +| `schedulerName` | Name of the scheduler (other than default) to dispatch pods | `""` | +| `extraDeploy` | Array of extra objects to deploy with the release (evaluated as a template) | `[]` | +| `diagnosticMode.enabled` | Enable diagnostic mode (all probes will be disabled and the command will be overridden) | `false` | +| `diagnosticMode.command` | Command to override all containers in the deployment | `["sleep"]` | +| `diagnosticMode.args` | Args to override all containers in the deployment | `["infinity"]` | + + +### MariaDB common parameters + +| Name | Description | Value | +| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | +| `image.registry` | MariaDB image registry | `docker.io` | +| `image.repository` | MariaDB image repository | `bitnami/mariadb` | +| `image.tag` | MariaDB image tag (immutable tags are recommended) | `10.5.15-debian-10-r51` | +| `image.pullPolicy` | MariaDB image pull policy | `IfNotPresent` | +| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` | +| `image.debug` | Specify if debug logs should be enabled | `false` | +| `architecture` | MariaDB architecture (`standalone` or `replication`) | `standalone` | +| `auth.rootPassword` | Password for the `root` user. Ignored if existing secret is provided. | `""` | +| `auth.database` | Name for a custom database to create | `my_database` | +| `auth.username` | Name for a custom user to create | `""` | +| `auth.password` | Password for the new user. Ignored if existing secret is provided | `""` | +| `auth.replicationUser` | MariaDB replication user | `replicator` | +| `auth.replicationPassword` | MariaDB replication user password. Ignored if existing secret is provided | `""` | +| `auth.existingSecret` | Use existing secret for password details (`auth.rootPassword`, `auth.password`, `auth.replicationPassword` will be ignored and picked up from this secret). The secret has to contain the keys `mariadb-root-password`, `mariadb-replication-password` and `mariadb-password` | `""` | +| `auth.forcePassword` | Force users to specify required passwords | `false` | +| `auth.usePasswordFiles` | Mount credentials as files instead of using environment variables | `false` | +| `auth.customPasswordFiles` | Use custom password files when `auth.usePasswordFiles` is set to `true`. Define path for keys `root` and `user`, also define `replicator` if `architecture` is set to `replication` | `{}` | +| `initdbScripts` | Dictionary of initdb scripts | `{}` | +| `initdbScriptsConfigMap` | ConfigMap with the initdb scripts (Note: Overrides `initdbScripts`) | `""` | + + +### MariaDB Primary parameters + +| Name | Description | Value | +| ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------- | +| `primary.command` | Override default container command on MariaDB Primary container(s) (useful when using custom images) | `[]` | +| `primary.args` | Override default container args on MariaDB Primary container(s) (useful when using custom images) | `[]` | +| `primary.lifecycleHooks` | for the MariaDB Primary container(s) to automate configuration before or after startup | `{}` | +| `primary.hostAliases` | Add deployment host aliases | `[]` | +| `primary.configuration` | MariaDB Primary configuration to be injected as ConfigMap | `""` | +| `primary.existingConfigmap` | Name of existing ConfigMap with MariaDB Primary configuration. | `""` | +| `primary.updateStrategy.type` | MariaDB primary statefulset strategy type | `RollingUpdate` | +| `primary.rollingUpdatePartition` | Partition update strategy for Mariadb Primary statefulset | `""` | +| `primary.podAnnotations` | Additional pod annotations for MariaDB primary pods | `{}` | +| `primary.podLabels` | Extra labels for MariaDB primary pods | `{}` | +| `primary.podAffinityPreset` | MariaDB primary pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `primary.podAntiAffinityPreset` | MariaDB primary pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` | `soft` | +| `primary.nodeAffinityPreset.type` | MariaDB primary node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `primary.nodeAffinityPreset.key` | MariaDB primary node label key to match Ignored if `primary.affinity` is set. | `""` | +| `primary.nodeAffinityPreset.values` | MariaDB primary node label values to match. Ignored if `primary.affinity` is set. | `[]` | +| `primary.affinity` | Affinity for MariaDB primary pods assignment | `{}` | +| `primary.nodeSelector` | Node labels for MariaDB primary pods assignment | `{}` | +| `primary.tolerations` | Tolerations for MariaDB primary pods assignment | `[]` | +| `primary.schedulerName` | Name of the k8s scheduler (other than default) | `""` | +| `primary.podManagementPolicy` | podManagementPolicy to manage scaling operation of MariaDB primary pods | `""` | +| `primary.topologySpreadConstraints` | Topology Spread Constraints for MariaDB primary pods assignment | `{}` | +| `primary.priorityClassName` | Priority class for MariaDB primary pods assignment | `""` | +| `primary.podSecurityContext.enabled` | Enable security context for MariaDB primary pods | `true` | +| `primary.podSecurityContext.fsGroup` | Group ID for the mounted volumes' filesystem | `1001` | +| `primary.containerSecurityContext.enabled` | MariaDB primary container securityContext | `true` | +| `primary.containerSecurityContext.runAsUser` | User ID for the MariaDB primary container | `1001` | +| `primary.containerSecurityContext.runAsNonRoot` | Set Controller container's Security Context runAsNonRoot | `true` | +| `primary.resources.limits` | The resources limits for MariaDB primary containers | `{}` | +| `primary.resources.requests` | The requested resources for MariaDB primary containers | `{}` | +| `primary.startupProbe.enabled` | Enable startupProbe | `false` | +| `primary.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `120` | +| `primary.startupProbe.periodSeconds` | Period seconds for startupProbe | `15` | +| `primary.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `5` | +| `primary.startupProbe.failureThreshold` | Failure threshold for startupProbe | `10` | +| `primary.startupProbe.successThreshold` | Success threshold for startupProbe | `1` | +| `primary.livenessProbe.enabled` | Enable livenessProbe | `true` | +| `primary.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `120` | +| `primary.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` | +| `primary.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `1` | +| `primary.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` | +| `primary.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` | +| `primary.readinessProbe.enabled` | Enable readinessProbe | `true` | +| `primary.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `30` | +| `primary.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` | +| `primary.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` | +| `primary.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` | +| `primary.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` | +| `primary.customStartupProbe` | Override default startup probe for MariaDB primary containers | `{}` | +| `primary.customLivenessProbe` | Override default liveness probe for MariaDB primary containers | `{}` | +| `primary.customReadinessProbe` | Override default readiness probe for MariaDB primary containers | `{}` | +| `primary.startupWaitOptions` | Override default builtin startup wait check options for MariaDB primary containers | `{}` | +| `primary.extraFlags` | MariaDB primary additional command line flags | `""` | +| `primary.extraEnvVars` | Extra environment variables to be set on MariaDB primary containers | `[]` | +| `primary.extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for MariaDB primary containers | `""` | +| `primary.extraEnvVarsSecret` | Name of existing Secret containing extra env vars for MariaDB primary containers | `""` | +| `primary.persistence.enabled` | Enable persistence on MariaDB primary replicas using a `PersistentVolumeClaim`. If false, use emptyDir | `true` | +| `primary.persistence.existingClaim` | Name of an existing `PersistentVolumeClaim` for MariaDB primary replicas | `""` | +| `primary.persistence.subPath` | Subdirectory of the volume to mount at | `""` | +| `primary.persistence.storageClass` | MariaDB primary persistent volume storage Class | `""` | +| `primary.persistence.annotations` | MariaDB primary persistent volume claim annotations | `{}` | +| `primary.persistence.accessModes` | MariaDB primary persistent volume access Modes | `["ReadWriteOnce"]` | +| `primary.persistence.size` | MariaDB primary persistent volume size | `8Gi` | +| `primary.persistence.selector` | Selector to match an existing Persistent Volume | `{}` | +| `primary.extraVolumes` | Optionally specify extra list of additional volumes to the MariaDB Primary pod(s) | `[]` | +| `primary.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the MariaDB Primary container(s) | `[]` | +| `primary.initContainers` | Add additional init containers for the MariaDB Primary pod(s) | `[]` | +| `primary.sidecars` | Add additional sidecar containers for the MariaDB Primary pod(s) | `[]` | +| `primary.service.type` | MariaDB Primary Kubernetes service type | `ClusterIP` | +| `primary.service.ports.mysql` | MariaDB Primary Kubernetes service port | `3306` | +| `primary.service.nodePorts.mysql` | MariaDB Primary Kubernetes service node port | `""` | +| `primary.service.clusterIP` | MariaDB Primary Kubernetes service clusterIP IP | `""` | +| `primary.service.loadBalancerIP` | MariaDB Primary loadBalancerIP if service type is `LoadBalancer` | `""` | +| `primary.service.externalTrafficPolicy` | Enable client source IP preservation | `Cluster` | +| `primary.service.loadBalancerSourceRanges` | Address that are allowed when MariaDB Primary service is LoadBalancer | `[]` | +| `primary.service.extraPorts` | Extra ports to expose (normally used with the `sidecar` value) | `[]` | +| `primary.service.annotations` | Provide any additional annotations which may be required | `{}` | +| `primary.service.sessionAffinity` | Session Affinity for Kubernetes service, can be "None" or "ClientIP" | `None` | +| `primary.service.sessionAffinityConfig` | Additional settings for the sessionAffinity | `{}` | +| `primary.pdb.create` | Enable/disable a Pod Disruption Budget creation for MariaDB primary pods | `false` | +| `primary.pdb.minAvailable` | Minimum number/percentage of MariaDB primary pods that must still be available after the eviction | `1` | +| `primary.pdb.maxUnavailable` | Maximum number/percentage of MariaDB primary pods that can be unavailable after the eviction | `""` | +| `primary.revisionHistoryLimit` | Maximum number of revisions that will be maintained in the StatefulSet | `10` | + + +### MariaDB Secondary parameters + +| Name | Description | Value | +| ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------- | +| `secondary.replicaCount` | Number of MariaDB secondary replicas | `1` | +| `secondary.command` | Override default container command on MariaDB Secondary container(s) (useful when using custom images) | `[]` | +| `secondary.args` | Override default container args on MariaDB Secondary container(s) (useful when using custom images) | `[]` | +| `secondary.lifecycleHooks` | for the MariaDB Secondary container(s) to automate configuration before or after startup | `{}` | +| `secondary.hostAliases` | Add deployment host aliases | `[]` | +| `secondary.configuration` | MariaDB Secondary configuration to be injected as ConfigMap | `""` | +| `secondary.existingConfigmap` | Name of existing ConfigMap with MariaDB Secondary configuration. | `""` | +| `secondary.updateStrategy.type` | MariaDB secondary statefulset strategy type | `RollingUpdate` | +| `secondary.rollingUpdatePartition` | Partition update strategy for Mariadb Secondary statefulset | `""` | +| `secondary.podAnnotations` | Additional pod annotations for MariaDB secondary pods | `{}` | +| `secondary.podLabels` | Extra labels for MariaDB secondary pods | `{}` | +| `secondary.podAffinityPreset` | MariaDB secondary pod affinity preset. Ignored if `secondary.affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `secondary.podAntiAffinityPreset` | MariaDB secondary pod anti-affinity preset. Ignored if `secondary.affinity` is set. Allowed values: `soft` or `hard` | `soft` | +| `secondary.nodeAffinityPreset.type` | MariaDB secondary node affinity preset type. Ignored if `secondary.affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `secondary.nodeAffinityPreset.key` | MariaDB secondary node label key to match Ignored if `secondary.affinity` is set. | `""` | +| `secondary.nodeAffinityPreset.values` | MariaDB secondary node label values to match. Ignored if `secondary.affinity` is set. | `[]` | +| `secondary.affinity` | Affinity for MariaDB secondary pods assignment | `{}` | +| `secondary.nodeSelector` | Node labels for MariaDB secondary pods assignment | `{}` | +| `secondary.tolerations` | Tolerations for MariaDB secondary pods assignment | `[]` | +| `secondary.topologySpreadConstraints` | Topology Spread Constraints for MariaDB secondary pods assignment | `{}` | +| `secondary.priorityClassName` | Priority class for MariaDB secondary pods assignment | `""` | +| `secondary.schedulerName` | Name of the k8s scheduler (other than default) | `""` | +| `secondary.podManagementPolicy` | podManagementPolicy to manage scaling operation of MariaDB secondary pods | `""` | +| `secondary.podSecurityContext.enabled` | Enable security context for MariaDB secondary pods | `true` | +| `secondary.podSecurityContext.fsGroup` | Group ID for the mounted volumes' filesystem | `1001` | +| `secondary.containerSecurityContext.enabled` | MariaDB secondary container securityContext | `true` | +| `secondary.containerSecurityContext.runAsUser` | User ID for the MariaDB secondary container | `1001` | +| `secondary.containerSecurityContext.runAsNonRoot` | Set Controller container's Security Context runAsNonRoot | `true` | +| `secondary.resources.limits` | The resources limits for MariaDB secondary containers | `{}` | +| `secondary.resources.requests` | The requested resources for MariaDB secondary containers | `{}` | +| `secondary.startupProbe.enabled` | Enable startupProbe | `false` | +| `secondary.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `120` | +| `secondary.startupProbe.periodSeconds` | Period seconds for startupProbe | `15` | +| `secondary.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `5` | +| `secondary.startupProbe.failureThreshold` | Failure threshold for startupProbe | `10` | +| `secondary.startupProbe.successThreshold` | Success threshold for startupProbe | `1` | +| `secondary.livenessProbe.enabled` | Enable livenessProbe | `true` | +| `secondary.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `120` | +| `secondary.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` | +| `secondary.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `1` | +| `secondary.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` | +| `secondary.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` | +| `secondary.readinessProbe.enabled` | Enable readinessProbe | `true` | +| `secondary.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `30` | +| `secondary.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` | +| `secondary.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` | +| `secondary.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` | +| `secondary.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` | +| `secondary.customStartupProbe` | Override default startup probe for MariaDB secondary containers | `{}` | +| `secondary.customLivenessProbe` | Override default liveness probe for MariaDB secondary containers | `{}` | +| `secondary.customReadinessProbe` | Override default readiness probe for MariaDB secondary containers | `{}` | +| `secondary.startupWaitOptions` | Override default builtin startup wait check options for MariaDB secondary containers | `{}` | +| `secondary.extraFlags` | MariaDB secondary additional command line flags | `""` | +| `secondary.extraEnvVars` | Extra environment variables to be set on MariaDB secondary containers | `[]` | +| `secondary.extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for MariaDB secondary containers | `""` | +| `secondary.extraEnvVarsSecret` | Name of existing Secret containing extra env vars for MariaDB secondary containers | `""` | +| `secondary.persistence.enabled` | Enable persistence on MariaDB secondary replicas using a `PersistentVolumeClaim` | `true` | +| `secondary.persistence.subPath` | Subdirectory of the volume to mount at | `""` | +| `secondary.persistence.storageClass` | MariaDB secondary persistent volume storage Class | `""` | +| `secondary.persistence.annotations` | MariaDB secondary persistent volume claim annotations | `{}` | +| `secondary.persistence.accessModes` | MariaDB secondary persistent volume access Modes | `["ReadWriteOnce"]` | +| `secondary.persistence.size` | MariaDB secondary persistent volume size | `8Gi` | +| `secondary.persistence.selector` | Selector to match an existing Persistent Volume | `{}` | +| `secondary.extraVolumes` | Optionally specify extra list of additional volumes to the MariaDB secondary pod(s) | `[]` | +| `secondary.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the MariaDB secondary container(s) | `[]` | +| `secondary.initContainers` | Add additional init containers for the MariaDB secondary pod(s) | `[]` | +| `secondary.sidecars` | Add additional sidecar containers for the MariaDB secondary pod(s) | `[]` | +| `secondary.service.type` | MariaDB secondary Kubernetes service type | `ClusterIP` | +| `secondary.service.ports.mysql` | MariaDB secondary Kubernetes service port | `3306` | +| `secondary.service.nodePorts.mysql` | MariaDB secondary Kubernetes service node port | `""` | +| `secondary.service.clusterIP` | MariaDB secondary Kubernetes service clusterIP IP | `""` | +| `secondary.service.loadBalancerIP` | MariaDB secondary loadBalancerIP if service type is `LoadBalancer` | `""` | +| `secondary.service.externalTrafficPolicy` | Enable client source IP preservation | `Cluster` | +| `secondary.service.loadBalancerSourceRanges` | Address that are allowed when MariaDB secondary service is LoadBalancer | `[]` | +| `secondary.service.extraPorts` | Extra ports to expose (normally used with the `sidecar` value) | `[]` | +| `secondary.service.annotations` | Provide any additional annotations which may be required | `{}` | +| `secondary.service.sessionAffinity` | Session Affinity for Kubernetes service, can be "None" or "ClientIP" | `None` | +| `secondary.service.sessionAffinityConfig` | Additional settings for the sessionAffinity | `{}` | +| `secondary.pdb.create` | Enable/disable a Pod Disruption Budget creation for MariaDB secondary pods | `false` | +| `secondary.pdb.minAvailable` | Minimum number/percentage of MariaDB secondary pods that should remain scheduled | `1` | +| `secondary.pdb.maxUnavailable` | Maximum number/percentage of MariaDB secondary pods that may be made unavailable | `""` | +| `secondary.revisionHistoryLimit` | Maximum number of revisions that will be maintained in the StatefulSet | `10` | + + +### RBAC parameters + +| Name | Description | Value | +| --------------------------------------------- | -------------------------------------------------------------- | ------- | +| `serviceAccount.create` | Enable the creation of a ServiceAccount for MariaDB pods | `true` | +| `serviceAccount.name` | Name of the created ServiceAccount | `""` | +| `serviceAccount.annotations` | Annotations for MariaDB Service Account | `{}` | +| `serviceAccount.automountServiceAccountToken` | Automount service account token for the server service account | `false` | +| `rbac.create` | Whether to create and use RBAC resources or not | `false` | + + +### Volume Permissions parameters + +| Name | Description | Value | +| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | ----------------------- | +| `volumePermissions.enabled` | Enable init container that changes the owner and group of the persistent volume(s) mountpoint to `runAsUser:fsGroup` | `false` | +| `volumePermissions.image.registry` | Init container volume-permissions image registry | `docker.io` | +| `volumePermissions.image.repository` | Init container volume-permissions image repository | `bitnami/bitnami-shell` | +| `volumePermissions.image.tag` | Init container volume-permissions image tag (immutable tags are recommended) | `10-debian-10-r388` | +| `volumePermissions.image.pullPolicy` | Init container volume-permissions image pull policy | `IfNotPresent` | +| `volumePermissions.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` | +| `volumePermissions.resources.limits` | Init container volume-permissions resource limits | `{}` | +| `volumePermissions.resources.requests` | Init container volume-permissions resource requests | `{}` | + + +### Metrics parameters + +| Name | Description | Value | +| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | +| `metrics.enabled` | Start a side-car prometheus exporter | `false` | +| `metrics.image.registry` | Exporter image registry | `docker.io` | +| `metrics.image.repository` | Exporter image repository | `bitnami/mysqld-exporter` | +| `metrics.image.tag` | Exporter image tag (immutable tags are recommended) | `0.14.0-debian-10-r33` | +| `metrics.image.pullPolicy` | Exporter image pull policy | `IfNotPresent` | +| `metrics.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` | +| `metrics.annotations` | Annotations for the Exporter pod | `{}` | +| `metrics.extraArgs` | Extra args to be passed to mysqld_exporter | `{}` | +| `metrics.containerSecurityContext.enabled` | Enable security context for MariaDB metrics container | `false` | +| `metrics.resources.limits` | The resources limits for MariaDB prometheus exporter containers | `{}` | +| `metrics.resources.requests` | The requested resources for MariaDB prometheus exporter containers | `{}` | +| `metrics.livenessProbe.enabled` | Enable livenessProbe | `true` | +| `metrics.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `120` | +| `metrics.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` | +| `metrics.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `1` | +| `metrics.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` | +| `metrics.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` | +| `metrics.readinessProbe.enabled` | Enable readinessProbe | `true` | +| `metrics.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `30` | +| `metrics.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` | +| `metrics.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` | +| `metrics.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` | +| `metrics.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` | +| `metrics.serviceMonitor.enabled` | Create ServiceMonitor Resource for scraping metrics using PrometheusOperator | `false` | +| `metrics.serviceMonitor.namespace` | Namespace which Prometheus is running in | `""` | +| `metrics.serviceMonitor.jobLabel` | The name of the label on the target service to use as the job name in prometheus. | `""` | +| `metrics.serviceMonitor.interval` | Interval at which metrics should be scraped | `30s` | +| `metrics.serviceMonitor.scrapeTimeout` | Specify the timeout after which the scrape is ended | `""` | +| `metrics.serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping | `[]` | +| `metrics.serviceMonitor.metricRelabelings` | MetricRelabelConfigs to apply to samples before ingestion | `[]` | +| `metrics.serviceMonitor.honorLabels` | honorLabels chooses the metric's labels on collisions with target labels | `false` | +| `metrics.serviceMonitor.selector` | ServiceMonitor selector labels | `{}` | +| `metrics.serviceMonitor.labels` | Extra labels for the ServiceMonitor | `{}` | +| `metrics.prometheusRule.enabled` | if `true`, creates a Prometheus Operator PrometheusRule (also requires `metrics.enabled` to be `true` and `metrics.prometheusRule.rules`) | `false` | +| `metrics.prometheusRule.namespace` | Namespace for the PrometheusRule Resource (defaults to the Release Namespace) | `""` | +| `metrics.prometheusRule.additionalLabels` | Additional labels that can be used so PrometheusRule will be discovered by Prometheus | `{}` | +| `metrics.prometheusRule.rules` | Prometheus Rule definitions | `[]` | + + +### NetworkPolicy parameters + +| Name | Description | Value | +| ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------- | +| `networkPolicy.enabled` | Enable network policies | `false` | +| `networkPolicy.metrics.enabled` | Enable network policy for metrics (prometheus) | `false` | +| `networkPolicy.metrics.namespaceSelector` | Monitoring namespace selector labels. These labels will be used to identify the prometheus' namespace. | `{}` | +| `networkPolicy.metrics.podSelector` | Monitoring pod selector labels. These labels will be used to identify the Prometheus pods. | `{}` | +| `networkPolicy.ingressRules.primaryAccessOnlyFrom.enabled` | Enable ingress rule that makes primary mariadb nodes only accessible from a particular origin. | `false` | +| `networkPolicy.ingressRules.primaryAccessOnlyFrom.namespaceSelector` | Namespace selector label that is allowed to access the primary node. This label will be used to identified the allowed namespace(s). | `{}` | +| `networkPolicy.ingressRules.primaryAccessOnlyFrom.podSelector` | Pods selector label that is allowed to access the primary node. This label will be used to identified the allowed pod(s). | `{}` | +| `networkPolicy.ingressRules.primaryAccessOnlyFrom.customRules` | Custom network policy for the primary node. | `{}` | +| `networkPolicy.ingressRules.secondaryAccessOnlyFrom.enabled` | Enable ingress rule that makes primary mariadb nodes only accessible from a particular origin. | `false` | +| `networkPolicy.ingressRules.secondaryAccessOnlyFrom.namespaceSelector` | Namespace selector label that is allowed to acces the secondary nodes. This label will be used to identified the allowed namespace(s). | `{}` | +| `networkPolicy.ingressRules.secondaryAccessOnlyFrom.podSelector` | Pods selector label that is allowed to access the secondary nodes. This label will be used to identified the allowed pod(s). | `{}` | +| `networkPolicy.ingressRules.secondaryAccessOnlyFrom.customRules` | Custom network policy for the secondary nodes. | `{}` | +| `networkPolicy.egressRules.denyConnectionsToExternal` | Enable egress rule that denies outgoing traffic outside the cluster, except for DNS (port 53). | `false` | +| `networkPolicy.egressRules.customRules` | Custom network policy rule | `{}` | + + +The above parameters map to the env variables defined in [bitnami/mariadb](https://github.com/bitnami/bitnami-docker-mariadb). For more information please refer to the [bitnami/mariadb](https://github.com/bitnami/bitnami-docker-mariadb) image documentation. + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```bash +$ helm install my-release \ + --set auth.rootPassword=secretpassword,auth.database=app_database \ + bitnami/mariadb +``` + +The above command sets the MariaDB `root` account password to `secretpassword`. Additionally it creates a database named `my_database`. + +> NOTE: Once this chart is deployed, it is not possible to change the application's access credentials, such as usernames or passwords, using Helm. To change these application credentials after deployment, delete any persistent volumes (PVs) used by the chart and re-deploy it, or use the application's built-in administrative tools if available. + +Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, + +```bash +$ helm install my-release -f values.yaml bitnami/mariadb +``` + +> **Tip**: You can use the default [values.yaml](values.yaml) + +## Configuration and installation details + +### [Rolling VS Immutable tags](https://docs.bitnami.com/containers/how-to/understand-rolling-tags-containers/) + +It is strongly recommended to use immutable tags in a production environment. This ensures your deployment does not change automatically if the same tag is updated with a different image. + +Bitnami will release a new chart updating its containers if a new version of the main container, significant changes, or critical vulnerabilities exist. + +### Change MariaDB version + +To modify the MariaDB version used in this chart you can specify a [valid image tag](https://hub.docker.com/r/bitnami/mariadb/tags/) using the `image.tag` parameter. For example, `image.tag=X.Y.Z`. This approach is also applicable to other images like exporters. + +### Initialize a fresh instance + +The [Bitnami MariaDB](https://github.com/bitnami/bitnami-docker-mariadb) image allows you to use your custom scripts to initialize a fresh instance. Custom scripts may be specified using the `initdbScripts` parameter. Alternatively, an external ConfigMap may be created with all the initialization scripts and the ConfigMap passed to the chart via the `initdbScriptsConfigMap` parameter. Note that this will override the `initdbScripts` parameter. + +The allowed extensions are `.sh`, `.sql` and `.sql.gz`. + +These scripts are treated differently depending on their extension. While `.sh` scripts are executed on all the nodes, `.sql` and `.sql.gz` scripts are only executed on the primary nodes. This is because `.sh` scripts support conditional tests to identify the type of node they are running on, while such tests are not supported in `.sql` or `.sql.gz` files. + +[Refer to the chart documentation for more information and a usage example](https://docs.bitnami.com/kubernetes/infrastructure/mariadb/configuration/customize-new-instance/). + +### Sidecars and Init Containers + +If additional containers are needed in the same pod as MariaDB (such as additional metrics or logging exporters), they can be defined using the sidecars parameter. + +The Helm chart already includes sidecar containers for the Prometheus exporters. These can be activated by adding the `--set enable-metrics=true` parameter at deployment time. The `sidecars` parameter should therefore only be used for any extra sidecar containers. [See an example of configuring and using sidecar containers](https://docs.bitnami.com/kubernetes/infrastructure/mariadb/configuration/configure-sidecar-init-containers/). + +Similarly, additional containers can be added to MariaDB pods using the `initContainers` parameter. [See an example of configuring and using init containers](https://docs.bitnami.com/kubernetes/infrastructure/mariadb/configuration/configure-sidecar-init-containers/). + +## Persistence + +The [Bitnami MariaDB](https://github.com/bitnami/bitnami-docker-mariadb) image stores the MariaDB data and configurations at the `/bitnami/mariadb` path of the container. + +The chart mounts a [Persistent Volume](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) volume at this location. The volume is created using dynamic volume provisioning, by default. An existing PersistentVolumeClaim can also be defined. + +If you encounter errors when working with persistent volumes, refer to our [troubleshooting guide for persistent volumes](https://docs.bitnami.com/kubernetes/faq/troubleshooting/troubleshooting-persistence-volumes/). + +### Adjust permissions of persistent volume mountpoint + +As the image run as non-root by default, it is necessary to adjust the ownership of the persistent volume so that the container can write data into it. + +By default, the chart is configured to use Kubernetes Security Context to automatically change the ownership of the volume. However, this feature does not work in all Kubernetes distributions. + +As an alternative, this chart supports using an initContainer to change the ownership of the volume before mounting it in the final destination. You can enable this initContainer by setting `volumePermissions.enabled` to `true`. + +## Troubleshooting + +Find more information about how to deal with common errors related to Bitnami's Helm charts in [this troubleshooting guide](https://docs.bitnami.com/general/how-to/troubleshoot-helm-chart-issues). + +## Upgrading + +It's necessary to set the `auth.rootPassword` parameter when upgrading for readiness/liveness probes to work properly. When you install this chart for the first time, some notes will be displayed providing the credentials you must use under the 'Administrator credentials' section. Please note down the password and run the command below to upgrade your chart: + +```bash +$ helm upgrade my-release bitnami/mariadb --set auth.rootPassword=[ROOT_PASSWORD] +``` + +| Note: you need to substitute the placeholder _[ROOT_PASSWORD]_ with the value obtained in the installation notes. + +### To 10.0.0 + +This major release renames several values in this chart and adds missing features, in order to be inline with the rest of assets in the Bitnami charts repository. + +Affected values: + +- `primary.service.port` was deprecated, we recommend using `primary.service.ports.mysql` instead. +- `primary.service.nodePort` was deprecated, we recommend using `primary.service.nodePorts.mysql` instead. +- `secondary.service.port` was deprecated, we recommend using `secondary.service.ports.mysql` instead. +- `secondary.service.nodePort` was deprecated, we recommend using `secondary.service.nodePorts.mysql` instead. +- `metrics.serviceMonitor.additionalLabels` was deprecated, we recommend using `metrics.serviceMonitor.selector` instead. +- `primary.pdb.enabled` renamed as `primary.pdb.create`. +- `secondary.pdb.enabled` renamed as `secondary.pdb.create`. +- `primary.updateStrategy` changed from String type (previously default to 'rollingUpdate') to Object type, allowing users to configure other updateStrategy parameters, similar to other charts. +- Removed value `primary.rollingUpdatePartition`, now configured using `primary.updateStrategy` setting `primary.updateStrategy.rollingUpdate.partition`. +- `secondary.updateStrategy` changed from String type (previously default to 'rollingUpdate') to Object type, allowing users to configure other updateStrategy parameters, similar to other charts. +- Removed value `secondary.rollingUpdatePartition`, now configured using `secondary.updateStrategy` setting `secondary.updateStrategy.rollingUpdate.partition`. +- `metrics.serviceMonitor.relabellings`, previously used to configure ServiceMonitor metricRelabelings, has been replaced with the value `metrics.serviceMonitor.metricRelabelings`, and new value `metrics.serviceMonitor.relabelings` can be used to set ServiceMonitor relabelings parameter + +### To 9.0.0 + +[On November 13, 2020, Helm v2 support was formally finished](https://github.com/helm/charts#status-of-the-project), this major version is the result of the required changes applied to the Helm Chart to be able to incorporate the different features added in Helm v3 and to be consistent with the Helm project itself regarding the Helm v2 EOL. + +[Learn more about this change and related upgrade considerations](https://docs.bitnami.com/kubernetes/infrastructure/mariadb/administration/upgrade-helm3/). + +### To 8.0.0 + +- Several parameters were renamed or disappeared in favor of new ones on this major version: + - The terms _master_ and _slave_ have been replaced by the terms _primary_ and _secondary_. Therefore, parameters prefixed with `master` or `slave` are now prefixed with `primary` or `secondary`, respectively. + - `securityContext.*` is deprecated in favor of `primary.podSecurityContext`, `primary.containerSecurityContext`, `secondary.podSecurityContext`, and `secondary.containerSecurityContext`. + - Credentials parameter are reorganized under the `auth` parameter. + - `replication.enabled` parameter is deprecated in favor of `architecture` parameter that accepts two values: `standalone` and `replication`. +- The default MariaDB version was updated from 10.3 to 10.5. According to the official documentation, upgrading from 10.3 should be painless. However, there are some things that have changed which could affect an upgrade: + - [Incompatible changes upgrading from MariaDB 10.3 to MariaDB 10.4](https://mariadb.com/kb/en/upgrading-from-mariadb-103-to-mariadb-104/#incompatible-changes-between-103-and-104). + - [Incompatible changes upgrading from MariaDB 10.4 to MariaDB 10.5](https://mariadb.com/kb/en/upgrading-from-mariadb-104-to-mariadb-105/#incompatible-changes-between-104-and-105). +- Chart labels were adapted to follow the [Helm charts standard labels](https://helm.sh/docs/chart_best_practices/labels/#standard-labels). +- This version also introduces `bitnami/common`, a [library chart](https://helm.sh/docs/topics/library_charts/#helm) as a dependency. More documentation about this new utility could be found [here](https://github.com/bitnami/charts/tree/master/bitnami/common#bitnami-common-library-chart). Please, make sure that you have updated the chart dependencies before executing any upgrade. + +Consequences: + +Backwards compatibility is not guaranteed. To upgrade to `8.0.0`, install a new release of the MariaDB chart, and migrate the data from your previous release. You have 2 alternatives to do so: + +- Create a backup of the database, and restore it on the new release using tools such as [mysqldump](https://mariadb.com/kb/en/mysqldump/). +- Reuse the PVC used to hold the master data on your previous release. To do so, use the `primary.persistence.existingClaim` parameter. The following example assumes that the release name is `mariadb`: + +```bash +$ helm install mariadb bitnami/mariadb --set auth.rootPassword=[ROOT_PASSWORD] --set primary.persistence.existingClaim=[EXISTING_PVC] +``` + +| Note: you need to substitute the placeholder _[EXISTING_PVC]_ with the name of the PVC used on your previous release, and _[ROOT_PASSWORD]_ with the root password used in your previous release. + +### To 7.0.0 + +Helm performs a lookup for the object based on its group (apps), version (v1), and kind (Deployment). Also known as its GroupVersionKind, or GVK. Changing the GVK is considered a compatibility breaker from Kubernetes' point of view, so you cannot "upgrade" those objects to the new GVK in-place. Earlier versions of Helm 3 did not perform the lookup correctly which has since been fixed to match the spec. + +In https://github.com/helm/charts/pull/17308 the `apiVersion` of the statefulset resources was updated to `apps/v1` in tune with the api's deprecated, resulting in compatibility breakage. + +This major version bump signifies this change. + +### To 6.0.0 + +MariaDB version was updated from 10.1 to 10.3, there are no changes in the chart itself. According to the official documentation, upgrading from 10.1 should be painless. However, there are some things that have changed which could affect an upgrade: + +- [Incompatible changes upgrading from MariaDB 10.1 to MariaDB 10.2](https://mariadb.com/kb/en/library/upgrading-from-mariadb-101-to-mariadb-102//#incompatible-changes-between-101-and-102) +- [Incompatible changes upgrading from MariaDB 10.2 to MariaDB 10.3](https://mariadb.com/kb/en/library/upgrading-from-mariadb-102-to-mariadb-103/#incompatible-changes-between-102-and-103) + +### To 5.0.0 + +Backwards compatibility is not guaranteed unless you modify the labels used on the chart's deployments. +Use the workaround below to upgrade from versions previous to 5.0.0. The following example assumes that the release name is mariadb: + +```console +$ kubectl delete statefulset opencart-mariadb --cascade=false +``` + +## License + +Copyright © 2022 Bitnami + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/.helmignore b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/.helmignore new file mode 100644 index 00000000..50af0317 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/.helmignore @@ -0,0 +1,22 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/Chart.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/Chart.yaml new file mode 100644 index 00000000..457e3350 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/Chart.yaml @@ -0,0 +1,22 @@ +annotations: + category: Infrastructure +apiVersion: v2 +appVersion: 1.13.0 +description: A Library Helm Chart for grouping common logic between bitnami charts. This chart is not deployable by itself. +home: https://github.com/bitnami/charts/tree/master/bitnami/common +icon: https://bitnami.com/downloads/logos/bitnami-mark.png +keywords: +- common +- helper +- template +- function +- bitnami +maintainers: +- email: containers@bitnami.com + name: Bitnami +name: common +sources: +- https://github.com/bitnami/charts +- https://www.bitnami.com/ +type: library +version: 1.13.0 diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/README.md b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/README.md new file mode 100644 index 00000000..c090f742 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/README.md @@ -0,0 +1,347 @@ +# Bitnami Common Library Chart + +A [Helm Library Chart](https://helm.sh/docs/topics/library_charts/#helm) for grouping common logic between bitnami charts. + +## TL;DR + +```yaml +dependencies: + - name: common + version: 1.x.x + repository: https://charts.bitnami.com/bitnami +``` + +```bash +$ helm dependency update +``` + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.names.fullname" . }} +data: + myvalue: "Hello World" +``` + +## Introduction + +This chart provides a common template helpers which can be used to develop new charts using [Helm](https://helm.sh) package manager. + +Bitnami charts can be used with [Kubeapps](https://kubeapps.com/) for deployment and management of Helm Charts in clusters. This Helm chart has been tested on top of [Bitnami Kubernetes Production Runtime](https://kubeprod.io/) (BKPR). Deploy BKPR to get automated TLS certificates, logging and monitoring for your applications. + +## Prerequisites + +- Kubernetes 1.19+ +- Helm 3.2.0+ + +## Parameters + +The following table lists the helpers available in the library which are scoped in different sections. + +### Affinities + +| Helper identifier | Description | Expected Input | +|-------------------------------|------------------------------------------------------|------------------------------------------------| +| `common.affinities.node.soft` | Return a soft nodeAffinity definition | `dict "key" "FOO" "values" (list "BAR" "BAZ")` | +| `common.affinities.node.hard` | Return a hard nodeAffinity definition | `dict "key" "FOO" "values" (list "BAR" "BAZ")` | +| `common.affinities.pod.soft` | Return a soft podAffinity/podAntiAffinity definition | `dict "component" "FOO" "context" $` | +| `common.affinities.pod.hard` | Return a hard podAffinity/podAntiAffinity definition | `dict "component" "FOO" "context" $` | + +### Capabilities + +| Helper identifier | Description | Expected Input | +|------------------------------------------------|------------------------------------------------------------------------------------------------|-------------------| +| `common.capabilities.kubeVersion` | Return the target Kubernetes version (using client default if .Values.kubeVersion is not set). | `.` Chart context | +| `common.capabilities.cronjob.apiVersion` | Return the appropriate apiVersion for cronjob. | `.` Chart context | +| `common.capabilities.deployment.apiVersion` | Return the appropriate apiVersion for deployment. | `.` Chart context | +| `common.capabilities.statefulset.apiVersion` | Return the appropriate apiVersion for statefulset. | `.` Chart context | +| `common.capabilities.ingress.apiVersion` | Return the appropriate apiVersion for ingress. | `.` Chart context | +| `common.capabilities.rbac.apiVersion` | Return the appropriate apiVersion for RBAC resources. | `.` Chart context | +| `common.capabilities.crd.apiVersion` | Return the appropriate apiVersion for CRDs. | `.` Chart context | +| `common.capabilities.policy.apiVersion` | Return the appropriate apiVersion for podsecuritypolicy. | `.` Chart context | +| `common.capabilities.networkPolicy.apiVersion` | Return the appropriate apiVersion for networkpolicy. | `.` Chart context | +| `common.capabilities.apiService.apiVersion` | Return the appropriate apiVersion for APIService. | `.` Chart context | +| `common.capabilities.supportsHelmVersion` | Returns true if the used Helm version is 3.3+ | `.` Chart context | + +### Errors + +| Helper identifier | Description | Expected Input | +|-----------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------| +| `common.errors.upgrade.passwords.empty` | It will ensure required passwords are given when we are upgrading a chart. If `validationErrors` is not empty it will throw an error and will stop the upgrade action. | `dict "validationErrors" (list $validationError00 $validationError01) "context" $` | + +### Images + +| Helper identifier | Description | Expected Input | +|-----------------------------|------------------------------------------------------|---------------------------------------------------------------------------------------------------------| +| `common.images.image` | Return the proper and full image name | `dict "imageRoot" .Values.path.to.the.image "global" $`, see [ImageRoot](#imageroot) for the structure. | +| `common.images.pullSecrets` | Return the proper Docker Image Registry Secret Names (deprecated: use common.images.renderPullSecrets instead) | `dict "images" (list .Values.path.to.the.image1, .Values.path.to.the.image2) "global" .Values.global` | +| `common.images.renderPullSecrets` | Return the proper Docker Image Registry Secret Names (evaluates values as templates) | `dict "images" (list .Values.path.to.the.image1, .Values.path.to.the.image2) "context" $` | + +### Ingress + +| Helper identifier | Description | Expected Input | +|-------------------------------------------|-------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `common.ingress.backend` | Generate a proper Ingress backend entry depending on the API version | `dict "serviceName" "foo" "servicePort" "bar"`, see the [Ingress deprecation notice](https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/) for the syntax differences | +| `common.ingress.supportsPathType` | Prints "true" if the pathType field is supported | `.` Chart context | +| `common.ingress.supportsIngressClassname` | Prints "true" if the ingressClassname field is supported | `.` Chart context | +| `common.ingress.certManagerRequest` | Prints "true" if required cert-manager annotations for TLS signed certificates are set in the Ingress annotations | `dict "annotations" .Values.path.to.the.ingress.annotations` | + +### Labels + +| Helper identifier | Description | Expected Input | +|-----------------------------|-----------------------------------------------------------------------------|-------------------| +| `common.labels.standard` | Return Kubernetes standard labels | `.` Chart context | +| `common.labels.matchLabels` | Labels to use on `deploy.spec.selector.matchLabels` and `svc.spec.selector` | `.` Chart context | + +### Names + +| Helper identifier | Description | Expected Input | +|--------------------------|------------------------------------------------------------|-------------------| +| `common.names.name` | Expand the name of the chart or use `.Values.nameOverride` | `.` Chart context | +| `common.names.fullname` | Create a default fully qualified app name. | `.` Chart context | +| `common.names.namespace` | Allow the release namespace to be overridden | `.` Chart context | +| `common.names.chart` | Chart name plus version | `.` Chart context | + +### Secrets + +| Helper identifier | Description | Expected Input | +|---------------------------|--------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `common.secrets.name` | Generate the name of the secret. | `dict "existingSecret" .Values.path.to.the.existingSecret "defaultNameSuffix" "mySuffix" "context" $` see [ExistingSecret](#existingsecret) for the structure. | +| `common.secrets.key` | Generate secret key. | `dict "existingSecret" .Values.path.to.the.existingSecret "key" "keyName"` see [ExistingSecret](#existingsecret) for the structure. | +| `common.passwords.manage` | Generate secret password or retrieve one if already created. | `dict "secret" "secret-name" "key" "keyName" "providedValues" (list "path.to.password1" "path.to.password2") "length" 10 "strong" false "chartName" "chartName" "context" $`, length, strong and chartNAme fields are optional. | +| `common.secrets.exists` | Returns whether a previous generated secret already exists. | `dict "secret" "secret-name" "context" $` | + +### Storage + +| Helper identifier | Description | Expected Input | +|-------------------------------|---------------------------------------|---------------------------------------------------------------------------------------------------------------------| +| `common.storage.class` | Return the proper Storage Class | `dict "persistence" .Values.path.to.the.persistence "global" $`, see [Persistence](#persistence) for the structure. | + +### TplValues + +| Helper identifier | Description | Expected Input | +|---------------------------|----------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------| +| `common.tplvalues.render` | Renders a value that contains template | `dict "value" .Values.path.to.the.Value "context" $`, value is the value should rendered as template, context frequently is the chart context `$` or `.` | + +### Utils + +| Helper identifier | Description | Expected Input | +|--------------------------------|------------------------------------------------------------------------------------------|------------------------------------------------------------------------| +| `common.utils.fieldToEnvVar` | Build environment variable name given a field. | `dict "field" "my-password"` | +| `common.utils.secret.getvalue` | Print instructions to get a secret value. | `dict "secret" "secret-name" "field" "secret-value-field" "context" $` | +| `common.utils.getValueFromKey` | Gets a value from `.Values` object given its key path | `dict "key" "path.to.key" "context" $` | +| `common.utils.getKeyFromList` | Returns first `.Values` key with a defined value or first of the list if all non-defined | `dict "keys" (list "path.to.key1" "path.to.key2") "context" $` | + +### Validations + +| Helper identifier | Description | Expected Input | +|--------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `common.validations.values.single.empty` | Validate a value must not be empty. | `dict "valueKey" "path.to.value" "secret" "secret.name" "field" "my-password" "subchart" "subchart" "context" $` secret, field and subchart are optional. In case they are given, the helper will generate a how to get instruction. See [ValidateValue](#validatevalue) | +| `common.validations.values.multiple.empty` | Validate a multiple values must not be empty. It returns a shared error for all the values. | `dict "required" (list $validateValueConf00 $validateValueConf01) "context" $`. See [ValidateValue](#validatevalue) | +| `common.validations.values.mariadb.passwords` | This helper will ensure required password for MariaDB are not empty. It returns a shared error for all the values. | `dict "secret" "mariadb-secret" "subchart" "true" "context" $` subchart field is optional and could be true or false it depends on where you will use mariadb chart and the helper. | +| `common.validations.values.postgresql.passwords` | This helper will ensure required password for PostgreSQL are not empty. It returns a shared error for all the values. | `dict "secret" "postgresql-secret" "subchart" "true" "context" $` subchart field is optional and could be true or false it depends on where you will use postgresql chart and the helper. | +| `common.validations.values.redis.passwords` | This helper will ensure required password for Redis™ are not empty. It returns a shared error for all the values. | `dict "secret" "redis-secret" "subchart" "true" "context" $` subchart field is optional and could be true or false it depends on where you will use redis chart and the helper. | +| `common.validations.values.cassandra.passwords` | This helper will ensure required password for Cassandra are not empty. It returns a shared error for all the values. | `dict "secret" "cassandra-secret" "subchart" "true" "context" $` subchart field is optional and could be true or false it depends on where you will use cassandra chart and the helper. | +| `common.validations.values.mongodb.passwords` | This helper will ensure required password for MongoDB® are not empty. It returns a shared error for all the values. | `dict "secret" "mongodb-secret" "subchart" "true" "context" $` subchart field is optional and could be true or false it depends on where you will use mongodb chart and the helper. | + +### Warnings + +| Helper identifier | Description | Expected Input | +|------------------------------|----------------------------------|------------------------------------------------------------| +| `common.warnings.rollingTag` | Warning about using rolling tag. | `ImageRoot` see [ImageRoot](#imageroot) for the structure. | + +## Special input schemas + +### ImageRoot + +```yaml +registry: + type: string + description: Docker registry where the image is located + example: docker.io + +repository: + type: string + description: Repository and image name + example: bitnami/nginx + +tag: + type: string + description: image tag + example: 1.16.1-debian-10-r63 + +pullPolicy: + type: string + description: Specify a imagePullPolicy. Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + +pullSecrets: + type: array + items: + type: string + description: Optionally specify an array of imagePullSecrets (evaluated as templates). + +debug: + type: boolean + description: Set to true if you would like to see extra information on logs + example: false + +## An instance would be: +# registry: docker.io +# repository: bitnami/nginx +# tag: 1.16.1-debian-10-r63 +# pullPolicy: IfNotPresent +# debug: false +``` + +### Persistence + +```yaml +enabled: + type: boolean + description: Whether enable persistence. + example: true + +storageClass: + type: string + description: Ghost data Persistent Volume Storage Class, If set to "-", storageClassName: "" which disables dynamic provisioning. + example: "-" + +accessMode: + type: string + description: Access mode for the Persistent Volume Storage. + example: ReadWriteOnce + +size: + type: string + description: Size the Persistent Volume Storage. + example: 8Gi + +path: + type: string + description: Path to be persisted. + example: /bitnami + +## An instance would be: +# enabled: true +# storageClass: "-" +# accessMode: ReadWriteOnce +# size: 8Gi +# path: /bitnami +``` + +### ExistingSecret + +```yaml +name: + type: string + description: Name of the existing secret. + example: mySecret +keyMapping: + description: Mapping between the expected key name and the name of the key in the existing secret. + type: object + +## An instance would be: +# name: mySecret +# keyMapping: +# password: myPasswordKey +``` + +#### Example of use + +When we store sensitive data for a deployment in a secret, some times we want to give to users the possibility of using theirs existing secrets. + +```yaml +# templates/secret.yaml +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "common.names.fullname" . }} + labels: + app: {{ include "common.names.fullname" . }} +type: Opaque +data: + password: {{ .Values.password | b64enc | quote }} + +# templates/dpl.yaml +--- +... + env: + - name: PASSWORD + valueFrom: + secretKeyRef: + name: {{ include "common.secrets.name" (dict "existingSecret" .Values.existingSecret "context" $) }} + key: {{ include "common.secrets.key" (dict "existingSecret" .Values.existingSecret "key" "password") }} +... + +# values.yaml +--- +name: mySecret +keyMapping: + password: myPasswordKey +``` + +### ValidateValue + +#### NOTES.txt + +```console +{{- $validateValueConf00 := (dict "valueKey" "path.to.value00" "secret" "secretName" "field" "password-00") -}} +{{- $validateValueConf01 := (dict "valueKey" "path.to.value01" "secret" "secretName" "field" "password-01") -}} + +{{ include "common.validations.values.multiple.empty" (dict "required" (list $validateValueConf00 $validateValueConf01) "context" $) }} +``` + +If we force those values to be empty we will see some alerts + +```console +$ helm install test mychart --set path.to.value00="",path.to.value01="" + 'path.to.value00' must not be empty, please add '--set path.to.value00=$PASSWORD_00' to the command. To get the current value: + + export PASSWORD_00=$(kubectl get secret --namespace default secretName -o jsonpath="{.data.password-00}" | base64 --decode) + + 'path.to.value01' must not be empty, please add '--set path.to.value01=$PASSWORD_01' to the command. To get the current value: + + export PASSWORD_01=$(kubectl get secret --namespace default secretName -o jsonpath="{.data.password-01}" | base64 --decode) +``` + +## Upgrading + +### To 1.0.0 + +[On November 13, 2020, Helm v2 support was formally finished](https://github.com/helm/charts#status-of-the-project), this major version is the result of the required changes applied to the Helm Chart to be able to incorporate the different features added in Helm v3 and to be consistent with the Helm project itself regarding the Helm v2 EOL. + +**What changes were introduced in this major version?** + +- Previous versions of this Helm Chart use `apiVersion: v1` (installable by both Helm 2 and 3), this Helm Chart was updated to `apiVersion: v2` (installable by Helm 3 only). [Here](https://helm.sh/docs/topics/charts/#the-apiversion-field) you can find more information about the `apiVersion` field. +- Use `type: library`. [Here](https://v3.helm.sh/docs/faq/#library-chart-support) you can find more information. +- The different fields present in the *Chart.yaml* file has been ordered alphabetically in a homogeneous way for all the Bitnami Helm Charts + +**Considerations when upgrading to this version** + +- If you want to upgrade to this version from a previous one installed with Helm v3, you shouldn't face any issues +- If you want to upgrade to this version using Helm v2, this scenario is not supported as this version doesn't support Helm v2 anymore +- If you installed the previous version with Helm v2 and wants to upgrade to this version with Helm v3, please refer to the [official Helm documentation](https://helm.sh/docs/topics/v2_v3_migration/#migration-use-cases) about migrating from Helm v2 to v3 + +**Useful links** + +- https://docs.bitnami.com/tutorials/resolve-helm2-helm3-post-migration-issues/ +- https://helm.sh/docs/topics/v2_v3_migration/ +- https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/ + +## License + +Copyright © 2022 Bitnami + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_affinities.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_affinities.tpl new file mode 100644 index 00000000..189ea403 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_affinities.tpl @@ -0,0 +1,102 @@ +{{/* vim: set filetype=mustache: */}} + +{{/* +Return a soft nodeAffinity definition +{{ include "common.affinities.nodes.soft" (dict "key" "FOO" "values" (list "BAR" "BAZ")) -}} +*/}} +{{- define "common.affinities.nodes.soft" -}} +preferredDuringSchedulingIgnoredDuringExecution: + - preference: + matchExpressions: + - key: {{ .key }} + operator: In + values: + {{- range .values }} + - {{ . | quote }} + {{- end }} + weight: 1 +{{- end -}} + +{{/* +Return a hard nodeAffinity definition +{{ include "common.affinities.nodes.hard" (dict "key" "FOO" "values" (list "BAR" "BAZ")) -}} +*/}} +{{- define "common.affinities.nodes.hard" -}} +requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .key }} + operator: In + values: + {{- range .values }} + - {{ . | quote }} + {{- end }} +{{- end -}} + +{{/* +Return a nodeAffinity definition +{{ include "common.affinities.nodes" (dict "type" "soft" "key" "FOO" "values" (list "BAR" "BAZ")) -}} +*/}} +{{- define "common.affinities.nodes" -}} + {{- if eq .type "soft" }} + {{- include "common.affinities.nodes.soft" . -}} + {{- else if eq .type "hard" }} + {{- include "common.affinities.nodes.hard" . -}} + {{- end -}} +{{- end -}} + +{{/* +Return a soft podAffinity/podAntiAffinity definition +{{ include "common.affinities.pods.soft" (dict "component" "FOO" "extraMatchLabels" .Values.extraMatchLabels "context" $) -}} +*/}} +{{- define "common.affinities.pods.soft" -}} +{{- $component := default "" .component -}} +{{- $extraMatchLabels := default (dict) .extraMatchLabels -}} +preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: {{- (include "common.labels.matchLabels" .context) | nindent 10 }} + {{- if not (empty $component) }} + {{ printf "app.kubernetes.io/component: %s" $component }} + {{- end }} + {{- range $key, $value := $extraMatchLabels }} + {{ $key }}: {{ $value | quote }} + {{- end }} + namespaces: + - {{ .context.Release.Namespace | quote }} + topologyKey: kubernetes.io/hostname + weight: 1 +{{- end -}} + +{{/* +Return a hard podAffinity/podAntiAffinity definition +{{ include "common.affinities.pods.hard" (dict "component" "FOO" "extraMatchLabels" .Values.extraMatchLabels "context" $) -}} +*/}} +{{- define "common.affinities.pods.hard" -}} +{{- $component := default "" .component -}} +{{- $extraMatchLabels := default (dict) .extraMatchLabels -}} +requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: {{- (include "common.labels.matchLabels" .context) | nindent 8 }} + {{- if not (empty $component) }} + {{ printf "app.kubernetes.io/component: %s" $component }} + {{- end }} + {{- range $key, $value := $extraMatchLabels }} + {{ $key }}: {{ $value | quote }} + {{- end }} + namespaces: + - {{ .context.Release.Namespace | quote }} + topologyKey: kubernetes.io/hostname +{{- end -}} + +{{/* +Return a podAffinity/podAntiAffinity definition +{{ include "common.affinities.pods" (dict "type" "soft" "key" "FOO" "values" (list "BAR" "BAZ")) -}} +*/}} +{{- define "common.affinities.pods" -}} + {{- if eq .type "soft" }} + {{- include "common.affinities.pods.soft" . -}} + {{- else if eq .type "hard" }} + {{- include "common.affinities.pods.hard" . -}} + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_capabilities.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_capabilities.tpl new file mode 100644 index 00000000..4ec8321e --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_capabilities.tpl @@ -0,0 +1,139 @@ +{{/* vim: set filetype=mustache: */}} + +{{/* +Return the target Kubernetes version +*/}} +{{- define "common.capabilities.kubeVersion" -}} +{{- if .Values.global }} + {{- if .Values.global.kubeVersion }} + {{- .Values.global.kubeVersion -}} + {{- else }} + {{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} + {{- end -}} +{{- else }} +{{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for poddisruptionbudget. +*/}} +{{- define "common.capabilities.policy.apiVersion" -}} +{{- if semverCompare "<1.21-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "policy/v1beta1" -}} +{{- else -}} +{{- print "policy/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for networkpolicy. +*/}} +{{- define "common.capabilities.networkPolicy.apiVersion" -}} +{{- if semverCompare "<1.7-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "extensions/v1beta1" -}} +{{- else -}} +{{- print "networking.k8s.io/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for cronjob. +*/}} +{{- define "common.capabilities.cronjob.apiVersion" -}} +{{- if semverCompare "<1.21-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "batch/v1beta1" -}} +{{- else -}} +{{- print "batch/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for deployment. +*/}} +{{- define "common.capabilities.deployment.apiVersion" -}} +{{- if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "extensions/v1beta1" -}} +{{- else -}} +{{- print "apps/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for statefulset. +*/}} +{{- define "common.capabilities.statefulset.apiVersion" -}} +{{- if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "apps/v1beta1" -}} +{{- else -}} +{{- print "apps/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for ingress. +*/}} +{{- define "common.capabilities.ingress.apiVersion" -}} +{{- if .Values.ingress -}} +{{- if .Values.ingress.apiVersion -}} +{{- .Values.ingress.apiVersion -}} +{{- else if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "extensions/v1beta1" -}} +{{- else if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "networking.k8s.io/v1beta1" -}} +{{- else -}} +{{- print "networking.k8s.io/v1" -}} +{{- end }} +{{- else if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "extensions/v1beta1" -}} +{{- else if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "networking.k8s.io/v1beta1" -}} +{{- else -}} +{{- print "networking.k8s.io/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for RBAC resources. +*/}} +{{- define "common.capabilities.rbac.apiVersion" -}} +{{- if semverCompare "<1.17-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "rbac.authorization.k8s.io/v1beta1" -}} +{{- else -}} +{{- print "rbac.authorization.k8s.io/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for CRDs. +*/}} +{{- define "common.capabilities.crd.apiVersion" -}} +{{- if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "apiextensions.k8s.io/v1beta1" -}} +{{- else -}} +{{- print "apiextensions.k8s.io/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for APIService. +*/}} +{{- define "common.capabilities.apiService.apiVersion" -}} +{{- if semverCompare "<1.10-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "apiregistration.k8s.io/v1beta1" -}} +{{- else -}} +{{- print "apiregistration.k8s.io/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Returns true if the used Helm version is 3.3+. +A way to check the used Helm version was not introduced until version 3.3.0 with .Capabilities.HelmVersion, which contains an additional "{}}" structure. +This check is introduced as a regexMatch instead of {{ if .Capabilities.HelmVersion }} because checking for the key HelmVersion in <3.3 results in a "interface not found" error. +**To be removed when the catalog's minimun Helm version is 3.3** +*/}} +{{- define "common.capabilities.supportsHelmVersion" -}} +{{- if regexMatch "{(v[0-9])*[^}]*}}$" (.Capabilities | toString ) }} + {{- true -}} +{{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_errors.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_errors.tpl new file mode 100644 index 00000000..a79cc2e3 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_errors.tpl @@ -0,0 +1,23 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Through error when upgrading using empty passwords values that must not be empty. + +Usage: +{{- $validationError00 := include "common.validations.values.single.empty" (dict "valueKey" "path.to.password00" "secret" "secretName" "field" "password-00") -}} +{{- $validationError01 := include "common.validations.values.single.empty" (dict "valueKey" "path.to.password01" "secret" "secretName" "field" "password-01") -}} +{{ include "common.errors.upgrade.passwords.empty" (dict "validationErrors" (list $validationError00 $validationError01) "context" $) }} + +Required password params: + - validationErrors - String - Required. List of validation strings to be return, if it is empty it won't throw error. + - context - Context - Required. Parent context. +*/}} +{{- define "common.errors.upgrade.passwords.empty" -}} + {{- $validationErrors := join "" .validationErrors -}} + {{- if and $validationErrors .context.Release.IsUpgrade -}} + {{- $errorString := "\nPASSWORDS ERROR: You must provide your current passwords when upgrading the release." -}} + {{- $errorString = print $errorString "\n Note that even after reinstallation, old credentials may be needed as they may be kept in persistent volume claims." -}} + {{- $errorString = print $errorString "\n Further information can be obtained at https://docs.bitnami.com/general/how-to/troubleshoot-helm-chart-issues/#credential-errors-while-upgrading-chart-releases" -}} + {{- $errorString = print $errorString "\n%s" -}} + {{- printf $errorString $validationErrors | fail -}} + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_images.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_images.tpl new file mode 100644 index 00000000..42ffbc72 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_images.tpl @@ -0,0 +1,75 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Return the proper image name +{{ include "common.images.image" ( dict "imageRoot" .Values.path.to.the.image "global" $) }} +*/}} +{{- define "common.images.image" -}} +{{- $registryName := .imageRoot.registry -}} +{{- $repositoryName := .imageRoot.repository -}} +{{- $tag := .imageRoot.tag | toString -}} +{{- if .global }} + {{- if .global.imageRegistry }} + {{- $registryName = .global.imageRegistry -}} + {{- end -}} +{{- end -}} +{{- if $registryName }} +{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} +{{- else -}} +{{- printf "%s:%s" $repositoryName $tag -}} +{{- end -}} +{{- end -}} + +{{/* +Return the proper Docker Image Registry Secret Names (deprecated: use common.images.renderPullSecrets instead) +{{ include "common.images.pullSecrets" ( dict "images" (list .Values.path.to.the.image1, .Values.path.to.the.image2) "global" .Values.global) }} +*/}} +{{- define "common.images.pullSecrets" -}} + {{- $pullSecrets := list }} + + {{- if .global }} + {{- range .global.imagePullSecrets -}} + {{- $pullSecrets = append $pullSecrets . -}} + {{- end -}} + {{- end -}} + + {{- range .images -}} + {{- range .pullSecrets -}} + {{- $pullSecrets = append $pullSecrets . -}} + {{- end -}} + {{- end -}} + + {{- if (not (empty $pullSecrets)) }} +imagePullSecrets: + {{- range $pullSecrets }} + - name: {{ . }} + {{- end }} + {{- end }} +{{- end -}} + +{{/* +Return the proper Docker Image Registry Secret Names evaluating values as templates +{{ include "common.images.renderPullSecrets" ( dict "images" (list .Values.path.to.the.image1, .Values.path.to.the.image2) "context" $) }} +*/}} +{{- define "common.images.renderPullSecrets" -}} + {{- $pullSecrets := list }} + {{- $context := .context }} + + {{- if $context.Values.global }} + {{- range $context.Values.global.imagePullSecrets -}} + {{- $pullSecrets = append $pullSecrets (include "common.tplvalues.render" (dict "value" . "context" $context)) -}} + {{- end -}} + {{- end -}} + + {{- range .images -}} + {{- range .pullSecrets -}} + {{- $pullSecrets = append $pullSecrets (include "common.tplvalues.render" (dict "value" . "context" $context)) -}} + {{- end -}} + {{- end -}} + + {{- if (not (empty $pullSecrets)) }} +imagePullSecrets: + {{- range $pullSecrets }} + - name: {{ . }} + {{- end }} + {{- end }} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_ingress.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_ingress.tpl new file mode 100644 index 00000000..8caf73a6 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_ingress.tpl @@ -0,0 +1,68 @@ +{{/* vim: set filetype=mustache: */}} + +{{/* +Generate backend entry that is compatible with all Kubernetes API versions. + +Usage: +{{ include "common.ingress.backend" (dict "serviceName" "backendName" "servicePort" "backendPort" "context" $) }} + +Params: + - serviceName - String. Name of an existing service backend + - servicePort - String/Int. Port name (or number) of the service. It will be translated to different yaml depending if it is a string or an integer. + - context - Dict - Required. The context for the template evaluation. +*/}} +{{- define "common.ingress.backend" -}} +{{- $apiVersion := (include "common.capabilities.ingress.apiVersion" .context) -}} +{{- if or (eq $apiVersion "extensions/v1beta1") (eq $apiVersion "networking.k8s.io/v1beta1") -}} +serviceName: {{ .serviceName }} +servicePort: {{ .servicePort }} +{{- else -}} +service: + name: {{ .serviceName }} + port: + {{- if typeIs "string" .servicePort }} + name: {{ .servicePort }} + {{- else if or (typeIs "int" .servicePort) (typeIs "float64" .servicePort) }} + number: {{ .servicePort | int }} + {{- end }} +{{- end -}} +{{- end -}} + +{{/* +Print "true" if the API pathType field is supported +Usage: +{{ include "common.ingress.supportsPathType" . }} +*/}} +{{- define "common.ingress.supportsPathType" -}} +{{- if (semverCompare "<1.18-0" (include "common.capabilities.kubeVersion" .)) -}} +{{- print "false" -}} +{{- else -}} +{{- print "true" -}} +{{- end -}} +{{- end -}} + +{{/* +Returns true if the ingressClassname field is supported +Usage: +{{ include "common.ingress.supportsIngressClassname" . }} +*/}} +{{- define "common.ingress.supportsIngressClassname" -}} +{{- if semverCompare "<1.18-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "false" -}} +{{- else -}} +{{- print "true" -}} +{{- end -}} +{{- end -}} + +{{/* +Return true if cert-manager required annotations for TLS signed +certificates are set in the Ingress annotations +Ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations +Usage: +{{ include "common.ingress.certManagerRequest" ( dict "annotations" .Values.path.to.the.ingress.annotations ) }} +*/}} +{{- define "common.ingress.certManagerRequest" -}} +{{ if or (hasKey .annotations "cert-manager.io/cluster-issuer") (hasKey .annotations "cert-manager.io/issuer") }} + {{- true -}} +{{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_labels.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_labels.tpl new file mode 100644 index 00000000..252066c7 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_labels.tpl @@ -0,0 +1,18 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Kubernetes standard labels +*/}} +{{- define "common.labels.standard" -}} +app.kubernetes.io/name: {{ include "common.names.name" . }} +helm.sh/chart: {{ include "common.names.chart" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +Labels to use on deploy.spec.selector.matchLabels and svc.spec.selector +*/}} +{{- define "common.labels.matchLabels" -}} +app.kubernetes.io/name: {{ include "common.names.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_names.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_names.tpl new file mode 100644 index 00000000..c8574d17 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_names.tpl @@ -0,0 +1,63 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "common.names.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "common.names.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "common.names.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create a default fully qualified dependency name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +Usage: +{{ include "common.names.dependency.fullname" (dict "chartName" "dependency-chart-name" "chartValues" .Values.dependency-chart "context" $) }} +*/}} +{{- define "common.names.dependency.fullname" -}} +{{- if .chartValues.fullnameOverride -}} +{{- .chartValues.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .chartName .chartValues.nameOverride -}} +{{- if contains $name .context.Release.Name -}} +{{- .context.Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .context.Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Allow the release namespace to be overridden for multi-namespace deployments in combined charts. +*/}} +{{- define "common.names.namespace" -}} +{{- if .Values.namespaceOverride -}} +{{- .Values.namespaceOverride -}} +{{- else -}} +{{- .Release.Namespace -}} +{{- end -}} +{{- end -}} \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_secrets.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_secrets.tpl new file mode 100644 index 00000000..a53fb44f --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_secrets.tpl @@ -0,0 +1,140 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Generate secret name. + +Usage: +{{ include "common.secrets.name" (dict "existingSecret" .Values.path.to.the.existingSecret "defaultNameSuffix" "mySuffix" "context" $) }} + +Params: + - existingSecret - ExistingSecret/String - Optional. The path to the existing secrets in the values.yaml given by the user + to be used instead of the default one. Allows for it to be of type String (just the secret name) for backwards compatibility. + +info: https://github.com/bitnami/charts/tree/master/bitnami/common#existingsecret + - defaultNameSuffix - String - Optional. It is used only if we have several secrets in the same deployment. + - context - Dict - Required. The context for the template evaluation. +*/}} +{{- define "common.secrets.name" -}} +{{- $name := (include "common.names.fullname" .context) -}} + +{{- if .defaultNameSuffix -}} +{{- $name = printf "%s-%s" $name .defaultNameSuffix | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{- with .existingSecret -}} +{{- if not (typeIs "string" .) -}} +{{- with .name -}} +{{- $name = . -}} +{{- end -}} +{{- else -}} +{{- $name = . -}} +{{- end -}} +{{- end -}} + +{{- printf "%s" $name -}} +{{- end -}} + +{{/* +Generate secret key. + +Usage: +{{ include "common.secrets.key" (dict "existingSecret" .Values.path.to.the.existingSecret "key" "keyName") }} + +Params: + - existingSecret - ExistingSecret/String - Optional. The path to the existing secrets in the values.yaml given by the user + to be used instead of the default one. Allows for it to be of type String (just the secret name) for backwards compatibility. + +info: https://github.com/bitnami/charts/tree/master/bitnami/common#existingsecret + - key - String - Required. Name of the key in the secret. +*/}} +{{- define "common.secrets.key" -}} +{{- $key := .key -}} + +{{- if .existingSecret -}} + {{- if not (typeIs "string" .existingSecret) -}} + {{- if .existingSecret.keyMapping -}} + {{- $key = index .existingSecret.keyMapping $.key -}} + {{- end -}} + {{- end }} +{{- end -}} + +{{- printf "%s" $key -}} +{{- end -}} + +{{/* +Generate secret password or retrieve one if already created. + +Usage: +{{ include "common.secrets.passwords.manage" (dict "secret" "secret-name" "key" "keyName" "providedValues" (list "path.to.password1" "path.to.password2") "length" 10 "strong" false "chartName" "chartName" "context" $) }} + +Params: + - secret - String - Required - Name of the 'Secret' resource where the password is stored. + - key - String - Required - Name of the key in the secret. + - providedValues - List - Required - The path to the validating value in the values.yaml, e.g: "mysql.password". Will pick first parameter with a defined value. + - length - int - Optional - Length of the generated random password. + - strong - Boolean - Optional - Whether to add symbols to the generated random password. + - chartName - String - Optional - Name of the chart used when said chart is deployed as a subchart. + - context - Context - Required - Parent context. + +The order in which this function returns a secret password: + 1. Already existing 'Secret' resource + (If a 'Secret' resource is found under the name provided to the 'secret' parameter to this function and that 'Secret' resource contains a key with the name passed as the 'key' parameter to this function then the value of this existing secret password will be returned) + 2. Password provided via the values.yaml + (If one of the keys passed to the 'providedValues' parameter to this function is a valid path to a key in the values.yaml and has a value, the value of the first key with a value will be returned) + 3. Randomly generated secret password + (A new random secret password with the length specified in the 'length' parameter will be generated and returned) + +*/}} +{{- define "common.secrets.passwords.manage" -}} + +{{- $password := "" }} +{{- $subchart := "" }} +{{- $chartName := default "" .chartName }} +{{- $passwordLength := default 10 .length }} +{{- $providedPasswordKey := include "common.utils.getKeyFromList" (dict "keys" .providedValues "context" $.context) }} +{{- $providedPasswordValue := include "common.utils.getValueFromKey" (dict "key" $providedPasswordKey "context" $.context) }} +{{- $secretData := (lookup "v1" "Secret" $.context.Release.Namespace .secret).data }} +{{- if $secretData }} + {{- if hasKey $secretData .key }} + {{- $password = index $secretData .key }} + {{- else }} + {{- printf "\nPASSWORDS ERROR: The secret \"%s\" does not contain the key \"%s\"\n" .secret .key | fail -}} + {{- end -}} +{{- else if $providedPasswordValue }} + {{- $password = $providedPasswordValue | toString | b64enc | quote }} +{{- else }} + + {{- if .context.Values.enabled }} + {{- $subchart = $chartName }} + {{- end -}} + + {{- $requiredPassword := dict "valueKey" $providedPasswordKey "secret" .secret "field" .key "subchart" $subchart "context" $.context -}} + {{- $requiredPasswordError := include "common.validations.values.single.empty" $requiredPassword -}} + {{- $passwordValidationErrors := list $requiredPasswordError -}} + {{- include "common.errors.upgrade.passwords.empty" (dict "validationErrors" $passwordValidationErrors "context" $.context) -}} + + {{- if .strong }} + {{- $subStr := list (lower (randAlpha 1)) (randNumeric 1) (upper (randAlpha 1)) | join "_" }} + {{- $password = randAscii $passwordLength }} + {{- $password = regexReplaceAllLiteral "\\W" $password "@" | substr 5 $passwordLength }} + {{- $password = printf "%s%s" $subStr $password | toString | shuffle | b64enc | quote }} + {{- else }} + {{- $password = randAlphaNum $passwordLength | b64enc | quote }} + {{- end }} +{{- end -}} +{{- printf "%s" $password -}} +{{- end -}} + +{{/* +Returns whether a previous generated secret already exists + +Usage: +{{ include "common.secrets.exists" (dict "secret" "secret-name" "context" $) }} + +Params: + - secret - String - Required - Name of the 'Secret' resource where the password is stored. + - context - Context - Required - Parent context. +*/}} +{{- define "common.secrets.exists" -}} +{{- $secret := (lookup "v1" "Secret" $.context.Release.Namespace .secret) }} +{{- if $secret }} + {{- true -}} +{{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_storage.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_storage.tpl new file mode 100644 index 00000000..60e2a844 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_storage.tpl @@ -0,0 +1,23 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Return the proper Storage Class +{{ include "common.storage.class" ( dict "persistence" .Values.path.to.the.persistence "global" $) }} +*/}} +{{- define "common.storage.class" -}} + +{{- $storageClass := .persistence.storageClass -}} +{{- if .global -}} + {{- if .global.storageClass -}} + {{- $storageClass = .global.storageClass -}} + {{- end -}} +{{- end -}} + +{{- if $storageClass -}} + {{- if (eq "-" $storageClass) -}} + {{- printf "storageClassName: \"\"" -}} + {{- else }} + {{- printf "storageClassName: %s" $storageClass -}} + {{- end -}} +{{- end -}} + +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_tplvalues.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_tplvalues.tpl new file mode 100644 index 00000000..2db16685 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_tplvalues.tpl @@ -0,0 +1,13 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Renders a value that contains template. +Usage: +{{ include "common.tplvalues.render" ( dict "value" .Values.path.to.the.Value "context" $) }} +*/}} +{{- define "common.tplvalues.render" -}} + {{- if typeIs "string" .value }} + {{- tpl .value .context }} + {{- else }} + {{- tpl (.value | toYaml) .context }} + {{- end }} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_utils.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_utils.tpl new file mode 100644 index 00000000..ea083a24 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_utils.tpl @@ -0,0 +1,62 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Print instructions to get a secret value. +Usage: +{{ include "common.utils.secret.getvalue" (dict "secret" "secret-name" "field" "secret-value-field" "context" $) }} +*/}} +{{- define "common.utils.secret.getvalue" -}} +{{- $varname := include "common.utils.fieldToEnvVar" . -}} +export {{ $varname }}=$(kubectl get secret --namespace {{ .context.Release.Namespace | quote }} {{ .secret }} -o jsonpath="{.data.{{ .field }}}" | base64 --decode) +{{- end -}} + +{{/* +Build env var name given a field +Usage: +{{ include "common.utils.fieldToEnvVar" dict "field" "my-password" }} +*/}} +{{- define "common.utils.fieldToEnvVar" -}} + {{- $fieldNameSplit := splitList "-" .field -}} + {{- $upperCaseFieldNameSplit := list -}} + + {{- range $fieldNameSplit -}} + {{- $upperCaseFieldNameSplit = append $upperCaseFieldNameSplit ( upper . ) -}} + {{- end -}} + + {{ join "_" $upperCaseFieldNameSplit }} +{{- end -}} + +{{/* +Gets a value from .Values given +Usage: +{{ include "common.utils.getValueFromKey" (dict "key" "path.to.key" "context" $) }} +*/}} +{{- define "common.utils.getValueFromKey" -}} +{{- $splitKey := splitList "." .key -}} +{{- $value := "" -}} +{{- $latestObj := $.context.Values -}} +{{- range $splitKey -}} + {{- if not $latestObj -}} + {{- printf "please review the entire path of '%s' exists in values" $.key | fail -}} + {{- end -}} + {{- $value = ( index $latestObj . ) -}} + {{- $latestObj = $value -}} +{{- end -}} +{{- printf "%v" (default "" $value) -}} +{{- end -}} + +{{/* +Returns first .Values key with a defined value or first of the list if all non-defined +Usage: +{{ include "common.utils.getKeyFromList" (dict "keys" (list "path.to.key1" "path.to.key2") "context" $) }} +*/}} +{{- define "common.utils.getKeyFromList" -}} +{{- $key := first .keys -}} +{{- $reverseKeys := reverse .keys }} +{{- range $reverseKeys }} + {{- $value := include "common.utils.getValueFromKey" (dict "key" . "context" $.context ) }} + {{- if $value -}} + {{- $key = . }} + {{- end -}} +{{- end -}} +{{- printf "%s" $key -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_warnings.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_warnings.tpl new file mode 100644 index 00000000..ae10fa41 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/_warnings.tpl @@ -0,0 +1,14 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Warning about using rolling tag. +Usage: +{{ include "common.warnings.rollingTag" .Values.path.to.the.imageRoot }} +*/}} +{{- define "common.warnings.rollingTag" -}} + +{{- if and (contains "bitnami/" .repository) (not (.tag | toString | regexFind "-r\\d+$|sha256:")) }} +WARNING: Rolling tag detected ({{ .repository }}:{{ .tag }}), please note that it is strongly recommended to avoid using rolling tags in a production environment. ++info https://docs.bitnami.com/containers/how-to/understand-rolling-tags-containers/ +{{- end }} + +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_cassandra.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_cassandra.tpl new file mode 100644 index 00000000..ded1ae3b --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_cassandra.tpl @@ -0,0 +1,72 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Validate Cassandra required passwords are not empty. + +Usage: +{{ include "common.validations.values.cassandra.passwords" (dict "secret" "secretName" "subchart" false "context" $) }} +Params: + - secret - String - Required. Name of the secret where Cassandra values are stored, e.g: "cassandra-passwords-secret" + - subchart - Boolean - Optional. Whether Cassandra is used as subchart or not. Default: false +*/}} +{{- define "common.validations.values.cassandra.passwords" -}} + {{- $existingSecret := include "common.cassandra.values.existingSecret" . -}} + {{- $enabled := include "common.cassandra.values.enabled" . -}} + {{- $dbUserPrefix := include "common.cassandra.values.key.dbUser" . -}} + {{- $valueKeyPassword := printf "%s.password" $dbUserPrefix -}} + + {{- if and (or (not $existingSecret) (eq $existingSecret "\"\"")) (eq $enabled "true") -}} + {{- $requiredPasswords := list -}} + + {{- $requiredPassword := dict "valueKey" $valueKeyPassword "secret" .secret "field" "cassandra-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredPassword -}} + + {{- include "common.validations.values.multiple.empty" (dict "required" $requiredPasswords "context" .context) -}} + + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for existingSecret. + +Usage: +{{ include "common.cassandra.values.existingSecret" (dict "context" $) }} +Params: + - subchart - Boolean - Optional. Whether Cassandra is used as subchart or not. Default: false +*/}} +{{- define "common.cassandra.values.existingSecret" -}} + {{- if .subchart -}} + {{- .context.Values.cassandra.dbUser.existingSecret | quote -}} + {{- else -}} + {{- .context.Values.dbUser.existingSecret | quote -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for enabled cassandra. + +Usage: +{{ include "common.cassandra.values.enabled" (dict "context" $) }} +*/}} +{{- define "common.cassandra.values.enabled" -}} + {{- if .subchart -}} + {{- printf "%v" .context.Values.cassandra.enabled -}} + {{- else -}} + {{- printf "%v" (not .context.Values.enabled) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for the key dbUser + +Usage: +{{ include "common.cassandra.values.key.dbUser" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether Cassandra is used as subchart or not. Default: false +*/}} +{{- define "common.cassandra.values.key.dbUser" -}} + {{- if .subchart -}} + cassandra.dbUser + {{- else -}} + dbUser + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_mariadb.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_mariadb.tpl new file mode 100644 index 00000000..b6906ff7 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_mariadb.tpl @@ -0,0 +1,103 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Validate MariaDB required passwords are not empty. + +Usage: +{{ include "common.validations.values.mariadb.passwords" (dict "secret" "secretName" "subchart" false "context" $) }} +Params: + - secret - String - Required. Name of the secret where MariaDB values are stored, e.g: "mysql-passwords-secret" + - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false +*/}} +{{- define "common.validations.values.mariadb.passwords" -}} + {{- $existingSecret := include "common.mariadb.values.auth.existingSecret" . -}} + {{- $enabled := include "common.mariadb.values.enabled" . -}} + {{- $architecture := include "common.mariadb.values.architecture" . -}} + {{- $authPrefix := include "common.mariadb.values.key.auth" . -}} + {{- $valueKeyRootPassword := printf "%s.rootPassword" $authPrefix -}} + {{- $valueKeyUsername := printf "%s.username" $authPrefix -}} + {{- $valueKeyPassword := printf "%s.password" $authPrefix -}} + {{- $valueKeyReplicationPassword := printf "%s.replicationPassword" $authPrefix -}} + + {{- if and (or (not $existingSecret) (eq $existingSecret "\"\"")) (eq $enabled "true") -}} + {{- $requiredPasswords := list -}} + + {{- $requiredRootPassword := dict "valueKey" $valueKeyRootPassword "secret" .secret "field" "mariadb-root-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredRootPassword -}} + + {{- $valueUsername := include "common.utils.getValueFromKey" (dict "key" $valueKeyUsername "context" .context) }} + {{- if not (empty $valueUsername) -}} + {{- $requiredPassword := dict "valueKey" $valueKeyPassword "secret" .secret "field" "mariadb-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredPassword -}} + {{- end -}} + + {{- if (eq $architecture "replication") -}} + {{- $requiredReplicationPassword := dict "valueKey" $valueKeyReplicationPassword "secret" .secret "field" "mariadb-replication-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredReplicationPassword -}} + {{- end -}} + + {{- include "common.validations.values.multiple.empty" (dict "required" $requiredPasswords "context" .context) -}} + + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for existingSecret. + +Usage: +{{ include "common.mariadb.values.auth.existingSecret" (dict "context" $) }} +Params: + - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false +*/}} +{{- define "common.mariadb.values.auth.existingSecret" -}} + {{- if .subchart -}} + {{- .context.Values.mariadb.auth.existingSecret | quote -}} + {{- else -}} + {{- .context.Values.auth.existingSecret | quote -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for enabled mariadb. + +Usage: +{{ include "common.mariadb.values.enabled" (dict "context" $) }} +*/}} +{{- define "common.mariadb.values.enabled" -}} + {{- if .subchart -}} + {{- printf "%v" .context.Values.mariadb.enabled -}} + {{- else -}} + {{- printf "%v" (not .context.Values.enabled) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for architecture + +Usage: +{{ include "common.mariadb.values.architecture" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false +*/}} +{{- define "common.mariadb.values.architecture" -}} + {{- if .subchart -}} + {{- .context.Values.mariadb.architecture -}} + {{- else -}} + {{- .context.Values.architecture -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for the key auth + +Usage: +{{ include "common.mariadb.values.key.auth" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false +*/}} +{{- define "common.mariadb.values.key.auth" -}} + {{- if .subchart -}} + mariadb.auth + {{- else -}} + auth + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_mongodb.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_mongodb.tpl new file mode 100644 index 00000000..a071ea4d --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_mongodb.tpl @@ -0,0 +1,108 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Validate MongoDB® required passwords are not empty. + +Usage: +{{ include "common.validations.values.mongodb.passwords" (dict "secret" "secretName" "subchart" false "context" $) }} +Params: + - secret - String - Required. Name of the secret where MongoDB® values are stored, e.g: "mongodb-passwords-secret" + - subchart - Boolean - Optional. Whether MongoDB® is used as subchart or not. Default: false +*/}} +{{- define "common.validations.values.mongodb.passwords" -}} + {{- $existingSecret := include "common.mongodb.values.auth.existingSecret" . -}} + {{- $enabled := include "common.mongodb.values.enabled" . -}} + {{- $authPrefix := include "common.mongodb.values.key.auth" . -}} + {{- $architecture := include "common.mongodb.values.architecture" . -}} + {{- $valueKeyRootPassword := printf "%s.rootPassword" $authPrefix -}} + {{- $valueKeyUsername := printf "%s.username" $authPrefix -}} + {{- $valueKeyDatabase := printf "%s.database" $authPrefix -}} + {{- $valueKeyPassword := printf "%s.password" $authPrefix -}} + {{- $valueKeyReplicaSetKey := printf "%s.replicaSetKey" $authPrefix -}} + {{- $valueKeyAuthEnabled := printf "%s.enabled" $authPrefix -}} + + {{- $authEnabled := include "common.utils.getValueFromKey" (dict "key" $valueKeyAuthEnabled "context" .context) -}} + + {{- if and (or (not $existingSecret) (eq $existingSecret "\"\"")) (eq $enabled "true") (eq $authEnabled "true") -}} + {{- $requiredPasswords := list -}} + + {{- $requiredRootPassword := dict "valueKey" $valueKeyRootPassword "secret" .secret "field" "mongodb-root-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredRootPassword -}} + + {{- $valueUsername := include "common.utils.getValueFromKey" (dict "key" $valueKeyUsername "context" .context) }} + {{- $valueDatabase := include "common.utils.getValueFromKey" (dict "key" $valueKeyDatabase "context" .context) }} + {{- if and $valueUsername $valueDatabase -}} + {{- $requiredPassword := dict "valueKey" $valueKeyPassword "secret" .secret "field" "mongodb-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredPassword -}} + {{- end -}} + + {{- if (eq $architecture "replicaset") -}} + {{- $requiredReplicaSetKey := dict "valueKey" $valueKeyReplicaSetKey "secret" .secret "field" "mongodb-replica-set-key" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredReplicaSetKey -}} + {{- end -}} + + {{- include "common.validations.values.multiple.empty" (dict "required" $requiredPasswords "context" .context) -}} + + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for existingSecret. + +Usage: +{{ include "common.mongodb.values.auth.existingSecret" (dict "context" $) }} +Params: + - subchart - Boolean - Optional. Whether MongoDb is used as subchart or not. Default: false +*/}} +{{- define "common.mongodb.values.auth.existingSecret" -}} + {{- if .subchart -}} + {{- .context.Values.mongodb.auth.existingSecret | quote -}} + {{- else -}} + {{- .context.Values.auth.existingSecret | quote -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for enabled mongodb. + +Usage: +{{ include "common.mongodb.values.enabled" (dict "context" $) }} +*/}} +{{- define "common.mongodb.values.enabled" -}} + {{- if .subchart -}} + {{- printf "%v" .context.Values.mongodb.enabled -}} + {{- else -}} + {{- printf "%v" (not .context.Values.enabled) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for the key auth + +Usage: +{{ include "common.mongodb.values.key.auth" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether MongoDB® is used as subchart or not. Default: false +*/}} +{{- define "common.mongodb.values.key.auth" -}} + {{- if .subchart -}} + mongodb.auth + {{- else -}} + auth + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for architecture + +Usage: +{{ include "common.mongodb.values.architecture" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false +*/}} +{{- define "common.mongodb.values.architecture" -}} + {{- if .subchart -}} + {{- .context.Values.mongodb.architecture -}} + {{- else -}} + {{- .context.Values.architecture -}} + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_postgresql.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_postgresql.tpl new file mode 100644 index 00000000..164ec0d0 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_postgresql.tpl @@ -0,0 +1,129 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Validate PostgreSQL required passwords are not empty. + +Usage: +{{ include "common.validations.values.postgresql.passwords" (dict "secret" "secretName" "subchart" false "context" $) }} +Params: + - secret - String - Required. Name of the secret where postgresql values are stored, e.g: "postgresql-passwords-secret" + - subchart - Boolean - Optional. Whether postgresql is used as subchart or not. Default: false +*/}} +{{- define "common.validations.values.postgresql.passwords" -}} + {{- $existingSecret := include "common.postgresql.values.existingSecret" . -}} + {{- $enabled := include "common.postgresql.values.enabled" . -}} + {{- $valueKeyPostgresqlPassword := include "common.postgresql.values.key.postgressPassword" . -}} + {{- $valueKeyPostgresqlReplicationEnabled := include "common.postgresql.values.key.replicationPassword" . -}} + {{- if and (or (not $existingSecret) (eq $existingSecret "\"\"")) (eq $enabled "true") -}} + {{- $requiredPasswords := list -}} + {{- $requiredPostgresqlPassword := dict "valueKey" $valueKeyPostgresqlPassword "secret" .secret "field" "postgresql-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredPostgresqlPassword -}} + + {{- $enabledReplication := include "common.postgresql.values.enabled.replication" . -}} + {{- if (eq $enabledReplication "true") -}} + {{- $requiredPostgresqlReplicationPassword := dict "valueKey" $valueKeyPostgresqlReplicationEnabled "secret" .secret "field" "postgresql-replication-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredPostgresqlReplicationPassword -}} + {{- end -}} + + {{- include "common.validations.values.multiple.empty" (dict "required" $requiredPasswords "context" .context) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to decide whether evaluate global values. + +Usage: +{{ include "common.postgresql.values.use.global" (dict "key" "key-of-global" "context" $) }} +Params: + - key - String - Required. Field to be evaluated within global, e.g: "existingSecret" +*/}} +{{- define "common.postgresql.values.use.global" -}} + {{- if .context.Values.global -}} + {{- if .context.Values.global.postgresql -}} + {{- index .context.Values.global.postgresql .key | quote -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for existingSecret. + +Usage: +{{ include "common.postgresql.values.existingSecret" (dict "context" $) }} +*/}} +{{- define "common.postgresql.values.existingSecret" -}} + {{- $globalValue := include "common.postgresql.values.use.global" (dict "key" "existingSecret" "context" .context) -}} + + {{- if .subchart -}} + {{- default (.context.Values.postgresql.existingSecret | quote) $globalValue -}} + {{- else -}} + {{- default (.context.Values.existingSecret | quote) $globalValue -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for enabled postgresql. + +Usage: +{{ include "common.postgresql.values.enabled" (dict "context" $) }} +*/}} +{{- define "common.postgresql.values.enabled" -}} + {{- if .subchart -}} + {{- printf "%v" .context.Values.postgresql.enabled -}} + {{- else -}} + {{- printf "%v" (not .context.Values.enabled) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for the key postgressPassword. + +Usage: +{{ include "common.postgresql.values.key.postgressPassword" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether postgresql is used as subchart or not. Default: false +*/}} +{{- define "common.postgresql.values.key.postgressPassword" -}} + {{- $globalValue := include "common.postgresql.values.use.global" (dict "key" "postgresqlUsername" "context" .context) -}} + + {{- if not $globalValue -}} + {{- if .subchart -}} + postgresql.postgresqlPassword + {{- else -}} + postgresqlPassword + {{- end -}} + {{- else -}} + global.postgresql.postgresqlPassword + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for enabled.replication. + +Usage: +{{ include "common.postgresql.values.enabled.replication" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether postgresql is used as subchart or not. Default: false +*/}} +{{- define "common.postgresql.values.enabled.replication" -}} + {{- if .subchart -}} + {{- printf "%v" .context.Values.postgresql.replication.enabled -}} + {{- else -}} + {{- printf "%v" .context.Values.replication.enabled -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for the key replication.password. + +Usage: +{{ include "common.postgresql.values.key.replicationPassword" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether postgresql is used as subchart or not. Default: false +*/}} +{{- define "common.postgresql.values.key.replicationPassword" -}} + {{- if .subchart -}} + postgresql.replication.password + {{- else -}} + replication.password + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_redis.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_redis.tpl new file mode 100644 index 00000000..5d72959b --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_redis.tpl @@ -0,0 +1,76 @@ + +{{/* vim: set filetype=mustache: */}} +{{/* +Validate Redis™ required passwords are not empty. + +Usage: +{{ include "common.validations.values.redis.passwords" (dict "secret" "secretName" "subchart" false "context" $) }} +Params: + - secret - String - Required. Name of the secret where redis values are stored, e.g: "redis-passwords-secret" + - subchart - Boolean - Optional. Whether redis is used as subchart or not. Default: false +*/}} +{{- define "common.validations.values.redis.passwords" -}} + {{- $enabled := include "common.redis.values.enabled" . -}} + {{- $valueKeyPrefix := include "common.redis.values.keys.prefix" . -}} + {{- $standarizedVersion := include "common.redis.values.standarized.version" . }} + + {{- $existingSecret := ternary (printf "%s%s" $valueKeyPrefix "auth.existingSecret") (printf "%s%s" $valueKeyPrefix "existingSecret") (eq $standarizedVersion "true") }} + {{- $existingSecretValue := include "common.utils.getValueFromKey" (dict "key" $existingSecret "context" .context) }} + + {{- $valueKeyRedisPassword := ternary (printf "%s%s" $valueKeyPrefix "auth.password") (printf "%s%s" $valueKeyPrefix "password") (eq $standarizedVersion "true") }} + {{- $valueKeyRedisUseAuth := ternary (printf "%s%s" $valueKeyPrefix "auth.enabled") (printf "%s%s" $valueKeyPrefix "usePassword") (eq $standarizedVersion "true") }} + + {{- if and (or (not $existingSecret) (eq $existingSecret "\"\"")) (eq $enabled "true") -}} + {{- $requiredPasswords := list -}} + + {{- $useAuth := include "common.utils.getValueFromKey" (dict "key" $valueKeyRedisUseAuth "context" .context) -}} + {{- if eq $useAuth "true" -}} + {{- $requiredRedisPassword := dict "valueKey" $valueKeyRedisPassword "secret" .secret "field" "redis-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredRedisPassword -}} + {{- end -}} + + {{- include "common.validations.values.multiple.empty" (dict "required" $requiredPasswords "context" .context) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for enabled redis. + +Usage: +{{ include "common.redis.values.enabled" (dict "context" $) }} +*/}} +{{- define "common.redis.values.enabled" -}} + {{- if .subchart -}} + {{- printf "%v" .context.Values.redis.enabled -}} + {{- else -}} + {{- printf "%v" (not .context.Values.enabled) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right prefix path for the values + +Usage: +{{ include "common.redis.values.key.prefix" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether redis is used as subchart or not. Default: false +*/}} +{{- define "common.redis.values.keys.prefix" -}} + {{- if .subchart -}}redis.{{- else -}}{{- end -}} +{{- end -}} + +{{/* +Checks whether the redis chart's includes the standarizations (version >= 14) + +Usage: +{{ include "common.redis.values.standarized.version" (dict "context" $) }} +*/}} +{{- define "common.redis.values.standarized.version" -}} + + {{- $standarizedAuth := printf "%s%s" (include "common.redis.values.keys.prefix" .) "auth" -}} + {{- $standarizedAuthValues := include "common.utils.getValueFromKey" (dict "key" $standarizedAuth "context" .context) }} + + {{- if $standarizedAuthValues -}} + {{- true -}} + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_validations.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_validations.tpl new file mode 100644 index 00000000..9a814cf4 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/templates/validations/_validations.tpl @@ -0,0 +1,46 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Validate values must not be empty. + +Usage: +{{- $validateValueConf00 := (dict "valueKey" "path.to.value" "secret" "secretName" "field" "password-00") -}} +{{- $validateValueConf01 := (dict "valueKey" "path.to.value" "secret" "secretName" "field" "password-01") -}} +{{ include "common.validations.values.empty" (dict "required" (list $validateValueConf00 $validateValueConf01) "context" $) }} + +Validate value params: + - valueKey - String - Required. The path to the validating value in the values.yaml, e.g: "mysql.password" + - secret - String - Optional. Name of the secret where the validating value is generated/stored, e.g: "mysql-passwords-secret" + - field - String - Optional. Name of the field in the secret data, e.g: "mysql-password" +*/}} +{{- define "common.validations.values.multiple.empty" -}} + {{- range .required -}} + {{- include "common.validations.values.single.empty" (dict "valueKey" .valueKey "secret" .secret "field" .field "context" $.context) -}} + {{- end -}} +{{- end -}} + +{{/* +Validate a value must not be empty. + +Usage: +{{ include "common.validations.value.empty" (dict "valueKey" "mariadb.password" "secret" "secretName" "field" "my-password" "subchart" "subchart" "context" $) }} + +Validate value params: + - valueKey - String - Required. The path to the validating value in the values.yaml, e.g: "mysql.password" + - secret - String - Optional. Name of the secret where the validating value is generated/stored, e.g: "mysql-passwords-secret" + - field - String - Optional. Name of the field in the secret data, e.g: "mysql-password" + - subchart - String - Optional - Name of the subchart that the validated password is part of. +*/}} +{{- define "common.validations.values.single.empty" -}} + {{- $value := include "common.utils.getValueFromKey" (dict "key" .valueKey "context" .context) }} + {{- $subchart := ternary "" (printf "%s." .subchart) (empty .subchart) }} + + {{- if not $value -}} + {{- $varname := "my-value" -}} + {{- $getCurrentValue := "" -}} + {{- if and .secret .field -}} + {{- $varname = include "common.utils.fieldToEnvVar" . -}} + {{- $getCurrentValue = printf " To get the current value:\n\n %s\n" (include "common.utils.secret.getvalue" .) -}} + {{- end -}} + {{- printf "\n '%s' must not be empty, please add '--set %s%s=$%s' to the command.%s" .valueKey $subchart .valueKey $varname $getCurrentValue -}} + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/values.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/values.yaml new file mode 100644 index 00000000..f2df68e5 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/charts/common/values.yaml @@ -0,0 +1,5 @@ +## bitnami/common +## It is required by CI/CD tools and processes. +## @skip exampleValue +## +exampleValue: common-chart diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/ci/values-production-with-rbac-and-metrics.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/ci/values-production-with-rbac-and-metrics.yaml new file mode 100644 index 00000000..2f1a8d95 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/ci/values-production-with-rbac-and-metrics.yaml @@ -0,0 +1,33 @@ +# Test values file for generating all of the yaml and check that +# the rendering is correct +architecture: replication +auth: + usePasswordFiles: true + +primary: + extraEnvVars: + - name: TEST + value: "3" + extraEnvVarsSecret: example-secret + extraEnvVarsCM: example-cm + podDisruptionBudget: + create: true + +secondary: + replicaCount: 2 + extraEnvVars: + - name: TEST + value: "2" + extraEnvVarsSecret: example-secret-2 + extraEnvVarsCM: example-cm-2 + podDisruptionBudget: + create: true + +serviceAccount: + create: true + name: mariadb-service-account +rbac: + create: true + +metrics: + enabled: true diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/NOTES.txt b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/NOTES.txt new file mode 100644 index 00000000..65a65e7c --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/NOTES.txt @@ -0,0 +1,75 @@ +CHART NAME: {{ .Chart.Name }} +CHART VERSION: {{ .Chart.Version }} +APP VERSION: {{ .Chart.AppVersion }} + +** Please be patient while the chart is being deployed ** + +{{- if .Values.diagnosticMode.enabled }} +The chart has been deployed in diagnostic mode. All probes have been disabled and the command has been overwritten with: + + command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 4 }} + args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 4 }} + +Get the list of pods by executing: + + kubectl get pods --namespace {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }} + +Access the pod you want to debug by executing + + kubectl exec --namespace {{ .Release.Namespace }} -ti -- bash + +In order to replicate the container startup scripts execute this command: + + /opt/bitnami/scripts/mariadb/entrypoint.sh /opt/bitnami/scripts/mariadb/run.sh + +{{- else }} + +Tip: + + Watch the deployment status using the command: kubectl get pods -w --namespace {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }} + +Services: + + echo Primary: {{ include "mariadb.primary.fullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:{{ coalesce .Values.primary.service.ports.mysql .Values.primary.service.port }} +{{- if eq .Values.architecture "replication" }} + echo Secondary: {{ include "mariadb.secondary.fullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:{{ coalesce .Values.secondary.service.ports.mysql .Values.secondary.service.port }} +{{- end }} + +Administrator credentials: + + Username: root + Password : $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "mariadb.secretName" . }} -o jsonpath="{.data.mariadb-root-password}" | base64 --decode) + +To connect to your database: + + 1. Run a pod that you can use as a client: + + kubectl run {{ include "common.names.fullname" . }}-client --rm --tty -i --restart='Never' --image {{ template "mariadb.image" . }} --namespace {{ .Release.Namespace }} --command -- bash + + 2. To connect to primary service (read/write): + + mysql -h {{ include "mariadb.primary.fullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }} -uroot -p {{ .Values.auth.database }} + +{{- if eq .Values.architecture "replication" }} + + 3. To connect to secondary service (read-only): + + mysql -h {{ include "mariadb.secondary.fullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }} -uroot -p {{ .Values.auth.database }} +{{- end }} + +To upgrade this helm chart: + + 1. Obtain the password as described on the 'Administrator credentials' section and set the 'auth.rootPassword' parameter as shown below: + + ROOT_PASSWORD=$(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "mariadb.secretName" . }} -o jsonpath="{.data.mariadb-root-password}" | base64 --decode) + helm upgrade --namespace {{ .Release.Namespace }} {{ .Release.Name }} bitnami/mariadb --set auth.rootPassword=$ROOT_PASSWORD + +{{- include "common.warnings.rollingTag" .Values.image }} +{{- include "common.warnings.rollingTag" .Values.metrics.image }} +{{- include "common.warnings.rollingTag" .Values.volumePermissions.image }} +{{- include "mariadb.validateValues" . }} +{{- if not .Values.auth.customPasswordFiles -}} + {{- $passwordValidationErrors := include "common.validations.values.mariadb.passwords" (dict "secret" (include "common.names.fullname" .) "context" $) -}} + {{- include "common.errors.upgrade.passwords.empty" (dict "validationErrors" (list $passwordValidationErrors) "context" $) -}} +{{- end }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/_helpers.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/_helpers.tpl new file mode 100644 index 00000000..5f6f8f79 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/_helpers.tpl @@ -0,0 +1,149 @@ +{{/* vim: set filetype=mustache: */}} + +{{- define "mariadb.primary.fullname" -}} +{{- if eq .Values.architecture "replication" }} +{{- printf "%s-%s" (include "common.names.fullname" .) "primary" | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- include "common.names.fullname" . -}} +{{- end -}} +{{- end -}} + +{{- define "mariadb.secondary.fullname" -}} +{{- printf "%s-%s" (include "common.names.fullname" .) "secondary" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Return the proper MariaDB image name +*/}} +{{- define "mariadb.image" -}} +{{ include "common.images.image" (dict "imageRoot" .Values.image "global" .Values.global) }} +{{- end -}} + +{{/* +Return the proper metrics image name +*/}} +{{- define "mariadb.metrics.image" -}} +{{ include "common.images.image" (dict "imageRoot" .Values.metrics.image "global" .Values.global) }} +{{- end -}} + +{{/* +Return the proper image name (for the init container volume-permissions image) +*/}} +{{- define "mariadb.volumePermissions.image" -}} +{{ include "common.images.image" (dict "imageRoot" .Values.volumePermissions.image "global" .Values.global) }} +{{- end -}} + +{{/* +Return the proper Docker Image Registry Secret Names +*/}} +{{- define "mariadb.imagePullSecrets" -}} +{{ include "common.images.pullSecrets" (dict "images" (list .Values.image .Values.metrics.image .Values.volumePermissions.image) "global" .Values.global) }} +{{- end -}} + +{{ template "mariadb.initdbScriptsCM" . }} +{{/* +Get the initialization scripts ConfigMap name. +*/}} +{{- define "mariadb.initdbScriptsCM" -}} +{{- if .Values.initdbScriptsConfigMap -}} +{{- printf "%s" .Values.initdbScriptsConfigMap -}} +{{- else -}} +{{- printf "%s-init-scripts" (include "mariadb.primary.fullname" .) -}} +{{- end -}} +{{- end -}} + +{{/* +Create the name of the service account to use +*/}} +{{- define "mariadb.serviceAccountName" -}} +{{- if .Values.serviceAccount.create -}} + {{ default (include "common.names.fullname" .) .Values.serviceAccount.name }} +{{- else -}} + {{ default "default" .Values.serviceAccount.name }} +{{- end -}} +{{- end -}} + +{{/* +Return the configmap with the MariaDB Primary configuration +*/}} +{{- define "mariadb.primary.configmapName" -}} +{{- if .Values.primary.existingConfigmap -}} + {{- printf "%s" (tpl .Values.primary.existingConfigmap $) -}} +{{- else -}} + {{- printf "%s" (include "mariadb.primary.fullname" .) -}} +{{- end -}} +{{- end -}} + +{{/* +Return true if a configmap object should be created for MariaDB Secondary +*/}} +{{- define "mariadb.primary.createConfigmap" -}} +{{- if and .Values.primary.configuration (not .Values.primary.existingConfigmap) }} + {{- true -}} +{{- else -}} +{{- end -}} +{{- end -}} + +{{/* +Return the configmap with the MariaDB Primary configuration +*/}} +{{- define "mariadb.secondary.configmapName" -}} +{{- if .Values.secondary.existingConfigmap -}} + {{- printf "%s" (tpl .Values.secondary.existingConfigmap $) -}} +{{- else -}} + {{- printf "%s" (include "mariadb.secondary.fullname" .) -}} +{{- end -}} +{{- end -}} + +{{/* +Return true if a configmap object should be created for MariaDB Secondary +*/}} +{{- define "mariadb.secondary.createConfigmap" -}} +{{- if and (eq .Values.architecture "replication") .Values.secondary.configuration (not .Values.secondary.existingConfigmap) }} + {{- true -}} +{{- else -}} +{{- end -}} +{{- end -}} + +{{/* +Return the secret with MariaDB credentials +*/}} +{{- define "mariadb.secretName" -}} + {{- if .Values.auth.existingSecret -}} + {{- printf "%s" .Values.auth.existingSecret -}} + {{- else -}} + {{- printf "%s" (include "common.names.fullname" .) -}} + {{- end -}} +{{- end -}} + +{{/* +Return true if a secret object should be created for MariaDB +*/}} +{{- define "mariadb.createSecret" -}} +{{- if not (or .Values.auth.existingSecret .Values.auth.customPasswordFiles) }} + {{- true -}} +{{- end -}} +{{- end -}} + +{{/* +Compile all warnings into a single message, and call fail. +*/}} +{{- define "mariadb.validateValues" -}} +{{- $messages := list -}} +{{- $messages := append $messages (include "mariadb.validateValues.architecture" .) -}} +{{- $messages := without $messages "" -}} +{{- $message := join "\n" $messages -}} + +{{- if $message -}} +{{- printf "\nVALUES VALIDATION:\n%s" $message | fail -}} +{{- end -}} +{{- end -}} + +{{/* Validate values of MariaDB - must provide a valid architecture */}} +{{- define "mariadb.validateValues.architecture" -}} +{{- if and (ne .Values.architecture "standalone") (ne .Values.architecture "replication") -}} +mariadb: architecture + Invalid architecture selected. Valid values are "standalone" and + "replication". Please set a valid architecture (--set architecture="xxxx") +{{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/extra-list.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/extra-list.yaml new file mode 100644 index 00000000..9ac65f9e --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/extra-list.yaml @@ -0,0 +1,4 @@ +{{- range .Values.extraDeploy }} +--- +{{ include "common.tplvalues.render" (dict "value" . "context" $) }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/networkpolicy-egress.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/networkpolicy-egress.yaml new file mode 100644 index 00000000..dc309e0e --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/networkpolicy-egress.yaml @@ -0,0 +1,32 @@ +{{- if and .Values.networkPolicy.enabled (or .Values.networkPolicy.egressRules.denyConnectionsToExternal .Values.networkPolicy.egressRules.customRules) }} +apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }} +kind: NetworkPolicy +metadata: + name: {{ printf "%s-egress" (include "common.names.fullname" .) }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + podSelector: + matchLabels: + {{- include "common.labels.standard" . | nindent 6 }} + policyTypes: + - Egress + egress: + {{- if .Values.networkPolicy.egressRules.denyConnectionsToExternal }} + - ports: + - port: 53 + protocol: UDP + - port: 53 + protocol: TCP + - to: + - namespaceSelector: {} + {{- end }} + {{- if .Values.networkPolicy.egressRules.customRules }} + {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.egressRules.customRules "context" $) | nindent 4 }} + {{- end }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/configmap.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/configmap.yaml new file mode 100644 index 00000000..ae4d5b17 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/configmap.yaml @@ -0,0 +1,18 @@ +{{- if (include "mariadb.primary.createConfigmap" .) }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "mariadb.primary.fullname" . }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + app.kubernetes.io/component: primary + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +data: + my.cnf: |- +{{ .Values.primary.configuration | indent 4 }} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/initialization-configmap.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/initialization-configmap.yaml new file mode 100644 index 00000000..f85903c3 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/initialization-configmap.yaml @@ -0,0 +1,11 @@ +{{- if and .Values.initdbScripts (not .Values.initdbScriptsConfigMap) }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ printf "%s-init-scripts" (include "mariadb.primary.fullname" .) }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + app.kubernetes.io/component: primary +data: +{{- include "common.tplvalues.render" (dict "value" .Values.initdbScripts "context" .) | nindent 2 }} +{{ end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/networkpolicy-ingress.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/networkpolicy-ingress.yaml new file mode 100644 index 00000000..be184955 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/networkpolicy-ingress.yaml @@ -0,0 +1,55 @@ +{{- if and .Values.networkPolicy.enabled (or .Values.networkPolicy.metrics.enabled .Values.networkPolicy.ingressRules.primaryAccessOnlyFrom.enabled) }} +apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }} +kind: NetworkPolicy +metadata: + name: {{ printf "%s-ingress" (include "common.names.fullname" .) }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + podSelector: + matchLabels: + app.kubernetes.io/component: primary + {{- include "common.labels.standard" . | nindent 6 }} + ingress: + {{- if and .Values.metrics.enabled .Values.networkPolicy.metrics.enabled (or .Values.networkPolicy.metrics.namespaceSelector .Values.networkPolicy.metrics.podSelector) }} + - from: + {{- if .Values.networkPolicy.metrics.namespaceSelector }} + - namespaceSelector: + matchLabels: + {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.metrics.namespaceSelector "context" $) | nindent 14 }} + {{- end }} + {{- if .Values.networkPolicy.metrics.podSelector }} + - podSelector: + matchLabels: + {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.metrics.podSelector "context" $) | nindent 14 }} + {{- end }} + {{- end }} + {{- if and .Values.networkPolicy.ingressRules.primaryAccessOnlyFrom.enabled (or .Values.networkPolicy.ingressRules.primaryAccessOnlyFrom.namespaceSelector .Values.networkPolicy.ingressRules.primaryAccessOnlyFrom.podSelector) }} + - from: + {{- if .Values.networkPolicy.ingressRules.primaryAccessOnlyFrom.namespaceSelector }} + - namespaceSelector: + matchLabels: + {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.primaryAccessOnlyFrom.namespaceSelector "context" $) | nindent 14 }} + {{- end }} + {{- if .Values.networkPolicy.ingressRules.primaryAccessOnlyFrom.podSelector }} + - podSelector: + matchLabels: + {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.primaryAccessOnlyFrom.podSelector "context" $) | nindent 14 }} + {{- end }} + {{- end }} + {{- if and .Values.networkPolicy.ingressRules.primaryAccessOnlyFrom.enabled (eq .Values.architecture "replication") }} + - from: + - podSelector: + matchLabels: + app.kubernetes.io/component: secondary + {{- include "common.labels.standard" . | nindent 14 }} + {{- end }} + {{- if .Values.networkPolicy.ingressRules.primaryAccessOnlyFrom.customRules }} + {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.primaryAccessOnlyFrom.customRules "context" $) | nindent 4 }} + {{- end }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/pdb.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/pdb.yaml new file mode 100644 index 00000000..d9230586 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/pdb.yaml @@ -0,0 +1,25 @@ +{{- if .Values.primary.pdb.create }} +apiVersion: {{ include "common.capabilities.policy.apiVersion" . }} +kind: PodDisruptionBudget +metadata: + name: {{ include "mariadb.primary.fullname" . }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + app.kubernetes.io/component: primary + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + {{- if .Values.primary.pdb.minAvailable }} + minAvailable: {{ .Values.primary.pdb.minAvailable }} + {{- end }} + {{- if .Values.primary.pdb.maxUnavailable }} + maxUnavailable: {{ .Values.primary.pdb.maxUnavailable }} + {{- end }} + selector: + matchLabels: {{ include "common.labels.matchLabels" . | nindent 6 }} + app.kubernetes.io/component: primary +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/statefulset.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/statefulset.yaml new file mode 100644 index 00000000..3ee7005b --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/statefulset.yaml @@ -0,0 +1,386 @@ +apiVersion: {{ include "common.capabilities.statefulset.apiVersion" . }} +kind: StatefulSet +metadata: + name: {{ include "mariadb.primary.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + app.kubernetes.io/component: primary + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + replicas: 1 + revisionHistoryLimit: {{ .Values.primary.revisionHistoryLimit }} + selector: + matchLabels: {{ include "common.labels.matchLabels" . | nindent 6 }} + app.kubernetes.io/component: primary + serviceName: {{ include "mariadb.primary.fullname" . }} + {{- if .Values.primary.updateStrategy }} + updateStrategy: {{- toYaml .Values.primary.updateStrategy | nindent 4 }} + {{- end }} + template: + metadata: + annotations: + {{- if (include "mariadb.primary.createConfigmap" .) }} + checksum/configuration: {{ include (print $.Template.BasePath "/primary/configmap.yaml") . | sha256sum }} + {{- end }} + {{- if .Values.primary.podAnnotations }} + {{- include "common.tplvalues.render" (dict "value" .Values.primary.podAnnotations "context" $) | nindent 8 }} + {{- end }} + labels: {{- include "common.labels.standard" . | nindent 8 }} + app.kubernetes.io/component: primary + {{- if .Values.primary.podLabels }} + {{- include "common.tplvalues.render" (dict "value" .Values.primary.podLabels "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 8 }} + {{- end }} + spec: + {{- include "mariadb.imagePullSecrets" . | nindent 6 }} + {{- if .Values.primary.hostAliases }} + hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.primary.hostAliases "context" $) | nindent 8 }} + {{- end }} + {{- if or .Values.primary.schedulerName .Values.schedulerName }} + schedulerName: {{ (coalesce .Values.primary.schedulerName .Values.schedulerName) | quote }} + {{- end }} + serviceAccountName: {{ template "mariadb.serviceAccountName" . }} + {{- if .Values.primary.affinity }} + affinity: {{- include "common.tplvalues.render" (dict "value" .Values.primary.affinity "context" $) | nindent 8 }} + {{- else }} + affinity: + podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.primary.podAffinityPreset "component" "primary" "context" $) | nindent 10 }} + podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.primary.podAntiAffinityPreset "component" "primary" "context" $) | nindent 10 }} + nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.primary.nodeAffinityPreset.type "key" .Values.primary.nodeAffinityPreset.key "values" .Values.primary.nodeAffinityPreset.values) | nindent 10 }} + {{- end }} + {{- if .Values.primary.nodeSelector }} + nodeSelector: {{- include "common.tplvalues.render" (dict "value" .Values.primary.nodeSelector "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.primary.tolerations }} + tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.primary.tolerations "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.primary.schedulerName }} + schedulerName: {{ .Values.primary.schedulerName }} + {{- end }} + {{- if .Values.primary.topologySpreadConstraints }} + topologySpreadConstraints: {{- include "common.tplvalues.render" (dict "value" .Values.primary.topologySpreadConstraints "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.primary.priorityClassName }} + priorityClassName: {{ .Values.primary.priorityClassName | quote }} + {{- else if .Values.priorityClassName }} + priorityClassName: {{ .Values.priorityClassName | quote }} + {{- end }} + {{- if .Values.primary.podSecurityContext.enabled }} + securityContext: {{- omit .Values.primary.podSecurityContext "enabled" | toYaml | nindent 8 }} + {{- end }} + {{- if or .Values.primary.initContainers (and .Values.primary.podSecurityContext.enabled .Values.volumePermissions.enabled .Values.primary.persistence.enabled) }} + initContainers: + {{- if .Values.primary.initContainers }} + {{- include "common.tplvalues.render" (dict "value" .Values.primary.initContainers "context" $) | nindent 8 }} + {{- end }} + {{- if and .Values.primary.podSecurityContext.enabled .Values.volumePermissions.enabled .Values.primary.persistence.enabled }} + - name: volume-permissions + image: {{ include "mariadb.volumePermissions.image" . }} + imagePullPolicy: {{ .Values.volumePermissions.image.pullPolicy | quote }} + command: + - /bin/bash + - -ec + - | + chown -R {{ .Values.primary.containerSecurityContext.runAsUser }}:{{ .Values.primary.podSecurityContext.fsGroup }} /bitnami/mariadb + securityContext: + runAsUser: 0 + {{- if .Values.volumePermissions.resources }} + resources: {{- toYaml .Values.volumePermissions.resources | nindent 12 }} + {{- end }} + volumeMounts: + - name: data + mountPath: /bitnami/mariadb + {{- if .Values.primary.persistence.subPath }} + subPath: {{ .Values.primary.persistence.subPath }} + {{- end }} + {{- end }} + {{- end }} + containers: + - name: mariadb + image: {{ include "mariadb.image" . }} + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} + {{- if .Values.primary.containerSecurityContext.enabled }} + securityContext: {{- omit .Values.primary.containerSecurityContext "enabled" | toYaml | nindent 12 }} + {{- end }} + {{- if .Values.diagnosticMode.enabled }} + command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }} + {{- else if .Values.primary.command }} + command: {{- include "common.tplvalues.render" (dict "value" .Values.primary.command "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.diagnosticMode.enabled }} + args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }} + {{- else if .Values.primary.args }} + args: {{- include "common.tplvalues.render" (dict "value" .Values.primary.args "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.primary.lifecycleHooks }} + lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.primary.lifecycleHooks "context" $) | nindent 12 }} + {{- end }} + env: + - name: BITNAMI_DEBUG + value: {{ ternary "true" "false" (or .Values.image.debug .Values.diagnosticMode.enabled) | quote }} + {{- if .Values.auth.usePasswordFiles }} + - name: MARIADB_ROOT_PASSWORD_FILE + value: {{ default "/opt/bitnami/mariadb/secrets/mariadb-root-password" .Values.auth.customPasswordFiles.root }} + {{- else }} + - name: MARIADB_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "mariadb.secretName" . }} + key: mariadb-root-password + {{- end }} + {{- if not (empty .Values.auth.username) }} + - name: MARIADB_USER + value: {{ .Values.auth.username | quote }} + {{- if .Values.auth.usePasswordFiles }} + - name: MARIADB_PASSWORD_FILE + value: {{ default "/opt/bitnami/mariadb/secrets/mariadb-password" .Values.auth.customPasswordFiles.user }} + {{- else }} + - name: MARIADB_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "mariadb.secretName" . }} + key: mariadb-password + {{- end }} + {{- end }} + - name: MARIADB_DATABASE + value: {{ .Values.auth.database | quote }} + {{- if eq .Values.architecture "replication" }} + - name: MARIADB_REPLICATION_MODE + value: "master" + - name: MARIADB_REPLICATION_USER + value: {{ .Values.auth.replicationUser | quote }} + {{- if .Values.auth.usePasswordFiles }} + - name: MARIADB_REPLICATION_PASSWORD_FILE + value: {{ default "/opt/bitnami/mariadb/secrets/mariadb-replication-password" .Values.auth.customPasswordFiles.replicator }} + {{- else }} + - name: MARIADB_REPLICATION_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "mariadb.secretName" . }} + key: mariadb-replication-password + {{- end }} + {{- end }} + {{- if .Values.primary.extraFlags }} + - name: MARIADB_EXTRA_FLAGS + value: "{{ .Values.primary.extraFlags }}" + {{- end }} + {{- if .Values.primary.startupWaitOptions }} + - name: MARIADB_STARTUP_WAIT_RETRIES + value: "{{ .Values.primary.startupWaitOptions.retries | default 300 }}" + - name: MARIADB_STARTUP_WAIT_SLEEP_TIME + value: "{{ .Values.primary.startupWaitOptions.sleepTime | default 2 }}" + {{- end }} + {{- if .Values.primary.extraEnvVars }} + {{- include "common.tplvalues.render" (dict "value" .Values.primary.extraEnvVars "context" $) | nindent 12 }} + {{- end }} + {{- if or .Values.primary.extraEnvVarsCM .Values.primary.extraEnvVarsSecret }} + envFrom: + {{- if .Values.primary.extraEnvVarsCM }} + - configMapRef: + name: {{ .Values.primary.extraEnvVarsCM }} + {{- end }} + {{- if .Values.primary.extraEnvVarsSecret }} + - secretRef: + name: {{ .Values.primary.extraEnvVarsSecret }} + {{- end }} + {{- end }} + ports: + - name: mysql + containerPort: 3306 + {{- if not .Values.diagnosticMode.enabled }} + {{- if .Values.primary.startupProbe.enabled }} + startupProbe: {{- omit .Values.primary.startupProbe "enabled" | toYaml | nindent 12 }} + exec: + command: + - /bin/bash + - -ec + - | + password_aux="${MARIADB_ROOT_PASSWORD:-}" + if [[ -f "${MARIADB_ROOT_PASSWORD_FILE:-}" ]]; then + password_aux=$(cat "$MARIADB_ROOT_PASSWORD_FILE") + fi + mysqladmin status -uroot -p"${password_aux}" + {{- else if .Values.primary.customStartupProbe }} + startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.primary.customStartupProbe "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.primary.livenessProbe.enabled }} + livenessProbe: {{- omit .Values.primary.livenessProbe "enabled" | toYaml | nindent 12 }} + exec: + command: + - /bin/bash + - -ec + - | + password_aux="${MARIADB_ROOT_PASSWORD:-}" + if [[ -f "${MARIADB_ROOT_PASSWORD_FILE:-}" ]]; then + password_aux=$(cat "$MARIADB_ROOT_PASSWORD_FILE") + fi + mysqladmin status -uroot -p"${password_aux}" + {{- else if .Values.primary.customLivenessProbe }} + livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.primary.customLivenessProbe "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.primary.readinessProbe.enabled }} + readinessProbe: {{- omit .Values.primary.readinessProbe "enabled" | toYaml | nindent 12 }} + exec: + command: + - /bin/bash + - -ec + - | + password_aux="${MARIADB_ROOT_PASSWORD:-}" + if [[ -f "${MARIADB_ROOT_PASSWORD_FILE:-}" ]]; then + password_aux=$(cat "$MARIADB_ROOT_PASSWORD_FILE") + fi + mysqladmin status -uroot -p"${password_aux}" + {{- else if .Values.primary.customReadinessProbe }} + readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.primary.customReadinessProbe "context" $) | nindent 12 }} + {{- end }} + {{- end }} + {{- if .Values.primary.resources }} + resources: {{ toYaml .Values.primary.resources | nindent 12 }} + {{- end }} + volumeMounts: + - name: data + mountPath: /bitnami/mariadb + {{- if .Values.primary.persistence.subPath }} + subPath: {{ .Values.primary.persistence.subPath }} + {{- end }} + {{- if or .Values.initdbScriptsConfigMap .Values.initdbScripts }} + - name: custom-init-scripts + mountPath: /docker-entrypoint-initdb.d + {{- end }} + {{- if or .Values.primary.configuration .Values.primary.existingConfigmap }} + - name: config + mountPath: /opt/bitnami/mariadb/conf/my.cnf + subPath: my.cnf + {{- end }} + {{- if and .Values.auth.usePasswordFiles (not .Values.auth.customPasswordFiles) }} + - name: mariadb-credentials + mountPath: /opt/bitnami/mariadb/secrets/ + {{- end }} + {{- if .Values.primary.extraVolumeMounts }} + {{- include "common.tplvalues.render" (dict "value" .Values.primary.extraVolumeMounts "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.metrics.enabled }} + - name: metrics + image: {{ include "mariadb.metrics.image" . }} + imagePullPolicy: {{ .Values.metrics.image.pullPolicy | quote }} + {{- if .Values.metrics.containerSecurityContext.enabled }} + securityContext: {{- omit .Values.metrics.containerSecurityContext "enabled" | toYaml | nindent 12 }} + {{- end }} + env: + {{- if .Values.auth.usePasswordFiles }} + - name: MARIADB_ROOT_PASSWORD_FILE + value: {{ default "/opt/bitnami/mysqld-exporter/secrets/mariadb-root-password" .Values.auth.customPasswordFiles.root }} + {{- else }} + - name: MARIADB_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "mariadb.secretName" . }} + key: mariadb-root-password + {{- end }} + {{- if .Values.diagnosticMode.enabled }} + command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }} + args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }} + {{- else }} + command: + - /bin/bash + - -ec + - | + password_aux="${MARIADB_ROOT_PASSWORD:-}" + if [[ -f "${MARIADB_ROOT_PASSWORD_FILE:-}" ]]; then + password_aux=$(cat "$MARIADB_ROOT_PASSWORD_FILE") + fi + DATA_SOURCE_NAME="root:${password_aux}@(localhost:3306)/" /bin/mysqld_exporter {{- range .Values.metrics.extraArgs.primary }} {{ . }} {{- end }} + {{- end }} + ports: + - name: metrics + containerPort: 9104 + {{- if not .Values.diagnosticMode.enabled }} + {{- if .Values.metrics.livenessProbe.enabled }} + livenessProbe: {{- omit .Values.metrics.livenessProbe "enabled" | toYaml | nindent 12 }} + httpGet: + path: /metrics + port: metrics + {{- end }} + {{- if .Values.metrics.readinessProbe.enabled }} + readinessProbe: {{- omit .Values.metrics.readinessProbe "enabled" | toYaml | nindent 12 }} + httpGet: + path: /metrics + port: metrics + {{- end }} + {{- end }} + {{- if .Values.metrics.resources }} + resources: {{- toYaml .Values.metrics.resources | nindent 12 }} + {{- end }} + {{- if and .Values.auth.usePasswordFiles (not .Values.auth.customPasswordFiles) }} + volumeMounts: + - name: mariadb-credentials + mountPath: /opt/bitnami/mysqld-exporter/secrets/ + {{- end }} + {{- end }} + {{- if .Values.primary.sidecars }} + {{- include "common.tplvalues.render" (dict "value" .Values.primary.sidecars "context" $) | nindent 8 }} + {{- end }} + volumes: + {{- if or .Values.primary.configuration .Values.primary.existingConfigmap }} + - name: config + configMap: + name: {{ include "mariadb.primary.configmapName" . }} + {{- end }} + {{- if or .Values.initdbScriptsConfigMap .Values.initdbScripts }} + - name: custom-init-scripts + configMap: + name: {{ template "mariadb.initdbScriptsCM" . }} + {{- end }} + {{- if and .Values.auth.usePasswordFiles (not .Values.auth.customPasswordFiles) }} + - name: mariadb-credentials + secret: + secretName: {{ template "mariadb.secretName" . }} + items: + - key: mariadb-root-password + path: mariadb-root-password + - key: mariadb-password + path: mariadb-password + {{- if eq .Values.architecture "replication" }} + - key: mariadb-replication-password + path: mariadb-replication-password + {{- end }} + {{- end }} + {{- if .Values.primary.extraVolumes }} + {{- include "common.tplvalues.render" (dict "value" .Values.primary.extraVolumes "context" $) | nindent 8 }} + {{- end }} + {{- if and .Values.primary.persistence.enabled .Values.primary.persistence.existingClaim }} + - name: data + persistentVolumeClaim: + claimName: {{ tpl .Values.primary.persistence.existingClaim . }} + {{- else if not .Values.primary.persistence.enabled }} + - name: data + emptyDir: {} + {{- else if and .Values.primary.persistence.enabled (not .Values.primary.persistence.existingClaim) }} + volumeClaimTemplates: + - metadata: + name: data + labels: {{ include "common.labels.matchLabels" . | nindent 10 }} + app.kubernetes.io/component: primary + {{- if .Values.primary.persistence.annotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.primary.persistence.annotations "context" $ ) | nindent 10 }} + {{- end }} + spec: + accessModes: + {{- range .Values.primary.persistence.accessModes }} + - {{ . | quote }} + {{- end }} + resources: + requests: + storage: {{ .Values.primary.persistence.size | quote }} + {{ include "common.storage.class" (dict "persistence" .Values.primary.persistence "global" .Values.global) }} + {{- if .Values.primary.persistence.selector }} + selector: {{- include "common.tplvalues.render" (dict "value" .Values.primary.persistence.selector "context" $) | nindent 10 }} + {{- end -}} + {{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/svc.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/svc.yaml new file mode 100644 index 00000000..3d59535d --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/primary/svc.yaml @@ -0,0 +1,61 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "mariadb.primary.fullname" . }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + app.kubernetes.io/component: primary + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + annotations: + {{- if .Values.commonAnnotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.primary.service.annotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.primary.service.annotations "context" $ ) | nindent 4 }} + {{- end }} + {{- if and .Values.metrics.enabled .Values.metrics.annotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.annotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + type: {{ .Values.primary.service.type }} + {{- if and .Values.primary.service.clusterIP (eq .Values.primary.service.type "ClusterIP") }} + clusterIP: {{ .Values.primary.service.clusterIP }} + {{- end }} + {{- if and .Values.primary.service.externalTrafficPolicy (or (eq .Values.primary.service.type "LoadBalancer") (eq .Values.primary.service.type "NodePort")) }} + externalTrafficPolicy: {{ .Values.primary.service.externalTrafficPolicy | quote }} + {{- end }} + {{- if and (eq .Values.primary.service.type "LoadBalancer") .Values.primary.service.loadBalancerSourceRanges }} + loadBalancerSourceRanges: {{ .Values.primary.service.loadBalancerSourceRanges }} + {{ end }} + {{- if (and (eq .Values.primary.service.type "LoadBalancer") (not (empty .Values.primary.service.loadBalancerIP))) }} + loadBalancerIP: {{ .Values.primary.service.loadBalancerIP }} + {{- end }} + {{- if .Values.primary.service.sessionAffinity }} + sessionAffinity: {{ .Values.primary.service.sessionAffinity }} + {{- end }} + {{- if .Values.primary.service.sessionAffinityConfig }} + sessionAffinityConfig: {{- include "common.tplvalues.render" (dict "value" .Values.primary.service.sessionAffinityConfig "context" $) | nindent 4 }} + {{- end }} + ports: + - name: mysql + port: {{ coalesce .Values.primary.service.ports.mysql .Values.primary.service.port }} + protocol: TCP + targetPort: mysql + {{- if (and (or (eq .Values.primary.service.type "NodePort") (eq .Values.primary.service.type "LoadBalancer")) (coalesce .Values.primary.service.nodePorts.mysql .Values.primary.service.nodePort)) }} + nodePort: {{ coalesce .Values.primary.service.nodePorts.mysql .Values.primary.service.nodePort }} + {{- else if eq .Values.primary.service.type "ClusterIP" }} + nodePort: null + {{- end }} + {{- if .Values.metrics.enabled }} + - name: metrics + port: 9104 + protocol: TCP + targetPort: metrics + {{- end }} + {{- if .Values.primary.service.extraPorts }} + {{- include "common.tplvalues.render" (dict "value" .Values.primary.service.extraPorts "context" $) | nindent 4 }} + {{- end }} + selector: {{ include "common.labels.matchLabels" . | nindent 4 }} + app.kubernetes.io/component: primary diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/prometheusrules.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/prometheusrules.yaml new file mode 100644 index 00000000..d751acbe --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/prometheusrules.yaml @@ -0,0 +1,24 @@ +{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: PrometheusRule +metadata: + name: {{ include "common.names.fullname" . }} + {{- if .Values.metrics.prometheusRule.namespace }} + namespace: {{ .Values.metrics.prometheusRule.namespace }} + {{- else }} + namespace: {{ .Release.Namespace }} + {{- end }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + app.kubernetes.io/component: metrics + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.prometheusRule.additionalLabels "context" $ ) | nindent 4 }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + groups: + - name: {{ include "common.names.fullname" . }} + rules: {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.prometheusRule.rules "context" $ ) | nindent 6 }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/role.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/role.yaml new file mode 100644 index 00000000..a561f51c --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/role.yaml @@ -0,0 +1,21 @@ +{{- if and .Values.serviceAccount.create .Values.rbac.create }} +apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }} +kind: Role +metadata: + name: {{ include "common.names.fullname" . }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +rules: + - apiGroups: + - "" + resources: + - endpoints + verbs: + - get +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/rolebinding.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/rolebinding.yaml new file mode 100644 index 00000000..671aa6ef --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/rolebinding.yaml @@ -0,0 +1,21 @@ +{{- if and .Values.serviceAccount.create .Values.rbac.create }} +kind: RoleBinding +apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }} +metadata: + name: {{ include "common.names.fullname" . }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +subjects: + - kind: ServiceAccount + name: {{ include "mariadb.serviceAccountName" . }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ include "common.names.fullname" . -}} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/configmap.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/configmap.yaml new file mode 100644 index 00000000..4cfec646 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/configmap.yaml @@ -0,0 +1,18 @@ +{{- if (include "mariadb.secondary.createConfigmap" .) }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "mariadb.secondary.fullname" . }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + app.kubernetes.io/component: secondary + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +data: + my.cnf: |- +{{ .Values.secondary.configuration | indent 4 }} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/networkpolicy-ingress.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/networkpolicy-ingress.yaml new file mode 100644 index 00000000..334a1428 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/networkpolicy-ingress.yaml @@ -0,0 +1,48 @@ +{{- if and .Values.networkPolicy.enabled (eq .Values.architecture "replication") (or .Values.networkPolicy.metrics.enabled .Values.networkPolicy.ingressRules.secondaryAccessOnlyFrom.enabled) }} +apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }} +kind: NetworkPolicy +metadata: + name: {{ printf "%s-ingress-secondary" (include "common.names.fullname" .) }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + podSelector: + matchLabels: + app.kubernetes.io/component: secondary + {{- include "common.labels.standard" . | nindent 6 }} + ingress: + {{- if and .Values.metrics.enabled .Values.networkPolicy.metrics.enabled (or .Values.networkPolicy.metrics.namespaceSelector .Values.networkPolicy.metrics.podSelector) }} + - from: + {{- if .Values.networkPolicy.metrics.namespaceSelector }} + - namespaceSelector: + matchLabels: + {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.metrics.namespaceSelector "context" $) | nindent 14 }} + {{- end }} + {{- if .Values.networkPolicy.metrics.podSelector }} + - podSelector: + matchLabels: + {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.metrics.podSelector "context" $) | nindent 14 }} + {{- end }} + {{- end }} + {{- if and .Values.networkPolicy.ingressRules.secondaryAccessOnlyFrom.enabled (or .Values.networkPolicy.ingressRules.secondaryAccessOnlyFrom.namespaceSelector .Values.networkPolicy.ingressRules.secondaryAccessOnlyFrom.podSelector) }} + - from: + {{- if .Values.networkPolicy.ingressRules.secondaryAccessOnlyFrom.namespaceSelector }} + - namespaceSelector: + matchLabels: + {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.secondaryAccessOnlyFrom.namespaceSelector "context" $) | nindent 14 }} + {{- end }} + {{- if .Values.networkPolicy.ingressRules.secondaryAccessOnlyFrom.podSelector }} + - podSelector: + matchLabels: + {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.secondaryAccessOnlyFrom.podSelector "context" $) | nindent 14 }} + {{- end }} + {{- end }} + {{- if .Values.networkPolicy.ingressRules.secondaryAccessOnlyFrom.customRules }} + {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.secondaryAccessOnlyFrom.customRules "context" $) | nindent 4 }} + {{- end }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/pdb.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/pdb.yaml new file mode 100644 index 00000000..cae28ffd --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/pdb.yaml @@ -0,0 +1,25 @@ +{{- if and (eq .Values.architecture "replication") .Values.secondary.pdb.create }} +apiVersion: {{ include "common.capabilities.policy.apiVersion" . }} +kind: PodDisruptionBudget +metadata: + name: {{ include "mariadb.secondary.fullname" . }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + app.kubernetes.io/component: secondary + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + {{- if .Values.secondary.pdb.minAvailable }} + minAvailable: {{ .Values.secondary.pdb.minAvailable }} + {{- end }} + {{- if .Values.secondary.pdb.maxUnavailable }} + maxUnavailable: {{ .Values.secondary.pdb.maxUnavailable }} + {{- end }} + selector: + matchLabels: {{ include "common.labels.matchLabels" . | nindent 6 }} + app.kubernetes.io/component: secondary +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/statefulset.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/statefulset.yaml new file mode 100644 index 00000000..017bb448 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/statefulset.yaml @@ -0,0 +1,357 @@ +{{- if eq .Values.architecture "replication" }} +apiVersion: {{ include "common.capabilities.statefulset.apiVersion" . }} +kind: StatefulSet +metadata: + name: {{ include "mariadb.secondary.fullname" . }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + app.kubernetes.io/component: secondary + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + replicas: {{ .Values.secondary.replicaCount }} + revisionHistoryLimit: {{ .Values.secondary.revisionHistoryLimit }} + selector: + matchLabels: {{ include "common.labels.matchLabels" . | nindent 6 }} + app.kubernetes.io/component: secondary + serviceName: {{ include "mariadb.secondary.fullname" . }} + podManagementPolicy: {{ .Values.secondary.podManagementPolicy }} + {{- if .Values.secondary.updateStrategy }} + updateStrategy: {{- toYaml .Values.secondary.updateStrategy | nindent 4 }} + {{- end }} + template: + metadata: + annotations: + {{- if (include "mariadb.secondary.createConfigmap" .) }} + checksum/configuration: {{ include (print $.Template.BasePath "/secondary/configmap.yaml") . | sha256sum }} + {{- end }} + {{- if .Values.secondary.podAnnotations }} + {{- include "common.tplvalues.render" (dict "value" .Values.secondary.podAnnotations "context" $) | nindent 8 }} + {{- end }} + labels: {{- include "common.labels.standard" . | nindent 8 }} + app.kubernetes.io/component: secondary + {{- if .Values.secondary.podLabels }} + {{- include "common.tplvalues.render" (dict "value" .Values.secondary.podLabels "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 8 }} + {{- end }} + spec: + {{- include "mariadb.imagePullSecrets" . | nindent 6 }} + {{- if or .Values.secondary.schedulerName .Values.schedulerName }} + schedulerName: {{ (coalesce .Values.secondary.schedulerName .Values.schedulerName) | quote }} + {{- end }} + serviceAccountName: {{ template "mariadb.serviceAccountName" . }} + {{- if .Values.secondary.hostAliases }} + hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.secondary.hostAliases "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.secondary.affinity }} + affinity: {{- include "common.tplvalues.render" (dict "value" .Values.secondary.affinity "context" $) | nindent 8 }} + {{- else }} + affinity: + podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.secondary.podAffinityPreset "component" "secondary" "context" $) | nindent 10 }} + podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.secondary.podAntiAffinityPreset "component" "secondary" "context" $) | nindent 10 }} + nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.secondary.nodeAffinityPreset.type "key" .Values.secondary.nodeAffinityPreset.key "values" .Values.secondary.nodeAffinityPreset.values) | nindent 10 }} + {{- end }} + {{- if .Values.secondary.nodeSelector }} + nodeSelector: {{- include "common.tplvalues.render" (dict "value" .Values.secondary.nodeSelector "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.secondary.tolerations }} + tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.secondary.tolerations "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.secondary.topologySpreadConstraints }} + topologySpreadConstraints: {{- include "common.tplvalues.render" (dict "value" .Values.secondary.topologySpreadConstraints "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.secondary.priorityClassName }} + priorityClassName: {{ .Values.secondary.priorityClassName | quote }} + {{- else if .Values.priorityClassName }} + priorityClassName: {{ .Values.priorityClassName | quote }} + {{- end }} + {{- if .Values.secondary.podSecurityContext.enabled }} + securityContext: {{- omit .Values.secondary.podSecurityContext "enabled" | toYaml | nindent 8 }} + {{- end }} + {{- if or .Values.secondary.initContainers (and .Values.secondary.podSecurityContext.enabled .Values.volumePermissions.enabled .Values.secondary.persistence.enabled) }} + initContainers: + {{- if .Values.secondary.initContainers }} + {{- include "common.tplvalues.render" (dict "value" .Values.secondary.initContainers "context" $) | nindent 8 }} + {{- end }} + {{- if and .Values.secondary.podSecurityContext.enabled .Values.volumePermissions.enabled .Values.secondary.persistence.enabled }} + - name: volume-permissions + image: {{ include "mariadb.volumePermissions.image" . }} + imagePullPolicy: {{ .Values.volumePermissions.image.pullPolicy | quote }} + command: + - /bin/bash + - -ec + - | + chown -R {{ .Values.secondary.containerSecurityContext.runAsUser }}:{{ .Values.secondary.podSecurityContext.fsGroup }} /bitnami/mariadb + securityContext: + runAsUser: 0 + {{- if .Values.volumePermissions.resources }} + resources: {{- toYaml .Values.volumePermissions.resources | nindent 12 }} + {{- end }} + volumeMounts: + - name: data + mountPath: /bitnami/mariadb + {{- if .Values.secondary.persistence.subPath }} + subPath: {{ .Values.secondary.persistence.subPath }} + {{- end }} + {{- end }} + {{- end }} + containers: + - name: mariadb + image: {{ include "mariadb.image" . }} + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} + {{- if .Values.secondary.containerSecurityContext.enabled }} + securityContext: {{- omit .Values.secondary.containerSecurityContext "enabled" | toYaml | nindent 12 }} + {{- end }} + {{- if .Values.diagnosticMode.enabled }} + command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }} + {{- else if .Values.secondary.command }} + command: {{- include "common.tplvalues.render" (dict "value" .Values.secondary.command "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.diagnosticMode.enabled }} + args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }} + {{- else if .Values.secondary.args }} + args: {{- include "common.tplvalues.render" (dict "value" .Values.secondary.args "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.secondary.lifecycleHooks }} + lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.secondary.lifecycleHooks "context" $) | nindent 12 }} + {{- end }} + env: + - name: BITNAMI_DEBUG + value: {{ ternary "true" "false" (or .Values.image.debug .Values.diagnosticMode.enabled) | quote }} + - name: MARIADB_REPLICATION_MODE + value: "slave" + - name: MARIADB_MASTER_HOST + value: {{ include "mariadb.primary.fullname" . }} + - name: MARIADB_MASTER_PORT_NUMBER + value: {{ coalesce .Values.primary.service.ports.mysql .Values.primary.service.port | quote }} + - name: MARIADB_MASTER_ROOT_USER + value: "root" + {{- if .Values.auth.usePasswordFiles }} + - name: MARIADB_MASTER_ROOT_PASSWORD_FILE + value: {{ default "/opt/bitnami/mariadb/secrets/mariadb-root-password" .Values.auth.customPasswordFiles.root }} + {{- else }} + - name: MARIADB_MASTER_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "mariadb.secretName" . }} + key: mariadb-root-password + {{- end }} + - name: MARIADB_REPLICATION_USER + value: {{ .Values.auth.replicationUser | quote }} + {{- if .Values.auth.usePasswordFiles }} + - name: MARIADB_REPLICATION_PASSWORD_FILE + value: {{ default "/opt/bitnami/mariadb/secrets/mariadb-replication-password" .Values.auth.customPasswordFiles.replicator }} + {{- else }} + - name: MARIADB_REPLICATION_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "mariadb.secretName" . }} + key: mariadb-replication-password + {{- end }} + {{- if .Values.secondary.extraFlags }} + - name: MARIADB_EXTRA_FLAGS + value: "{{ .Values.secondary.extraFlags }}" + {{- end }} + {{- if .Values.secondary.startupWaitOptions }} + - name: MARIADB_STARTUP_WAIT_RETRIES + value: "{{ .Values.secondary.startupWaitOptions.retries | default 300 }}" + - name: MARIADB_STARTUP_WAIT_SLEEP_TIME + value: "{{ .Values.secondary.startupWaitOptions.sleepTime | default 2 }}" + {{- end }} + {{- if .Values.secondary.extraEnvVars }} + {{- include "common.tplvalues.render" (dict "value" .Values.secondary.extraEnvVars "context" $) | nindent 12 }} + {{- end }} + {{- if or .Values.secondary.extraEnvVarsCM .Values.secondary.extraEnvVarsSecret }} + envFrom: + {{- if .Values.secondary.extraEnvVarsCM }} + - configMapRef: + name: {{ .Values.secondary.extraEnvVarsCM }} + {{- end }} + {{- if .Values.secondary.extraEnvVarsSecret }} + - secretRef: + name: {{ .Values.secondary.extraEnvVarsSecret }} + {{- end }} + {{- end }} + ports: + - name: mysql + containerPort: 3306 + {{- if not .Values.diagnosticMode.enabled }} + {{- if .Values.secondary.startupProbe.enabled }} + startupProbe: {{- omit .Values.secondary.startupProbe "enabled" | toYaml | nindent 12 }} + exec: + command: + - /bin/bash + - -ec + - | + password_aux="${MARIADB_MASTER_ROOT_PASSWORD:-}" + if [[ -f "${MARIADB_MASTER_ROOT_PASSWORD_FILE:-}" ]]; then + password_aux=$(cat "$MARIADB_MASTER_ROOT_PASSWORD_FILE") + fi + mysqladmin status -uroot -p"${password_aux}" + {{- else if .Values.secondary.customStartupProbe }} + startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.secondary.customStartupProbe "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.secondary.livenessProbe.enabled }} + livenessProbe: {{- omit .Values.secondary.livenessProbe "enabled" | toYaml | nindent 12 }} + exec: + command: + - /bin/bash + - -ec + - | + password_aux="${MARIADB_MASTER_ROOT_PASSWORD:-}" + if [[ -f "${MARIADB_MASTER_ROOT_PASSWORD_FILE:-}" ]]; then + password_aux=$(cat "$MARIADB_MASTER_ROOT_PASSWORD_FILE") + fi + mysqladmin status -uroot -p"${password_aux}" + {{- else if .Values.secondary.customLivenessProbe }} + livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.secondary.customLivenessProbe "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.secondary.readinessProbe.enabled }} + readinessProbe: {{- omit .Values.secondary.readinessProbe "enabled" | toYaml | nindent 12 }} + exec: + command: + - /bin/bash + - -ec + - | + password_aux="${MARIADB_MASTER_ROOT_PASSWORD:-}" + if [[ -f "${MARIADB_MASTER_ROOT_PASSWORD_FILE:-}" ]]; then + password_aux=$(cat "$MARIADB_MASTER_ROOT_PASSWORD_FILE") + fi + mysqladmin status -uroot -p"${password_aux}" + {{- else if .Values.secondary.customReadinessProbe }} + readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.secondary.customReadinessProbe "context" $) | nindent 12 }} + {{- end }} + {{- end }} + {{- if .Values.secondary.resources }} + resources: {{ toYaml .Values.secondary.resources | nindent 12 }} + {{- end }} + volumeMounts: + - name: data + mountPath: /bitnami/mariadb + {{- if .Values.secondary.persistence.subPath }} + subPath: {{ .Values.secondary.persistence.subPath }} + {{- end }} + {{- if or .Values.secondary.configuration .Values.secondary.existingConfigmap }} + - name: config + mountPath: /opt/bitnami/mariadb/conf/my.cnf + subPath: my.cnf + {{- end }} + {{- if and .Values.auth.usePasswordFiles (not .Values.auth.customPasswordFiles) }} + - name: mariadb-credentials + mountPath: /opt/bitnami/mariadb/secrets/ + {{- end }} + {{- if .Values.secondary.extraVolumeMounts }} + {{- include "common.tplvalues.render" (dict "value" .Values.secondary.extraVolumeMounts "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.metrics.enabled }} + - name: metrics + image: {{ include "mariadb.metrics.image" . }} + imagePullPolicy: {{ .Values.metrics.image.pullPolicy | quote }} + {{- if .Values.metrics.containerSecurityContext.enabled }} + securityContext: {{- omit .Values.metrics.containerSecurityContext "enabled" | toYaml | nindent 12 }} + {{- end }} + env: + {{- if .Values.auth.usePasswordFiles }} + - name: MARIADB_ROOT_PASSWORD_FILE + value: {{ default "/opt/bitnami/mysqld-exporter/secrets/mariadb-root-password" .Values.auth.customPasswordFiles.root }} + {{- else }} + - name: MARIADB_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "mariadb.secretName" . }} + key: mariadb-root-password + {{- end }} + {{- if .Values.diagnosticMode.enabled }} + command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }} + args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }} + {{- else }} + command: + - /bin/bash + - -ec + - | + password_aux="${MARIADB_ROOT_PASSWORD:-}" + if [[ -f "${MARIADB_ROOT_PASSWORD_FILE:-}" ]]; then + password_aux=$(cat "$MARIADB_ROOT_PASSWORD_FILE") + fi + DATA_SOURCE_NAME="root:${password_aux}@(localhost:3306)/" /bin/mysqld_exporter {{- range .Values.metrics.extraArgs.secondary }} {{ . }} {{- end }} + {{- end }} + ports: + - name: metrics + containerPort: 9104 + {{- if not .Values.diagnosticMode.enabled }} + {{- if .Values.metrics.livenessProbe.enabled }} + livenessProbe: {{- omit .Values.metrics.livenessProbe "enabled" | toYaml | nindent 12 }} + httpGet: + path: /metrics + port: metrics + {{- end }} + {{- if .Values.metrics.readinessProbe.enabled }} + readinessProbe: {{- omit .Values.metrics.readinessProbe "enabled" | toYaml | nindent 12 }} + httpGet: + path: /metrics + port: metrics + {{- end }} + {{- end }} + {{- if .Values.metrics.resources }} + resources: {{- toYaml .Values.metrics.resources | nindent 12 }} + {{- end }} + {{- if and .Values.auth.usePasswordFiles (not .Values.auth.customPasswordFiles) }} + volumeMounts: + - name: mariadb-credentials + mountPath: /opt/bitnami/mysqld-exporter/secrets/ + {{- end }} + {{- end }} + {{- if .Values.secondary.sidecars }} + {{- include "common.tplvalues.render" (dict "value" .Values.secondary.sidecars "context" $) | nindent 8 }} + {{- end }} + volumes: + {{- if or .Values.secondary.configuration .Values.secondary.existingConfigmap }} + - name: config + configMap: + name: {{ include "mariadb.secondary.configmapName" . }} + {{- end }} + {{- if and .Values.auth.usePasswordFiles (not .Values.auth.customPasswordFiles) }} + - name: mariadb-credentials + secret: + secretName: {{ template "mariadb.secretName" . }} + items: + - key: mariadb-root-password + path: mariadb-root-password + - key: mariadb-replication-password + path: mariadb-replication-password + {{- end }} + {{- if .Values.secondary.extraVolumes }} + {{- include "common.tplvalues.render" (dict "value" .Values.secondary.extraVolumes "context" $) | nindent 8 }} + {{- end }} + {{- if not .Values.secondary.persistence.enabled }} + - name: data + emptyDir: {} + {{- else }} + volumeClaimTemplates: + - metadata: + name: data + labels: {{ include "common.labels.matchLabels" . | nindent 10 }} + app.kubernetes.io/component: secondary + {{- if .Values.secondary.persistence.annotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.secondary.persistence.annotations "context" $ ) | nindent 10 }} + {{- end }} + spec: + accessModes: + {{- range .Values.secondary.persistence.accessModes }} + - {{ . | quote }} + {{- end }} + resources: + requests: + storage: {{ .Values.secondary.persistence.size | quote }} + {{ include "common.storage.class" (dict "persistence" .Values.secondary.persistence "global" .Values.global) }} + {{- if .Values.secondary.persistence.selector }} + selector: {{- include "common.tplvalues.render" (dict "value" .Values.secondary.persistence.selector "context" $) | nindent 10 }} + {{- end -}} + {{- end }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/svc.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/svc.yaml new file mode 100644 index 00000000..66552847 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secondary/svc.yaml @@ -0,0 +1,63 @@ +{{- if eq .Values.architecture "replication" }} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "mariadb.secondary.fullname" . }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + app.kubernetes.io/component: secondary + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + annotations: + {{- if .Values.commonAnnotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.secondary.service.annotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.secondary.service.annotations "context" $ ) | nindent 4 }} + {{- end }} + {{- if and .Values.metrics.enabled .Values.metrics.annotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.annotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + type: {{ .Values.secondary.service.type }} + {{- if and .Values.secondary.service.clusterIP (eq .Values.secondary.service.type "ClusterIP") }} + clusterIP: {{ .Values.secondary.service.clusterIP }} + {{- end }} + {{- if and .Values.secondary.service.externalTrafficPolicy (or (eq .Values.secondary.service.type "LoadBalancer") (eq .Values.secondary.service.type "NodePort")) }} + externalTrafficPolicy: {{ .Values.secondary.service.externalTrafficPolicy | quote }} + {{- end }} + {{- if and (eq .Values.secondary.service.type "LoadBalancer") .Values.secondary.service.loadBalancerSourceRanges }} + loadBalancerSourceRanges: {{ .Values.secondary.service.loadBalancerSourceRanges }} + {{ end }} + {{- if and (eq .Values.secondary.service.type "LoadBalancer") (not (empty .Values.secondary.service.loadBalancerIP)) }} + loadBalancerIP: {{ .Values.secondary.service.loadBalancerIP }} + {{- end }} + {{- if .Values.secondary.service.sessionAffinity }} + sessionAffinity: {{ .Values.secondary.service.sessionAffinity }} + {{- end }} + {{- if .Values.secondary.service.sessionAffinityConfig }} + sessionAffinityConfig: {{- include "common.tplvalues.render" (dict "value" .Values.secondary.service.sessionAffinityConfig "context" $) | nindent 4 }} + {{- end }} + ports: + - name: mysql + port: {{ coalesce .Values.secondary.service.ports.mysql .Values.secondary.service.port }} + protocol: TCP + targetPort: mysql + {{- if (and (or (eq .Values.secondary.service.type "NodePort") (eq .Values.secondary.service.type "LoadBalancer")) (coalesce .Values.secondary.service.nodePorts.mysql .Values.secondary.service.nodePort)) }} + nodePort: {{ coalesce .Values.secondary.service.nodePorts.mysql .Values.secondary.service.nodePort }} + {{- else if eq .Values.secondary.service.type "ClusterIP" }} + nodePort: null + {{- end }} + {{- if .Values.metrics.enabled }} + - name: metrics + port: 9104 + protocol: TCP + targetPort: metrics + {{- end }} + {{- if .Values.secondary.service.extraPorts }} + {{- include "common.tplvalues.render" (dict "value" .Values.secondary.service.extraPorts "context" $) | nindent 4 }} + {{- end }} + selector: {{ include "common.labels.matchLabels" . | nindent 4 }} + app.kubernetes.io/component: secondary +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secrets.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secrets.yaml new file mode 100644 index 00000000..2ff62edd --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/secrets.yaml @@ -0,0 +1,35 @@ +{{- if eq (include "mariadb.createSecret" .) "true" }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "common.names.fullname" . }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +type: Opaque +data: + {{- if (not .Values.auth.forcePassword) }} + mariadb-root-password: {{ include "common.secrets.passwords.manage" (dict "secret" (include "common.names.fullname" .) "key" "mariadb-root-password" "providedValues" (list "auth.rootPassword") "context" $) }} + {{- else }} + mariadb-root-password: {{ required "A MariaDB Root Password is required!" .Values.auth.rootPassword | b64enc | quote }} + {{- end }} + {{- if (not (empty .Values.auth.username)) }} + {{- if (not .Values.auth.forcePassword) }} + mariadb-password: {{ include "common.secrets.passwords.manage" (dict "secret" (include "common.names.fullname" .) "key" "mariadb-password" "providedValues" (list "auth.password") "context" $) }} + {{- else }} + mariadb-password: {{ required "A MariaDB Database Password is required!" .Values.auth.password | b64enc | quote }} + {{- end }} + {{- end }} + {{- if eq .Values.architecture "replication" }} + {{- if (not .Values.auth.forcePassword) }} + mariadb-replication-password: {{ include "common.secrets.passwords.manage" (dict "secret" (include "common.names.fullname" .) "key" "mariadb-replication-password" "providedValues" (list "auth.replicationPassword") "context" $) }} + {{- else }} + mariadb-replication-password: {{ required "A MariaDB Replication Password is required!" .Values.auth.replicationPassword | b64enc | quote }} + {{- end }} + {{- end }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/serviceaccount.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/serviceaccount.yaml new file mode 100644 index 00000000..03a6b4e9 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/serviceaccount.yaml @@ -0,0 +1,19 @@ +{{- if .Values.serviceAccount.create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "mariadb.serviceAccountName" . }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + annotations: + {{- if .Values.serviceAccount.annotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.serviceAccount.annotations "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/servicemonitor.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/servicemonitor.yaml new file mode 100644 index 00000000..ca5bf7ca --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/templates/servicemonitor.yaml @@ -0,0 +1,48 @@ +{{- if and .Values.metrics.enabled .Values.metrics.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "common.names.fullname" . }} + {{- if .Values.metrics.serviceMonitor.namespace }} + namespace: {{ .Values.metrics.serviceMonitor.namespace }} + {{- else }} + namespace: {{ .Release.Namespace | quote }} + {{- end }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.metrics.serviceMonitor.labels }} + {{- include "common.tplvalues.render" (dict "value" .Values.metrics.serviceMonitor.labels "context" $) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + jobLabel: {{ .Values.metrics.serviceMonitor.jobLabel | quote }} + endpoints: + - port: metrics + {{- if .Values.metrics.serviceMonitor.interval }} + interval: {{ .Values.metrics.serviceMonitor.interval }} + {{- end }} + {{- if .Values.metrics.serviceMonitor.scrapeTimeout }} + scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }} + {{- end }} + {{- if .Values.metrics.serviceMonitor.honorLabels }} + honorLabels: {{ .Values.metrics.serviceMonitor.honorLabels }} + {{- end }} + {{- if .Values.metrics.serviceMonitor.metricRelabelings }} + metricRelabelings: {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.metricRelabelings "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.metrics.serviceMonitor.relabelings }} + relabelings: {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.relabelings "context" $) | nindent 8 }} + {{- end }} + namespaceSelector: + matchNames: + - {{ .Release.Namespace | quote }} + selector: + matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }} + {{- if .Values.metrics.serviceMonitor.selector }} + {{- include "common.tplvalues.render" (dict "value" .Values.metrics.serviceMonitor.selector "context" $) | nindent 6 }} + {{- end }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/values.schema.json b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/values.schema.json new file mode 100644 index 00000000..500c4eb9 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/values.schema.json @@ -0,0 +1,176 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "architecture": { + "type": "string", + "title": "MariaDB architecture", + "form": true, + "description": "Allowed values: `standalone` or `replication`" + }, + "auth": { + "type": "object", + "title": "Authentication configuration", + "form": true, + "properties": { + "rootPassword": { + "type": "string", + "title": "MariaDB root password", + "form": true, + "description": "Defaults to a random 10-character alphanumeric string if not set" + }, + "database": { + "type": "string", + "title": "MariaDB custom database", + "description": "Name of the custom database to be created during the 1st initialization of MariaDB", + "form": true + }, + "username": { + "type": "string", + "title": "MariaDB custom user", + "description": "Name of the custom user to be created during the 1st initialization of MariaDB. This user only has permissions on the MariaDB custom database", + "form": true + }, + "password": { + "type": "string", + "title": "Password for MariaDB custom user", + "description": "Defaults to a random 10-character alphanumeric string if not set", + "form": true, + "hidden": { + "value": false, + "path": "usePassword" + } + }, + "replicationUser": { + "type": "string", + "title": "MariaDB replication user", + "description": "Name of user used to manage replication.", + "form": true, + "hidden": { + "value": "standalone", + "path": "architecture" + } + }, + "replicationPassword": { + "type": "string", + "title": "Password for MariaDB replication user", + "description": "Defaults to a random 10-character alphanumeric string if not set", + "form": true, + "hidden": { + "value": "standalone", + "path": "architecture" + } + } + } + }, + "primary": { + "type": "object", + "title": "Primary replicas settings", + "form": true, + "properties": { + "persistence": { + "type": "object", + "title": "Persistence for primary replicas", + "form": true, + "properties": { + "enabled": { + "type": "boolean", + "form": true, + "title": "Enable persistence", + "description": "Enable persistence using Persistent Volume Claims" + }, + "size": { + "type": "string", + "title": "Persistent Volume Size", + "form": true, + "render": "slider", + "sliderMin": 1, + "sliderMax": 100, + "sliderUnit": "Gi", + "hidden": { + "value": false, + "path": "persistence/enabled" + } + } + } + } + } + }, + "secondary": { + "type": "object", + "title": "Secondary replicas settings", + "form": true, + "hidden": { + "value": false, + "path": "replication/enabled" + }, + "properties": { + "persistence": { + "type": "object", + "title": "Persistence for secondary replicas", + "form": true, + "properties": { + "enabled": { + "type": "boolean", + "form": true, + "title": "Enable persistence", + "description": "Enable persistence using Persistent Volume Claims" + }, + "size": { + "type": "string", + "title": "Persistent Volume Size", + "form": true, + "render": "slider", + "sliderMin": 1, + "sliderMax": 100, + "sliderUnit": "Gi", + "hidden": { + "value": false, + "path": "persistence/enabled" + } + } + } + } + } + }, + "volumePermissions": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "form": true, + "title": "Enable Init Containers", + "description": "Use an init container to set required folder permissions on the data volume before mounting it in the final destination" + } + } + }, + "metrics": { + "type": "object", + "form": true, + "title": "Prometheus metrics details", + "properties": { + "enabled": { + "type": "boolean", + "title": "Create Prometheus metrics exporter", + "description": "Create a side-car container to expose Prometheus metrics", + "form": true + }, + "serviceMonitor": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "title": "Create Prometheus Operator ServiceMonitor", + "description": "Create a ServiceMonitor to track metrics using Prometheus Operator", + "form": true, + "hidden": { + "value": false, + "path": "metrics/enabled" + } + } + } + } + } + } + } +} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/values.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/values.yaml new file mode 100644 index 00000000..cc432a0d --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/mariadb/values.yaml @@ -0,0 +1,1251 @@ +## @section Global parameters +## Global Docker image parameters +## Please, note that this will override the image parameters, including dependencies, configured to use the global value +## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass + +## @param global.imageRegistry Global Docker Image registry +## @param global.imagePullSecrets Global Docker registry secret names as an array +## @param global.storageClass Global storage class for dynamic provisioning +## +global: + imageRegistry: "" + ## E.g. + ## imagePullSecrets: + ## - myRegistryKeySecretName + ## + imagePullSecrets: [] + storageClass: "" + +## @section Common parameters + +## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set) +## +kubeVersion: "" +## @param nameOverride String to partially override mariadb.fullname +## +nameOverride: "" +## @param fullnameOverride String to fully override mariadb.fullname +## +fullnameOverride: "" +## @param clusterDomain Default Kubernetes cluster domain +## +clusterDomain: cluster.local +## @param commonAnnotations Common annotations to add to all MariaDB resources (sub-charts are not considered) +## +commonAnnotations: {} +## @param commonLabels Common labels to add to all MariaDB resources (sub-charts are not considered) +## +commonLabels: {} +## @param schedulerName Name of the scheduler (other than default) to dispatch pods +## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ +## +schedulerName: "" +## @param extraDeploy Array of extra objects to deploy with the release (evaluated as a template) +## +extraDeploy: [] + +## Enable diagnostic mode in the deployment +## +diagnosticMode: + ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden) + ## + enabled: false + ## @param diagnosticMode.command Command to override all containers in the deployment + ## + command: + - sleep + ## @param diagnosticMode.args Args to override all containers in the deployment + ## + args: + - infinity + +## @section MariaDB common parameters + +## Bitnami MariaDB image +## ref: https://hub.docker.com/r/bitnami/mariadb/tags/ +## @param image.registry MariaDB image registry +## @param image.repository MariaDB image repository +## @param image.tag MariaDB image tag (immutable tags are recommended) +## @param image.pullPolicy MariaDB image pull policy +## @param image.pullSecrets Specify docker-registry secret names as an array +## @param image.debug Specify if debug logs should be enabled +## +image: + registry: docker.io + repository: bitnami/mariadb + tag: 10.5.15-debian-10-r62 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace) + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## Example: + ## pullSecrets: + ## - myRegistryKeySecretName + ## + pullSecrets: [] + ## Set to true if you would like to see extra information on logs + ## It turns BASH and/or NAMI debugging in the image + ## + debug: false +## @param architecture MariaDB architecture (`standalone` or `replication`) +## +architecture: standalone +## MariaDB Authentication parameters +## +auth: + ## @param auth.rootPassword Password for the `root` user. Ignored if existing secret is provided. + ## ref: https://github.com/bitnami/bitnami-docker-mariadb#setting-the-root-password-on-first-run + ## + rootPassword: "" + ## @param auth.database Name for a custom database to create + ## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-on-first-run + ## + database: my_database + ## @param auth.username Name for a custom user to create + ## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-user-on-first-run + ## + username: "" + ## @param auth.password Password for the new user. Ignored if existing secret is provided + ## + password: "" + ## @param auth.replicationUser MariaDB replication user + ## ref: https://github.com/bitnami/bitnami-docker-mariadb#setting-up-a-replication-cluster + ## + replicationUser: replicator + ## @param auth.replicationPassword MariaDB replication user password. Ignored if existing secret is provided + ## ref: https://github.com/bitnami/bitnami-docker-mariadb#setting-up-a-replication-cluster + ## + replicationPassword: "" + ## @param auth.existingSecret Use existing secret for password details (`auth.rootPassword`, `auth.password`, `auth.replicationPassword` will be ignored and picked up from this secret). The secret has to contain the keys `mariadb-root-password`, `mariadb-replication-password` and `mariadb-password` + ## + existingSecret: "" + ## @param auth.forcePassword Force users to specify required passwords + ## + forcePassword: false + ## @param auth.usePasswordFiles Mount credentials as files instead of using environment variables + ## + usePasswordFiles: false + ## @param auth.customPasswordFiles Use custom password files when `auth.usePasswordFiles` is set to `true`. Define path for keys `root` and `user`, also define `replicator` if `architecture` is set to `replication` + ## Example: + ## customPasswordFiles: + ## root: /vault/secrets/mariadb-root + ## user: /vault/secrets/mariadb-user + ## replicator: /vault/secrets/mariadb-replicator + ## + customPasswordFiles: {} +## @param initdbScripts Dictionary of initdb scripts +## Specify dictionary of scripts to be run at first boot +## Example: +## initdbScripts: +## my_init_script.sh: | +## #!/bin/bash +## echo "Do something." +## +initdbScripts: {} +## @param initdbScriptsConfigMap ConfigMap with the initdb scripts (Note: Overrides `initdbScripts`) +## +initdbScriptsConfigMap: "" + +## @section MariaDB Primary parameters + +## Mariadb Primary parameters +## +primary: + ## @param primary.command Override default container command on MariaDB Primary container(s) (useful when using custom images) + ## + command: [] + ## @param primary.args Override default container args on MariaDB Primary container(s) (useful when using custom images) + ## + args: [] + ## @param primary.lifecycleHooks for the MariaDB Primary container(s) to automate configuration before or after startup + ## + lifecycleHooks: {} + ## @param primary.hostAliases Add deployment host aliases + ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ + ## + hostAliases: [] + ## @param primary.configuration [string] MariaDB Primary configuration to be injected as ConfigMap + ## ref: https://mysql.com/kb/en/mysql/configuring-mysql-with-mycnf/#example-of-configuration-file + ## + configuration: |- + [mysqld] + skip-name-resolve + explicit_defaults_for_timestamp + basedir=/opt/bitnami/mariadb + plugin_dir=/opt/bitnami/mariadb/plugin + port=3306 + socket=/opt/bitnami/mariadb/tmp/mysql.sock + tmpdir=/opt/bitnami/mariadb/tmp + max_allowed_packet=16M + bind-address=:: + pid-file=/opt/bitnami/mariadb/tmp/mysqld.pid + log-error=/opt/bitnami/mariadb/logs/mysqld.log + character-set-server=UTF8 + collation-server=utf8_general_ci + slow_query_log=0 + slow_query_log_file=/opt/bitnami/mariadb/logs/mysqld.log + long_query_time=10.0 + + [client] + port=3306 + socket=/opt/bitnami/mariadb/tmp/mysql.sock + default-character-set=UTF8 + plugin_dir=/opt/bitnami/mariadb/plugin + + [manager] + port=3306 + socket=/opt/bitnami/mariadb/tmp/mysql.sock + pid-file=/opt/bitnami/mariadb/tmp/mysqld.pid + ## @param primary.existingConfigmap Name of existing ConfigMap with MariaDB Primary configuration. + ## NOTE: When it's set the 'configuration' parameter is ignored + ## + existingConfigmap: "" + ## @param primary.updateStrategy.type MariaDB primary statefulset strategy type + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies + ## + updateStrategy: + ## StrategyType + ## Can be set to RollingUpdate or OnDelete + ## + type: RollingUpdate + ## @param primary.rollingUpdatePartition Partition update strategy for Mariadb Primary statefulset + ## https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions + ## + rollingUpdatePartition: "" + ## @param primary.podAnnotations Additional pod annotations for MariaDB primary pods + ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ + ## + podAnnotations: {} + ## @param primary.podLabels Extra labels for MariaDB primary pods + ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + ## + podLabels: {} + ## @param primary.podAffinityPreset MariaDB primary pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity + ## + podAffinityPreset: "" + ## @param primary.podAntiAffinityPreset MariaDB primary pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` + ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity + ## + podAntiAffinityPreset: soft + ## Mariadb Primary node affinity preset + ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity + ## + nodeAffinityPreset: + ## @param primary.nodeAffinityPreset.type MariaDB primary node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` + ## + type: "" + ## @param primary.nodeAffinityPreset.key MariaDB primary node label key to match Ignored if `primary.affinity` is set. + ## E.g. + ## key: "kubernetes.io/e2e-az-name" + ## + key: "" + ## @param primary.nodeAffinityPreset.values MariaDB primary node label values to match. Ignored if `primary.affinity` is set. + ## E.g. + ## values: + ## - e2e-az1 + ## - e2e-az2 + ## + values: [] + ## @param primary.affinity Affinity for MariaDB primary pods assignment + ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity + ## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set + ## + affinity: {} + ## @param primary.nodeSelector Node labels for MariaDB primary pods assignment + ## Ref: https://kubernetes.io/docs/user-guide/node-selection/ + ## + nodeSelector: {} + ## @param primary.tolerations Tolerations for MariaDB primary pods assignment + ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ + ## + tolerations: [] + ## @param primary.schedulerName Name of the k8s scheduler (other than default) + ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ + ## + schedulerName: "" + ## @param primary.podManagementPolicy podManagementPolicy to manage scaling operation of MariaDB primary pods + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies + ## + podManagementPolicy: "" + ## @param primary.topologySpreadConstraints Topology Spread Constraints for MariaDB primary pods assignment + ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ + ## E.g. + ## topologySpreadConstraints: + ## - maxSkew: 1 + ## topologyKey: topology.kubernetes.io/zone + ## whenUnsatisfiable: DoNotSchedule + ## + topologySpreadConstraints: {} + ## @param primary.priorityClassName Priority class for MariaDB primary pods assignment + ## Ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ + ## + priorityClassName: "" + ## MariaDB primary Pod security context + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod + ## @param primary.podSecurityContext.enabled Enable security context for MariaDB primary pods + ## @param primary.podSecurityContext.fsGroup Group ID for the mounted volumes' filesystem + ## + podSecurityContext: + enabled: true + fsGroup: 1001 + ## MariaDB primary container security context + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container + ## @param primary.containerSecurityContext.enabled MariaDB primary container securityContext + ## @param primary.containerSecurityContext.runAsUser User ID for the MariaDB primary container + ## @param primary.containerSecurityContext.runAsNonRoot Set Controller container's Security Context runAsNonRoot + ## + containerSecurityContext: + enabled: true + runAsUser: 1001 + runAsNonRoot: true + ## MariaDB primary container's resource requests and limits + ## ref: https://kubernetes.io/docs/user-guide/compute-resources/ + ## We usually recommend not to specify default resources and to leave this as a conscious + ## choice for the user. This also increases chances charts run on environments with little + ## resources, such as Minikube. If you do want to specify resources, uncomment the following + ## lines, adjust them as necessary, and remove the curly braces after 'resources:'. + ## @param primary.resources.limits The resources limits for MariaDB primary containers + ## @param primary.resources.requests The requested resources for MariaDB primary containers + ## + resources: + ## Example: + ## limits: + ## cpu: 100m + ## memory: 256Mi + limits: {} + ## Examples: + ## requests: + ## cpu: 100m + ## memory: 256Mi + requests: {} + ## Configure extra options for MariaDB primary containers' liveness, readiness and startup probes + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes) + ## @param primary.startupProbe.enabled Enable startupProbe + ## @param primary.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe + ## @param primary.startupProbe.periodSeconds Period seconds for startupProbe + ## @param primary.startupProbe.timeoutSeconds Timeout seconds for startupProbe + ## @param primary.startupProbe.failureThreshold Failure threshold for startupProbe + ## @param primary.startupProbe.successThreshold Success threshold for startupProbe + ## + startupProbe: + enabled: false + initialDelaySeconds: 120 + periodSeconds: 15 + timeoutSeconds: 5 + failureThreshold: 10 + successThreshold: 1 + ## Configure extra options for liveness probe + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes + ## @param primary.livenessProbe.enabled Enable livenessProbe + ## @param primary.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe + ## @param primary.livenessProbe.periodSeconds Period seconds for livenessProbe + ## @param primary.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe + ## @param primary.livenessProbe.failureThreshold Failure threshold for livenessProbe + ## @param primary.livenessProbe.successThreshold Success threshold for livenessProbe + ## + livenessProbe: + enabled: true + initialDelaySeconds: 120 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + successThreshold: 1 + ## @param primary.readinessProbe.enabled Enable readinessProbe + ## @param primary.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe + ## @param primary.readinessProbe.periodSeconds Period seconds for readinessProbe + ## @param primary.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe + ## @param primary.readinessProbe.failureThreshold Failure threshold for readinessProbe + ## @param primary.readinessProbe.successThreshold Success threshold for readinessProbe + ## + readinessProbe: + enabled: true + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + successThreshold: 1 + ## @param primary.customStartupProbe Override default startup probe for MariaDB primary containers + ## + customStartupProbe: {} + ## @param primary.customLivenessProbe Override default liveness probe for MariaDB primary containers + ## + customLivenessProbe: {} + ## @param primary.customReadinessProbe Override default readiness probe for MariaDB primary containers + ## + customReadinessProbe: {} + ## @param primary.startupWaitOptions Override default builtin startup wait check options for MariaDB primary containers + ## `bitnami/mariadb` Docker image has built-in startup check mechanism, + ## which periodically checks if MariaDB service has started up and stops it + ## if all checks have failed after X tries. Use these to control these checks. + ## ref: https://github.com/bitnami/bitnami-docker-mariadb/pull/240 + ## Example (with default options): + ## startupWaitOptions: + ## retries: 300 + ## waitTime: 2 + ## + startupWaitOptions: {} + ## @param primary.extraFlags MariaDB primary additional command line flags + ## Can be used to specify command line flags, for example: + ## E.g. + ## extraFlags: "--max-connect-errors=1000 --max_connections=155" + ## + extraFlags: "" + ## @param primary.extraEnvVars Extra environment variables to be set on MariaDB primary containers + ## E.g. + ## extraEnvVars: + ## - name: TZ + ## value: "Europe/Paris" + ## + extraEnvVars: [] + ## @param primary.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for MariaDB primary containers + ## + extraEnvVarsCM: "" + ## @param primary.extraEnvVarsSecret Name of existing Secret containing extra env vars for MariaDB primary containers + ## + extraEnvVarsSecret: "" + ## Enable persistence using Persistent Volume Claims + ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/ + ## + persistence: + ## @param primary.persistence.enabled Enable persistence on MariaDB primary replicas using a `PersistentVolumeClaim`. If false, use emptyDir + ## + enabled: true + ## @param primary.persistence.existingClaim Name of an existing `PersistentVolumeClaim` for MariaDB primary replicas + ## NOTE: When it's set the rest of persistence parameters are ignored + ## + existingClaim: "" + ## @param primary.persistence.subPath Subdirectory of the volume to mount at + ## + subPath: "" + ## @param primary.persistence.storageClass MariaDB primary persistent volume storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + storageClass: "" + ## @param primary.persistence.annotations MariaDB primary persistent volume claim annotations + ## + annotations: {} + ## @param primary.persistence.accessModes MariaDB primary persistent volume access Modes + ## + accessModes: + - ReadWriteOnce + ## @param primary.persistence.size MariaDB primary persistent volume size + ## + size: 8Gi + ## @param primary.persistence.selector Selector to match an existing Persistent Volume + ## selector: + ## matchLabels: + ## app: my-app + ## + selector: {} + ## @param primary.extraVolumes Optionally specify extra list of additional volumes to the MariaDB Primary pod(s) + ## + extraVolumes: [] + ## @param primary.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the MariaDB Primary container(s) + ## + extraVolumeMounts: [] + ## @param primary.initContainers Add additional init containers for the MariaDB Primary pod(s) + ## + initContainers: [] + ## @param primary.sidecars Add additional sidecar containers for the MariaDB Primary pod(s) + ## + sidecars: [] + ## MariaDB Primary Service parameters + ## + service: + ## @param primary.service.type MariaDB Primary Kubernetes service type + ## + type: ClusterIP + ## @param primary.service.ports.mysql MariaDB Primary Kubernetes service port + ## + ports: + mysql: 3306 + ## @param primary.service.nodePorts.mysql MariaDB Primary Kubernetes service node port + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport + ## + nodePorts: + mysql: "" + ## @param primary.service.clusterIP MariaDB Primary Kubernetes service clusterIP IP + ## + clusterIP: "" + ## @param primary.service.loadBalancerIP MariaDB Primary loadBalancerIP if service type is `LoadBalancer` + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer + ## + loadBalancerIP: "" + ## @param primary.service.externalTrafficPolicy Enable client source IP preservation + ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip + ## + externalTrafficPolicy: Cluster + ## @param primary.service.loadBalancerSourceRanges Address that are allowed when MariaDB Primary service is LoadBalancer + ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service + ## E.g. + ## loadBalancerSourceRanges: + ## - 10.10.10.0/24 + ## + loadBalancerSourceRanges: [] + ## @param primary.service.extraPorts Extra ports to expose (normally used with the `sidecar` value) + ## + extraPorts: [] + ## @param primary.service.annotations Provide any additional annotations which may be required + ## + annotations: {} + ## @param primary.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP" + ## If "ClientIP", consecutive client requests will be directed to the same Pod + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies + ## + sessionAffinity: None + ## @param primary.service.sessionAffinityConfig Additional settings for the sessionAffinity + ## sessionAffinityConfig: + ## clientIP: + ## timeoutSeconds: 300 + sessionAffinityConfig: {} + ## MariaDB primary Pod Disruption Budget configuration + ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ + ## + pdb: + ## @param primary.pdb.create Enable/disable a Pod Disruption Budget creation for MariaDB primary pods + ## + create: false + ## @param primary.pdb.minAvailable Minimum number/percentage of MariaDB primary pods that must still be available after the eviction + ## + minAvailable: 1 + ## @param primary.pdb.maxUnavailable Maximum number/percentage of MariaDB primary pods that can be unavailable after the eviction + ## + maxUnavailable: "" + ## @param primary.revisionHistoryLimit Maximum number of revisions that will be maintained in the StatefulSet + ## + revisionHistoryLimit: 10 + +## @section MariaDB Secondary parameters + +## Mariadb Secondary parameters +## +secondary: + ## @param secondary.replicaCount Number of MariaDB secondary replicas + ## + replicaCount: 1 + ## @param secondary.command Override default container command on MariaDB Secondary container(s) (useful when using custom images) + ## + command: [] + ## @param secondary.args Override default container args on MariaDB Secondary container(s) (useful when using custom images) + ## + args: [] + ## @param secondary.lifecycleHooks for the MariaDB Secondary container(s) to automate configuration before or after startup + ## + lifecycleHooks: {} + ## @param secondary.hostAliases Add deployment host aliases + ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ + ## + hostAliases: [] + ## @param secondary.configuration [string] MariaDB Secondary configuration to be injected as ConfigMap + ## ref: https://mysql.com/kb/en/mysql/configuring-mysql-with-mycnf/#example-of-configuration-file + ## + configuration: |- + [mysqld] + skip-name-resolve + explicit_defaults_for_timestamp + basedir=/opt/bitnami/mariadb + port=3306 + socket=/opt/bitnami/mariadb/tmp/mysql.sock + tmpdir=/opt/bitnami/mariadb/tmp + max_allowed_packet=16M + bind-address=0.0.0.0 + pid-file=/opt/bitnami/mariadb/tmp/mysqld.pid + log-error=/opt/bitnami/mariadb/logs/mysqld.log + character-set-server=UTF8 + collation-server=utf8_general_ci + + [client] + port=3306 + socket=/opt/bitnami/mariadb/tmp/mysql.sock + default-character-set=UTF8 + + [manager] + port=3306 + socket=/opt/bitnami/mariadb/tmp/mysql.sock + pid-file=/opt/bitnami/mariadb/tmp/mysqld.pid + ## @param secondary.existingConfigmap Name of existing ConfigMap with MariaDB Secondary configuration. + ## NOTE: When it's set the 'configuration' parameter is ignored + ## + existingConfigmap: "" + ## @param secondary.updateStrategy.type MariaDB secondary statefulset strategy type + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies + ## + updateStrategy: + ## StrategyType + ## Can be set to RollingUpdate or OnDelete + ## + type: RollingUpdate + ## @param secondary.rollingUpdatePartition Partition update strategy for Mariadb Secondary statefulset + ## https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions + ## + rollingUpdatePartition: "" + ## @param secondary.podAnnotations Additional pod annotations for MariaDB secondary pods + ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ + ## + podAnnotations: {} + ## @param secondary.podLabels Extra labels for MariaDB secondary pods + ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + ## + podLabels: {} + ## @param secondary.podAffinityPreset MariaDB secondary pod affinity preset. Ignored if `secondary.affinity` is set. Allowed values: `soft` or `hard` + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity + ## + podAffinityPreset: "" + ## @param secondary.podAntiAffinityPreset MariaDB secondary pod anti-affinity preset. Ignored if `secondary.affinity` is set. Allowed values: `soft` or `hard` + ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity + ## + podAntiAffinityPreset: soft + ## Mariadb Secondary node affinity preset + ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity + ## + nodeAffinityPreset: + ## @param secondary.nodeAffinityPreset.type MariaDB secondary node affinity preset type. Ignored if `secondary.affinity` is set. Allowed values: `soft` or `hard` + ## + type: "" + ## @param secondary.nodeAffinityPreset.key MariaDB secondary node label key to match Ignored if `secondary.affinity` is set. + ## E.g. + ## key: "kubernetes.io/e2e-az-name" + ## + key: "" + ## @param secondary.nodeAffinityPreset.values MariaDB secondary node label values to match. Ignored if `secondary.affinity` is set. + ## E.g. + ## values: + ## - e2e-az1 + ## - e2e-az2 + ## + values: [] + ## @param secondary.affinity Affinity for MariaDB secondary pods assignment + ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity + ## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set + ## + affinity: {} + ## @param secondary.nodeSelector Node labels for MariaDB secondary pods assignment + ## Ref: https://kubernetes.io/docs/user-guide/node-selection/ + ## + nodeSelector: {} + ## @param secondary.tolerations Tolerations for MariaDB secondary pods assignment + ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ + ## + tolerations: [] + ## @param secondary.topologySpreadConstraints Topology Spread Constraints for MariaDB secondary pods assignment + ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ + ## E.g. + ## topologySpreadConstraints: + ## - maxSkew: 1 + ## topologyKey: topology.kubernetes.io/zone + ## whenUnsatisfiable: DoNotSchedule + ## + topologySpreadConstraints: {} + ## @param secondary.priorityClassName Priority class for MariaDB secondary pods assignment + ## Ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ + ## + priorityClassName: "" + ## @param secondary.schedulerName Name of the k8s scheduler (other than default) + ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ + ## + schedulerName: "" + ## @param secondary.podManagementPolicy podManagementPolicy to manage scaling operation of MariaDB secondary pods + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies + ## + podManagementPolicy: "" + ## MariaDB secondary Pod security context + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod + ## @param secondary.podSecurityContext.enabled Enable security context for MariaDB secondary pods + ## @param secondary.podSecurityContext.fsGroup Group ID for the mounted volumes' filesystem + ## + podSecurityContext: + enabled: true + fsGroup: 1001 + ## MariaDB secondary container security context + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container + ## @param secondary.containerSecurityContext.enabled MariaDB secondary container securityContext + ## @param secondary.containerSecurityContext.runAsUser User ID for the MariaDB secondary container + ## @param secondary.containerSecurityContext.runAsNonRoot Set Controller container's Security Context runAsNonRoot + ## + containerSecurityContext: + enabled: true + runAsUser: 1001 + runAsNonRoot: true + ## MariaDB secondary container's resource requests and limits + ## ref: https://kubernetes.io/docs/user-guide/compute-resources/ + ## We usually recommend not to specify default resources and to leave this as a conscious + ## choice for the user. This also increases chances charts run on environments with little + ## resources, such as Minikube. If you do want to specify resources, uncomment the following + ## lines, adjust them as necessary, and remove the curly braces after 'resources:'. + ## @param secondary.resources.limits The resources limits for MariaDB secondary containers + ## @param secondary.resources.requests The requested resources for MariaDB secondary containers + ## + resources: + ## Example: + ## limits: + ## cpu: 100m + ## memory: 256Mi + limits: {} + ## Examples: + ## requests: + ## cpu: 100m + ## memory: 256Mi + requests: {} + ## Configure extra options for MariaDB Secondary containers' liveness, readiness and startup probes + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes) + ## @param secondary.startupProbe.enabled Enable startupProbe + ## @param secondary.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe + ## @param secondary.startupProbe.periodSeconds Period seconds for startupProbe + ## @param secondary.startupProbe.timeoutSeconds Timeout seconds for startupProbe + ## @param secondary.startupProbe.failureThreshold Failure threshold for startupProbe + ## @param secondary.startupProbe.successThreshold Success threshold for startupProbe + ## + startupProbe: + enabled: false + initialDelaySeconds: 120 + periodSeconds: 15 + timeoutSeconds: 5 + failureThreshold: 10 + successThreshold: 1 + ## Configure extra options for liveness probe + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes + ## @param secondary.livenessProbe.enabled Enable livenessProbe + ## @param secondary.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe + ## @param secondary.livenessProbe.periodSeconds Period seconds for livenessProbe + ## @param secondary.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe + ## @param secondary.livenessProbe.failureThreshold Failure threshold for livenessProbe + ## @param secondary.livenessProbe.successThreshold Success threshold for livenessProbe + ## + livenessProbe: + enabled: true + initialDelaySeconds: 120 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + successThreshold: 1 + ## @param secondary.readinessProbe.enabled Enable readinessProbe + ## @param secondary.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe + ## @param secondary.readinessProbe.periodSeconds Period seconds for readinessProbe + ## @param secondary.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe + ## @param secondary.readinessProbe.failureThreshold Failure threshold for readinessProbe + ## @param secondary.readinessProbe.successThreshold Success threshold for readinessProbe + ## + readinessProbe: + enabled: true + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + successThreshold: 1 + ## @param secondary.customStartupProbe Override default startup probe for MariaDB secondary containers + ## + customStartupProbe: {} + ## @param secondary.customLivenessProbe Override default liveness probe for MariaDB secondary containers + ## + customLivenessProbe: {} + ## @param secondary.customReadinessProbe Override default readiness probe for MariaDB secondary containers + ## + customReadinessProbe: {} + ## @param secondary.startupWaitOptions Override default builtin startup wait check options for MariaDB secondary containers + ## `bitnami/mariadb` Docker image has built-in startup check mechanism, + ## which periodically checks if MariaDB service has started up and stops it + ## if all checks have failed after X tries. Use these to control these checks. + ## ref: https://github.com/bitnami/bitnami-docker-mariadb/pull/240 + ## Example (with default options): + ## startupWaitOptions: + ## retries: 300 + ## waitTime: 2 + ## + startupWaitOptions: {} + ## @param secondary.extraFlags MariaDB secondary additional command line flags + ## Can be used to specify command line flags, for example: + ## E.g. + ## extraFlags: "--max-connect-errors=1000 --max_connections=155" + ## + extraFlags: "" + ## @param secondary.extraEnvVars Extra environment variables to be set on MariaDB secondary containers + ## E.g. + ## extraEnvVars: + ## - name: TZ + ## value: "Europe/Paris" + ## + extraEnvVars: [] + ## @param secondary.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for MariaDB secondary containers + ## + extraEnvVarsCM: "" + ## @param secondary.extraEnvVarsSecret Name of existing Secret containing extra env vars for MariaDB secondary containers + ## + extraEnvVarsSecret: "" + ## Enable persistence using Persistent Volume Claims + ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/ + ## + persistence: + ## @param secondary.persistence.enabled Enable persistence on MariaDB secondary replicas using a `PersistentVolumeClaim` + ## + enabled: true + ## @param secondary.persistence.subPath Subdirectory of the volume to mount at + ## + subPath: "" + ## @param secondary.persistence.storageClass MariaDB secondary persistent volume storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + storageClass: "" + ## @param secondary.persistence.annotations MariaDB secondary persistent volume claim annotations + ## + annotations: {} + ## @param secondary.persistence.accessModes MariaDB secondary persistent volume access Modes + ## + accessModes: + - ReadWriteOnce + ## @param secondary.persistence.size MariaDB secondary persistent volume size + ## + size: 8Gi + ## @param secondary.persistence.selector Selector to match an existing Persistent Volume + ## selector: + ## matchLabels: + ## app: my-app + ## + selector: {} + ## @param secondary.extraVolumes Optionally specify extra list of additional volumes to the MariaDB secondary pod(s) + ## + extraVolumes: [] + ## @param secondary.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the MariaDB secondary container(s) + ## + extraVolumeMounts: [] + ## @param secondary.initContainers Add additional init containers for the MariaDB secondary pod(s) + ## + initContainers: [] + ## @param secondary.sidecars Add additional sidecar containers for the MariaDB secondary pod(s) + ## + sidecars: [] + ## MariaDB Secondary Service parameters + ## + service: + ## @param secondary.service.type MariaDB secondary Kubernetes service type + ## + type: ClusterIP + ## @param secondary.service.ports.mysql MariaDB secondary Kubernetes service port + ## + ports: + mysql: 3306 + ## @param secondary.service.nodePorts.mysql MariaDB secondary Kubernetes service node port + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport + ## + nodePorts: + mysql: "" + ## @param secondary.service.clusterIP MariaDB secondary Kubernetes service clusterIP IP + ## e.g: + ## clusterIP: None + ## + clusterIP: "" + ## @param secondary.service.loadBalancerIP MariaDB secondary loadBalancerIP if service type is `LoadBalancer` + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer + ## + loadBalancerIP: "" + ## @param secondary.service.externalTrafficPolicy Enable client source IP preservation + ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip + ## + externalTrafficPolicy: Cluster + ## @param secondary.service.loadBalancerSourceRanges Address that are allowed when MariaDB secondary service is LoadBalancer + ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service + ## E.g. + ## loadBalancerSourceRanges: + ## - 10.10.10.0/24 + ## + loadBalancerSourceRanges: [] + ## @param secondary.service.extraPorts Extra ports to expose (normally used with the `sidecar` value) + ## + extraPorts: [] + ## @param secondary.service.annotations Provide any additional annotations which may be required + ## + annotations: {} + ## @param secondary.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP" + ## If "ClientIP", consecutive client requests will be directed to the same Pod + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies + ## + sessionAffinity: None + ## @param secondary.service.sessionAffinityConfig Additional settings for the sessionAffinity + ## sessionAffinityConfig: + ## clientIP: + ## timeoutSeconds: 300 + sessionAffinityConfig: {} + ## MariaDB secondary Pod Disruption Budget configuration + ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ + ## + pdb: + ## @param secondary.pdb.create Enable/disable a Pod Disruption Budget creation for MariaDB secondary pods + ## + create: false + ## @param secondary.pdb.minAvailable Minimum number/percentage of MariaDB secondary pods that should remain scheduled + ## + minAvailable: 1 + ## @param secondary.pdb.maxUnavailable Maximum number/percentage of MariaDB secondary pods that may be made unavailable + ## + maxUnavailable: "" + ## @param secondary.revisionHistoryLimit Maximum number of revisions that will be maintained in the StatefulSet + ## + revisionHistoryLimit: 10 + +## @section RBAC parameters + +## MariaDB pods ServiceAccount +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ +## +serviceAccount: + ## @param serviceAccount.create Enable the creation of a ServiceAccount for MariaDB pods + ## + create: true + ## @param serviceAccount.name Name of the created ServiceAccount + ## If not set and create is true, a name is generated using the mariadb.fullname template + ## + name: "" + ## @param serviceAccount.annotations Annotations for MariaDB Service Account + ## + annotations: {} + ## @param serviceAccount.automountServiceAccountToken Automount service account token for the server service account + ## + automountServiceAccountToken: false +## Role Based Access +## ref: https://kubernetes.io/docs/admin/authorization/rbac/ +## +rbac: + ## @param rbac.create Whether to create and use RBAC resources or not + ## + create: false + +## @section Volume Permissions parameters + +## Init containers parameters: +## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section. +## +volumePermissions: + ## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume(s) mountpoint to `runAsUser:fsGroup` + ## + enabled: false + ## @param volumePermissions.image.registry Init container volume-permissions image registry + ## @param volumePermissions.image.repository Init container volume-permissions image repository + ## @param volumePermissions.image.tag Init container volume-permissions image tag (immutable tags are recommended) + ## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy + ## @param volumePermissions.image.pullSecrets Specify docker-registry secret names as an array + ## + image: + registry: docker.io + repository: bitnami/bitnami-shell + tag: 10-debian-10-r399 + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace) + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## Example: + ## pullSecrets: + ## - myRegistryKeySecretName + ## + pullSecrets: [] + ## @param volumePermissions.resources.limits Init container volume-permissions resource limits + ## @param volumePermissions.resources.requests Init container volume-permissions resource requests + ## + resources: + limits: {} + requests: {} + +## @section Metrics parameters + +## Mysqld Prometheus exporter parameters +## +metrics: + ## @param metrics.enabled Start a side-car prometheus exporter + ## + enabled: false + ## @param metrics.image.registry Exporter image registry + ## @param metrics.image.repository Exporter image repository + ## @param metrics.image.tag Exporter image tag (immutable tags are recommended) + ## @param metrics.image.pullPolicy Exporter image pull policy + ## @param metrics.image.pullSecrets Specify docker-registry secret names as an array + ## + image: + registry: docker.io + repository: bitnami/mysqld-exporter + tag: 0.14.0-debian-10-r44 + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace) + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## Example: + ## pullSecrets: + ## - myRegistryKeySecretName + ## + pullSecrets: [] + ## @param metrics.annotations [object] Annotations for the Exporter pod + ## + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9104" + ## @param metrics.extraArgs [object] Extra args to be passed to mysqld_exporter + ## ref: https://github.com/prometheus/mysqld_exporter/ + ## E.g. + ## - --collect.auto_increment.columns + ## - --collect.binlog_size + ## - --collect.engine_innodb_status + ## - --collect.engine_tokudb_status + ## - --collect.global_status + ## - --collect.global_variables + ## - --collect.info_schema.clientstats + ## - --collect.info_schema.innodb_metrics + ## - --collect.info_schema.innodb_tablespaces + ## - --collect.info_schema.innodb_cmp + ## - --collect.info_schema.innodb_cmpmem + ## - --collect.info_schema.processlist + ## - --collect.info_schema.processlist.min_time + ## - --collect.info_schema.query_response_time + ## - --collect.info_schema.tables + ## - --collect.info_schema.tables.databases + ## - --collect.info_schema.tablestats + ## - --collect.info_schema.userstats + ## - --collect.perf_schema.eventsstatements + ## - --collect.perf_schema.eventsstatements.digest_text_limit + ## - --collect.perf_schema.eventsstatements.limit + ## - --collect.perf_schema.eventsstatements.timelimit + ## - --collect.perf_schema.eventswaits + ## - --collect.perf_schema.file_events + ## - --collect.perf_schema.file_instances + ## - --collect.perf_schema.indexiowaits + ## - --collect.perf_schema.tableiowaits + ## - --collect.perf_schema.tablelocks + ## - --collect.perf_schema.replication_group_member_stats + ## - --collect.slave_status + ## - --collect.slave_hosts + ## - --collect.heartbeat + ## - --collect.heartbeat.database + ## - --collect.heartbeat.table + ## + extraArgs: + primary: [] + secondary: [] + ## MariaDB metrics container Security Context + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container + ## @param metrics.containerSecurityContext.enabled Enable security context for MariaDB metrics container + ## Example: + ## containerSecurityContext: + ## enabled: true + ## capabilities: + ## drop: ["NET_RAW"] + ## readOnlyRootFilesystem: true + ## + containerSecurityContext: + enabled: false + ## Mysqld Prometheus exporter resource requests and limits + ## ref: https://kubernetes.io/docs/user-guide/compute-resources/ + ## We usually recommend not to specify default resources and to leave this as a conscious + ## choice for the user. This also increases chances charts run on environments with little + ## resources, such as Minikube. If you do want to specify resources, uncomment the following + ## lines, adjust them as necessary, and remove the curly braces after 'resources:'. + ## @param metrics.resources.limits The resources limits for MariaDB prometheus exporter containers + ## @param metrics.resources.requests The requested resources for MariaDB prometheus exporter containers + ## + resources: + ## Example: + ## limits: + ## cpu: 100m + ## memory: 256Mi + limits: {} + ## Examples: + ## requests: + ## cpu: 100m + ## memory: 256Mi + requests: {} + ## Configure extra options for liveness probe + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes + ## @param metrics.livenessProbe.enabled Enable livenessProbe + ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe + ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe + ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe + ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe + ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe + ## + livenessProbe: + enabled: true + initialDelaySeconds: 120 + periodSeconds: 10 + timeoutSeconds: 1 + successThreshold: 1 + failureThreshold: 3 + ## Configure extra options for readiness probe + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes + ## @param metrics.readinessProbe.enabled Enable readinessProbe + ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe + ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe + ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe + ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe + ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe + ## + readinessProbe: + enabled: true + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 1 + successThreshold: 1 + failureThreshold: 3 + ## Prometheus Service Monitor + ## ref: https://github.com/coreos/prometheus-operator + ## + serviceMonitor: + ## @param metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using PrometheusOperator + ## + enabled: false + ## @param metrics.serviceMonitor.namespace Namespace which Prometheus is running in + ## + namespace: "" + ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus. + ## + jobLabel: "" + ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped + ## + interval: 30s + ## @param metrics.serviceMonitor.scrapeTimeout Specify the timeout after which the scrape is ended + ## e.g: + ## scrapeTimeout: 30s + ## + scrapeTimeout: "" + ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping + ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig + ## + relabelings: [] + ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion + ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig + ## + metricRelabelings: [] + ## @param metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels + ## + honorLabels: false + ## @param metrics.serviceMonitor.selector ServiceMonitor selector labels + ## ref: https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-configuration + ## + ## selector: + ## prometheus: my-prometheus + ## + selector: {} + ## @param metrics.serviceMonitor.labels Extra labels for the ServiceMonitor + ## + labels: {} + ## Prometheus Operator PrometheusRule configuration + ## + prometheusRule: + ## @param metrics.prometheusRule.enabled if `true`, creates a Prometheus Operator PrometheusRule (also requires `metrics.enabled` to be `true` and `metrics.prometheusRule.rules`) + ## + enabled: false + ## @param metrics.prometheusRule.namespace Namespace for the PrometheusRule Resource (defaults to the Release Namespace) + ## + namespace: "" + ## @param metrics.prometheusRule.additionalLabels Additional labels that can be used so PrometheusRule will be discovered by Prometheus + ## + additionalLabels: {} + ## @param metrics.prometheusRule.rules Prometheus Rule definitions + ## - alert: MariaDB-Down + ## expr: absent(up{job="mariadb"} == 1) + ## for: 5m + ## labels: + ## severity: warning + ## service: mariadb + ## annotations: + ## message: 'MariaDB instance {{ $labels.instance }} is down' + ## summary: MariaDB instance is down + ## + rules: [] + +## @section NetworkPolicy parameters + +## Add networkpolicies +## +networkPolicy: + ## @param networkPolicy.enabled Enable network policies + ## + enabled: false + ## @param networkPolicy.metrics.enabled Enable network policy for metrics (prometheus) + ## @param networkPolicy.metrics.namespaceSelector [object] Monitoring namespace selector labels. These labels will be used to identify the prometheus' namespace. + ## @param networkPolicy.metrics.podSelector [object] Monitoring pod selector labels. These labels will be used to identify the Prometheus pods. + ## + metrics: + enabled: false + ## e.g: + ## podSelector: + ## label: monitoring + ## + podSelector: {} + ## e.g: + ## namespaceSelector: + ## label: monitoring + ## + namespaceSelector: {} + ## @param networkPolicy.ingressRules.primaryAccessOnlyFrom.enabled Enable ingress rule that makes primary mariadb nodes only accessible from a particular origin. + ## @param networkPolicy.ingressRules.primaryAccessOnlyFrom.namespaceSelector [object] Namespace selector label that is allowed to access the primary node. This label will be used to identified the allowed namespace(s). + ## @param networkPolicy.ingressRules.primaryAccessOnlyFrom.podSelector [object] Pods selector label that is allowed to access the primary node. This label will be used to identified the allowed pod(s). + ## @param networkPolicy.ingressRules.primaryAccessOnlyFrom.customRules [object] Custom network policy for the primary node. + ## @param networkPolicy.ingressRules.secondaryAccessOnlyFrom.enabled Enable ingress rule that makes primary mariadb nodes only accessible from a particular origin. + ## @param networkPolicy.ingressRules.secondaryAccessOnlyFrom.namespaceSelector [object] Namespace selector label that is allowed to acces the secondary nodes. This label will be used to identified the allowed namespace(s). + ## @param networkPolicy.ingressRules.secondaryAccessOnlyFrom.podSelector [object] Pods selector label that is allowed to access the secondary nodes. This label will be used to identified the allowed pod(s). + ## @param networkPolicy.ingressRules.secondaryAccessOnlyFrom.customRules [object] Custom network policy for the secondary nodes. + ## + ingressRules: + ## Allow access to the primary node only from the indicated: + primaryAccessOnlyFrom: + enabled: false + ## e.g: + ## namespaceSelector: + ## label: ingress + ## + namespaceSelector: {} + ## e.g: + ## podSelector: + ## label: access + ## + podSelector: {} + ## custom ingress rules + ## e.g: + ## customRules: + ## - from: + ## - namespaceSelector: + ## matchLabels: + ## label: example + customRules: {} + + ## Allow access to the secondary node only from the indicated: + secondaryAccessOnlyFrom: + enabled: false + ## e.g: + ## namespaceSelector: + ## label: ingress + ## + namespaceSelector: {} + ## e.g: + ## podSelector: + ## label: access + ## + podSelector: {} + ## custom ingress rules + ## e.g: + ## CustomRules: + ## - from: + ## - namespaceSelector: + ## matchLabels: + ## label: example + customRules: {} + + ## @param networkPolicy.egressRules.denyConnectionsToExternal Enable egress rule that denies outgoing traffic outside the cluster, except for DNS (port 53). + ## @param networkPolicy.egressRules.customRules [object] Custom network policy rule + ## + egressRules: + # Deny connections to external. This is not compatible with an external database. + denyConnectionsToExternal: false + ## Additional custom egress rules + ## e.g: + ## customRules: + ## - to: + ## - namespaceSelector: + ## matchLabels: + ## label: example + customRules: {} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/.helmignore b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/.helmignore new file mode 100644 index 00000000..f0c13194 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/Chart.lock b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/Chart.lock new file mode 100644 index 00000000..830fa8c9 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://charts.bitnami.com/bitnami + version: 1.10.3 +digest: sha256:e8f1d59ae8150ae6099f2d72a9e3ac2fdc0c8fd869b210226edf7c71eef11263 +generated: "2021-12-31T20:02:44.936728424Z" diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/Chart.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/Chart.yaml new file mode 100644 index 00000000..58d34d4f --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/Chart.yaml @@ -0,0 +1,28 @@ +annotations: + category: Database +apiVersion: v2 +appVersion: 11.14.0 +dependencies: +- name: common + repository: https://charts.bitnami.com/bitnami + version: 1.x.x +description: Chart for PostgreSQL, an object-relational database management system (ORDBMS) with an emphasis on extensibility and on standards-compliance. +home: https://github.com/bitnami/charts/tree/master/bitnami/postgresql +icon: https://bitnami.com/assets/stacks/postgresql/img/postgresql-stack-220x234.png +keywords: +- postgresql +- postgres +- database +- sql +- replication +- cluster +maintainers: +- email: containers@bitnami.com + name: Bitnami +- email: cedric@desaintmartin.fr + name: desaintmartin +name: postgresql +sources: +- https://github.com/bitnami/bitnami-docker-postgresql +- https://www.postgresql.org/ +version: 10.16.2 diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/README.md b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/README.md new file mode 100644 index 00000000..e14bdc0b --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/README.md @@ -0,0 +1,819 @@ + + +# PostgreSQL + +[PostgreSQL](https://www.postgresql.org/) is an object-relational database management system (ORDBMS) with an emphasis on extensibility and on standards-compliance. + +## TL;DR + +```console +$ helm repo add bitnami https://charts.bitnami.com/bitnami +$ helm install my-release bitnami/postgresql +``` + +## Introduction + +This chart bootstraps a [PostgreSQL](https://github.com/bitnami/bitnami-docker-postgresql) deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. + +For HA, please see [this repo](https://github.com/bitnami/charts/tree/master/bitnami/postgresql-ha) + +Bitnami charts can be used with [Kubeapps](https://kubeapps.com/) for deployment and management of Helm Charts in clusters. This chart has been tested to work with NGINX Ingress, cert-manager, fluentd and Prometheus on top of the [BKPR](https://kubeprod.io/). + +## Prerequisites + +- Kubernetes 1.19+ +- Helm 3.2.0+ +- PV provisioner support in the underlying infrastructure + +## Installing the Chart +To install the chart with the release name `my-release`: + +```console +$ helm install my-release bitnami/postgresql +``` + +The command deploys PostgreSQL on the Kubernetes cluster in the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation. + +> **Tip**: List all releases using `helm list` + +## Uninstalling the Chart + +To uninstall/delete the `my-release` deployment: + +```console +$ helm delete my-release +``` + +The command removes all the Kubernetes components but PVC's associated with the chart and deletes the release. + +To delete the PVC's associated with `my-release`: + +```console +$ kubectl delete pvc -l release=my-release +``` + +> **Note**: Deleting the PVC's will delete postgresql data as well. Please be cautious before doing it. + +## Parameters + +### Global parameters + +| Name | Description | Value | +| --------------------------------------- | ------------------------------------------------------------------------------------ | ----- | +| `global.imageRegistry` | Global Docker image registry | `""` | +| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` | +| `global.storageClass` | Global StorageClass for Persistent Volume(s) | `""` | +| `global.postgresql.postgresqlDatabase` | PostgreSQL database (overrides `postgresqlDatabase`) | `""` | +| `global.postgresql.postgresqlUsername` | PostgreSQL username (overrides `postgresqlUsername`) | `""` | +| `global.postgresql.existingSecret` | Name of existing secret to use for PostgreSQL passwords (overrides `existingSecret`) | `""` | +| `global.postgresql.postgresqlPassword` | PostgreSQL admin password (overrides `postgresqlPassword`) | `""` | +| `global.postgresql.servicePort` | PostgreSQL port (overrides `service.port` | `""` | +| `global.postgresql.replicationPassword` | Replication user password (overrides `replication.password`) | `""` | + + +### Common parameters + +| Name | Description | Value | +| ------------------------ | -------------------------------------------------------------------------------------------- | -------------- | +| `nameOverride` | String to partially override common.names.fullname template (will maintain the release name) | `""` | +| `fullnameOverride` | String to fully override common.names.fullname template | `""` | +| `extraDeploy` | Array of extra objects to deploy with the release (evaluated as a template) | `[]` | +| `commonLabels` | Add labels to all the deployed resources | `{}` | +| `commonAnnotations` | Add annotations to all the deployed resources | `{}` | +| `diagnosticMode.enabled` | Enable diagnostic mode (all probes will be disabled and the command will be overridden) | `false` | +| `diagnosticMode.command` | Command to override all containers in the deployment | `["sleep"]` | +| `diagnosticMode.args` | Args to override all containers in the deployment | `["infinity"]` | + + +### PostgreSQL parameters + +| Name | Description | Value | +| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | +| `image.registry` | PostgreSQL image registry | `docker.io` | +| `image.repository` | PostgreSQL image repository | `bitnami/postgresql` | +| `image.tag` | PostgreSQL image tag (immutable tags are recommended) | `11.14.0-debian-10-r28` | +| `image.pullPolicy` | PostgreSQL image pull policy | `IfNotPresent` | +| `image.pullSecrets` | Specify image pull secrets | `[]` | +| `image.debug` | Specify if debug values should be set | `false` | +| `volumePermissions.enabled` | Enable init container that changes volume permissions in the data directory (for cases where the default k8s `runAsUser` and `fsUser` values do not work) | `false` | +| `volumePermissions.image.registry` | Init container volume-permissions image registry | `docker.io` | +| `volumePermissions.image.repository` | Init container volume-permissions image repository | `bitnami/bitnami-shell` | +| `volumePermissions.image.tag` | Init container volume-permissions image tag (immutable tags are recommended) | `10-debian-10-r305` | +| `volumePermissions.image.pullPolicy` | Init container volume-permissions image pull policy | `IfNotPresent` | +| `volumePermissions.image.pullSecrets` | Init container volume-permissions image pull secrets | `[]` | +| `volumePermissions.securityContext.runAsUser` | User ID for the init container | `0` | +| `schedulerName` | Use an alternate scheduler, e.g. "stork". | `""` | +| `lifecycleHooks` | for the PostgreSQL container to automate configuration before or after startup | `{}` | +| `securityContext.enabled` | Enable security context | `true` | +| `securityContext.fsGroup` | Group ID for the pod | `1001` | +| `containerSecurityContext.enabled` | Enable container security context | `true` | +| `containerSecurityContext.runAsUser` | User ID for the container | `1001` | +| `serviceAccount.enabled` | Enable service account (Note: Service Account will only be automatically created if `serviceAccount.name` is not set) | `false` | +| `serviceAccount.name` | Name of an already existing service account. Setting this value disables the automatic service account creation | `""` | +| `serviceAccount.autoMount` | Auto-mount the service account token in the pod | `false` | +| `psp.create` | Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later | `false` | +| `rbac.create` | Create Role and RoleBinding (required for PSP to work) | `false` | +| `replication.enabled` | Enable replication | `false` | +| `replication.user` | Replication user | `repl_user` | +| `replication.password` | Replication user password | `repl_password` | +| `replication.readReplicas` | Number of read replicas replicas | `1` | +| `replication.synchronousCommit` | Set synchronous commit mode. Allowed values: `on`, `remote_apply`, `remote_write`, `local` and `off` | `off` | +| `replication.numSynchronousReplicas` | Number of replicas that will have synchronous replication. Note: Cannot be greater than `replication.readReplicas`. | `0` | +| `replication.applicationName` | Cluster application name. Useful for advanced replication settings | `my_application` | +| `replication.singleService` | Create one service connecting to all read-replicas | `true` | +| `replication.uniqueServices` | Create a unique service for each independent read-replica | `false` | +| `postgresqlPostgresPassword` | PostgreSQL admin password (used when `postgresqlUsername` is not `postgres`, in which case`postgres` is the admin username) | `""` | +| `postgresqlUsername` | PostgreSQL user (has superuser privileges if username is `postgres`) | `postgres` | +| `postgresqlPassword` | PostgreSQL user password | `""` | +| `existingSecret` | Name of existing secret to use for PostgreSQL passwords | `""` | +| `usePasswordFile` | Mount PostgreSQL secret as a file instead of passing environment variable | `false` | +| `postgresqlDatabase` | PostgreSQL database | `""` | +| `postgresqlDataDir` | PostgreSQL data dir folder | `/bitnami/postgresql/data` | +| `extraEnv` | An array to add extra environment variables | `[]` | +| `extraEnvVarsCM` | Name of a Config Map containing extra environment variables | `""` | +| `postgresqlInitdbArgs` | PostgreSQL initdb extra arguments | `""` | +| `postgresqlInitdbWalDir` | Specify a custom location for the PostgreSQL transaction log | `""` | +| `postgresqlConfiguration` | PostgreSQL configuration | `{}` | +| `postgresqlExtendedConf` | Extended Runtime Config Parameters (appended to main or default configuration) | `{}` | +| `primaryAsStandBy.enabled` | Whether to enable current cluster's primary as standby server of another cluster or not | `false` | +| `primaryAsStandBy.primaryHost` | The Host of replication primary in the other cluster | `""` | +| `primaryAsStandBy.primaryPort` | The Port of replication primary in the other cluster | `""` | +| `pgHbaConfiguration` | PostgreSQL client authentication configuration | `""` | +| `configurationConfigMap` | ConfigMap with PostgreSQL configuration | `""` | +| `extendedConfConfigMap` | ConfigMap with PostgreSQL extended configuration | `""` | +| `initdbScripts` | Dictionary of initdb scripts | `{}` | +| `initdbScriptsConfigMap` | ConfigMap with scripts to be run at first boot | `""` | +| `initdbScriptsSecret` | Secret with scripts to be run at first boot (in case it contains sensitive information) | `""` | +| `initdbUser` | Specify the PostgreSQL username to execute the initdb scripts | `""` | +| `initdbPassword` | Specify the PostgreSQL password to execute the initdb scripts | `""` | +| `containerPorts.postgresql` | PostgreSQL container port | `5432` | +| `audit.logHostname` | Log client hostnames | `false` | +| `audit.logConnections` | Add client log-in operations to the log file | `false` | +| `audit.logDisconnections` | Add client log-outs operations to the log file | `false` | +| `audit.pgAuditLog` | Add operations to log using the pgAudit extension | `""` | +| `audit.pgAuditLogCatalog` | Log catalog using pgAudit | `off` | +| `audit.clientMinMessages` | Message log level to share with the user | `error` | +| `audit.logLinePrefix` | Template for log line prefix (default if not set) | `""` | +| `audit.logTimezone` | Timezone for the log timestamps | `""` | +| `postgresqlSharedPreloadLibraries` | Shared preload libraries (comma-separated list) | `pgaudit` | +| `postgresqlMaxConnections` | Maximum total connections | `""` | +| `postgresqlPostgresConnectionLimit` | Maximum connections for the postgres user | `""` | +| `postgresqlDbUserConnectionLimit` | Maximum connections for the non-admin user | `""` | +| `postgresqlTcpKeepalivesInterval` | TCP keepalives interval | `""` | +| `postgresqlTcpKeepalivesIdle` | TCP keepalives idle | `""` | +| `postgresqlTcpKeepalivesCount` | TCP keepalives count | `""` | +| `postgresqlStatementTimeout` | Statement timeout | `""` | +| `postgresqlPghbaRemoveFilters` | Comma-separated list of patterns to remove from the pg_hba.conf file | `""` | +| `terminationGracePeriodSeconds` | Seconds the pod needs to terminate gracefully | `""` | +| `ldap.enabled` | Enable LDAP support | `false` | +| `ldap.url` | LDAP URL beginning in the form `ldap[s]://host[:port]/basedn` | `""` | +| `ldap.server` | IP address or name of the LDAP server. | `""` | +| `ldap.port` | Port number on the LDAP server to connect to | `""` | +| `ldap.prefix` | String to prepend to the user name when forming the DN to bind | `""` | +| `ldap.suffix` | String to append to the user name when forming the DN to bind | `""` | +| `ldap.baseDN` | Root DN to begin the search for the user in | `""` | +| `ldap.bindDN` | DN of user to bind to LDAP | `""` | +| `ldap.bind_password` | Password for the user to bind to LDAP | `""` | +| `ldap.search_attr` | Attribute to match against the user name in the search | `""` | +| `ldap.search_filter` | The search filter to use when doing search+bind authentication | `""` | +| `ldap.scheme` | Set to `ldaps` to use LDAPS | `""` | +| `ldap.tls` | Set to `1` to use TLS encryption | `""` | +| `service.type` | Kubernetes Service type | `ClusterIP` | +| `service.clusterIP` | Static clusterIP or None for headless services | `""` | +| `service.port` | PostgreSQL port | `5432` | +| `service.nodePort` | Specify the nodePort value for the LoadBalancer and NodePort service types | `""` | +| `service.annotations` | Annotations for PostgreSQL service | `{}` | +| `service.loadBalancerIP` | Load balancer IP if service type is `LoadBalancer` | `""` | +| `service.externalTrafficPolicy` | Enable client source IP preservation | `Cluster` | +| `service.loadBalancerSourceRanges` | Addresses that are allowed when service is LoadBalancer | `[]` | +| `shmVolume.enabled` | Enable emptyDir volume for /dev/shm for primary and read replica(s) Pod(s) | `true` | +| `shmVolume.chmod.enabled` | Set to `true` to `chmod 777 /dev/shm` on a initContainer (ignored if `volumePermissions.enabled` is `false`) | `true` | +| `shmVolume.sizeLimit` | Set this to enable a size limit on the shm tmpfs. Note that the size of the tmpfs counts against container's memory limit | `""` | +| `persistence.enabled` | Enable persistence using PVC | `true` | +| `persistence.existingClaim` | Provide an existing `PersistentVolumeClaim`, the value is evaluated as a template. | `""` | +| `persistence.mountPath` | The path the volume will be mounted at, useful when using different | `/bitnami/postgresql` | +| `persistence.subPath` | The subdirectory of the volume to mount to | `""` | +| `persistence.storageClass` | PVC Storage Class for PostgreSQL volume | `""` | +| `persistence.accessModes` | PVC Access Mode for PostgreSQL volume | `["ReadWriteOnce"]` | +| `persistence.snapshotName` | Provide a VolumeSnapshot name which to create the PVC | `""` | +| `persistence.size` | PVC Storage Request for PostgreSQL volume | `8Gi` | +| `persistence.annotations` | Annotations for the PVC | `{}` | +| `persistence.selector` | Selector to match an existing Persistent Volume (this value is evaluated as a template) | `{}` | +| `updateStrategy.type` | updateStrategy for PostgreSQL StatefulSet and its reads StatefulSets | `RollingUpdate` | +| `primary.podAffinityPreset` | PostgreSQL primary pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `primary.podAntiAffinityPreset` | PostgreSQL primary pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` | `soft` | +| `primary.nodeAffinityPreset.type` | PostgreSQL primary node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `primary.nodeAffinityPreset.key` | PostgreSQL primary node label key to match Ignored if `primary.affinity` is set. | `""` | +| `primary.nodeAffinityPreset.values` | PostgreSQL primary node label values to match. Ignored if `primary.affinity` is set. | `[]` | +| `primary.affinity` | Affinity for PostgreSQL primary pods assignment | `{}` | +| `primary.nodeSelector` | Node labels for PostgreSQL primary pods assignment | `{}` | +| `primary.tolerations` | Tolerations for PostgreSQL primary pods assignment | `[]` | +| `primary.extraPodSpec` | Optionally specify extra PodSpec | `{}` | +| `primary.labels` | Map of labels to add to the statefulset (postgresql primary) | `{}` | +| `primary.annotations` | Annotations for PostgreSQL primary pods | `{}` | +| `primary.podLabels` | Map of labels to add to the pods (postgresql primary) | `{}` | +| `primary.podAnnotations` | Map of annotations to add to the pods (postgresql primary) | `{}` | +| `primary.priorityClassName` | Priority Class to use for each pod (postgresql primary) | `""` | +| `primary.extraInitContainers` | Extra init containers to add to the pods (postgresql primary) | `[]` | +| `primary.extraVolumeMounts` | Extra volume mounts to add to the pods (postgresql primary) | `[]` | +| `primary.extraVolumes` | Extra volumes to add to the pods (postgresql primary) | `[]` | +| `primary.sidecars` | Extra containers to the pod | `[]` | +| `primary.service.type` | Allows using a different service type for primary | `""` | +| `primary.service.nodePort` | Allows using a different nodePort for primary | `""` | +| `primary.service.clusterIP` | Allows using a different clusterIP for primary | `""` | +| `readReplicas.podAffinityPreset` | PostgreSQL read only pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `readReplicas.podAntiAffinityPreset` | PostgreSQL read only pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` | `soft` | +| `readReplicas.nodeAffinityPreset.type` | PostgreSQL read only node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `readReplicas.nodeAffinityPreset.key` | PostgreSQL read only node label key to match Ignored if `primary.affinity` is set. | `""` | +| `readReplicas.nodeAffinityPreset.values` | PostgreSQL read only node label values to match. Ignored if `primary.affinity` is set. | `[]` | +| `readReplicas.affinity` | Affinity for PostgreSQL read only pods assignment | `{}` | +| `readReplicas.nodeSelector` | Node labels for PostgreSQL read only pods assignment | `{}` | +| `readReplicas.tolerations` | Tolerations for PostgreSQL read only pods assignment | `[]` | +| `readReplicas.topologySpreadConstraints` | Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template | `[]` | +| `readReplicas.extraPodSpec` | Optionally specify extra PodSpec | `{}` | +| `readReplicas.labels` | Map of labels to add to the statefulsets (postgresql readReplicas) | `{}` | +| `readReplicas.annotations` | Annotations for PostgreSQL read only pods | `{}` | +| `readReplicas.podLabels` | Map of labels to add to the pods (postgresql readReplicas) | `{}` | +| `readReplicas.podAnnotations` | Map of annotations to add to the pods (postgresql readReplicas) | `{}` | +| `readReplicas.priorityClassName` | Priority Class to use for each pod (postgresql readReplicas) | `""` | +| `readReplicas.extraInitContainers` | Extra init containers to add to the pods (postgresql readReplicas) | `[]` | +| `readReplicas.extraVolumeMounts` | Extra volume mounts to add to the pods (postgresql readReplicas) | `[]` | +| `readReplicas.extraVolumes` | Extra volumes to add to the pods (postgresql readReplicas) | `[]` | +| `readReplicas.sidecars` | Extra containers to the pod | `[]` | +| `readReplicas.service.type` | Allows using a different service type for readReplicas | `""` | +| `readReplicas.service.nodePort` | Allows using a different nodePort for readReplicas | `""` | +| `readReplicas.service.clusterIP` | Allows using a different clusterIP for readReplicas | `""` | +| `readReplicas.persistence.enabled` | Whether to enable PostgreSQL read replicas replicas persistence | `true` | +| `readReplicas.resources` | CPU/Memory resource requests/limits override for readReplicass. Will fallback to `values.resources` if not defined. | `{}` | +| `resources.requests` | The requested resources for the container | `{}` | +| `networkPolicy.enabled` | Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now. | `false` | +| `networkPolicy.allowExternal` | Don't require client label for connections | `true` | +| `networkPolicy.explicitNamespacesSelector` | A Kubernetes LabelSelector to explicitly select namespaces from which ingress traffic could be allowed | `{}` | +| `startupProbe.enabled` | Enable startupProbe | `false` | +| `startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `30` | +| `startupProbe.periodSeconds` | Period seconds for startupProbe | `15` | +| `startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `5` | +| `startupProbe.failureThreshold` | Failure threshold for startupProbe | `10` | +| `startupProbe.successThreshold` | Success threshold for startupProbe | `1` | +| `livenessProbe.enabled` | Enable livenessProbe | `true` | +| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `30` | +| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` | +| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` | +| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `6` | +| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` | +| `readinessProbe.enabled` | Enable readinessProbe | `true` | +| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` | +| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` | +| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` | +| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `6` | +| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` | +| `customStartupProbe` | Override default startup probe | `{}` | +| `customLivenessProbe` | Override default liveness probe | `{}` | +| `customReadinessProbe` | Override default readiness probe | `{}` | +| `tls.enabled` | Enable TLS traffic support | `false` | +| `tls.autoGenerated` | Generate automatically self-signed TLS certificates | `false` | +| `tls.preferServerCiphers` | Whether to use the server's TLS cipher preferences rather than the client's | `true` | +| `tls.certificatesSecret` | Name of an existing secret that contains the certificates | `""` | +| `tls.certFilename` | Certificate filename | `""` | +| `tls.certKeyFilename` | Certificate key filename | `""` | +| `tls.certCAFilename` | CA Certificate filename | `""` | +| `tls.crlFilename` | File containing a Certificate Revocation List | `""` | +| `metrics.enabled` | Start a prometheus exporter | `false` | +| `metrics.resources` | Prometheus exporter container resources | `{}` | +| `metrics.service.type` | Kubernetes Service type | `ClusterIP` | +| `metrics.service.annotations` | Additional annotations for metrics exporter pod | `{}` | +| `metrics.service.loadBalancerIP` | loadBalancerIP if redis metrics service type is `LoadBalancer` | `""` | +| `metrics.serviceMonitor.enabled` | Set this to `true` to create ServiceMonitor for Prometheus operator | `false` | +| `metrics.serviceMonitor.additionalLabels` | Additional labels that can be used so ServiceMonitor will be discovered by Prometheus | `{}` | +| `metrics.serviceMonitor.namespace` | Optional namespace in which to create ServiceMonitor | `""` | +| `metrics.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `""` | +| `metrics.serviceMonitor.scrapeTimeout` | Scrape timeout. If not set, the Prometheus default scrape timeout is used | `""` | +| `metrics.serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping | `[]` | +| `metrics.serviceMonitor.metricRelabelings` | MetricRelabelConfigs to apply to samples before ingestion | `[]` | +| `metrics.prometheusRule.enabled` | Set this to true to create prometheusRules for Prometheus operator | `false` | +| `metrics.prometheusRule.additionalLabels` | Additional labels that can be used so prometheusRules will be discovered by Prometheus | `{}` | +| `metrics.prometheusRule.namespace` | namespace where prometheusRules resource should be created | `""` | +| `metrics.prometheusRule.rules` | Create specified [Rules](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/) | `[]` | +| `metrics.image.registry` | PostgreSQL Exporter image registry | `docker.io` | +| `metrics.image.repository` | PostgreSQL Exporter image repository | `bitnami/postgres-exporter` | +| `metrics.image.tag` | PostgreSQL Exporter image tag (immutable tags are recommended) | `0.10.0-debian-10-r172` | +| `metrics.image.pullPolicy` | PostgreSQL Exporter image pull policy | `IfNotPresent` | +| `metrics.image.pullSecrets` | Specify image pull secrets | `[]` | +| `metrics.customMetrics` | Define additional custom metrics | `{}` | +| `metrics.extraEnvVars` | Extra environment variables to add to postgres-exporter | `[]` | +| `metrics.securityContext.enabled` | Enable security context for metrics | `false` | +| `metrics.securityContext.runAsUser` | User ID for the container for metrics | `1001` | +| `metrics.livenessProbe.enabled` | Enable livenessProbe | `true` | +| `metrics.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `5` | +| `metrics.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` | +| `metrics.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` | +| `metrics.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `6` | +| `metrics.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` | +| `metrics.readinessProbe.enabled` | Enable readinessProbe | `true` | +| `metrics.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` | +| `metrics.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` | +| `metrics.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` | +| `metrics.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `6` | +| `metrics.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` | + + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +$ helm install my-release \ + --set postgresqlPassword=secretpassword,postgresqlDatabase=my-database \ + bitnami/postgresql +``` + +The above command sets the PostgreSQL `postgres` account password to `secretpassword`. Additionally it creates a database named `my-database`. + +> NOTE: Once this chart is deployed, it is not possible to change the application's access credentials, such as usernames or passwords, using Helm. To change these application credentials after deployment, delete any persistent volumes (PVs) used by the chart and re-deploy it, or use the application's built-in administrative tools if available. + +Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, + +```console +$ helm install my-release -f values.yaml bitnami/postgresql +``` + +> **Tip**: You can use the default [values.yaml](values.yaml) + +## Configuration and installation details + +### [Rolling VS Immutable tags](https://docs.bitnami.com/containers/how-to/understand-rolling-tags-containers/) + +It is strongly recommended to use immutable tags in a production environment. This ensures your deployment does not change automatically if the same tag is updated with a different image. + +Bitnami will release a new chart updating its containers if a new version of the main container, significant changes, or critical vulnerabilities exist. + +### Customizing primary and read replica services in a replicated configuration + +At the top level, there is a service object which defines the services for both primary and readReplicas. For deeper customization, there are service objects for both the primary and read types individually. This allows you to override the values in the top level service object so that the primary and read can be of different service types and with different clusterIPs / nodePorts. Also in the case you want the primary and read to be of type nodePort, you will need to set the nodePorts to different values to prevent a collision. The values that are deeper in the primary.service or readReplicas.service objects will take precedence over the top level service object. + +### Use a different PostgreSQL version + +To modify the application version used in this chart, specify a different version of the image using the `image.tag` parameter and/or a different repository using the `image.repository` parameter. Refer to the [chart documentation for more information on these parameters and how to use them with images from a private registry](https://docs.bitnami.com/kubernetes/infrastructure/postgresql/configuration/change-image-version/). + +### postgresql.conf / pg_hba.conf files as configMap + +This helm chart also supports to customize the whole configuration file. + +Add your custom file to "files/postgresql.conf" in your working directory. This file will be mounted as configMap to the containers and it will be used for configuring the PostgreSQL server. + +Alternatively, you can add additional PostgreSQL configuration parameters using the `postgresqlExtendedConf` parameter as a dict, using camelCase, e.g. {"sharedBuffers": "500MB"}. Alternatively, to replace the entire default configuration use `postgresqlConfiguration`. + +In addition to these options, you can also set an external ConfigMap with all the configuration files. This is done by setting the `configurationConfigMap` parameter. Note that this will override the two previous options. + +### Allow settings to be loaded from files other than the default `postgresql.conf` + +If you don't want to provide the whole PostgreSQL configuration file and only specify certain parameters, you can add your extended `.conf` files to "files/conf.d/" in your working directory. +Those files will be mounted as configMap to the containers adding/overwriting the default configuration using the `include_dir` directive that allows settings to be loaded from files other than the default `postgresql.conf`. + +Alternatively, you can also set an external ConfigMap with all the extra configuration files. This is done by setting the `extendedConfConfigMap` parameter. Note that this will override the previous option. + +### Initialize a fresh instance + +The [Bitnami PostgreSQL](https://github.com/bitnami/bitnami-docker-postgresql) image allows you to use your custom scripts to initialize a fresh instance. In order to execute the scripts, they must be located inside the chart folder `files/docker-entrypoint-initdb.d` so they can be consumed as a ConfigMap. + +Alternatively, you can specify custom scripts using the `initdbScripts` parameter as dict. + +In addition to these options, you can also set an external ConfigMap with all the initialization scripts. This is done by setting the `initdbScriptsConfigMap` parameter. Note that this will override the two previous options. If your initialization scripts contain sensitive information such as credentials or passwords, you can use the `initdbScriptsSecret` parameter. + +The allowed extensions are `.sh`, `.sql` and `.sql.gz`. + +### Securing traffic using TLS + +TLS support can be enabled in the chart by specifying the `tls.` parameters while creating a release. The following parameters should be configured to properly enable the TLS support in the chart: + +- `tls.enabled`: Enable TLS support. Defaults to `false` +- `tls.certificatesSecret`: Name of an existing secret that contains the certificates. No defaults. +- `tls.certFilename`: Certificate filename. No defaults. +- `tls.certKeyFilename`: Certificate key filename. No defaults. + +For example: + +* First, create the secret with the cetificates files: + + ```console + kubectl create secret generic certificates-tls-secret --from-file=./cert.crt --from-file=./cert.key --from-file=./ca.crt + ``` + +* Then, use the following parameters: + + ```console + volumePermissions.enabled=true + tls.enabled=true + tls.certificatesSecret="certificates-tls-secret" + tls.certFilename="cert.crt" + tls.certKeyFilename="cert.key" + ``` + + > Note TLS and VolumePermissions: PostgreSQL requires certain permissions on sensitive files (such as certificate keys) to start up. Due to an on-going [issue](https://github.com/kubernetes/kubernetes/issues/57923) regarding kubernetes permissions and the use of `containerSecurityContext.runAsUser`, you must enable `volumePermissions` to ensure everything works as expected. + +### Sidecars + +If you need additional containers to run within the same pod as PostgreSQL (e.g. an additional metrics or logging exporter), you can do so via the `sidecars` config parameter. Simply define your container according to the Kubernetes container spec. + +```yaml +# For the PostgreSQL primary +primary: + sidecars: + - name: your-image-name + image: your-image + imagePullPolicy: Always + ports: + - name: portname + containerPort: 1234 +# For the PostgreSQL replicas +readReplicas: + sidecars: + - name: your-image-name + image: your-image + imagePullPolicy: Always + ports: + - name: portname + containerPort: 1234 +``` + +### Metrics + +The chart optionally can start a metrics exporter for [prometheus](https://prometheus.io). The metrics endpoint (port 9187) is not exposed and it is expected that the metrics are collected from inside the k8s cluster using something similar as the described in the [example Prometheus scrape configuration](https://github.com/prometheus/prometheus/blob/master/documentation/examples/prometheus-kubernetes.yml). + +The exporter allows to create custom metrics from additional SQL queries. See the Chart's `values.yaml` for an example and consult the [exporters documentation](https://github.com/wrouesnel/postgres_exporter#adding-new-metrics-via-a-config-file) for more details. + +### Use of global variables + +In more complex scenarios, we may have the following tree of dependencies + +``` + +--------------+ + | | + +------------+ Chart 1 +-----------+ + | | | | + | --------+------+ | + | | | + | | | + | | | + | | | + v v v ++-------+------+ +--------+------+ +--------+------+ +| | | | | | +| PostgreSQL | | Sub-chart 1 | | Sub-chart 2 | +| | | | | | ++--------------+ +---------------+ +---------------+ +``` + +The three charts below depend on the parent chart Chart 1. However, subcharts 1 and 2 may need to connect to PostgreSQL as well. In order to do so, subcharts 1 and 2 need to know the PostgreSQL credentials, so one option for deploying could be deploy Chart 1 with the following parameters: + +``` +postgresql.postgresqlPassword=testtest +subchart1.postgresql.postgresqlPassword=testtest +subchart2.postgresql.postgresqlPassword=testtest +postgresql.postgresqlDatabase=db1 +subchart1.postgresql.postgresqlDatabase=db1 +subchart2.postgresql.postgresqlDatabase=db1 +``` + +If the number of dependent sub-charts increases, installing the chart with parameters can become increasingly difficult. An alternative would be to set the credentials using global variables as follows: + +``` +global.postgresql.postgresqlPassword=testtest +global.postgresql.postgresqlDatabase=db1 +``` + +This way, the credentials will be available in all of the subcharts. + +## Persistence + +The [Bitnami PostgreSQL](https://github.com/bitnami/bitnami-docker-postgresql) image stores the PostgreSQL data and configurations at the `/bitnami/postgresql` path of the container. + +Persistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, and minikube. +See the [Parameters](#parameters) section to configure the PVC or to disable persistence. + +If you already have data in it, you will fail to sync to standby nodes for all commits, details can refer to [code](https://github.com/bitnami/bitnami-docker-postgresql/blob/8725fe1d7d30ebe8d9a16e9175d05f7ad9260c93/9.6/debian-9/rootfs/libpostgresql.sh#L518-L556). If you need to use those data, please covert them to sql and import after `helm install` finished. + +## NetworkPolicy + +To enable network policy for PostgreSQL, install [a networking plugin that implements the Kubernetes NetworkPolicy spec](https://kubernetes.io/docs/tasks/administer-cluster/declare-network-policy#before-you-begin), and set `networkPolicy.enabled` to `true`. + +For Kubernetes v1.5 & v1.6, you must also turn on NetworkPolicy by setting the DefaultDeny namespace annotation. Note: this will enforce policy for _all_ pods in the namespace: + +```console +$ kubectl annotate namespace default "net.beta.kubernetes.io/network-policy={\"ingress\":{\"isolation\":\"DefaultDeny\"}}" +``` + +With NetworkPolicy enabled, traffic will be limited to just port 5432. + +For more precise policy, set `networkPolicy.allowExternal=false`. This will only allow pods with the generated client label to connect to PostgreSQL. +This label will be displayed in the output of a successful install. + +## Differences between Bitnami PostgreSQL image and [Docker Official](https://hub.docker.com/_/postgres) image + +- The Docker Official PostgreSQL image does not support replication. If you pass any replication environment variable, this would be ignored. The only environment variables supported by the Docker Official image are POSTGRES_USER, POSTGRES_DB, POSTGRES_PASSWORD, POSTGRES_INITDB_ARGS, POSTGRES_INITDB_WALDIR and PGDATA. All the remaining environment variables are specific to the Bitnami PostgreSQL image. +- The Bitnami PostgreSQL image is non-root by default. This requires that you run the pod with `securityContext` and updates the permissions of the volume with an `initContainer`. A key benefit of this configuration is that the pod follows security best practices and is prepared to run on Kubernetes distributions with hard security constraints like OpenShift. +- For OpenShift, one may either define the runAsUser and fsGroup accordingly, or try this more dynamic option: volumePermissions.securityContext.runAsUser="auto",securityContext.enabled=false,containerSecurityContext.enabled=false,shmVolume.chmod.enabled=false + +### Deploy chart using Docker Official PostgreSQL Image + +From chart version 4.0.0, it is possible to use this chart with the Docker Official PostgreSQL image. +Besides specifying the new Docker repository and tag, it is important to modify the PostgreSQL data directory and volume mount point. Basically, the PostgreSQL data dir cannot be the mount point directly, it has to be a subdirectory. + +``` +image.repository=postgres +image.tag=10.6 +postgresqlDataDir=/data/pgdata +persistence.mountPath=/data/ +``` + +### Setting Pod's affinity + +This chart allows you to set your custom affinity using the `XXX.affinity` paremeter(s). Find more infomation about Pod's affinity in the [kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity). + +As an alternative, you can use of the preset configurations for pod affinity, pod anti-affinity, and node affinity available at the [bitnami/common](https://github.com/bitnami/charts/tree/master/bitnami/common#affinities) chart. To do so, set the `XXX.podAffinityPreset`, `XXX.podAntiAffinityPreset`, or `XXX.nodeAffinityPreset` parameters. + +## Troubleshooting + +Find more information about how to deal with common errors related to Bitnami’s Helm charts in [this troubleshooting guide](https://docs.bitnami.com/general/how-to/troubleshoot-helm-chart-issues). + +## Upgrading + +It's necessary to specify the existing passwords while performing an upgrade to ensure the secrets are not updated with invalid randomly generated passwords. Remember to specify the existing values of the `postgresqlPassword` and `replication.password` parameters when upgrading the chart: + +```bash +$ helm upgrade my-release bitnami/postgresql \ + --set postgresqlPassword=[POSTGRESQL_PASSWORD] \ + --set replication.password=[REPLICATION_PASSWORD] +``` + +> Note: you need to substitute the placeholders _[POSTGRESQL_PASSWORD]_, and _[REPLICATION_PASSWORD]_ with the values obtained from instructions in the installation notes. + +### To 10.0.0 + +[On November 13, 2020, Helm v2 support was formally finished](https://github.com/helm/charts#status-of-the-project), this major version is the result of the required changes applied to the Helm Chart to be able to incorporate the different features added in Helm v3 and to be consistent with the Helm project itself regarding the Helm v2 EOL. + +**What changes were introduced in this major version?** + +- Previous versions of this Helm Chart use `apiVersion: v1` (installable by both Helm 2 and 3), this Helm Chart was updated to `apiVersion: v2` (installable by Helm 3 only). [Here](https://helm.sh/docs/topics/charts/#the-apiversion-field) you can find more information about the `apiVersion` field. +- Move dependency information from the *requirements.yaml* to the *Chart.yaml* +- After running `helm dependency update`, a *Chart.lock* file is generated containing the same structure used in the previous *requirements.lock* +- The different fields present in the *Chart.yaml* file has been ordered alphabetically in a homogeneous way for all the Bitnami Helm Chart. + +**Considerations when upgrading to this version** + +- If you want to upgrade to this version using Helm v2, this scenario is not supported as this version doesn't support Helm v2 anymore +- If you installed the previous version with Helm v2 and wants to upgrade to this version with Helm v3, please refer to the [official Helm documentation](https://helm.sh/docs/topics/v2_v3_migration/#migration-use-cases) about migrating from Helm v2 to v3 + +**Useful links** + +- https://docs.bitnami.com/tutorials/resolve-helm2-helm3-post-migration-issues/ +- https://helm.sh/docs/topics/v2_v3_migration/ +- https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/ + +#### Breaking changes + +- The term `master` has been replaced with `primary` and `slave` with `readReplicas` throughout the chart. Role names have changed from `master` and `slave` to `primary` and `read`. + +To upgrade to `10.0.0`, it should be done reusing the PVCs used to hold the PostgreSQL data on your previous release. To do so, follow the instructions below (the following example assumes that the release name is `postgresql`): + +> NOTE: Please, create a backup of your database before running any of those actions. + +Obtain the credentials and the names of the PVCs used to hold the PostgreSQL data on your current release: + +```console +$ export POSTGRESQL_PASSWORD=$(kubectl get secret --namespace default postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode) +$ export POSTGRESQL_PVC=$(kubectl get pvc -l app.kubernetes.io/instance=postgresql,role=master -o jsonpath="{.items[0].metadata.name}") +``` + +Delete the PostgreSQL statefulset. Notice the option `--cascade=false`: + +```console +$ kubectl delete statefulsets.apps postgresql-postgresql --cascade=false +``` + +Now the upgrade works: + +```console +$ helm upgrade postgresql bitnami/postgresql --set postgresqlPassword=$POSTGRESQL_PASSWORD --set persistence.existingClaim=$POSTGRESQL_PVC +``` + +You will have to delete the existing PostgreSQL pod and the new statefulset is going to create a new one + +```console +$ kubectl delete pod postgresql-postgresql-0 +``` + +Finally, you should see the lines below in PostgreSQL container logs: + +```console +$ kubectl logs $(kubectl get pods -l app.kubernetes.io/instance=postgresql,app.kubernetes.io/name=postgresql,role=primary -o jsonpath="{.items[0].metadata.name}") +... +postgresql 08:05:12.59 INFO ==> Deploying PostgreSQL with persisted data... +... +``` + +### To 9.0.0 + +In this version the chart was adapted to follow the Helm label best practices, see [PR 3021](https://github.com/bitnami/charts/pull/3021). That means the backward compatibility is not guarantee when upgrading the chart to this major version. + +As a workaround, you can delete the existing statefulset (using the `--cascade=false` flag pods are not deleted) before upgrade the chart. For example, this can be a valid workflow: + +- Deploy an old version (8.X.X) + +```console +$ helm install postgresql bitnami/postgresql --version 8.10.14 +``` + +- Old version is up and running + +```console +$ helm ls +NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION +postgresql default 1 2020-08-04 13:39:54.783480286 +0000 UTC deployed postgresql-8.10.14 11.8.0 + +$ kubectl get pods +NAME READY STATUS RESTARTS AGE +postgresql-postgresql-0 1/1 Running 0 76s +``` + +- The upgrade to the latest one (9.X.X) is going to fail + +```console +$ helm upgrade postgresql bitnami/postgresql +Error: UPGRADE FAILED: cannot patch "postgresql-postgresql" with kind StatefulSet: StatefulSet.apps "postgresql-postgresql" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden +``` + +- Delete the statefulset + +```console +$ kubectl delete statefulsets.apps --cascade=false postgresql-postgresql +statefulset.apps "postgresql-postgresql" deleted +``` + +- Now the upgrade works + +```console +$ helm upgrade postgresql bitnami/postgresql +$ helm ls +NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION +postgresql default 3 2020-08-04 13:42:08.020385884 +0000 UTC deployed postgresql-9.1.2 11.8.0 +``` + +- We can kill the existing pod and the new statefulset is going to create a new one: + +```console +$ kubectl delete pod postgresql-postgresql-0 +pod "postgresql-postgresql-0" deleted + +$ kubectl get pods +NAME READY STATUS RESTARTS AGE +postgresql-postgresql-0 1/1 Running 0 19s +``` + +Please, note that without the `--cascade=false` both objects (statefulset and pod) are going to be removed and both objects will be deployed again with the `helm upgrade` command + +### To 8.0.0 + +Prefixes the port names with their protocols to comply with Istio conventions. + +If you depend on the port names in your setup, make sure to update them to reflect this change. + +### To 7.1.0 + +Adds support for LDAP configuration. + +### To 7.0.0 + +Helm performs a lookup for the object based on its group (apps), version (v1), and kind (Deployment). Also known as its GroupVersionKind, or GVK. Changing the GVK is considered a compatibility breaker from Kubernetes' point of view, so you cannot "upgrade" those objects to the new GVK in-place. Earlier versions of Helm 3 did not perform the lookup correctly which has since been fixed to match the spec. + +In https://github.com/helm/charts/pull/17281 the `apiVersion` of the statefulset resources was updated to `apps/v1` in tune with the api's deprecated, resulting in compatibility breakage. + +This major version bump signifies this change. + +### To 6.5.7 + +In this version, the chart will use PostgreSQL with the Postgis extension included. The version used with Postgresql version 10, 11 and 12 is Postgis 2.5. It has been compiled with the following dependencies: + +- protobuf +- protobuf-c +- json-c +- geos +- proj + +### To 5.0.0 + +In this version, the **chart is using PostgreSQL 11 instead of PostgreSQL 10**. You can find the main difference and notable changes in the following links: [https://www.postgresql.org/about/news/1894/](https://www.postgresql.org/about/news/1894/) and [https://www.postgresql.org/about/featurematrix/](https://www.postgresql.org/about/featurematrix/). + +For major releases of PostgreSQL, the internal data storage format is subject to change, thus complicating upgrades, you can see some errors like the following one in the logs: + +```console +Welcome to the Bitnami postgresql container +Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-postgresql +Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-postgresql/issues +Send us your feedback at containers@bitnami.com + +INFO ==> ** Starting PostgreSQL setup ** +NFO ==> Validating settings in POSTGRESQL_* env vars.. +INFO ==> Initializing PostgreSQL database... +INFO ==> postgresql.conf file not detected. Generating it... +INFO ==> pg_hba.conf file not detected. Generating it... +INFO ==> Deploying PostgreSQL with persisted data... +INFO ==> Configuring replication parameters +INFO ==> Loading custom scripts... +INFO ==> Enabling remote connections +INFO ==> Stopping PostgreSQL... +INFO ==> ** PostgreSQL setup finished! ** + +INFO ==> ** Starting PostgreSQL ** + [1] FATAL: database files are incompatible with server + [1] DETAIL: The data directory was initialized by PostgreSQL version 10, which is not compatible with this version 11.3. +``` + +In this case, you should migrate the data from the old chart to the new one following an approach similar to that described in [this section](https://www.postgresql.org/docs/current/upgrading.html#UPGRADING-VIA-PGDUMPALL) from the official documentation. Basically, create a database dump in the old chart, move and restore it in the new one. + +### To 4.0.0 + +This chart will use by default the Bitnami PostgreSQL container starting from version `10.7.0-r68`. This version moves the initialization logic from node.js to bash. This new version of the chart requires setting the `POSTGRES_PASSWORD` in the slaves as well, in order to properly configure the `pg_hba.conf` file. Users from previous versions of the chart are advised to upgrade immediately. + +IMPORTANT: If you do not want to upgrade the chart version then make sure you use the `10.7.0-r68` version of the container. Otherwise, you will get this error + +``` +The POSTGRESQL_PASSWORD environment variable is empty or not set. Set the environment variable ALLOW_EMPTY_PASSWORD=yes to allow the container to be started with blank passwords. This is recommended only for development +``` + +### To 3.0.0 + +This releases make it possible to specify different nodeSelector, affinity and tolerations for master and slave pods. +It also fixes an issue with `postgresql.master.fullname` helper template not obeying fullnameOverride. + +#### Breaking changes + +- `affinty` has been renamed to `master.affinity` and `slave.affinity`. +- `tolerations` has been renamed to `master.tolerations` and `slave.tolerations`. +- `nodeSelector` has been renamed to `master.nodeSelector` and `slave.nodeSelector`. + +### To 2.0.0 + +In order to upgrade from the `0.X.X` branch to `1.X.X`, you should follow the below steps: + +- Obtain the service name (`SERVICE_NAME`) and password (`OLD_PASSWORD`) of the existing postgresql chart. You can find the instructions to obtain the password in the NOTES.txt, the service name can be obtained by running + +```console +$ kubectl get svc +``` + +- Install (not upgrade) the new version + +```console +$ helm repo update +$ helm install my-release bitnami/postgresql +``` + +- Connect to the new pod (you can obtain the name by running `kubectl get pods`): + +```console +$ kubectl exec -it NAME bash +``` + +- Once logged in, create a dump file from the previous database using `pg_dump`, for that we should connect to the previous postgresql chart: + +```console +$ pg_dump -h SERVICE_NAME -U postgres DATABASE_NAME > /tmp/backup.sql +``` + +After run above command you should be prompted for a password, this password is the previous chart password (`OLD_PASSWORD`). +This operation could take some time depending on the database size. + +- Once you have the backup file, you can restore it with a command like the one below: + +```console +$ psql -U postgres DATABASE_NAME < /tmp/backup.sql +``` + +In this case, you are accessing to the local postgresql, so the password should be the new one (you can find it in NOTES.txt). + +If you want to restore the database and the database schema does not exist, it is necessary to first follow the steps described below. + +```console +$ psql -U postgres +postgres=# drop database DATABASE_NAME; +postgres=# create database DATABASE_NAME; +postgres=# create user USER_NAME; +postgres=# alter role USER_NAME with password 'BITNAMI_USER_PASSWORD'; +postgres=# grant all privileges on database DATABASE_NAME to USER_NAME; +postgres=# alter database DATABASE_NAME owner to USER_NAME; +``` + +## License + +Copyright © 2022 Bitnami + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/.helmignore b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/.helmignore new file mode 100644 index 00000000..50af0317 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/.helmignore @@ -0,0 +1,22 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/Chart.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/Chart.yaml new file mode 100644 index 00000000..5db0444e --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/Chart.yaml @@ -0,0 +1,22 @@ +annotations: + category: Infrastructure +apiVersion: v2 +appVersion: 1.10.0 +description: A Library Helm Chart for grouping common logic between bitnami charts. This chart is not deployable by itself. +home: https://github.com/bitnami/charts/tree/master/bitnami/common +icon: https://bitnami.com/downloads/logos/bitnami-mark.png +keywords: +- common +- helper +- template +- function +- bitnami +maintainers: +- email: containers@bitnami.com + name: Bitnami +name: common +sources: +- https://github.com/bitnami/charts +- https://www.bitnami.com/ +type: library +version: 1.10.3 diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/README.md b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/README.md new file mode 100644 index 00000000..cbbc31d9 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/README.md @@ -0,0 +1,328 @@ +# Bitnami Common Library Chart + +A [Helm Library Chart](https://helm.sh/docs/topics/library_charts/#helm) for grouping common logic between bitnami charts. + +## TL;DR + +```yaml +dependencies: + - name: common + version: 0.x.x + repository: https://charts.bitnami.com/bitnami +``` + +```bash +$ helm dependency update +``` + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.names.fullname" . }} +data: + myvalue: "Hello World" +``` + +## Introduction + +This chart provides a common template helpers which can be used to develop new charts using [Helm](https://helm.sh) package manager. + +Bitnami charts can be used with [Kubeapps](https://kubeapps.com/) for deployment and management of Helm Charts in clusters. This Helm chart has been tested on top of [Bitnami Kubernetes Production Runtime](https://kubeprod.io/) (BKPR). Deploy BKPR to get automated TLS certificates, logging and monitoring for your applications. + +## Prerequisites + +- Kubernetes 1.12+ +- Helm 3.1.0 + +## Parameters + +The following table lists the helpers available in the library which are scoped in different sections. + +### Affinities + +| Helper identifier | Description | Expected Input | +|-------------------------------|------------------------------------------------------|------------------------------------------------| +| `common.affinities.node.soft` | Return a soft nodeAffinity definition | `dict "key" "FOO" "values" (list "BAR" "BAZ")` | +| `common.affinities.node.hard` | Return a hard nodeAffinity definition | `dict "key" "FOO" "values" (list "BAR" "BAZ")` | +| `common.affinities.pod.soft` | Return a soft podAffinity/podAntiAffinity definition | `dict "component" "FOO" "context" $` | +| `common.affinities.pod.hard` | Return a hard podAffinity/podAntiAffinity definition | `dict "component" "FOO" "context" $` | + +### Capabilities + +| Helper identifier | Description | Expected Input | +|------------------------------------------------|------------------------------------------------------------------------------------------------|-------------------| +| `common.capabilities.kubeVersion` | Return the target Kubernetes version (using client default if .Values.kubeVersion is not set). | `.` Chart context | +| `common.capabilities.cronjob.apiVersion` | Return the appropriate apiVersion for cronjob. | `.` Chart context | +| `common.capabilities.deployment.apiVersion` | Return the appropriate apiVersion for deployment. | `.` Chart context | +| `common.capabilities.statefulset.apiVersion` | Return the appropriate apiVersion for statefulset. | `.` Chart context | +| `common.capabilities.ingress.apiVersion` | Return the appropriate apiVersion for ingress. | `.` Chart context | +| `common.capabilities.rbac.apiVersion` | Return the appropriate apiVersion for RBAC resources. | `.` Chart context | +| `common.capabilities.crd.apiVersion` | Return the appropriate apiVersion for CRDs. | `.` Chart context | +| `common.capabilities.policy.apiVersion` | Return the appropriate apiVersion for podsecuritypolicy. | `.` Chart context | +| `common.capabilities.networkPolicy.apiVersion` | Return the appropriate apiVersion for networkpolicy. | `.` Chart context | +| `common.capabilities.supportsHelmVersion` | Returns true if the used Helm version is 3.3+ | `.` Chart context | + +### Errors + +| Helper identifier | Description | Expected Input | +|-----------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------| +| `common.errors.upgrade.passwords.empty` | It will ensure required passwords are given when we are upgrading a chart. If `validationErrors` is not empty it will throw an error and will stop the upgrade action. | `dict "validationErrors" (list $validationError00 $validationError01) "context" $` | + +### Images + +| Helper identifier | Description | Expected Input | +|-----------------------------|------------------------------------------------------|---------------------------------------------------------------------------------------------------------| +| `common.images.image` | Return the proper and full image name | `dict "imageRoot" .Values.path.to.the.image "global" $`, see [ImageRoot](#imageroot) for the structure. | +| `common.images.pullSecrets` | Return the proper Docker Image Registry Secret Names (deprecated: use common.images.renderPullSecrets instead) | `dict "images" (list .Values.path.to.the.image1, .Values.path.to.the.image2) "global" .Values.global` | +| `common.images.renderPullSecrets` | Return the proper Docker Image Registry Secret Names (evaluates values as templates) | `dict "images" (list .Values.path.to.the.image1, .Values.path.to.the.image2) "context" $` | + +### Ingress + +| Helper identifier | Description | Expected Input | +|-------------------------------------------|----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `common.ingress.backend` | Generate a proper Ingress backend entry depending on the API version | `dict "serviceName" "foo" "servicePort" "bar"`, see the [Ingress deprecation notice](https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/) for the syntax differences | +| `common.ingress.supportsPathType` | Prints "true" if the pathType field is supported | `.` Chart context | +| `common.ingress.supportsIngressClassname` | Prints "true" if the ingressClassname field is supported | `.` Chart context | + +### Labels + +| Helper identifier | Description | Expected Input | +|-----------------------------|------------------------------------------------------|-------------------| +| `common.labels.standard` | Return Kubernetes standard labels | `.` Chart context | +| `common.labels.matchLabels` | Return the proper Docker Image Registry Secret Names | `.` Chart context | + +### Names + +| Helper identifier | Description | Expected Input | +|-------------------------|------------------------------------------------------------|-------------------| +| `common.names.name` | Expand the name of the chart or use `.Values.nameOverride` | `.` Chart context | +| `common.names.fullname` | Create a default fully qualified app name. | `.` Chart context | +| `common.names.chart` | Chart name plus version | `.` Chart context | + +### Secrets + +| Helper identifier | Description | Expected Input | +|---------------------------|--------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `common.secrets.name` | Generate the name of the secret. | `dict "existingSecret" .Values.path.to.the.existingSecret "defaultNameSuffix" "mySuffix" "context" $` see [ExistingSecret](#existingsecret) for the structure. | +| `common.secrets.key` | Generate secret key. | `dict "existingSecret" .Values.path.to.the.existingSecret "key" "keyName"` see [ExistingSecret](#existingsecret) for the structure. | +| `common.passwords.manage` | Generate secret password or retrieve one if already created. | `dict "secret" "secret-name" "key" "keyName" "providedValues" (list "path.to.password1" "path.to.password2") "length" 10 "strong" false "chartName" "chartName" "context" $`, length, strong and chartNAme fields are optional. | +| `common.secrets.exists` | Returns whether a previous generated secret already exists. | `dict "secret" "secret-name" "context" $` | + +### Storage + +| Helper identifier | Description | Expected Input | +|-------------------------------|---------------------------------------|---------------------------------------------------------------------------------------------------------------------| +| `common.storage.class` | Return the proper Storage Class | `dict "persistence" .Values.path.to.the.persistence "global" $`, see [Persistence](#persistence) for the structure. | + +### TplValues + +| Helper identifier | Description | Expected Input | +|---------------------------|----------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------| +| `common.tplvalues.render` | Renders a value that contains template | `dict "value" .Values.path.to.the.Value "context" $`, value is the value should rendered as template, context frequently is the chart context `$` or `.` | + +### Utils + +| Helper identifier | Description | Expected Input | +|--------------------------------|------------------------------------------------------------------------------------------|------------------------------------------------------------------------| +| `common.utils.fieldToEnvVar` | Build environment variable name given a field. | `dict "field" "my-password"` | +| `common.utils.secret.getvalue` | Print instructions to get a secret value. | `dict "secret" "secret-name" "field" "secret-value-field" "context" $` | +| `common.utils.getValueFromKey` | Gets a value from `.Values` object given its key path | `dict "key" "path.to.key" "context" $` | +| `common.utils.getKeyFromList` | Returns first `.Values` key with a defined value or first of the list if all non-defined | `dict "keys" (list "path.to.key1" "path.to.key2") "context" $` | + +### Validations + +| Helper identifier | Description | Expected Input | +|--------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `common.validations.values.single.empty` | Validate a value must not be empty. | `dict "valueKey" "path.to.value" "secret" "secret.name" "field" "my-password" "subchart" "subchart" "context" $` secret, field and subchart are optional. In case they are given, the helper will generate a how to get instruction. See [ValidateValue](#validatevalue) | +| `common.validations.values.multiple.empty` | Validate a multiple values must not be empty. It returns a shared error for all the values. | `dict "required" (list $validateValueConf00 $validateValueConf01) "context" $`. See [ValidateValue](#validatevalue) | +| `common.validations.values.mariadb.passwords` | This helper will ensure required password for MariaDB are not empty. It returns a shared error for all the values. | `dict "secret" "mariadb-secret" "subchart" "true" "context" $` subchart field is optional and could be true or false it depends on where you will use mariadb chart and the helper. | +| `common.validations.values.postgresql.passwords` | This helper will ensure required password for PostgreSQL are not empty. It returns a shared error for all the values. | `dict "secret" "postgresql-secret" "subchart" "true" "context" $` subchart field is optional and could be true or false it depends on where you will use postgresql chart and the helper. | +| `common.validations.values.redis.passwords` | This helper will ensure required password for Redis™ are not empty. It returns a shared error for all the values. | `dict "secret" "redis-secret" "subchart" "true" "context" $` subchart field is optional and could be true or false it depends on where you will use redis chart and the helper. | +| `common.validations.values.cassandra.passwords` | This helper will ensure required password for Cassandra are not empty. It returns a shared error for all the values. | `dict "secret" "cassandra-secret" "subchart" "true" "context" $` subchart field is optional and could be true or false it depends on where you will use cassandra chart and the helper. | +| `common.validations.values.mongodb.passwords` | This helper will ensure required password for MongoDB® are not empty. It returns a shared error for all the values. | `dict "secret" "mongodb-secret" "subchart" "true" "context" $` subchart field is optional and could be true or false it depends on where you will use mongodb chart and the helper. | + +### Warnings + +| Helper identifier | Description | Expected Input | +|------------------------------|----------------------------------|------------------------------------------------------------| +| `common.warnings.rollingTag` | Warning about using rolling tag. | `ImageRoot` see [ImageRoot](#imageroot) for the structure. | + +## Special input schemas + +### ImageRoot + +```yaml +registry: + type: string + description: Docker registry where the image is located + example: docker.io + +repository: + type: string + description: Repository and image name + example: bitnami/nginx + +tag: + type: string + description: image tag + example: 1.16.1-debian-10-r63 + +pullPolicy: + type: string + description: Specify a imagePullPolicy. Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + +pullSecrets: + type: array + items: + type: string + description: Optionally specify an array of imagePullSecrets (evaluated as templates). + +debug: + type: boolean + description: Set to true if you would like to see extra information on logs + example: false + +## An instance would be: +# registry: docker.io +# repository: bitnami/nginx +# tag: 1.16.1-debian-10-r63 +# pullPolicy: IfNotPresent +# debug: false +``` + +### Persistence + +```yaml +enabled: + type: boolean + description: Whether enable persistence. + example: true + +storageClass: + type: string + description: Ghost data Persistent Volume Storage Class, If set to "-", storageClassName: "" which disables dynamic provisioning. + example: "-" + +accessMode: + type: string + description: Access mode for the Persistent Volume Storage. + example: ReadWriteOnce + +size: + type: string + description: Size the Persistent Volume Storage. + example: 8Gi + +path: + type: string + description: Path to be persisted. + example: /bitnami + +## An instance would be: +# enabled: true +# storageClass: "-" +# accessMode: ReadWriteOnce +# size: 8Gi +# path: /bitnami +``` + +### ExistingSecret + +```yaml +name: + type: string + description: Name of the existing secret. + example: mySecret +keyMapping: + description: Mapping between the expected key name and the name of the key in the existing secret. + type: object + +## An instance would be: +# name: mySecret +# keyMapping: +# password: myPasswordKey +``` + +#### Example of use + +When we store sensitive data for a deployment in a secret, some times we want to give to users the possibility of using theirs existing secrets. + +```yaml +# templates/secret.yaml +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "common.names.fullname" . }} + labels: + app: {{ include "common.names.fullname" . }} +type: Opaque +data: + password: {{ .Values.password | b64enc | quote }} + +# templates/dpl.yaml +--- +... + env: + - name: PASSWORD + valueFrom: + secretKeyRef: + name: {{ include "common.secrets.name" (dict "existingSecret" .Values.existingSecret "context" $) }} + key: {{ include "common.secrets.key" (dict "existingSecret" .Values.existingSecret "key" "password") }} +... + +# values.yaml +--- +name: mySecret +keyMapping: + password: myPasswordKey +``` + +### ValidateValue + +#### NOTES.txt + +```console +{{- $validateValueConf00 := (dict "valueKey" "path.to.value00" "secret" "secretName" "field" "password-00") -}} +{{- $validateValueConf01 := (dict "valueKey" "path.to.value01" "secret" "secretName" "field" "password-01") -}} + +{{ include "common.validations.values.multiple.empty" (dict "required" (list $validateValueConf00 $validateValueConf01) "context" $) }} +``` + +If we force those values to be empty we will see some alerts + +```console +$ helm install test mychart --set path.to.value00="",path.to.value01="" + 'path.to.value00' must not be empty, please add '--set path.to.value00=$PASSWORD_00' to the command. To get the current value: + + export PASSWORD_00=$(kubectl get secret --namespace default secretName -o jsonpath="{.data.password-00}" | base64 --decode) + + 'path.to.value01' must not be empty, please add '--set path.to.value01=$PASSWORD_01' to the command. To get the current value: + + export PASSWORD_01=$(kubectl get secret --namespace default secretName -o jsonpath="{.data.password-01}" | base64 --decode) +``` + +## Upgrading + +### To 1.0.0 + +[On November 13, 2020, Helm v2 support was formally finished](https://github.com/helm/charts#status-of-the-project), this major version is the result of the required changes applied to the Helm Chart to be able to incorporate the different features added in Helm v3 and to be consistent with the Helm project itself regarding the Helm v2 EOL. + +**What changes were introduced in this major version?** + +- Previous versions of this Helm Chart use `apiVersion: v1` (installable by both Helm 2 and 3), this Helm Chart was updated to `apiVersion: v2` (installable by Helm 3 only). [Here](https://helm.sh/docs/topics/charts/#the-apiversion-field) you can find more information about the `apiVersion` field. +- Use `type: library`. [Here](https://v3.helm.sh/docs/faq/#library-chart-support) you can find more information. +- The different fields present in the *Chart.yaml* file has been ordered alphabetically in a homogeneous way for all the Bitnami Helm Charts + +**Considerations when upgrading to this version** + +- If you want to upgrade to this version from a previous one installed with Helm v3, you shouldn't face any issues +- If you want to upgrade to this version using Helm v2, this scenario is not supported as this version doesn't support Helm v2 anymore +- If you installed the previous version with Helm v2 and wants to upgrade to this version with Helm v3, please refer to the [official Helm documentation](https://helm.sh/docs/topics/v2_v3_migration/#migration-use-cases) about migrating from Helm v2 to v3 + +**Useful links** + +- https://docs.bitnami.com/tutorials/resolve-helm2-helm3-post-migration-issues/ +- https://helm.sh/docs/topics/v2_v3_migration/ +- https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/ diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_affinities.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_affinities.tpl new file mode 100644 index 00000000..189ea403 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_affinities.tpl @@ -0,0 +1,102 @@ +{{/* vim: set filetype=mustache: */}} + +{{/* +Return a soft nodeAffinity definition +{{ include "common.affinities.nodes.soft" (dict "key" "FOO" "values" (list "BAR" "BAZ")) -}} +*/}} +{{- define "common.affinities.nodes.soft" -}} +preferredDuringSchedulingIgnoredDuringExecution: + - preference: + matchExpressions: + - key: {{ .key }} + operator: In + values: + {{- range .values }} + - {{ . | quote }} + {{- end }} + weight: 1 +{{- end -}} + +{{/* +Return a hard nodeAffinity definition +{{ include "common.affinities.nodes.hard" (dict "key" "FOO" "values" (list "BAR" "BAZ")) -}} +*/}} +{{- define "common.affinities.nodes.hard" -}} +requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .key }} + operator: In + values: + {{- range .values }} + - {{ . | quote }} + {{- end }} +{{- end -}} + +{{/* +Return a nodeAffinity definition +{{ include "common.affinities.nodes" (dict "type" "soft" "key" "FOO" "values" (list "BAR" "BAZ")) -}} +*/}} +{{- define "common.affinities.nodes" -}} + {{- if eq .type "soft" }} + {{- include "common.affinities.nodes.soft" . -}} + {{- else if eq .type "hard" }} + {{- include "common.affinities.nodes.hard" . -}} + {{- end -}} +{{- end -}} + +{{/* +Return a soft podAffinity/podAntiAffinity definition +{{ include "common.affinities.pods.soft" (dict "component" "FOO" "extraMatchLabels" .Values.extraMatchLabels "context" $) -}} +*/}} +{{- define "common.affinities.pods.soft" -}} +{{- $component := default "" .component -}} +{{- $extraMatchLabels := default (dict) .extraMatchLabels -}} +preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: {{- (include "common.labels.matchLabels" .context) | nindent 10 }} + {{- if not (empty $component) }} + {{ printf "app.kubernetes.io/component: %s" $component }} + {{- end }} + {{- range $key, $value := $extraMatchLabels }} + {{ $key }}: {{ $value | quote }} + {{- end }} + namespaces: + - {{ .context.Release.Namespace | quote }} + topologyKey: kubernetes.io/hostname + weight: 1 +{{- end -}} + +{{/* +Return a hard podAffinity/podAntiAffinity definition +{{ include "common.affinities.pods.hard" (dict "component" "FOO" "extraMatchLabels" .Values.extraMatchLabels "context" $) -}} +*/}} +{{- define "common.affinities.pods.hard" -}} +{{- $component := default "" .component -}} +{{- $extraMatchLabels := default (dict) .extraMatchLabels -}} +requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: {{- (include "common.labels.matchLabels" .context) | nindent 8 }} + {{- if not (empty $component) }} + {{ printf "app.kubernetes.io/component: %s" $component }} + {{- end }} + {{- range $key, $value := $extraMatchLabels }} + {{ $key }}: {{ $value | quote }} + {{- end }} + namespaces: + - {{ .context.Release.Namespace | quote }} + topologyKey: kubernetes.io/hostname +{{- end -}} + +{{/* +Return a podAffinity/podAntiAffinity definition +{{ include "common.affinities.pods" (dict "type" "soft" "key" "FOO" "values" (list "BAR" "BAZ")) -}} +*/}} +{{- define "common.affinities.pods" -}} + {{- if eq .type "soft" }} + {{- include "common.affinities.pods.soft" . -}} + {{- else if eq .type "hard" }} + {{- include "common.affinities.pods.hard" . -}} + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_capabilities.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_capabilities.tpl new file mode 100644 index 00000000..b94212bb --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_capabilities.tpl @@ -0,0 +1,128 @@ +{{/* vim: set filetype=mustache: */}} + +{{/* +Return the target Kubernetes version +*/}} +{{- define "common.capabilities.kubeVersion" -}} +{{- if .Values.global }} + {{- if .Values.global.kubeVersion }} + {{- .Values.global.kubeVersion -}} + {{- else }} + {{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} + {{- end -}} +{{- else }} +{{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for poddisruptionbudget. +*/}} +{{- define "common.capabilities.policy.apiVersion" -}} +{{- if semverCompare "<1.21-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "policy/v1beta1" -}} +{{- else -}} +{{- print "policy/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for networkpolicy. +*/}} +{{- define "common.capabilities.networkPolicy.apiVersion" -}} +{{- if semverCompare "<1.7-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "extensions/v1beta1" -}} +{{- else -}} +{{- print "networking.k8s.io/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for cronjob. +*/}} +{{- define "common.capabilities.cronjob.apiVersion" -}} +{{- if semverCompare "<1.21-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "batch/v1beta1" -}} +{{- else -}} +{{- print "batch/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for deployment. +*/}} +{{- define "common.capabilities.deployment.apiVersion" -}} +{{- if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "extensions/v1beta1" -}} +{{- else -}} +{{- print "apps/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for statefulset. +*/}} +{{- define "common.capabilities.statefulset.apiVersion" -}} +{{- if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "apps/v1beta1" -}} +{{- else -}} +{{- print "apps/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for ingress. +*/}} +{{- define "common.capabilities.ingress.apiVersion" -}} +{{- if .Values.ingress -}} +{{- if .Values.ingress.apiVersion -}} +{{- .Values.ingress.apiVersion -}} +{{- else if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "extensions/v1beta1" -}} +{{- else if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "networking.k8s.io/v1beta1" -}} +{{- else -}} +{{- print "networking.k8s.io/v1" -}} +{{- end }} +{{- else if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "extensions/v1beta1" -}} +{{- else if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "networking.k8s.io/v1beta1" -}} +{{- else -}} +{{- print "networking.k8s.io/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for RBAC resources. +*/}} +{{- define "common.capabilities.rbac.apiVersion" -}} +{{- if semverCompare "<1.17-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "rbac.authorization.k8s.io/v1beta1" -}} +{{- else -}} +{{- print "rbac.authorization.k8s.io/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for CRDs. +*/}} +{{- define "common.capabilities.crd.apiVersion" -}} +{{- if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "apiextensions.k8s.io/v1beta1" -}} +{{- else -}} +{{- print "apiextensions.k8s.io/v1" -}} +{{- end -}} +{{- end -}} + +{{/* +Returns true if the used Helm version is 3.3+. +A way to check the used Helm version was not introduced until version 3.3.0 with .Capabilities.HelmVersion, which contains an additional "{}}" structure. +This check is introduced as a regexMatch instead of {{ if .Capabilities.HelmVersion }} because checking for the key HelmVersion in <3.3 results in a "interface not found" error. +**To be removed when the catalog's minimun Helm version is 3.3** +*/}} +{{- define "common.capabilities.supportsHelmVersion" -}} +{{- if regexMatch "{(v[0-9])*[^}]*}}$" (.Capabilities | toString ) }} + {{- true -}} +{{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_errors.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_errors.tpl new file mode 100644 index 00000000..a79cc2e3 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_errors.tpl @@ -0,0 +1,23 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Through error when upgrading using empty passwords values that must not be empty. + +Usage: +{{- $validationError00 := include "common.validations.values.single.empty" (dict "valueKey" "path.to.password00" "secret" "secretName" "field" "password-00") -}} +{{- $validationError01 := include "common.validations.values.single.empty" (dict "valueKey" "path.to.password01" "secret" "secretName" "field" "password-01") -}} +{{ include "common.errors.upgrade.passwords.empty" (dict "validationErrors" (list $validationError00 $validationError01) "context" $) }} + +Required password params: + - validationErrors - String - Required. List of validation strings to be return, if it is empty it won't throw error. + - context - Context - Required. Parent context. +*/}} +{{- define "common.errors.upgrade.passwords.empty" -}} + {{- $validationErrors := join "" .validationErrors -}} + {{- if and $validationErrors .context.Release.IsUpgrade -}} + {{- $errorString := "\nPASSWORDS ERROR: You must provide your current passwords when upgrading the release." -}} + {{- $errorString = print $errorString "\n Note that even after reinstallation, old credentials may be needed as they may be kept in persistent volume claims." -}} + {{- $errorString = print $errorString "\n Further information can be obtained at https://docs.bitnami.com/general/how-to/troubleshoot-helm-chart-issues/#credential-errors-while-upgrading-chart-releases" -}} + {{- $errorString = print $errorString "\n%s" -}} + {{- printf $errorString $validationErrors | fail -}} + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_images.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_images.tpl new file mode 100644 index 00000000..42ffbc72 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_images.tpl @@ -0,0 +1,75 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Return the proper image name +{{ include "common.images.image" ( dict "imageRoot" .Values.path.to.the.image "global" $) }} +*/}} +{{- define "common.images.image" -}} +{{- $registryName := .imageRoot.registry -}} +{{- $repositoryName := .imageRoot.repository -}} +{{- $tag := .imageRoot.tag | toString -}} +{{- if .global }} + {{- if .global.imageRegistry }} + {{- $registryName = .global.imageRegistry -}} + {{- end -}} +{{- end -}} +{{- if $registryName }} +{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} +{{- else -}} +{{- printf "%s:%s" $repositoryName $tag -}} +{{- end -}} +{{- end -}} + +{{/* +Return the proper Docker Image Registry Secret Names (deprecated: use common.images.renderPullSecrets instead) +{{ include "common.images.pullSecrets" ( dict "images" (list .Values.path.to.the.image1, .Values.path.to.the.image2) "global" .Values.global) }} +*/}} +{{- define "common.images.pullSecrets" -}} + {{- $pullSecrets := list }} + + {{- if .global }} + {{- range .global.imagePullSecrets -}} + {{- $pullSecrets = append $pullSecrets . -}} + {{- end -}} + {{- end -}} + + {{- range .images -}} + {{- range .pullSecrets -}} + {{- $pullSecrets = append $pullSecrets . -}} + {{- end -}} + {{- end -}} + + {{- if (not (empty $pullSecrets)) }} +imagePullSecrets: + {{- range $pullSecrets }} + - name: {{ . }} + {{- end }} + {{- end }} +{{- end -}} + +{{/* +Return the proper Docker Image Registry Secret Names evaluating values as templates +{{ include "common.images.renderPullSecrets" ( dict "images" (list .Values.path.to.the.image1, .Values.path.to.the.image2) "context" $) }} +*/}} +{{- define "common.images.renderPullSecrets" -}} + {{- $pullSecrets := list }} + {{- $context := .context }} + + {{- if $context.Values.global }} + {{- range $context.Values.global.imagePullSecrets -}} + {{- $pullSecrets = append $pullSecrets (include "common.tplvalues.render" (dict "value" . "context" $context)) -}} + {{- end -}} + {{- end -}} + + {{- range .images -}} + {{- range .pullSecrets -}} + {{- $pullSecrets = append $pullSecrets (include "common.tplvalues.render" (dict "value" . "context" $context)) -}} + {{- end -}} + {{- end -}} + + {{- if (not (empty $pullSecrets)) }} +imagePullSecrets: + {{- range $pullSecrets }} + - name: {{ . }} + {{- end }} + {{- end }} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_ingress.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_ingress.tpl new file mode 100644 index 00000000..f905f200 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_ingress.tpl @@ -0,0 +1,55 @@ +{{/* vim: set filetype=mustache: */}} + +{{/* +Generate backend entry that is compatible with all Kubernetes API versions. + +Usage: +{{ include "common.ingress.backend" (dict "serviceName" "backendName" "servicePort" "backendPort" "context" $) }} + +Params: + - serviceName - String. Name of an existing service backend + - servicePort - String/Int. Port name (or number) of the service. It will be translated to different yaml depending if it is a string or an integer. + - context - Dict - Required. The context for the template evaluation. +*/}} +{{- define "common.ingress.backend" -}} +{{- $apiVersion := (include "common.capabilities.ingress.apiVersion" .context) -}} +{{- if or (eq $apiVersion "extensions/v1beta1") (eq $apiVersion "networking.k8s.io/v1beta1") -}} +serviceName: {{ .serviceName }} +servicePort: {{ .servicePort }} +{{- else -}} +service: + name: {{ .serviceName }} + port: + {{- if typeIs "string" .servicePort }} + name: {{ .servicePort }} + {{- else if or (typeIs "int" .servicePort) (typeIs "float64" .servicePort) }} + number: {{ .servicePort | int }} + {{- end }} +{{- end -}} +{{- end -}} + +{{/* +Print "true" if the API pathType field is supported +Usage: +{{ include "common.ingress.supportsPathType" . }} +*/}} +{{- define "common.ingress.supportsPathType" -}} +{{- if (semverCompare "<1.18-0" (include "common.capabilities.kubeVersion" .)) -}} +{{- print "false" -}} +{{- else -}} +{{- print "true" -}} +{{- end -}} +{{- end -}} + +{{/* +Returns true if the ingressClassname field is supported +Usage: +{{ include "common.ingress.supportsIngressClassname" . }} +*/}} +{{- define "common.ingress.supportsIngressClassname" -}} +{{- if semverCompare "<1.18-0" (include "common.capabilities.kubeVersion" .) -}} +{{- print "false" -}} +{{- else -}} +{{- print "true" -}} +{{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_labels.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_labels.tpl new file mode 100644 index 00000000..252066c7 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_labels.tpl @@ -0,0 +1,18 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Kubernetes standard labels +*/}} +{{- define "common.labels.standard" -}} +app.kubernetes.io/name: {{ include "common.names.name" . }} +helm.sh/chart: {{ include "common.names.chart" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +Labels to use on deploy.spec.selector.matchLabels and svc.spec.selector +*/}} +{{- define "common.labels.matchLabels" -}} +app.kubernetes.io/name: {{ include "common.names.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_names.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_names.tpl new file mode 100644 index 00000000..cf032317 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_names.tpl @@ -0,0 +1,52 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "common.names.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "common.names.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "common.names.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create a default fully qualified dependency name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +Usage: +{{ include "common.names.dependency.fullname" (dict "chartName" "dependency-chart-name" "chartValues" .Values.dependency-chart "context" $) }} +*/}} +{{- define "common.names.dependency.fullname" -}} +{{- if .chartValues.fullnameOverride -}} +{{- .chartValues.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .chartName .chartValues.nameOverride -}} +{{- if contains $name .context.Release.Name -}} +{{- .context.Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .context.Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_secrets.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_secrets.tpl new file mode 100644 index 00000000..60b84a70 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_secrets.tpl @@ -0,0 +1,129 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Generate secret name. + +Usage: +{{ include "common.secrets.name" (dict "existingSecret" .Values.path.to.the.existingSecret "defaultNameSuffix" "mySuffix" "context" $) }} + +Params: + - existingSecret - ExistingSecret/String - Optional. The path to the existing secrets in the values.yaml given by the user + to be used instead of the default one. Allows for it to be of type String (just the secret name) for backwards compatibility. + +info: https://github.com/bitnami/charts/tree/master/bitnami/common#existingsecret + - defaultNameSuffix - String - Optional. It is used only if we have several secrets in the same deployment. + - context - Dict - Required. The context for the template evaluation. +*/}} +{{- define "common.secrets.name" -}} +{{- $name := (include "common.names.fullname" .context) -}} + +{{- if .defaultNameSuffix -}} +{{- $name = printf "%s-%s" $name .defaultNameSuffix | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{- with .existingSecret -}} +{{- if not (typeIs "string" .) -}} +{{- with .name -}} +{{- $name = . -}} +{{- end -}} +{{- else -}} +{{- $name = . -}} +{{- end -}} +{{- end -}} + +{{- printf "%s" $name -}} +{{- end -}} + +{{/* +Generate secret key. + +Usage: +{{ include "common.secrets.key" (dict "existingSecret" .Values.path.to.the.existingSecret "key" "keyName") }} + +Params: + - existingSecret - ExistingSecret/String - Optional. The path to the existing secrets in the values.yaml given by the user + to be used instead of the default one. Allows for it to be of type String (just the secret name) for backwards compatibility. + +info: https://github.com/bitnami/charts/tree/master/bitnami/common#existingsecret + - key - String - Required. Name of the key in the secret. +*/}} +{{- define "common.secrets.key" -}} +{{- $key := .key -}} + +{{- if .existingSecret -}} + {{- if not (typeIs "string" .existingSecret) -}} + {{- if .existingSecret.keyMapping -}} + {{- $key = index .existingSecret.keyMapping $.key -}} + {{- end -}} + {{- end }} +{{- end -}} + +{{- printf "%s" $key -}} +{{- end -}} + +{{/* +Generate secret password or retrieve one if already created. + +Usage: +{{ include "common.secrets.passwords.manage" (dict "secret" "secret-name" "key" "keyName" "providedValues" (list "path.to.password1" "path.to.password2") "length" 10 "strong" false "chartName" "chartName" "context" $) }} + +Params: + - secret - String - Required - Name of the 'Secret' resource where the password is stored. + - key - String - Required - Name of the key in the secret. + - providedValues - List - Required - The path to the validating value in the values.yaml, e.g: "mysql.password". Will pick first parameter with a defined value. + - length - int - Optional - Length of the generated random password. + - strong - Boolean - Optional - Whether to add symbols to the generated random password. + - chartName - String - Optional - Name of the chart used when said chart is deployed as a subchart. + - context - Context - Required - Parent context. +*/}} +{{- define "common.secrets.passwords.manage" -}} + +{{- $password := "" }} +{{- $subchart := "" }} +{{- $chartName := default "" .chartName }} +{{- $passwordLength := default 10 .length }} +{{- $providedPasswordKey := include "common.utils.getKeyFromList" (dict "keys" .providedValues "context" $.context) }} +{{- $providedPasswordValue := include "common.utils.getValueFromKey" (dict "key" $providedPasswordKey "context" $.context) }} +{{- $secret := (lookup "v1" "Secret" $.context.Release.Namespace .secret) }} +{{- if $secret }} + {{- if index $secret.data .key }} + {{- $password = index $secret.data .key }} + {{- end -}} +{{- else if $providedPasswordValue }} + {{- $password = $providedPasswordValue | toString | b64enc | quote }} +{{- else }} + + {{- if .context.Values.enabled }} + {{- $subchart = $chartName }} + {{- end -}} + + {{- $requiredPassword := dict "valueKey" $providedPasswordKey "secret" .secret "field" .key "subchart" $subchart "context" $.context -}} + {{- $requiredPasswordError := include "common.validations.values.single.empty" $requiredPassword -}} + {{- $passwordValidationErrors := list $requiredPasswordError -}} + {{- include "common.errors.upgrade.passwords.empty" (dict "validationErrors" $passwordValidationErrors "context" $.context) -}} + + {{- if .strong }} + {{- $subStr := list (lower (randAlpha 1)) (randNumeric 1) (upper (randAlpha 1)) | join "_" }} + {{- $password = randAscii $passwordLength }} + {{- $password = regexReplaceAllLiteral "\\W" $password "@" | substr 5 $passwordLength }} + {{- $password = printf "%s%s" $subStr $password | toString | shuffle | b64enc | quote }} + {{- else }} + {{- $password = randAlphaNum $passwordLength | b64enc | quote }} + {{- end }} +{{- end -}} +{{- printf "%s" $password -}} +{{- end -}} + +{{/* +Returns whether a previous generated secret already exists + +Usage: +{{ include "common.secrets.exists" (dict "secret" "secret-name" "context" $) }} + +Params: + - secret - String - Required - Name of the 'Secret' resource where the password is stored. + - context - Context - Required - Parent context. +*/}} +{{- define "common.secrets.exists" -}} +{{- $secret := (lookup "v1" "Secret" $.context.Release.Namespace .secret) }} +{{- if $secret }} + {{- true -}} +{{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_storage.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_storage.tpl new file mode 100644 index 00000000..60e2a844 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_storage.tpl @@ -0,0 +1,23 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Return the proper Storage Class +{{ include "common.storage.class" ( dict "persistence" .Values.path.to.the.persistence "global" $) }} +*/}} +{{- define "common.storage.class" -}} + +{{- $storageClass := .persistence.storageClass -}} +{{- if .global -}} + {{- if .global.storageClass -}} + {{- $storageClass = .global.storageClass -}} + {{- end -}} +{{- end -}} + +{{- if $storageClass -}} + {{- if (eq "-" $storageClass) -}} + {{- printf "storageClassName: \"\"" -}} + {{- else }} + {{- printf "storageClassName: %s" $storageClass -}} + {{- end -}} +{{- end -}} + +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_tplvalues.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_tplvalues.tpl new file mode 100644 index 00000000..2db16685 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_tplvalues.tpl @@ -0,0 +1,13 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Renders a value that contains template. +Usage: +{{ include "common.tplvalues.render" ( dict "value" .Values.path.to.the.Value "context" $) }} +*/}} +{{- define "common.tplvalues.render" -}} + {{- if typeIs "string" .value }} + {{- tpl .value .context }} + {{- else }} + {{- tpl (.value | toYaml) .context }} + {{- end }} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_utils.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_utils.tpl new file mode 100644 index 00000000..ea083a24 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_utils.tpl @@ -0,0 +1,62 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Print instructions to get a secret value. +Usage: +{{ include "common.utils.secret.getvalue" (dict "secret" "secret-name" "field" "secret-value-field" "context" $) }} +*/}} +{{- define "common.utils.secret.getvalue" -}} +{{- $varname := include "common.utils.fieldToEnvVar" . -}} +export {{ $varname }}=$(kubectl get secret --namespace {{ .context.Release.Namespace | quote }} {{ .secret }} -o jsonpath="{.data.{{ .field }}}" | base64 --decode) +{{- end -}} + +{{/* +Build env var name given a field +Usage: +{{ include "common.utils.fieldToEnvVar" dict "field" "my-password" }} +*/}} +{{- define "common.utils.fieldToEnvVar" -}} + {{- $fieldNameSplit := splitList "-" .field -}} + {{- $upperCaseFieldNameSplit := list -}} + + {{- range $fieldNameSplit -}} + {{- $upperCaseFieldNameSplit = append $upperCaseFieldNameSplit ( upper . ) -}} + {{- end -}} + + {{ join "_" $upperCaseFieldNameSplit }} +{{- end -}} + +{{/* +Gets a value from .Values given +Usage: +{{ include "common.utils.getValueFromKey" (dict "key" "path.to.key" "context" $) }} +*/}} +{{- define "common.utils.getValueFromKey" -}} +{{- $splitKey := splitList "." .key -}} +{{- $value := "" -}} +{{- $latestObj := $.context.Values -}} +{{- range $splitKey -}} + {{- if not $latestObj -}} + {{- printf "please review the entire path of '%s' exists in values" $.key | fail -}} + {{- end -}} + {{- $value = ( index $latestObj . ) -}} + {{- $latestObj = $value -}} +{{- end -}} +{{- printf "%v" (default "" $value) -}} +{{- end -}} + +{{/* +Returns first .Values key with a defined value or first of the list if all non-defined +Usage: +{{ include "common.utils.getKeyFromList" (dict "keys" (list "path.to.key1" "path.to.key2") "context" $) }} +*/}} +{{- define "common.utils.getKeyFromList" -}} +{{- $key := first .keys -}} +{{- $reverseKeys := reverse .keys }} +{{- range $reverseKeys }} + {{- $value := include "common.utils.getValueFromKey" (dict "key" . "context" $.context ) }} + {{- if $value -}} + {{- $key = . }} + {{- end -}} +{{- end -}} +{{- printf "%s" $key -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_warnings.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_warnings.tpl new file mode 100644 index 00000000..ae10fa41 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/_warnings.tpl @@ -0,0 +1,14 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Warning about using rolling tag. +Usage: +{{ include "common.warnings.rollingTag" .Values.path.to.the.imageRoot }} +*/}} +{{- define "common.warnings.rollingTag" -}} + +{{- if and (contains "bitnami/" .repository) (not (.tag | toString | regexFind "-r\\d+$|sha256:")) }} +WARNING: Rolling tag detected ({{ .repository }}:{{ .tag }}), please note that it is strongly recommended to avoid using rolling tags in a production environment. ++info https://docs.bitnami.com/containers/how-to/understand-rolling-tags-containers/ +{{- end }} + +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_cassandra.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_cassandra.tpl new file mode 100644 index 00000000..ded1ae3b --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_cassandra.tpl @@ -0,0 +1,72 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Validate Cassandra required passwords are not empty. + +Usage: +{{ include "common.validations.values.cassandra.passwords" (dict "secret" "secretName" "subchart" false "context" $) }} +Params: + - secret - String - Required. Name of the secret where Cassandra values are stored, e.g: "cassandra-passwords-secret" + - subchart - Boolean - Optional. Whether Cassandra is used as subchart or not. Default: false +*/}} +{{- define "common.validations.values.cassandra.passwords" -}} + {{- $existingSecret := include "common.cassandra.values.existingSecret" . -}} + {{- $enabled := include "common.cassandra.values.enabled" . -}} + {{- $dbUserPrefix := include "common.cassandra.values.key.dbUser" . -}} + {{- $valueKeyPassword := printf "%s.password" $dbUserPrefix -}} + + {{- if and (or (not $existingSecret) (eq $existingSecret "\"\"")) (eq $enabled "true") -}} + {{- $requiredPasswords := list -}} + + {{- $requiredPassword := dict "valueKey" $valueKeyPassword "secret" .secret "field" "cassandra-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredPassword -}} + + {{- include "common.validations.values.multiple.empty" (dict "required" $requiredPasswords "context" .context) -}} + + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for existingSecret. + +Usage: +{{ include "common.cassandra.values.existingSecret" (dict "context" $) }} +Params: + - subchart - Boolean - Optional. Whether Cassandra is used as subchart or not. Default: false +*/}} +{{- define "common.cassandra.values.existingSecret" -}} + {{- if .subchart -}} + {{- .context.Values.cassandra.dbUser.existingSecret | quote -}} + {{- else -}} + {{- .context.Values.dbUser.existingSecret | quote -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for enabled cassandra. + +Usage: +{{ include "common.cassandra.values.enabled" (dict "context" $) }} +*/}} +{{- define "common.cassandra.values.enabled" -}} + {{- if .subchart -}} + {{- printf "%v" .context.Values.cassandra.enabled -}} + {{- else -}} + {{- printf "%v" (not .context.Values.enabled) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for the key dbUser + +Usage: +{{ include "common.cassandra.values.key.dbUser" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether Cassandra is used as subchart or not. Default: false +*/}} +{{- define "common.cassandra.values.key.dbUser" -}} + {{- if .subchart -}} + cassandra.dbUser + {{- else -}} + dbUser + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_mariadb.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_mariadb.tpl new file mode 100644 index 00000000..b6906ff7 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_mariadb.tpl @@ -0,0 +1,103 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Validate MariaDB required passwords are not empty. + +Usage: +{{ include "common.validations.values.mariadb.passwords" (dict "secret" "secretName" "subchart" false "context" $) }} +Params: + - secret - String - Required. Name of the secret where MariaDB values are stored, e.g: "mysql-passwords-secret" + - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false +*/}} +{{- define "common.validations.values.mariadb.passwords" -}} + {{- $existingSecret := include "common.mariadb.values.auth.existingSecret" . -}} + {{- $enabled := include "common.mariadb.values.enabled" . -}} + {{- $architecture := include "common.mariadb.values.architecture" . -}} + {{- $authPrefix := include "common.mariadb.values.key.auth" . -}} + {{- $valueKeyRootPassword := printf "%s.rootPassword" $authPrefix -}} + {{- $valueKeyUsername := printf "%s.username" $authPrefix -}} + {{- $valueKeyPassword := printf "%s.password" $authPrefix -}} + {{- $valueKeyReplicationPassword := printf "%s.replicationPassword" $authPrefix -}} + + {{- if and (or (not $existingSecret) (eq $existingSecret "\"\"")) (eq $enabled "true") -}} + {{- $requiredPasswords := list -}} + + {{- $requiredRootPassword := dict "valueKey" $valueKeyRootPassword "secret" .secret "field" "mariadb-root-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredRootPassword -}} + + {{- $valueUsername := include "common.utils.getValueFromKey" (dict "key" $valueKeyUsername "context" .context) }} + {{- if not (empty $valueUsername) -}} + {{- $requiredPassword := dict "valueKey" $valueKeyPassword "secret" .secret "field" "mariadb-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredPassword -}} + {{- end -}} + + {{- if (eq $architecture "replication") -}} + {{- $requiredReplicationPassword := dict "valueKey" $valueKeyReplicationPassword "secret" .secret "field" "mariadb-replication-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredReplicationPassword -}} + {{- end -}} + + {{- include "common.validations.values.multiple.empty" (dict "required" $requiredPasswords "context" .context) -}} + + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for existingSecret. + +Usage: +{{ include "common.mariadb.values.auth.existingSecret" (dict "context" $) }} +Params: + - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false +*/}} +{{- define "common.mariadb.values.auth.existingSecret" -}} + {{- if .subchart -}} + {{- .context.Values.mariadb.auth.existingSecret | quote -}} + {{- else -}} + {{- .context.Values.auth.existingSecret | quote -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for enabled mariadb. + +Usage: +{{ include "common.mariadb.values.enabled" (dict "context" $) }} +*/}} +{{- define "common.mariadb.values.enabled" -}} + {{- if .subchart -}} + {{- printf "%v" .context.Values.mariadb.enabled -}} + {{- else -}} + {{- printf "%v" (not .context.Values.enabled) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for architecture + +Usage: +{{ include "common.mariadb.values.architecture" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false +*/}} +{{- define "common.mariadb.values.architecture" -}} + {{- if .subchart -}} + {{- .context.Values.mariadb.architecture -}} + {{- else -}} + {{- .context.Values.architecture -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for the key auth + +Usage: +{{ include "common.mariadb.values.key.auth" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false +*/}} +{{- define "common.mariadb.values.key.auth" -}} + {{- if .subchart -}} + mariadb.auth + {{- else -}} + auth + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_mongodb.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_mongodb.tpl new file mode 100644 index 00000000..a071ea4d --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_mongodb.tpl @@ -0,0 +1,108 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Validate MongoDB® required passwords are not empty. + +Usage: +{{ include "common.validations.values.mongodb.passwords" (dict "secret" "secretName" "subchart" false "context" $) }} +Params: + - secret - String - Required. Name of the secret where MongoDB® values are stored, e.g: "mongodb-passwords-secret" + - subchart - Boolean - Optional. Whether MongoDB® is used as subchart or not. Default: false +*/}} +{{- define "common.validations.values.mongodb.passwords" -}} + {{- $existingSecret := include "common.mongodb.values.auth.existingSecret" . -}} + {{- $enabled := include "common.mongodb.values.enabled" . -}} + {{- $authPrefix := include "common.mongodb.values.key.auth" . -}} + {{- $architecture := include "common.mongodb.values.architecture" . -}} + {{- $valueKeyRootPassword := printf "%s.rootPassword" $authPrefix -}} + {{- $valueKeyUsername := printf "%s.username" $authPrefix -}} + {{- $valueKeyDatabase := printf "%s.database" $authPrefix -}} + {{- $valueKeyPassword := printf "%s.password" $authPrefix -}} + {{- $valueKeyReplicaSetKey := printf "%s.replicaSetKey" $authPrefix -}} + {{- $valueKeyAuthEnabled := printf "%s.enabled" $authPrefix -}} + + {{- $authEnabled := include "common.utils.getValueFromKey" (dict "key" $valueKeyAuthEnabled "context" .context) -}} + + {{- if and (or (not $existingSecret) (eq $existingSecret "\"\"")) (eq $enabled "true") (eq $authEnabled "true") -}} + {{- $requiredPasswords := list -}} + + {{- $requiredRootPassword := dict "valueKey" $valueKeyRootPassword "secret" .secret "field" "mongodb-root-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredRootPassword -}} + + {{- $valueUsername := include "common.utils.getValueFromKey" (dict "key" $valueKeyUsername "context" .context) }} + {{- $valueDatabase := include "common.utils.getValueFromKey" (dict "key" $valueKeyDatabase "context" .context) }} + {{- if and $valueUsername $valueDatabase -}} + {{- $requiredPassword := dict "valueKey" $valueKeyPassword "secret" .secret "field" "mongodb-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredPassword -}} + {{- end -}} + + {{- if (eq $architecture "replicaset") -}} + {{- $requiredReplicaSetKey := dict "valueKey" $valueKeyReplicaSetKey "secret" .secret "field" "mongodb-replica-set-key" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredReplicaSetKey -}} + {{- end -}} + + {{- include "common.validations.values.multiple.empty" (dict "required" $requiredPasswords "context" .context) -}} + + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for existingSecret. + +Usage: +{{ include "common.mongodb.values.auth.existingSecret" (dict "context" $) }} +Params: + - subchart - Boolean - Optional. Whether MongoDb is used as subchart or not. Default: false +*/}} +{{- define "common.mongodb.values.auth.existingSecret" -}} + {{- if .subchart -}} + {{- .context.Values.mongodb.auth.existingSecret | quote -}} + {{- else -}} + {{- .context.Values.auth.existingSecret | quote -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for enabled mongodb. + +Usage: +{{ include "common.mongodb.values.enabled" (dict "context" $) }} +*/}} +{{- define "common.mongodb.values.enabled" -}} + {{- if .subchart -}} + {{- printf "%v" .context.Values.mongodb.enabled -}} + {{- else -}} + {{- printf "%v" (not .context.Values.enabled) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for the key auth + +Usage: +{{ include "common.mongodb.values.key.auth" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether MongoDB® is used as subchart or not. Default: false +*/}} +{{- define "common.mongodb.values.key.auth" -}} + {{- if .subchart -}} + mongodb.auth + {{- else -}} + auth + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for architecture + +Usage: +{{ include "common.mongodb.values.architecture" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false +*/}} +{{- define "common.mongodb.values.architecture" -}} + {{- if .subchart -}} + {{- .context.Values.mongodb.architecture -}} + {{- else -}} + {{- .context.Values.architecture -}} + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_postgresql.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_postgresql.tpl new file mode 100644 index 00000000..164ec0d0 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_postgresql.tpl @@ -0,0 +1,129 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Validate PostgreSQL required passwords are not empty. + +Usage: +{{ include "common.validations.values.postgresql.passwords" (dict "secret" "secretName" "subchart" false "context" $) }} +Params: + - secret - String - Required. Name of the secret where postgresql values are stored, e.g: "postgresql-passwords-secret" + - subchart - Boolean - Optional. Whether postgresql is used as subchart or not. Default: false +*/}} +{{- define "common.validations.values.postgresql.passwords" -}} + {{- $existingSecret := include "common.postgresql.values.existingSecret" . -}} + {{- $enabled := include "common.postgresql.values.enabled" . -}} + {{- $valueKeyPostgresqlPassword := include "common.postgresql.values.key.postgressPassword" . -}} + {{- $valueKeyPostgresqlReplicationEnabled := include "common.postgresql.values.key.replicationPassword" . -}} + {{- if and (or (not $existingSecret) (eq $existingSecret "\"\"")) (eq $enabled "true") -}} + {{- $requiredPasswords := list -}} + {{- $requiredPostgresqlPassword := dict "valueKey" $valueKeyPostgresqlPassword "secret" .secret "field" "postgresql-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredPostgresqlPassword -}} + + {{- $enabledReplication := include "common.postgresql.values.enabled.replication" . -}} + {{- if (eq $enabledReplication "true") -}} + {{- $requiredPostgresqlReplicationPassword := dict "valueKey" $valueKeyPostgresqlReplicationEnabled "secret" .secret "field" "postgresql-replication-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredPostgresqlReplicationPassword -}} + {{- end -}} + + {{- include "common.validations.values.multiple.empty" (dict "required" $requiredPasswords "context" .context) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to decide whether evaluate global values. + +Usage: +{{ include "common.postgresql.values.use.global" (dict "key" "key-of-global" "context" $) }} +Params: + - key - String - Required. Field to be evaluated within global, e.g: "existingSecret" +*/}} +{{- define "common.postgresql.values.use.global" -}} + {{- if .context.Values.global -}} + {{- if .context.Values.global.postgresql -}} + {{- index .context.Values.global.postgresql .key | quote -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for existingSecret. + +Usage: +{{ include "common.postgresql.values.existingSecret" (dict "context" $) }} +*/}} +{{- define "common.postgresql.values.existingSecret" -}} + {{- $globalValue := include "common.postgresql.values.use.global" (dict "key" "existingSecret" "context" .context) -}} + + {{- if .subchart -}} + {{- default (.context.Values.postgresql.existingSecret | quote) $globalValue -}} + {{- else -}} + {{- default (.context.Values.existingSecret | quote) $globalValue -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for enabled postgresql. + +Usage: +{{ include "common.postgresql.values.enabled" (dict "context" $) }} +*/}} +{{- define "common.postgresql.values.enabled" -}} + {{- if .subchart -}} + {{- printf "%v" .context.Values.postgresql.enabled -}} + {{- else -}} + {{- printf "%v" (not .context.Values.enabled) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for the key postgressPassword. + +Usage: +{{ include "common.postgresql.values.key.postgressPassword" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether postgresql is used as subchart or not. Default: false +*/}} +{{- define "common.postgresql.values.key.postgressPassword" -}} + {{- $globalValue := include "common.postgresql.values.use.global" (dict "key" "postgresqlUsername" "context" .context) -}} + + {{- if not $globalValue -}} + {{- if .subchart -}} + postgresql.postgresqlPassword + {{- else -}} + postgresqlPassword + {{- end -}} + {{- else -}} + global.postgresql.postgresqlPassword + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for enabled.replication. + +Usage: +{{ include "common.postgresql.values.enabled.replication" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether postgresql is used as subchart or not. Default: false +*/}} +{{- define "common.postgresql.values.enabled.replication" -}} + {{- if .subchart -}} + {{- printf "%v" .context.Values.postgresql.replication.enabled -}} + {{- else -}} + {{- printf "%v" .context.Values.replication.enabled -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for the key replication.password. + +Usage: +{{ include "common.postgresql.values.key.replicationPassword" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether postgresql is used as subchart or not. Default: false +*/}} +{{- define "common.postgresql.values.key.replicationPassword" -}} + {{- if .subchart -}} + postgresql.replication.password + {{- else -}} + replication.password + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_redis.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_redis.tpl new file mode 100644 index 00000000..5d72959b --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_redis.tpl @@ -0,0 +1,76 @@ + +{{/* vim: set filetype=mustache: */}} +{{/* +Validate Redis™ required passwords are not empty. + +Usage: +{{ include "common.validations.values.redis.passwords" (dict "secret" "secretName" "subchart" false "context" $) }} +Params: + - secret - String - Required. Name of the secret where redis values are stored, e.g: "redis-passwords-secret" + - subchart - Boolean - Optional. Whether redis is used as subchart or not. Default: false +*/}} +{{- define "common.validations.values.redis.passwords" -}} + {{- $enabled := include "common.redis.values.enabled" . -}} + {{- $valueKeyPrefix := include "common.redis.values.keys.prefix" . -}} + {{- $standarizedVersion := include "common.redis.values.standarized.version" . }} + + {{- $existingSecret := ternary (printf "%s%s" $valueKeyPrefix "auth.existingSecret") (printf "%s%s" $valueKeyPrefix "existingSecret") (eq $standarizedVersion "true") }} + {{- $existingSecretValue := include "common.utils.getValueFromKey" (dict "key" $existingSecret "context" .context) }} + + {{- $valueKeyRedisPassword := ternary (printf "%s%s" $valueKeyPrefix "auth.password") (printf "%s%s" $valueKeyPrefix "password") (eq $standarizedVersion "true") }} + {{- $valueKeyRedisUseAuth := ternary (printf "%s%s" $valueKeyPrefix "auth.enabled") (printf "%s%s" $valueKeyPrefix "usePassword") (eq $standarizedVersion "true") }} + + {{- if and (or (not $existingSecret) (eq $existingSecret "\"\"")) (eq $enabled "true") -}} + {{- $requiredPasswords := list -}} + + {{- $useAuth := include "common.utils.getValueFromKey" (dict "key" $valueKeyRedisUseAuth "context" .context) -}} + {{- if eq $useAuth "true" -}} + {{- $requiredRedisPassword := dict "valueKey" $valueKeyRedisPassword "secret" .secret "field" "redis-password" -}} + {{- $requiredPasswords = append $requiredPasswords $requiredRedisPassword -}} + {{- end -}} + + {{- include "common.validations.values.multiple.empty" (dict "required" $requiredPasswords "context" .context) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right value for enabled redis. + +Usage: +{{ include "common.redis.values.enabled" (dict "context" $) }} +*/}} +{{- define "common.redis.values.enabled" -}} + {{- if .subchart -}} + {{- printf "%v" .context.Values.redis.enabled -}} + {{- else -}} + {{- printf "%v" (not .context.Values.enabled) -}} + {{- end -}} +{{- end -}} + +{{/* +Auxiliary function to get the right prefix path for the values + +Usage: +{{ include "common.redis.values.key.prefix" (dict "subchart" "true" "context" $) }} +Params: + - subchart - Boolean - Optional. Whether redis is used as subchart or not. Default: false +*/}} +{{- define "common.redis.values.keys.prefix" -}} + {{- if .subchart -}}redis.{{- else -}}{{- end -}} +{{- end -}} + +{{/* +Checks whether the redis chart's includes the standarizations (version >= 14) + +Usage: +{{ include "common.redis.values.standarized.version" (dict "context" $) }} +*/}} +{{- define "common.redis.values.standarized.version" -}} + + {{- $standarizedAuth := printf "%s%s" (include "common.redis.values.keys.prefix" .) "auth" -}} + {{- $standarizedAuthValues := include "common.utils.getValueFromKey" (dict "key" $standarizedAuth "context" .context) }} + + {{- if $standarizedAuthValues -}} + {{- true -}} + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_validations.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_validations.tpl new file mode 100644 index 00000000..9a814cf4 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/templates/validations/_validations.tpl @@ -0,0 +1,46 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Validate values must not be empty. + +Usage: +{{- $validateValueConf00 := (dict "valueKey" "path.to.value" "secret" "secretName" "field" "password-00") -}} +{{- $validateValueConf01 := (dict "valueKey" "path.to.value" "secret" "secretName" "field" "password-01") -}} +{{ include "common.validations.values.empty" (dict "required" (list $validateValueConf00 $validateValueConf01) "context" $) }} + +Validate value params: + - valueKey - String - Required. The path to the validating value in the values.yaml, e.g: "mysql.password" + - secret - String - Optional. Name of the secret where the validating value is generated/stored, e.g: "mysql-passwords-secret" + - field - String - Optional. Name of the field in the secret data, e.g: "mysql-password" +*/}} +{{- define "common.validations.values.multiple.empty" -}} + {{- range .required -}} + {{- include "common.validations.values.single.empty" (dict "valueKey" .valueKey "secret" .secret "field" .field "context" $.context) -}} + {{- end -}} +{{- end -}} + +{{/* +Validate a value must not be empty. + +Usage: +{{ include "common.validations.value.empty" (dict "valueKey" "mariadb.password" "secret" "secretName" "field" "my-password" "subchart" "subchart" "context" $) }} + +Validate value params: + - valueKey - String - Required. The path to the validating value in the values.yaml, e.g: "mysql.password" + - secret - String - Optional. Name of the secret where the validating value is generated/stored, e.g: "mysql-passwords-secret" + - field - String - Optional. Name of the field in the secret data, e.g: "mysql-password" + - subchart - String - Optional - Name of the subchart that the validated password is part of. +*/}} +{{- define "common.validations.values.single.empty" -}} + {{- $value := include "common.utils.getValueFromKey" (dict "key" .valueKey "context" .context) }} + {{- $subchart := ternary "" (printf "%s." .subchart) (empty .subchart) }} + + {{- if not $value -}} + {{- $varname := "my-value" -}} + {{- $getCurrentValue := "" -}} + {{- if and .secret .field -}} + {{- $varname = include "common.utils.fieldToEnvVar" . -}} + {{- $getCurrentValue = printf " To get the current value:\n\n %s\n" (include "common.utils.secret.getvalue" .) -}} + {{- end -}} + {{- printf "\n '%s' must not be empty, please add '--set %s%s=$%s' to the command.%s" .valueKey $subchart .valueKey $varname $getCurrentValue -}} + {{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/values.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/values.yaml new file mode 100644 index 00000000..f2df68e5 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/charts/common/values.yaml @@ -0,0 +1,5 @@ +## bitnami/common +## It is required by CI/CD tools and processes. +## @skip exampleValue +## +exampleValue: common-chart diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/ci/commonAnnotations.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/ci/commonAnnotations.yaml new file mode 100644 index 00000000..97e18a4c --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/ci/commonAnnotations.yaml @@ -0,0 +1,3 @@ +commonAnnotations: + helm.sh/hook: "\"pre-install, pre-upgrade\"" + helm.sh/hook-weight: "-1" diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/ci/default-values.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/ci/default-values.yaml new file mode 100644 index 00000000..fc2ba605 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/ci/default-values.yaml @@ -0,0 +1 @@ +# Leave this file empty to ensure that CI runs builds against the default configuration in values.yaml. diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/ci/shmvolume-disabled-values.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/ci/shmvolume-disabled-values.yaml new file mode 100644 index 00000000..347d3b40 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/ci/shmvolume-disabled-values.yaml @@ -0,0 +1,2 @@ +shmVolume: + enabled: false diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/files/README.md b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/files/README.md new file mode 100644 index 00000000..1813a2fe --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/files/README.md @@ -0,0 +1 @@ +Copy here your postgresql.conf and/or pg_hba.conf files to use it as a config map. diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/files/conf.d/README.md b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/files/conf.d/README.md new file mode 100644 index 00000000..184c1875 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/files/conf.d/README.md @@ -0,0 +1,4 @@ +If you don't want to provide the whole configuration file and only specify certain parameters, you can copy here your extended `.conf` files. +These files will be injected as a config maps and add/overwrite the default configuration using the `include_dir` directive that allows settings to be loaded from files other than the default `postgresql.conf`. + +More info in the [bitnami-docker-postgresql README](https://github.com/bitnami/bitnami-docker-postgresql#configuration-file). diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/files/docker-entrypoint-initdb.d/README.md b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/files/docker-entrypoint-initdb.d/README.md new file mode 100644 index 00000000..cba38091 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/files/docker-entrypoint-initdb.d/README.md @@ -0,0 +1,3 @@ +You can copy here your custom `.sh`, `.sql` or `.sql.gz` file so they are executed during the first boot of the image. + +More info in the [bitnami-docker-postgresql](https://github.com/bitnami/bitnami-docker-postgresql#initializing-a-new-instance) repository. \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/NOTES.txt b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/NOTES.txt new file mode 100644 index 00000000..ccb581df --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/NOTES.txt @@ -0,0 +1,89 @@ +CHART NAME: {{ .Chart.Name }} +CHART VERSION: {{ .Chart.Version }} +APP VERSION: {{ .Chart.AppVersion }} + +** Please be patient while the chart is being deployed ** + +{{- if .Values.diagnosticMode.enabled }} +The chart has been deployed in diagnostic mode. All probes have been disabled and the command has been overwritten with: + + command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 4 }} + args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 4 }} + +Get the list of pods by executing: + + kubectl get pods --namespace {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }} + +Access the pod you want to debug by executing + + kubectl exec --namespace {{ .Release.Namespace }} -ti -- bash + +In order to replicate the container startup scripts execute this command: + + /opt/bitnami/scripts/postgresql/entrypoint.sh /opt/bitnami/scripts/postgresql/run.sh + +{{- else }} + +PostgreSQL can be accessed via port {{ template "postgresql.servicePort" . }} on the following DNS names from within your cluster: + + {{ template "common.names.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local - Read/Write connection +{{- if .Values.replication.enabled }} +{{- if .Values.replication.singleService }} + {{ template "common.names.fullname" . }}-read.{{ .Release.Namespace }}.svc.cluster.local - Read only connection +{{- end }} +{{- if .Values.replication.uniqueServices }} +{{- $replicaCount := .Values.replication.readReplicas | int }} +{{- $root := . }} +{{- range $i, $e := until $replicaCount }} + {{ template "common.names.fullname" $root }}-read-{{ $i }}.{{ $root.Release.Namespace }}.svc.cluster.local - Read only connection to replica {{ $i }} +{{- end }} +{{- end }} +{{- end }} + +{{- if not (eq (include "postgresql.username" .) "postgres") }} + +To get the password for "postgres" run: + + export POSTGRES_ADMIN_PASSWORD=$(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "postgresql.secretName" . }} -o jsonpath="{.data.postgresql-postgres-password}" | base64 --decode) +{{- end }} + +To get the password for "{{ template "postgresql.username" . }}" run: + + export POSTGRES_PASSWORD=$(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "postgresql.secretName" . }} -o jsonpath="{.data.postgresql-password}" | base64 --decode) + +To connect to your database run the following command: + + kubectl run {{ template "common.names.fullname" . }}-client --rm --tty -i --restart='Never' --namespace {{ .Release.Namespace }} --image {{ template "postgresql.image" . }} --env="PGPASSWORD=$POSTGRES_PASSWORD" {{- if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }} + --labels="{{ template "common.names.fullname" . }}-client=true" {{- end }} --command -- psql --host {{ template "common.names.fullname" . }} -U {{ .Values.postgresqlUsername }} -d {{- if .Values.postgresqlDatabase }} {{ .Values.postgresqlDatabase }}{{- else }} postgres{{- end }} -p {{ template "postgresql.servicePort" . }} + +{{ if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }} +Note: Since NetworkPolicy is enabled, only pods with label {{ template "common.names.fullname" . }}-client=true" will be able to connect to this PostgreSQL cluster. +{{- end }} + +To connect to your database from outside the cluster execute the following commands: + +{{- if contains "NodePort" .Values.service.type }} + + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "common.names.fullname" . }}) + {{ if (include "postgresql.password" . ) }}PGPASSWORD="$POSTGRES_PASSWORD" {{ end }}psql --host $NODE_IP --port $NODE_PORT -U {{ .Values.postgresqlUsername }} -d {{- if .Values.postgresqlDatabase }} {{ .Values.postgresqlDatabase }}{{- else }} postgres{{- end }} + +{{- else if contains "LoadBalancer" .Values.service.type }} + + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "common.names.fullname" . }}' + + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "common.names.fullname" . }} --template "{{ "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}" }}") + {{ if (include "postgresql.password" . ) }}PGPASSWORD="$POSTGRES_PASSWORD" {{ end }}psql --host $SERVICE_IP --port {{ template "postgresql.servicePort" . }} -U {{ .Values.postgresqlUsername }} -d {{- if .Values.postgresqlDatabase }} {{ .Values.postgresqlDatabase }}{{- else }} postgres{{- end }} + +{{- else if contains "ClusterIP" .Values.service.type }} + + kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ template "common.names.fullname" . }} {{ template "postgresql.servicePort" . }}:{{ template "postgresql.servicePort" . }} & + {{ if (include "postgresql.password" . ) }}PGPASSWORD="$POSTGRES_PASSWORD" {{ end }}psql --host 127.0.0.1 -U {{ .Values.postgresqlUsername }} -d {{- if .Values.postgresqlDatabase }} {{ .Values.postgresqlDatabase }}{{- else }} postgres{{- end }} -p {{ template "postgresql.servicePort" . }} + +{{- end }} +{{- end }} + +{{- include "postgresql.validateValues" . -}} +{{- include "common.warnings.rollingTag" .Values.image -}} +{{- include "common.warnings.rollingTag" .Values.volumePermissions.image }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/_helpers.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/_helpers.tpl new file mode 100644 index 00000000..16e44564 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/_helpers.tpl @@ -0,0 +1,361 @@ +{{/* vim: set filetype=mustache: */}} + +{{/* +Expand the name of the chart. +*/}} +{{- define "postgresql.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "postgresql.primary.fullname" -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- $fullname := default (printf "%s-%s" .Release.Name $name) .Values.fullnameOverride -}} +{{- if .Values.replication.enabled -}} +{{- printf "%s-%s" $fullname "primary" | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s" $fullname | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the proper PostgreSQL image name +*/}} +{{- define "postgresql.image" -}} +{{ include "common.images.image" (dict "imageRoot" .Values.image "global" .Values.global) }} +{{- end -}} + +{{/* +Return the proper PostgreSQL metrics image name +*/}} +{{- define "postgresql.metrics.image" -}} +{{ include "common.images.image" (dict "imageRoot" .Values.metrics.image "global" .Values.global) }} +{{- end -}} + +{{/* +Return the proper image name (for the init container volume-permissions image) +*/}} +{{- define "postgresql.volumePermissions.image" -}} +{{ include "common.images.image" (dict "imageRoot" .Values.volumePermissions.image "global" .Values.global) }} +{{- end -}} + +{{/* +Return the proper Docker Image Registry Secret Names +*/}} +{{- define "postgresql.imagePullSecrets" -}} +{{ include "common.images.pullSecrets" (dict "images" (list .Values.image .Values.metrics.image .Values.volumePermissions.image) "global" .Values.global) }} +{{- end -}} + +{{/* +Returns the available value for certain key in an existing secret (if it exists), +otherwise it generates a random value. +*/}} +{{- define "getValueFromSecret" }} +{{- $len := (default 16 .Length) | int -}} +{{- $obj := (lookup "v1" "Secret" .Namespace .Name).data -}} +{{- if $obj }} +{{- index $obj .Key | b64dec -}} +{{- else -}} +{{- randAlphaNum $len -}} +{{- end -}} +{{- end }} + +{{/* +Return PostgreSQL postgres user password +*/}} +{{- define "postgresql.postgres.password" -}} +{{- if .Values.global.postgresql.postgresqlPostgresPassword }} + {{- .Values.global.postgresql.postgresqlPostgresPassword -}} +{{- else if .Values.postgresqlPostgresPassword -}} + {{- .Values.postgresqlPostgresPassword -}} +{{- else -}} + {{- include "getValueFromSecret" (dict "Namespace" .Release.Namespace "Name" (include "common.names.fullname" .) "Length" 10 "Key" "postgresql-postgres-password") -}} +{{- end -}} +{{- end -}} + +{{/* +Return PostgreSQL password +*/}} +{{- define "postgresql.password" -}} +{{- if .Values.global.postgresql.postgresqlPassword }} + {{- .Values.global.postgresql.postgresqlPassword -}} +{{- else if .Values.postgresqlPassword -}} + {{- .Values.postgresqlPassword -}} +{{- else -}} + {{- include "getValueFromSecret" (dict "Namespace" .Release.Namespace "Name" (include "common.names.fullname" .) "Length" 10 "Key" "postgresql-password") -}} +{{- end -}} +{{- end -}} + +{{/* +Return PostgreSQL replication password +*/}} +{{- define "postgresql.replication.password" -}} +{{- if .Values.global.postgresql.replicationPassword }} + {{- .Values.global.postgresql.replicationPassword -}} +{{- else if .Values.replication.password -}} + {{- .Values.replication.password -}} +{{- else -}} + {{- include "getValueFromSecret" (dict "Namespace" .Release.Namespace "Name" (include "common.names.fullname" .) "Length" 10 "Key" "postgresql-replication-password") -}} +{{- end -}} +{{- end -}} + +{{/* +Return PostgreSQL username +*/}} +{{- define "postgresql.username" -}} +{{- if .Values.global.postgresql.postgresqlUsername }} + {{- .Values.global.postgresql.postgresqlUsername -}} +{{- else -}} + {{- .Values.postgresqlUsername -}} +{{- end -}} +{{- end -}} + +{{/* +Return PostgreSQL replication username +*/}} +{{- define "postgresql.replication.username" -}} +{{- if .Values.global.postgresql.replicationUser }} + {{- .Values.global.postgresql.replicationUser -}} +{{- else -}} + {{- .Values.replication.user -}} +{{- end -}} +{{- end -}} + +{{/* +Return PostgreSQL port +*/}} +{{- define "postgresql.servicePort" -}} +{{- if .Values.global.postgresql.servicePort }} + {{- .Values.global.postgresql.servicePort -}} +{{- else -}} + {{- .Values.service.port -}} +{{- end -}} +{{- end -}} + +{{/* +Return PostgreSQL created database +*/}} +{{- define "postgresql.database" -}} +{{- if .Values.global.postgresql.postgresqlDatabase }} + {{- .Values.global.postgresql.postgresqlDatabase -}} +{{- else if .Values.postgresqlDatabase -}} + {{- .Values.postgresqlDatabase -}} +{{- end -}} +{{- end -}} + +{{/* +Get the password secret. +*/}} +{{- define "postgresql.secretName" -}} +{{- if .Values.global.postgresql.existingSecret }} + {{- printf "%s" (tpl .Values.global.postgresql.existingSecret $) -}} +{{- else if .Values.existingSecret -}} + {{- printf "%s" (tpl .Values.existingSecret $) -}} +{{- else -}} + {{- printf "%s" (include "common.names.fullname" .) -}} +{{- end -}} +{{- end -}} + +{{/* +Return true if we should use an existingSecret. +*/}} +{{- define "postgresql.useExistingSecret" -}} +{{- if or .Values.global.postgresql.existingSecret .Values.existingSecret -}} + {{- true -}} +{{- end -}} +{{- end -}} + +{{/* +Return true if a secret object should be created +*/}} +{{- define "postgresql.createSecret" -}} +{{- if not (include "postgresql.useExistingSecret" .) -}} + {{- true -}} +{{- end -}} +{{- end -}} + +{{/* +Get the configuration ConfigMap name. +*/}} +{{- define "postgresql.configurationCM" -}} +{{- if .Values.configurationConfigMap -}} +{{- printf "%s" (tpl .Values.configurationConfigMap $) -}} +{{- else -}} +{{- printf "%s-configuration" (include "common.names.fullname" .) -}} +{{- end -}} +{{- end -}} + +{{/* +Get the extended configuration ConfigMap name. +*/}} +{{- define "postgresql.extendedConfigurationCM" -}} +{{- if .Values.extendedConfConfigMap -}} +{{- printf "%s" (tpl .Values.extendedConfConfigMap $) -}} +{{- else -}} +{{- printf "%s-extended-configuration" (include "common.names.fullname" .) -}} +{{- end -}} +{{- end -}} + +{{/* +Return true if a configmap should be mounted with PostgreSQL configuration +*/}} +{{- define "postgresql.mountConfigurationCM" -}} +{{- if or (.Files.Glob "files/postgresql.conf") (.Files.Glob "files/pg_hba.conf") .Values.postgresqlConfiguration .Values.pgHbaConfiguration .Values.configurationConfigMap }} + {{- true -}} +{{- end -}} +{{- end -}} + +{{/* +Get the initialization scripts ConfigMap name. +*/}} +{{- define "postgresql.initdbScriptsCM" -}} +{{- if .Values.initdbScriptsConfigMap -}} +{{- printf "%s" (tpl .Values.initdbScriptsConfigMap $) -}} +{{- else -}} +{{- printf "%s-init-scripts" (include "common.names.fullname" .) -}} +{{- end -}} +{{- end -}} + +{{/* +Get the initialization scripts Secret name. +*/}} +{{- define "postgresql.initdbScriptsSecret" -}} +{{- printf "%s" (tpl .Values.initdbScriptsSecret $) -}} +{{- end -}} + +{{/* +Get the metrics ConfigMap name. +*/}} +{{- define "postgresql.metricsCM" -}} +{{- printf "%s-metrics" (include "common.names.fullname" .) -}} +{{- end -}} + +{{/* +Get the readiness probe command +*/}} +{{- define "postgresql.readinessProbeCommand" -}} +- | +{{- if (include "postgresql.database" .) }} + exec pg_isready -U {{ include "postgresql.username" . | quote }} -d "dbname={{ include "postgresql.database" . }} {{- if .Values.tls.enabled }} sslcert={{ include "postgresql.tlsCert" . }} sslkey={{ include "postgresql.tlsCertKey" . }}{{- end }}" -h 127.0.0.1 -p {{ .Values.containerPorts.postgresql }} +{{- else }} + exec pg_isready -U {{ include "postgresql.username" . | quote }} {{- if .Values.tls.enabled }} -d "sslcert={{ include "postgresql.tlsCert" . }} sslkey={{ include "postgresql.tlsCertKey" . }}"{{- end }} -h 127.0.0.1 -p {{ .Values.containerPorts.postgresql }} +{{- end }} +{{- if contains "bitnami/" .Values.image.repository }} + [ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ] +{{- end -}} +{{- end -}} + +{{/* +Compile all warnings into a single message, and call fail. +*/}} +{{- define "postgresql.validateValues" -}} +{{- $messages := list -}} +{{- $messages := append $messages (include "postgresql.validateValues.ldapConfigurationMethod" .) -}} +{{- $messages := append $messages (include "postgresql.validateValues.psp" .) -}} +{{- $messages := append $messages (include "postgresql.validateValues.tls" .) -}} +{{- $messages := without $messages "" -}} +{{- $message := join "\n" $messages -}} + +{{- if $message -}} +{{- printf "\nVALUES VALIDATION:\n%s" $message | fail -}} +{{- end -}} +{{- end -}} + +{{/* +Validate values of Postgresql - If ldap.url is used then you don't need the other settings for ldap +*/}} +{{- define "postgresql.validateValues.ldapConfigurationMethod" -}} +{{- if and .Values.ldap.enabled (and (not (empty .Values.ldap.url)) (not (empty .Values.ldap.server))) }} +postgresql: ldap.url, ldap.server + You cannot set both `ldap.url` and `ldap.server` at the same time. + Please provide a unique way to configure LDAP. + More info at https://www.postgresql.org/docs/current/auth-ldap.html +{{- end -}} +{{- end -}} + +{{/* +Validate values of Postgresql - If PSP is enabled RBAC should be enabled too +*/}} +{{- define "postgresql.validateValues.psp" -}} +{{- if and .Values.psp.create (not .Values.rbac.create) }} +postgresql: psp.create, rbac.create + RBAC should be enabled if PSP is enabled in order for PSP to work. + More info at https://kubernetes.io/docs/concepts/policy/pod-security-policy/#authorizing-policies +{{- end -}} +{{- end -}} + +{{/* +Validate values of Postgresql TLS - When TLS is enabled, so must be VolumePermissions +*/}} +{{- define "postgresql.validateValues.tls" -}} +{{- if and .Values.tls.enabled (not .Values.volumePermissions.enabled) }} +postgresql: tls.enabled, volumePermissions.enabled + When TLS is enabled you must enable volumePermissions as well to ensure certificates files have + the right permissions. +{{- end -}} +{{- end -}} + +{{/* +Return the path to the cert file. +*/}} +{{- define "postgresql.tlsCert" -}} +{{- if .Values.tls.autoGenerated }} + {{- printf "/opt/bitnami/postgresql/certs/tls.crt" -}} +{{- else -}} + {{- required "Certificate filename is required when TLS in enabled" .Values.tls.certFilename | printf "/opt/bitnami/postgresql/certs/%s" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the path to the cert key file. +*/}} +{{- define "postgresql.tlsCertKey" -}} +{{- if .Values.tls.autoGenerated }} + {{- printf "/opt/bitnami/postgresql/certs/tls.key" -}} +{{- else -}} +{{- required "Certificate Key filename is required when TLS in enabled" .Values.tls.certKeyFilename | printf "/opt/bitnami/postgresql/certs/%s" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the path to the CA cert file. +*/}} +{{- define "postgresql.tlsCACert" -}} +{{- if .Values.tls.autoGenerated }} + {{- printf "/opt/bitnami/postgresql/certs/ca.crt" -}} +{{- else -}} + {{- printf "/opt/bitnami/postgresql/certs/%s" .Values.tls.certCAFilename -}} +{{- end -}} +{{- end -}} + +{{/* +Return the path to the CRL file. +*/}} +{{- define "postgresql.tlsCRL" -}} +{{- if .Values.tls.crlFilename -}} +{{- printf "/opt/bitnami/postgresql/certs/%s" .Values.tls.crlFilename -}} +{{- end -}} +{{- end -}} + +{{/* +Return true if a TLS credentials secret object should be created +*/}} +{{- define "postgresql.createTlsSecret" -}} +{{- if and .Values.tls.autoGenerated (not .Values.tls.certificatesSecret) }} + {{- true -}} +{{- end -}} +{{- end -}} + +{{/* +Return the path to the CA cert file. +*/}} +{{- define "postgresql.tlsSecretName" -}} +{{- if .Values.tls.autoGenerated }} + {{- printf "%s-crt" (include "common.names.fullname" .) -}} +{{- else -}} + {{ required "A secret containing TLS certificates is required when TLS is enabled" .Values.tls.certificatesSecret }} +{{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/configmap.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/configmap.yaml new file mode 100644 index 00000000..0ff4dfe2 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/configmap.yaml @@ -0,0 +1,34 @@ +{{ if and (or (.Files.Glob "files/postgresql.conf") (.Files.Glob "files/pg_hba.conf") .Values.postgresqlConfiguration .Values.pgHbaConfiguration) (not .Values.configurationConfigMap) }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "common.names.fullname" . }}-configuration + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +data: +{{- if (.Files.Glob "files/postgresql.conf") }} +{{ (.Files.Glob "files/postgresql.conf").AsConfig | indent 2 }} +{{- else if .Values.postgresqlConfiguration }} + postgresql.conf: | +{{- range $key, $value := default dict .Values.postgresqlConfiguration }} + {{- if kindIs "string" $value }} + {{ $key | snakecase }} = '{{ $value }}' + {{- else }} + {{ $key | snakecase }} = {{ $value }} + {{- end }} +{{- end }} +{{- end }} +{{- if (.Files.Glob "files/pg_hba.conf") }} +{{ (.Files.Glob "files/pg_hba.conf").AsConfig | indent 2 }} +{{- else if .Values.pgHbaConfiguration }} + pg_hba.conf: | +{{ .Values.pgHbaConfiguration | indent 4 }} +{{- end }} +{{ end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/extended-config-configmap.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/extended-config-configmap.yaml new file mode 100644 index 00000000..a94e06f9 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/extended-config-configmap.yaml @@ -0,0 +1,29 @@ +{{- if and (or (.Files.Glob "files/conf.d/*.conf") .Values.postgresqlExtendedConf) (not .Values.extendedConfConfigMap) }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "common.names.fullname" . }}-extended-configuration + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +data: +{{- with .Files.Glob "files/conf.d/*.conf" }} +{{ .AsConfig | indent 2 }} +{{- end }} +{{ with .Values.postgresqlExtendedConf }} + override.conf: | +{{- range $key, $value := . }} + {{- if kindIs "string" $value }} + {{ $key | snakecase }} = '{{ $value }}' + {{- else }} + {{ $key | snakecase }} = {{ $value }} + {{- end }} +{{- end }} +{{- end }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/extra-list.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/extra-list.yaml new file mode 100644 index 00000000..9ac65f9e --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/extra-list.yaml @@ -0,0 +1,4 @@ +{{- range .Values.extraDeploy }} +--- +{{ include "common.tplvalues.render" (dict "value" . "context" $) }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/initialization-configmap.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/initialization-configmap.yaml new file mode 100644 index 00000000..c681e5ce --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/initialization-configmap.yaml @@ -0,0 +1,26 @@ +{{- if and (or (.Files.Glob "files/docker-entrypoint-initdb.d/*.{sh,sql,sql.gz}") .Values.initdbScripts) (not .Values.initdbScriptsConfigMap) }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "common.names.fullname" . }}-init-scripts + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +{{- with .Files.Glob "files/docker-entrypoint-initdb.d/*.sql.gz" }} +binaryData: +{{- range $path, $bytes := . }} + {{ base $path }}: {{ $.Files.Get $path | b64enc | quote }} +{{- end }} +{{- end }} +data: +{{- with .Files.Glob "files/docker-entrypoint-initdb.d/*.{sh,sql}" }} +{{ .AsConfig | indent 2 }} +{{- end }} +{{- include "common.tplvalues.render" (dict "value" .Values.initdbScripts "context" .) | nindent 2 }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/metrics-configmap.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/metrics-configmap.yaml new file mode 100644 index 00000000..b6411f3a --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/metrics-configmap.yaml @@ -0,0 +1,17 @@ +{{- if and .Values.metrics.enabled .Values.metrics.customMetrics }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "postgresql.metricsCM" . }} + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +data: + custom-metrics.yaml: {{ toYaml .Values.metrics.customMetrics | quote }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/metrics-svc.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/metrics-svc.yaml new file mode 100644 index 00000000..06c52fde --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/metrics-svc.yaml @@ -0,0 +1,29 @@ +{{- if .Values.metrics.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: {{ template "common.names.fullname" . }}-metrics + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + annotations: + {{- if .Values.commonAnnotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + {{- toYaml .Values.metrics.service.annotations | nindent 4 }} + namespace: {{ .Release.Namespace }} +spec: + type: {{ .Values.metrics.service.type }} + {{- if and (eq .Values.metrics.service.type "LoadBalancer") .Values.metrics.service.loadBalancerIP }} + loadBalancerIP: {{ .Values.metrics.service.loadBalancerIP }} + {{- end }} + ports: + - name: http-metrics + port: 9187 + targetPort: http-metrics + selector: + {{- include "common.labels.matchLabels" . | nindent 4 }} + role: primary +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/networkpolicy.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/networkpolicy.yaml new file mode 100644 index 00000000..c51f6785 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/networkpolicy.yaml @@ -0,0 +1,42 @@ +{{- if .Values.networkPolicy.enabled }} +kind: NetworkPolicy +apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }} +metadata: + name: {{ template "common.names.fullname" . }} + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +spec: + podSelector: + matchLabels: + {{- include "common.labels.matchLabels" . | nindent 6 }} + ingress: + # Allow inbound connections + - ports: + - port: {{ template "postgresql.servicePort" . }} + {{- if not .Values.networkPolicy.allowExternal }} + from: + - podSelector: + matchLabels: + {{ template "common.names.fullname" . }}-client: "true" + {{- if .Values.networkPolicy.explicitNamespacesSelector }} + namespaceSelector: +{{ toYaml .Values.networkPolicy.explicitNamespacesSelector | indent 12 }} + {{- end }} + - podSelector: + matchLabels: + {{- include "common.labels.matchLabels" . | nindent 14 }} + role: read + {{- end }} + {{- if .Values.metrics.enabled }} + # Allow prometheus scrapes + - ports: + - port: 9187 + {{- end }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/podsecuritypolicy.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/podsecuritypolicy.yaml new file mode 100644 index 00000000..0eefb3b8 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/podsecuritypolicy.yaml @@ -0,0 +1,42 @@ +{{- $pspAvailable := (semverCompare "<1.25-0" (include "common.capabilities.kubeVersion" .)) -}} +{{- if and $pspAvailable .Values.psp.create }} +apiVersion: policy/v1beta1 +kind: PodSecurityPolicy +metadata: + name: {{ template "common.names.fullname" . }} + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +spec: + privileged: false + volumes: + - 'configMap' + - 'secret' + - 'persistentVolumeClaim' + - 'emptyDir' + - 'projected' + hostNetwork: false + hostIPC: false + hostPID: false + runAsUser: + rule: 'RunAsAny' + seLinux: + rule: 'RunAsAny' + supplementalGroups: + rule: 'MustRunAs' + ranges: + - min: 1 + max: 65535 + fsGroup: + rule: 'MustRunAs' + ranges: + - min: 1 + max: 65535 + readOnlyRootFilesystem: false +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/prometheusrule.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/prometheusrule.yaml new file mode 100644 index 00000000..727a6b78 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/prometheusrule.yaml @@ -0,0 +1,26 @@ +{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: PrometheusRule +metadata: + name: {{ template "common.names.fullname" . }} +{{- with .Values.metrics.prometheusRule.namespace }} + namespace: {{ . }} +{{- end }} + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- with .Values.metrics.prometheusRule.additionalLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: +{{- with .Values.metrics.prometheusRule.rules }} + groups: + - name: {{ template "postgresql.name" $ }} + rules: {{ tpl (toYaml .) $ | nindent 8 }} +{{- end }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/role.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/role.yaml new file mode 100644 index 00000000..1366eda5 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/role.yaml @@ -0,0 +1,24 @@ +{{- if .Values.rbac.create }} +kind: Role +apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }} +metadata: + name: {{ template "common.names.fullname" . }} + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +rules: + {{- $pspAvailable := (semverCompare "<1.25-0" (include "common.capabilities.kubeVersion" .)) -}} + {{- if and $pspAvailable .Values.psp.create }} + - apiGroups: ["extensions"] + resources: ["podsecuritypolicies"] + verbs: ["use"] + resourceNames: + - {{ template "common.names.fullname" . }} + {{- end }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/rolebinding.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/rolebinding.yaml new file mode 100644 index 00000000..988cb73d --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/rolebinding.yaml @@ -0,0 +1,23 @@ +{{- if .Values.rbac.create }} +kind: RoleBinding +apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }} +metadata: + name: {{ template "common.names.fullname" . }} + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: Role + name: {{ template "common.names.fullname" . }} + apiGroup: rbac.authorization.k8s.io +subjects: + - kind: ServiceAccount + name: {{ default (include "common.names.fullname" . ) .Values.serviceAccount.name }} + namespace: {{ .Release.Namespace }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/secrets.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/secrets.yaml new file mode 100644 index 00000000..6bab4622 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/secrets.yaml @@ -0,0 +1,27 @@ +{{- if (include "postgresql.createSecret" .) }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ template "common.names.fullname" . }} + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +type: Opaque +data: + {{- if not (eq (include "postgresql.username" .) "postgres") }} + postgresql-postgres-password: {{ include "postgresql.postgres.password" . | b64enc | quote }} + {{- end }} + postgresql-password: {{ include "postgresql.password" . | b64enc | quote }} + {{- if .Values.replication.enabled }} + postgresql-replication-password: {{ include "postgresql.replication.password" . | b64enc | quote }} + {{- end }} + {{- if (and .Values.ldap.enabled .Values.ldap.bind_password) }} + postgresql-ldap-password: {{ .Values.ldap.bind_password | b64enc | quote }} + {{- end }} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/serviceaccount.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/serviceaccount.yaml new file mode 100644 index 00000000..8e951b81 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/serviceaccount.yaml @@ -0,0 +1,15 @@ +{{- if and (.Values.serviceAccount.enabled) (not .Values.serviceAccount.name) }} +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + name: {{ template "common.names.fullname" . }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/servicemonitor.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/servicemonitor.yaml new file mode 100644 index 00000000..6cd6a1d4 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/servicemonitor.yaml @@ -0,0 +1,42 @@ +{{- if and .Values.metrics.enabled .Values.metrics.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "common.names.fullname" . }} + {{- if .Values.metrics.serviceMonitor.namespace }} + namespace: {{ .Values.metrics.serviceMonitor.namespace }} + {{- end }} + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.metrics.serviceMonitor.additionalLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.additionalLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + +spec: + endpoints: + - port: http-metrics + {{- if .Values.metrics.serviceMonitor.interval }} + interval: {{ .Values.metrics.serviceMonitor.interval }} + {{- end }} + {{- if .Values.metrics.serviceMonitor.scrapeTimeout }} + scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }} + {{- end }} + {{- if .Values.metrics.serviceMonitor.relabelings }} + relabelings: {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.relabelings "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.metrics.serviceMonitor.metricRelabelings }} + metricRelabelings: {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.metricRelabelings "context" $) | nindent 8 }} + {{- end }} + namespaceSelector: + matchNames: + - {{ .Release.Namespace }} + selector: + matchLabels: + {{- include "common.labels.matchLabels" . | nindent 6 }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/statefulset-readreplicas.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/statefulset-readreplicas.yaml new file mode 100644 index 00000000..830fadb5 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/statefulset-readreplicas.yaml @@ -0,0 +1,436 @@ +{{- if .Values.replication.enabled }} +{{- $readReplicasResources := coalesce .Values.readReplicas.resources .Values.resources -}} +apiVersion: {{ include "common.capabilities.statefulset.apiVersion" . }} +kind: StatefulSet +metadata: + name: "{{ template "common.names.fullname" . }}-read" + labels: {{- include "common.labels.standard" . | nindent 4 }} + app.kubernetes.io/component: read + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.readReplicas.labels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.readReplicas.labels "context" $ ) | nindent 4 }} + {{- end }} + annotations: + {{- if .Values.commonAnnotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + {{- with .Values.readReplicas.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +spec: + serviceName: {{ template "common.names.fullname" . }}-headless + replicas: {{ .Values.replication.readReplicas }} + selector: + matchLabels: + {{- include "common.labels.matchLabels" . | nindent 6 }} + role: read + template: + metadata: + name: {{ template "common.names.fullname" . }} + labels: + {{- include "common.labels.standard" . | nindent 8 }} + app.kubernetes.io/component: read + role: read + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 8 }} + {{- end }} + {{- if .Values.readReplicas.podLabels }} + {{- include "common.tplvalues.render" (dict "value" .Values.readReplicas.podLabels "context" $) | nindent 8 }} + {{- end }} +{{- with .Values.readReplicas.podAnnotations }} + annotations: +{{ toYaml . | indent 8 }} +{{- end }} + spec: + {{- if .Values.schedulerName }} + schedulerName: "{{ .Values.schedulerName }}" + {{- end }} +{{- include "postgresql.imagePullSecrets" . | indent 6 }} + {{- if .Values.readReplicas.affinity }} + affinity: {{- include "common.tplvalues.render" (dict "value" .Values.readReplicas.affinity "context" $) | nindent 8 }} + {{- else }} + affinity: + podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.readReplicas.podAffinityPreset "component" "read" "context" $) | nindent 10 }} + podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.readReplicas.podAntiAffinityPreset "component" "read" "context" $) | nindent 10 }} + nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.readReplicas.nodeAffinityPreset.type "key" .Values.readReplicas.nodeAffinityPreset.key "values" .Values.readReplicas.nodeAffinityPreset.values) | nindent 10 }} + {{- end }} + {{- if .Values.readReplicas.nodeSelector }} + nodeSelector: {{- include "common.tplvalues.render" (dict "value" .Values.readReplicas.nodeSelector "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.readReplicas.tolerations }} + tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.readReplicas.tolerations "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.readReplicas.topologySpreadConstraints }} + topologySpreadConstraints: {{- include "common.tplvalues.render" (dict "value" .Values.readReplicas.topologySpreadConstraints "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.terminationGracePeriodSeconds }} + terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }} + {{- end }} + {{- if .Values.securityContext.enabled }} + securityContext: {{- omit .Values.securityContext "enabled" | toYaml | nindent 8 }} + {{- end }} + automountServiceAccountToken: {{ .Values.serviceAccount.autoMount }} + {{- if .Values.serviceAccount.enabled }} + serviceAccountName: {{ default (include "common.names.fullname" . ) .Values.serviceAccount.name }} + {{- end }} + {{- if or .Values.readReplicas.extraInitContainers (and .Values.volumePermissions.enabled (or .Values.persistence.enabled (and .Values.shmVolume.enabled .Values.shmVolume.chmod.enabled))) }} + initContainers: + {{- if and .Values.volumePermissions.enabled (or .Values.persistence.enabled (and .Values.shmVolume.enabled .Values.shmVolume.chmod.enabled) .Values.tls.enabled) }} + - name: init-chmod-data + image: {{ template "postgresql.volumePermissions.image" . }} + imagePullPolicy: {{ .Values.volumePermissions.image.pullPolicy | quote }} + {{- if .Values.resources }} + resources: {{- toYaml .Values.resources | nindent 12 }} + {{- end }} + command: + - /bin/sh + - -cx + - | + {{- if .Values.persistence.enabled }} + {{- if eq ( toString ( .Values.volumePermissions.securityContext.runAsUser )) "auto" }} + chown `id -u`:`id -G | cut -d " " -f2` {{ .Values.persistence.mountPath }} + {{- else }} + chown {{ .Values.containerSecurityContext.runAsUser }}:{{ .Values.securityContext.fsGroup }} {{ .Values.persistence.mountPath }} + {{- end }} + mkdir -p {{ .Values.persistence.mountPath }}/data {{- if (include "postgresql.mountConfigurationCM" .) }} {{ .Values.persistence.mountPath }}/conf {{- end }} + chmod 700 {{ .Values.persistence.mountPath }}/data {{- if (include "postgresql.mountConfigurationCM" .) }} {{ .Values.persistence.mountPath }}/conf {{- end }} + find {{ .Values.persistence.mountPath }} -mindepth 1 -maxdepth 1 {{- if not (include "postgresql.mountConfigurationCM" .) }} -not -name "conf" {{- end }} -not -name ".snapshot" -not -name "lost+found" | \ + {{- if eq ( toString ( .Values.volumePermissions.securityContext.runAsUser )) "auto" }} + xargs chown -R `id -u`:`id -G | cut -d " " -f2` + {{- else }} + xargs chown -R {{ .Values.containerSecurityContext.runAsUser }}:{{ .Values.securityContext.fsGroup }} + {{- end }} + {{- end }} + {{- if and .Values.shmVolume.enabled .Values.shmVolume.chmod.enabled }} + chmod -R 777 /dev/shm + {{- end }} + {{- if .Values.tls.enabled }} + cp /tmp/certs/* /opt/bitnami/postgresql/certs/ + {{- if eq ( toString ( .Values.volumePermissions.securityContext.runAsUser )) "auto" }} + chown -R `id -u`:`id -G | cut -d " " -f2` /opt/bitnami/postgresql/certs/ + {{- else }} + chown -R {{ .Values.containerSecurityContext.runAsUser }}:{{ .Values.securityContext.fsGroup }} /opt/bitnami/postgresql/certs/ + {{- end }} + chmod 600 {{ template "postgresql.tlsCertKey" . }} + {{- end }} + {{- if eq ( toString ( .Values.volumePermissions.securityContext.runAsUser )) "auto" }} + securityContext: {{- omit .Values.volumePermissions.securityContext "runAsUser" | toYaml | nindent 12 }} + {{- else }} + securityContext: {{- .Values.volumePermissions.securityContext | toYaml | nindent 12 }} + {{- end }} + volumeMounts: + {{ if .Values.persistence.enabled }} + - name: data + mountPath: {{ .Values.persistence.mountPath }} + subPath: {{ .Values.persistence.subPath }} + {{- end }} + {{- if .Values.shmVolume.enabled }} + - name: dshm + mountPath: /dev/shm + {{- end }} + {{- if .Values.tls.enabled }} + - name: raw-certificates + mountPath: /tmp/certs + - name: postgresql-certificates + mountPath: /opt/bitnami/postgresql/certs + {{- end }} + {{- end }} + {{- if .Values.readReplicas.extraInitContainers }} + {{- include "common.tplvalues.render" ( dict "value" .Values.readReplicas.extraInitContainers "context" $ ) | nindent 8 }} + {{- end }} + {{- end }} + {{- if .Values.readReplicas.priorityClassName }} + priorityClassName: {{ .Values.readReplicas.priorityClassName }} + {{- end }} + containers: + - name: {{ template "common.names.fullname" . }} + image: {{ template "postgresql.image" . }} + imagePullPolicy: "{{ .Values.image.pullPolicy }}" + {{- if $readReplicasResources }} + resources: {{- toYaml $readReplicasResources | nindent 12 }} + {{- end }} + {{- if .Values.containerSecurityContext.enabled }} + securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }} + {{- end }} + {{- if .Values.diagnosticMode.enabled }} + command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }} + args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }} + {{- end }} + env: + - name: BITNAMI_DEBUG + value: {{ ternary "true" "false" (or .Values.image.debug .Values.diagnosticMode.enabled) | quote }} + - name: POSTGRESQL_VOLUME_DIR + value: "{{ .Values.persistence.mountPath }}" + - name: POSTGRESQL_PORT_NUMBER + value: {{ .Values.containerPorts.postgresql | quote }} + {{- if .Values.persistence.mountPath }} + - name: PGDATA + value: {{ .Values.postgresqlDataDir | quote }} + {{- end }} + - name: POSTGRES_REPLICATION_MODE + value: "slave" + - name: POSTGRES_REPLICATION_USER + value: {{ include "postgresql.replication.username" . | quote }} + {{- if .Values.usePasswordFile }} + - name: POSTGRES_REPLICATION_PASSWORD_FILE + value: "/opt/bitnami/postgresql/secrets/postgresql-replication-password" + {{- else }} + - name: POSTGRES_REPLICATION_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "postgresql.secretName" . }} + key: postgresql-replication-password + {{- end }} + - name: POSTGRES_CLUSTER_APP_NAME + value: {{ .Values.replication.applicationName }} + - name: POSTGRES_MASTER_HOST + value: {{ template "common.names.fullname" . }} + - name: POSTGRES_MASTER_PORT_NUMBER + value: {{ include "postgresql.servicePort" . | quote }} + {{- if not (eq (include "postgresql.username" .) "postgres") }} + {{- if .Values.usePasswordFile }} + - name: POSTGRES_POSTGRES_PASSWORD_FILE + value: "/opt/bitnami/postgresql/secrets/postgresql-postgres-password" + {{- else }} + - name: POSTGRES_POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "postgresql.secretName" . }} + key: postgresql-postgres-password + {{- end }} + {{- end }} + {{- if .Values.usePasswordFile }} + - name: POSTGRES_PASSWORD_FILE + value: "/opt/bitnami/postgresql/secrets/postgresql-password" + {{- else }} + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "postgresql.secretName" . }} + key: postgresql-password + {{- end }} + - name: POSTGRESQL_ENABLE_TLS + value: {{ ternary "yes" "no" .Values.tls.enabled | quote }} + {{- if .Values.tls.enabled }} + - name: POSTGRESQL_TLS_PREFER_SERVER_CIPHERS + value: {{ ternary "yes" "no" .Values.tls.preferServerCiphers | quote }} + - name: POSTGRESQL_TLS_CERT_FILE + value: {{ template "postgresql.tlsCert" . }} + - name: POSTGRESQL_TLS_KEY_FILE + value: {{ template "postgresql.tlsCertKey" . }} + {{- if .Values.tls.certCAFilename }} + - name: POSTGRESQL_TLS_CA_FILE + value: {{ template "postgresql.tlsCACert" . }} + {{- end }} + {{- if .Values.tls.crlFilename }} + - name: POSTGRESQL_TLS_CRL_FILE + value: {{ template "postgresql.tlsCRL" . }} + {{- end }} + {{- end }} + - name: POSTGRESQL_LOG_HOSTNAME + value: {{ .Values.audit.logHostname | quote }} + - name: POSTGRESQL_LOG_CONNECTIONS + value: {{ .Values.audit.logConnections | quote }} + - name: POSTGRESQL_LOG_DISCONNECTIONS + value: {{ .Values.audit.logDisconnections | quote }} + {{- if .Values.audit.logLinePrefix }} + - name: POSTGRESQL_LOG_LINE_PREFIX + value: {{ .Values.audit.logLinePrefix | quote }} + {{- end }} + {{- if .Values.audit.logTimezone }} + - name: POSTGRESQL_LOG_TIMEZONE + value: {{ .Values.audit.logTimezone | quote }} + {{- end }} + {{- if .Values.audit.pgAuditLog }} + - name: POSTGRESQL_PGAUDIT_LOG + value: {{ .Values.audit.pgAuditLog | quote }} + {{- end }} + - name: POSTGRESQL_PGAUDIT_LOG_CATALOG + value: {{ .Values.audit.pgAuditLogCatalog | quote }} + - name: POSTGRESQL_CLIENT_MIN_MESSAGES + value: {{ .Values.audit.clientMinMessages | quote }} + - name: POSTGRESQL_SHARED_PRELOAD_LIBRARIES + value: {{ .Values.postgresqlSharedPreloadLibraries | quote }} + {{- if .Values.postgresqlMaxConnections }} + - name: POSTGRESQL_MAX_CONNECTIONS + value: {{ .Values.postgresqlMaxConnections | quote }} + {{- end }} + {{- if .Values.postgresqlPostgresConnectionLimit }} + - name: POSTGRESQL_POSTGRES_CONNECTION_LIMIT + value: {{ .Values.postgresqlPostgresConnectionLimit | quote }} + {{- end }} + {{- if .Values.postgresqlDbUserConnectionLimit }} + - name: POSTGRESQL_USERNAME_CONNECTION_LIMIT + value: {{ .Values.postgresqlDbUserConnectionLimit | quote }} + {{- end }} + {{- if .Values.postgresqlTcpKeepalivesInterval }} + - name: POSTGRESQL_TCP_KEEPALIVES_INTERVAL + value: {{ .Values.postgresqlTcpKeepalivesInterval | quote }} + {{- end }} + {{- if .Values.postgresqlTcpKeepalivesIdle }} + - name: POSTGRESQL_TCP_KEEPALIVES_IDLE + value: {{ .Values.postgresqlTcpKeepalivesIdle | quote }} + {{- end }} + {{- if .Values.postgresqlStatementTimeout }} + - name: POSTGRESQL_STATEMENT_TIMEOUT + value: {{ .Values.postgresqlStatementTimeout | quote }} + {{- end }} + {{- if .Values.postgresqlTcpKeepalivesCount }} + - name: POSTGRESQL_TCP_KEEPALIVES_COUNT + value: {{ .Values.postgresqlTcpKeepalivesCount | quote }} + {{- end }} + {{- if .Values.postgresqlPghbaRemoveFilters }} + - name: POSTGRESQL_PGHBA_REMOVE_FILTERS + value: {{ .Values.postgresqlPghbaRemoveFilters | quote }} + {{- end }} + ports: + - name: tcp-postgresql + containerPort: {{ .Values.containerPorts.postgresql }} + {{- if not .Values.diagnosticMode.enabled }} + {{- if .Values.livenessProbe.enabled }} + livenessProbe: + exec: + command: + - /bin/sh + - -c + {{- if (include "postgresql.database" .) }} + - exec pg_isready -U {{ include "postgresql.username" . | quote }} -d "dbname={{ include "postgresql.database" . }} {{- if and .Values.tls.enabled .Values.tls.certCAFilename }} sslcert={{ include "postgresql.tlsCert" . }} sslkey={{ include "postgresql.tlsCertKey" . }}{{- end }}" -h 127.0.0.1 -p {{ .Values.containerPorts.postgresql }} + {{- else }} + - exec pg_isready -U {{ include "postgresql.username" . | quote }} {{- if and .Values.tls.enabled .Values.tls.certCAFilename }} -d "sslcert={{ include "postgresql.tlsCert" . }} sslkey={{ include "postgresql.tlsCertKey" . }}"{{- end }} -h 127.0.0.1 -p {{ .Values.containerPorts.postgresql }} + {{- end }} + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + successThreshold: {{ .Values.livenessProbe.successThreshold }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + {{- else if .Values.customLivenessProbe }} + livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customLivenessProbe "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.readinessProbe.enabled }} + readinessProbe: + exec: + command: + - /bin/sh + - -c + - -e + {{- include "postgresql.readinessProbeCommand" . | nindent 16 }} + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + successThreshold: {{ .Values.readinessProbe.successThreshold }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + {{- else if .Values.customReadinessProbe }} + readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customReadinessProbe "context" $) | nindent 12 }} + {{- end }} + {{- end }} + volumeMounts: + {{- if .Values.usePasswordFile }} + - name: postgresql-password + mountPath: /opt/bitnami/postgresql/secrets/ + {{- end }} + {{- if .Values.shmVolume.enabled }} + - name: dshm + mountPath: /dev/shm + {{- end }} + {{- if .Values.persistence.enabled }} + - name: data + mountPath: {{ .Values.persistence.mountPath }} + subPath: {{ .Values.persistence.subPath }} + {{ end }} + {{- if or (.Files.Glob "files/conf.d/*.conf") .Values.postgresqlExtendedConf .Values.extendedConfConfigMap }} + - name: postgresql-extended-config + mountPath: /bitnami/postgresql/conf/conf.d/ + {{- end }} + {{- if or (.Files.Glob "files/postgresql.conf") (.Files.Glob "files/pg_hba.conf") .Values.postgresqlConfiguration .Values.pgHbaConfiguration .Values.configurationConfigMap }} + - name: postgresql-config + mountPath: /bitnami/postgresql/conf + {{- end }} + {{- if .Values.tls.enabled }} + - name: postgresql-certificates + mountPath: /opt/bitnami/postgresql/certs + readOnly: true + {{- end }} + {{- if .Values.readReplicas.extraVolumeMounts }} + {{- include "common.tplvalues.render" (dict "value" .Values.readReplicas.extraVolumeMounts "context" $) | nindent 12 }} + {{- end }} +{{- if .Values.readReplicas.sidecars }} +{{- include "common.tplvalues.render" ( dict "value" .Values.readReplicas.sidecars "context" $ ) | nindent 8 }} +{{- end }} + volumes: + {{- if .Values.usePasswordFile }} + - name: postgresql-password + secret: + secretName: {{ template "postgresql.secretName" . }} + {{- end }} + {{- if or (.Files.Glob "files/postgresql.conf") (.Files.Glob "files/pg_hba.conf") .Values.postgresqlConfiguration .Values.pgHbaConfiguration .Values.configurationConfigMap }} + - name: postgresql-config + configMap: + name: {{ template "postgresql.configurationCM" . }} + {{- end }} + {{- if or (.Files.Glob "files/conf.d/*.conf") .Values.postgresqlExtendedConf .Values.extendedConfConfigMap }} + - name: postgresql-extended-config + configMap: + name: {{ template "postgresql.extendedConfigurationCM" . }} + {{- end }} + {{- if .Values.tls.enabled }} + - name: raw-certificates + secret: + secretName: {{ template "postgresql.tlsSecretName" . }} + - name: postgresql-certificates + emptyDir: {} + {{- end }} + {{- if .Values.shmVolume.enabled }} + - name: dshm + emptyDir: + medium: Memory + sizeLimit: 1Gi + {{- end }} + {{- if or (not .Values.persistence.enabled) (not .Values.readReplicas.persistence.enabled) }} + - name: data + emptyDir: {} + {{- end }} + {{- if .Values.readReplicas.extraVolumes }} + {{- include "common.tplvalues.render" ( dict "value" .Values.readReplicas.extraVolumes "context" $ ) | nindent 8 }} + {{- end }} + {{- if .Values.readReplicas.extraPodSpec }} + {{- include "common.tplvalues.render" (dict "value" .Values.readReplicas.extraPodSpec "context" $) | nindent 6 }} + {{- end }} + updateStrategy: + type: {{ .Values.updateStrategy.type }} + {{- if (eq "Recreate" .Values.updateStrategy.type) }} + rollingUpdate: null + {{- end }} +{{- if and .Values.persistence.enabled .Values.readReplicas.persistence.enabled }} + volumeClaimTemplates: + - metadata: + name: data + {{- with .Values.persistence.annotations }} + annotations: + {{- range $key, $value := . }} + {{ $key }}: {{ $value }} + {{- end }} + {{- end }} + spec: + accessModes: + {{- range .Values.persistence.accessModes }} + - {{ . | quote }} + {{- end }} + {{- if .Values.persistence.snapshotName }} + dataSource: + name: {{ .Values.persistence.snapshotName }} + kind: VolumeSnapshot + apiGroup: snapshot.storage.k8s.io + {{- end }} + resources: + requests: + storage: {{ .Values.persistence.size | quote }} + {{ include "common.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) }} + + {{- if .Values.persistence.selector }} + selector: {{- include "common.tplvalues.render" (dict "value" .Values.persistence.selector "context" $) | nindent 10 }} + {{- end -}} +{{- end }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/statefulset.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/statefulset.yaml new file mode 100644 index 00000000..b819b4ca --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/statefulset.yaml @@ -0,0 +1,642 @@ +apiVersion: {{ include "common.capabilities.statefulset.apiVersion" . }} +kind: StatefulSet +metadata: + name: {{ template "postgresql.primary.fullname" . }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + app.kubernetes.io/component: primary + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.primary.labels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.primary.labels "context" $ ) | nindent 4 }} + {{- end }} + annotations: + {{- if .Values.commonAnnotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + {{- with .Values.primary.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +spec: + serviceName: {{ template "common.names.fullname" . }}-headless + replicas: 1 + updateStrategy: + type: {{ .Values.updateStrategy.type }} + {{- if (eq "Recreate" .Values.updateStrategy.type) }} + rollingUpdate: null + {{- end }} + selector: + matchLabels: + {{- include "common.labels.matchLabels" . | nindent 6 }} + role: primary + template: + metadata: + name: {{ template "common.names.fullname" . }} + labels: + {{- include "common.labels.standard" . | nindent 8 }} + role: primary + app.kubernetes.io/component: primary + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 8 }} + {{- end }} + {{- if .Values.primary.podLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.primary.podLabels "context" $ ) | nindent 8 }} + {{- end }} + {{- with .Values.primary.podAnnotations }} + annotations: {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- if .Values.schedulerName }} + schedulerName: "{{ .Values.schedulerName }}" + {{- end }} +{{- include "postgresql.imagePullSecrets" . | indent 6 }} + {{- if .Values.primary.affinity }} + affinity: {{- include "common.tplvalues.render" (dict "value" .Values.primary.affinity "context" $) | nindent 8 }} + {{- else }} + affinity: + podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.primary.podAffinityPreset "component" "primary" "context" $) | nindent 10 }} + podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.primary.podAntiAffinityPreset "component" "primary" "context" $) | nindent 10 }} + nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.primary.nodeAffinityPreset.type "key" .Values.primary.nodeAffinityPreset.key "values" .Values.primary.nodeAffinityPreset.values) | nindent 10 }} + {{- end }} + {{- if .Values.primary.nodeSelector }} + nodeSelector: {{- include "common.tplvalues.render" (dict "value" .Values.primary.nodeSelector "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.primary.tolerations }} + tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.primary.tolerations "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.terminationGracePeriodSeconds }} + terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }} + {{- end }} + {{- if .Values.securityContext.enabled }} + securityContext: {{- omit .Values.securityContext "enabled" | toYaml | nindent 8 }} + {{- end }} + automountServiceAccountToken: {{ .Values.serviceAccount.autoMount }} + {{- if .Values.serviceAccount.enabled }} + serviceAccountName: {{ default (include "common.names.fullname" . ) .Values.serviceAccount.name }} + {{- end }} + {{- if or .Values.primary.extraInitContainers (and .Values.volumePermissions.enabled (or .Values.persistence.enabled (and .Values.shmVolume.enabled .Values.shmVolume.chmod.enabled))) }} + initContainers: + {{- if and .Values.volumePermissions.enabled (or .Values.persistence.enabled (and .Values.shmVolume.enabled .Values.shmVolume.chmod.enabled) .Values.tls.enabled) }} + - name: init-chmod-data + image: {{ template "postgresql.volumePermissions.image" . }} + imagePullPolicy: {{ .Values.volumePermissions.image.pullPolicy | quote }} + {{- if .Values.resources }} + resources: {{- toYaml .Values.resources | nindent 12 }} + {{- end }} + command: + - /bin/sh + - -cx + - | + {{- if .Values.persistence.enabled }} + {{- if eq ( toString ( .Values.volumePermissions.securityContext.runAsUser )) "auto" }} + chown `id -u`:`id -G | cut -d " " -f2` {{ .Values.persistence.mountPath }} + {{- else }} + chown {{ .Values.containerSecurityContext.runAsUser }}:{{ .Values.securityContext.fsGroup }} {{ .Values.persistence.mountPath }} + {{- end }} + mkdir -p {{ .Values.persistence.mountPath }}/data {{- if (include "postgresql.mountConfigurationCM" .) }} {{ .Values.persistence.mountPath }}/conf {{- end }} + chmod 700 {{ .Values.persistence.mountPath }}/data {{- if (include "postgresql.mountConfigurationCM" .) }} {{ .Values.persistence.mountPath }}/conf {{- end }} + find {{ .Values.persistence.mountPath }} -mindepth 1 -maxdepth 1 {{- if not (include "postgresql.mountConfigurationCM" .) }} -not -name "conf" {{- end }} -not -name ".snapshot" -not -name "lost+found" | \ + {{- if eq ( toString ( .Values.volumePermissions.securityContext.runAsUser )) "auto" }} + xargs chown -R `id -u`:`id -G | cut -d " " -f2` + {{- else }} + xargs chown -R {{ .Values.containerSecurityContext.runAsUser }}:{{ .Values.securityContext.fsGroup }} + {{- end }} + {{- end }} + {{- if and .Values.shmVolume.enabled .Values.shmVolume.chmod.enabled }} + chmod -R 777 /dev/shm + {{- end }} + {{- if .Values.tls.enabled }} + cp /tmp/certs/* /opt/bitnami/postgresql/certs/ + {{- if eq ( toString ( .Values.volumePermissions.securityContext.runAsUser )) "auto" }} + chown -R `id -u`:`id -G | cut -d " " -f2` /opt/bitnami/postgresql/certs/ + {{- else }} + chown -R {{ .Values.containerSecurityContext.runAsUser }}:{{ .Values.securityContext.fsGroup }} /opt/bitnami/postgresql/certs/ + {{- end }} + chmod 600 {{ template "postgresql.tlsCertKey" . }} + {{- end }} + {{- if eq ( toString ( .Values.volumePermissions.securityContext.runAsUser )) "auto" }} + securityContext: {{- omit .Values.volumePermissions.securityContext "runAsUser" | toYaml | nindent 12 }} + {{- else }} + securityContext: {{- .Values.volumePermissions.securityContext | toYaml | nindent 12 }} + {{- end }} + volumeMounts: + {{- if .Values.persistence.enabled }} + - name: data + mountPath: {{ .Values.persistence.mountPath }} + subPath: {{ .Values.persistence.subPath }} + {{- end }} + {{- if .Values.shmVolume.enabled }} + - name: dshm + mountPath: /dev/shm + {{- end }} + {{- if .Values.tls.enabled }} + - name: raw-certificates + mountPath: /tmp/certs + - name: postgresql-certificates + mountPath: /opt/bitnami/postgresql/certs + {{- end }} + {{- end }} + {{- if .Values.primary.extraInitContainers }} + {{- include "common.tplvalues.render" ( dict "value" .Values.primary.extraInitContainers "context" $ ) | nindent 8 }} + {{- end }} + {{- end }} + {{- if .Values.primary.priorityClassName }} + priorityClassName: {{ .Values.primary.priorityClassName }} + {{- end }} + containers: + - name: {{ template "common.names.fullname" . }} + image: {{ template "postgresql.image" . }} + imagePullPolicy: "{{ .Values.image.pullPolicy }}" + {{- if .Values.resources }} + resources: {{- toYaml .Values.resources | nindent 12 }} + {{- end }} + {{- if .Values.lifecycleHooks }} + lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.lifecycleHooks "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.containerSecurityContext.enabled }} + securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }} + {{- end }} + {{- if .Values.diagnosticMode.enabled }} + command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }} + args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }} + {{- end }} + env: + - name: BITNAMI_DEBUG + value: {{ ternary "true" "false" (or .Values.image.debug .Values.diagnosticMode.enabled) | quote }} + - name: POSTGRESQL_PORT_NUMBER + value: {{ .Values.containerPorts.postgresql | quote }} + - name: POSTGRESQL_VOLUME_DIR + value: "{{ .Values.persistence.mountPath }}" + {{- if .Values.postgresqlInitdbArgs }} + - name: POSTGRES_INITDB_ARGS + value: {{ .Values.postgresqlInitdbArgs | quote }} + {{- end }} + {{- if .Values.postgresqlInitdbWalDir }} + - name: POSTGRES_INITDB_WALDIR + value: {{ .Values.postgresqlInitdbWalDir | quote }} + {{- end }} + {{- if .Values.initdbUser }} + - name: POSTGRESQL_INITSCRIPTS_USERNAME + value: {{ .Values.initdbUser }} + {{- end }} + {{- if .Values.initdbPassword }} + - name: POSTGRESQL_INITSCRIPTS_PASSWORD + value: {{ .Values.initdbPassword }} + {{- end }} + {{- if .Values.persistence.mountPath }} + - name: PGDATA + value: {{ .Values.postgresqlDataDir | quote }} + {{- end }} + {{- if .Values.primaryAsStandBy.enabled }} + - name: POSTGRES_MASTER_HOST + value: {{ .Values.primaryAsStandBy.primaryHost }} + - name: POSTGRES_MASTER_PORT_NUMBER + value: {{ .Values.primaryAsStandBy.primaryPort | quote }} + {{- end }} + {{- if or .Values.replication.enabled .Values.primaryAsStandBy.enabled }} + - name: POSTGRES_REPLICATION_MODE + {{- if .Values.primaryAsStandBy.enabled }} + value: "slave" + {{- else }} + value: "master" + {{- end }} + - name: POSTGRES_REPLICATION_USER + value: {{ include "postgresql.replication.username" . | quote }} + {{- if .Values.usePasswordFile }} + - name: POSTGRES_REPLICATION_PASSWORD_FILE + value: "/opt/bitnami/postgresql/secrets/postgresql-replication-password" + {{- else }} + - name: POSTGRES_REPLICATION_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "postgresql.secretName" . }} + key: postgresql-replication-password + {{- end }} + {{- if not (eq .Values.replication.synchronousCommit "off") }} + - name: POSTGRES_SYNCHRONOUS_COMMIT_MODE + value: {{ .Values.replication.synchronousCommit | quote }} + - name: POSTGRES_NUM_SYNCHRONOUS_REPLICAS + value: {{ .Values.replication.numSynchronousReplicas | quote }} + {{- end }} + - name: POSTGRES_CLUSTER_APP_NAME + value: {{ .Values.replication.applicationName }} + {{- end }} + {{- if not (eq (include "postgresql.username" .) "postgres") }} + {{- if .Values.usePasswordFile }} + - name: POSTGRES_POSTGRES_PASSWORD_FILE + value: "/opt/bitnami/postgresql/secrets/postgresql-postgres-password" + {{- else }} + - name: POSTGRES_POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "postgresql.secretName" . }} + key: postgresql-postgres-password + {{- end }} + {{- end }} + - name: POSTGRES_USER + value: {{ include "postgresql.username" . | quote }} + {{- if .Values.usePasswordFile }} + - name: POSTGRES_PASSWORD_FILE + value: "/opt/bitnami/postgresql/secrets/postgresql-password" + {{- else }} + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "postgresql.secretName" . }} + key: postgresql-password + {{- end }} + {{- if (include "postgresql.database" .) }} + - name: POSTGRES_DB + value: {{ (include "postgresql.database" .) | quote }} + {{- end }} + {{- if .Values.extraEnv }} + {{- include "common.tplvalues.render" (dict "value" .Values.extraEnv "context" $) | nindent 12 }} + {{- end }} + - name: POSTGRESQL_ENABLE_LDAP + value: {{ ternary "yes" "no" .Values.ldap.enabled | quote }} + {{- if .Values.ldap.enabled }} + - name: POSTGRESQL_LDAP_SERVER + value: {{ .Values.ldap.server }} + - name: POSTGRESQL_LDAP_PORT + value: {{ .Values.ldap.port | quote }} + - name: POSTGRESQL_LDAP_SCHEME + value: {{ .Values.ldap.scheme }} + {{- if .Values.ldap.tls }} + - name: POSTGRESQL_LDAP_TLS + value: "1" + {{- end }} + - name: POSTGRESQL_LDAP_PREFIX + value: {{ .Values.ldap.prefix | quote }} + - name: POSTGRESQL_LDAP_SUFFIX + value: {{ .Values.ldap.suffix | quote }} + - name: POSTGRESQL_LDAP_BASE_DN + value: {{ .Values.ldap.baseDN }} + - name: POSTGRESQL_LDAP_BIND_DN + value: {{ .Values.ldap.bindDN }} + {{- if (not (empty .Values.ldap.bind_password)) }} + - name: POSTGRESQL_LDAP_BIND_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "postgresql.secretName" . }} + key: postgresql-ldap-password + {{- end }} + - name: POSTGRESQL_LDAP_SEARCH_ATTR + value: {{ .Values.ldap.search_attr }} + - name: POSTGRESQL_LDAP_SEARCH_FILTER + value: {{ .Values.ldap.search_filter }} + - name: POSTGRESQL_LDAP_URL + value: {{ .Values.ldap.url }} + {{- end }} + - name: POSTGRESQL_ENABLE_TLS + value: {{ ternary "yes" "no" .Values.tls.enabled | quote }} + {{- if .Values.tls.enabled }} + - name: POSTGRESQL_TLS_PREFER_SERVER_CIPHERS + value: {{ ternary "yes" "no" .Values.tls.preferServerCiphers | quote }} + - name: POSTGRESQL_TLS_CERT_FILE + value: {{ template "postgresql.tlsCert" . }} + - name: POSTGRESQL_TLS_KEY_FILE + value: {{ template "postgresql.tlsCertKey" . }} + {{- if .Values.tls.certCAFilename }} + - name: POSTGRESQL_TLS_CA_FILE + value: {{ template "postgresql.tlsCACert" . }} + {{- end }} + {{- if .Values.tls.crlFilename }} + - name: POSTGRESQL_TLS_CRL_FILE + value: {{ template "postgresql.tlsCRL" . }} + {{- end }} + {{- end }} + - name: POSTGRESQL_LOG_HOSTNAME + value: {{ .Values.audit.logHostname | quote }} + - name: POSTGRESQL_LOG_CONNECTIONS + value: {{ .Values.audit.logConnections | quote }} + - name: POSTGRESQL_LOG_DISCONNECTIONS + value: {{ .Values.audit.logDisconnections | quote }} + {{- if .Values.audit.logLinePrefix }} + - name: POSTGRESQL_LOG_LINE_PREFIX + value: {{ .Values.audit.logLinePrefix | quote }} + {{- end }} + {{- if .Values.audit.logTimezone }} + - name: POSTGRESQL_LOG_TIMEZONE + value: {{ .Values.audit.logTimezone | quote }} + {{- end }} + {{- if .Values.audit.pgAuditLog }} + - name: POSTGRESQL_PGAUDIT_LOG + value: {{ .Values.audit.pgAuditLog | quote }} + {{- end }} + - name: POSTGRESQL_PGAUDIT_LOG_CATALOG + value: {{ .Values.audit.pgAuditLogCatalog | quote }} + - name: POSTGRESQL_CLIENT_MIN_MESSAGES + value: {{ .Values.audit.clientMinMessages | quote }} + - name: POSTGRESQL_SHARED_PRELOAD_LIBRARIES + value: {{ .Values.postgresqlSharedPreloadLibraries | quote }} + {{- if .Values.postgresqlMaxConnections }} + - name: POSTGRESQL_MAX_CONNECTIONS + value: {{ .Values.postgresqlMaxConnections | quote }} + {{- end }} + {{- if .Values.postgresqlPostgresConnectionLimit }} + - name: POSTGRESQL_POSTGRES_CONNECTION_LIMIT + value: {{ .Values.postgresqlPostgresConnectionLimit | quote }} + {{- end }} + {{- if .Values.postgresqlDbUserConnectionLimit }} + - name: POSTGRESQL_USERNAME_CONNECTION_LIMIT + value: {{ .Values.postgresqlDbUserConnectionLimit | quote }} + {{- end }} + {{- if .Values.postgresqlTcpKeepalivesInterval }} + - name: POSTGRESQL_TCP_KEEPALIVES_INTERVAL + value: {{ .Values.postgresqlTcpKeepalivesInterval | quote }} + {{- end }} + {{- if .Values.postgresqlTcpKeepalivesIdle }} + - name: POSTGRESQL_TCP_KEEPALIVES_IDLE + value: {{ .Values.postgresqlTcpKeepalivesIdle | quote }} + {{- end }} + {{- if .Values.postgresqlStatementTimeout }} + - name: POSTGRESQL_STATEMENT_TIMEOUT + value: {{ .Values.postgresqlStatementTimeout | quote }} + {{- end }} + {{- if .Values.postgresqlTcpKeepalivesCount }} + - name: POSTGRESQL_TCP_KEEPALIVES_COUNT + value: {{ .Values.postgresqlTcpKeepalivesCount | quote }} + {{- end }} + {{- if .Values.postgresqlPghbaRemoveFilters }} + - name: POSTGRESQL_PGHBA_REMOVE_FILTERS + value: {{ .Values.postgresqlPghbaRemoveFilters | quote }} + {{- end }} + {{- if .Values.extraEnvVarsCM }} + envFrom: + - configMapRef: + name: {{ tpl .Values.extraEnvVarsCM . }} + {{- end }} + ports: + - name: tcp-postgresql + containerPort: {{ .Values.containerPorts.postgresql }} + {{- if not .Values.diagnosticMode.enabled }} + {{- if .Values.startupProbe.enabled }} + startupProbe: + exec: + command: + - /bin/sh + - -c + {{- if (include "postgresql.database" .) }} + - exec pg_isready -U {{ include "postgresql.username" . | quote }} -d "dbname={{ include "postgresql.database" . }} {{- if and .Values.tls.enabled .Values.tls.certCAFilename }} sslcert={{ include "postgresql.tlsCert" . }} sslkey={{ include "postgresql.tlsCertKey" . }}{{- end }}" -h 127.0.0.1 -p {{ .Values.containerPorts.postgresql }} + {{- else }} + - exec pg_isready -U {{ include "postgresql.username" . | quote }} {{- if and .Values.tls.enabled .Values.tls.certCAFilename }} -d "sslcert={{ include "postgresql.tlsCert" . }} sslkey={{ include "postgresql.tlsCertKey" . }}"{{- end }} -h 127.0.0.1 -p {{ .Values.containerPorts.postgresql }} + {{- end }} + initialDelaySeconds: {{ .Values.startupProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.startupProbe.periodSeconds }} + timeoutSeconds: {{ .Values.startupProbe.timeoutSeconds }} + successThreshold: {{ .Values.startupProbe.successThreshold }} + failureThreshold: {{ .Values.startupProbe.failureThreshold }} + {{- else if .Values.customStartupProbe }} + startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customStartupProbe "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.livenessProbe.enabled }} + livenessProbe: + exec: + command: + - /bin/sh + - -c + {{- if (include "postgresql.database" .) }} + - exec pg_isready -U {{ include "postgresql.username" . | quote }} -d "dbname={{ include "postgresql.database" . }} {{- if and .Values.tls.enabled .Values.tls.certCAFilename }} sslcert={{ include "postgresql.tlsCert" . }} sslkey={{ include "postgresql.tlsCertKey" . }}{{- end }}" -h 127.0.0.1 -p {{ .Values.containerPorts.postgresql }} + {{- else }} + - exec pg_isready -U {{ include "postgresql.username" . | quote }} {{- if and .Values.tls.enabled .Values.tls.certCAFilename }} -d "sslcert={{ include "postgresql.tlsCert" . }} sslkey={{ include "postgresql.tlsCertKey" . }}"{{- end }} -h 127.0.0.1 -p {{ .Values.containerPorts.postgresql }} + {{- end }} + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + successThreshold: {{ .Values.livenessProbe.successThreshold }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + {{- else if .Values.customLivenessProbe }} + livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customLivenessProbe "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.readinessProbe.enabled }} + readinessProbe: + exec: + command: + - /bin/sh + - -c + - -e + {{- include "postgresql.readinessProbeCommand" . | nindent 16 }} + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + successThreshold: {{ .Values.readinessProbe.successThreshold }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + {{- else if .Values.customReadinessProbe }} + readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customReadinessProbe "context" $) | nindent 12 }} + {{- end }} + {{- end }} + volumeMounts: + {{- if or (.Files.Glob "files/docker-entrypoint-initdb.d/*.{sh,sql,sql.gz}") .Values.initdbScriptsConfigMap .Values.initdbScripts }} + - name: custom-init-scripts + mountPath: /docker-entrypoint-initdb.d/ + {{- end }} + {{- if .Values.initdbScriptsSecret }} + - name: custom-init-scripts-secret + mountPath: /docker-entrypoint-initdb.d/secret + {{- end }} + {{- if or (.Files.Glob "files/conf.d/*.conf") .Values.postgresqlExtendedConf .Values.extendedConfConfigMap }} + - name: postgresql-extended-config + mountPath: /bitnami/postgresql/conf/conf.d/ + {{- end }} + {{- if .Values.usePasswordFile }} + - name: postgresql-password + mountPath: /opt/bitnami/postgresql/secrets/ + {{- end }} + {{- if .Values.tls.enabled }} + - name: postgresql-certificates + mountPath: /opt/bitnami/postgresql/certs + readOnly: true + {{- end }} + {{- if .Values.shmVolume.enabled }} + - name: dshm + mountPath: /dev/shm + {{- end }} + {{- if .Values.persistence.enabled }} + - name: data + mountPath: {{ .Values.persistence.mountPath }} + subPath: {{ .Values.persistence.subPath }} + {{- end }} + {{- if or (.Files.Glob "files/postgresql.conf") (.Files.Glob "files/pg_hba.conf") .Values.postgresqlConfiguration .Values.pgHbaConfiguration .Values.configurationConfigMap }} + - name: postgresql-config + mountPath: /bitnami/postgresql/conf + {{- end }} + {{- if .Values.primary.extraVolumeMounts }} + {{- include "common.tplvalues.render" (dict "value" .Values.primary.extraVolumeMounts "context" $) | nindent 12 }} + {{- end }} +{{- if .Values.primary.sidecars }} +{{- include "common.tplvalues.render" ( dict "value" .Values.primary.sidecars "context" $ ) | nindent 8 }} +{{- end }} +{{- if .Values.metrics.enabled }} + - name: metrics + image: {{ template "postgresql.metrics.image" . }} + imagePullPolicy: {{ .Values.metrics.image.pullPolicy | quote }} + {{- if .Values.metrics.securityContext.enabled }} + securityContext: {{- omit .Values.metrics.securityContext "enabled" | toYaml | nindent 12 }} + {{- end }} + {{- if .Values.diagnosticMode.enabled }} + command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }} + args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }} + {{- end }} + env: + {{- $database := required "In order to enable metrics you need to specify a database (.Values.postgresqlDatabase or .Values.global.postgresql.postgresqlDatabase)" (include "postgresql.database" .) }} + {{- $sslmode := ternary "require" "disable" .Values.tls.enabled }} + {{- if and .Values.tls.enabled .Values.tls.certCAFilename }} + - name: DATA_SOURCE_NAME + value: {{ printf "host=127.0.0.1 port=%d user=%s sslmode=%s sslcert=%s sslkey=%s" (int (include "postgresql.servicePort" .)) (include "postgresql.username" .) $sslmode (include "postgresql.tlsCert" .) (include "postgresql.tlsCertKey" .) }} + {{- else }} + - name: DATA_SOURCE_URI + value: {{ printf "127.0.0.1:%d/%s?sslmode=%s" (int (include "postgresql.servicePort" .)) $database $sslmode }} + {{- end }} + {{- if .Values.usePasswordFile }} + - name: DATA_SOURCE_PASS_FILE + value: "/opt/bitnami/postgresql/secrets/postgresql-password" + {{- else }} + - name: DATA_SOURCE_PASS + valueFrom: + secretKeyRef: + name: {{ template "postgresql.secretName" . }} + key: postgresql-password + {{- end }} + - name: DATA_SOURCE_USER + value: {{ template "postgresql.username" . }} + {{- if .Values.metrics.extraEnvVars }} + {{- include "common.tplvalues.render" (dict "value" .Values.metrics.extraEnvVars "context" $) | nindent 12 }} + {{- end }} + {{- if not .Values.diagnosticMode.enabled }} + {{- if .Values.livenessProbe.enabled }} + livenessProbe: + httpGet: + path: / + port: http-metrics + initialDelaySeconds: {{ .Values.metrics.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.metrics.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.metrics.livenessProbe.timeoutSeconds }} + successThreshold: {{ .Values.metrics.livenessProbe.successThreshold }} + failureThreshold: {{ .Values.metrics.livenessProbe.failureThreshold }} + {{- end }} + {{- if .Values.readinessProbe.enabled }} + readinessProbe: + httpGet: + path: / + port: http-metrics + initialDelaySeconds: {{ .Values.metrics.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.metrics.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.metrics.readinessProbe.timeoutSeconds }} + successThreshold: {{ .Values.metrics.readinessProbe.successThreshold }} + failureThreshold: {{ .Values.metrics.readinessProbe.failureThreshold }} + {{- end }} + {{- end }} + volumeMounts: + {{- if .Values.usePasswordFile }} + - name: postgresql-password + mountPath: /opt/bitnami/postgresql/secrets/ + {{- end }} + {{- if .Values.tls.enabled }} + - name: postgresql-certificates + mountPath: /opt/bitnami/postgresql/certs + readOnly: true + {{- end }} + {{- if .Values.metrics.customMetrics }} + - name: custom-metrics + mountPath: /conf + readOnly: true + args: ["--extend.query-path", "/conf/custom-metrics.yaml"] + {{- end }} + ports: + - name: http-metrics + containerPort: 9187 + {{- if .Values.metrics.resources }} + resources: {{- toYaml .Values.metrics.resources | nindent 12 }} + {{- end }} +{{- end }} + volumes: + {{- if or (.Files.Glob "files/postgresql.conf") (.Files.Glob "files/pg_hba.conf") .Values.postgresqlConfiguration .Values.pgHbaConfiguration .Values.configurationConfigMap }} + - name: postgresql-config + configMap: + name: {{ template "postgresql.configurationCM" . }} + {{- end }} + {{- if or (.Files.Glob "files/conf.d/*.conf") .Values.postgresqlExtendedConf .Values.extendedConfConfigMap }} + - name: postgresql-extended-config + configMap: + name: {{ template "postgresql.extendedConfigurationCM" . }} + {{- end }} + {{- if .Values.usePasswordFile }} + - name: postgresql-password + secret: + secretName: {{ template "postgresql.secretName" . }} + {{- end }} + {{- if or (.Files.Glob "files/docker-entrypoint-initdb.d/*.{sh,sql,sql.gz}") .Values.initdbScriptsConfigMap .Values.initdbScripts }} + - name: custom-init-scripts + configMap: + name: {{ template "postgresql.initdbScriptsCM" . }} + {{- end }} + {{- if .Values.initdbScriptsSecret }} + - name: custom-init-scripts-secret + secret: + secretName: {{ template "postgresql.initdbScriptsSecret" . }} + {{- end }} + {{- if .Values.tls.enabled }} + - name: raw-certificates + secret: + secretName: {{ template "postgresql.tlsSecretName" . }} + - name: postgresql-certificates + emptyDir: {} + {{- end }} + {{- if .Values.primary.extraVolumes }} + {{- include "common.tplvalues.render" ( dict "value" .Values.primary.extraVolumes "context" $ ) | nindent 8 }} + {{- end }} + {{- if and .Values.metrics.enabled .Values.metrics.customMetrics }} + - name: custom-metrics + configMap: + name: {{ template "postgresql.metricsCM" . }} + {{- end }} + {{- if .Values.shmVolume.enabled }} + - name: dshm + emptyDir: + medium: Memory +{{- with .Values.shmVolume.sizeLimit }} + sizeLimit: {{ . }} +{{- end }} + {{- end }} +{{- if and .Values.persistence.enabled .Values.persistence.existingClaim }} + - name: data + persistentVolumeClaim: +{{- with .Values.persistence.existingClaim }} + claimName: {{ tpl . $ }} +{{- end }} +{{- else if not .Values.persistence.enabled }} + - name: data + emptyDir: {} + {{- if .Values.primary.extraPodSpec }} + {{- include "common.tplvalues.render" (dict "value" .Values.primary.extraPodSpec "context" $) | nindent 6 }} + {{- end }} +{{- else if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }} + volumeClaimTemplates: + - metadata: + name: data + {{- with .Values.persistence.annotations }} + annotations: + {{- range $key, $value := . }} + {{ $key }}: {{ $value }} + {{- end }} + {{- end }} + spec: + accessModes: + {{- range .Values.persistence.accessModes }} + - {{ . | quote }} + {{- end }} + {{- if .Values.persistence.snapshotName }} + dataSource: + name: {{ .Values.persistence.snapshotName }} + kind: VolumeSnapshot + apiGroup: snapshot.storage.k8s.io + {{- end }} + resources: + requests: + storage: {{ .Values.persistence.size | quote }} + {{ include "common.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) }} + {{- if .Values.persistence.selector }} + selector: {{- include "common.tplvalues.render" (dict "value" .Values.persistence.selector "context" $) | nindent 10 }} + {{- end -}} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc-headless.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc-headless.yaml new file mode 100644 index 00000000..fbbfd400 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc-headless.yaml @@ -0,0 +1,31 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ template "common.names.fullname" . }}-headless + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + # Use this annotation in addition to the actual publishNotReadyAddresses + # field below because the annotation will stop being respected soon but the + # field is broken in some versions of Kubernetes: + # https://github.com/kubernetes/kubernetes/issues/58662 + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + namespace: {{ .Release.Namespace }} +spec: + type: ClusterIP + clusterIP: None + # We want all pods in the StatefulSet to have their addresses published for + # the sake of the other Postgresql pods even before they're ready, since they + # have to be able to talk to each other in order to become ready. + publishNotReadyAddresses: true + ports: + - name: tcp-postgresql + port: {{ template "postgresql.servicePort" . }} + targetPort: tcp-postgresql + selector: + {{- include "common.labels.matchLabels" . | nindent 4 }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc-read-set.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc-read-set.yaml new file mode 100644 index 00000000..63b410ac --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc-read-set.yaml @@ -0,0 +1,42 @@ +{{- if and .Values.replication.enabled .Values.replication.uniqueServices }} +{{- $serviceAnnotations := coalesce .Values.readReplicas.service.annotations .Values.service.annotations -}} + +{{- $fullName := include "common.names.fullname" . }} +{{- $replicaCount := .Values.replication.readReplicas | int }} +{{- $root := . }} + +{{- range $i, $e := until $replicaCount }} +{{- $targetPod := printf "%s-read-%d" (printf "%s" $fullName) $i }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ $fullName }}-read-{{ $i }} + labels: + pod: {{ $targetPod }} + {{- include "common.labels.standard" $root | nindent 4 }} + {{- if $root.Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" $root.Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + annotations: + + {{- if $root.Values.commonAnnotations }} + {{- include "common.tplvalues.render" ( dict "value" $root.Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + {{- if $serviceAnnotations }} + {{- include "common.tplvalues.render" (dict "value" $serviceAnnotations "context" $) | nindent 4 }} + {{- end }} + namespace: {{ $root.Release.Namespace }} +spec: + type: ClusterIP + ports: + - name: tcp-postgresql + port: {{ template "postgresql.servicePort" $root }} + targetPort: tcp-postgresql + selector: + {{- include "common.labels.matchLabels" $root | nindent 4 }} + role: read + statefulset.kubernetes.io/pod-name: {{ $targetPod }} + +{{- end }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc-read.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc-read.yaml new file mode 100644 index 00000000..ed1005fe --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc-read.yaml @@ -0,0 +1,47 @@ +{{- if and .Values.replication.enabled .Values.replication.singleService }} +{{- $serviceAnnotations := coalesce .Values.readReplicas.service.annotations .Values.service.annotations -}} +{{- $serviceType := coalesce .Values.readReplicas.service.type .Values.service.type -}} +{{- $serviceLoadBalancerIP := coalesce .Values.readReplicas.service.loadBalancerIP .Values.service.loadBalancerIP -}} +{{- $serviceLoadBalancerSourceRanges := coalesce .Values.readReplicas.service.loadBalancerSourceRanges .Values.service.loadBalancerSourceRanges -}} +{{- $serviceClusterIP := coalesce .Values.readReplicas.service.clusterIP .Values.service.clusterIP -}} +{{- $serviceNodePort := coalesce .Values.readReplicas.service.nodePort .Values.service.nodePort -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ template "common.names.fullname" . }}-read + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + annotations: + {{- if .Values.commonAnnotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + {{- if $serviceAnnotations }} + {{- include "common.tplvalues.render" (dict "value" $serviceAnnotations "context" $) | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +spec: + type: {{ $serviceType }} + {{- if and $serviceLoadBalancerIP (eq $serviceType "LoadBalancer") }} + loadBalancerIP: {{ $serviceLoadBalancerIP }} + externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }} + {{- end }} + {{- if and (eq $serviceType "LoadBalancer") $serviceLoadBalancerSourceRanges }} + loadBalancerSourceRanges: {{- include "common.tplvalues.render" (dict "value" $serviceLoadBalancerSourceRanges "context" $) | nindent 4 }} + {{- end }} + {{- if and (eq $serviceType "ClusterIP") $serviceClusterIP }} + clusterIP: {{ $serviceClusterIP }} + {{- end }} + ports: + - name: tcp-postgresql + port: {{ template "postgresql.servicePort" . }} + targetPort: tcp-postgresql + {{- if $serviceNodePort }} + nodePort: {{ $serviceNodePort }} + {{- end }} + selector: + {{- include "common.labels.matchLabels" . | nindent 4 }} + role: read +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc.yaml new file mode 100644 index 00000000..a47efb9c --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/svc.yaml @@ -0,0 +1,45 @@ +{{- $serviceAnnotations := coalesce .Values.primary.service.annotations .Values.service.annotations -}} +{{- $serviceType := coalesce .Values.primary.service.type .Values.service.type -}} +{{- $serviceLoadBalancerIP := coalesce .Values.primary.service.loadBalancerIP .Values.service.loadBalancerIP -}} +{{- $serviceLoadBalancerSourceRanges := coalesce .Values.primary.service.loadBalancerSourceRanges .Values.service.loadBalancerSourceRanges -}} +{{- $serviceClusterIP := coalesce .Values.primary.service.clusterIP .Values.service.clusterIP -}} +{{- $serviceNodePort := coalesce .Values.primary.service.nodePort .Values.service.nodePort -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ template "common.names.fullname" . }} + labels: + {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + annotations: + {{- if .Values.commonAnnotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + {{- if $serviceAnnotations }} + {{- include "common.tplvalues.render" (dict "value" $serviceAnnotations "context" $) | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace }} +spec: + type: {{ $serviceType }} + {{- if and $serviceLoadBalancerIP (eq $serviceType "LoadBalancer") }} + loadBalancerIP: {{ $serviceLoadBalancerIP }} + externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }} + {{- end }} + {{- if and (eq $serviceType "LoadBalancer") $serviceLoadBalancerSourceRanges }} + loadBalancerSourceRanges: {{- include "common.tplvalues.render" (dict "value" $serviceLoadBalancerSourceRanges "context" $) | nindent 4 }} + {{- end }} + {{- if and (eq $serviceType "ClusterIP") $serviceClusterIP }} + clusterIP: {{ $serviceClusterIP }} + {{- end }} + ports: + - name: tcp-postgresql + port: {{ template "postgresql.servicePort" . }} + targetPort: tcp-postgresql + {{- if $serviceNodePort }} + nodePort: {{ $serviceNodePort }} + {{- end }} + selector: + {{- include "common.labels.matchLabels" . | nindent 4 }} + role: primary diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/tls-secrets.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/tls-secrets.yaml new file mode 100644 index 00000000..a5944fc5 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/templates/tls-secrets.yaml @@ -0,0 +1,25 @@ +{{- if (include "postgresql.createTlsSecret" . ) }} +{{- $ca := genCA "postgresql-ca" 365 }} +{{- $fullname := include "common.names.fullname" . }} +{{- $releaseNamespace := .Release.Namespace }} +{{- $clusterDomain := .Values.clusterDomain }} +{{- $headlessServiceName := printf "%s-headless" (include "common.names.fullname" .) }} +{{- $altNames := list (printf "*.%s.%s.svc.%s" $fullname $releaseNamespace $clusterDomain) (printf "%s.%s.svc.%s" $fullname $releaseNamespace $clusterDomain) (printf "*.%s.%s.svc.%s" $headlessServiceName $releaseNamespace $clusterDomain) (printf "%s.%s.svc.%s" $headlessServiceName $releaseNamespace $clusterDomain) $fullname }} +{{- $crt := genSignedCert $fullname nil $altNames 365 $ca }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ printf "%s-crt" (include "common.names.fullname" .) }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +type: kubernetes.io/tls +data: + ca.crt: {{ $ca.Cert | b64enc | quote }} + tls.crt: {{ $crt.Cert | b64enc | quote }} + tls.key: {{ $crt.Key | b64enc | quote }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/values.schema.json b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/values.schema.json new file mode 100644 index 00000000..66a2a9dd --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/values.schema.json @@ -0,0 +1,103 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "postgresqlUsername": { + "type": "string", + "title": "Admin user", + "form": true + }, + "postgresqlPassword": { + "type": "string", + "title": "Password", + "form": true + }, + "persistence": { + "type": "object", + "properties": { + "size": { + "type": "string", + "title": "Persistent Volume Size", + "form": true, + "render": "slider", + "sliderMin": 1, + "sliderMax": 100, + "sliderUnit": "Gi" + } + } + }, + "resources": { + "type": "object", + "title": "Required Resources", + "description": "Configure resource requests", + "form": true, + "properties": { + "requests": { + "type": "object", + "properties": { + "memory": { + "type": "string", + "form": true, + "render": "slider", + "title": "Memory Request", + "sliderMin": 10, + "sliderMax": 2048, + "sliderUnit": "Mi" + }, + "cpu": { + "type": "string", + "form": true, + "render": "slider", + "title": "CPU Request", + "sliderMin": 10, + "sliderMax": 2000, + "sliderUnit": "m" + } + } + } + } + }, + "replication": { + "type": "object", + "form": true, + "title": "Replication Details", + "properties": { + "enabled": { + "type": "boolean", + "title": "Enable Replication", + "form": true + }, + "readReplicas": { + "type": "integer", + "title": "read Replicas", + "form": true, + "hidden": { + "value": false, + "path": "replication/enabled" + } + } + } + }, + "volumePermissions": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "form": true, + "title": "Enable Init Containers", + "description": "Change the owner of the persist volume mountpoint to RunAsUser:fsGroup" + } + } + }, + "metrics": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "title": "Configure metrics exporter", + "form": true + } + } + } + } +} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/values.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/values.yaml new file mode 100644 index 00000000..56d76df0 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/charts/postgresql/values.yaml @@ -0,0 +1,1001 @@ +## @section Global parameters +## Global Docker image parameters +## Please, note that this will override the image parameters, including dependencies, configured to use the global value +## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass +## + +## @param global.imageRegistry Global Docker image registry +## @param global.imagePullSecrets Global Docker registry secret names as an array +## @param global.storageClass Global StorageClass for Persistent Volume(s) +## +global: + imageRegistry: "" + ## E.g. + ## imagePullSecrets: + ## - myRegistryKeySecretName + ## + imagePullSecrets: [] + storageClass: "" + ## @param global.postgresql.postgresqlDatabase PostgreSQL database (overrides `postgresqlDatabase`) + ## @param global.postgresql.postgresqlUsername PostgreSQL username (overrides `postgresqlUsername`) + ## @param global.postgresql.existingSecret Name of existing secret to use for PostgreSQL passwords (overrides `existingSecret`) + ## @param global.postgresql.postgresqlPassword PostgreSQL admin password (overrides `postgresqlPassword`) + ## @param global.postgresql.servicePort PostgreSQL port (overrides `service.port` + ## @param global.postgresql.replicationPassword Replication user password (overrides `replication.password`) + ## + postgresql: + postgresqlDatabase: "" + postgresqlUsername: "" + existingSecret: "" + postgresqlPassword: "" + servicePort: "" + replicationPassword: "" + +## @section Common parameters +## + +## @param nameOverride String to partially override common.names.fullname template (will maintain the release name) +## +nameOverride: "" +## @param fullnameOverride String to fully override common.names.fullname template +## +fullnameOverride: "" +## @param extraDeploy Array of extra objects to deploy with the release (evaluated as a template) +## +extraDeploy: [] +## @param commonLabels Add labels to all the deployed resources +## +commonLabels: {} +## @param commonAnnotations Add annotations to all the deployed resources +## +commonAnnotations: {} + +## Enable diagnostic mode in the deployment +## +diagnosticMode: + ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden) + ## + enabled: false + ## @param diagnosticMode.command Command to override all containers in the deployment + ## + command: + - sleep + ## @param diagnosticMode.args Args to override all containers in the deployment + ## + args: + - infinity + +## @section PostgreSQL parameters +## + +## Bitnami PostgreSQL image version +## ref: https://hub.docker.com/r/bitnami/postgresql/tags/ +## @param image.registry PostgreSQL image registry +## @param image.repository PostgreSQL image repository +## @param image.tag PostgreSQL image tag (immutable tags are recommended) +## @param image.pullPolicy PostgreSQL image pull policy +## @param image.pullSecrets Specify image pull secrets +## @param image.debug Specify if debug values should be set +## +image: + registry: docker.io + repository: bitnami/postgresql + tag: 11.14.0-debian-10-r28 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## Example: + ## pullSecrets: + ## - myRegistryKeySecretName + ## + pullSecrets: [] + ## Set to true if you would like to see extra information on logs + ## It turns BASH and/or NAMI debugging in the image + ## + debug: false +## Init containers parameters: +## volumePermissions: Change the owner of the persist volume mountpoint to RunAsUser:fsGroup +## +volumePermissions: + ## @param volumePermissions.enabled Enable init container that changes volume permissions in the data directory (for cases where the default k8s `runAsUser` and `fsUser` values do not work) + ## + enabled: false + ## @param volumePermissions.image.registry Init container volume-permissions image registry + ## @param volumePermissions.image.repository Init container volume-permissions image repository + ## @param volumePermissions.image.tag Init container volume-permissions image tag (immutable tags are recommended) + ## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy + ## @param volumePermissions.image.pullSecrets Init container volume-permissions image pull secrets + ## + image: + registry: docker.io + repository: bitnami/bitnami-shell + tag: 10-debian-10-r305 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## Example: + ## pullSecrets: + ## - myRegistryKeySecretName + ## + pullSecrets: [] + ## Init container Security Context + ## @param volumePermissions.securityContext.runAsUser User ID for the init container + ## Note: the chown of the data folder is done to securityContext.runAsUser + ## and not the below volumePermissions.securityContext.runAsUser + ## When runAsUser is set to special value "auto", init container will try to chwon the + ## data folder to autodetermined user&group, using commands: `id -u`:`id -G | cut -d" " -f2` + ## "auto" is especially useful for OpenShift which has scc with dynamic userids (and 0 is not allowed). + ## You may want to use this volumePermissions.securityContext.runAsUser="auto" in combination with + ## pod securityContext.enabled=false and shmVolume.chmod.enabled=false + ## + securityContext: + runAsUser: 0 +## @param schedulerName Use an alternate scheduler, e.g. "stork". +## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ +## +schedulerName: "" +## @param lifecycleHooks for the PostgreSQL container to automate configuration before or after startup +## +lifecycleHooks: {} +## Pod Security Context +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ +## @param securityContext.enabled Enable security context +## @param securityContext.fsGroup Group ID for the pod +## +securityContext: + enabled: true + fsGroup: 1001 +## Container Security Context +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ +## @param containerSecurityContext.enabled Enable container security context +## @param containerSecurityContext.runAsUser User ID for the container +## +containerSecurityContext: + enabled: true + runAsUser: 1001 +## Pod Service Account +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ +## +serviceAccount: + ## @param serviceAccount.enabled Enable service account (Note: Service Account will only be automatically created if `serviceAccount.name` is not set) + ## + enabled: false + ## @param serviceAccount.name Name of an already existing service account. Setting this value disables the automatic service account creation + ## + name: "" + ## @param serviceAccount.autoMount Auto-mount the service account token in the pod + ## + autoMount: false +## Pod Security Policy +## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/ +## @param psp.create Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later +## +psp: + create: false +## Creates role for ServiceAccount +## Required for PSP +## @param rbac.create Create Role and RoleBinding (required for PSP to work) +## +rbac: + create: false +## @param replication.enabled Enable replication +## @param replication.user Replication user +## @param replication.password Replication user password +## @param replication.readReplicas Number of read replicas replicas +## @param replication.synchronousCommit Set synchronous commit mode. Allowed values: `on`, `remote_apply`, `remote_write`, `local` and `off` +## @param replication.numSynchronousReplicas Number of replicas that will have synchronous replication. Note: Cannot be greater than `replication.readReplicas`. +## @param replication.applicationName Cluster application name. Useful for advanced replication settings +## @param replication.singleService Create one service connecting to all read-replicas +## @param replication.uniqueServices Create a unique service for each independent read-replica +## +replication: + enabled: false + user: repl_user + password: repl_password + readReplicas: 1 + ## ref: https://www.postgresql.org/docs/9.6/runtime-config-wal.html#GUC-WAL-LEVEL + ## + synchronousCommit: "off" + ## NOTE: It cannot be > readReplicas + ## + numSynchronousReplicas: 0 + applicationName: my_application + singleService: true + uniqueServices: false +## @param postgresqlPostgresPassword PostgreSQL admin password (used when `postgresqlUsername` is not `postgres`, in which case`postgres` is the admin username) +## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md#creating-a-database-user-on-first-run (see note!) +## +postgresqlPostgresPassword: "" +## @param postgresqlUsername PostgreSQL user (has superuser privileges if username is `postgres`) +## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md#setting-the-root-password-on-first-run +## +postgresqlUsername: postgres +## @param postgresqlPassword PostgreSQL user password +## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md#setting-the-root-password-on-first-run +## +postgresqlPassword: "" +## @param existingSecret Name of existing secret to use for PostgreSQL passwords +## The secret has to contain the keys postgresql-password which is the password for postgresqlUsername when it is +## different of postgres, postgresql-postgres-password which will override postgresqlPassword, +## postgresql-replication-password which will override replication.password and postgresql-ldap-password which will be +## used to authenticate on LDAP. The value is evaluated as a template. +## e.g: +## existingSecret: secret +## +existingSecret: "" +## @param usePasswordFile Mount PostgreSQL secret as a file instead of passing environment variable +## +usePasswordFile: false +## @param postgresqlDatabase PostgreSQL database +## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md#creating-a-database-on-first-run +## +postgresqlDatabase: "" +## @param postgresqlDataDir PostgreSQL data dir folder +## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md +## +postgresqlDataDir: /bitnami/postgresql/data +## @param extraEnv An array to add extra environment variables +## For example: +## extraEnv: +## - name: FOO +## value: "bar" +## +extraEnv: [] +## @param extraEnvVarsCM Name of a Config Map containing extra environment variables +## +extraEnvVarsCM: "" +## @param postgresqlInitdbArgs PostgreSQL initdb extra arguments +## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md +## +postgresqlInitdbArgs: "" +## @param postgresqlInitdbWalDir Specify a custom location for the PostgreSQL transaction log +## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md +## +postgresqlInitdbWalDir: "" +## @param postgresqlConfiguration PostgreSQL configuration +## Specify runtime configuration parameters as a dict, using camelCase, e.g. +## {"sharedBuffers": "500MB"} +## Alternatively, you can put your postgresql.conf under the files/ directory +## ref: https://www.postgresql.org/docs/current/static/runtime-config.html +## +postgresqlConfiguration: {} +## @param postgresqlExtendedConf Extended Runtime Config Parameters (appended to main or default configuration) +## Alternatively, you can put your *.conf under the files/conf.d/ directory +## https://github.com/bitnami/bitnami-docker-postgresql#allow-settings-to-be-loaded-from-files-other-than-the-default-postgresqlconf +## +postgresqlExtendedConf: {} +## Configure current cluster's primary server to be the standby server in other cluster. +## This will allow cross cluster replication and provide cross cluster high availability. +## You will need to configure pgHbaConfiguration if you want to enable this feature with local cluster replication enabled. +## @param primaryAsStandBy.enabled Whether to enable current cluster's primary as standby server of another cluster or not +## @param primaryAsStandBy.primaryHost The Host of replication primary in the other cluster +## @param primaryAsStandBy.primaryPort The Port of replication primary in the other cluster +## +primaryAsStandBy: + enabled: false + primaryHost: "" + primaryPort: "" +## @param pgHbaConfiguration PostgreSQL client authentication configuration +## Specify content for pg_hba.conf +## Default: do not create pg_hba.conf +## Alternatively, you can put your pg_hba.conf under the files/ directory +## pgHbaConfiguration: |- +## local all all trust +## host all all localhost trust +## host mydatabase mysuser 192.168.0.0/24 md5 +## +pgHbaConfiguration: "" +## @param configurationConfigMap ConfigMap with PostgreSQL configuration +## NOTE: This will override postgresqlConfiguration and pgHbaConfiguration +## +configurationConfigMap: "" +## @param extendedConfConfigMap ConfigMap with PostgreSQL extended configuration +## +extendedConfConfigMap: "" +## @param initdbScripts Dictionary of initdb scripts +## Specify dictionary of scripts to be run at first boot +## Alternatively, you can put your scripts under the files/docker-entrypoint-initdb.d directory +## e.g: +## initdbScripts: +## my_init_script.sh: | +## #!/bin/sh +## echo "Do something." +## +initdbScripts: {} +## @param initdbScriptsConfigMap ConfigMap with scripts to be run at first boot +## NOTE: This will override initdbScripts +## +initdbScriptsConfigMap: "" +## @param initdbScriptsSecret Secret with scripts to be run at first boot (in case it contains sensitive information) +## NOTE: This can work along initdbScripts or initdbScriptsConfigMap +## +initdbScriptsSecret: "" +## @param initdbUser Specify the PostgreSQL username to execute the initdb scripts +## +initdbUser: "" +## @param initdbPassword Specify the PostgreSQL password to execute the initdb scripts +## +initdbPassword: "" + +## @param containerPorts.postgresql PostgreSQL container port +## +containerPorts: + postgresql: 5432 +## Audit settings +## https://github.com/bitnami/bitnami-docker-postgresql#auditing +## +audit: + ## @param audit.logHostname Log client hostnames + ## + logHostname: false + ## @param audit.logConnections Add client log-in operations to the log file + ## + logConnections: false + ## @param audit.logDisconnections Add client log-outs operations to the log file + ## + logDisconnections: false + ## @param audit.pgAuditLog Add operations to log using the pgAudit extension + ## + pgAuditLog: "" + ## @param audit.pgAuditLogCatalog Log catalog using pgAudit + ## + pgAuditLogCatalog: "off" + ## @param audit.clientMinMessages Message log level to share with the user + ## + clientMinMessages: error + ## @param audit.logLinePrefix Template for log line prefix (default if not set) + ## + logLinePrefix: "" + ## @param audit.logTimezone Timezone for the log timestamps + ## + logTimezone: "" +## @param postgresqlSharedPreloadLibraries Shared preload libraries (comma-separated list) +## +postgresqlSharedPreloadLibraries: "pgaudit" +## @param postgresqlMaxConnections Maximum total connections +## +postgresqlMaxConnections: "" +## @param postgresqlPostgresConnectionLimit Maximum connections for the postgres user +## +postgresqlPostgresConnectionLimit: "" +## @param postgresqlDbUserConnectionLimit Maximum connections for the non-admin user +## +postgresqlDbUserConnectionLimit: "" +## @param postgresqlTcpKeepalivesInterval TCP keepalives interval +## +postgresqlTcpKeepalivesInterval: "" +## @param postgresqlTcpKeepalivesIdle TCP keepalives idle +## +postgresqlTcpKeepalivesIdle: "" +## @param postgresqlTcpKeepalivesCount TCP keepalives count +## +postgresqlTcpKeepalivesCount: "" +## @param postgresqlStatementTimeout Statement timeout +## +postgresqlStatementTimeout: "" +## @param postgresqlPghbaRemoveFilters Comma-separated list of patterns to remove from the pg_hba.conf file +## Cannot be used with custom pg_hba.conf +## +postgresqlPghbaRemoveFilters: "" +## @param terminationGracePeriodSeconds Seconds the pod needs to terminate gracefully +## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods +## e.g: +## terminationGracePeriodSeconds: 30 +## +terminationGracePeriodSeconds: "" +## LDAP configuration +## @param ldap.enabled Enable LDAP support +## @param ldap.url LDAP URL beginning in the form `ldap[s]://host[:port]/basedn` +## @param ldap.server IP address or name of the LDAP server. +## @param ldap.port Port number on the LDAP server to connect to +## @param ldap.prefix String to prepend to the user name when forming the DN to bind +## @param ldap.suffix String to append to the user name when forming the DN to bind +## @param ldap.baseDN Root DN to begin the search for the user in +## @param ldap.bindDN DN of user to bind to LDAP +## @param ldap.bind_password Password for the user to bind to LDAP +## @param ldap.search_attr Attribute to match against the user name in the search +## @param ldap.search_filter The search filter to use when doing search+bind authentication +## @param ldap.scheme Set to `ldaps` to use LDAPS +## @param ldap.tls Set to `1` to use TLS encryption +## +ldap: + enabled: false + url: "" + server: "" + port: "" + prefix: "" + suffix: "" + baseDN: "" + bindDN: "" + bind_password: "" + search_attr: "" + search_filter: "" + scheme: "" + tls: "" +## PostgreSQL service configuration +## +service: + ## @param service.type Kubernetes Service type + ## + type: ClusterIP + ## @param service.clusterIP Static clusterIP or None for headless services + ## e.g: + ## clusterIP: None + ## + clusterIP: "" + ## @param service.port PostgreSQL port + ## + port: 5432 + ## @param service.nodePort Specify the nodePort value for the LoadBalancer and NodePort service types + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport + ## + nodePort: "" + ## @param service.annotations Annotations for PostgreSQL service + ## + annotations: {} + ## @param service.loadBalancerIP Load balancer IP if service type is `LoadBalancer` + ## Set the LoadBalancer service type to internal only + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer + ## + loadBalancerIP: "" + ## @param service.externalTrafficPolicy Enable client source IP preservation + ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip + ## + externalTrafficPolicy: Cluster + ## @param service.loadBalancerSourceRanges Addresses that are allowed when service is LoadBalancer + ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service + ## + ## loadBalancerSourceRanges: + ## - 10.10.10.0/24 + ## + loadBalancerSourceRanges: [] +## Start primary and read(s) pod(s) without limitations on shm memory. +## By default docker and containerd (and possibly other container runtimes) +## limit `/dev/shm` to `64M` (see e.g. the +## [docker issue](https://github.com/docker-library/postgres/issues/416) and the +## [containerd issue](https://github.com/containerd/containerd/issues/3654), +## which could be not enough if PostgreSQL uses parallel workers heavily. +## +shmVolume: + ## @param shmVolume.enabled Enable emptyDir volume for /dev/shm for primary and read replica(s) Pod(s) + ## Set `shmVolume.enabled` to `true` to mount a new tmpfs volume to remove the above limitation. + ## + enabled: true + ## @param shmVolume.chmod.enabled Set to `true` to `chmod 777 /dev/shm` on a initContainer (ignored if `volumePermissions.enabled` is `false`) + ## + chmod: + enabled: true + ## @param shmVolume.sizeLimit Set this to enable a size limit on the shm tmpfs. Note that the size of the tmpfs counts against container's memory limit + ## e.g: + ## sizeLimit: 1Gi + ## + sizeLimit: "" +persistence: + ## @param persistence.enabled Enable persistence using PVC + ## + enabled: true + ## @param persistence.existingClaim Provide an existing `PersistentVolumeClaim`, the value is evaluated as a template. + ## If defined, PVC must be created manually before volume will be bound + ## The value is evaluated as a template, so, for example, the name can depend on .Release or .Chart + ## + existingClaim: "" + ## @param persistence.mountPath The path the volume will be mounted at, useful when using different + ## PostgreSQL images. + ## + mountPath: /bitnami/postgresql + ## @param persistence.subPath The subdirectory of the volume to mount to + ## Useful in dev environments and one PV for multiple services + ## + subPath: "" + ## @param persistence.storageClass PVC Storage Class for PostgreSQL volume + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + storageClass: "" + ## @param persistence.accessModes PVC Access Mode for PostgreSQL volume + ## + accessModes: + - ReadWriteOnce + ## @param persistence.snapshotName Provide a VolumeSnapshot name which to create the PVC + ## The same snapshot will be used for the primary and any read replicas + ## ref: https://kubernetes.io/docs/concepts/storage/volume-snapshots/ + ## + snapshotName: "" + ## @param persistence.size PVC Storage Request for PostgreSQL volume + ## + size: 8Gi + ## @param persistence.annotations Annotations for the PVC + ## + annotations: {} + ## @param persistence.selector Selector to match an existing Persistent Volume (this value is evaluated as a template) + ## selector: + ## matchLabels: + ## app: my-app + ## + selector: {} +## @param updateStrategy.type updateStrategy for PostgreSQL StatefulSet and its reads StatefulSets +## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies +## +updateStrategy: + type: RollingUpdate +## +## PostgreSQL Primary parameters +## +primary: + ## @param primary.podAffinityPreset PostgreSQL primary pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity + ## + podAffinityPreset: "" + ## @param primary.podAntiAffinityPreset PostgreSQL primary pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity + ## + podAntiAffinityPreset: soft + ## PostgreSQL Primary node affinity preset + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity + ## + nodeAffinityPreset: + ## @param primary.nodeAffinityPreset.type PostgreSQL primary node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` + ## + type: "" + ## @param primary.nodeAffinityPreset.key PostgreSQL primary node label key to match Ignored if `primary.affinity` is set. + ## E.g. + ## key: "kubernetes.io/e2e-az-name" + ## + key: "" + ## @param primary.nodeAffinityPreset.values PostgreSQL primary node label values to match. Ignored if `primary.affinity` is set. + ## E.g. + ## values: + ## - e2e-az1 + ## - e2e-az2 + ## + values: [] + ## @param primary.affinity Affinity for PostgreSQL primary pods assignment + ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity + ## Note: primary.podAffinityPreset, primary.podAntiAffinityPreset, and primary.nodeAffinityPreset will be ignored when it's set + ## + affinity: {} + ## @param primary.nodeSelector Node labels for PostgreSQL primary pods assignment + ## ref: https://kubernetes.io/docs/user-guide/node-selection/ + ## + nodeSelector: {} + ## @param primary.tolerations Tolerations for PostgreSQL primary pods assignment + ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ + ## + tolerations: [] + ## @param primary.extraPodSpec Optionally specify extra PodSpec + ## + extraPodSpec: {} + ## @param primary.labels Map of labels to add to the statefulset (postgresql primary) + ## + labels: {} + ## @param primary.annotations Annotations for PostgreSQL primary pods + ## + annotations: {} + ## @param primary.podLabels Map of labels to add to the pods (postgresql primary) + ## + podLabels: {} + ## @param primary.podAnnotations Map of annotations to add to the pods (postgresql primary) + ## + podAnnotations: {} + ## @param primary.priorityClassName Priority Class to use for each pod (postgresql primary) + ## + priorityClassName: "" + ## @param primary.extraInitContainers Extra init containers to add to the pods (postgresql primary) + ## Example + ## + ## extraInitContainers: + ## - name: do-something + ## image: busybox + ## command: ['do', 'something'] + ## + extraInitContainers: [] + ## @param primary.extraVolumeMounts Extra volume mounts to add to the pods (postgresql primary) + ## + extraVolumeMounts: [] + ## @param primary.extraVolumes Extra volumes to add to the pods (postgresql primary) + ## + extraVolumes: [] + ## @param primary.sidecars Extra containers to the pod + ## For example: + ## sidecars: + ## - name: your-image-name + ## image: your-image + ## imagePullPolicy: Always + ## ports: + ## - name: portname + ## containerPort: 1234 + ## + sidecars: [] + ## Override the service configuration for primary + ## @param primary.service.type Allows using a different service type for primary + ## @param primary.service.nodePort Allows using a different nodePort for primary + ## @param primary.service.clusterIP Allows using a different clusterIP for primary + ## + service: + type: "" + nodePort: "" + clusterIP: "" +## PostgreSQL read only replica parameters +## +readReplicas: + ## @param readReplicas.podAffinityPreset PostgreSQL read only pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity + ## + podAffinityPreset: "" + ## @param readReplicas.podAntiAffinityPreset PostgreSQL read only pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity + ## + podAntiAffinityPreset: soft + ## PostgreSQL read only node affinity preset + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity + ## + nodeAffinityPreset: + ## @param readReplicas.nodeAffinityPreset.type PostgreSQL read only node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard` + ## + type: "" + ## @param readReplicas.nodeAffinityPreset.key PostgreSQL read only node label key to match Ignored if `primary.affinity` is set. + ## E.g. + ## key: "kubernetes.io/e2e-az-name" + ## + key: "" + ## @param readReplicas.nodeAffinityPreset.values PostgreSQL read only node label values to match. Ignored if `primary.affinity` is set. + ## E.g. + ## values: + ## - e2e-az1 + ## - e2e-az2 + ## + values: [] + ## @param readReplicas.affinity Affinity for PostgreSQL read only pods assignment + ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity + ## Note: readReplicas.podAffinityPreset, readReplicas.podAntiAffinityPreset, and readReplicas.nodeAffinityPreset will be ignored when it's set + ## + affinity: {} + ## @param readReplicas.nodeSelector Node labels for PostgreSQL read only pods assignment + ## ref: https://kubernetes.io/docs/user-guide/node-selection/ + ## + nodeSelector: {} + ## @param readReplicas.tolerations Tolerations for PostgreSQL read only pods assignment + ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ + ## + tolerations: [] + ## @param readReplicas.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template + ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods + ## + topologySpreadConstraints: [] + ## @param readReplicas.extraPodSpec Optionally specify extra PodSpec + ## + extraPodSpec: {} + ## @param readReplicas.labels Map of labels to add to the statefulsets (postgresql readReplicas) + ## + labels: {} + ## @param readReplicas.annotations Annotations for PostgreSQL read only pods + ## + annotations: {} + ## @param readReplicas.podLabels Map of labels to add to the pods (postgresql readReplicas) + ## + podLabels: {} + ## @param readReplicas.podAnnotations Map of annotations to add to the pods (postgresql readReplicas) + ## + podAnnotations: {} + ## @param readReplicas.priorityClassName Priority Class to use for each pod (postgresql readReplicas) + ## + priorityClassName: "" + ## @param readReplicas.extraInitContainers Extra init containers to add to the pods (postgresql readReplicas) + ## Example + ## + ## extraInitContainers: + ## - name: do-something + ## image: busybox + ## command: ['do', 'something'] + ## + extraInitContainers: [] + ## @param readReplicas.extraVolumeMounts Extra volume mounts to add to the pods (postgresql readReplicas) + ## + extraVolumeMounts: [] + ## @param readReplicas.extraVolumes Extra volumes to add to the pods (postgresql readReplicas) + ## + extraVolumes: [] + ## @param readReplicas.sidecars Extra containers to the pod + ## + ## For example: + ## sidecars: + ## - name: your-image-name + ## image: your-image + ## imagePullPolicy: Always + ## ports: + ## - name: portname + ## containerPort: 1234 + ## + sidecars: [] + ## Override the service configuration for read + ## @param readReplicas.service.type Allows using a different service type for readReplicas + ## @param readReplicas.service.nodePort Allows using a different nodePort for readReplicas + ## @param readReplicas.service.clusterIP Allows using a different clusterIP for readReplicas + ## + service: + type: "" + nodePort: "" + clusterIP: "" + ## @param readReplicas.persistence.enabled Whether to enable PostgreSQL read replicas replicas persistence + ## + persistence: + enabled: true + ## @param readReplicas.resources CPU/Memory resource requests/limits override for readReplicass. Will fallback to `values.resources` if not defined. + ## + resources: {} +## Configure resource requests and limits +## ref: https://kubernetes.io/docs/user-guide/compute-resources/ +## @param resources.requests [object] The requested resources for the container +## +resources: + requests: + memory: 256Mi + cpu: 250m +networkPolicy: + ## @param networkPolicy.enabled Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now. + ## + enabled: false + ## @param networkPolicy.allowExternal Don't require client label for connections + ## The Policy model to apply. When set to false, only pods with the correct + ## client label will have network access to the port PostgreSQL is listening + ## on. When true, PostgreSQL will accept connections from any source + ## (with the correct destination port). + ## + allowExternal: true + ## @param networkPolicy.explicitNamespacesSelector A Kubernetes LabelSelector to explicitly select namespaces from which ingress traffic could be allowed + ## If explicitNamespacesSelector is missing or set to {}, only client Pods that are in the networkPolicy's namespace + ## and that match other criteria, the ones that have the good label, can reach the DB. + ## But sometimes, we want the DB to be accessible to clients from other namespaces, in this case, we can use this + ## LabelSelector to select these namespaces, note that the networkPolicy's namespace should also be explicitly added. + ## + ## Example: + ## explicitNamespacesSelector: + ## matchLabels: + ## role: frontend + ## matchExpressions: + ## - {key: role, operator: In, values: [frontend]} + ## + explicitNamespacesSelector: {} +## Configure extra options for startup probe +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes +## @param startupProbe.enabled Enable startupProbe +## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe +## @param startupProbe.periodSeconds Period seconds for startupProbe +## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe +## @param startupProbe.failureThreshold Failure threshold for startupProbe +## @param startupProbe.successThreshold Success threshold for startupProbe +## +startupProbe: + enabled: false + initialDelaySeconds: 30 + periodSeconds: 15 + timeoutSeconds: 5 + failureThreshold: 10 + successThreshold: 1 +## Configure extra options for liveness probe +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes +## @param livenessProbe.enabled Enable livenessProbe +## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe +## @param livenessProbe.periodSeconds Period seconds for livenessProbe +## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe +## @param livenessProbe.failureThreshold Failure threshold for livenessProbe +## @param livenessProbe.successThreshold Success threshold for livenessProbe +## +livenessProbe: + enabled: true + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 6 + successThreshold: 1 +## Configure extra options for readiness probe +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes +## @param readinessProbe.enabled Enable readinessProbe +## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe +## @param readinessProbe.periodSeconds Period seconds for readinessProbe +## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe +## @param readinessProbe.failureThreshold Failure threshold for readinessProbe +## @param readinessProbe.successThreshold Success threshold for readinessProbe +## +readinessProbe: + enabled: true + initialDelaySeconds: 5 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 6 + successThreshold: 1 +## @param customStartupProbe Override default startup probe +## +customStartupProbe: {} +## @param customLivenessProbe Override default liveness probe +## +customLivenessProbe: {} +## @param customReadinessProbe Override default readiness probe +## +customReadinessProbe: {} +## +## TLS configuration +## +tls: + ## @param tls.enabled Enable TLS traffic support + ## + enabled: false + ## @param tls.autoGenerated Generate automatically self-signed TLS certificates + ## + autoGenerated: false + ## @param tls.preferServerCiphers Whether to use the server's TLS cipher preferences rather than the client's + ## + preferServerCiphers: true + ## @param tls.certificatesSecret Name of an existing secret that contains the certificates + ## + certificatesSecret: "" + ## @param tls.certFilename Certificate filename + ## + certFilename: "" + ## @param tls.certKeyFilename Certificate key filename + ## + certKeyFilename: "" + ## @param tls.certCAFilename CA Certificate filename + ## If provided, PostgreSQL will authenticate TLS/SSL clients by requesting them a certificate + ## ref: https://www.postgresql.org/docs/9.6/auth-methods.html + ## + certCAFilename: "" + ## @param tls.crlFilename File containing a Certificate Revocation List + ## + crlFilename: "" +## Configure metrics exporter +## +metrics: + ## @param metrics.enabled Start a prometheus exporter + ## + enabled: false + ## @param metrics.resources Prometheus exporter container resources + ## + resources: {} + ## @param metrics.service.type Kubernetes Service type + ## @param metrics.service.annotations [object] Additional annotations for metrics exporter pod + ## @param metrics.service.loadBalancerIP loadBalancerIP if redis metrics service type is `LoadBalancer` + ## + service: + type: ClusterIP + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9187" + loadBalancerIP: "" + ## @param metrics.serviceMonitor.enabled Set this to `true` to create ServiceMonitor for Prometheus operator + ## @param metrics.serviceMonitor.additionalLabels Additional labels that can be used so ServiceMonitor will be discovered by Prometheus + ## @param metrics.serviceMonitor.namespace Optional namespace in which to create ServiceMonitor + ## @param metrics.serviceMonitor.interval Scrape interval. If not set, the Prometheus default scrape interval is used + ## @param metrics.serviceMonitor.scrapeTimeout Scrape timeout. If not set, the Prometheus default scrape timeout is used + ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping + ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion + ## + serviceMonitor: + enabled: false + additionalLabels: {} + namespace: "" + interval: "" + scrapeTimeout: "" + relabelings: [] + metricRelabelings: [] + ## Custom PrometheusRule to be defined + ## The value is evaluated as a template, so, for example, the value can depend on .Release or .Chart + ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions + ## + prometheusRule: + ## @param metrics.prometheusRule.enabled Set this to true to create prometheusRules for Prometheus operator + ## + enabled: false + ## @param metrics.prometheusRule.additionalLabels Additional labels that can be used so prometheusRules will be discovered by Prometheus + ## + additionalLabels: {} + ## @param metrics.prometheusRule.namespace namespace where prometheusRules resource should be created + ## + namespace: "" + ## @param metrics.prometheusRule.rules Create specified [Rules](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/) + ## Make sure to constraint the rules to the current postgresql service. + ## rules: + ## - alert: HugeReplicationLag + ## expr: pg_replication_lag{service="{{ template "common.names.fullname" . }}-metrics"} / 3600 > 1 + ## for: 1m + ## labels: + ## severity: critical + ## annotations: + ## description: replication for {{ template "common.names.fullname" . }} PostgreSQL is lagging by {{ "{{ $value }}" }} hour(s). + ## summary: PostgreSQL replication is lagging by {{ "{{ $value }}" }} hour(s). + ## + rules: [] + ## @param metrics.image.registry PostgreSQL Exporter image registry + ## @param metrics.image.repository PostgreSQL Exporter image repository + ## @param metrics.image.tag PostgreSQL Exporter image tag (immutable tags are recommended) + ## @param metrics.image.pullPolicy PostgreSQL Exporter image pull policy + ## @param metrics.image.pullSecrets Specify image pull secrets + ## + image: + registry: docker.io + repository: bitnami/postgres-exporter + tag: 0.10.0-debian-10-r172 + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## Example: + ## pullSecrets: + ## - myRegistryKeySecretName + ## + pullSecrets: [] + ## @param metrics.customMetrics Define additional custom metrics + ## ref: https://github.com/wrouesnel/postgres_exporter#adding-new-metrics-via-a-config-file + ## customMetrics: + ## pg_database: + ## query: "SELECT d.datname AS name, CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_database_size(d.datname) ELSE 0 END AS size_bytes FROM pg_catalog.pg_database d where datname not in ('template0', 'template1', 'postgres')" + ## metrics: + ## - name: + ## usage: "LABEL" + ## description: "Name of the database" + ## - size_bytes: + ## usage: "GAUGE" + ## description: "Size of the database in bytes" + ## + customMetrics: {} + ## @param metrics.extraEnvVars Extra environment variables to add to postgres-exporter + ## see: https://github.com/wrouesnel/postgres_exporter#environment-variables + ## For example: + ## extraEnvVars: + ## - name: PG_EXPORTER_DISABLE_DEFAULT_METRICS + ## value: "true" + ## + extraEnvVars: [] + ## Pod Security Context + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + ## @param metrics.securityContext.enabled Enable security context for metrics + ## @param metrics.securityContext.runAsUser User ID for the container for metrics + ## + securityContext: + enabled: false + runAsUser: 1001 + ## Configure extra options for liveness probe + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes + ## @param metrics.livenessProbe.enabled Enable livenessProbe + ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe + ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe + ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe + ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe + ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe + ## + livenessProbe: + enabled: true + initialDelaySeconds: 5 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 6 + successThreshold: 1 + ## Configure extra options for readiness probe + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes + ## @param metrics.readinessProbe.enabled Enable readinessProbe + ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe + ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe + ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe + ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe + ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe + ## + readinessProbe: + enabled: true + initialDelaySeconds: 5 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 6 + successThreshold: 1 diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/powerdns-5.0.0.tgz b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/powerdns-5.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..09375d596f10707b19106f9429a089a2e563b6ab GIT binary patch literal 322335 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%0DM;(h0A$Rc$ywKi=l%o;m#A-9FoQbX3; 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

p*9mbnn~ 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%0A<3b`D2nHYUL%=ngmO?LRGl4P@Vp9xEd^XzDE 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

#+2m{;Yrh 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%0D-r@@|-DeBmPZk98iF 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⁣fNCr}fkZI~%FbOW(@*ESYmv@0Yve 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%0AT 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 z%0D+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

SZWJgH%$_|rmAD6bH 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·+4+8{<;pYl1=CY(mi?L~b*|8Q?xdT!w*&ff zZFfKCy6gSgL8g^iX3je62{LnBBOTuqw7O2om zaAm=?Ttl}ug-waGI+U_a89r{jaCxr8IgkAFI#)BMo!QvaeCDA+g_32g`K%>h-sO3` zJ2x?Z|tQCJ7gictLt^aG;+Zhwyt6HBtC%Wf@h4^ESBM+X;Rdlj8 ztFWJ<<`yZo`DQWqlAY6HPVC*bt?zHj&D>nW1xIgBar0dspt4YF>*2lElAaz}XwMYY zddc9zBk332QMD{S9v%$AufW(qU;r`P&Kr7`Z3(5D6e zS|{JXV7hnVITzLw&C;*zcWImQ1?J0~^6J&oyt=q-{lt?`c)BFBcd;nV-5}Sj$@KsG z3AT^M_vclb*%Y~^@0cD_Q4pIsuj2ponG59(h%-jM-}TMw&4n_Ft___MkK}!MoJxcq z|H~8UnIsp~oz^EkKj3TM!|X=Y6(U=NescBw(*3mdd-;CR-;5U`S0C4Cz91t0-f8o- z@6zuj=RUAq&+*Ihs)^&AvV%h3&i=X5!_=<#?8~ZkSGuw$Z}WD3@O+t}Q~ocvkULz- zhxash|Mt3iw(H#1-|jz4-^o{VzK}Japz?q6p?zj5e*<-H=XSk$kk}@2_C})h_N!a$ zc6qYVI|&B^wNuxfQv%2%gzyrLuE|{an9`qCsbK@7$@3nEv6; zQHQws+y$kg&zS=CdBu+`)!pfKqW9G^5t)sr*Qs>}=ZmD@6}iNpwe4?;Z`6Nn1*Ydk zzB?C~7;epG+on{y{FiS5Ee=c9URz zP`hLg=MN(hHnB(pv*yCvX$Eh7JK4@8v?ZB*__BSnv~=uJ(MoQ2`OxRI#R_)^(TD(J`T*KmHqsWYkE;#-dkyM~I~Y&BWA zcj?(rdYUrFChp%OFOU{`&3T98=fj4*kLUIDC!J2+b@E19Hp8|L$6xje@Ro&Nx+AH> zXXvzUN21Jw`2w>JEBGXHgqye&&%Y+>R~%pWpPQu`P|-@A10LEe)Kjh z9jN<>U`UD*r`^G+ntf-?c8URy*kNu2QjX_T5#U2G@I* ze%aZ~x2)~N#h|u6(}n)aChTUr(qry_eCdZ<-A%ULPM?>}5B&4zG(%WepT={Oi+lwy zUObgd=h2kw`}i`&ryk0?NYp8GWZ8L$rpTpmrn4Z$M(8g|=`qhomrhQj7&Z#Q;jB|4h0Z|E9TY+PW_9Ds|S$A1^=otN-G{?rB+9CznpVbs%FQ zbMBVJN7pCK_P7=F^3}17RPSYe$78M1a+oB(%j+D|_@^&E zTGaoj{rR;~F8%xW%|{RaNpn42y(>=7?yUT?)2#FIGPnJ3oBzDq-_kJUkl~+O6$kkz zM5&}mO0S)9pW((1#(<0+SEOT`rr+I`b$Ux_^*6DS6^Ze$6`FY(!WVX5+}fwL%-nv0 z)}|bznKloOe)an)wPo6i1xkLqzOH(9?x*;bKjn;?$uZ(V_q)F5!~}2dHHtJBWA|d_ zKh$T;pvS89nEJna!=oIQk)rUrIQ&b6=rrmYlbI} z>f&>)COH?{OnzJnbt-h5f7_JhQHL12hmrrrgkQNquCA;0+*^F?1@Cm*Ux(L=F>%ke zaenKTA3gubnS&ai$|^jThj~fgSSPbYtl`7)7fzMoGE2E5g`Dz#E&hFu&+9DPluIiW zR@@I>DK+uI5#G5gi=6DLH?A{|ImjXXKC4jpcg2K11r05iBVW#+F^yq++jN7_!rT9Q zXT&St&YJP@iALh$q?UEUGr5;D%2cJeud`frO1xmTM{DD4w!IE1hwt%M9%=W~wC9XuwF*-*)WTk^I@Rq&RR7#dn*-@r_&^A-!65F@xHxsX< zdCq?T7v1 zm$N$7iXT(2aC0-t`7Kyw2?2&#mH~UQD z>&CFBr^0GXFH98Od^}2mN&50yv4XX>hpk)rfob?d2ZZ)ziN$y|OQ-*Gs(ZPYUm(o{QJlWi1SuX69Jqxz@asNY(-_O5!&$+(q3v2VjZ;oyrG7ENVX@h{Vw)X47FFN<-yHYl2Qsy?II`aI5LXr*?6N?18NRP@dK zgY-h|Dht29`MLV_^XCmZqV@BaF4I|j=+9a|t{2Z92^_6HkSeLqaM)yD_a~(;^VY`l z(7qk_L_Mdb%q|Rh_WG5c9*;w$YHFxT_bx7ur86As|1vqOvgkgiw|?>J*PCA)KmB_3 zYr_LSp1!&}KYo9`_}`+R-`+l5T^@dZ{o?ESi__P~|1J6Y?$uZAA77Wh_;fXX@&6rF zUoTr2IjChEtGOlKVXrV#fs>anx+K@9;eb_o%c;GQYOhl`|DG}{-D7xBZNI52+uhD@ z%WkNu@}+RTSj*rw>&+ysbuTk2T@Pc`z8_b0R$tooDMwn|`oM>4DWV6v z%9eG77mE5XIJMZlAtNqi;>lNY>&|=s-PXT4cb1Oa+U^?h(01EJYU|tjm458`{d)HE z&FS@Z|9D<}c%NKVGE?@)Y5$X(9_8yd-23xZl}DXV{BOnHsFXs(XG!?!T&rI*S_~w>~=Nz?qb^(J4iY$w|uhmUUxA62e?2EfRP}?q$nsRVRD<(gPn4b*=os#fN!n{}m>?N@fup`*rAZ$f z-`<0~PQM;Le|>%ZqU;$TcUwfwES;np@p&abo3xVv!^ug_H@WPa-Bup7_>~hM)Tp&G z$ascZhvSd5)KjSw1*%K;-A`uss(4!Up#1H!z?i3kAr4{3xXj~YW@@c}^yQJigOPEP z*SU3$YO{o_)SUk(Zt(o$+!&0BWzL0<7|4|nv-oh{1kQjy%Ut#7)A=u^`}+b${! zsRgi|GQT&a!(z`wIhprQPg|{>RGW3LiNTohTJs0lBrA;<(!9r~Pn^(sbN%MW&ChNx z*v&j6$Gz(2gN6n3n}v4FVJn{aeC78&1|MJ9oWJD!`zqg$^6>ZPyk`{q_DL=IY4k2> z>p{Paf_J5RADd3HRuC8cxhSMA+e^sr`)2oub;*ZhmP(2`hAJ=%mfYH6bxtn-k@KwM ztLI(J-J>cd$THKp<@hJ7)qSP6#S}PHKcD#+_p6qRef@gpmM+m{-+NtFD=ggR?BYFD zk?+0q?Qre7ex~o-iU}gy3un0zyXwm0G>#t4O@V2$z)ob_8wiTHVPfXq&x!&^m z?5hr?T8}=vPCB?C=g_GIVfT6_UcG*D`CP`%pUTq@3H`TiNfN)2_W5mPWpZ|%WO>Ji z;|uE2m@hPE8};l{R5gg2k=nCO`2U(`_FtwbnQzm+dh3dC9Xx0B z&?&vzxVY$Np#HIG!gWRqo-{NTulc$-)mev2)9Q7U%$?gQSEF(rA7A%c^}$^HwbYcu zzfY~}$s5~Qbi=kse#;$ihJZ2(O_T5%Hy*9~R;YN_!?IT|W zcTZR_@w6VZ%C-_|sZBegZ=G8@pR+k~!q*-b2VIq0Y74fDpVqB3+riJ$6*2cNf5htk z3$kk&4F!$9=LbLeIr%W&(CLLs_G*<)z{96nt0rH=A|{CH8!;ymJ6$kE!&XO5g(S;`+s&) z#Hm-NZPG^Ziph*$pDg5Bxdo zD(vm<^v6bwaq4x=Uu_HTM@RTMu&CO+4SOc0;t|GN$T#uk!=lIM-IOZ!G0)tx!hAAA zk+}MgX8A<+#SfqBFV2{Hn8#J@=220dn$x>9HXK-RzT;~DA!mhV&JF5U z$@pfW#4d4OKg6ez*&%>K-$_2BuJOZ(MK^hBt2WQ{)8c2-z4xZ=N!^j{g_ADn_{O-p z%Sok8ld^g-E%)Yp%b5#3%x`8XRVbVHZqU7HK9i~M#mAb%aSy(0Jk`6lA~bQK&j08) zY17ozQp--R*PP|jn7!5T@Vy}Ey_asx_MLuo8IR@ZZ6DVyH|u&Z7`hOnL zHe^^mJv6q%MfdXtY5)0ly>|Rb7n0b!4~j3)<*Da8&Gn~`UHrqE-Tz1 zW(|qH7tO0?eoKt`GJ8T#d^mH0g2rXm+(!zDj%}<9F4XMr4L&?6KYqq-7O^GrOiN|DFElf9 zg&#`O6qr8itoQEA&%@HUPiULmZBqUw?RfBu((;?dlNnVGEZ-gU{`Gd3E$Iy|&y(sV zNw5W4i8M8u*tyDB8}dXg>4?ARb<%*3^_}UavNfzO*{-Eq5;)tVOpB&x8i=nb-O*na zqHsIx{=~H>byxVc`<7^1s$XRNt)}1~y;LUh+J=y_3#?D0?q|6;F;(gQy?@B5DWKr@ z&nf>_s~??sGpnmS;lEla!^hQ`PO{Ysfk({tIxW`py=k#kt@N-(u4J##*?_Ole@#_b@!R+oR%z7c|9CkO0Os$y}~kUlWH2* zmD3KtW)+991WK;_zG&Uz6D_Js+|t`!XB}eXa*lguw6bDT)|TdUd(M^X3PUYs2As@G z59_dhC6aA$c~NQ56qWbaPA*HEGlAjeu{+MY%`}9jap--K6?~D-GRd~DIDJdB{Dl17 z-r3U@u=sUwWyeQ~-}CZp{(8Rt&-+W4IwTp61-3Bh%@OUHADhS-=O1g{&>GR-nz~^oYi#N_{6J>Sn(~3F8b+~alhpLzi^tn?&9g2 zvqL`r4KJ?W+1eKVGq&tJM^t$C=lQ$_66w>Mo1B8C%F3VXb$9U={?asABy~ad9bV2K ziHX;CT6_&yu=&>M!yL;PzE-D3d~~Ura>H+%$?=~~)(3?bS>EDt_B5oC*$Y zF4;VHAM33@V|SMSkk#VCEi1Imo;0kHo-7zCET6rm|A|<|v}G3@1Ma(B(b0OCwrM8E z-R~P(bhobvJ-nfAjrg(?KB)Iswx@+IPpLj-EwRK`aQ&Idht@1SAjS}W z`ecgI;cCya)o%ME+gC^(=APkv!N%i+rm>_+PZsOXW1ai2$Vqkur-|!t_e@)}K~5DP^)S8Dbg-;DF;?a9yG1it zq$YfrZ7mRYpTkDgXr}UtBZhy&CeARrbIzl7=Yk6+TW9c9N_YMjvXDCCqMg9Jw?(Qu zxTI(C7j`Y~{@VT?%|o|5uL(`tzE?+^tLbJ`*CUU^n?jx_d~?w1JE7ca`gYbj-tKv! zN9BE&=V;xO>zVG|vp<9T@b_v1U0$CHtMvS*wMs1a>aOqAX=f-|n^LZjTVATWFUS2f z1M3HmHPd&-b~n6ub?W#E#y8UEq%#i85bce)ey&wdOD9^u_MxfP%WIYWl8oAy?q95V zmCnf~w4s&f>ZuQ_4xj#e^V*Tjt+tyt-_AA`Gg!d%TcYam9JxKbHeoXzwyfj{TX{;v ze)=o>Ep7rSYu-p{2s)Sc?W(S04-w^*I9qA=nOpDVt*-l*eu_yvj@h{DN16Hj@{Pit zPPYtdIjl8*GjzJn*rk|NEaX`gBHfoi+x6Mx$VYL#B>}%&9z>>`eV*&ucb)l>`<$z# z+uV2e$?6AHKFvM5D7<;EPwKrWXK^=MyRh0f;ubnVDeDZnHx6&*z%{Z5+CQV@PHP3`^j zs*9Gp+RD#)TdPk!WTB~Vn|N9;Cy|5c>GAgrhi5N6a&nE$!(+;Rx7E@*_Z@hYa8zUc z@f(dTx}yG(1&pFQSmu~K|MqjAU*)BU{ARuIc^Z9hOGKtmSaI#n;j;V#cNmM*{d$F} zCLUXzv!=?d=q8?SzdZxCUMP(7uz;jfMCVwEEo zT%K%OGy8=}zQ9K2%>O$wkF0y{p0o1QLZeg_#ReU<7nhiCgHBS7_XL$?vW073 z3O8r4=j1dn$XV4gSLSLxIrC}t9=%KJq)fJ0t9@v>V{cpk`PGVfWJ6{N3y)SbY-%+%m#Ha?tE%oFlzwjfal+hqyf`udQo%{ZxB}n@{!~Y0cW2DbW9S|C@zZJNquodGqZ{nC#Spe*A(3`>$K9lI7aQ z7jf^F@pa9oukUe~&f!lK_SpOT)&ax!ta`8aUk(&M`_p{>;vKWjn{L~{;k45;`b!RL z%yVgmcdyI18iHOQH^At9!CQi(pw&%YM zr|4_j;H2(SIq`$8-pnGYN0ZvGnn-;Jd~@(d@{`6%Nf$O|2~NMYE&B1|*P-sdY5Uwl zpKR+hUAN}@GKoGlvFu~zPp0Wgcb5?)2du+MWM8o`)N{!1($eJ~zH{Y$c=8kl*Y)jB|DfL&b8VlCWo+AIAf0do$v|S~^@8@NTUdVD1+;{w0ScFaF z&O`BUnBM-F)xYCwz^Ug3vJ)nBZxNTjvt{o^f%poi8`~BLeE;51c=^^LMKeAIPm2ZD ztQ42+Ti*Ql<5x!gH9q3z7tWpE-y^^0EC)~6Rs-reoI)-x#tm9#5ChQD;xNw4C=?Y0|3lD-XT~WLFgL09&bsh?;FX!WWNo*ReW%{#D|tqyQ_{sZ zx6HoTZKApTnASg*1=>eCvj5Lfzj=LfpWD;xGH);3*ctz>pHF%J3ihTu%ZrpYz1%4J zV_%YWXVmQO6rH<;5^XMzI`^&B;%?vbq+96m(=~r=pM?ePFFU-|iEq^#frpNFLXx_U zWIwxoW>drowQpWBiIL|7%}Tzs-np>x>*oOfmosDzO_@=$U;Fb;6?H3izQe|)3qE^a zPPV+$b!Ym$qZLaI%$w@CDPn#y`}X1`)^jJsKAXuV{OO|6E#a5x^AEiJA@FZw#sqtR zn+eN{`tDX-owcj|*tvsMKQDghOMa8aRdzXf)t(6p>nA>!zZf$2{LOQlY}z*1eK6Mf z$&z*d%=1&iRXoCx7AGqvE}R@)-ZI<4dG?ww(~2y)6Z{Qs1zIM$Z}gRs%$UnCqpZu8 z$@lnj^OMh$rS%RrzW>_PeB?r)_>l@j{oj*Mudi=#>;s%@KxmPsU`06AC-tX&{U2`;IQ9#7(Jg0+~<~^u$OtOucZKdZh-)Ps? z%H@i&cC4SS)di^s9=kVTcWgS>?=O!6oE9n`?@ZL_VsUH-g^>GiwLUUm|YjZ*)g!v(Q@$bv8YVypz9n2`ZSaxMyko!`c4T zgugu^Tf1B)pHTRHjLZM`HSv1Krx#Uz3D13SY>JUq%V~wG;IKlQwI?P2Pm9xNJgco( z)ViRRU!FnN#rZ|erqB1gTzDEol@MgL^)pW)TuZ7t}|7{HJHp>v;#*934OetC-6{OG%hF=g!v>}kZs|9k z&W$+0&!5w_eE%|DM~Bs0Z7;f-KX+)IW)ahR&Yxx1wC4i7<`3Vzd-P4d`_JN&Pja00 z+Z+3MUV44?%bu1Q)j`_6O3M>owLeGtEmg!FGg8_w^(?C~i%)+W}Vue$ml`>_eL7Fpd0 z`A-yFsJ-mqt;N%3J=eA35BXGc*JFzk@Be7?IQCV+CR0x6|Epccdhl0c>J@ImY2WAl zvYFq1OlW7bqH}a;VIE^*t1{oV0zYo;4NzmCYd2jli%;&E-Ilg_?v|%?@ zvlS8y)@WF%kvcu3*W#%d>y07@dCB>2u03Y3XK|G5@;$!IBK-S9&lN1fic8nzNra^J zSGt^kV=3Ip`aRpbKz7Fa=Pa`hI55hl&JX&$KJfk$)e4mbY|Gz>vVHQIxHll-cuJ-F%@6Yfz(@H13|Gs5X^^^Q{M;_kji7M?lvUh4l%&o0c*6bC1 zyP`$RZ)kP?4=cKVX{_CI*?h%_4)%3}?GRR&^>74ld{{b}zJybG!_w~;RpK_}C zMSa;j!B=dH?*A`j{uy?(Zvnf*#=AS8E%;vcVTuOVpDz;+Y!moWd1)?Z&IR8Mh1~bK zH%-~yILFDnzxCr~&G z|5K%jd;Dw{Fjp+C>`?D7a;&_#U3SXIO6V6 zX11t>^)G79MRO%r=S-2^9nx@o$%)roU+2W0Dck5K{rbT~Ki@?hQ#O=-I(ba;aiF^! z`x^sfcuYB?2;xk2=L}A5@MO@4C z<{ske+WYME2IfP*>mDt*Jwa0b{?Yb&RrMQd<4$*G?Yn!Lebvl~E>7kw{;JzDQ<_hn z-t}9`BYUZFgOiu={aWX0oxb^7MIkjKkkX2H0h}aBq0q z&-~_U=`r!hX@{=a^j(zR%ux7E?C2E7rdA&Y&^Rn-)PyMXKgxU)`mK|HV zdv@lF8TRvRR%*Un(6#Kt<_lNWC7t`Ix0r{gxb4~G3;znd5=&;6ALw2@y~yB;wvUec z#>TftJ;TB>(jr~-b&fo43oGCB)qM>JsPKd-srgCfT#Sv*BlQ&{n&E(%7R|CFQU;NhXtPPbxexmc3cn<+{N2m zxWnD^PH<{mNa5^>N7m2HT)u+MBBF{V~+iI^PQK=(5Hy$6XnpKX`-)2KSzSc4?uTj)LSa6VZQa zdSNom0^zZLHwG5m^|sahyheEY^eXS$_ZLO%+9Un+!v5oHr(VCOd$~$Spu9gtUw&_U z+zSum>-94(#g%_h)v&wvSf;9+ui!#~o%%j?d#kjUPhD?XyS=`D_&~I;l8&Oq zwfxQV4GwN~xga%>Re~-2{o8kz>wG4ytD7kvr}W2R^UsNH3diOgRk@$T6>_m8#QAGc zPQbt22f_+(_$}|kGlaLCv2gT$t$Tj|Oqp}cl& z@)Q=EK0DcAe!Wm{-JNT#&nrHy_gvu3Anv9v-=06sEvwjZyQG3+r$PNKX1!}7o3~!h zUK=xg@p*?wER@V|B}&+bb@gd${~zn-p@F#nR`e2vG3eIQ`b)pH#zLQ#5P&H&|0|A!8V)q`SI0_ zQ_DRwgZZyfACxMI_A6L(znb3Du>SQQ;pY&KGZVze7xMe!e1*k<}Gc_mf)0# ztBA?j@+3K9jmzQse~6svcmmfz|83!zZ1VFSxyUJ zpRoO5_cr0bayv8}Z8Lss=6zh)@=~eR*tN4aS|EM1B;Tc+vTGK-{QT`sbuT}tu3TI` zQ>*V;aL>deb5e`$JP0}~GB>nSC)Gy%`huyey;+hQKhCc#kZfBLv)0j9->W>mtJ&?H z^YgHx0Ugw7JqE zYuE4ewsn{AiRwdR{`SzOZDjDZ2dt7)$JftVReC>)n)`RWe zue07P`+ADcRzTU^py|cKyWOT5k9yL&75)ayJ^*!#r$xx<45xhb>i=bW|ft6zF2 zAXR_Wop~u1d^}MyT-hf!CEm`twri%z|441?jXNgZJeT!5hw-AiNTyDa_dNea_0Ltl z6}|F!WOCGf&$BC+maMLRZeE)!bNh)l|BFvnefvJ1FJ8TE|7mY4`<3EcKW>|qwq-JC zt2~R{;CuR|atv{X2T`-qn%fN-e6xNKFwO>i&oM5PEM%YF~%wn&GK7!3!dGO@g&?;uV?8~^ElS>@}G0gW#4Mq z_^#|zWp#oqr%k`@{M2QKuXipyD_j&6bj#l;$U;9e^S7q#%-xO*GSBiDT5^gd8!F4~ zZ?df9aWhUnW1ikQZStff57vz@kF0xRKTY;WjpLq!#la7zZd=dsn0^0APP?jCrGGtK z80Vkc6m8e2^S!6{uAbfjjh*)vU3UGhBjh)~JUv`(UQvbevUH`Jn=Zd_ z*0+_Pg*JbEc;=&8pAb)f{<4X4E|u3j56#=DrDVOPZ11Mjf_wgv^W5hAVwu-cbouVL zJ9B+^atfxpGppD=+Ir{ho};r5Z4k{-F3>TYzSbq_&6DHat{0x0t1w5s$hiEn=~I$X zXQx)7@5jZ*1ncFByl+(X-!ozO@+&I%Nmy^7YuJ>cw+g&PjREi2BaU}9TNQBZlZm>f zt0}+djmy>pS2x+}moL9?QnOQY;;VnG?q+9Q3V358^^5LΞoBC$_cHY31QJ8-3Pi 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%0DKYfNRge{A8|@s8c3i1+wkohMqN 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�U zUQ229xf8>0mifj{|E_uPqN1=(cB_3{@yAIU`i`^w`LXU{M)B{@HZKo~Y@Ozscypuf zdd-`Xp$FCkJkt$akhgm=r(89gAcsmCM_|sQ+)Wj&V&4xHM4vdwx+27PeZK6bXItI5 zbQ=Y}eSUtPRrSoa(3B0IX0+cs^zf#!bGGBjBeuRrUUGcCd&pwF@m?8^YRS%UDcy#B zvX8VreSX0BR(fhHYd4dW;?^qOOV8<}UHJIDUBaQ4nA z5zVYxw^u0tKg}F5rRLPCIgc+UrRjNvJ~iiQW@pa79kIc1{;EdR=6xN~X)``32_ zoP2h2+G6b`uGSlhuOIF0UA#xkQ04Uh;}y@2YL#qPIg;mcbK;N2dqP!uWhY+gciVKy z9_9X2z0+L7&egL0F8j||&6f!eTqH9dANVM|qI1oh_8*@Gu7#FdsEJGM44biQtZ?Iqj#!K3lrQTZObgnxDB)jlRr}Ik&$%KOE}X-B>#cSGkK@dqt1G3~ zR~vkM_%*2RtLwkU=uABHYr24>OR~{kTC!gNk zv7C2l)Blrp+F@7t4&C2yJzP*&@xb~6H|kz(`2Y1*r7vgn>?sLn{vLg~s%q`x`I~mV zuey8s-qzpytp6Q-%db~G-*KHVugaxFKAXFhY*PdNpPTD`RbArMqois!g~x@w^A{i1 zs@~d0XpL*+yyDHFhj{Py>ljO1 z3*Vl8ZcR~hntE5YP2FNO-sN-D^U7UB#LMDcIvdvZt$6kF(6aun<s;s3el86TXu0+9 z#i|>@chAK8tt=_J8e*C_b&74?iF-b6waqUTwwHR&nSYVv)g+thxjxV0Vn3%pk?q#Z z4S1Tq>~vT04yPwF?#`9JlFFs47DTtL$iERORDS+3Q}@#?;SXfooi&|Sa&QMv`TlC{ zNk73Io4;``*dsBe{)$7wbYr&H6Swmw=P&DB_cJ2&&kWwF0%qH*B6l=RyT^9Ja!I0B ziSI`Xw(RE}b}4(FXsutrM@r*+LetgD%&uHPN>4M)y{0}5*?H;-(`#?fi2mv26S6Kp zuz$r^u&ZY>&wb@LPaKLIE}iAl*}87C_@pzxRs?!f?>`c5uiAP2$%&XL;XnA41Y1QH zpSwTd@F~62_wPQ6pOI*`vd;SS?omS8gp>RqK0FX!?GO=`{UYYZ`;5)Amu)5c?v*_mFCzN>8kgqJNO^^}H@<5G9%w71NVjY=U@mo-=%gR{r0KyK zQ#t!{3CrH+1_@~P7>BhP*)*REnX>1A(zn7{77Le7XqtXftx1E?*jau0g%V+=xeB)u zWgeFZ+n-Tdw` zcmKDuGaYtM<(>UAFYe-&w^{q1T{ybKqSwD7N;u6YN&Mrj6Y}p*S6p*$TJ%!4Tr+Fbf47P!=P@6DX;hNbPHExTGAvs={LVrIIZ`_}Mb{=zTsW(2N$ zKT%SAc~_S9qx)GWoBOA)do^EZBjcK=2zTq8HSe~+k+G|{J`__uN$!epr~3EA$@2od zuYc}*y*?mL#(m}6b-Om5@p;&(ExYIXz0#Me>h*_ZYZWgjKRnkxU+I>2V$kQk952sn z?DshGJMKoT@Ko2GT)PClIF0W|{YM+SekEu>vnTDuy6#F zz1n^6Orgy*4xKXb?z>0dF-h^YHy;f6&wa>d{)9lV>pO7_rmI@wT+q{C#{fIsC zxl2{D`-qwUWP@&t+p1UFIy6KsAJpe+j0jUa(8e(L@aSY3fO?f9tI@6PixjGCyR@*}?MeQo(Tt zn}@p|TnOiUQXH-lI%%!?8j;mm;$k%d>ZzeBr*~~)S+cWf<}3zz%IK}tyzMoOKTyn=6_Gfx*+w(K7MKHeY z;@O1I4&B*o4~?P?uU7uLd(`@_TxZkkZ*I-%IcHbTSbxZBt-$IP+PwN#J0rpu&s(YY zS8hqtUbk&*%?ccsO*n4!)JmD1@c&%%L(*!o3CqoWzNc)~IJ9;N2kFkSsoVB8%-G;) zlfubKS{!Z)bFZ>&%{)}3AfXXi_MkV{S0$RfbMoij$5#6M z=!%1VYkXDfbr*e}e_mhg;MJcmZ+|>+DA1!SnA57LB{A5?fy3zbYySsXG&=GN9}G4cD~2aBwJ{XZuB%Bi(qF8$>XTQzg-Lfd5miH~M^dK*h~ zJZP6Hp11Jxt4%>4R_Pgi>s0wsnV@%=`Roz1iR}_c5AzJ z@3T7`zxdoTeVNXu_KmM@TzmCi(XF9Y@#%Jh{2Q(Q_Gc2`Glb6-e`MB~sGh`q!*~*p z+D@kM{@Dq$?i76c{=sZdUzdvc9m~lo%XnMuKCkF5Ib^m#bI**}jvoIQUBO6&gqJDi z`*IW8Ti&kAec-Cd$E*Hx>jRC9$G$Jj|3^#=HFFg|V>18dq7{~J(+-;HlL3gN+yyzkw9gDJ>Y_i6`^u#gRz48)&wI!_{no=ML4{-e(#KA@ ze_Y!xlfKb($-1!f@q*I2!6FrbUrus!n5{iIS<)`;m33d)VUB*|;;g^H&+f9!*(a(N z|7nJ2lk-W7-lcLb;?|Rwrp}eBvuP!vMYt7?+xYcS`k@1Wl!AI0{S%Mu)%uM8$9^E_bl6IJ7uE&Q<1-3_R|7AFF zoM0+l-^#Y>de8k(F9VMBbsYQb^HjH}{QVTSV8<;(?|p~PoGS=QSU=Zvqq*sa-xdeo ze3&twMP{)A;o*65 zSFM*GT@uvu&fV56F|Fo!fl0wueZ#h8huqEoP58*$a!z;Ua)ofgm0u4&Nb)vqv6N^R7y!QZO`%Hf}C+`917=>zYs3SRIz?&P=K zZ2!!}d3*wySAA|Tx~yydHga>lHAB(j*{0R=m>Ul6dUHHKZ+phB*5$W9DQ{kvzVV=M zFvE@V#9OJyujDlt#OFFpo&4z54cP~!s~ps-q8ThceeIeT7c6dAYZ7->#`3Z#V~oIw zf}%TD(qrQF|llTd@eXp;p3pvCt?Ed7*#0@1eNs~PGBu+m#bFb@!x?IId z2mXwmi5FH|dB5p!RkAs#a`jNr%+F1K7?hh5Hj2c|ewJB~5WR9{$>M`sxp`zv^n-== zXnr!BeRj?h8y|<;((+~3TAI>D*yg=HQ2gXc-C<+x9G>7c>)w?9urOJrvME9#^uf)| zvt@JmQqN}zhbjwZJ6~q*d$nMu%IYu`zl(vMUPd=IJZryn?eaC=fCDL3S$QEH4CS_o zf5g7+TkB+Zx7z7-S^|} zjitT)YfhR@YTwFduxWSb*Z9b6k;BrTm1n7RdIWd-RZ~mM~mvSt=Fh4vP zz|i+0Pd>+GWu;Nn$Cd{Sf=y>ySjybnOSf7Y?Aqh`iQ&$r)eOs~9eI+RmLg<(B}&Y7 z;(A>W!IKQnU59sWddS?Pe}%KnQ~IxZnu^G7NzZvU zCNI)vEfX&|+|9pfvE$-HJe7BRUUxt4bz1sXFQ(@~`bld$n@t>mL_ zB^C3gn$F{x`S|{Z#Sd>NuC1LlzwGkwU;P*Jj_sdWxib4+Op~10o5NR+Z%kgeNmBW9 zc=hb^^|NM5?vYb4mzJJ)i{a1q`|<+i-_IYou_n~4F_l41I_EUE{5_v-li3zLveUYn zJC~tl&aDo&O;>y#dYbPzc$}x;L*xMq9oDx-pIX!GF5fhro0;d7yLQUnf)HQj+-irsRrA%~$UcdXn47pj<*L8Xy1!J)6q5xb1cfgF)A3z5jPhwtcQEU`X9H_q(V1!L9fBk`|xY{@HHhdQFQ|PkyIa zEJf>t<9-?zZn}AHclW6i#kbe{C9-YRdKYuYX#O_;-CZ18mOOI2ZMZ4_k)<1iKxHcnjVIN zuy~JmpA>fbO}G}$x3}N*qlDObJ$*5e%|EtH)EAnnb8dUhkM5kg?oFq=_Q~z>+N3Y! z@SpLA<07^Fag!vL|4?1v_cY2TZbjX~$C@4Tn;Yl$1tj%7c6YX#C0REy;>n*gky(bn zb3ZX?>BgviJuSIPXY!nBkEgykl-VD>X*<(?53|ITicEFWFZ=W9BqyG?m7F+N>zk6= zYv$)1fjNz(8x>+2AM;6t+}a+w?A7A$w@w_`<6_e2#o-YDkv+NY@y$83^O^>rhs)3UR7^FFV$ zHCvT^S2wIQ&Lr!`j2~X!*MDz%bo=w}B~q6gC#l;O@OJaPRdg#jv}TEq(T(SuJNkFD z-ky3_xaZENf?lhuOq)VuLw^0+qnxz*>W!DSPDf50e0FT+o=U4%EY+VpRv$n2SNua@ z?Y^wDCw``i-rQcl|7Y9Ohxc}rpX*`HseI?t%DX3U$vNL+ zabfc}aDTO4%h9?}DBETm+rbZc2am1_woRPAB5}9N)MMdFzDN7|%)&xqCbHWHMogd6 zx8serR$9odEBOgeH(u1?{3-Tpvdy)_|BvZ&&D&6{nW5@(a+}X{&j)I`%`CYOw@6gH z-hbQhnAVGpXWN1`7~A0T)DmL&8C$mf4}W6J#yc# zsk+GO?em?$cHeF5Fm#4s|8DOf*CEBLc60jxGe-3N<^}DgjpWa)) z=14@o+~rziyzQFmnjcbA$^xR6FkL$2^o-+&-i87NQI5S@MJJ~^ ztXL9#O(C~)hV3@iFLw%0J)II8u;oQMV|fpwt@rb;%gxQJRwc!4?%8^h?~~eTxfp-F zb<0j(wKGh86ZbSjSK?2omox9V>j$_WDgKyqXSUyzF@tGu8J>yR8-ktlK+dsa2TTx}c)9b-A zF}=KH(*+hrXZuQpDo%Nq}RY__1R3rc2)KnP-HKFz%3F*Pq+yq_<>2 zUr5*|9>vS~86u`kth1(WsjHZ_VyVt_?Uy@NKVDn*=vG?G^4`_0ebUDxkIgt?dC}8G za?gtJ{e{A>esXh(&%L(TvygG~%#cfG(-t1Bxw!84@peN?@pGOA4-a+J$~?@BN}v4V zMO6QHzf-RHwVPwa-)>xZsPiC*GQw2NXswxij&`Ugq7Ot)DF4_B$p#Zhw=^=bd}EfN9>Ucv&Ii7hcZwZ3o@1gw-)sR{e|kqGhh*c6esxRqO6| zA$O90oxBu&{XoL}6<4cQTyooc?n%pyIkx!|=lA)|-=6yRj#D|?RF3k!`nJbQ{?42D zOFwGWgmn(?bJ$XsM=jhR!*f^cq1c1q4e95<=P*xaH(U#KLLAu8? z62c5Oy!_0du5@lcBWm`t|FE=rtq=plJa5A5OOo@8Qb9S(CcF5y+obzHwbgubCzfbL zZQK4$Xzoib*J;UDEhl*`x$e0$=EMYvNfFHq{QQ^ito{A|`rXe5c-R^=ZtwhE(9SQ! z`Q=N=_b*?vrQUr1y*FWITGA%#FU#Cx_Le6ZdQX>kJ($OTRL%E>QJ+iDmtPH?|0GJP zH=a;^!nxYbvp~$fyCQ%G-6K^0~f!`SMa&ZBpr{H<8y~@9mtXbkg<2 zDHRb(ZL_Ai?|%sWTdAJ>t$gBBL4nUDMW@<0E`<00T3r8L_R^%>pN*=S2T#Q?G-;%- z))4cliR+3zsPsVT?z=}F>fQ&x1#VpEDbnTnzPwc-RzxPj(&7Ds+o#%+_PqEi5i@(y zjk&gUd+xtipR;1llAFH@brya)p1)2{Z+-f7b%)IL-_1H*=WX`+lP;Nh;K8E{y!KrSYs41<=3cjKRSR$XZ^@BO%qpI_g< zSsxR-U&fg6QKRRP=do>Dm>UJV{8}d8^WjJ@ii!C%@BI;@C|B7_&Z9hV*N^|cyV5uQP)W*u?B=PsNi_bDlE4|6@`*>-B~KpVXr#_x~N6w|Z~zlFT{&N`Y%K-sg1X{`t}IQU4!@ zO6Gf(=%PE9k66BwS+XkXS4_%+x)pgJ3_0b~lQb9kH?{70AbeCND_>@Lb&Sc!nay37 z)0nm-?ev@~8N8_Ck4Z%LE3>8}TG53b> z|6b23V3B70=ol+QpWRAMHohANW}5gFGbWV0pO#*uozPqSt13zF*Df*F4Nrd_f3VnM z&c@K0Ixo%Qo-4euQ0s2}9(Xz6i9wTU()j|B=0M9EI+^lkJe0W;Ryf%+OrENDF|F~% z#g?3d3mbkNJgzIrw$nvpc1if0jf+~g8e056_c-W@iJtim(KkmNR!ZkYKVyyN=xi2o zYB-suBo_T8Xvc$_yOx|!cvm>3oo}1gL_xRHhaT)#TzxQk*Xbv6lTDs(T-3ev(k2fb z?G68Tgmx#io-Q~hwt<~zSNMl14`&(On9_N~rR5Qao3h%Qr4b*E)E32ml;~CE6Xjgz zv!PXe;+8JcJK+bWFYq-w?^UqWFu?tGQ=?hVrGUbphPN7DM*fwkc~mHJ$?A&0S%wxx zj@1ro$JShE4_Ff+;Nls=a?n8hW7ZpuYhSEz7ncX83-2N8w+0Icu-I z41#r?lZ08`kK+P>Fc zIPS2WxOZ*Ai>&DFZ)O#jtl)X*!B-U8J6k$fq0(XXd}jxqGQKj2-^|lr@)sOTiY#04 ztFHN@&AY#(mo20TM zeA%u|mU_>sf9j9jw$)5cE&qcn%hN5|a-{;F&&b<#CQm`5LAS_eyV|lT%Kv?~iRSV@ zl-}7@v}XSmORY`Lk8f}^1qk?T5^>%C%bpR|He0hfKe*q_VKBwC}jW z<1J^Vg{HiB7gu$Ap0nVEWXKDJ$44gVq|L2888ZK9;JV;BhPJLT9E|f7|J=_$;$=2% zrkUxqs??=b75Sx43-6!jQJ>7YS}gh3zW-+8H&0r&cqP24x4o10QtFTMaR=pp=hY{D zGj3h|Kk-X|zB2nfO~cf>brlPjG;ek1d~+b|Q2er&$35mGE_kf8;P)lT& zE8O9lnbYs3tKLenrUY9Fy?eaSUE`>v#mA^r@qj|64QBKC9gT0VfBrezjbYN)Bc40g zKFpBIu#n|dag`QpDeelhpLgwp>Pi>QtM?9m&SQ>LxhIdJaf_Gw9=N)+bf#-_BiV0XPjRz@&AbO%;1~MRwpKJ``{zL>V`$WaiP%6 zs_+hP?H^&`;qoFgUuB6_Y<}o)SFUIFL3g`thL00H>H?)pK2@IkurX#ALwIgP<>9td z^XoG|mA%ZfIPukyiz_Q7GDlw^Lx0xH*<~3YI%aH$-P+8%-B6!v<5c#^lK$6{UIaW_ zB^2-@$HeOMkL>=1Ar>7s()084^WQz2uHU@-^z`uZ>EfRg%YM>+8By*Pi>Z(RR1B-=#R+>vc0e zYKWI@n%kmv>&{2!9ZL#$n4*_0oH6fz&EKq|;_AZBpNwY2|1--!yZ>O!qS#}b&2)k@ z?*BZ{;NkoJ_sZy>2j;w)a`e>`cT?`FB}SbS;==XUJqg^G!rHs|Xvgc4d;`n-?mIuN z&l1|7mC_o}a>e|IxpgetQqOjwycRe4qi>|bKD$m|=y~T=OZc^g+1x?8TY}vg&v4EA z*LP=YXn)Asi41*_ZlU$xor~Uc>{4bbZ~j(h_jF@={TZ9y)$V`oHk&mBU(KKK>^d{6 z=nCGgC-w5yJx?zC)%(19>asWK^GwfuebTX0Zb#!4L*;X-_PhN$UMx8}H6$p%%e^%H z(>oc--#1=g4ao12bV^yFJg2kgsE+lrtc}5c3|uZu^gU^CO8;epYR%NN&ppo5;>xG7 z-hKQ3!(pD+J0$PV-)Q%naobtF$v@m=A1pj@R_v7Gq(ce}#SQKZS1qzMjoNkIefji+ zN&VB>?H{)?M#fFwJ*(ow{og;{IIrLLacM)AbgiJOjrERgd)}5XEjPP%H0<2`_3O^R zuiKt;f^Y4D=HgrL%V!G6EV!k&Zz{7w;fm$AW~}P#f0kexb<FS$k5WO13+ zE5G2FDCPII3Jc$^3bfA1p33vQ=TZb??W9*;URLim-n;OO!ARkj?B-=kQ(s>B+|;|( z^^$1js+x_?a(7z=nwLFWUi5prUxx36pfXvWJ5Q(doSNJ4&d57?_u9wvTGcjA>%B9))W(6$0pwWq^~rxt*CZ2lg`hq zki$_4D<5s?yyCHcR^W@KR&9}+f1b6jjeYg{%=4Gax!h!KRvNDGFKTA8aD4H9^}*UK zh18cG-_Boc-WJ9kum8kpm*D9_L&?B3%xiZ)T^<$jtgVT+bEomQ9TL8R?Y@tKI^-_B z*Iayj+eaPm&C8xM`z(0gK3C#J*;?KuJ3PBsWp6h1K3DWOdqCQEWm#!Q;p(ok>AP4f zU-T|$-N{z9^UaQ6?GMxUod0(yOIkqR=*zZU39K0r+rRrN&YM5kWKH5 z#Bv|Iz`~>6kvvnr{QbE&^ejiY?x*Xgzb8CESs<3$|bF;?#$j_@gXX;FxJnu!9%;E3RBGUW+ew$sp zt$EK3XZ=Sf54OF{6zZ`0JfWiW&hs#VvoEgA@t*o_{^sD8(ED*3u64zge^37@{jg-) z%cp5ekNxoe5_5Q;Ua?zeiA>3ffb&P*y?iuvYeLoQv`vps_a8o3zMj2mtNW9c6CZBO zw|UFgmcKxK+0*P_Yu3JO-12np%ff(D|MsucI{vbQamRm`%5{7c$yeC67&TnKvSM*UjBvJq z^~R63=3F;k{FQQDyZ-Sdrr)c6zkJ`vb>NM+>C4~T*}jSDib3n6nmlR+-!9Yl({!6T zA?wTj>bu)7-}=5h-QT|F-h4Cp`lyf_9*O!k*0#1wr<~dMzvk4xUzh#uOM~0PHN>7u zZDW5Mn!C>DQp&;{%TrgxTfNL!H!$@@?wc>Nu_3v*hu4l{L<8*A!mp3S5;sZ0wje@1BeA6CwLwLdA7cVpdJKaA1q^ zQj?>5I5&wVvYbq=c~NE_YkStWGvaw>d3U)%4a>Ek=BYls>}p&NbHAP5v&t!<>soTn zX3hS8ntd+}Oq)f5Y%d*Hb^V5~RaxS>Xw6TYzER)aTCwkQ>Ep}Zv~hvE?ah?&;q9+my*iA4`_a(IV4)}b#28oQEUaz#ZM0dgB{{EAitEN#>#AFG-<9ZS zHm}9$-P`}!`k?qgrEYrBcgOhW~yAno%RiVFe~ z)Ydu7NnLl}$8uBP_uHl~R~>%;r1399So^WV(S`l*55BE?8<}-?=AZnVS~aid)=gkM zzn{w_B;t#&O0$M<%+{{6oVzD2b&zRZKk2cybC}iA>s=-OyoU{&@9fdzb_?0Bs8lbZ zaOj=gnqq02tFNzA2}oSxOqo^V`K__pZkfOjg!;g_p`sV5<(l%FrUsLF9^Vr?X8Q;YJS3Q`O-+KLFc7Ngmo98)!*MAkrGZ{SicxOfEG`XX^ z26~dGEEn^uPhU~*lo0h>vvK90>zB%+|8H&k_4?D<#Zq-=4(`8dwC&?_*;#p2vOBvT zw_W09I~TU2ZP_F(jf$8{BK13e%n^HbYfj#rTfg&BN4p$1u>Ip_W?-o2U|`TBFqoWL zk(^pkl9``Z4BAr_df)%Hfk55&_`+2tD?LZkce3>9>x9 zmcXtxTqmbGWGp$oTVZc^!`<(EC2uTl7HwLWF(oewJfgg_`0DnLJ2GcAlsWFLGmKT68WAg?j}i1UXTH$?X^YVn`vxistYy!7NHleMH9 zuddAA;W*9Xbx%+B_Rt0CVN+f%W1QNdE#afYv6yj=?;-=Kjk^o}eSTHOS3Y_6?2|ci zaV`a=%$HZ+thC@?pJwulaq>;uKV0e0l^wMBSr0BhRq@Ux;Mb)@p$!~`+B@#Y*l!c% zn(5^zxpK`jNvCD<7d5J2~O>nng2Xzh8H=)-Bn{w^{n9>z;y}(yup!zCWDb5z@bB!pV%A z9obI3I$RxsJkzgD|15i^B06JUP1lV}NB=)Hz3R2_!-LF)oSWqxo0pbx?A#WoXS46I zPMBZq<;Ykijgnq7{)S^0Lj2O%Mb#FcySRMvjMGA;Z@)eG=l`Pn#S+mA-ixE7oPwn5 zrFcH2yg6^-bV#;7z1(iAyy8yY8qbX<1Anfo&HDW+OED|?UidEKc`hX#*}nzjc0UN; zX}Uxyn#1_xC5a0JaJmW=5?{2e|x0l>L>!%mf zzV7d~?DU??e(J9iQzqm}@$3;g^6|}^`uoZ%jR%g*{@UwkHUIq23xdlsrS6FxXT1H0 zJ!v_6vVWM)M|qF7UoWI1cRsq=?bxa zQR$;v-S5ej+p=XA;wpV;O6)1;2Y$_O44Q2l@2 znTu~7AII{9_WtmM*p}}c4-QIuCFpzam|HECmbmAo;P4aGG|pU~0N)!<5hm zEBzP*9!kt~7Wa)2u9ev(ygj{Uw$8E5yIFsk%{kwG`RI|ti#dI6n_r$yF`Vi9@U5_v z-~PqtC%^RN7i?gkGGY0YqT2@#OmKE*x?RAzQuF!2r|)%C>vr(fe$cr0q{8`vTBV8! zn|pxQ3%wMZ3LYQs9*sM#lIOaqY_sl?z@NJg@2m2gv2oc+zO@F* z@AW6dsBWCkl2UqtV?|O?unt#|oRzE2XOS1jx{t2qR(l$>;_Xk*PXd$VXJ{o&cXn_) z`su$xXo=EZu5guy*;|*c))HTwviac*lk2IHQ%|=&f2i@vrlj}X*-g)EI^1V{nDc&N z*3|tw%C~Rd{PWPxkI&AXO?lTNHgC6t-n*FNrqkO#a)mBE^=XQBV@RclYN~Yn+@0K+ z45!%M^E__RS+GHC!yEgw_{LY)X8t#vV|DrH^!K*BUcWED=}Vuy?U7ZVd34X*%Jtk) zZpz0?OD`@L`5zPf#>uJw*yNY*@4c>74I!pzTS&@a-ls9|8Wa zzM2eWPlKDc3!P>S$ybehIkC6-z$B+PyeD-gPh6ufbp1_H`A+$zo5lF;EhcQxIcA-) z!iKZz!iy#tsJsKyvg3Vk5izjVtq z`TU>-X~KL91*achzu0P0s^250iDf4JtT{rfrdKUq6KMJL;KJ_@R#rs6a(s4H+hk{L zO}~Qm&zB2*-p7<$oa*|QOO`_9Cq#k?MZ z*+PbwP9@IUxO#I#boy39?)K9)hCdgbES%2q;d8j{{qDP}@(LA6ALm>xIdzQbFxPs| zVxBGG4FchJ1ukTL;w*dGcg87C-F|Y#whB(4_QV`9w#+oQiQzvLNqdO#8zr8kVlxl9Zy?`E!pf|2ljclrSG|wF zQ>T8nXa4TrYieqDT5r?gLO$kWj=Xs)8r-2bZf9~jKKJmQ{3@<6oAGCP{5As`ymVUhdcdEd?BhN3-^Kd*RZCM-o^uou<7HySFTqVs{Us*j-bY;z^ zChNtMesP_&yH@G=a$8n#`r0y|&=cEb6Q5SDUb|0ZUG&KXAB?JtN-ngPZp~9_XXf3u zOiR~S*2ovo`KG&4{4^wvhF z+4)}=KFWxAvvTHX;bg(Y>t|1Q`|#A}eDeC4boF*4OP%4qwp^JxGVZBo&9B;7f37{! zxI-fI@coFhZeA}U4{Th$&ZuwXfLplYQouSGNK;wMV@WE3++JyyEO7jWcWf)?Z%x zb&k8}xBBa)yJlx?Fj?1Lx1Yy7-f-6WiWo1(!&i%6_HOwy@9LjqrA+PF(@On0mU6CL zrz)kI!qoGpA#(Hb{Q@OtpDtUw>RF^*>T`(E9Pr8 zHHj-;-MmrJp=ReMtIBQf>R)&`GQ^$R-Es8z-1!rKe*4sH{KsU^8|(didcVZ?-{JYa zKd!Is@5QGd9?zbAvHf&^bK_0hNk?5jzRy-+i2T)VDiK1-=}ddU905szM}4g$Q_Yc zNt?P`*K%$y-k899@48hSZ(kRCf`X}lsKhaQ)FybxmeQ;?UIvB$9l{gN86_p4O&M#Y zvO$|Ntm|3(X7;U^wk*}!FSxYCxNEVGO{wa9RrBkGHasp)Lgz(JeoA!RyYqkD?urQy zock_^$g6Ngyy5h>>75nd4mG%1ayF-WUAB!p zs=4#t^Vt?gJ>3>JmmjQ}Jo)m$mz;?gt*orQc^_+ih?rtHUu5F>ph@`>lImBQvZ z-;bEZTIk|8mvN)Ofhoah|I?G@#Z$b$t8^6yrSJ%_NJg?MD!h1?tCf;#VJZ&^-lYN&0E93NPC*cQ&7kfX@TVl=hYT@fC2V>-v=kGQ-(VUSx zStstP^(>>q{F`ier@6)jPk6+oa+T4+)kNu8g`eJYwMyf8@#k_MAAb7i@0&75yPo{K zW0#LUP4P=Jf0ATYTfK9~9N&lct&QgW^Q+rAXWv#%=C2Hb-z+^RmM0iETs6FJ_^jt@ z$Kz*@{_7;hZQ!z*pb;fra`uE(T}mcP(}b3#w-pYbJ>6h>pQAZgGq1FSM_sOCU4mJ>AszDPpDLW=i{!s&t^P*^F2$e=X&;&WtMup5j^3GBVQ~! zcwx`h1s;d9e0cOSkHzf`S*-IZX}<1vOXf;rOHDT3!=;%LyYwU{S{r*lK3{F#5w}>Vn6PN!^h?ZMEtswnTPrBc>ejC>xQXgd-iXEpHu3Gt& zA!46@M40oA20^~Rb$@Oj+51mcC-c?0bn*RX96Ma244gA+D+FH1@*1nf9Ou@I5IJt` z*tVwg*2aAi{qtE8q8@Z7oPMPA|5T{B(@KV)OIzC_Lf>|Z>i=iEye1^*#r1zYB=y&ne z?J%$QHI6R(UoTX#o&CkaTz|ECl-;~=|JnCyYcGGCe2L-E+GiHebhy6Th~9Kjn7se_ zp|;LPOick?jJrH8D9u=}Ii)eW?&Kae_Ot9;KP;&%Vcx>ykYjA2@O^{M^2~FA2l7rm z$Z52r}*td5vD0?&Gu z8ptkjksGr6aQHGFaxNWRpQ_{t&jiPwX< z!5J%AN|eejT{-eWarw%CRczYjjVp~Jtmpjx{QP3YPhFEZsYB{Z?+<^!kC)y!7#k*K&0b)0;*RBJtAd_Y?z`u>-Ijcr z^T@%pm(7%G(VbPEOwE6}*jC*YIqSd3@%|p^JK>Lt(_P)4zgzLJEoFOmaD06Er=HRk zD+TL3mEB^Ses~G@tw~z5Ec(QY$jM=Sq3;4Jd7^~MU;X^!<-M*+V*R<4j05wH%q$ET z`^#QVQM$G<;P~G;7Z^fb-+QM~?jISqL{Km#I!NpJ`_l!>wppeLYaR${Hy~@CF+Fd&g1Yjet$EnDCqpE z2XD6Xeqp_t8{raUAid_%f@`-~C(6G!Dl*zI(OgwCpCj>PKi4D4_!V+q&$BWfWORt% zNQm0pv2=?3XXQiZuP@1Q;5n%-?sv7OB!XA?rt)Kn?W{kZOj>x|aM#fV?=H_-7rblh z&QKn^Op(NImvig{f4oz>A*r~0`S&MARZ9{dI8WTKw@v4iJ?Fwo)uteB?XnZQC30N9 zWSNL597uM2d`{ea^2halXJs3km(((?jbzW+cw~L%;20~dEbYitLx^Q+_IZ-Vsp=rqeoQcIV@fO`uXhTx@=RINBcI)dhhCyk7V{-{?+Di znpDQVyA4tt^OKq5ci${M{{MEFn0KM1`<5SJMh?sit!GU<%z9TMV3W@3N4b&HZKrNN z6|=Nx$^rf_Uwk@5gEKiCOEj$4zcAxSU3)ycJ}{9{ZR>-)in9AYD}%gF-e;8gdrM0_ zd1uOvEYgEt%Q0btkv-avLHJ`8lJE|yl>U5D+ zv79gGpIhbezhlFtv{kd82_=0zEPQi?s?*j5d^%sk<6|~mvg%!RVw-p7qqM*P{rK6b zt9|$IewMqlsYf(rg88?Z?!R#JV-sXwrG$)p>L|M2C99CwLzY3q2^8_};eC48>z z1wFs5VGR9~Sa$4>xOY!m;67*atHoyyX1#CQsIIqOXJeU4T~23$O5GPd?Flz8^gI(V zR&kpB#lq|6nrTd5=PSfDZ`pCF+k|m;>9fhR@2i==`%(6BU%kiY6ALEA1+VvO$Ub@d z!h*sgkrnT>Oum;L-=pyLz&ER)F%QpQrCqwkSHkePjI0hjY`;eD`|%$Aj}>so~G>hxS(3H$Hm) zH)r3BzWTXaMB~2OI>g8aSX9SN$T@Ja%I0#>t=yOi>9L&YQ~#VS{r;CLbm!i?H=ew^ zNRaExfd|=GS9qp zNx?1khFMGhiqn(QrZeq6n77(h@r!0#qWNEjRf{gQxTn6^JM+)$Z=c*kr6#>p`nYlN zTE%HyZY@VY!R!l40cVbGz zI>T$Cr=`m-^1Y1m2^5)?{qE^M)8q*)=H90b-bb&Dyz_yhZIZ>xm{sBK%XOmimHu5l zwIsx)^5S*bG|T+2Tc^ftGx=`z)Iz;i%2&cWFmCnw@-KW-!`A*wUi)36<7ZCf8r|T% zi?f%avf0GJpYaY$1@v(PP`|0=PFUvwd z7W*ET;&P2^<$9B6hM4?+>TA%_XnJ^??T2?7qMx_Pz6!jj9LjZsQQXhAB15>iN>p`y zztmi%tt^pG-llSfO?CUTR3iS-)%YnJuOzwud;eXw=D6m@Uw!9~aLAmPG@X!giy{Qlz6=4JJ{ zQuR}Ie(S0!{jw{3*2Z^s5;q05y|e$?yySuC!YJ>hO1-zTRir^J(Ko(DYq zf6E?VXy1PJmRG^GYu$Q^-6a$3eyUr(%{XXM?s&XvRcphwpFbXMJosMVhwaOh#}7C5 z`*!ht3MjhuWMUiZq`HbXuSys=uB@@17FGK(j6qK2(GSH0HU7p+QAbYO-%8oPd$Pj8 z_ay;mp0i(ku=Mu%KT>_4Z*J;7ER{9sii%@b`^DO~U#IMfp0IIkPw1)aU3O=?izH9; zwHQABkJ^o^-@I|HJ2L~r7Iwl%73Sopr)TD+>lIW^4e`ytZ6UDtb2v}Q%AV3Ec~z$u zv6~l0B{J{cFo(CxRWRU^hniPs)TC9b>-RgqQZAC!*=93C>3QL^v$G}H9S=kp{Il^6 zowi7C@v>xfpWajZ7Pe|v95Q*i-&k|QHU-yJJKrq`kg_ZPwj%3TUg+h_Ksnu*{d@n( zZqR#O{@x^+U+M6z1isw4i`lAOBFt?T=Wft>sDH(6h19ym+Xbu~3}!SPm0uIA8?vW4 zDl&t25_94L0U^fvlp7HOrYWnkmOLnJD-injqM1ie>04^Sf}qo!r#bIlSUF>HL-etR zYZq@lOWSHS*H7@fj`GseQ{M!peHFN$x9#M!t{Fz(BD_u5O#WTw^5tA6`=PBO#YVMk z()@-e50|=aihNozZ_9=y?}d7_-gIWC>@*1L-m*2FsdtUWWy=PYN2V;VSstl0@V{2^ zoAyT2uI84l+=I-$_t$T4ub6xwkAM5_x3M)H<i3k%k@6dpBp(M=BuIaKuey!cC( zeJ3^MUAp2_yL#ikmmELp_H=n|;s2*sV_f=hHtXhHyFZ$0ZCT}J!1Hd~+9~rp8ePt| z?d#Z^x_IlQzq@^kyeivxj&~fcy!iOesf`RvVw{>cMFjO4Fa138?%K9HzJHYGJzspg zvg2rzLfB^>^R2JD=Lqe6en}zLzF2eq{Fjg3Gwl8Npx~fT)1I|b+ZQLlw_6c8=fSz@yqMp? z_G&@&BGd9WY|GO9|JtMndrd9kOmF?rHs9OW^=nw*nG7GExRpN^oPEUP93ub0`qav+ z@66=o?Dg1|#?ExsUNd?7qRJ%?rBarhNWY@D__rAc^CWJjAG~|SZ!s@VF7RB^-tYMD z@a=4E3C`bjJles0CdZ%ae`hXuaXoxN@o5d`^KY4c71=ZFRWg3?KQ!~%qa=qz2dBHe zjw-9MIPQD&_M7j!|7Oqo6Y{rf`DU{n5=ZCT&fWSJ?VxIF4(Z9$Ss55!3o$UL5}4F1 z2A>`ZTErh7J^7ZINZt4K7GJrS9j-FJIsIJOx5kFaMu`dRn@^|Q>T#D~^y+!yRmAb~ z%l_{trsW@acI}Oi{44gHmv{Q@YK7Llw(5)i=i+tb{mO5bn>Q~%ox~u%VZrGQKl+5- zcDA+Xs!n8&;N~o6-z$2jkWI|_3sv(+zOPyhSxz5btcY8B0=doEn6 zcYLv<0cSJ!nJb0wDxIb>dHz2$;|SAqb_LC6f|FI#rcba^WC7IBHYsvS?nd&4;{ZbKOunbntDv0at9rMSl0h^N~Hz_WQnnzTw6Bw7(~7 zL|P2y9!#*3?0dHOC5yZMLiCBeCbv5cswus)*Stq%A z%CVfYNozXtjW#XZASl1$Nd(7|kashTx|bVlojQ4g>}8kdk0%%Xkx7>D_uvij(mU0- zh_iR=gjKUnJbY%6ty%WK{ixUTxV4AQFZEcdVszU7OQ*(VolFUf!w*vb*V*(RdikK# zpnqBUGW!DV{ncXM9+t?QWiPjtzIXh6hLJ4W)0d6Xev7X= z7F?I_mt)#qJ$dnq92J%jub-!~-LyqkHTcG>C4J9vnLI5}n)mp9xsN;cT?*u1w|<{U zzEQoz{}~O(gvEX=?Pxyvr~QbteS|z)@gmXK$vPJ&rdewl^`5pDoU=$l$y3Ocjqlyf z2)$>icifb&{xrXOZF*^{n)&j{mEXP^rVC_T`Orid_=vR$VrC3|=qt3OT|*^}+43Q#Ln3v`u7^wDx2^3*_8*YrF2^I~SGB zTHlEM`?Y(PdF79-#=lEd^xk&$Z~IUoDHHt6Gu!s}Hc=@l!}kLIDu?xFyXbf_E!8(M z*U7dp7n_sJ|94SqxyvNks};AN9PWN~vi;g0w$3Q&q!{(4D>rYo=xkaQ@r+k4X!jzC z?4`Tbvg9TmUvN4#eL_T6x89tDlh#`QMV|#O3!N!-u;-P}r_HW%?zKy99XkAc*6lSr zuf9xc+f+~-R3EtDCdW9KsisK=Hd9uuKCz&qJ^he^V8vdJ zQ_6>m-wG*qcq(Z|%6_<&6jHPO_6@JfFUO``{B+^iZr^(qpNpRwo%A{#=WwWCk3!6O zgAj$K6LQTp-@Q!c_V&M$!5o;jD|d?bhnVQV7S_KjR69#U{Hro9n09pS9}5q{qn)ULv(ePCYUa-*z$hok#QhTNUlst%}{V52|h29H;#3V%;q9 zd#`d+e4{1`zI1H8`M#r5H@T~D>Dkb|Jq@eZq+XAaUznVAs5)<%^|M_$qJ7g|M1Qio ze}~OU_o~R-e|(!Vf0kz3I(JTb*RpJbsMldR>$YXP9w~HhQ7UK__#ExnmvY)SEoT1Z z-)nz9H=Z83c!|VOUcK6|>3KP)t%L4FwcSuCz4^1bysx0W<>$Vs3Ckbv7w)M(7QWqT z!No+uTvwBonY%acatqMOl|6VSanrM>!SjqG)i1y9j<>pdt;k0A^Yfeax}Tq)s+`z= z;UClg%NPGw{?DweHR@Ar5r<{cMG?otU&J^FS< zR%EmG;!EmV3fR13T>lnFaZC~8+IT5u`vh&?`%$|CCvEIp6{UMknp^z2xIE+2sJdTE zBzFsIdNoU4F>>ZDYkm-Jv-Gx^aSQtuHw{kl#l;d94cmPym(Pz}ouyI99Td5OH;6G& zL7bIo-;#((0U?>UP6acSOb+GkQoAjr{B4Ksg0N}A(}Z^|(y(`7+}^_&E1kXiG-#2E z;QNTaDRKSXa;eA4AF9l7Jtzs<^(dCXlkq2%+m|U^_d{33k{Z`HT=y7m9=82*DR?wG|WpKjS0wI-`Nwx?3S%nZn~ZvAuGHS?|k41JRPCvmALcmqy0~MW<39<^U!soN&&0=o|XRv zR02z$^B!FMwb;CiY3L<9}H}7sdIX+o?)jdox0|U>byDMs_y5@y_WiY^`4Y}b?m}3Z1<#} z@438JCuyVh=D!aPo$KX^=Uz}mTuiVdaUbsQ9P`vad{;%e!{fE7G?v;FG zV_-NgMEGc~(jw5cGgHHJ^KV-S{aY7rsGe~B(%RKKJjKgTT#I-zOT=`WN7s$JIe{!} zxtGlZBSSn-t^5D?+=MAECtoT(-xHyf-gbUZky_tljjoUKf6r=9O@C@=^`UjzY4yAZ zqBb9nUa{3LKFH0yGeToo--c;icCu%~!~(zgO>U6v*^r{TXUZFdCjk#vuF3tx%c)sEeZUx^Tf_;3w~_((g-OiWC>I1Q;k;GHAj}= z>|wL6$MYt(d|uEZcr=Y8YTemJO}Vu#W?nj4mkk4YxlDOEFSx8}_>sjmIg{uA?pc1z z4!=k=`d#q7l8rz7`}gqen@^q z&;3cq=36ehOR89(e#y|`Ja776{SR-oJ12L4Q!>wDIi{#Q)~ZDb=U=LQx$`@n=e=ao zilr8B6KvXkEO;CykT>z*?n}+W|Exc~`jT4G!m|8a$kBM6zh`H6i$|WG|7SAaSyuZ> zmwW3Q*Baz87nWM|AO8FNTrTJ1%{%nJL?6BSQSwpzgkRq!>Rw*3Ogrkkl8ONExE{*3o zTNg#mxUgNHRgLA%sbDoO9n~`@4hdQr?~pzbT(GHf#fs2Hz03Ape6y{zy4yXRySndq zNc02C7#CxfCHD;fw*0!brS#RjpL;m?s{N9qm%Du^>-m@{q_5Yyy`WI;)eX0+{3bc2 zA0BOdbT06Y9AC3ux7aS4V)giFoJM3y#Y5FX-`2wW_g8Ih2~zUA?DNqm z-Fx1V2VsYVw!FVKFG@>p$NJ`+8)1K*KVf2v zQ!ZY4qSl-B`vXKjZSX=t6wXAFWc)K73!qxBpY=6vR+HBBCp0Nwq>qIwj4VU8Oe61q@k02 z;=?Hp0u66gmwmIW_6)ya5;FJNhlMk*2{4#FPdL2b_RW|>PN()H&dj(yS1&d2!_wAA zC+gZ+W=|0*(wx7A*W>oh%=o|)RT&T5&NL}=n(e$%f7xNf0W0sgO*ZpX4I~!6S5n_~ zVXE$ju%^J>f3&IZnrEB+q~7hWt$O6G&jCyqMd}hPel5;7ohH8H*vUz1@#}bJ z`k&0&{Pwo4M8LoP*?JnD>kJZj7q)L(pX2;;$@=_5OLHfmP<^bB_`AKN=w90HrA24` zH_o^JxOm&!6oE_qrqj%JOKmjeFOzstG+E(~AKTA$vyHe<*4Rb%JqTK!_xekc`=ZIx zve!4QI^t;K8DF$?@`HOG57$3WTeaCFv;CN~;m6I}S5J!9+z}qsQ7qdN)flG-owLT%Xfa* zb9&DWuYF#obNKw)8Pzck|i42Xdx3>V^MZb1CTW_sgeG=Ga*-^ss&Jma;;` z<4;_XC&Oah4NZ?aB3&+~<}go@+cwD~*~+{yPvv^dnwo&hMdm(>wmVnvi zmMtqCG?SRD9$Wf6m;F&|Gyh!e`^zOCk6%5@WY@cX{qfC5ON`oAXYbfEYwujWW#PuJ z_BMZfWBkW-?%uDAnzm0^-g9LpEoa#2DXYhv-*=-ZuPgi4ssl6BZPZ+nLN|#X()!;R zBp{#>ux_W((O{8VmrnnfmAx$YKZDnry6Zl7cP*Ng z{y;vzKl@L;5AWZ{ybqSv@431x?#J=lkEOP*oM`{azu%-GdGWHl%rZaH?K986G3ROj zw=?(r-;2#>Z!g}xDAeW8<{IiN7N)s;_uyW8jQeaRnvC)hS`qESG-b$99WbT8lT_EWz-f84TQSXH|vd-cQSO8pn= zxpNqHEvVge%V7VJm)EPgB2%SaAJhE9)x3N2688TA=ey$fHhq@+z_M%WzDlime?INn z8vUKY*y_)&=G`id=J_X*`+1J7ygo0~z3|r`nR!+ZgD>SBdD6F9ZO;FqTU%vzzTo@7 zm({tGv#_}S_RL)tEU&MBmOE$qe(SSK7;Qht zYd*bJ-JfUP0?|3rKO=w2oMYE(yZg${>G#y;)50rU87FI(7F^8apY7c%Y4XP=VD3{U z{@UHQpFdvr_SuYuFSZ@EtzbTU{IJot9gmt$IQ`Gt#s1huXW`vLn;QRdqxLy|sJyyg z!NkC@o0);ZjzAHLbnRz+d?w`1%;bW~l8pR3U1JNqg39F7;Inzch649Ye5HL(GsY!M z5q3SBH#<&1!Q~d4VBpdVzAI;SKfOCQXH8yCvi03I^GCH7Ur%+0KRA*jv`TExr!#%& zHlNS-pWnVc(&6>z{#s?@E#DIBx+y^TF;39TVSOnrFV*hjg`2P6Ft3V{m5Dg!m(q1Ak~8lFSR`*Gl}_Sf(|#!9?y#v6S#tGO zSRA^bIN{@KpC~Vbnau_*%A%YLwOu$vtrdHi=@KO=kvdi$xV=-{>+zx=uLju-Rhma-qN({HlJQ#UT{l~Xpz?558OZZmpFY}?RI%r@b0yH6*iTchs7rEGyQhhZ-@Pj z%97nDE0+bIbLZ6)GL>6fylT}_cYzC@t90+#Jv)6ZJkiZJ?uCuIK}n(I#wE|MpPu;W zPj$lVl2XSydAGVOC1v00Wh-`v&)9mJGwI^I4U41R4F1wxqHBFbUlPIqdW?*p9U|_H&Ax$SH<)xurWIHwL zZn3m`(fygRI%3=tS~R>C+37fMdShH8qxNX9ik353jr;JJ;*5VT)c*T9#|G(Nz=kOMbH+%52WeO_{@UdDrBEsd=}gBh|TW zr=765IOopqsMl*2Rx0yG*BvqWQ+4du3S+gLtM&2OAFF4b=$a!TxH!q@$x%f^J-%+v zLKhj)<42ZQ==rUAHg}K3OBtc%a|%DsDUO&^rgr4>Il;h!zAoc)hK1K=is)M$KWh2B zrQ)KcW?Ye9=X;CumF;^9-)}H~DEnD$@8f%%@0XOXO0!;`pZzFxVlC78uk-F-o68g< zev~7o|H4-or? zCzf))P28n?JM{ebZks3X+78El+^JSry#LR=k_{JUzPn;AZWcY)YwN>KZuxbUai0&( zioRX(dDCnE?biRc{JxOgxoytB3)K&plj98DhRJQo3Z8pB@zh<0fBTws1oC~JHSm4t zv{{yH_g=&9rrGUBjJF@!ioNjvDYkgmHRidN3w;k*v0UxXn*ZVPEyLbp2iD9ByHwUA zcRYK7y1u<}K+np6{HnD9>$f*uSa ze{w2JvRK((u6%d)XY13OGndq^tJ!X1Z~jD48?tkME;fI^yZpJ>GjHu; z?x!h-tT&%Nz4Z3xcc%_DRVTkIv)K9EZS(iAw9}_89;Y1o`eyIZo3l@RIotZ_jLh9U zn^$`RXBFm84@)cjs=jF3)Ss!}{Z`s+u37%2Ia0Oh*ZwA^tMe6qnydWpdtyJ~kNTwh zNWn|JZ_}nA0a<*SskCmn2v!0GU##%dm9g2vR zS+!Jf+B}1Xb;TUM0jI0m1s2R}xXGl$=)<@`wr!jEQP09xoD!T3SBf8*Y>^W@-_10| zec|^W3vc7TPVoaAag*8;CGYC)W{?j##*`Vi@Yb3i|3tRxRmUaja#)2gU*24{`=$TY zy$j5)PFsCB`=DEK)U{RNdi#G#@vhx+|euNnTkSY=iV>w@!PwVYs=lJ+HZnAYnwAO&xYJD zi;P+ky0(#xwT?x@yg|WW2ZMw|q(A$qYPNvA)0wiq_$*i%7qy{HRiA6$)OSl49_6|8 zT5O6WV?yMW-PZ0kL`=n;Q_1mhu=YqozPF|MT6Sn^~*sJOI<880O z_E)SetMU$4$82#r{C$>br5tMwBWKctIc`OQCskFZ3$O6{ptU7t`@L1{>wa^d%4AZV zZglhA^(3|n?>Kbz<*Kt8cJ;n+pY%_B%9d^Gem-`P4Ak>yd2nz0&Ep%GU%O3+GMCP* zl)PmTm;ZT*?cE1Oa<8V@^Y5*?-^26ekJW~UTHSsNkN+)A)KUJkTkuTkGLBfLBH;zrqm~tYZzjn?X&MQGL+_pKGm$_B_3V!xq$}KHZ z#b))4*L9QL+`oH5T)fG2{rP#z-lQB!VwGm{|K)kP^~q$DpS@M>e|Ab&mT#E8`byM+ zYlre)uX|VG-_#}Ys&3&`KCUMp19#dK?)z|qdsq9jD3g^7OjdkY^hU04_JuAbx6>)@ zpF~|+J9o_Q(Unq&cR0*qeECGqZg)2JmAm~#-M_Dhu6R`Y{-Dv%|E@RrZe1-a{uX%k z^#h?PT5`)0k`q5ZJ9Oqv(Tq^ha={vzmH9KeqfQ8(yy#LGc=XWXyu0CxiaPnP^J^Vk z7H{(8^$lA?pLvSeZEQum{l7o%c%>gud|oK4$GH1>MBnO5Y;VmYTIAqV5dztCVjfQn>+4BYVEYxK-GUR1k8uQ;eVd+2hcFl9r;d+z8 z0ou_w5S}Nk|Z?OgLH~hGF`0S8l_}#$2ocX|Hhx=_(5gQa04%|J& z>hf>vah8a0Wm4inKY33iil18AzHE(6(gnRA0w=^S@XpoOFn8fw&$~=7bLahArwT7! zJ+$>f;ql$`OpeKZ6kg7yot<#y1ADid^HPV;sXQ(Rn@^m2{OHPoJ3FIt9vP@^nkm|` zuHz;{zN`6xduPLB+2`H=|0adw$G!G>EFzi?HFx^bUDnLe4>4>0#ugF0^-_-Ay{FEG z1|^wq`_xbV;bIYK?fcYY=OQV%`TM)OxAzLaxO(BXL-oRIYu5OQzA~L5vtWzfJpGWX z(_9%%-`>?)^gwRKA0yU?f`@1C9#}jh=*Q%@!VwwQ|5{mm_FDbQGi3FJFHt8-0>e)@ zbJf;$s67{v)|&C3J;cMtGxH~B+UIwQK@a~4GPiXUq#diWIsf56v-<<}l%9;HjEWb3 zvySmptj$%6=M3ufU$TQ`&x_Iw;|;nF@oCNZEzPoDQV&X7U6{Ve?n^^K%Rawlx|gnR zl}@>Ks4J`Ogp28CHaR}`mcJrle>`YCQ$7rkAu@4zwsZk`V-lW(76smjR_ zPfmFF^Igy)mhHEMLc(Xd{61*KvNWY=$<4pdrq1}cF4Sv7XKb$2jr~6o-adY>(fF6& zJ@A)P_LBEZ=jsk4uVyE8M<33qH>H%M z*K+uK)`n*;?k`N&JGpV@A5;;_6e|D;6{_bl9PN{@V?|t~3wC+i}9;V$5E|pJx%2Rjf zJ5ONA4tS52U;K5D?wPUSvJ44)Z*B`VBk>>t#fMGf}`>N$Os~R8XCI3^s z`ZqMmamF$y)4Mr}%BN~ zZWK+t+hj1|&UF>J8&NAhK7n`=8|r#!y>a&>pf@cKGQqtAYxU8g{qoI37 z!FlFE9iu5`X_FS7NiviCd}c;qTTx4p`7GmALgwdYSny3NaFRQys;?Azp!9uj_T-wQ z-nSC=C50}oY2CKip7lJFLeq6k#si9%Tcj2$?tSH4IroCl>Ow!m(AFK^UM{~bWF#Gm zQ0$nzEO4vX*_*qyckFLJnEi9go#QSIeJdN@P5f7rI*IQ_`2mk>jdg(v>${8=)lAQ~ zH4!a1Ew377WZW{JS7CXCOnhL{B5S(?+`69=+&+ZOn8xrt=O};rrrHCa4;{`Hz0b;6 z`L%ssN6l%;X-n4cZf#8Gm$W&+dC%x%ZoSK#HyMWixa;N|l3iHuFMRCwjJgL(qE~r+ za$LTOT)7;0_XrF7l*}3V2WnQQt9~{PIPZ}8{mZ$MRO#CY@`q0+T`}ID@gOmxh#hu?X;=#hjty7kFhfN%rbYnGq5t1 zZ9kynA$`H=aN+lJIhko?oD1@QvcHR|O#5~(VC#_^?~C?FNmcu*#QoTQ^^AP2@!60| zHIHX!E|c2xUSN`o&TBz+FP$Z`-{dZxEz@^BT(IuM?ZxZcli6AB$ONa&P&=9s_dxN_ zag$R%ZcEwSX0oKKWiAX=d%LJ3_~qlEMN^(nSm3U)?Dw`*rF+vfB0{8bno=Htv znbE_!Vfou73rjh@w6o4KFl1Smoo5o=QoU@7W0`t01Bc=cUR%pg3nF>;2sdomemVMP zTv6=6Ys`umsn;!_4wH`*A`8oulI5{PPIO+=cBeFM{T=B)~A-f zD?J*|Op13MRlgB<&vsk={g73Q{jHOdC*L=V3kit;PDB5tWQgNPPOdXzfzWuRW$XOcpP3|ZhQRG^;QR*9*$Apdvn$GSMzSX<|vpiy<3mF zL3u8_gyhr58yFvmRm|gM7JM3T`sf~!3UPi<-jmKM{aY+9-IEBhsSo&AR{HL-%k#F@ zTOA9NPdwr5b;{+LV;pws(%Qg9mOoxz`^?UMW_{*gM&oCz6f(jXHw&_!S*ej=wz$Dk zchiq&E|0pGHXn{{TDh;loKLv$czLs{vdrqMOP?oQ^3Pn^Rc?I6Vf_iWz%>Q?g74PV zMEx__wmY%#o$$0d)30i;fA?|k`(W2&o%Xm_o%z5a z)Ss&^t=HVA()69U7T3$ZGp4ieWi4H~$HHR2y|+MPKnm|kd4+?A=d5A=IcK%$zmgN5 z1oG{UK7E=|`8eah&VSSA&eLY>xp-su5f!_L&S@I{6O)rQdG}c9yyTs5$aL*jqbrpQ z)=PizzW6EbxY(EPA%{+c`c(hf-lc#DW3Z(q|`R{03 zm1{@*rXL2p+_qi%g$LLY-POP8inG0s*6a?SrCb|x-Rj4oiAR4Ozq;Apwxh8`Hjj_% zS9on*VbT5O#g6RieeYb8?ggDwCY`#rW4Os~* zS0_h((VO!4PpIGef{-=->%SaZHB~H)uXXvRA4h%ev(;GbU`(++vADSAJL~*U9w&d> z+O(9V+V>a$eE0_erG+t4jKW1^cJ}$md(Qvgl6M`@SQq z<<$Bv>{=$|aXnDBhG$amVlmeJ5*81#1LmFjIET;dh`a8ojT@Nv$4fk}-8uW1|U|6Qdz+gqnpk6@%+L+$nsJq2?u9fcpal>D4`jbhM zJR-{kj`!~EbG^CgO-4j$uTSu_oYbQoJ-YdK6ArLWW7)~QMsLHS9gKG~U-Z3XPq&(D z_f&E7o8Z5fGXFP!TYC9r@iP93x88p*9Y1&F^2+LSI~l}osJ``_Q&nETct?Lu^}cuS zWgaZQd^weE|NK8`Yrno0J@#*I@81xMI+phD;Q=$&ob)+4#X2Z>(dIi-Uam0_wOZ{v z_1w<1b0I!kC%+e)#oBqWbY1Y9X|tB*?TlRZyCywL_pQIibMErXX@c*%uHBh#Mcq zQrlk_MO2-?b*mt{dYb&X+~|FoTYKw{e}B8~>9^V!>U%j{1K;nseS6zx*|16PwpZ=F zW+DG%2EUYuSo2ro80$6BW>fnm)1pnjtw~bK$GVxn}DRDA@5H zP49Wk5`SmUqw?zTsEp@kIk8Wc2t_n-Q}L5?6!8Pu!Vin z39de_X#LAwhfmE*{aSLbTt+03Ga_+o&GhPrXJ$Lykq-2Ycyevq+n-|WZ3n#$f4a3h zyVv*c!CPz15ATt1|HECpw(oW1SDX2c)8Y=S%FL5ocF)LauI_`Bh}Nsyzqx(q;^9~I zs}Vmc(-%~DB{jvlcSm^3|E8FUArBV!?3v^FQRuhXtICw!$tAk6{HJ%_D?MAszFvFR zzZLl5WLo1N!<-SXV&{gZ7>f7iq{J>viHQDf4gC0ediU!A-5R(xOB_OncLKBozm z>=E(H&$;8h@+a%1*FJaOFLcbb&Bi5N%?6epK6|UF4s=g`+G&)&Fg2(fwoNn zUUi*Q-d$S!yyeo;slI~GO#6=tg*|aQb#VTnM?zxf=Q!zmJ?E{-QoYEi_}@|2+g!`R z+w0<*WxOxbInVCCv{1yu!!({}Np5EI&r<=drY9P0&ah5e@1mxvuD0}mspN$CwyllN z?*&&HGxYC0^5MpUsn?#esk2+Dig|a%zi6yxIQ@t_qLi=ubA-;ZISP{>if>$hY2%z- zvy#qSPXEZlzRz}3x6ua`eetDQH{1mK4mwRUK4c;NmFarHm-3AjV%_hLaw+B{ywq{7 z;Oi2ti8C~8Nt&3Y?vtoy*7|IRW{iUJgjuVm-afls)rfUvq(OHYr_Z8{X=gPprk`;w zJ~pRy+9u2NYYWm&%`q2$5My|L=JSU(zPGOlxks^CNuH3cmcF*Kbj|TF_u|{P)_&bR zFRj4)b>a7oxlzwHZQGfgxsCbW>f9|4PF=S8HgDd+X(c_8|ARzRyzjq#M93jC>x3|}vG zI|`l(3TWDtvq;dNH8>#5XHMm8tx%ClrdsGlo?iFkLsZ z?DYAb=(pATZukDm%zZH_XY#GShcoW=ZA|ZdRxEp$wL0?Rt=i?TN7B{0%ep=6ZvE@K zd&|-Dky+BrS&SwJG7Pp|44!6e?DF~WV%r_t9GtiPjy)~;x^>nkE**`$qwYVff6VE7 zSSk6oL+x$Uy!4#t{mOS4v}Agtbx+svlrMWIEga&`uW)F+T1(~qj&~I&LXV%}dHMV8 z>Fb?6f`PewL0=YbPXBoPLBOT%?H1)f%_D#9TgtfOO2)j-sljizZ_0b^dHU5uF2BhJ zinH=JotXC8LacYG*qn27B6LD8C&mA*kJGXB{9beTeRb7o)3qlR*MGX)RZb`>dBiIs+4r?E(e`USsk%$=~nAw z-!`Rf-#R^h5$6e}$Jfr7>|1SlP1rt(=bN`T%lrK^Rg(PXoqO+_ay{eBG}gSkUe=l$ zt{cwWGi4^jA3MDZKVKOxcK7L+ZPA>x@7wQ>5AHWj=}h^*AYC_GB3l1`eEi=3&t~o0 z`K>_s`n+}3kMka1YyQ5qcK2n*XH5LNmP12ePn_Aeb^XJP1+NZN zb4Fw-K7IVd`GIu9rp4~I{57S~6Ke!wN&BP(cRWC!GW49G!Ct5FaJCoMIEv}b#>`h0~x($=WCU*E}C2;T4 z3sSuM<6Q5%OEN3YcT9Lvsblcvv3}A=W*q~I=cglL4n9iNiStz2yE-D_Tl4<5qu$G1 z#3X7GGM**c9QtRWe^p`9N$>Q(?9VR+l#8tDV?W_}<9m$AH^&w1PX(CvJJ>mH(JMYX z-S?-*uhtZ;mKEYlMHYQi$my1Sn9seim0d1;tGs(1?-n_Ab!FRv-v!M(M87BGcv-fs zxvt{;j%l9T@(CY(7W}9^elG7((jn2F3Zu<;-bc>yabC>cBqV&#Cp)LB>0-^2ZOzNW zjWv$FNH|d|uy`h$%g-f|TI<&T%u!l-aYg8>onp$m5(du99{WExy(r|ZlVB!uOIA)Q*HTq_&icfUafb8HV|zYa4YbnG32NcHXK}_+ z%7LP ztRLR0^L?!R12xsPw+`^Vwc>UDL_?-{i^^=r0?o|-Vl zE|Bg2v*!sZaZ)m7%sP4>!CB_+rQTla_3~4-DLa@U)A|C^Kc~7Q+?ICv+H@E``=JMv;M7~ z!)eP1dF~>I$fvx|8U(yuw1jwvqqefon&r=T2wB$vBG8dbcMw$>c#Zjrk=cKXeq9Dz=+{)l&m(}6wVzjx=iU7rB&x&3seeM z&i|eA+O0k6QATsdS1ZB28(dT8YAQ~=@h|iFp}A{$ug#zPJM4bB;6258HUhuDY_|9o zS#a^L-Wt`*(ofDT3_qWBGgtbM=#Bq5*RRBFkd@%FyZhx;WZA)WJ=R7!M;jK%PCwz) zR&j#IFv_N?=hKVQOW^|hG^Pbz?R9e6| zk%fg@C0=I!se3=`{Mn~`f8ubz(6+wlkoD}@ucb;aY-oO#;xzHfhk2*nx&L=XZjgT{ z7b92jbLot$*W=}8UoSj*W%+{l-^&hs+90-M=7iRdb00ceJg|A6U3*^0=cr`RtzGHg zOC0>Jmj)QzR*@+2`p|q=AR+d;+ufimb5E_T6VEi>!ZB)!(@O=BgKlfsb~pm=YQo^98-HA z%zyoOYyYO=-vU314}UWVzopKQGeKUCHIivfTtx96yM0U^k;}`1t1CB5$?K5qEBoBP z;AQo4^VDY&I?H0JTN(^AHlI1m!xF0Wpl!jS+f9!mo=s2iPFCkR$CD_Xcj<>5mxG1_ zyR5_Eb*I)RS)K`8ZE}Xa=RQw@w((Qpm&`u{tXw82ywutvx*&ZblN4*B4pYSA8mo?j z_tiKUA3v#W&r#w{KECJpk-jODGNaZkDVf5vWN%UHCh?^EXTBVizfrYn^@qj#PWUYO zG`H`jU?$t`$~W&KpB*uIa!BL8ljP~pp4fuxOz)}}2zgqm)!kKIanh=c;k7EmjCp?2 zru&N6w(NR+>zqUre|ibeG}fCP4-W@@S~Sb)?k*v}rDCGzd{u&Hiw3HmXqI^BZn3k2 z`;TnMOpzYlV`-aM7JdHkRAKh23)y}>e5WR9P2I0^sxtLM65FXy`xYlZS0dIcyV zR^}hx1uV17GC029A;!GFjZe_YroU(N0V%g)odh;#p%Y=5Idu~k=Q#YmEzqh~~_Z)q{$)feM^P8Dl?zV5UKk_PD$LqaH?&|N- zvz4wpSI&KXV;O@U-|`^I7K8jKkt_cjc$P;NRHrB=`d#>XIPk=o`Z>H)KlXmH&JYUM zT*sU|A^oLqdE~0VDdEjO)+w#@`5QE~yX2g9Wme>bRi7UGj?dToa`eCstCJh8awl1R zES|F-1p^@GLhogb8|Pe|lbotxEFwxaS**gAnP zhxZ;mVq3m>9ar0asp7pmr|76SO<4KIv$*c~hevZgx6k`>;Mmz`#Sxx6Z5W~+9JV;* zaW|v6{QBfI@x_`iMZbTD6~9$$VEHlhkdN7ea~H#{#ZEm@I_aV+dFGTre!b@DPya71 z6j^%kbNu=0S*!I-U!6B`f7u^6tKrVanl?e1U?rvHKe&$me{gW|)Xy@hqKnSzPF?9U zssF)J$6NcB_BTuos5+C{ruy)Of%3%Y#Ydd$f`7aWExNTVu{2iwOk@A^eLun;vH4mx zMj!fgjM3rpyIaDym%qt~*k*gXvC;4Js`K2_%r@-k-!%7}0`H@$&6C=G{!zd2ol#6W zVnI;RAB~>>BHiULIaiwQZQshD{QIHRHgBcnVdpz*GgP8B?WpdoSsv8%i#O^3!_t~u zu^c_SD=+5v?>pqUdX4U>Nj%@wjU}@l{;KcVskNoS)kyTcq@32gkFUCG7`K`1RO+@2 z3Hu{tyw7!K)y61GeO<56l}eYd$9AV@271eFjC*ErFZWzkFtgHuZA0)Scik@&!>7y`cdu{<6M95Aua8OxP+Ia(>^*_&Lv^hviaK zx})C3Jx^z`pDbaxl`F5-C~@|3Ttz|k*RR>@_b#hE);Rst<|RQVm9Ba%;EOkP-P!z$ z<3fEO&uHxMwbp3<+o?a< zg{)id)_-X7f04p5iD!!N%uTsGObykHhu>RoA&TBGXAOAQhZ@HwyI?<4E>yM>k?^V`Feq@(@60iPe;)NO68#u4OSbR{Y z{?W--mwR7q?{uwQrf9aCtzOvs$K7R%<7|INo0zcwW9%;a&vNP{|L44%A{EPr`~82% z@b-SJox+yIU?DlR^MH{I%kNkpov$=;i}LE{-9dlWPuRasqjG80x?gkuGo!8ntoeM=WF0dD z!#*|!1_u&`3lZ04qONT1o#L4P*hS=c`myBWhMKy&y|+cHY;jsMfz?-_T~ugc)J9hi z8KnTn1sUPfUe7f1n|njjKdM89bLCU!54@8e*U9@8Kiv}Fc>2@4xmz-~vCI6tx$*v= zzw__!F}Kgptz_ww|NqbI*HP6c@|y|^Eao4aY2T*c(a)h3;Z*&`T1n^N`i=*ec5SJO z*`WOBcJQ;x^@TC!w?dM%m!4PfxU_h|v4FQ-U)FeWhvYmwa8=Co;i0R7r2${hd<(QW zBlOe8_k7aN+7(K>)O@BtIv==)(Q&eO&;$lMhUU!c>22K>mySuboLb)Y+{m)hbqe#! z|8m>D8f2#zZnKw6O)OD6`p-4~RLXw&IXwISD4n>SIc{a$I7j~dq;KQLA$EM5KbUE9lRTAE4O@3ISSX@9SG&{&~mB6-15`$f~ah=b3r zHOWkxeq8^?nOPs3&hI>6UY5A}?xA_Nn{+e&`D{2;=kY*O(xN!-2KTDEy*uT1PJPyN zX3n9R*SRE|Js&2pW$fU-r1&^i<=d%OQtnF*8^}rC`t-W(`_^+lYiAYYNxi;oRJP`+ zf%&zSSB{-7T~Sge_D0|}l(1^Y)?!&t!wi&)jsNiRI3i@t%S@WXCoT*jv&ccVCdG47un({P!2>!Ca zn7wVgpu;y^mLF?>aUIN8ZMq}+rDM({Nx!x;nVbtYvjkk_ZCxE2Vez#|Y+6FopObPE zjhD@8=$ZaFr>1|ZX&zVhyBD(*Zi!yF7S8gXyX++2N!3<)g_d_EyV~{~W1F{Wz1;m* zS^HvEExtOfkjwV(r^lCAHSd}pl>Om+^^nvB;cF`Ok&ovZ9$z>Amj9>q^Pkvh&y@ac zfed^aKA$_BQ^Y7sk(3{I-M~I~lxm>4&$gf-CILmWJBhD^0z# zEqaxW>-_4|K@WN^R|l|Fe_<@vQ0}=`efZvBb(6qq+^}#|w<4a18S8?(Y}YvVC#53mT$9#hf8DrUBuMEf z|3h=x``TCf1$*VPvyP}7YtO1}%Fy=Oy61P;(Yzl$*Q~6kUhn&`^3Jks?YiX2ZP$9| zZg^T9w)kz3{+gPm;MjjIty@;Pz4{zzsVV7eCQ<6dC0i+%+p_Mx>95X|BQ90UQ46>P z+#L@w1nNC3NjPBTbL>yRN^#GbArG=92pVx+7m`$dTwr?A(1`K6(M*-#g0&MKKVgY+ zf1$DV!bDpI4ogqJgOdv@jP@;Oa`c;=`NNiRzxspkDwfXY4!zg>BvC1|?)bx>A~yDp z^A!9Ky`TK$%CVQryyhv1^`y_T@lAX1Qu34OC!Uz|lgv*RKaqK2jfz zvYx1Jic#F0!Z**xQ_QpX%;CGiPgp-GJ&F91Y2`dmRe$38{|nhpf9CzNc|Bzbmqi|a?d3p<{kc*}FrM%jqt;D~qKrj4F%(~0lEB9P=0NP&&D=?dio_?(E0_ z?HQ~|!7-gn(ww+w1l;d1F_E(vsf$oZ@RXaA!~6 z^0RjN-KC7{#Z_`oZ`!(KN=-s;Y4e4s#fx~)30%qCqH}9m^oBh(2X9tQzyI4eE_=aF zg^bUM0^0@E-p0Rw;4s&$KI><;^ojNwAIIpv)1NA5I&8UAB6+=h;oT#t5gV>KuuXb4 zP2u_>)2$8~wikuuHLh)_=$%#CYBo1-HhTyY~v-RMV~%h%33@n z@Sa)?_lLi7S|7|*7GAns)oQzT`Hh6P3Za#&1Z#p`JlrcMR(-1NqH)E_q=;89KizvH zdUNiEJ@J(*4y>Q}B=5>>j^p2s7#GT_YH92~^ltw0$=~l>XubF@ZR)fLJ&#{j(RZbkytd<4IoWvDH58hGfRq&DWnFUVE2td*u`;(>^5z@QlsyvzuLkh)?ti>$ zSytD#oq-pwc3G{O`RZNBs{Ti-cufy)t5|(sgsc`>hhY zSQVjHz&n5D)5Rw}+bp};7VmA=(pylzTj9!qwrlJ=+~gbfF6_;-x35{_W|daIW|QWN z*}|SG>4ky?+b&Gc&42WwV20Pmd^elw7d?8(vc@wnc758o>x|s-ZS!UBO?7|ITpDpH zRQ{vOw~M=y#M&F)ylmcedE?f+Wvf4K(LQ6fV>Z|OH0PV)m-|fG=DNFG&J8{;A$ABkdfy$v6;0| z?`%}+TSSa4=K5~viHus_D|6=Dauw^%A7`xW{KM2c|D0j@h1l-$teG3Lc@h&%CY_W$ zCG~j2rkh z*lwP@ss3kGcANSG4aqAqwlWk3npu3BbV9dw&pdT_J9AO@=k*#v7K#0c)wQOgDMAs^^UCG;tUaPPp3}JUUYupV$(YZ z+LG$!Uq`Ys++#5+Jyz4LWcf7E= zYfaG<>J^d8s{X}a$e(1R@urTYTIj|?ldEwL#ijIFt0!+bbNba1j?}B#r~2>JFL2f@ zUM$p?BlV`X&fcrX_!RS-gE!=>IZQ0Q>JL}#{%zN|{M(P*qt$K!;-@#%dq=CWuK6px zVApcSv)l*lmR&Y5Qg~YQ%Jk)?GG5^=i&mx{Vs~83YW*aHcjt!xPv&(`lW*aE!8w!t z-sjzGCcZnve$dz4VMUSOyV`S0&mNpt!tV8WUx}N+^`5I`%@v0p0(7x?D*!I?S`l*6}jyA?LRtYBG1-LiaPKKY!e#BsL6 zRrSZ^?A~q<56_R-(=cP#^AuB;Wmc=$<7C@;jV)G)>P#=r-uuZZzIvYiERme~+0VoT_A)eYa^w(k1Vch{u!N{uxo7fce%d)1R|+-iSN zU{}mzqx)OtRQG9bE4j(l&g1{$5Ucj%dwuri5_5}%{iO~rU3xC;O}(%Bk2wt9e?At~ z+Sotz7dYgec00eoXu;EguaDWgv!e29T;$#@RoSV9t!F=8x+8f`fGeas$vA>xt?1Mx zrCnWoiaH%$eiE0~`rY7P9^d$6zJRmBy0B+{4BuAN#A#-{;`|}qy1%Pp(cC6$=6?ov z=lX2yoD;Kn0;Bq_KWZEXA>Tq9*cg1|8WiteuWD_t(SEsS)^}ruHvbnn`^^p+{**oA^lw+)<4<3;yT849 zH23PBd%OCq=jEDD(DEuX+VTE;gyOvy3(my6Kl0A}-pk6sbzMcxdhgEgZ54Pq{a#Gm zs{T`(-CxQa4SFPJ7BxrPYm(MPMXByCo9YAEt)}jYp-eFjsWm3gw;wvQ&|u2?FMDOK zy956%}VBir$d|fDwusy?B;o;csu2UrP9gD z$FDv`zqzXza;1=I{p!x^tC+NBUtK-p?|v7{|K`q?+qjzhULMO!{8a1HCh+!Gqf7I~ zcd&@+SjKN>p73r`_DR# zo%i1|CQjUO=k4&#Tf35GX&pMi<=`B9 zT95VH^vChBCx2{PF5LSipw-oZhl8WQIX6p&`H~LXo|&DQ8@I*Uq@7G$=$@9mCHqW1 zf3N?6{=@PI%Y@1nowHIfe55pqeNp~)jq*h1?$gRLH?Ijaw;Z0^yM0kj{o!QEeFaB< zPk6BAh*r`^_VR+nJ)Wn9U0YaqADpT4TbXrnV~a711$y>s}moYKRFpbYwwbhU(93_!YH^;q{)q&TceGCDvM~6MC-PApMZs8F`T?i zOZ^VMpTDB~;Yl}56Z2DwyHwBiPE1R@oKVl;WWUS4ZN^09lNbMfJoDFZPrCin@4^-P z7pc7UY1;5#wI`cPw(rN9<%;d6?mV9G`~5@CAEib9s=t;U`X_m6-l6+9cBLP>(Pgo2 z-l@8o*ZiXFdA~X`&6spnna#uDWahv9EFM1Lr%xUX*Js+TEUtGa=gwq{4>NvDJaFKy z@aZ~^FAo}Jg;MOKYd$3>+`9Wx+GC=w6w5g)_q&P=kIZH)c>1a&vHzGVWoaDi&S!K*hbAQ}C{7_J3!eSnNhKG{%QytQbyB{0B zX}Y$1m75y-R1W6NeIk4O{TAzenyT<>nUD{o6{F~$$dvRz-$l0`s;j(+xp?@|KF1P+ zZ42!DnG5b{6jnsAXi4qu=kFQ zZ>-DTrNnmnDeQgyqR-KiuV`(eL7T>r#{mT&F72N4eVfWw<6PzP+A^cEM?2;T6urxd z{^e8s>+RE3niqn8-g@*YdUgJ7{e3c_6%o&rlI-(SMiE% z5{dTKCW=3$P3@ja&kSPkUniXTS8Ynh3rRPF%{?2Ia9#Yd^VGd5JcVIzzBMSO9coJG zn7?|rS~^!MNAQX!%?}d!`+3S{$iI6VenFpoT6s!6%RJF))}T8k&GOy%_deQkNjoQL zz3^_^jAD^f61K_7JkhsxHrVf6dq?%5#f{JY3%4g52bpsSh)pK5(d; zto}4-$?Mj<+g-^gWLI)6S+5iQFl+MeD?5XWZ|81bn|u6e;{p+9=Kd=@;&#`XQaX2X z?Q>|fy7)IbV8Ofh^6amz^j006vf7Wk@Ud7S^W?J;za-f1ZPN7#__Tw6?%d#%6ptm! zj4gg{kt?6qSj0?Fc4kQ{a+VO~jD5YXI9Rs#WNE~{y3cdHuP;)1di3mqtGu22-)_t= zc)Q`#x3!_apH01O?ijD)bl%2w*YDShZGMEVW4@7aqown(W?tND<(TiMPjuUfew6k2 z#~8{|^>k`sFsmwK*p-0uMW?e4g*J=iYT3;`P*ZaL@cP0EtD}ou%KKC2eD=7?D1Cdo z;q8DMoHkqUUq5uHZ62q2(WI}tpXHzL6xW`Ua6Eg^)0gm+8bW zaFx^0KEFoB&2s;OpfX!Io;>^cTXx6jcC|iR-EnZzoD*;EF`AibebTe{HIuhmap6o& z<-3D34s|{MUD2ZxBDj6+hmKs|W0A}M)t{W|`Qo*hs@{S1WzX*9R&q|+FS&l+jI#zN z4U>PbclrDJlY**noz&)=2Mv=JbA4w%81(gut!^(*Y>%eIabMosC*u!a+j6CG`odYZ z53XHba#HY_niI&ZqV6*Gru~ zecF4qcj#1W|4FBX{)Ja=F<9hez3RrdY5u!%_sDO3yE}HdZn4)k-#=}+n~!h!z1-m8 z!vn@M5-jwp&DPI7!*@8>dxx^q?Rm$Sbe+su4+*lakoFCoKd~|Pe{AI; zotdov%FoCc9@m-`Y4&(Mzhd0^ zGd`&t)`{g|=H=mhhd-bw&uKz=ag?ktoIFl#ZJ=$-fP;qxkgMxhE5%U>E z;(PA03#dfd?Qr_{cGHeY4kC>GYM&lY*L`Hr=Eq~&a+dcOligG8?3@$<^7nSGt$$cvMQJwLp)w$X+#`qa)yfaIgU}Cf4EwPea6-iAVzA;-% zW|_X$I_BAB^&?N7tt0*0rjJpD_a*vBRbk`%QJqRvX&nz5cLa z<%0~x;O0W--owsI`Pd&G6mRj6HEgk}Wz=(gt}v(3;+ve9u&R1-gw2(M8w1=so25D$ zA4zqto_@1pO`*<}#KM4hEw)$OkLL6B)^hFld2?BO-$IRVvX73s{Iko53ffW-@#Ko& zqGkIonS0JXd{6c3zx8qIwkjNNyjdImMy;=x6R<36Sz%Zv!+3?$$4_g=^P>_gLd&8S z+^d9{!h4Rn+V3Rq|9LYXg|JJ!#*L&P@q?Erci1TcY zP?UGwoOdg?zE(E=qR!2xu&;tWS=(DhyLckhx63LlWBbkY;FiFjLxmdhuMMV1&0Now zQzv*(lmEu`<*p*E2ZBw%FQ3`kc|YvK`mbnH9<%;;e_FuIz>veqz~D&2^e55<&!`h0 zYo|u%-!>CDzH+v%_O{p07Dk)%D0DG3H>$9GGx)MldfT>x0X)W5Db9@f37%-ahr5&NWR8Wb zWWH>(uf%))gehusCKxHG2(Ib)`ajkwPQ)Z`>lV&LC6y;aC(U*woO$2A*yf~L+ZF~!Af1^dmNR|?8a=iJk|UnCp+ zd4BSTgHm5-itOZY-P3vW#sRyzk7~mBE4RJsP;OoPMYUIX8+)unZj)*MBMJFpoy;W` z(XPI?LItvpU0=q`W}aYmy>aL6#)Z!}F336j>1_N4o!@`^HLNz<j?znUNw~re= zg5|Qp<&HDi+%VX?Vup&p%ejv}D`fgszDqGU{MAE8B~0m|#nYcLCxXu`ZCNFG)@WYQ zwsf^!lHd7eG)ryI&dS@+df$~(+*Q}KK4;mpvftAV&v;fb)6ydT+mSUB0;`xVF3K^P zF6h#8an3*GNbxhvdu89owZGY0wQTO({2lx9icF)ouY9n|qm*sl-1XlAS`rnX?!U1> zZpL{jiM^{0?p$5JYkTj*y^g`B@BE(I`J2tk&xRp;s{FdxdY7AlexIFkAJkIt;D{f4Zih8wnvX#oF(6dqB!d|!9^sP4S-MKj~_OV@NO5Xpp znZH$&1(x1YtccrRb6sC*+3C81&wi|YnX|fL-n*mE6=VOapqk*+;WI#Z`RaH^*d^Q+HYTVV8?s@ThGp$Z~M)Ty82<^ll!bI zxEUBUL`YlxfVhboHTRc>pDn(9O!PRD0!NdG?#WGdI_i#dEO>(hH_2ERiu9|SxJIv% z^%7jUBXM?;!n>{}SEesaTXgttIKN2dd+DS9wq)5QAFIo8)w%t)-);!^y*&B9iGSX{ z?FyNmWlJCGm3@DEd;9yx-|yx1_eu)=sr@=XsJ6~+(m(CFKZ75BXZ`bM{(^-;zKdE; z`35O3nx4Js#nf3$doP7Vcg}K~;FhZvU8T!MMF1xIdWg^-f!Ii^u!>(pztAJJVMD+6Y%?z2nJhF=Kmv_k=KZpNfvu~=FOqy5kmX&{5v#QbWzvsHW&gn07*32sDi);B8 zs};WF&K}=XPop)qx0n8#xA(l*?e=4gw?FRvWygJH&(8^OLms`ax}2DoU^Z7a@3V99 z^~cYiC2n}Wvn}w;t@b;aZ&;sgU44C;?=!PI{r1n=J|0+Ud_Dcjn;laMjc+8UEzG^X zPN_ww$}w z_;N?u-R!Ni``%ugS^0pa`q2c&Zr8`N8JY9dH#A;jdu7&B<{vb(EI~r;&s$c<>eS4a z4<0036bsU;+OzRW&&oeb*`1lzu>Q~sxh^<;zol18H zt+J74KK6BUp&tL^8ZId{#~Sa#9Oo2`kj4`Ml|tsL(hn#y?pMnD!!TT*~h(Z_xX%} z3H=+>>dxQFy}Kvvr+3`#_)YT+rdQQuirn{J{>biA9-JjQa zH&`suYcAMub!+sQO-hG1MajK2`DmRS*>7ED9QSZVmg2k4XEtUlUdYIGhFyFbY;}Bf z)`#8wulKjAO>nr(QnK#b)%eqUUHlh6>1gRpzU0l8&}ndUdZ&m+h+NIeg;&%aR(=m! zD5vtxbf09#Lb+utuCP0^pEMB7T3EFt`00!b}n_*^q!Nz-qU}0hnc0-DwPF-hYY4OmKlh?tez*oKu~Gx+m8yD z8kb*xSSqG!>-dtpziUcunS|uWNHK^0f^8nIoQsy+UwNI;OsTfw^5!s?`kifIv&8z0 zHKkepJ>|LR+2$iWwITH+=jlm~5?vXyj+Ss=WVtqz>9nV@P-vP$nNyGa);~>a_9*PH za@;5S{3(ZdeEDLH?1itR51;1RH;bceg2OZJ^uv`eqMAOacCyZxw&Ko&YJnpmH>dyg zzOeeY(SL?JeP2BFANE~#`6GL3_oppanrq~>6u#v55LT1nQxt$ zvt|Ah`=i=TR?=C`cV|}2?K|6B_Sd1Ncb@dS-;EzMH>TSJuoe07tPpERbMjcmeAU;{ z^rzRd3en?=4hpvY4<(fLyEh4~ny}bqhK(BYx{7UVtL=}ee=p(L#K0u>?4QT-muHMM zuk?RO&J=ChzMPq#Bd#!+nL%uUXp`jmnM*GjvgpjU_F~D@a-1Q>yHo#gm6Z?k`uRs* ziXSeiStoIJ{$H-Gv1?lOrtW_JZtALMqW5D~hnY{GCO&=l0Q5ieL-yF-L1uS%XN#^Jar6Z30!-$_WBJ0TcJ|*w)@SS9(T!S z7QQG|*IF}A{%G+(JL@-b6}espmd3Uk%XSs#&p9SLG4OlL^s9!ic0cc4{9d%UAh2)Z zjlC7K4nAYJIpHw(rUI>=sg5F{ZJrw$9e=;Q&9Hchy7QL>>Z=(p&d^cZ)OYgzljB)) zM4pNYJN;C0+ah$bJ6w5_{6zKi!?$)^ZL#7wz2`Rj;R)ALdSB@8mftJsEuL?>ch}u7 z`TF~Aah0~6SQY!Tcysm<$uJFiQ_E>a=|9Q%sH<{BReJ)K^fol?rZ(eP(!=4z(a zsSPoT6)6_`9y?jJ{}N8Py^=lf5N8B;&&hdg2l~=k^EILvS3X>EdPlL~?DCD3`7_QX zPjIVv_WrTVtj2iP6#37R?XymIJzd{>^y{UB6ZW;vc5|hloz`uvlbRU6>Xk*pM~j(C z!9`_PvQLSqd@rv&+l>oo2^UMMj@0`-X54wRZt8SKog)UFi{@O=4AUhO@C=?-^~8p2?H5B{#6j zN^LW<|8&yYY%RyB@RxcA?>pA^@*7PREl%3!k$mDssM6Zh$F8ecTLP}lyZRvdLXCcJ z*8-gkW$z<7x~4^)8aF$W)zm**@5q+?x@gV??_W#eHqA&}GEd0Eou%;YZG8o|D{)Fw z`W)1mj&BM0Y=7u`3hO3;PzL6$%B`!8yDV5Brsl-^Wk#o_T)NZD|8nJrtA)z77ap3g zq$TGaBD_2G4!iX}{s%`nIkdk&G`*?*@!t%gGDY^-0)`{s{%c*El%&gfRPfE~(|_U( znAe9kzM3#OZOK6o{-A~vnMa;2K4bX7PRe@Pk$WK%Y^~TU=D5`G@g7Lx{WNXEjvex9 z-+V09@9WNQ5-!m$HP40i`Ff4b?l1hc--+ywLb&Az}XN z$Lc<@-yNv)q}!aUeBC;+{Chh#?}<6v>)g0AOlu9(lE|yPt9OKH-Fv=0kjKURg7zL> zX2pUj33IAHNFAK@VcLPsKX}Dc%W~$|7S$Sfy}S7@?()sXO~vQq`b=J#EO2@D;_n3I z=rY?=i}D`6%|7bAv*gc|%GL_`q+;3G(oU{6mlX1>eH%hAIJZ0YwHQl0wXbG=x0m;< zd_e7W*DI@1WDI;tb?Pv>Y6Rh!6kiNnj zQSb5N219*&JKGPt3Y#CBgX;8*4%==iQkrC2@u<|oVfOV$@mzZY+hz%Aot!vJaQ#jO zr}X!mn9ka_uTyYT)lDm!zIaJ$;CjCED~%@Aww~2zeSJej=B}Zg&(Tv&i@!{4WcBTt zZkjy7O77+yWeeBLZeGJH>s58`gkD~|?0UneC5+E`FP_`{pNzS0&CZXeHrvg; zqvOR+EiL+b&^++byJKaQre2|5s@aQoh20W5KlMe;(}z`CcWjH>m!6xK8)Dui&9Alf zpv@i@Otn96T{!0?n_uPY_G|5rzm?Lt&yyuq zPqwmRm?8iFalXOcMNUdAhqWJT);eAP>f|G#m(Ke?cW$g+y-Vk!dUdb4Gx|JEZA#g_>D7#7VS&sHEF1v4z z84u?br%h8*6?fe+qx$*0o%P1gt)JIC|Mc!e$KnI`zwckOJzQV=)PBwLf2Kb8#jx&3 zsA#LEZtF@P?yJ+hwqCom;##!TRkza#R>n@7R|e#Ymabg!c9EWWp`39^nfBUMs|>oQ z&e*$hyW6kz&3k07mAOYR*7|06$ne$cmdCq=*K$q>je7o0^CJ7ICi}45xxeQfa*KFd z+PavAs3Sif{O4F}vX#%hu&`8WYRn8DCnaHC}ln?r3#Z?dH$(Q?GHq zVbXT|t28@Fd|_Ru?`H7@bu;&#h->;K`pu}C^;P)I)n{67rQT04yK+C_)-I#sliy8T z3-{=1?k>K|oIXEarLel)yZqYT*P+XwJ4f%bVs#9 z(^=h@aeIrt`c8MBeK9(p^LQlREgLV3;%dRiho(l~iGA@acSV=_^t=8$Jen+u)}M+4>Ve*HD_#>&TcdY$H}tb0(s*Wmznp3IIq@oyKunJ1Jl-2eX2^N;4N?de9xYTtD` zuw8tXYTjvGbYJ{VqN9@QhKrNa?Jg9Ae^|EM`hfZ;r(l6*KiAV zAJhMO=G&eV_n*$2ZaHte^yavZ@1f^!zy6u{@5%HoiPp*$6`$@_?z}zsJ=@)zaV!!y zALf+RcYiJ@JN^32zUr&q&mQL)y|;ZL*nRX*r{Y=uT<-<ahle=Sz5POb$Bc@oSP!GwP#Vg zpYG-i$tz6ke!7#R%08ZH+UXN^PqWj0y6Q8TRrVo^yM2yJ&TKLc%-kTlxnTrVQF0(S}W~yxsZ#;vcy9#9A{hzjn?4Ah%%d z;jJC#{|j?*ep6`FU+_!yz@vb_S0r9ACnxZ&3Auf3=C;M1+CK7AmTb)B%b6spusig` z8mF|TH+GxPebH{z(Mh@BKW*Dvk@-`WGN(QbXx*e$*QC06x#B10Cjmt+lZq4>3+fVi zPi0nCt6U9co_96kDR=FICDVQc^&K*uX0>vc?Yvj*3cafo{)bmA*V-p+bI>r&{k;Oa zMCO3`1l9EPttyFXmb>*oHk zbos)JF3mlzH@N>iFrH@7u4T>e95lZvNh*X%Ze+VQVcgX611c;P=R=HSr|)Ws zJ$uI`rzX6{{-cyHL!6tfwdnQJ)`Tbq9cFuR9m)xGQ z3R&W(?>ip2r*POXBwG5i%nIG9r;NY1txDuCWvaU+e0tu6oYJ0S9px8qN-bZ*sC!B( z>hS)>o3CzrsJx`=(IMH0qkYqMWQb}id=;?Sc7>Z;@wdd3pxBxjkF~cJwRkp1slLds zS;haxQL-RQ-D#GOcdur`jo_{=L7xNW1_{jfkqr5jy@{o4Vcz3VHlFZHn|?^%@MwKj z#K${f%8~o0x_(Su(-gw$ZLlFe(->g-dUw)rb{NYoR z`XWL(CriQbiXpE8yMS}TTt|Uhvy5FX+@E02x+P=fzO{#1xAILd%&3j}apm9ND<1DW zKA&(3F$|q`TXn~qWZ?@TO$*kQlw66=>biR6&AP_vrYp@ezVE!p_DZ_i`CRGEfCrwH z#|7)xYB5KL{t9)N(0gOY@)-8D{BO>``F%ctVehrK$5+2NmZr5G~n#j zxnbLKCxj@-{6B5ma6o_EyVi@+8osNor~O#J#pr_PKc*AvLDJWZ6V$IJ7b&VUtf~of zWO&>9{bBc;*jwD+8PW>MbI<#gN)+o}Jt%n7BS*Ub<6%3qwuOahD(-!g3nC4cU;7#T z^)`3;^w}b}Uis#yif*=iWmF;~X324AVg>)kK(QM0X?M7Hsq{Sx+sfCOki53;_q(dU zVcB2q{W>Js7#W{sa{Wm8XIq7?Bl3xkdYpwQh zMA4lJ-`MOjR*Rc(|C!ADz0J*dUZMSqD!&(ZwuhA1H#mOfxWwbY_k{iUs{;$RvE@FV zaY{C}#B*7)nt{Q~d7s!9)T9-$zYw-qnJYZ;>=}KN&`v$3S3GI5Sq7IZnC|2=?-N*R zvaKcg==q177YxE?om*NtudzIJkM*^U=8tSm_jIl4icfs-#Z97zk>?+q+w})Kjn_Wd zv&QMte+JLiH)~rKP6;~@5P9rogy?U9u-?UiFCxz#KXmW-r5b+aHDPZOr@S*U`_{_% zLnc2(bcq@N=j54d?mRnS!E)c*X!qOd8(y2T3ZIwO?qn6YpY^*!quJDJQ>Q`OnzpR`b>n)@+(k9Q?sqn<+VSb*|oX3UgGcO*UuW-y}PL0S7)jgf&DT&691$rkN6gM1Z zv{S8DVSOeOSz4OAbmyiHy{bxEZT)N4XT>Ei4LpDD^6CRJj?WKpKQ61=H*xB=KS!nu z^|ahe+^W7yVAa9L*RR{HTwlpuKD&HVpwzD~Yd3irp3OT`@lC1F)8Itf-@41udxF~o z3e!{f-i-LMW8T$U(R=n5Z^{keJTm{0bE;|1oL>%8Yaf<#rx`we!YKFCS*?h)w*=Kt<&F8bt zJaWAr$SmTNl3e%ge$xA!2b%KE$jo|qU)X!XD>I3g;#yY!ls#@~<}_TCjnpxZa@KL) zU6Qi=*hZ~sj7P%qHu&7!xG;B#)#ZGxi?1&P2c0+iI_1h`itRq!X8IlS#N$(Tg3A7BTSF|RY}wk1Ir0=; z#RBsjgo?%IKIH!XN?vSTO=0EAdkt9!e}Bk(e61+9rs@74IkEb#qjwjcn`N9l^I+39 z5j(Av7KNQ*|Nq@xy7kxEGp|Y|pJ>k%V-~CYVjxgBMfs)z_m-xXoU=SaVjKrgEH8ho zm+9~(Ve_`vr@vj(>|rc@S)?bhVZtiKo+weD^LuReo_yGHAZw!T`a@P*E~oFc7P_In z;=DPB-h-`MwH%gyo67dmBks1s#;u%B5(fW z_f}bM?Xu*3mY}QqVIP~8#3dos{jdE!W(UnbB+Pty26I_c$!G5bHNGzrll#^}#jbUF@^fy<4Uec@4k!5;S6q8BUwYo2hn3o&&hOm0^Pelv&N#uKKz?srojCCjO@C91|PaVt9W>)>Nl1i^)WS;y#FFM z?JBSR!~FQu{uRcnSNPgoc$X&j_=*naJ>FW6cHV2Z-#!WqJi_wty_)v?f``|xaQdF> z&ui!J_Dd#l;X4tm`o^#lQT;erhhz zA}r1nfEMv*6)4(E!+E|vpr9Q;f%CD zyY@?}8y}px%`)ieH|G=m%6fLkGx-Gz(k}5bYd$*>+-7s?jKMv2u^zvvpDIqANjUP+D9K>(D_j4$NI3P z3a>LNSL|J|Z;3C%f}GrEL1CY4#J1b|*Yp&Bos#%%r8>K3*vB6ioF+}a_EhdLHd~5MA?n{)Ya2-`&5kf7x<< z-Y@a0%=GD#bWZvOvcxuSe)R6m8T0#Rboy6?&VEqw^LO6&>q?6C6P5-ZdLCVK>3#si zM~(mkr&ob~`aA~uE7SXAW0DnnXB^k~Iq^up#KYF>+iom&`8!Wgw?wv%giz_Fcdre4l-I`=pN<6Kn(GOl7Rfo+V|kI$PH4dHVZf zg-84JbMN;HNwmJIKl;61jx}+g@*2%`mVqHolK(1R9bEM5?@FD|7B5=<1hB;FN%kyS zs8gUQq}aW@u|sg44#WGNf>T@0-BP%F)%`)HQrXsLhc5Mn#YJ2?mj5Bgud=S=Q4hISgPjt#3 zw8bAmKO#Mrurn}p@-Z;jlCbuxI6pZ%wFIpoxf^~qU;4P{{F$+nPK#;=#%~K*@b*~Y ztqZ+N%zUG^m-em_%GOrYxV}WUefrTZ<4GE8%U<3L%n_av7~!^9uIjbr)P@BOzuCVC ze7WJwZ!2p1)>K{b_??=}`?F*7G>&Rky%YM~W}I(#@Auj2{WJH5>)mFV7yp0twVyRz z6V9J#UC!`c|3U9DO~pA|IG4})xy85inb&T1Et%$~dc#>aaM7HxI-{jsC0N!)#lS;l{> zMQcB7bU8iK{G|7uGsl0jtpDI?w>37y|E^Natm*TG-D?eTW`&M`s>!; zsF z{I6ej?q0#@z#BJ<56|mTS6;Z|#wWg-rMrGB*)%MByWV7GP>Eenw?^!K>5dycE(ff| zx6kC=Udh&?uwk#t&8PygZDMmwQ#nIqlT#*4hDduOxrkDa-1`fv|dSzr$yQ-c~t2N!5tc(_i`b zUeNm6(H0z4aq0daTHURkesEjAyY}zv_PZIHZ(P0KwLi$vm@e1p8{@P>)m&4&+CS-Z z>2AmHo$vTdau%CkS+uO~^M}{|e1&l`-*Q5HWyC6eA1Y10UHaX*?!n{#lV01|eE8#{ z{QTmb)6b8}a2?6#obG%^=h{N$fJEk^*>@SlTDMk&TxFKh&xk3!toW|r^NKmOtSqSl_R>xcZ`QXYvNdu#IrfBP z{_n4v8l7*8o`hL~$WyMTBlxEy-}5^P@0sf5XZfFHf5I$u zr%jOc#sBGB{%>8g-}J;vr429CZOl)+efm`Wuq4yBo|qY}whGM3zoc)>Jub(r(&hB{ zX^oV{-4h>cG;RJJdHEwz<;SC)vgW}&1_u}0H@}#Ez`E&P?ty#Fts*)l8VBXqgtd!p z%XYY}7r~qRcl#7eg#=UIndx683nrX;`|Nwqi^hN9H;hxPH_x_Fb>2O-G|0v^FG>BI zVd%AYH#8R?2vpB-{u!dov-M+eM0&yrdtTjap(lEltu^+F>JwIJpG~Vh%zY*H!xptv zjmFa^426C#UQMZ3v*dc=!NS4syvs+ZRExGZ|ZNl}9vAg55x7^vi^=W8C!0Y7d=#(q-FVA4kmV8vGzRmrb z*@AMPr`%%VX8hY0<;nN6ZuoKfMsKm6oFsoiy3E{}J=0!TY^t8>Rz z9`(63|Jb{3^FJFN|GaqC)ix^0YQN4R+dGWizt*o;>AcL#?4zvt%~^HMT!Wx<%KAkI zVzx$XeXK2=w0R}tpH2U}`sUwy-1j0ebYJTMw&_sSw7>QbNL@r`Wh+Ej%R!0`1=muxWl`f(PUBi z#+CXkTZ$)c*HY-a&=T~BV@Ce#$sc8!pSnrDnLlfNzhZKuWm?}!&KNnrm+vQBl}Rly zJCs$Re`QUXsL?5wu+xpo+aK2F&G>#ID`MH6Y4=^{{nAa@v#|24l*ELO%e0i@Q}?9V zm>R`xUijbs(!cAQ{-q>jy|#P$vypSpx0eNNf^pL4nEo_G^2J;`FS}xG>+4UqA3XRk zUFn-7;Ir(>R>j?3FLFGLUU79@4~%jB$kz3K!4Ewyp2EnZACoz`bMM4vUw!g@L*(*j zOnQl4JV~9?<$l(_@sVeIKI2Ys+@$!$HO=2I+5dT8(|p(c2ixjd`A_-_o*H&u=c#l) zzK>(V*C+kPkJZk9Y}?cKNd3mv855mNr$_8)dt@tO?_OxU`B&LAJ&W7#FMiOzRp23J zHtY9N?w#>}-C_!2<;otct1xB$V%ob@yY036TSIZZBL}Ykw&mA5{;u)WufUj$b=PBm zgn8IWNWEUY_17o%A|7_}vOOn)y-uaBxp~9zXUPPKRYI3TA6=iLv*<#+QbPOl-v!NQ z+h^}Su=!WlD*en~?6tFF$Ox<>W%KYrA;pH5-{|CTZ{FmSMuw)DHWI43?iKer$ey$LWk#4%smRpegm z`sDOSJ2EHkD3Ek@%35+n?`5l4i^02T5xjgUb9ZeNSp4zaX4@3o&2we18(#n9{NTp^ z1D)~*GuO}g!9Ay9v!8+{2WQ!q{Cno_-&Wt>Gjn_T?b}BVKVKcc=t=(fwQ!n*(XXFodEZ}-d8J>|v9#}}H{awpY&vNgB+exz?j z&HGL+lelELBjv6g7CMC;Kjy7aS~qQnR@RBEY?pJkqI*8L=zjZl@1a12Tw>+CO)lq+ z^P+Ed=_Jm1{e(%!c7e0R@oZa9RSoZ8OS3y`UbsmAdV1>I7NsStH&2~-dFIk~em?sJ z3zofl=6gx(QVCa#dh$oBK`y#)pUhrkm&vo^ zrbIhw*coSUKK}Mw(axNYlTy8BXIjTrKYjZ+&ivK!i;PC9Pkfe6cz)%;=~j~+2S0Xw z;;B@r>3I{hZ%KrlooR#FYT5HkCx)$hX?OPP5xt#^N-250GWu`UGR1B_H1}S~0iiYL_%c2?c=3IK``QJ1Dg7r(~DlhB5#lO~E zuixa)c)Hp1fst{awa}DxB??h0Y&)jjkzIGVlC5*j36}CD%ed`Wt*)*=pmB%e?13|> z@A&lHvnp0Tjfu+h{c0)vf|Z0WY~^Yr$((gsZeE@ zaCh;F-#xN(k2Kdk@7Ac?z5DO$cXO1jARW!sL&Eynx*+dGHsyZ7nM4*Y3; zVD@)^nXX^QUkCp>Qaf|ERNMDijt{Q?b+dH(A8XIU@hELWaG~-S^pzi8m-yz*8bWHv_~IsnZ{x7wm@dP0b85hp z9G#ge+$+~!{I;fS&t~Jt@8UW`&svBSiRyL9?0Bki_eATXV~p?qFwc2*>g4|>zLxJ* z-@Lh8H?I0O=libvzxVdnRoU3T7y9w{&;0MV{zoW1iGOnEeA72O6U_yWmv~w{)mh}b z%KchOmB}o&9=DWlYnNT!KHE(7&Xa3$*Wvu19g^(O_}a?TwMs5( zgPzzormJ4ApI#?w_gH(*KKCN9G0o{W=c`ZUS6b7SgbQ|e6_mNubFWUma?&Dkf0E_d z&ZL>w9u`mA++%Ba#Om8lLF)sF%Ixc(sJ)r_NbuXvlXLH!(pdj(#*4INe{9Q(jrTEG z7jO97bNzw#yK{&0c+W+gcwuzWe6#wrA56dR^!e5)ZcohX-k)L?f8^%sCuWVd%Erdl zo2}Fq6n*?~ejU60+THBCs_V|!UgfnBJmI)xPe4`H1h>ZNB_TRCe^_*8e0@5$-* z6Uj0jJB9!8mhtOP&$(x6>0Iv>?*H;`)zX6chwjY}<_UCa=*)CmD8wfBphsWR$A!6y zVc~{(d`yNcX3Q+2p(47o23!0YSn6d?1Q&bTzmd<>D8;|uUnQ_l`OEl zZnyXcY4*Dc9eE|ubN^Lm>+YPjq-g6_`6D)htJx2(^J(x{yXdporG*avYoz}c^V(i3 zU2#|}viFvO)s>cuX==LZHx8f3;@Lmzg8qg@QmVQ3PIviMZ@-pjo_FZ}TI0Zm;&d5S z^M%$i0S~@QS}vSYeFWRrJ;{6tV@+vU~2N98{LCkjJgdpyw0)LwCX_L9PYH{HZ04dQC!yny*S`_C{u2 z{M7#5X-boeddP8&V3Wn}CXtVM7Ktvp!7@$GSL)7-i8oSMN^iAo2xrUqa=FuO*)@)> z8@C;?>FU_N@5t}>*L^p3SkEilVi5L->C7v)mrVDM+~rzv=X>h=Jzd@_7RkKHa`7^) zuM9g|zMymU3N`ELNpCmK@_jMI&$UZdI%9_Lv74`1CJES@DcUZ4<(7Buf`qUXv+%Sg zlVX>6W$6VkezOFJuqCH`F_?QRy8X>t{;m6>K64oUd$oDJopFc5_0_i%qEy*(LvJh< z?#@?uJNrgv!a9Yip&JZzc`j_(a9CvO)fE|s>$96qiOfoENo(PJ@=WZ4oXVo>^A2t1 zxuCQ8bV$v28=Geu)r*&W;(lSIb^U<%OT#_3izg=Dvtu-{a9U!#E#kBUL)zR6GJ9Os zX=^XPb1vh&*!RlR*?SbK{&74%RmV6pV#%sc)|VFEd3g1?pPPB&dyYNxcW+R8S~a<* z%F;Y;LNa@z`1uEOng1<6|3juB`nJ{_3(fci%Qk;q@b$yR=6-w46Pm4mwg+8!|7K2M zzS*X~sv&Q5Uwrd$vx`0Fs9BPosMX~px6yvn@&}uw&RJdlw>Yrr`vlWGv$vO??pw07 z+t0E5z01Oow@c>d@qFZp{w>)&!D>(2H;L|Bhk7pVSUkD?PKM9Uf2+6LuDBwdoH<<} zhQsqiaAMk)DI!G-xem|0o^q@5J6&bnnZMA-%>P%N#Qe|vA8mQwMM}nY9LYK;6dBS~ zVJ|Wvo~Pn&cNfQ{6Z!17#Jj`I-rxQI@$vk(TaHC+x2xE&*SIUzUQUc}$*oUyn_bdb z?Jw4TY(DunTX>IN9q$wl*H2sOXI*K2mUQdt$sIYTOE|yDXuW%+Ib-#$sgh@&r3>Gf zUy_opvbk?Y#DOhbepRN%pS;qZ@wsHG7F)6HkiNaR(sXe^L5Sk9gG>D-R3k-W`k$|B zQhIXZjN0RkrA`Mu{B}Z`PAYh=g>_%m1kYwbW7O%k7H<|&7!K3{*3mcJg3Cj z!-_9tRTwYxE_lj2WzD-E^{o|`{lE7~RB1IfG0yv(AkW3ta@@J1bXY>FI-zRC8d1t>ws%l_G)-mU1EN?M>|65rItNEvu7^b+YQEZPPOm#y5-5zYRa+m(L(VP z<;NG>&#I}nY5INc-ioy)OARgm8@{l6yDA}?qKdIPq%g6pEcpw z_vpO|8r;mk4&6GwY2OAf-E+38KivMNP1=6HrRS_qtj_KLmDyX^ZvI|%?r#3Y(>&Y` zy;r9B-TTVzy7cNJ&)rwG6fbN&Zz{5c&9qA7o!J+AmZ;Z4oD13oSgLe_kMy5dQ8H)W zrKgt@CK|h5{4%lZ-2wZ^W{n#ThALv=&x}O=Mf{TPduXyCRF?gg_Agh*RrUYT#yo$2 zNUhIgV_*;$U|_HzVa&6%Br~TNt;zE?>}>IE7m@hd8yiK{eJ}S1Xl!Va`{0wbJ+sm8 z<&dxkx- z(zGp+Xk*-e@%H-dzxUPUU!NTu%+`26eE*u8_WpvOv?YK4m{Pb6nts7)c+pB(kWBbYHGndsv;oHZIePhBo zgic>8KC|L^;_>>~YVppk*DqX=zGQM?qWJ>JvM-`0(w~#xRQRYT`Lb)C<|&(WcH{ON zn%~U6OuU!4ynXLs4eM+E$JO1R`SkF`eru0 zWa7QYy-}C8$F^5b+U4gQvB-V)z6IN>i%x&%Nj}P7btp5}b5}{(OPQx}r>*PbB#!AG ze-?K_@@+*Ax7K!xSUw%;Sr1P!?LF=K;)h(U*4(A?3lID$$lUj1=Ecv}TXMgycn0nVmOXvQoHETk%v%3>kCgxP>@jGk%INYav;GkQ7 z6yuG=XxvDj%Vv$xR8Hpo$8K*a{{=QU!17Vsz zAX08_{JM)?x%1+p*M(+rAKQECSnt=fyjA%>&&_@M$}M%R+x7Psrha{umAZISTTh_%4tqqpgK!-=9kvY-#xb?YiEM2mpJnTTX zQ%-8iW}`o09~kC7untx}KlN2{P>7Q4lf2-RM6_F zUf#^J-;Syp>-=_%Fq1Fr|G8*SxNT~|g+k{QD>U+F1z5+-cow}Ppx3v;XtK+aE!#6* zE33U~pQ&NAGSoHJ$3gh%0ui5^+!a%f%du={j_r}lZ&>>~uOmi>@06VNC6oJ-hEGoH zQ~VgUb%vwk`K;p0Jv^6ley@3)v_D}MzxA})YdUP?thX+IkQ!Qe!GGDY=U3*KIphl5 zU+L@d=PnEDK8p$Bx}{ZYGgNjzabN0R7c`@Yt9VJ+(LftF(ajs}HD}G!4&-CF`odGL z&)PP3U&~J8-|M<9A2c%=h1fduvq@ZM%#&Ggf#LsJo(n4&t&C>4w59VKh%@`VVDOiT zarv_j# zS~mk#607E)nYho)J%Rsab4)O6OZuwj^A~SdUirx+>9%QwTV!$Z<6lQZPe^Zj_UY8A zTW@<8$)!4JgvzCE*wo~)b-Pk1+vCL91`FRfJdnC&C3{?Zd20L_tz+Dwa|4gIeq81B z+-PO7c+&GSg?#I*`D-TSKQA{~`DN<9Ti46B=3kMW6TW2E+AgL)=FH}DVl&vzz3^;X zpD$t>=$8Cp$(3g7?D%zS8`zm9su~=7B%`N&&f<^3X7lg5*BgsY@zhv;Wq5Ms%8Qsu zf}2)1D4v=u|EOJ&mEZM4fQ!V@?wi?DA3YT*oxZ_*SC6^9jdDQ5#yJl*DceYezfgT; zGP!uN^JHG`l|3S|af@D8#Fxv~sI`CgJ$-byh`+Yl4N-Nzl{O{M-^rcWyuM8Q;B9sO zjv0>gLL{W?9z_JL-K83(7!qz*S^Th0KD@oc?BkA{H43XG*p>IR|MU-<>dnBGQO>Av z+p6cv4VD$GE8nhKG^OtwuU1xQA=lTVU)Oj08@``)dhdw>r{l~nhvzqV6x(R($q9+D zq)+Bque?YmeAQ89hQi4|&0=ycY>W}NiroLP;kMDfy|2`FEljlbj+*0$fn$Jfr z_N!^XJs@7hJAWn18hK^yr5k#K1=%&O)!(p{e5$8@{k3R_O zWfo}ID81OVGVi~oMb4zD5vO`PCdaHXVimIzE|%3?Xy+d~i(9rkbCZvmGJ zN*rg&>X#rR)Epki}^H=hoVrwb4-^$9; z+Nxob&p*SykZGKY>!LH6jn$FP^f-+B>qoI5_{q)oi{ z;sdG6Hs5)1QY+tL)dik!*Ek<&Np`<`;nQ<|*Q2K|a%!G6ANPO!dHZtt^GE#`^UJ%b zKYzT~xbTo(Qnj*p=I0ZAfsV^Bzb!ld z@s3Btwpq`#gHL*1(zzsT7=JW4N>6!iKGTG9s{kXzogI^oGC6f$SJ9sL!1w!<+)d~1 zsCYB}TNJUZI5kCNRkq|!Piw}+gF+jxZ8VzQ^dr_N+VvHWTK?p9MY5tH-pjZ;mCktG z`f_=Z-Bv7CPmy_$T6**_uIyG z=W`-+w48YE8ncN0 zmQ9N)cj)u&Tg{q(LGXv7uYHiY;I+%riOyM@qo%xb|0n$QgpSefzPd1liw5vC*xYmE+_2-vUOMl2J zz2|xK#Y^hmiw&mwCRr+-i_gX$%-N#5yz%p&>n|RB3e{cOw?=Pwq0W(OvuqVuN`Hfr z@Y%z~+%dlw^e&9@*xm6w=-$Wgtn_LTCS5Dm`JKDTyZrXnse4klDY&gWf5x=w+TNXSZ=E~i z&m;BPc8btzuQ+X+5X-9u3*Jp$Gb5SU(&cQf4zp){dBqvB>&~ttYVK<%S0%jO ztmJ&oe0%9t=jeBy`5tNtEGN%)J)7$_!`E_6Qrl{l^>3$bD5;$@!8mnWhit=KA^x@p z1ttqB-_Md#k8%}hbZC0|MVRsMk&wig$@es7R4@uX*wpaUN_LrcatP0pZHM}tcZp0g z;&z(Z8#{;f(UvFSPq&%mJy%Gvxz6^sVQY)({zHr6XYZZQ{wxidZ7n zDP2(sZSoab*SW|{U+=fIPk`aduJkQSQjHe77kM)lK7_He`}VjyWGY6#WdrcH%(4{Qc*Q3a+t&_Xkc*9X8Vp!hh!P|nm5!l^yh2v z?l7x4G->g5i^;y9kK|OW*?;_X^clbNGo;wrH;SrvZ)~19YmHdkcNxQnKE0Ek2=8X$ z&|jdiTS=qOc5i!RzJgp@?EVdM&)5IEyUWB?)|p9`bDzQzp@72Y##2kxrqB7Dec7P= zK~j9MLF{4ODW%;PI&~A*ul(cp;Rb_kCg+0K`!WCSAK7rV{Cn5ab(0w_EEjDph%D8N za*A)XyH~im z-?>$F>&X6%U#3_taoSkWuT`B}df>TNn$huVxmz9h3ZoZJyOhoOYWbm`m;ZJF_T=S-`sXLA#lvY3nB(^`GV@aENq^8SUN>jPfBnYyQZdcfx=w(0R3 zZp~3~$eup2lArf$<6ot3zm}=lcL-IcpS$p$@msaf#D$_O7s=Z`Uy#0fN^wzH{olDR z*^M89nro|=o?KK~{9lx<&hYSrWFEPFPqy`jUF_ksDhWNfqJyEwRfeZ?n$bOuUEU{G zczRTOdwyss<7jfPtUOw3Q}?rD$`a?Wd8LQS7u&Z=9KL_@qGZvto5m*?6epZh-+J=T zr?|;^4lh5QNI%9h?Ty-z4AFL-*~{mCc=F=K*Nd+|v@f3DdDr)S%9nR5p63}?E$)Aw z?{6Qn{{3;=^1TVPQD#m#V_1$ z6n*jWbgBCsvt;5V4d=xxj*9Np$SC7|E?a%{*1fWOhuMn4ZdS-}tK}zXt^3QORc-n^ zV71!uml7vupE;0zBl_v*X8SL{SjwJ79|-j?vGHHE+4tk)=+ODqV!7>Fak^6{?)>yj zw|cX;>hYe-o%f_OZ|)2B>6tYD){mo)tS`Q){eI(Pl;(@;TmQ%06kk!cvdD7sPLU$M z2`wi)io}`Ajeb8o)3kSQ%IyFYaT$YMfA=_wronyL)$I*)K+GD@EMf%m4oF znTvw8g}&Q8Cv4{tQ;S?W^STz(lA3dCk8X;MIJoYg?$O5w%go=zX&7z1FHp+(ae8%8 zd);?#`@b<E4SHvn7QTM-)sj_4OO~}V zAFWl;KKXp6)h|Vl@Iz8B%x`d8dVF+z`*^ATtN9yO^@o4WkJ8*a|KK%M`^B8)O^H`- z&nQq={&js$f%p|?_3Z3PdCi^$#WS8JH~lZ4Rs1e)$Df$UnZ19vv+9X%c*44q^Y-0x zRiVT~`iIsg{XMIAyTUvE%g3CxjAs@`Csp}>U0W=(_tW9Gc7bQ5^XBFJF7dEGWKg;} zTDtz_q_^wO$4PEUGn{((U5xmO^A^u7YTxXi#`ibX|G{f#O7_>?{k!Y_@%N>V|2;{GJba)3f8oNf@%dS|?6a%?aaF8) z)Va#%@{Vg)EFM=KnB`OZb=kUoZkGe%H)lS|W@+uax<%sSEXR$>=DDGIEKB`%Muw$o z&v+3sOEgrEZSvf#&8tq86|4x(z80Wo%Fn&cRJCtU!r8?!-}fo@tWDn2b4z=bN#mu$ z&{Ydebp1NQKZg8#Qam~Q=fdS_pH1T)x6jWyd;O<~ebal-x-CC_KL|Wu{YU!z*=5RE zkB)3n^ZSr|zVsiLeP3MupNYqo|Lj~YWxsKyx&O!TpV=>dtF2i7dGdmJEMHBozt8%b z&zF|pn)}jqGCRmE3t(n7>#(z&QVRV9fR4 z#qyn7-h6$Wcg(8d`Q_W&*UkM~QMc~rhnT;UU#zu1Q2gyNck%x3A7VazoEgk-|LqxD z2FtB4=t6hv2XQX>9|$v-sR@g^Dikx-nG3xqq^c<*1cDYYQFL7*Iv32xPJfC zPTlMEFP9pdIzdc~ztk~v+|Rj-(dzUIPM$*F$@7n~#@$$U>{{4F zw;s91ytfi}*<_X7>ba^4kH1jOTYvLYWz4-RGsLEEQxiII@ml4}Ryz}+$Gg6LIC8<~ z%vG;L*Ghg)K5}PP&BB)t_O4$0zh(ONRW(iF^RkZYc5n-rkv*c z_v~p=iRaW8{UU{)AA?T5+!k7CGC|~Zt>Don^JB6LHuu#3JE!}6;sn7rmHyjh&vqPUiX@A|7=E(X=2%fJH`SrT(&`0O1rd@j{R8PwHUv6>#`yY=t5jS;H zKXV67V)*y2bnBi8YOzZEZ`-ZI+~v0H=FUB>v$pD5Czv$}(S z&w~H;vWNK}eyp?m|6uJND>38XbCb=VT(G?T(%mb8|Mm2*2j9fqyBH>aVsCzmM!tMD zN8zJgEvA`&^B-=_XS?)gvaIdDm;V2rIn{pn_Fttm`{-oBwr70br`NvND$OSS_2A0p zrR6TiKR2&=|H%7o_^&mWldK;#_O(B9b~#_TN9b*0?utD%qH;eOZL(vZe^@s?XW}FI zYkKMj+BV(WF+s{CTD0`*udC(fkI%jLbKd>guiI_cZ&mwo=dq|_(@xRtcX$5SCOx

}UU6L^7)qA$> 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

{s%7N!Ls>Z%u>ZOOTe>S=Ozt=};*|Aex4XNMv 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�iTF|>0f82 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 literal 0 HcmV?d00001 diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/NOTES.txt b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/NOTES.txt new file mode 100644 index 00000000..cbdb4830 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/NOTES.txt @@ -0,0 +1,15 @@ +1. Get the application URL by running these commands: +{{- if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "powerdns.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "powerdns.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "powerdns.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "powerdns.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:80 +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/_helpers.tpl b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/_helpers.tpl new file mode 100644 index 00000000..7d49d704 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/_helpers.tpl @@ -0,0 +1,60 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "powerdns.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{- define "powerdns.webserver" -}} +{{- printf "webserver-%s" default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "powerdns.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "powerdns.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "powerdns.labels" -}} +app.kubernetes.io/name: {{ include "powerdns.name" . }} +helm.sh/chart: {{ include "powerdns.chart" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +Create the name of the service account to use +*/}} +{{- define "powerdns.serviceAccountName" -}} +{{- if .Values.serviceAccount.create -}} + {{ default (include "powerdns.fullname" .) .Values.serviceAccount.name }} +{{- else -}} + {{ default "default" .Values.serviceAccount.name }} +{{- end -}} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/configmap.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/configmap.yaml new file mode 100644 index 00000000..0d4e5a71 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/configmap.yaml @@ -0,0 +1,31 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "powerdns.fullname" . }} + labels: + app.kubernetes.io/name: {{ include "powerdns.name" . }} + helm.sh/chart: {{ include "powerdns.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} +data: + 01-general-config.conf: | + {{ range $key, $value := .Values.powerdns.config -}} + {{ $key }}={{ $value }} + {{ end }} + + + 00-api-key.conf: | + api=yes + {{ if .Values.powerdns.api_key }} + api-key={{ .Values.powerdns.api_key }} + {{ else }} + api-key={{ randAlphaNum 24 }} + {{ end }} + webserver=yes + # IP Address of web server to listen on + webserver-address=0.0.0.0 + # Port of web server to listen on + webserver-port=8081 + # Web server access is only allowed from these subnets + webserver-allow-from=0.0.0.0/0,::/0 diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/deployment.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/deployment.yaml new file mode 100644 index 00000000..59fe3cda --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/deployment.yaml @@ -0,0 +1,155 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "powerdns.fullname" . }} + labels: +{{ include "powerdns.labels" . | indent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app.kubernetes.io/name: {{ include "powerdns.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + strategy: + type: {{ .Values.strategyType }} + template: + metadata: + labels: + app.kubernetes.io/name: {{ include "powerdns.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ template "powerdns.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + volumeMounts: + - name: config + mountPath: /etc/pdns/conf.d + env: +{{- if .Values.postgresql.enabled }} + - name: AUTOCONF + value: postgres + - name: PGSQL_HOST + valueFrom: + secretKeyRef: + name: {{ include "powerdns.fullname" . }} + key: postgres_host + - name: PGSQL_USER + valueFrom: + secretKeyRef: + name: {{ include "powerdns.fullname" . }} + key: postgres_username + - name: PGSQL_PASS + valueFrom: + secretKeyRef: + name: {{ include "powerdns.fullname" . }} + key: postgres_password + - name: PGSQL_DB + valueFrom: + secretKeyRef: + name: {{ include "powerdns.fullname" . }} + key: postgres_database + - name: PGSQL_DNSSEC + value: {{if (.Values.powerdns.dnssec)}}"yes"{{else}}"no"{{ end }} +{{ end }} +{{- if .Values.mariadb.enabled }} + - name: AUTOCONF + value: mysql + - name: MYSQL_HOST + valueFrom: + secretKeyRef: + name: {{ include "powerdns.fullname" . }} + key: mysql_host + - name: MYSQL_USER + valueFrom: + secretKeyRef: + name: {{ include "powerdns.fullname" . }} + key: mysql_username + - name: MYSQL_PASS + valueFrom: + secretKeyRef: + name: {{ include "powerdns.fullname" . }} + key: mysql_password + - name: MYSQL_DB + valueFrom: + secretKeyRef: + name: {{ include "powerdns.fullname" . }} + key: mysql_database + - name: MYSQL_DNSSEC + value: {{if (.Values.powerdns.dnssec)}}"yes"{{else}}"no"{{ end }} +{{ end }} +{{- with .Values.powerdns.additionalEnv }} + {{- toYaml . | nindent 12 }} +{{- end }} + ports: + - name: dns-tcp + containerPort: 53 + protocol: TCP + - name: dns-udp + containerPort: 53 + protocol: UDP + - name: dns-webserver + containerPort: 8081 + protocol: TCP + {{- if .Values.probes.liveness.enabled }} + livenessProbe: + tcpSocket: + port: dns-tcp + initialDelaySeconds: {{ .Values.probes.liveness.initialDelaySeconds }} + failureThreshold: {{ .Values.probes.liveness.failureThreshold }} + timeoutSeconds: {{ .Values.probes.liveness.timeoutSeconds }} + {{ end }} + {{- if .Values.probes.readiness.enabled }} + readinessProbe: + tcpSocket: + port: dns-tcp + initialDelaySeconds: {{ .Values.probes.readiness.initialDelaySeconds }} + failureThreshold: {{ .Values.probes.readiness.failureThreshold }} + timeoutSeconds: {{ .Values.probes.readiness.timeoutSeconds }} + {{ end }} + {{- if .Values.probes.startup.enabled }} + startupProbe: + tcpSocket: + port: dns-tcp + failureThreshold: {{ .Values.probes.startup.failureThreshold }} + periodSeconds: {{ .Values.probes.startup.periodSeconds }} + {{ end }} +{{- if .Values.mariadb.enabled }} + lifecycle: + postStart: + exec: + command: ["/bin/sh", "-c", "let a=0; while [ $a -lt 200 ]; do sleep 5; let a=a+1; echo 'Attempt: '$a; if nc -vz {{ printf "%s-%s" .Release.Name "mariadb"}} 3306; then pdnsutil list-zone {{ .Values.powerdns.domain }} 2>/dev/null && break; pdnsutil create-zone {{ .Values.powerdns.domain }}; fi; done"] +{{ end }} +{{- if .Values.postgresql.enabled }} + lifecycle: + postStart: + exec: + command: ["/bin/sh", "-c", "let a=0; while [ $a -lt 200 ]; do sleep 5; let a=a+1; echo 'Attempt: '$a; if nc -vz {{ printf "%s-%s" .Release.Name "postgresql"}} 5432; then pdnsutil list-zone {{ .Values.powerdns.domain }} 2>/dev/null && break; pdnsutil create-zone {{ .Values.powerdns.domain }}; fi; done"] +{{ end }} + resources: +{{- toYaml .Values.resources | nindent 12 }} + volumes: + - name: config + configMap: + name: {{ template "powerdns.fullname" . }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/secret.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/secret.yaml new file mode 100644 index 00000000..578ae202 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/secret.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "powerdns.fullname" . }} + labels: +{{ include "powerdns.labels" . | indent 4 }} +type: Opaque +data: +{{- if .Values.postgresql.enabled }} + {{- $postgrestmp := printf "%s-%s" .Release.Name "postgresql"}} + postgres_host: "{{ $postgrestmp |b64enc }}" + postgres_username: "{{ .Values.postgresql.postgresqlUsername | b64enc }}" + postgres_password: "{{ .Values.postgresql.postgresqlPassword | toString | b64enc }}" + postgres_database: "{{ .Values.postgresql.postgresqlDatabase | b64enc }}" +{{ end }} +{{- if .Values.mariadb.enabled }} + {{- $mysqltmp := printf "%s-%s" .Release.Name "mariadb"}} + mysql_host: "{{ $mysqltmp | b64enc }}" + mysql_username: "{{ .Values.powerdns.mysql.username | b64enc }}" + mysql_password: "{{ .Values.powerdns.mysql.password | toString | b64enc }}" + mysql_database: "{{ .Values.powerdns.mysql.database | b64enc }}" +{{ end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/service.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/service.yaml new file mode 100644 index 00000000..bd61cada --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/service.yaml @@ -0,0 +1,91 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "powerdns.fullname" . }}-udp +{{- if .Values.service.annotations }} + annotations: +{{ toYaml .Values.service.annotations | indent 4 }} +{{- end }} + labels: +{{ include "powerdns.labels" . | indent 4 }} +spec: + type: {{ .Values.service.type }} +{{ if .Values.service.loadBalancerIP }} + loadBalancerIP: {{ .Values.service.loadBalancerIP }} +{{ end }} +{{- if .Values.service.externalIPs }} + externalIPs: +{{ toYaml .Values.service.externalIPs | indent 4 }} +{{- end }} +{{- if (.Values.service.externalTrafficPolicy) }} + externalTrafficPolicy: "{{ .Values.service.externalTrafficPolicy }}" +{{- end }} + ports: + - name: dns-udp + port: 53 + protocol: UDP + selector: + app.kubernetes.io/name: {{ include "powerdns.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ include "powerdns.fullname" . }}-tcp +{{- if .Values.service.annotations }} + annotations: +{{ toYaml .Values.service.annotations | indent 4 }} +{{- end }} + labels: +{{ include "powerdns.labels" . | indent 4 }} +spec: + type: {{ .Values.service.type }} +{{ if .Values.service.loadBalancerIP }} + loadBalancerIP: {{ .Values.service.loadBalancerIP }} +{{ end }} +{{- if .Values.service.externalIPs }} + externalIPs: +{{ toYaml .Values.service.externalIPs | indent 4 }} +{{- end }} +{{- if (.Values.service.externalTrafficPolicy) }} + externalTrafficPolicy: "{{ .Values.service.externalTrafficPolicy }}" +{{- end }} + ports: + - name: dns-tcp + port: 53 + protocol: TCP + selector: + app.kubernetes.io/name: {{ include "powerdns.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} +{{ if (.Values.powerdns.api_key) }} +--- +apiVersion: v1 +kind: Service +metadata: + name: webserver-{{ include "powerdns.fullname" . }} +{{- if .Values.service.annotations }} + annotations: +{{ toYaml .Values.service.annotations | indent 4 }} +{{- end }} + labels: +{{ include "powerdns.labels" . | indent 4 }} +spec: + type: {{ .Values.service.type }} +{{ if .Values.service.loadBalancerIP }} + loadBalancerIP: {{ .Values.service.loadBalancerIP }} +{{ end }} +{{- if .Values.service.externalIPs }} + externalIPs: +{{ toYaml .Values.service.externalIPs | indent 4 }} +{{- end }} +{{- if (.Values.service.externalTrafficPolicy) }} + externalTrafficPolicy: "{{ .Values.service.externalTrafficPolicy }}" +{{- end }} + ports: + - name: dns-webserver + port: 8081 + protocol: TCP + selector: + app.kubernetes.io/name: {{ include "powerdns.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/serviceaccount.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/serviceaccount.yaml new file mode 100644 index 00000000..fab68a0a --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/templates/serviceaccount.yaml @@ -0,0 +1,8 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "powerdns.serviceAccountName" . }} + labels: +{{ include "powerdns.labels" . | indent 4 }} +{{- end -}} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/values.yaml b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/values.yaml new file mode 100644 index 00000000..ab72d7eb --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/helm-chart/powerdns/values.yaml @@ -0,0 +1,139 @@ +# Default values for powerdns. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 +strategyType: Recreate + +image: + repository: naps/powerdns + tag: 4.3.1 + pullPolicy: Always + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + # Specifies whether a service account should be created + create: true + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + ## Set external traffic policy to: "Local" to preserve source IP on + ## providers supporting it + ## Ref: https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-typeloadbalancer + externalTrafficPolicy: "" + type: LoadBalancer + # port: 8081 + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +nodeSelector: {} + +tolerations: [] + +affinity: {} + +powerdns: + api_key: pdnsapikey + domain: osm.local + postgres: + username: pdns + password: pdnspass + database: pdns + mysql: + username: pdns + password: pdnspass + database: pdns + dnssec: true + config: {} + additionalEnv: [] + # - name: PGSQL_HOST + # valueFrom: + # secretKeyRef: + # name: "external-secret-name" + # key: host + # - name: PGSQL_USER + # valueFrom: + # secretKeyRef: + # name: "external-secret-name" + # key: user + # - name: PGSQL_PASS + # valueFrom: + # secretKeyRef: + # name: external-secret-name + # key: password + # - name: PGSQL_DB + # valueFrom: + # secretKeyRef: + # name: external-secret-name + # key: dbname + +# Enabled mariadb +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/mariadb +mariadb: + enabled: false + architecture: standalone + auth: + database: pdns + username: pdns + password: pdns-pass + rootPassword: pdnsrootpass + primary: + persistence: + enabled: false + # storageClass: "" + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: true + postgresqlUsername: pdns + postgresqlPassword: pdnspass + postgresqlPostgresPassword: pdnsadminpass + postgresqlDatabase: pdns + persistence: + enabled: false + # storageClass: "" + + +# Probes configuration +probes: + liveness: + enabled: true + initialDelaySeconds: 30 + failureThreshold: 5 + timeoutSeconds: 10 + readiness: + enabled: true + initialDelaySeconds: 30 + failureThreshold: 5 + timeoutSeconds: 10 + startup: + enabled: false + failureThreshold: 30 + periodSeconds: 10 diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/.gitignore b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/.gitignore new file mode 100644 index 00000000..2c3f0e5e --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/.gitignore @@ -0,0 +1,7 @@ +venv/ +build/ +*.charm + +.coverage +__pycache__/ +*.py[cod] diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/.jujuignore b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/.jujuignore new file mode 100644 index 00000000..6ccd559e --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/.jujuignore @@ -0,0 +1,3 @@ +/venv +*.py[cod] +*.charm diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/LICENSE b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/LICENSE new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/README.md b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/README.md new file mode 100644 index 00000000..4a0c9345 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/README.md @@ -0,0 +1,5 @@ +# powerdns-operator + +## Description + +Proxy charm to perform add/delete zone and domain on PowerDNS Server. diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/actions.yaml b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/actions.yaml new file mode 100644 index 00000000..6d63189b --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/actions.yaml @@ -0,0 +1,48 @@ +# Copyright 2022 +# See LICENSE file for licensing details. +# +# If you don't need actions, you can remove the file entirely. +# It ties in to the example _on_fortune_action handler in src/charm.py +# +# Learn more about actions at: https://juju.is/docs/sdk/actions + +add-zone: + description: "Creates a zone" + params: + zone_name: + description: "The DNS Zone to be created" + type: string + default: "" +delete-zone: + description: "Deletes a zone, all attached metadata and rrsets" + params: + zone_name: + description: "The DNS Zone to be deleted" + type: string + default: "" +add-domain: + description: "Add a subdomain to an existing zone" + params: + zone_name: + description: "The DNS Zone of the domain to be added" + type: string + default: "" + subdomain: + description: "The DNS subdomain to be created" + type: string + default: "" + ip: + description: "The IP of the subdomain" + type: string + default: "" +delete-domain: + description: "Delete a domain from a zone" + params: + zone_name: + description: "The DNS Zone of the domain to be deleted" + type: string + default: "" + subdomain: + description: "The DNS subdomain to be deleted" + type: string + default: "" diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/charmcraft.yaml b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/charmcraft.yaml new file mode 100644 index 00000000..048d4544 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/charmcraft.yaml @@ -0,0 +1,10 @@ +# Learn more about charmcraft.yaml configuration at: +# https://juju.is/docs/sdk/charmcraft-config +type: "charm" +bases: + - build-on: + - name: "ubuntu" + channel: "20.04" + run-on: + - name: "ubuntu" + channel: "20.04" diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/config.yaml b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/config.yaml new file mode 100644 index 00000000..9f4523ef --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/config.yaml @@ -0,0 +1,13 @@ +# Copyright 2022 David Garcia +# See LICENSE file for licensing details. +# +# TEMPLATE-TODO: change this example to suit your needs. +# If you don't need a config, you can remove the file entirely. +# It ties in to the example _on_config_changed handler in src/charm.py +# +# Learn more about config at: https://juju.is/docs/sdk/config + +options: + osm-config: + description: OSM configuration. + type: string diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/coverage.xml b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/coverage.xml new file mode 100644 index 00000000..9a432787 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/coverage.xml @@ -0,0 +1,155 @@ + + + + + + /home/gatici/amsterdam/powerdns_descriptors/powerdns_knf/charms/ops/powerdns-operator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/metadata.yaml b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/metadata.yaml new file mode 100644 index 00000000..5b514019 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/metadata.yaml @@ -0,0 +1,12 @@ +# Copyright 2022 David Garcia +# See LICENSE file for licensing details. + +# For a complete list of supported options, see: +# https://juju.is/docs/sdk/metadata-reference +name: powerdns-operator +display-name: Powerdns +description: | + Proxy charm to perform add/delete zone and domain on PowerDNS Server. +summary: | + Proxy charm to perform add/delete zone and domain on PowerDNS Server. + diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/pyproject.toml b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/pyproject.toml new file mode 100644 index 00000000..d0d4a5bc --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/pyproject.toml @@ -0,0 +1,56 @@ +# Copyright 2022 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact: legal@canonical.com +# +# To get in touch with the maintainers, please contact: +# osm-charmers@lists.launchpad.net + +# Testing tools configuration +[tool.coverage.run] +branch = true + +[tool.coverage.report] +show_missing = true + +[tool.pytest.ini_options] +minversion = "6.0" +log_cli_level = "INFO" + +# Formatting tools configuration +[tool.black] +line-length = 99 +target-version = ["py38"] + +[tool.isort] +profile = "black" + +# Linting tools configuration +[tool.flake8] +max-line-length = 99 +max-doc-length = 99 +max-complexity = 10 +exclude = [".git", "__pycache__", ".tox", "build", "dist", "*.egg_info", "venv"] +select = ["E", "W", "F", "C", "N", "R", "D", "H"] +# Ignore W503, E501 because using black creates errors with this +# Ignore D107 Missing docstring in __init__ +ignore = ["W503", "E501", "D107"] +# D100, D101, D102, D103: Ignore missing docstrings in tests +per-file-ignores = ["tests/*:D100,D101,D102,D103,D104"] +docstring-convention = "google" +# Check for properly formatted copyright header in each file +copyright-check = "True" +copyright-author = "Canonical Ltd." +copyright-regexp = "Copyright\\s\\d{4}([-,]\\d{4})*\\s+%(author)s" diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/requirements-test.txt b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/requirements-test.txt new file mode 100644 index 00000000..f87f5c14 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/requirements-test.txt @@ -0,0 +1 @@ +# TODO \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/requirements.txt b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/requirements.txt new file mode 100644 index 00000000..ec99400c --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/requirements.txt @@ -0,0 +1,2 @@ +ops >= 1.4.0 +requests diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/src/charm.py b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/src/charm.py new file mode 100755 index 00000000..e220348c --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/src/charm.py @@ -0,0 +1,147 @@ +#!/usr/bin/env python3 +# Copyright 2022 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact: legal@canonical.com +# +# To get in touch with the maintainers, please contact: +# osm-charmers@lists.launchpad.net +# +# Learn more about testing at: https://juju.is/docs/sdk/testing +"""PowerDns charm.""" + +import json +import logging + +from ops.charm import CharmBase +from ops.main import main +from ops.model import ActiveStatus, BlockedStatus + +from powerdns import DomainExceptionError, PowerDns, ZoneExceptionError + + +class Service: + """Service Class.""" + + def __init__(self, service_info: dict) -> None: + self._service_info = service_info + + @property + def ip(self): + """Get service ip.""" + return self._service_info["ip"][0] + + def get_port(self, port_name): + """Get port using port name.""" + return self._service_info["ports"][port_name]["port"] + + +class OsmConfig: + """OsmConfig Class.""" + + def __init__(self, charm: CharmBase) -> None: + self._charm = charm + + def get_service(self, service_name: str) -> Service: + """Getting service object using service name.""" + osm_config = json.loads(self._charm.config["osm-config"]) + services = [ + s_values + for s_name, s_values in osm_config["v0"]["k8s"]["services"].items() + if service_name in s_name + ] + return Service(services[0]) + + +class PowerDnsOperatorCharm(CharmBase): + """PowerDns Charm.""" + + def __init__(self, *args): + """Constructor for PowerDns Charm.""" + super().__init__(*args) + self.osm_config = OsmConfig(self) + self.log = logging.getLogger("powerdns.operator") + self.framework.observe(self.on.config_changed, self._on_config_changed) + self.framework.observe(self.on.add_zone_action, self._on_add_zone_action) + self.framework.observe(self.on.delete_zone_action, self._on_delete_zone_action) + + self.framework.observe(self.on.add_domain_action, self._on_add_domain_action) + + self.framework.observe(self.on.delete_domain_action, self._on_delete_domain_action) + + def _on_config_changed(self, _): + """Handler for config-changed event.""" + osm_config = self.config.get("osm-config") + if not osm_config: + self.unit.status = BlockedStatus("osm-config missing") + return + self.log.info(f"osm-config={osm_config}") + self.unit.status = ActiveStatus() + + def _get_dns_server_instance(self) -> PowerDns: + powerdns_service = self.osm_config.get_service("webserver-osm-helm-powerdns") + powerdns_uri = f'http://{powerdns_service.ip}:{powerdns_service.get_port("dns-webserver")}/api/v1/servers/localhost/zones' + return PowerDns(powerdns_uri) + + def _on_add_zone_action(self, event): + """Handler for add-zone action.""" + try: + self.log.info("Running add-zone action...") + zone = event.params["zone_name"] + powerdns = self._get_dns_server_instance() + result = powerdns.add_zone(zone) + event.set_results({"output": result}) + except ZoneExceptionError as e: + event.fail(f"Failed to add zone: {e}") + + def _on_delete_zone_action(self, event): + """Handler for delete-zone action.""" + try: + self.log.info("Running delete-zone action...") + zone = event.params["zone_name"] + powerdns = self._get_dns_server_instance() + result = powerdns.delete_zone(zone) + event.set_results({"output": result}) + except ZoneExceptionError as e: + event.fail(f"Failed to delete zone: {e}") + + def _on_add_domain_action(self, event): + """Handler for add-domain action.""" + try: + self.log.info("Running add-domain action...") + zone = event.params["zone_name"] + domain = event.params["subdomain"] + ip = event.params["ip"] + powerdns = self._get_dns_server_instance() + result = powerdns.add_domain(zone, domain, ip) + event.set_results({"output": result}) + except DomainExceptionError as e: + event.fail(f"Failed to add domain: {e}") + + def _on_delete_domain_action(self, event): + """Handler for delete domain action.""" + try: + self.log.info("Running delete-domain action...") + zone = event.params["zone_name"] + domain = event.params["subdomain"] + powerdns = self._get_dns_server_instance() + result = powerdns.delete_domain(zone, domain) + event.set_results({"output": result}) + except DomainExceptionError as e: + event.fail(f"Failed to delete domain: {e}") + + +if __name__ == "__main__": + main(PowerDnsOperatorCharm) diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/src/powerdns.py b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/src/powerdns.py new file mode 100755 index 00000000..acc48e0e --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/src/powerdns.py @@ -0,0 +1,170 @@ +#!/usr/bin/env python3 +# Copyright 2022 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact: legal@canonical.com +# +# To get in touch with the maintainers, please contact: +# osm-charmers@lists.launchpad.net +# +# Learn more about testing at: https://juju.is/docs/sdk/testing +"""DNS server.""" + +import json +import logging + +import requests + +APIKEY = "pdnsapikey" + + +class ZoneExceptionError(Exception): + """DNS Zone Exception Class.""" + + +class DomainExceptionError(Exception): + """DNS Domain Exception Class.""" + + +class PowerDns: + """PowerDns Class.""" + + def __init__(self, powerdns_uri: str) -> None: + """Powerdns Constructor. + + Args: + powerdns_uri (str): powerdns url to send the request + """ + self.url = powerdns_uri + self.headers = {"X-API-Key": APIKEY} + self.log = logging.getLogger("powerdns") + + def add_zone(self, zone: str) -> str: + """Add Zone to DNS Server. + + Args: + zone (str): zone to be registered + + Returns: + status code:request output (str) + + Raises: + ZoneException + """ + payload = { + "name": zone, + "kind": "Native", + "masters": [], + "nameservers": [f"nameserver.{zone}"], + } + r = requests.post(url=self.url, data=json.dumps(payload), headers=self.headers) + + if r.status_code != 201: + err_code = str(r.status_code) + self.log.error(err_code + " " + r.text) + raise ZoneExceptionError( + f"Add zone operation failed with status code {err_code}, {r.text}" + ) + else: + self.log.info("Added zone {zone}") + return f"{r.status_code}:{r.text}" + + def delete_zone(self, zone: str) -> str: + """Delete Zone from DNS Server. + + Args: + zone (str): zone to be deleted + + Returns: + status code:request output (str) + + Raises: + ZoneException + """ + r = requests.delete(url=self.url + "/" + zone, headers=self.headers) + if r.status_code != 204: + err_code = str(r.status_code) + self.log.error(err_code + " " + r.text) + raise ZoneExceptionError( + f"Delete zone operation failed with status code {err_code}, {r.text}" + ) + else: + self.log.info(f"Deleted zone {zone}") + return f"{r.status_code}:{r.text}" + + def add_domain(self, zone: str, domain: str, ip: str) -> str: + """Add Domain to DNS Server. + + Args: + zone (str): zone of domain + domain (str): domain to be registered + ip (str): ip address for domain + + Returns: + status code:request output (str) + + Raises: + DomainException + """ + payload = { + "rrsets": [ + { + "name": domain + zone, + "type": "A", + "ttl": 86400, + "changetype": "REPLACE", + "records": [{"content": ip}], + } + ] + } + + r = requests.patch( + url=self.url + "/" + zone, data=json.dumps(payload), headers=self.headers + ) + if r.status_code != 204: + err_code = str(r.status_code) + self.log.error(err_code + " " + r.text) + raise DomainExceptionError( + f"Add domain operation failed with status code {err_code}, {r.text}" + ) + else: + self.log.info(f"Added record of {domain}{zone} in {ip}") + return f"{r.status_code}:{r.text}" + + def delete_domain(self, zone: str, domain: str) -> str: + """Delete Domain from DNS Server. + + Args: + zone (str): zone of domain + domain (str): domain to be deleted + + Returns: + status code:request output (str) + + Raises: + DomainException + """ + payload = {"rrsets": [{"name": domain + zone, "type": "A", "changetype": "DELETE"}]} + + r = requests.patch(self.url + "/" + zone, data=json.dumps(payload), headers=self.headers) + if r.status_code != 204: + err_code = str(r.status_code) + self.log.error(err_code + " " + r.text) + raise DomainExceptionError( + f"Delete domain operation failed with status code {err_code}, {r.text}" + ) + else: + self.log.info(f"Deleted record of {domain} in zone {zone}") + return f"{r.status_code}:{r.text}" diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/tests/test_charm.py b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/tests/test_charm.py new file mode 100644 index 00000000..98fc9841 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/tests/test_charm.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 +# Copyright 2022 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact: legal@canonical.com +# +# To get in touch with the maintainers, please contact: +# osm-charmers@lists.launchpad.net +# +# Learn more about testing at: https://juju.is/docs/sdk/testing +# TODO diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/tox.ini b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/tox.ini new file mode 100644 index 00000000..e1421f3a --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/ops/powerdns-operator/tox.ini @@ -0,0 +1,95 @@ +# Copyright 2022 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact: legal@canonical.com +# +# To get in touch with the maintainers, please contact: +# osm-charmers@lists.launchpad.net + +[tox] +skipsdist=True +skip_missing_interpreters = True +envlist = lint, unit + +[vars] +src_path = {toxinidir}/src/ +tst_path = {toxinidir}/tests/ +lib_path = {toxinidir}/lib/charms/osm_nbi +all_path = {[vars]src_path} {[vars]tst_path} + +[testenv] +setenv = + PYTHONPATH = {toxinidir}:{toxinidir}/lib:{[vars]src_path} + PYTHONBREAKPOINT=ipdb.set_trace + PY_COLORS=1 +passenv = + PYTHONPATH + CHARM_BUILD_DIR + MODEL_SETTINGS + +[testenv:fmt] +description = Apply coding style standards to code +deps = + black + isort +commands = + isort {[vars]all_path} + black {[vars]all_path} + +[testenv:lint] +description = Check code against coding style standards +deps = + black + flake8 + flake8-docstrings + flake8-copyright + flake8-builtins + pyproject-flake8 + pep8-naming + isort + codespell +commands = + # uncomment the following line if this charm owns a lib + codespell {[vars]lib_path} + codespell {toxinidir}/. --skip {toxinidir}/.git --skip {toxinidir}/.tox \ + --skip {toxinidir}/build --skip {toxinidir}/lib --skip {toxinidir}/venv \ + --skip {toxinidir}/.mypy_cache --skip {toxinidir}/icon.svg + # pflake8 wrapper supports config from pyproject.toml + pflake8 {[vars]all_path} + isort --check-only --diff {[vars]all_path} + black --check --diff {[vars]all_path} + +[testenv:unit] +description = Run unit tests +deps = + pytest + pytest-mock + coverage[toml] + -r{toxinidir}/requirements.txt +commands = + - coverage run --source={[vars]src_path},{[vars]lib_path} \ + -m pytest --ignore={[vars]tst_path}integration -v --tb native -s {posargs} + - coverage report + - coverage xml + +[testenv:integration] +description = Run integration tests +deps = + pytest + juju + pytest-operator + -r{toxinidir}/requirements.txt +commands = + - pytest -v --tb native --ignore={[vars]tst_path}unit --log-cli-level=INFO -s {posargs} diff --git a/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/powerdns-operator_ubuntu-20.04-amd64.charm b/Hackfest_Demos/OSM-MR13/powerdns/powerdns_knf/charms/powerdns-operator_ubuntu-20.04-amd64.charm new file mode 100644 index 0000000000000000000000000000000000000000..2f588c09c3f64b2d54f2eca0618fcb119d289d3a GIT binary patch literal 2923443 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%0A6V7my1 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