From be912f66b1b436646a1b6ad3bd27e86888a7c4ce Mon Sep 17 00:00:00 2001 From: Matej Hasul Date: Fri, 27 Sep 2019 11:06:58 +0200 Subject: [PATCH 1/4] [bitnami/mariadb-galera] Allow to set additional containers Useful to set various sidecar containers. In our use case we use it to register dynamically allocated service NodePort to eureka. Signed-off-by: Matej Hasul --- bitnami/mariadb-galera/Chart.yaml | 2 +- bitnami/mariadb-galera/README.md | 30 +++++++++++++++++++ .../mariadb-galera/templates/statefulset.yaml | 2 ++ bitnami/mariadb-galera/values-production.yaml | 2 ++ bitnami/mariadb-galera/values.yaml | 2 ++ 5 files changed, 37 insertions(+), 1 deletion(-) diff --git a/bitnami/mariadb-galera/Chart.yaml b/bitnami/mariadb-galera/Chart.yaml index 63440684e..d095c96ca 100644 --- a/bitnami/mariadb-galera/Chart.yaml +++ b/bitnami/mariadb-galera/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: mariadb-galera -version: 0.2.8 +version: 0.3.0 appVersion: 10.3.18 description: MariaDB Galera is a multi-master database cluster solution for synchronous replication and high availability. keywords: diff --git a/bitnami/mariadb-galera/README.md b/bitnami/mariadb-galera/README.md index efe71c256..2d6763579 100644 --- a/bitnami/mariadb-galera/README.md +++ b/bitnami/mariadb-galera/README.md @@ -128,6 +128,7 @@ The following table lists the configurable parameters of the MariaDB Galera char | `persistence.accessModes` | Persistent Volume Access Modes | `[ReadWriteOnce]` | | `persistence.size` | Persistent Volume Size | `8Gi` | | `extraInitContainers` | Additional init containers (this value is evaluated as a template) | `nil` | +| `extraContainers` | Additional containers (this value is evaluated as a template) | `[]` | | `resources` | CPU/Memory resource requests/limits for node | `{}` | | `livenessProbe.enabled` | Turn on and off liveness probe | `true` | | `livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | `120` | @@ -277,6 +278,35 @@ extraInitContainers: | - install_packages curl && curl http://api-service.local/db/starting; ``` +## Extra Containers + +The feature allows for specifying additional containers in the pod. Usecases include situations when you need to run some sidecar containers. For example, you can observe if mysql in pod is running and report to some service discovery software like eureka. Example: +`values.yaml` +```yaml +extraContainers: +- name: '{{ .Chart.Name }}-eureka-sidecar' + image: 'image:tag' + env: + - name: SERVICE_NAME + value: '{{ template "mariadb-galera.fullname" . }}' + - name: EUREKA_APP_NAME + value: '{{ template "mariadb-galera.name" . }}' + - name: MARIADB_USER + value: '{{ .Values.db.user }}' + - name: MARIADB_PASSWORD + valueFrom: + secretKeyRef: + name: '{{ template "mariadb-galera.fullname" . }}' + key: mariadb-password + resources: + limits: + cpu: 100m + memory: 20Mi + requests: + cpu: 50m + memory: 10Mi +``` + ## Upgrading It's necessary to specify the existing passwords while performing a upgrade to ensure the secrets are not updated with invalid randomly generated passwords. Remember to specify the existing values of the `rootUser.password`, `db.password` and `galera.mariabackup.password` parameters when upgrading the chart: diff --git a/bitnami/mariadb-galera/templates/statefulset.yaml b/bitnami/mariadb-galera/templates/statefulset.yaml index 5c6c8e7d8..0f277a450 100644 --- a/bitnami/mariadb-galera/templates/statefulset.yaml +++ b/bitnami/mariadb-galera/templates/statefulset.yaml @@ -240,6 +240,8 @@ spec: resources: {{ toYaml .Values.metrics.resources | indent 10 }} {{- end }} +{{ tpl (toYaml .Values.extraContainers) . | indent 6 }} + volumes: {{- if or (.Files.Glob "files/my.cnf") .Values.mariadbConfiguration .Values.configurationConfigMap }} - name: mariadb-galera-config diff --git a/bitnami/mariadb-galera/values-production.yaml b/bitnami/mariadb-galera/values-production.yaml index 061db1c2d..134020a49 100644 --- a/bitnami/mariadb-galera/values-production.yaml +++ b/bitnami/mariadb-galera/values-production.yaml @@ -366,6 +366,8 @@ persistence: # image: bitnami/minideb:stretch # command: ['do', 'something'] +## Additional containers +extraContainers: [] ## Configure resource requests and limits ## ref: http://kubernetes.io/docs/user-guide/compute-resources/ diff --git a/bitnami/mariadb-galera/values.yaml b/bitnami/mariadb-galera/values.yaml index 59a72b768..1af8bea75 100644 --- a/bitnami/mariadb-galera/values.yaml +++ b/bitnami/mariadb-galera/values.yaml @@ -366,6 +366,8 @@ persistence: # image: bitnami/minideb:stretch # command: ['do', 'something'] +## Additional containers +extraContainers: [] ## Configure resource requests and limits ## ref: http://kubernetes.io/docs/user-guide/compute-resources/ From f8bc51bef8d5cca699f8e9ffb9636dfc89d6dd2a Mon Sep 17 00:00:00 2001 From: Matej Hasul Date: Mon, 30 Sep 2019 15:09:02 +0200 Subject: [PATCH 2/4] [bitnami/mariadb-galera] Support json values in extraInitContainers Signed-off-by: Matej Hasul --- bitnami/mariadb-galera/README.md | 4 ++-- bitnami/mariadb-galera/templates/statefulset.yaml | 2 +- bitnami/mariadb-galera/values-production.yaml | 2 +- bitnami/mariadb-galera/values.yaml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bitnami/mariadb-galera/README.md b/bitnami/mariadb-galera/README.md index 2d6763579..0e855b347 100644 --- a/bitnami/mariadb-galera/README.md +++ b/bitnami/mariadb-galera/README.md @@ -127,7 +127,7 @@ The following table lists the configurable parameters of the MariaDB Galera char | `persistence.storageClass` | Persistent Volume Storage Class | `nil` | | `persistence.accessModes` | Persistent Volume Access Modes | `[ReadWriteOnce]` | | `persistence.size` | Persistent Volume Size | `8Gi` | -| `extraInitContainers` | Additional init containers (this value is evaluated as a template) | `nil` | +| `extraInitContainers` | Additional init containers (this value is evaluated as a template) | `[]` | | `extraContainers` | Additional containers (this value is evaluated as a template) | `[]` | | `resources` | CPU/Memory resource requests/limits for node | `{}` | | `livenessProbe.enabled` | Turn on and off liveness probe | `true` | @@ -270,7 +270,7 @@ The chart mounts a [Persistent Volume](kubernetes.io/docs/user-guide/persistent- The feature allows for specifying a template string for a initContainer in the pod. Usecases include situations when you need some pre-run setup. For example, in IKS (IBM Cloud Kubernetes Service), non-root users do not have write permission on the volume mount path for NFS-powered file storage. So, you could use a initcontainer to `chown` the mount. See a example below, where we add an initContainer on the pod that reports to an external resource that the db is going to starting. `values.yaml` ```yaml -extraInitContainers: | +extraInitContainers: - name: initcontainer image: bitnami/minideb:stretch command: ["/bin/sh", "-c"] diff --git a/bitnami/mariadb-galera/templates/statefulset.yaml b/bitnami/mariadb-galera/templates/statefulset.yaml index 0f277a450..a72833f22 100644 --- a/bitnami/mariadb-galera/templates/statefulset.yaml +++ b/bitnami/mariadb-galera/templates/statefulset.yaml @@ -76,7 +76,7 @@ spec: {{- include "mariadb-galera.imagePullSecrets" . | indent 6 }} {{- if .Values.extraInitContainers }} initContainers: -{{ tpl .Values.extraInitContainers . | indent 6}} +{{ tpl (toYaml .Values.extraInitContainers) . | indent 6 }} {{- end }} containers: - name: "mariadb-galera" diff --git a/bitnami/mariadb-galera/values-production.yaml b/bitnami/mariadb-galera/values-production.yaml index 134020a49..42b15d37d 100644 --- a/bitnami/mariadb-galera/values-production.yaml +++ b/bitnami/mariadb-galera/values-production.yaml @@ -361,7 +361,7 @@ persistence: ## Additional init containers ## -# extraInitContainers: | +extraInitContainers: [] # - name: do-something # image: bitnami/minideb:stretch # command: ['do', 'something'] diff --git a/bitnami/mariadb-galera/values.yaml b/bitnami/mariadb-galera/values.yaml index 1af8bea75..4d00aa909 100644 --- a/bitnami/mariadb-galera/values.yaml +++ b/bitnami/mariadb-galera/values.yaml @@ -361,7 +361,7 @@ persistence: ## Additional init containers ## -# extraInitContainers: | +extraInitContainers: [] # - name: do-something # image: bitnami/minideb:stretch # command: ['do', 'something'] From 68b1e144d2966659ad8062397bc6e7dd136f06f1 Mon Sep 17 00:00:00 2001 From: Matej Hasul Date: Tue, 1 Oct 2019 16:54:30 +0200 Subject: [PATCH 3/4] fixup! [bitnami/mariadb-galera] Allow to set additional containers Add missing comment lines and remove redundant empty line Signed-off-by: Matej Hasul --- bitnami/mariadb-galera/templates/statefulset.yaml | 1 - bitnami/mariadb-galera/values-production.yaml | 1 + bitnami/mariadb-galera/values.yaml | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bitnami/mariadb-galera/templates/statefulset.yaml b/bitnami/mariadb-galera/templates/statefulset.yaml index a72833f22..9d7c5f010 100644 --- a/bitnami/mariadb-galera/templates/statefulset.yaml +++ b/bitnami/mariadb-galera/templates/statefulset.yaml @@ -241,7 +241,6 @@ spec: {{ toYaml .Values.metrics.resources | indent 10 }} {{- end }} {{ tpl (toYaml .Values.extraContainers) . | indent 6 }} - volumes: {{- if or (.Files.Glob "files/my.cnf") .Values.mariadbConfiguration .Values.configurationConfigMap }} - name: mariadb-galera-config diff --git a/bitnami/mariadb-galera/values-production.yaml b/bitnami/mariadb-galera/values-production.yaml index 42b15d37d..cd407fa8e 100644 --- a/bitnami/mariadb-galera/values-production.yaml +++ b/bitnami/mariadb-galera/values-production.yaml @@ -367,6 +367,7 @@ extraInitContainers: [] # command: ['do', 'something'] ## Additional containers +## extraContainers: [] ## Configure resource requests and limits diff --git a/bitnami/mariadb-galera/values.yaml b/bitnami/mariadb-galera/values.yaml index 4d00aa909..a25938733 100644 --- a/bitnami/mariadb-galera/values.yaml +++ b/bitnami/mariadb-galera/values.yaml @@ -367,6 +367,7 @@ extraInitContainers: [] # command: ['do', 'something'] ## Additional containers +## extraContainers: [] ## Configure resource requests and limits From 7e870c621bfe5121fbdf31241ff6aebc6771f3cf Mon Sep 17 00:00:00 2001 From: Matej Hasul Date: Tue, 1 Oct 2019 17:14:17 +0200 Subject: [PATCH 4/4] fixup! fixup! [bitnami/mariadb-galera] Allow to set additional containers Add extraContainers only if not empty. Otherwise it puts `[]` in the generated statefulset. Signed-off-by: Matej Hasul --- bitnami/mariadb-galera/templates/statefulset.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bitnami/mariadb-galera/templates/statefulset.yaml b/bitnami/mariadb-galera/templates/statefulset.yaml index 9d7c5f010..f1cfaf43e 100644 --- a/bitnami/mariadb-galera/templates/statefulset.yaml +++ b/bitnami/mariadb-galera/templates/statefulset.yaml @@ -240,7 +240,9 @@ spec: resources: {{ toYaml .Values.metrics.resources | indent 10 }} {{- end }} +{{- if .Values.extraContainers }} {{ tpl (toYaml .Values.extraContainers) . | indent 6 }} +{{- end }} volumes: {{- if or (.Files.Glob "files/my.cnf") .Values.mariadbConfiguration .Values.configurationConfigMap }} - name: mariadb-galera-config