Skip to content

Commit f54363b

Browse files
author
Your Name
committed
Merge remote-tracking branch 'upstream/main' into posixfs-support-3
2 parents e22e244 + b3b0ef9 commit f54363b

20 files changed

+163
-23
lines changed

README.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
1-
<img src="https://helm.sh/img/helm.svg" width="100px" heigth="100px">
1+
> [!CAUTION]
2+
> ## Community Charts – Not Officially Supported
3+
> This repository is maintained by the community and is **not** officially supported by OpenCloud GmbH.
4+
>
5+
> For **production-ready Helm charts** designed for **mission-critical** workloads, please use the enterprise offering, available with a [business subscription](https://opencloud.eu/en/product/service-and-support).
6+
>
7+
> To access **production-ready helm charts** get in touch with us via [contact form](https://opencloud.eu/en/contact-us) or Email [[email protected]](mailto:[email protected]).
28
3-
# OpenCloud Helm Charts
9+
# Community Helm Charts
410

511
Welcome to the **OpenCloud Helm Charts** repository! This repository is intended as a community-driven space for developing and maintaining Helm charts for deploying OpenCloud on Kubernetes.
12+
**Community Maintained** This repository is **community-maintained** and **not officially supported by OpenCloud GmbH**. Use at your own risk, and feel free to contribute to improve the project!
613

714
## 📑 Table of Contents
815

@@ -110,6 +117,4 @@ A lightweight single-container deployment for development and testing:
110117

111118
This project is licensed under the **AGPLv3** license. See the [LICENSE](LICENSE) file for more details.
112119

113-
## Community Maintained
114120

115-
This repository is **community-maintained** and **not officially supported by OpenCloud GmbH**. Use at your own risk, and feel free to contribute to improve the project!

charts/opencloud/README.md

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,14 @@ This will prepend `my-registry.com/` to all image references in the chart. For e
268268
| `opencloud.smtp.insecure` | SMTP insecure | `false` |
269269
| `opencloud.smtp.authentication` | SMTP authentication | `plain` |
270270
| `opencloud.smtp.encryption` | SMTP encryption | `starttls` |
271+
| `opencloud.storage.mode` | Choice between s3 and posixfs for user files | `s3` |
272+
273+
### OpenCloud S3 Storage Settings
274+
275+
The following options configure S3 for user file storage, either with the internal MinIO instance or with an external S3 provider.
276+
277+
| Parameter | Description | Default |
278+
| --------- | ----------- | ------- |
271279
| `opencloud.storage.s3.internal.enabled` | Enable internal MinIO instance | `true` |
272280
| `opencloud.storage.s3.internal.existingSecret` | Name of the existing secret | `` |
273281
| `opencloud.storage.s3.internal.rootUser` | MinIO root user | `opencloud` |
@@ -276,6 +284,7 @@ This will prepend `my-registry.com/` to all image references in the chart. For e
276284
| `opencloud.storage.s3.internal.region` | MinIO region | `default` |
277285
| `opencloud.storage.s3.internal.resources` | CPU/Memory resource requests/limits | See values.yaml |
278286
| `opencloud.storage.s3.internal.persistence.enabled` | Enable MinIO persistence | `true` |
287+
| `opencloud.storage.s3.internal.persistence.existingClaim` | Name of existing PVC instead of the settings below | `` |
279288
| `opencloud.storage.s3.internal.persistence.size` | Size of the MinIO persistent volume | `30Gi` |
280289
| `opencloud.storage.s3.internal.persistence.storageClass` | MinIO storage class | `""` |
281290
| `opencloud.storage.s3.internal.persistence.accessMode` | MinIO access mode | `ReadWriteOnce` |
@@ -288,6 +297,22 @@ This will prepend `my-registry.com/` to all image references in the chart. For e
288297
| `opencloud.storage.s3.external.bucket` | External S3 bucket | `""` |
289298
| `opencloud.storage.s3.external.createBucket` | Create bucket if it doesn't exist | `true` |
290299

300+
### OpenCloud PosixFS Storage Settings
301+
302+
The following options allow setting up a POSIX-compatible filesystem (such as NFS or CephFS) for user file storage instead of S3. This is useful for environments where object storage is not available or not desired.
303+
304+
| Parameter | Description | Default |
305+
| --------- | ----------- | ------- |
306+
| `opencloud.storage.posixfs.idCacheStore` | Cache store, between 'memory', 'redis-sentinel', 'nats-js-kv', 'noop' | `nats-js-kv` |
307+
| `opencloud.storage.posixfs.rootPath` | Path of storage root directory in openCloud pod | `/var/lib/opencloud/storage` |
308+
| `opencloud.storage.posixfs.persistence.enabled` | Enable persistence for PosixFS | `true` |
309+
| `opencloud.storage.posixfs.persistence.existingClaim` | Name of existing PVC instead of the settings below | `""` |
310+
| `opencloud.storage.posixfs.persistence.size` | Size of the PosixFS persistent volume | `30Gi` |
311+
| `opencloud.storage.posixfs.persistence.storageClass` | Storage class for PosixFS volume | `""` |
312+
| `opencloud.storage.posixfs.persistence.accessMode` | Access mode for PosixFS volume | `ReadWriteMany` |
313+
314+
**Note:** When using `posixfs` mode, ensure that the underlying storage supports the required access mode (e.g., `ReadWriteMany` for multiple replicas). The underlying filesystem must support `flock` and `xattrs` so for NFS the minimum version is 4.2.
315+
291316
### NATS Messaging Configuration
292317

293318
| Parameter | Description | Default |
@@ -409,6 +434,38 @@ This ensures the `X-Forwarded-Proto: https` header is added as required by OnlyO
409434
| `collaboration.enabled` | Enable collaboration service | `true` |
410435
| `collaboration.resources` | CPU/Memory resource requests/limits | `{}` |
411436
437+
## Ingress Configuration
438+
439+
This chart supports standard Kubernetes Ingress resources for exposing services. For environments requiring specific ingress controller features, annotation presets are available.
440+
441+
### Ingress Settings
442+
443+
| Parameter | Description | Default |
444+
| --------- | ----------- | ------- |
445+
| `ingress.enabled` | Enable Ingress resources | `false` |
446+
| `ingress.ingressClassName` | Ingress class name (e.g., nginx, traefik) | `""` |
447+
| `ingress.annotationsPreset` | Preset for ingress controller annotations | `""` |
448+
| `ingress.annotations` | Custom annotations for all ingress resources | `{}` |
449+
450+
### Annotation Presets
451+
452+
The `annotationsPreset` parameter helps configure ingress controller-specific features, particularly for OnlyOffice which requires the X-Forwarded-Proto header:
453+
454+
- `nginx` - Uses configuration snippets to inject headers
455+
- `nginx-no-snippets` - For environments where snippets are forbidden (e.g., Rackspace)
456+
- `traefik` - Creates required Middleware resources
457+
- `haproxy` - Uses HAProxy-specific header injection
458+
- `contour` - Uses Contour request headers
459+
- `istio` - Uses Istio EnvoyFilter
460+
461+
Example for Rackspace or security-restricted environments:
462+
```yaml
463+
ingress:
464+
enabled: true
465+
ingressClassName: nginx
466+
annotationsPreset: nginx-no-snippets
467+
```
468+
412469
## Gateway API Configuration
413470
414471
This chart includes HTTPRoute resources that can be used to expose the OpenCloud, Keycloak, and MinIO services externally. The HTTPRoutes are configured to route traffic to the respective services.
@@ -420,6 +477,7 @@ This chart includes HTTPRoute resources that can be used to expose the OpenCloud
420477
| `httpRoute.enabled` | Enable HTTPRoutes | `true` |
421478
| `httpRoute.gateway.name` | Gateway name | `opencloud-gateway` |
422479
| `httpRoute.gateway.namespace` | Gateway namespace | `""` (defaults to Release.Namespace) |
480+
| `httpRoute.gateway.sectionName` | Gateway section name | `""` (defaults to multiple route-specific section names for the routes listed below) |
423481
424482
The following HTTPRoutes are created when `httpRoute.enabled` is set to `true`:
425483
@@ -435,7 +493,7 @@ The following HTTPRoutes are created when `httpRoute.enabled` is set to `true`:
435493
- Port: 8080
436494
- Headers: Adds Permissions-Policy header to prevent browser features like interest-based advertising
437495
438-
3. **MinIO HTTPRoute** (when `opencloud.storage.s3.internal.enabled` is `true`):
496+
3. **MinIO HTTPRoute** (when `opencloud.storage.mode` is `s3` and `opencloud.storage.s3.internal.enabled` is `true`):
439497
- Hostname: `global.domain.minio`
440498
- Service: `{{ release-name }}-minio`
441499
- Port: 9001
@@ -470,7 +528,7 @@ The following HTTPRoutes are created when `httpRoute.enabled` is set to `true`:
470528
- Port: 9300
471529
- Headers: Adds Permissions-Policy header to prevent browser features like interest-based advertising
472530
473-
All HTTPRoutes are configured to use the same Gateway specified by `httpRoute.gateway.name` and `httpRoute.gateway.namespace`.
531+
All HTTPRoutes are configured to use the same Gateway specified by `httpRoute.gateway.name` and `httpRoute.gateway.namespace`. If `httpRoute.gateway.sectionName` is set, they also all use a single section (e.g. `https`) in the gateway resource (useful when `httpRoute.gateway.create` is `false` because a gateway already exists). Otherwise, when `httpRoute.gateway.sectionName` is left empty, each route gets its own generated `sectionName` that points to a section in the gateway resource that is automatically set up when `httpRoute.gateway.create` is `true`.
474532
475533
## Setting Up Gateway API with Talos, Cilium, and cert-manager
476534

charts/opencloud/templates/gateway/collabora-httproute.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ spec:
1010
parentRefs:
1111
- name: {{ .Values.httpRoute.gateway.name }}
1212
namespace: {{ .Values.httpRoute.gateway.namespace | default .Release.Namespace }}
13-
sectionName: collabora-https
13+
sectionName: {{ .Values.httpRoute.gateway.sectionName | default "collabora-https" }}
1414
hostnames:
1515
- {{ .Values.global.domain.collabora | quote }}
1616
rules:

charts/opencloud/templates/gateway/collaboration-httproute.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ spec:
1010
parentRefs:
1111
- name: {{ .Values.httpRoute.gateway.name }}
1212
namespace: {{ .Values.httpRoute.gateway.namespace | default .Release.Namespace }}
13-
sectionName: collaboration-https
13+
sectionName: {{ .Values.httpRoute.gateway.sectionName | default "collaboration-https" }}
1414
hostnames:
1515
- {{ .Values.global.domain.wopi | quote }}
1616
rules:

charts/opencloud/templates/gateway/gateway.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ spec:
6969
matchLabels:
7070
kubernetes.io/metadata.name: {{ .Values.httpRoute.gateway.namespace | default .Release.Namespace }}
7171
{{- end }}
72-
{{- if and .Values.opencloud.storage.s3.internal.enabled .Values.opencloud.storage.s3.internal.httpRoute.enabled }}
72+
{{- if and (eq .Values.opencloud.storage.mode "s3") .Values.opencloud.storage.s3.internal.enabled .Values.opencloud.storage.s3.internal.httpRoute.enabled }}
7373
{{- if .Values.global.tls.enabled }}
7474
- name: minio-https
7575
{{- else }}

charts/opencloud/templates/gateway/https-httproute.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ spec:
99
parentRefs:
1010
- name: {{ .Values.httpRoute.gateway.name }}
1111
namespace: {{ .Values.httpRoute.gateway.namespace | default .Release.Namespace }}
12-
sectionName: opencloud-https
12+
sectionName: {{ .Values.httpRoute.gateway.sectionName | default "opencloud-https" }}
1313
hostnames:
1414
- {{ include "opencloud.domain" . | quote }}
1515
rules:

charts/opencloud/templates/gateway/keycloak-https-httproute.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ spec:
1010
parentRefs:
1111
- name: {{ .Values.httpRoute.gateway.name }}
1212
namespace: {{ .Values.httpRoute.gateway.namespace | default .Release.Namespace }}
13-
sectionName: keycloak-https
13+
sectionName: {{ .Values.httpRoute.gateway.sectionName | default "keycloak-https" }}
1414
hostnames:
1515
- {{ include "opencloud.keycloak.domain" . | quote }}
1616
rules:

charts/opencloud/templates/gateway/minio-httproute.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{{- if and .Values.httpRoute.enabled .Values.opencloud.storage.s3.internal.enabled .Values.opencloud.storage.s3.internal.httpRoute.enabled }}
1+
{{- if and .Values.httpRoute.enabled (eq .Values.opencloud.storage.mode "s3") .Values.opencloud.storage.s3.internal.enabled .Values.opencloud.storage.s3.internal.httpRoute.enabled }}
22
apiVersion: gateway.networking.k8s.io/v1beta1
33
kind: HTTPRoute
44
metadata:
@@ -10,7 +10,7 @@ spec:
1010
parentRefs:
1111
- name: {{ .Values.httpRoute.gateway.name }}
1212
namespace: {{ .Values.httpRoute.gateway.namespace | default .Release.Namespace }}
13-
sectionName: minio-https
13+
sectionName: {{ .Values.httpRoute.gateway.sectionName | default "minio-https" }}
1414
hostnames:
1515
- {{ include "opencloud.minio.domain" . | quote }}
1616
rules:

charts/opencloud/templates/gateway/onlyoffice-httproute.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ spec:
1010
parentRefs:
1111
- name: {{ .Values.httpRoute.gateway.name }}
1212
namespace: {{ .Values.httpRoute.gateway.namespace | default .Release.Namespace }}
13-
sectionName: onlyoffice-https
13+
sectionName: {{ .Values.httpRoute.gateway.sectionName | default "onlyoffice-https" }}
1414
hostnames:
1515
- {{ .Values.global.domain.onlyoffice | quote }}
1616
rules:

charts/opencloud/templates/gateway/wopi-https-httproute.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ spec:
1010
parentRefs:
1111
- name: {{ .Values.httpRoute.gateway.name }}
1212
namespace: {{ .Values.httpRoute.gateway.namespace | default .Release.Namespace }}
13-
sectionName: wopi-https
13+
sectionName: {{ .Values.httpRoute.gateway.sectionName | default "wopi-https" }}
1414
hostnames:
1515
- {{ .Values.global.domain.wopi | quote }}
1616
rules:

0 commit comments

Comments
 (0)