From 0e7592f5f20ec698bd98ceaf7c3277e0d846fbdf Mon Sep 17 00:00:00 2001
From: Varac <varac@varac.net>
Date: Thu, 3 Oct 2019 11:59:47 +0000
Subject: [PATCH] Resolve "Use InfraRed's version of OnlyOffice"

---
 nextcloud-onlyoffice/Chart.yaml               |  2 +-
 nextcloud-onlyoffice/requirements.yaml        |  2 +-
 .../templates/onlyoffice-config.yaml          |  2 +-
 nextcloud-onlyoffice/values.yaml              |  2 -
 onlyoffice-documentserver/Chart.yaml          |  2 +-
 onlyoffice-documentserver/README.md           |  8 ++++
 onlyoffice-documentserver/requirements.yaml   | 22 +++++++++++
 .../templates/deployment.yaml                 | 37 ++++++++++++++++++-
 onlyoffice-documentserver/values.yaml         | 29 +++++++++++++--
 9 files changed, 95 insertions(+), 11 deletions(-)
 create mode 100644 onlyoffice-documentserver/requirements.yaml

diff --git a/nextcloud-onlyoffice/Chart.yaml b/nextcloud-onlyoffice/Chart.yaml
index a2517259..16f5023d 100644
--- a/nextcloud-onlyoffice/Chart.yaml
+++ b/nextcloud-onlyoffice/Chart.yaml
@@ -2,4 +2,4 @@ apiVersion: v1
 description: |
   A helm chart for installing NextCloud and setting up ONLYOFFICE integration
 name: nextcloud-onlyoffice
-version: 0.1.3
+version: 0.1.4
diff --git a/nextcloud-onlyoffice/requirements.yaml b/nextcloud-onlyoffice/requirements.yaml
index 7995fa33..23f7ca87 100644
--- a/nextcloud-onlyoffice/requirements.yaml
+++ b/nextcloud-onlyoffice/requirements.yaml
@@ -5,7 +5,7 @@ dependencies:
     tags:
       - nextcloud
   - name: onlyoffice-documentserver
-    version: 0.1.0
+    version: 0.1.1
     repository: "@onlyoffice-documentserver"
     tags:
       - onlyoffice
diff --git a/nextcloud-onlyoffice/templates/onlyoffice-config.yaml b/nextcloud-onlyoffice/templates/onlyoffice-config.yaml
index 41660996..190d3007 100644
--- a/nextcloud-onlyoffice/templates/onlyoffice-config.yaml
+++ b/nextcloud-onlyoffice/templates/onlyoffice-config.yaml
@@ -19,7 +19,7 @@ data:
           "editFormats": "{\"csv\":\"true\",\"odp\":\"true\",\"ods\":\"true\",\"odt\":\"true\",\"rtf\":\"false\",\"txt\":\"true\"}",
           "enabled": "yes",
           "groups": "[]",
-          "jwt_secret": "",
+          "jwt_secret": "{{ $onlyoffice.jwtSecret }}",
           "sameTab": "false",
           "settings_error": "",
           "types": "filesystem"
diff --git a/nextcloud-onlyoffice/values.yaml b/nextcloud-onlyoffice/values.yaml
index 17ac94fe..9baceaf8 100644
--- a/nextcloud-onlyoffice/values.yaml
+++ b/nextcloud-onlyoffice/values.yaml
@@ -33,7 +33,5 @@ mariadb:
   enabled: true
 
 onlyoffice-documentserver:
-  onlyoffice:
-    containerPort: 80
   livenessProbe:
     initialDelaySeconds: 40
diff --git a/onlyoffice-documentserver/Chart.yaml b/onlyoffice-documentserver/Chart.yaml
index 622f58c4..ff999498 100644
--- a/onlyoffice-documentserver/Chart.yaml
+++ b/onlyoffice-documentserver/Chart.yaml
@@ -9,4 +9,4 @@ maintainers:
 name: onlyoffice-documentserver
 sources:
 - https://code.greenhost.net/openappstack/nextcloud
-version: 0.1.0
+version: 0.1.1
diff --git a/onlyoffice-documentserver/README.md b/onlyoffice-documentserver/README.md
index 04cfd80e..9ae66f1f 100644
--- a/onlyoffice-documentserver/README.md
+++ b/onlyoffice-documentserver/README.md
@@ -10,10 +10,18 @@ Parameters:
 **NOTE:** The `onlyoffice.server_name` variable needs to be overwritten with an
 URL that points to your onlyoffice for this to work correctly.
 
+**NOTE:** It is very important that you overwrite the following password and
+secrets variables manually when you run helm install: 
+
+- `jwtSecret`
+- `postgresql.postgresqlPassword`
+- `rabbitmq.rabbitmq.password`
+
 | Parameter                                         | Description                                                   | Default                                                     |
 | ------------------------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------------- |
 | `replicaCount`                                    | Number of provisioner instances to deployed                   | `1`                                                         |
 | `strategy`                                        | Specifies the strategy used to replace old Pods by new ones   | `Recreate`                                                  |
