From 21aac1909edf5dc84eae067a536a16e16ca897fb Mon Sep 17 00:00:00 2001
From: Maarten de Waard <maarten@greenhost.nl>
Date: Mon, 26 Aug 2019 15:49:32 +0200
Subject: [PATCH] make which apps to install and enable configurable

---
 ...gister-onlyoffice.yaml => job-setup-apps.yaml} |  6 +++---
 .../templates/onlyoffice-config.yaml              | 15 ++++++++++-----
 nextcloud-onlyoffice/values.yaml                  |  9 +++++++++
 3 files changed, 22 insertions(+), 8 deletions(-)
 rename nextcloud-onlyoffice/templates/{job-register-onlyoffice.yaml => job-setup-apps.yaml} (89%)

diff --git a/nextcloud-onlyoffice/templates/job-register-onlyoffice.yaml b/nextcloud-onlyoffice/templates/job-setup-apps.yaml
similarity index 89%
rename from nextcloud-onlyoffice/templates/job-register-onlyoffice.yaml
rename to nextcloud-onlyoffice/templates/job-setup-apps.yaml
index 0f51b16a..7ac44410 100644
--- a/nextcloud-onlyoffice/templates/job-register-onlyoffice.yaml
+++ b/nextcloud-onlyoffice/templates/job-setup-apps.yaml
@@ -3,7 +3,7 @@
 apiVersion: batch/v1
 kind: Job
 metadata:
-  name: "{{ .Release.Name }}-register-onlyoffice"
+  name: "{{ .Release.Name }}-setup-apps"
   labels:
     app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
     app.kubernetes.io/instance: {{ .Release.Name | quote }}
@@ -24,11 +24,11 @@ spec:
       restartPolicy: Never
       securityContext: {{- include "nextcloud-onlyoffice.securityContext" . | indent 8 }}
       containers:
-      - name: {{ .Release.Name }}-register-onlyoffice-job
+      - name: {{ .Release.Name }}-setup-apps-job
         image: {{ .Values.nextcloud.image.repository }}:{{ .Values.nextcloud.image.tag }}
         command:
           - "/bin/bash"
-          - "/var/local/onlyoffice-setup.sh"
+          - "/var/local/setup-apps.sh"
         volumeMounts: {{- include "nextcloud-onlyoffice.volumeMounts" . | indent 8 }}
         env: {{- include "nextcloud-onlyoffice.env" . | indent 8 }}
       volumes: {{- include "nextcloud-onlyoffice.volumes" . | indent 6 }}
diff --git a/nextcloud-onlyoffice/templates/onlyoffice-config.yaml b/nextcloud-onlyoffice/templates/onlyoffice-config.yaml
index 012af96d..6256eac4 100644
--- a/nextcloud-onlyoffice/templates/onlyoffice-config.yaml
+++ b/nextcloud-onlyoffice/templates/onlyoffice-config.yaml
@@ -26,18 +26,23 @@ data:
         }
       }
     }
-  onlyoffice-setup.sh: |
+  setup-apps.sh: |
     #!/bin/bash
 
     set -ev
     # Debug: place the json file in a persistent location for reuse
     cp /var/local/onlyoffice-config.json /var/www/html/
-    # Only install onlyoffice if it's not installed already
-    if ! php occ app:list | grep -q onlyoffice; then
-        php occ app:install onlyoffice
+    {{- range .Values.apps }}
+    # -- Begin {{ .name }}
+    # Only install {{ .name }} if it's not installed already
+    if ! php occ app:list | grep -q {{ .name }}; then
+        php occ app:install {{ .name }}
     fi
     # Enable onlyoffice app
-    php occ app:enable onlyoffice
+    {{- if .enabled }}
+    php occ app:enable {{ .name }}
+    {{ end }} # -- end {{ .name }}
+    {{ end }} # end range {{ .Values.apps }}
 
     # Config settings from the configmap above
     php occ config:import /var/local/onlyoffice-config.json
diff --git a/nextcloud-onlyoffice/values.yaml b/nextcloud-onlyoffice/values.yaml
index 65b54060..17ac94fe 100644
--- a/nextcloud-onlyoffice/values.yaml
+++ b/nextcloud-onlyoffice/values.yaml
@@ -17,6 +17,15 @@ nextcloud:
   cronjob:
     enabled: true
 
+apps:
+  # OIDC consumer
+  - name: sociallogin
+    enabled: false
+  # List of applications that are installed *and enabled*
+  - name: onlyoffice
+    enabled: true
+
+
 # Necessary so the chart gets installed (because the requirements.yaml has a
 # condition: `condition: mariadb.enabled`). Follow
 # https://github.com/helm/helm/issues/5135 for more info.
-- 
GitLab