diff --git a/nextcloud-onlyoffice/templates/_nextcloud-specs.tpl b/nextcloud-onlyoffice/templates/_nextcloud-specs.tpl new file mode 100644 index 0000000000000000000000000000000000000000..f77fb433da6b582f045e0f9a17dbc8695abb138a --- /dev/null +++ b/nextcloud-onlyoffice/templates/_nextcloud-specs.tpl @@ -0,0 +1,89 @@ +{{/* Change the user and group to www-data as required by occ */}} +{{- define "nextcloud-onlyoffice.securityContext" }} +fsGroup: 33 +runAsUser: 33 +runAsGroup: 33 +{{- end}} +{{/* Add volume mounts that are also used by the nextcloud container */}} +{{/* and the configMap that contains job specific content */}} +{{- define "nextcloud-onlyoffice.volumeMounts" }} +- name: nextcloud-data + mountPath: /var/www/html/ + subPath: root +- name: nextcloud-data + mountPath: /var/www/html/data + subPath: data +- name: nextcloud-data + mountPath: /var/www/html/config + subPath: config +- name: nextcloud-data + mountPath: /var/www/html/custom_apps + subPath: custom_apps +- name: nextcloud-data + mountPath: /var/www/html/themes + subPath: themes +- name: onlyoffice-config + mountPath: /var/local +{{- end }} +{{/* Set environment variables that are needed for the nextcloud setup */}} +{{- define "nextcloud-onlyoffice.env" }} +{{- if .Values.nextcloud.internalDatabase.enabled }} +- name: SQLITE_DATABASE + value: {{ .Values.nextcloud.internalDatabase.name | quote }} +{{- else if .Values.nextcloud.mariadb.enabled }} +- name: MYSQL_HOST + value: {{ template "nextcloud.mariadb.fullname" . }} +- name: MYSQL_DATABASE + value: {{ .Values.nextcloud.mariadb.db.name | quote }} +- name: MYSQL_USER + valueFrom: + secretKeyRef: + name: {{ printf "%s-%s" .Release.Name "db" }} + key: db-username +- name: MYSQL_PASSWORD + valueFrom: + secretKeyRef: + name: {{ printf "%s-%s" .Release.Name "db" }} + key: db-password +{{- else }} +- name: MYSQL_HOST + value: {{ .Values.nextcloud.externalDatabase.host | quote }} +- name: MYSQL_DATABASE + value: {{ .Values.nextcloud.externalDatabase.database | quote }} +- name: MYSQL_USER + valueFrom: + secretKeyRef: + name: {{ printf "%s-%s" .Release.Name "db" }} + key: db-username +- name: MYSQL_PASSWORD + valueFrom: + secretKeyRef: + name: {{ printf "%s-%s" .Release.Name "db" }} + key: db-password +{{- end }} +- name: NEXTCLOUD_ADMIN_USER + valueFrom: + secretKeyRef: + name: {{ printf "%s-%s" .Release.Name "nextcloud" }} + key: nextcloud-username +- name: NEXTCLOUD_ADMIN_PASSWORD + valueFrom: + secretKeyRef: + name: {{ printf "%s-%s" .Release.Name "nextcloud" }} + key: nextcloud-password +- name: NEXTCLOUD_TRUSTED_DOMAINS + value: {{ .Values.nextcloud.nextcloud.host }} +{{- end }} +{{/* Add volumes that correspond to the volume mounts used in this tpl */}} +{{- define "nextcloud-onlyoffice.volumes" }} +- name: nextcloud-data +{{- if .Values.nextcloud.persistence.enabled }} + persistentVolumeClaim: + claimName: {{ if .Values.nextcloud.persistence.existingClaim }}{{ .Values.nextcloud.persistence.existingClaim }}{{- else }}{{ printf "%s-%s" .Release.Name "nextcloud-nextcloud" }}{{- end }} +{{- else }} + emptyDir: {} +{{- end }} +- name: onlyoffice-config + configMap: + name: {{ .Release.Name }}-onlyoffice-config +{{- end}} diff --git a/nextcloud-onlyoffice/templates/job-configure-nextcloud.yaml b/nextcloud-onlyoffice/templates/job-configure-nextcloud.yaml index c0f00069fd893afe2a19e44faacd9ea0777d8a80..c8856f1a2a5adb23d347641b77ae08c267603522 100644 --- a/nextcloud-onlyoffice/templates/job-configure-nextcloud.yaml +++ b/nextcloud-onlyoffice/templates/job-configure-nextcloud.yaml @@ -20,10 +20,7 @@ spec: helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: restartPolicy: Never - securityContext: - fsGroup: 33 - runAsUser: 33 - runAsGroup: 33 + securityContext: {{- include "nextcloud-onlyoffice.securityContext" . | indent 8 }} containers: - name: {{ .Release.Name }}-configure-nextcloud-job image: {{ .Values.nextcloud.image.repository }}:{{ .Values.nextcloud.image.tag }} @@ -32,79 +29,6 @@ spec: - "/var/www/html/occ" - "config:import" - "/var/local/config.json" - volumeMounts: - - name: nextcloud-data - mountPath: /var/www/html/ - subPath: root - - name: nextcloud-data - mountPath: /var/www/html/data - subPath: data - - name: nextcloud-data - mountPath: /var/www/html/config - subPath: config - - name: nextcloud-data - mountPath: /var/www/html/custom_apps - subPath: custom_apps - - name: nextcloud-data - mountPath: /var/www/html/themes - subPath: themes - - name: onlyoffice-config - mountPath: /var/local - env: - {{- if .Values.nextcloud.internalDatabase.enabled }} - - name: SQLITE_DATABASE - value: {{ .Values.nextcloud.internalDatabase.name | quote }} - {{- else if .Values.nextcloud.mariadb.enabled }} - - name: MYSQL_HOST - value: {{ template "nextcloud.mariadb.fullname" . }} - - name: MYSQL_DATABASE - value: {{ .Values.nextcloud.mariadb.db.name | quote }} - - name: MYSQL_USER - valueFrom: - secretKeyRef: - name: {{ printf "%s-%s" .Release.Name "db" }} - key: db-username - - name: MYSQL_PASSWORD - valueFrom: - secretKeyRef: - name: {{ printf "%s-%s" .Release.Name "db" }} - key: db-password - {{- else }} - - name: MYSQL_HOST - value: {{ .Values.nextcloud.externalDatabase.host | quote }} - - name: MYSQL_DATABASE - value: {{ .Values.nextcloud.externalDatabase.database | quote }} - - name: MYSQL_USER - valueFrom: - secretKeyRef: - name: {{ printf "%s-%s" .Release.Name "db" }} - key: db-username - - name: MYSQL_PASSWORD - valueFrom: - secretKeyRef: - name: {{ printf "%s-%s" .Release.Name "db" }} - key: db-password - {{- end }} - - name: NEXTCLOUD_ADMIN_USER - valueFrom: - secretKeyRef: - name: {{ printf "%s-%s" .Release.Name "nextcloud" }} - key: nextcloud-username - - name: NEXTCLOUD_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - name: {{ printf "%s-%s" .Release.Name "nextcloud" }} - key: nextcloud-password - - name: NEXTCLOUD_TRUSTED_DOMAINS - value: {{ .Values.nextcloud.nextcloud.host }} - volumes: - - name: nextcloud-data - {{- if .Values.nextcloud.persistence.enabled }} - persistentVolumeClaim: - claimName: {{ if .Values.nextcloud.persistence.existingClaim }}{{ .Values.nextcloud.persistence.existingClaim }}{{- else }}{{ printf "%s-%s" .Release.Name "nextcloud-nextcloud" }}{{- end }} - {{- else }} - emptyDir: {} - {{- end }} - - name: onlyoffice-config - configMap: - name: {{ .Release.Name }}-onlyoffice-config + 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/job-register-onlyoffice.yaml b/nextcloud-onlyoffice/templates/job-register-onlyoffice.yaml index ce0372503a62e61639df807fbb35c9140655a4dc..0f51b16a4b340cef647a2c1ece8aae0e5d2dcd44 100644 --- a/nextcloud-onlyoffice/templates/job-register-onlyoffice.yaml +++ b/nextcloud-onlyoffice/templates/job-register-onlyoffice.yaml @@ -22,91 +22,13 @@ spec: helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: restartPolicy: Never - securityContext: - fsGroup: 33 - runAsUser: 33 - runAsGroup: 33 + securityContext: {{- include "nextcloud-onlyoffice.securityContext" . | indent 8 }} containers: - name: {{ .Release.Name }}-register-onlyoffice-job image: {{ .Values.nextcloud.image.repository }}:{{ .Values.nextcloud.image.tag }} command: - "/bin/bash" - "/var/local/onlyoffice-setup.sh" - volumeMounts: - - name: nextcloud-data - mountPath: /var/www/html/ - subPath: root - - name: nextcloud-data - mountPath: /var/www/html/data - subPath: data - - name: nextcloud-data - mountPath: /var/www/html/config - subPath: config - - name: nextcloud-data - mountPath: /var/www/html/custom_apps - subPath: custom_apps - - name: nextcloud-data - mountPath: /var/www/html/themes - subPath: themes - - name: onlyoffice-config - mountPath: /var/local - env: - {{- if .Values.nextcloud.internalDatabase.enabled }} - - name: SQLITE_DATABASE - value: {{ .Values.nextcloud.internalDatabase.name | quote }} - {{- else if .Values.nextcloud.mariadb.enabled }} - - name: MYSQL_HOST - value: {{ template "nextcloud.mariadb.fullname" . }} - - name: MYSQL_DATABASE - value: {{ .Values.nextcloud.mariadb.db.name | quote }} - - name: MYSQL_USER - valueFrom: - secretKeyRef: - name: {{ printf "%s-%s" .Release.Name "db" }} - key: db-username - - name: MYSQL_PASSWORD - valueFrom: - secretKeyRef: - name: {{ printf "%s-%s" .Release.Name "db" }} - key: db-password - {{- else }} - - name: MYSQL_HOST - value: {{ .Values.nextcloud.externalDatabase.host | quote }} - - name: MYSQL_DATABASE - value: {{ .Values.nextcloud.externalDatabase.database | quote }} - - name: MYSQL_USER - valueFrom: - secretKeyRef: - name: {{ printf "%s-%s" .Release.Name "db" }} - key: db-username - - name: MYSQL_PASSWORD - valueFrom: - secretKeyRef: - name: {{ printf "%s-%s" .Release.Name "db" }} - key: db-password - {{- end }} - - name: NEXTCLOUD_ADMIN_USER - valueFrom: - secretKeyRef: - name: {{ printf "%s-%s" .Release.Name "nextcloud" }} - key: nextcloud-username - - name: NEXTCLOUD_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - name: {{ printf "%s-%s" .Release.Name "nextcloud" }} - key: nextcloud-password - - name: NEXTCLOUD_TRUSTED_DOMAINS - value: {{ .Values.nextcloud.nextcloud.host }} - volumes: - - name: nextcloud-data - {{- if .Values.nextcloud.persistence.enabled }} - persistentVolumeClaim: - claimName: {{ if .Values.nextcloud.persistence.existingClaim }}{{ .Values.nextcloud.persistence.existingClaim }}{{- else }}{{ printf "%s-%s" .Release.Name "nextcloud-nextcloud" }}{{- end }} - {{- else }} - emptyDir: {} - {{- end }} - - name: onlyoffice-config - configMap: - name: {{ .Release.Name }}-onlyoffice-config - - + volumeMounts: {{- include "nextcloud-onlyoffice.volumeMounts" . | indent 8 }} + env: {{- include "nextcloud-onlyoffice.env" . | indent 8 }} + volumes: {{- include "nextcloud-onlyoffice.volumes" . | indent 6 }}