From 8f0008520efe9d7aa95d9fa1f2a4216539a5abf2 Mon Sep 17 00:00:00 2001
From: Maarten de Waard <maarten@greenhost.nl>
Date: Wed, 4 May 2022 09:26:01 +0200
Subject: [PATCH] feat: use global variable so mariadb chart can template
 initdb script

---
 .../nextcloud-mariadb-initdbscripts.yaml      |  9 --------
 templates/onlyoffice-database-secret.yaml     |  2 +-
 templates/onlyoffice-deployment.yaml          |  8 +++----
 values-local.yaml.example                     |  6 +++--
 values.yaml                                   | 22 +++++++++++++------
 5 files changed, 24 insertions(+), 23 deletions(-)
 delete mode 100644 templates/nextcloud-mariadb-initdbscripts.yaml

diff --git a/templates/nextcloud-mariadb-initdbscripts.yaml b/templates/nextcloud-mariadb-initdbscripts.yaml
deleted file mode 100644
index 8045598e..00000000
--- a/templates/nextcloud-mariadb-initdbscripts.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: "nextcloud-mariadb-initdbscripts"
-data:
-  setup.sql: |
-    CREATE USER {{ .Values.onlyoffice.database.user }} IDENTIFIED BY '{{ .Values.onlyoffice.database.password }}';
-    CREATE DATABASE {{ .Values.onlyoffice.database.name }};
-    GRANT ALL PRIVILEGES ON {{ .Values.onlyoffice.database.name }}.* TO '{{ .Values.onlyoffice.database.user }}'@'%';
diff --git a/templates/onlyoffice-database-secret.yaml b/templates/onlyoffice-database-secret.yaml
index e78edcbb..eb2f9222 100644
--- a/templates/onlyoffice-database-secret.yaml
+++ b/templates/onlyoffice-database-secret.yaml
@@ -4,4 +4,4 @@ type: Opaque
 metadata:
   name: "{{ .Release.Name }}-onlyoffice-database"
 stringData:
-  database-password: "{{ .Values.onlyoffice.database.password }}"
+  database-password: "{{ .Values.global.onlyofficeDb.password }}"
diff --git a/templates/onlyoffice-deployment.yaml b/templates/onlyoffice-deployment.yaml
index cf1413d7..ab6e3e37 100644
--- a/templates/onlyoffice-deployment.yaml
+++ b/templates/onlyoffice-deployment.yaml
@@ -85,18 +85,18 @@ spec:
             - name: DB_TYPE
               value: "mariadb"
             - name: DB_USER
-              value: "{{ .Values.onlyoffice.database.user }}"
+              value: "{{ .Values.global.onlyofficeDb.user }}"
             - name: DB_PWD
               valueFrom:
                 secretKeyRef:
                   name: "{{ .Release.Name }}-onlyoffice-database"
                   key: "database-password"
             - name: DB_HOST
-              value: {{ .Values.onlyoffice.database.host | default (printf "%s-mariadb" .Release.Name) }}
+              value: {{ .Values.global.onlyofficeDb.host | default (printf "%s-mariadb" .Release.Name) }}
             - name: DB_PORT
-              value: "{{ .Values.onlyoffice.database.port }}"
+              value: "{{ .Values.global.onlyofficeDb.port }}"
             - name: DB_NAME
-              value: "{{ .Values.onlyoffice.database.name }}"
+              value: "{{ .Values.global.onlyofficeDb.name }}"
             - name: REDIS_SERVER_HOST
               value: "{{ .Release.Name }}-redis-master"
             - name: REDIS_SERVER_PORT
diff --git a/values-local.yaml.example b/values-local.yaml.example
index e2814d79..070062e6 100644
--- a/values-local.yaml.example
+++ b/values-local.yaml.example
@@ -38,6 +38,10 @@ nextcloud:
   #   enabled: true
   #   size: 2Gi
 
+global:
+  onlyofficeDb:
+    password: CHANGE_ME
+
 onlyoffice:
   server_name: "office.your.domain"
   jwtSecret: CHANGE_ME
@@ -49,8 +53,6 @@ onlyoffice:
       - hosts:
           - "office.your.domain"
         secretName: office-cert
-  database:
-    password: CHANGE_ME
 
 rabbitmq:
   auth:
diff --git a/values.yaml b/values.yaml
index da811d2e..bf6e26e4 100644
--- a/values.yaml
+++ b/values.yaml
@@ -13,7 +13,12 @@ nextcloud:
     volumePermissions:
       image:
         pullSecrets: []
-    initdbScriptsConfigMap: "nextcloud-mariadb-initdbscripts"
+    # initdbScriptsConfigMap: "nextcloud-mariadb-initdbscripts"
+    initdbScripts:
+      setup.sql: |
+        CREATE USER {{ .Values.global.onlyofficeDb.user }} IDENTIFIED BY '{{ .Values.global.onlyofficeDb.password }}';
+        CREATE DATABASE {{ .Values.global.onlyofficeDb.name }};
+        GRANT ALL PRIVILEGES ON {{ .Values.global.onlyofficeDb.name }}.* TO '{{ .Values.global.onlyofficeDb.user }}'@'%';
 
   # Use 2 GB of storage for NC storage (maybe make configurable later?)
   persistence:
@@ -43,6 +48,15 @@ setupApps:
 mariadb:
   enabled: true
 
+global:
+  onlyofficeDb:
+    # `host` defaults to "{{ .Release.Name }}-mariadb"
+    name: onlyoffice
+    port: 3306
+    user: onlyoffice
+    # password:
+
+
 onlyoffice:
   # Default values for onlyoffice.
 
@@ -102,12 +116,6 @@ onlyoffice:
     accessMode: ReadWriteOnce
     size: 2Gi
 
-  database:
-    # `host` defaults to "{{ .Release.Name }}-mariadb"
-    name: onlyoffice
-    port: 3306
-    user: onlyoffice
-    # password:
 
   nameOverride: ''
   fullnameOverride: ''
-- 
GitLab