(feat) Adds Onlyoffice Document Server Community Edition (#1069)

* Init work for onlyoffice

* More work on oo-ds

* whoops

* readonly test

* root test

* test varrun

* test 2

* back to root

* update tood

* review feedback

* caps

* cleanup

* make it default false (as it is on OO manual)
This commit is contained in:
Stavros Kois
2021-10-01 16:06:57 +02:00
committed by GitHub
parent c19860919b
commit 00e2255f79
7 changed files with 768 additions and 126 deletions
@@ -0,0 +1,22 @@
apiVersion: v2
appVersion: "6.4.1.45"
dependencies:
- name: common
repository: https://truecharts.org
version: 8.0.13
description: "ONLYOFFICE Document Server is an online office suite comprising viewers and editors for texts, spreadsheets and presentations, fully compatible with Office Open XML formats: .docx, .xlsx, .pptx and enabling collaborative editing in real time."
home: https://github.com/truecharts/apps/tree/master/charts/stable/onlyoffice-ds-ce
icon: https://avatars.githubusercontent.com/u/1426033?s=200&v=4
keywords:
- onlyoffice
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: truecharts.org
name: onlyoffice-document-server
sources:
- https://github.com/ONLYOFFICE/DocumentServer
- https://github.com/ONLYOFFICE/Docker-DocumentServer
- https://hub.docker.com/r/onlyoffice/documentserver/
version: 0.0.1
@@ -0,0 +1,5 @@
categories:
- office
- documents
- productivity
icon_url: https://avatars.githubusercontent.com/u/1426033?s=200&v=4
@@ -0,0 +1,19 @@
##
# This file contains Values.yaml content that gets added to the output of questions.yaml
# It's ONLY meant for content that the user is NOT expected to change.
# Example: Everything under "image" is not included in questions.yaml but is included here.
##
image:
# -- image repository
repository: onlyoffice/documentserver
# -- image tag
tag: 6.4.1.45@sha256:ba4d4bbdc0eef02e3706a039b757b3e8c512f5c741299ffaf0a1dc8c2421be2f
# -- image pull policy
pullPolicy: IfNotPresent
##
# Most other defaults are set in questions.yaml
# For other options please refer to the wiki, default_values.yaml or the common library chart
##
@@ -0,0 +1,555 @@
# Include{groups}
portals:
web_portal:
protocols:
- "$kubernetes-resource_configmap_portal_protocol"
host:
- "$kubernetes-resource_configmap_portal_host"
ports:
- "$kubernetes-resource_configmap_portal_port"
path: "/welcome"
questions:
- variable: portal
group: "Container Image"
label: "Configure Portal Button"
schema:
type: dict
hidden: true
attrs:
- variable: enabled
label: "Enable"
description: "enable the portal button"
schema:
hidden: true
editable: false
type: boolean
default: true
- variable: controller
group: "Controller"
label: ""
schema:
type: dict
attrs:
- variable: type
description: "Please specify type of workload to deploy"
label: "(Advanced) Controller Type"
schema:
type: string
default: "deployment"
required: true
enum:
- value: "deployment"
description: "Deployment"
- value: "statefulset"
description: "Statefulset"
- value: "daemonset"
description: "Daemonset"
- variable: replicas
description: "Number of desired pod replicas"
label: "Desired Replicas"
schema:
type: int
default: 1
required: true
- variable: strategy
description: "Please specify type of workload to deploy"
label: "(Advanced) Update Strategy"
schema:
type: string
default: "RollingUpdate"
required: true
enum:
- value: "Recreate"
description: "Recreate: Kill existing pods before creating new ones"
- value: "RollingUpdate"
description: "RollingUpdate: Create new pods and then kill old ones"
- value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
type: dict
attrs:
- variable: TZ
label: "Timezone"
schema:
type: string
default: "Etc/UTC"
$ref:
- "definitions/timezone"
- variable: WOPI_ENABLED
label: "WOPI_ENABLED"
description: "Specifies the enabling the wopi handlers."
schema:
type: boolean
default: false
- variable: JWT_ENABLED
label: "JWT_ENABLED"
description: "Specifies the enabling the JSON Web Token validation by the ONLYOFFICE Document Server."
schema:
type: boolean
default: true
- variable: JWT_SECRET
label: "JWT_SECRET"
description: "Defines the secret key to validate the JSON Web Token in the request to the ONLYOFFICE Document Server."
schema:
type: string
default: ""
# Include{containerConfig}
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
schema:
type: dict
attrs:
- variable: main
label: "Main Service"
description: "The Primary service on which the healthcheck runs, often the webUI"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the service"
schema:
type: boolean
default: true
hidden: true
- variable: type
label: "Service Type"
description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer"
schema:
type: string
default: "NodePort"
enum:
- value: "NodePort"
description: "NodePort"
- value: "ClusterIP"
description: "ClusterIP"
- value: "LoadBalancer"
description: "LoadBalancer"
- variable: loadBalancerIP
label: "LoadBalancer IP"
description: "LoadBalancerIP"
schema:
show_if: [["type", "=", "LoadBalancer"]]
type: string
default: ""
- variable: externalIPs
label: "External IP's"
description: "External IP's"
schema:
show_if: [["type", "=", "LoadBalancer"]]
type: list
default: []
items:
- variable: externalIP
label: "External IP"
schema:
type: string
- variable: ports
label: "Service's Port(s) Configuration"
schema:
type: dict
attrs:
- variable: main
label: "Main Service Port Configuration"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
hidden: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: targetPort
label: "Target Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 80
editable: false
hidden: true
- variable: port
label: "Container Port"
schema:
type: int
default: 80
editable: true
required: true
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort"
schema:
type: int
min: 9000
max: 65535
default: 36109
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
- variable: dnsPolicy
group: "Networking and Services"
label: "dnsPolicy"
schema:
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "ClusterFirst"
description: "ClusterFirst"
- value: "ClusterFirstWithHostNet"
description: "ClusterFirstWithHostNet"
- value: "None"
description: "None"
- variable: dnsConfig
label: "DNS Configuration"
group: "Networking and Services"
description: "Specify custom DNS configuration which will be applied to the pod"
schema:
type: dict
attrs:
- variable: nameservers
label: "Nameservers"
schema:
default: []
type: list
items:
- variable: nameserver
label: "Nameserver"
schema:
type: string
- variable: options
label: "options"
schema:
default: []
type: list
items:
- variable: option
label: "Option Entry"
schema:
type: string
- variable: searches
label: "Searches"
schema:
default: []
type: list
items:
- variable: search
label: "Search Entry"
schema:
type: string
# Include{serviceList}
# Include{persistenceList}
- variable: ingress
label: ""
group: "Ingress"
schema:
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable Ingress"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hosts
label: "Hosts"
schema:
type: list
default: []
items:
- variable: hostEntry
label: "Host"
schema:
type: dict
attrs:
- variable: host
label: "HostName"
schema:
type: string
default: ""
required: true
- variable: paths
label: "Paths"
schema:
type: list
default: []
items:
- variable: pathEntry
label: "Host"
schema:
type: dict
attrs:
- variable: path
label: "path"
schema:
type: string
required: true
default: "/"
- variable: pathType
label: "pathType"
schema:
type: string
required: true
default: "Prefix"
- variable: tls
label: "TLS-Settings"
schema:
type: list
default: []
items:
- variable: tlsEntry
label: "Host"
schema:
type: dict
attrs:
- variable: hosts
label: "Certificate Hosts"
schema:
type: list
default: []
items:
- variable: host
label: "Host"
schema:
type: string
default: ""
required: true
- variable: scaleCert
label: "Select TrueNAS SCALE Certificate"
schema:
type: int
$ref:
- "definitions/certificate"
- variable: entrypoint
label: "(Advanced) Traefik Entrypoint"
description: "Entrypoint used by Traefik when using Traefik as Ingress Provider"
schema:
type: string
default: "websecure"
required: true
- variable: middlewares
label: "Traefik Middlewares"
description: "Add previously created Traefik Middlewares to this Ingress"
schema:
type: list
default: []
items:
- variable: name
label: "Name"
schema:
type: string
default: ""
required: true
- variable: expert
label: "Show Expert Configuration Options"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: ingressClassName
label: "IngressClass Name"
schema:
type: string
default: ""
- variable: labelsList
label: "Labels"
schema:
type: list
default: []
items:
- variable: labelItem
label: "Label"
schema:
type: dict
attrs:
- variable: name
label: "Name"
schema:
type: string
- variable: value
label: "Value"
schema:
type: string
- variable: annotationsList
label: "Annotations"
schema:
type: list
default: []
items:
- variable: annotationItem
label: "Label"
schema:
type: dict
attrs:
- variable: name
label: "Name"
schema:
type: string
- variable: value
label: "Value"
schema:
type: string
# Include{ingressList}
- variable: securityContext
group: "Security and Permissions"
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
- variable: podSecurityContext
group: "Security and Permissions"
label: "Pod Security Context"
schema:
type: dict
attrs:
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
- variable: supplementalGroups
label: "supplemental Groups"
schema:
type: list
default: []
items:
- variable: supplementalGroupsEntry
label: "supplemental Group"
schema:
type: int
- variable: fsGroupChangePolicy
label: "When should we take ownership?"
schema:
type: string
default: "OnRootMismatch"
enum:
- value: "OnRootMismatch"
description: "OnRootMismatch"
- value: "Always"
description: "Always"
# Include{resources}
- variable: autoscaling
group: "Resources and Devices"
label: "(Advanced) Horizontal Pod Autoscaler"
schema:
type: dict
attrs:
- variable: enabled
label: "enabled"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: target
label: "Target"
description: "deployment name, defaults to main deployment"
schema:
type: string
default: ""
- variable: minReplicas
label: "Minimum Replicas"
schema:
type: int
default: 1
- variable: maxReplicas
label: "Maximum Replicas"
schema:
type: int
default: 5
- variable: targetCPUUtilizationPercentage
label: "Target CPU Utilization Percentage"
schema:
type: int
default: 80
- variable: targetMemoryUtilizationPercentage
label: "Target Memory Utilization Percentage"
schema:
type: int
default: 80
# Include{addons}
@@ -0,0 +1 @@
{{ include "common.all" . }}
@@ -0,0 +1,40 @@
#
# IMPORTANT NOTE
#
# This chart inherits from our common library chart. You can check the default values/options here:
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
#
image:
# -- image repository
repository: onlyoffice/documentserver
# -- image tag
tag: 6.4.1.45@sha256:ba4d4bbdc0eef02e3706a039b757b3e8c512f5c741299ffaf0a1dc8c2421be2f
# -- image pull policy
pullPolicy: IfNotPresent
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
podSecurityContext:
runAsUser: 0
runAsGroup: 0
# -- environment variables. See [image docs](https://github.com/ONLYOFFICE/Docker-DocumentServer#available-configuration-parameters) for more details.
env:
WOPI_ENABLED: true
JWT_ENABLED: true
JWT_SECRET: randomgeneratedstring
service:
main:
ports:
main:
port: 80
ingress:
# -- Enable and configure ingress settings for the chart under this key.
# @default -- See values.yaml
main:
enabled: false
+102 -102
View File
@@ -3,9 +3,8 @@
This document documents the default ports used by Apps.
These defaults can ofcoarse be changed, but as we guarantee "sane, working defaults" they should provide no or minimal conflicts without being changed
| App | Service | NodePort | LoadBalancer-Port | Note |
| :------------------ | :-------: | :------: | :---------------: | :----------------------------------: |
| :------------------------- | :-------: | :------: | :---------------: | :--------------------------------: |
| k8s-gateway | main | | 53/UDP | Potenial conflict with pihole |
| pihole | dns | | 53/UDP | Potenial conflict with k8s-gateway |
| pihole | dns-tcp | | 53 | |
@@ -16,106 +15,106 @@ These defaults can ofcoarse be changed, but as we guarantee "sane, working defau
| traefik | metrics | 9100 | | |
| traefik | websecure | | 9443 | Adviced to be changed to 443 |
| JDownloader2 | myjd | 36092 | | |
| Plex | Main | 32400 | | |
| Handbrake | Main | 36002 | | |
| Handbrake | VNC | 36003 | | |
| Collabora | Main | 36004 | | |
| Deepstack | Main | 36005 | | |
| Emby | Main | 36006 | | |
| ESPHome | Main | 36007 | | |
| Home Assistant | Main | 36008 | | |
| Jackett | Main | 36009 | | |
| Jellyfin | Main | 36010 | | |
| KMS | Main | 36011 | | |
| Lidarr | Main | 36012 | | |
| Ombi | Main | 36013 | | |
| Lidarr | Main | 36014 | | |
| Calibre-Web | Main | 36015 | | |
| Radarr | Main | 36016 | | |
| Sonarr | Main | 36017 | | |
| Tautulli | Main | 36018 | | |
| Transmission | Main | 36019 | | |
| Transmission | TCP | 36020 | | |
| Transmission | UDP | 36020 | | |
| NZBGet | Main | 36021 | | |
| ZwaveJS2Mqtt | Main | 36022 | | |
| ZwaveJS2Mqtt | Websocket | 36023 | | |
| Syncthing | Main | 36024 | | |
| Bazarr | Main | 36025 | | |
| Deluge | Main | 36026 | | |
| Deluge | TCP | 51413 | | |
| Deluge | UPD | 51413 | | |
| Navidrome | Main | 36027 | | |
| Node-RED | Main | 36028 | | |
| FreshRSS | Main | 36029 | | |
| GAPS | Main | 36030 | | |
| Grocy | Main | 36031 | | |
| Heimdall | Main | 36032 | | |
| Lazy Librarian | Main | 36033 | | |
| Lychee | Main | 36034 | | |
| Unifi | Main | 36035 | | |
| Unifi | TCP | 36036 | | |
| Unifi | UDP | 36037 | | |
| Readarr | Main | 36038 | | |
| QBitTorrent | Main | 36039 | | |
| QBitTorrent | TCP | 36040 | | |
| QBitTorrent | UDP | 36040 | | |
| NZBHydra | Main | 36041 | | |
| TVHeadend | Main | 36042 | | |
| TVHeadend | HTSP | 36043 | | |
| True Command | Main | 36044 | | |
| SABnzbd | Main | 36045 | | |
| Organizr | Main | 36046 | | |
| Podgrab | Main | 36047 | | |
| Fireflyiii | Main | 36048 | | |
| FocalBoard | Main | 36049 | | |
| Airsonic | Main | 36050 | | |
| Appdaemon | Main | 36051 | | |
| Booksonic-air | Main | 36052 | | |
| Calibre | Main | 36053 | | |
| Calibre | WebServer | 36054 | | |
| Deconz | Main | 36055 | | |
| Deconz | Websocket | 36056 | | |
| Deconz | VNC | 36057 | | |
| Dizquetv | Main | 36058 | | |
| Duplicati | Main | 36059 | | |
| Flaresolverr | Main | 36060 | | |
| Flood | Main | 36061 | | |
| Gonic | Main | 36062 | | |
| Healthchecks | Main | 36063 | | |
| Hyperion-ng | Main | 36064 | | |
| Komga | Main | 36065 | | |
| Librespeed | Main | 36066 | | |
| Mealie | Main | 36067 | | |
| Mosquitto | Main | 36068 | | |
| Mylar | Main | 36068 | | |
| Nullserv | Main | 36069 | | |
| Nullserv | Https | 36070 | | |
| Octoprint | Main | 36071 | | |
| Omada-controller | Main | 36072 | | |
| Overseerr | Main | 36073 | | |
| Owncast | Main | 36074 | | |
| Owncast | Rtmp | 36075 | | |
| Owncloud-ocis | Main | 36076 | | |
| Photoprism | Main | 36077 | | |
| Piaware | Main | 36078 | | |
| Pretend-youre-xyzzy | Main | 36079 | | |
| Protonmail-bridge | Main | 36080 | | |
| Prowlarr | Main | 36081 | | |
| Pyload | Main | 36082 | | |
| Reg | Main | 36083 | | |
| Ser2sock | Main | 36084 | | |
| Stash | Main | 36085 | | |
| Thelounge | Main | 36086 | | |
| Xteve | Main | 36087 | | |
| Resillio-sync | Main | 36088 | | |
| Resillio-sync | UDP | 36089 | | |
| Resillio-sync | TCP | 36090 | | |
| Nextcloud | Main | 36091 | | |
| LittleLink | Main | 36092 | | |
| JDownloader2 | Main | 36093 | | |
| JDownloader2 | VNC | 36094 | | |
| Authelia | Main | 36095 | | |
| Plex | main | 32400 | | |
| Handbrake | main | 36002 | | |
| Handbrake | vnc | 36003 | | |
| Collabora | main | 36004 | | |
| Deepstack | main | 36005 | | |
| Emby | main | 36006 | | |
| ESPHome | main | 36007 | | |
| Home Assistant | main | 36008 | | |
| Jackett | main | 36009 | | |
| Jellyfin | main | 36010 | | |
| KMS | main | 36011 | | |
| Lidarr | main | 36012 | | |
| Ombi | main | 36013 | | |
| Lidarr | main | 36014 | | |
| Calibre-Web | main | 36015 | | |
| Radarr | main | 36016 | | |
| Sonarr | main | 36017 | | |
| Tautulli | main | 36018 | | |
| Transmission | main | 36019 | | |
| Transmission | tcp | 36020 | | |
| Transmission | udp | 36020 | | |
| NZBGet | main | 36021 | | |
| ZwaveJS2Mqtt | main | 36022 | | |
| ZwaveJS2Mqtt | ws | 36023 | | |
| Syncthing | main | 36024 | | |
| Bazarr | main | 36025 | | |
| Deluge | main | 36026 | | |
| Deluge | tcp | 51413 | | |
| Deluge | udp | 51413 | | |
| Navidrome | main | 36027 | | |
| Node-RED | main | 36028 | | |
| FreshRSS | main | 36029 | | |
| GAPS | main | 36030 | | |
| Grocy | main | 36031 | | |
| Heimdall | main | 36032 | | |
| Lazy Librarian | main | 36033 | | |
| Lychee | main | 36034 | | |
| Unifi | main | 36035 | | |
| Unifi | tcp | 36036 | | |
| Unifi | udp | 36037 | | |
| Readarr | main | 36038 | | |
| QBitTorrent | main | 36039 | | |
| QBitTorrent | tcp | 36040 | | |
| QBitTorrent | udp | 36040 | | |
| NZBHydra | main | 36041 | | |
| TVHeadend | main | 36042 | | |
| TVHeadend | htsp | 36043 | | |
| True Command | main | 36044 | | |
| SABnzbd | main | 36045 | | |
| Organizr | main | 36046 | | |
| Podgrab | main | 36047 | | |
| Fireflyiii | main | 36048 | | |
| FocalBoard | main | 36049 | | |
| Airsonic | main | 36050 | | |
| Appdaemon | main | 36051 | | |
| Booksonic-air | main | 36052 | | |
| Calibre | main | 36053 | | |
| Calibre | webserver | 36054 | | |
| Deconz | main | 36055 | | |
| Deconz | websocket | 36056 | | |
| Deconz | vnc | 36057 | | |
| Dizquetv | main | 36058 | | |
| Duplicati | main | 36059 | | |
| Flaresolverr | main | 36060 | | |
| Flood | main | 36061 | | |
| Gonic | main | 36062 | | |
| Healthchecks | main | 36063 | | |
| Hyperion-ng | main | 36064 | | |
| Komga | main | 36065 | | |
| Librespeed | main | 36066 | | |
| Mealie | main | 36067 | | |
| Mosquitto | main | 36068 | | |
| Mylar | main | 36068 | | |
| Nullserv | main | 36069 | | |
| Nullserv | https | 36070 | | |
| Octoprint | main | 36071 | | |
| Omada-controller | main | 36072 | | |
| Overseerr | main | 36073 | | |
| Owncast | main | 36074 | | |
| Owncast | rtmp | 36075 | | |
| Owncloud-ocis | main | 36076 | | |
| Photoprism | main | 36077 | | |
| Piaware | main | 36078 | | |
| Pretend-youre-xyzzy | main | 36079 | | |
| Protonmail-bridge | main | 36080 | | |
| Prowlarr | main | 36081 | | |
| Pyload | main | 36082 | | |
| Reg | main | 36083 | | |
| Ser2sock | main | 36084 | | |
| Stash | main | 36085 | | |
| Thelounge | main | 36086 | | |
| Xteve | main | 36087 | | |
| Resillio-sync | main | 36088 | | |
| Resillio-sync | udp | 36089 | | |
| Resillio-sync | tcp | 36090 | | |
| Nextcloud | main | 36091 | | |
| LittleLink | main | 36092 | | |
| JDownloader2 | main | 36093 | | |
| JDownloader2 | vnc | 36094 | | |
| Authelia | main | 36095 | | |
| Hyperion-ng | json | 36096 | | |
| Hyperion-ng | protobuf | 36097 | | |
| Hyperion-ng | boblight | 36098 | | |
@@ -129,5 +128,6 @@ These defaults can ofcoarse be changed, but as we guarantee "sane, working defau
| teamspeak3 | files | 36106 | | |
| CodeServer | ADDON | 36107 | | |
| Gitea | main | 36108 | | |
| OnlyOffice-Document-Server | main | 36109 | | |
##### Note: TCP and UPD ports that are the same in each App, are not by mistake.