Ver Fonte

Add ability to configure collabora container specifically

sonicaj há 4 anos atrás
pai
commit
a10c6e92fd

+ 68 - 1
test/collabora/1.0.0/questions.yaml

@@ -1,4 +1,6 @@
 groups:
+  - name: "Collabora Configuration"
+    description: "Configure Collabora"
   - name: "Storage"
     description: "Configure Storage for Collabora"
   - name: "Collabora Environment Variables"
@@ -15,6 +17,71 @@ portals:
     path: "/loleaflet/dist/admin/admin.html"
 
 questions:
+  - variable: config
+    label: "Container Configuration"
+    group: "Collabora Configuration"
+    schema:
+      type: dict
+      attrs:
+        - variable: timezone
+            label: "Timezone"
+            group: "Collabora Configuration"
+            schema:
+              type: string
+              $ref:
+                - "definitions/timezone"
+        - variable: domain
+            label: "Domain(s) using collabora"
+            description: 'Use backslash "\" before dots ".". Use pipe "|" to separate multiple domains'
+            schema:
+              type: string
+              default: 'nextcloud\.domain\.tld|othernextcloud\.domain\.tld'
+              valid_chars: '^([a-z]{1,}\\{1}\.{1}[a-z]{1,}\\{1}\.{1}[a-z]{1,}\|{0,1})*$'
+              required: true
+        - variable: username
+          label: "Username for WebUI"
+          schema:
+            type: string
+            default: "admin"
+            required: true
+        - variable: password
+          label: "Password for WebUI"
+          schema:
+            type: string
+            private: true
+            default: ""
+            valid_chars: "[a-zA-Z0-9!@#$%^&*?]{8,}"
+            required: true
+        - variable: dictionaries
+          label: "Dictionaries to use, leave empty to use all"
+          schema:
+            type: string
+            default: "de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru"
+        - variable: extra_params
+          label: "Extra Parameters to add"
+          description: 'e.g. "--o:welcome.enable=false", See more on /etc/loolwsd/loowsd.xml. Separate params with space'
+          schema:
+            type: string
+            default: "--o:welcome.enable=false --o:user_interface.mode=notebookbar --o:ssl.termination=true --o:ssl.enable=false"
+        - variable: DONT_GEN_SSL_CERT
+          label: "DONT_GEN_SSL_CERT"
+          description: "When set to true it does NOT generate an SSL cert, you have to use your own"
+          schema:
+            type: string
+            default: "true"
+            enum:
+              - value: "true"
+                description: "true"
+              - value: ""
+                description: "false"
+        - variable: server_name
+          label: "Server Name"
+          description: "When this environment variable is set (is not “”), then its value will be used as server name in /etc/loolwsd/loolwsd.xml. Without this, CODE is not delivering a correct host for the websocket connection in case of a proxy in front of it."
+          schema:
+            type: string
+            default: ''
+            valid_chars: '^[a-z]{1,}\\{1}\.{1}[a-z]{1,}\\{1}\.{1}[a-z]{1,}$'
+
   - variable: extraAppVolumeMounts
     label: "Collabora Extra Host Path Volumes"
     group: "Storage"
@@ -41,7 +108,7 @@ questions:
                   required: true
 
   - variable: environmentVariables
-    label: "Environment Variables for Collabora"
+    label: "Environment Variables"
     group: "Collabora Environment Variables"
     schema:
       type: list

+ 9 - 2
test/collabora/1.0.0/templates/deployment.yaml

@@ -28,8 +28,15 @@ spec:
               protocol: TCP
               containerPort: 9980
           {{ $envList := (default list .Values.environmentVariables) }}
-          {{ $envList = mustAppend $envList (dict "name" "keys" "value" "/plots/keyfile") }}
-          {{ $envList = mustAppend $envList (dict "name" "farmr" "value" $.Values.farmr_env) }}
+          {{ $envConfig := .Values.config }}
+          {{ $envList = mustAppend $envList (dict "name" "timezone" "value" $envConfig.timezone) }}
+          {{ $envList = mustAppend $envList (dict "name" "domain" "value" $envConfig.domain) }}
+          {{ $envList = mustAppend $envList (dict "name" "username" "value" $envConfig.username) }}
+          {{ $envList = mustAppend $envList (dict "name" "password" "value" $envConfig.password) }}
+          {{ $envList = mustAppend $envList (dict "name" "dictionaries" "value" $envConfig.dictionaries) }}
+          {{ $envList = mustAppend $envList (dict "name" "extra_params" "value" $envConfig.extra_params) }}
+          {{ $envList = mustAppend $envList (dict "name" "DONT_GEN_SSL_CERT" "value" $envConfig.DONT_GEN_SSL_CERT) }}
+          {{ $envList = mustAppend $envList (dict "name" "server_name" "value" $envConfig.server_name) }}
           {{ include "common.containers.allEnvironmentVariables" (dict "environmentVariables" $envList) | nindent 10 }}
       {{ if .Values.extraAppVolumeMounts }}
       volumes:

+ 9 - 7
test/collabora/1.0.0/test_values.yaml

@@ -1,13 +1,15 @@
-appVolumeMounts:
-  data:
-    emptyDir: true
-    mountPath: /data
-  staging:
-    emptyDir: true
-    mountPath: /plots
 image:
   pullPolicy: IfNotPresent
   repository: collabora/code
   tag: 6.4.10.10
 updateStrategy: Recreate
+config:
+  timezone: "America/Los_Angeles"
+  domain: "somedomain"
+  username: "admin"
+  password: "changeme"
+  dictionaries: "de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru"
+  extra_params: "--o:welcome.enable=false --o:user_interface.mode=notebookbar --o:ssl.termination=true --o:ssl.enable=false"
+  DONT_GEN_SSL_CERT: "true"
+  server_name: "collabora"