Skip to content

Commit

Permalink
Feature: Add Collabora as a subchart #611 (#623)
Browse files Browse the repository at this point in the history
* Add collabora subchart

Signed-off-by: kriegalex <[email protected]>

* Add collabora config to README

Signed-off-by: kriegalex <[email protected]>

* Update lint-test.yaml - add collabora-online to helm repos for chart testing

Signed-off-by: Jesse Hitch <[email protected]>

* Update charts/nextcloud/values.yaml - remove trailing spaces

Signed-off-by: Jesse Hitch <[email protected]>

---------

Signed-off-by: kriegalex <[email protected]>
Signed-off-by: Jesse Hitch <[email protected]>
Co-authored-by: Jesse Hitch <[email protected]>
  • Loading branch information
kriegalex and jessebot authored Dec 15, 2024
1 parent dd15148 commit 10cae24
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 3 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/lint-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ jobs:
- name: Add dependency chart repos
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add collabora-online https://collaboraonline.github.io/online
- name: Set up chart-testing
uses: helm/[email protected]
Expand Down Expand Up @@ -102,6 +103,7 @@ jobs:
- name: Add dependency chart repos
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add collabora-online https://collaboraonline.github.io/online
- name: Set up chart-testing
uses: helm/[email protected]
Expand Down
7 changes: 5 additions & 2 deletions charts/nextcloud/Chart.lock
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,8 @@ dependencies:
- name: redis
repository: oci://registry-1.docker.io/bitnamicharts
version: 19.6.4
digest: sha256:2c7c0141a7d883c1efa1a16ea4d4e785b07dcc5b96203349a6fe67cab6b6a88c
generated: "2024-11-10T22:51:52.62824116+01:00"
- name: collabora-online
repository: https://collaboraonline.github.io/online
version: 1.1.20
digest: sha256:00e8d82d28825fd3f46e7e7d888d1aac93ebdb5135f6a4d7e6ae0c3155881c27
generated: "2024-12-15T19:47:53.357052+01:00"
7 changes: 6 additions & 1 deletion charts/nextcloud/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiVersion: v2
name: nextcloud
version: 6.3.2
version: 6.4.0
appVersion: 30.0.4
description: A file sharing server that puts the control and security of your own data back into your hands.
keywords:
Expand Down Expand Up @@ -34,3 +34,8 @@ dependencies:
version: 19.6.4
repository: oci://registry-1.docker.io/bitnamicharts
condition: redis.enabled
- name: collabora-online
version: 1.1.20
repository: https://collaboraonline.github.io/online
condition: collabora.enabled
alias: collabora
31 changes: 31 additions & 0 deletions charts/nextcloud/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -494,6 +494,37 @@ The nextcloud deployment includes a series of different probes you can use to de
> [!Note]
> If you are getting errors on initialization (such as `Fatal error: require_once(): Failed opening required '/var/www/html/lib/versioncheck.php'`, but you can get other errors as well), a good first step is to try and enable the startupProbe and/or increase the `initialDelaySeconds` for the `livenessProbe` and `readinessProbe` to something much greater (consider using `120` seconds instead of `10`. This is an especially good idea if your cluster is running on older hardware, has a slow internet connection, or you're using a slower storage class, such as NFS that's running with older disks or a slow connection.

### Collabora Configuration

This section provides options to enable and configure the Collabora Online server within your deployment. Please ensure to review the [Collabora Online Helm chart documentation](https://github.com/CollaboraOnline/online/tree/master/kubernetes/helm/collabora-online) for additional details and recommended values.

| Parameter | Description | Default |
|----------------------------------------|--------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|
| `collabora.enabled` | Enable or disable the Collabora Online integration | `false` |
| `collabora.autoscaling.enabled` | Enable or disable autoscaling for the Collabora Online pods | `false` |
| `collabora.collabora.aliasgroups` | List of HTTPS nextcloud domains if Collabora is behind a reverse proxy | `nil` |
| `collabora.collabora.extra_params` | Additional parameters for the Collabora Online service | `nil` |
| `collabora.collabora.server_name` | Specify the server name when the hostname is not directly reachable (e.g., behind a reverse proxy) | `nil` |
| `collabora.existingSecret.enabled` | Enable using existing secret for admin login credentials | `false` |
| `collabora.existingSecret.secretName` | Name of the existing secret containing admin login credentials | `""` |
| `collabora.existingSecret.usernameKey` | Key in the secret for the admin username | `"username"` |
| `collabora.existingSecret.passwordKey` | Key in the secret for the admin password | `"password"` |
| `collabora.collabora.username` | Admin username for Collabora Online | `admin` |
| `collabora.collabora.password` | Admin password for Collabora Online | `examplepass` |
| `collabora.ingress.enabled` | Enable or disable ingress for Collabora Online | `false` |
| `collabora.ingress.className` | Class name for the ingress controller | `""` |
| `collabora.ingress.annotations` | Annotations for the ingress resource | `{}` |
| `collabora.ingress.hosts` | List of hosts for the Collabora ingress | `[{"host": "chart-example.local", "paths": [{"path": "/", "pathType": "ImplementationSpecific"}]}]` |
| `collabora.ingress.tls` | TLS configuration for the Collabora ingress | `[]` |
| `collabora.resources` | Resource requests and limits for the Collabora Online pods | `{}` |
> **Note**:
>
> You may need to uncomment `collabora.collabora.aliasgroups` and `collabora.collabora.extra_params`, depending on your setup. You may also need to set `collabora.collabora.server_name`. If left empty, it's derived from the request, so please set it if it doesn't work.
>
> If you have both Nextcloud and Collabora behind a reverse proxy with HTTPS, `collabora.collabora.aliasgroups` should match your Nextcloud domain and `collabora.collabora.server_name` (if needed) should match your Collabora domain.
>
> For more information, please check the [Collabora documentation](https://sdk.collaboraonline.com/docs/installation/index.html).

## Cron jobs

To execute [background tasks](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html) by using system cron instead of default Ajax cron, set `cronjob.enabled` parameter to `true`. Background jobs are important for tasks that do not necessarily need user intervention, but still need to be executed frequently (cleaning up, sending some notifications, pulling RSS feeds, etc.).
Expand Down
47 changes: 47 additions & 0 deletions charts/nextcloud/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -495,6 +495,53 @@ redis:
persistence:
enabled: true

##
## Collabora chart configuration
## for more options see https://github.com/CollaboraOnline/online/tree/master/kubernetes/helm/collabora-online
##
collabora:
enabled: false

# please check collabora README.md first
autoscaling:
enabled: false

collabora:
## HTTPS nextcloud domain, if needed
# aliasgroups:
# - host: "https://nextcloud.domain:443"
# extra_params: --o:ssl.enable=false --o:ssl.termination=true

## Specify server_name when the hostname is not reachable directly for example behind reverse-proxy
# server_name: collabora.domain

# setup admin login credentials
existingSecret:
enabled: false
secretName: ""
usernameKey: "username"
passwordKey: "password"
password: examplepass
username: admin
# setup ingress
ingress:
enabled: false
className: ""
# please check collabora values.yaml for nginx/haproxy annotations examples
annotations: {}
hosts:
- host: chart-example.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
# - secretName: collabora-ingress-tls
# hosts:
# - collabora.domain

# see collabora helm README.md for recommended values
resources: {}


## Cronjob to execute Nextcloud background tasks
## ref: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#cron
Expand Down

0 comments on commit 10cae24

Please sign in to comment.