+| `jwtSecret`                                       | Used to set the JWT shared secret between ONLYOFFICE and NC   | `secret`                                                    |
 | `image.repository`                                | Provisioner image                                             | `onlyoffice/documentserver`                                 |
 | `image.tag`                                       | Version of provisioner image                                  | `5.3.1.26`                                                  |
 | `image.pullPolicy`                                | Image pull policy                                             | `IfNotPresent`                                              |
diff --git a/onlyoffice-documentserver/requirements.yaml b/onlyoffice-documentserver/requirements.yaml
new file mode 100644
index 00000000..8d200ec7
--- /dev/null
+++ b/onlyoffice-documentserver/requirements.yaml
@@ -0,0 +1,22 @@
+dependencies:
+  - name: rabbitmq
+    version: 6.1.2
+    repository: "@stable"
+    tags:
+      - onlyoffice
+      - rabbitmq
+      - queue
+  - name: redis
+    version: 8.0.18
+    repository: "@stable"
+    tags:
+      - key-value-store
+      - redis
+      - onlyoffice
+  - name: postgresql
+    version: 5.3.10
+    repository: "@stable"
+    tags:
+      - postgresql
+      - onlyoffice
+      - database
diff --git a/onlyoffice-documentserver/templates/deployment.yaml b/onlyoffice-documentserver/templates/deployment.yaml
index 14def3e8..2ebb2d40 100644
--- a/onlyoffice-documentserver/templates/deployment.yaml
+++ b/onlyoffice-documentserver/templates/deployment.yaml
@@ -29,7 +29,7 @@ spec:
           livenessProbe:
             failureThreshold: 3
             httpGet:
-              path: /
+              path: /welcome
               port: http
               scheme: HTTP
             initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
@@ -39,6 +39,41 @@ spec:
             failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
           {{- end }}
           {{- if .Values.readinessProbe.enabled }}
+          livenessProbe:
+            failureThreshold: 3
+            httpGet:
+              path: /welcome
+              port: http
+              scheme: HTTP
+            initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
+            timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
+            successThreshold: {{ .Values.readinessProbe.successThreshold }}
+            failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
+          {{- end }}
+          env:
+            - name: RABBITMQ_SERVER_URL
+              value: "amqp://user:{{ .Values.rabbitmq.rabbitmq.password }}@{{ .Release.Name }}-rabbitmq"
+            - name: JWT_SECRET
+              value: "{{ .Values.jwtSecret }}"
+            - name: POSTGRESQL_SERVER_USER
+              value: "onlyoffice"
+            - name: REDIS_SERVER_HOST
+              value: "{{ .Release.Name }}-redis-master"
+            - name: POSTGRESQL_SERVER_PASS
+              valueFrom:
+                secretKeyRef:
+                  name: "{{ .Release.Name }}-postgresql"
+                  key: "postgresql-password"
+            - name: REDIS_SERVER_PORT
+              value: "{{ .Values.redis.master.service.port }}"
+            - name: POSTGRESQL_SERVER_HOST
+              value: "{{ .Release.Name }}-postgresql"
+            - name: POSTGRESQL_SERVER_PORT
+              value: "{{ .Values.postgresql.service.port }}"
+            - name: POSTGRESQL_SERVER_DB_NAME
+              value: "{{ .Values.postgresql.postgresqlDatabase }}"
+          {{- if .Values.readinessProbe.enabled }}
           readinessProbe:
             failureThreshold: 3
             httpGet:
diff --git a/onlyoffice-documentserver/values.yaml b/onlyoffice-documentserver/values.yaml
index 844fd28e..9f24a171 100644
--- a/onlyoffice-documentserver/values.yaml
+++ b/onlyoffice-documentserver/values.yaml
@@ -4,10 +4,12 @@
 
 replicaCount: 1
 
+jwtSecret: "secret"
+
 image:
-  repository: onlyoffice/documentserver
-  tag: 5.3.1.26
-  pullPolicy: IfNotPresent
+  repository: infrarednetwork/onlyoffice-documentserver
+  tag: 5.3.2-2
+  pullPolicy: Always
 
 strategy: Recreate
 
@@ -27,7 +29,7 @@ ingress:
 
 onlyoffice:
   # port that server onlyoffice in container
-  containerPort: 80
+  containerPort: 8000
   # URL to the server running onlyoffice, replace this with your own domain!
   server_name: onlyoffice.domain
 
@@ -62,3 +64,22 @@ readinessProbe:
   periodSeconds: 10
   successThreshold: 1
   failureThreshold: 3
+
+redis:
+  master:
+    command: "redis-server --appendonly yes"
+  usePassword: false
+  cluster:
+    enabled: false
+
+postgresql:
+  persistence:
+    # persistent storage is handled by NextCloud in our case
+    enabled: false
+  postgresqlDatabase: onlyoffice
+  postgresqlUsername: onlyoffice
+  postgresqlPassword: onlyoffice
+
+rabbitmq:
+  rabbitmq:
+    password: password
-- 
GitLab