@@ -27,6 +27,7 @@ Welcome to the **OpenCloud Helm Charts** repository! This repository is intended
27
27
- [ Gateway API Configuration] ( #gateway-api-configuration )
28
28
- [ HTTPRoute Settings] ( #httproute-settings )
29
29
- [ Setting Up Gateway API with Talos, Cilium, and cert-manager] ( #setting-up-gateway-api-with-talos-cilium-and-cert-manager )
30
+ - [ Setting up Ingress] ( #setting-up-ingress )
30
31
- [ License] ( #-license )
31
32
- [ Community Maintained] ( #community-maintained )
32
33
@@ -217,9 +218,7 @@ The following sections outline the main configuration parameters for the product
217
218
| ` global.domain.onlyoffice ` | Domain for OnlyOffice | ` onlyoffice.opencloud.test ` |
218
219
| ` global.domain.companion ` | Domain for Companion | ` companion.opencloud.test ` |
219
220
| ` global.tls.enabled ` | Enable TLS (set to false when using gateway TLS termination externally) | ` false ` |
220
- | ` global.tls.selfSigned ` | Use self-signed certificates | ` true ` |
221
- | ` global.tls.acmeEmail ` | ACME email for Let's Encrypt
| ` [email protected] ` |
222
- | ` global.tls.acmeCAServer ` | ACME CA server | ` https://acme-v02.api.letsencrypt.org/directory ` |
221
+ | ` global.tls.secretName ` | Secret name for TLS certificate | ` "" ` |
223
222
| ` global.storage.storageClass ` | Storage class for persistent volumes | ` "" ` |
224
223
225
224
### Image Settings
@@ -315,14 +314,21 @@ The following sections outline the main configuration parameters for the product
315
314
| ` onlyoffice.config.coAuthoring.token.enable.browser ` | Enable token for browser requests | ` true ` |
316
315
| ` onlyoffice.collaboration.enabled ` | Enable collaboration service | ` true ` |
317
316
317
+ If you use Traefik and enable OnlyOffice, this chart will automatically create a ` Middleware `
318
+ named ` add-x-forwarded-proto-https ` , used by:
319
+ * Ingress (if ` annotationsPreset: traefik ` )
320
+ * Gateway API ` HTTPRoute ` (if ` gateway.className: traefik ` )
321
+
322
+ This ensures the ` X-Forwarded-Proto: https ` header is added as required by OnlyOffice.
323
+
318
324
### Collabora Settings
319
325
320
326
| Parameter | Description | Default |
321
327
| --------- | ----------- | ------- |
322
328
| ` collabora.enabled ` | Enable Collabora | ` true ` |
323
- | ` collabora.repository ` | Collabora image repository | ` collabora/code ` |
324
- | ` collabora.tag ` | Collabora image tag | ` 24.04.13.2.1 ` |
325
- | ` collabora.pullPolicy ` | Image pull policy | ` IfNotPresent ` |
329
+ | ` collabora.image. repository ` | Collabora image repository | ` collabora/code ` |
330
+ | ` collabora.image. tag ` | Collabora image tag | ` 24.04.13.2.1 ` |
331
+ | ` collabora.image. pullPolicy ` | Image pull policy | ` IfNotPresent ` |
326
332
| ` collabora.adminUser ` | Admin user | ` admin ` |
327
333
| ` collabora.adminPassword ` | Admin password | ` admin ` |
328
334
| ` collabora.ssl.enabled ` | Enable SSL | ` true ` |
@@ -501,7 +507,7 @@ Apply the ClusterIssuer:
501
507
kubectl apply -f cluster-issuer.yaml
502
508
```
503
509
504
- ### Step 3 : Create a Wildcard Certificate for OpenCloud Domains
510
+ ### Step 4 : Create a Wildcard Certificate for OpenCloud Domains
505
511
506
512
Create a wildcard certificate for all OpenCloud subdomains:
507
513
@@ -535,7 +541,7 @@ Apply the certificate:
535
541
kubectl apply -f cluster-issuer.yaml
536
542
```
537
543
538
- ### Step 4 : Create the Gateway
544
+ ### Step 5 : Create the Gateway
539
545
540
546
Create a Gateway resource to expose your services:
541
547
@@ -653,7 +659,7 @@ Apply the Gateway:
653
659
kubectl apply -f gateway.yaml
654
660
```
655
661
656
- ### Step 5 : Configure DNS
662
+ ### Step 6 : Configure DNS
657
663
658
664
Configure your DNS to point to the Gateway IP address. You can use a wildcard DNS record or individual records for each service:
659
665
@@ -673,7 +679,7 @@ Alternatively, for local testing, you can add entries to your `/etc/hosts` file:
673
679
192.168.178.77 wopiserver.opencloud.test
674
680
```
675
681
676
- ### Step 6 : Install OpenCloud
682
+ ### Step 7 : Install OpenCloud
677
683
678
684
Finally, install OpenCloud using Helm:
679
685
@@ -732,6 +738,145 @@ kubectl get pods -n opencloud -l app.kubernetes.io/component=onlyoffice-redis
732
738
kubectl get pods -n opencloud -l app.kubernetes.io/component=onlyoffice-rabbitmq
733
739
```
734
740
741
+ ## Setting up Ingress
742
+
743
+ For some deployments the kubernetes gateway API is not readily available. Using the traditional Ingress objects can be easier to
744
+ set up. The chart only deploys the necessary Ingress objects, e.g.
745
+ minio is not reachable.
746
+
747
+ ### Step 1: Install cert-manager
748
+
749
+ Install cert-manager to manage TLS certificates:
750
+
751
+ ``` bash
752
+ # install the default cert manager
753
+ kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.17.0/cert-manager.yaml
754
+ ```
755
+
756
+ ### Step 2: Create a ClusterIssuer for cert-manager
757
+
758
+ Create a ClusterIssuer for cert-manager to issue certificates:
759
+
760
+ ``` yaml
761
+ # cluster-issuer.yaml
762
+ apiVersion : cert-manager.io/v1
763
+ kind : ClusterIssuer
764
+ metadata :
765
+ name : selfsigned-issuer
766
+ spec :
767
+ selfSigned : {}
768
+ ` ` `
769
+
770
+ Apply the ClusterIssuer:
771
+
772
+ ` ` ` bash
773
+ kubectl apply -f cluster-issuer.yaml
774
+ ```
775
+
776
+ ### Step 3: Create a Wildcard Certificate for OpenCloud Domains
777
+
778
+ Create a wildcard certificate for all OpenCloud subdomains:
779
+
780
+ ``` yaml
781
+ # cluster-issuer.yaml
782
+ apiVersion : cert-manager.io/v1
783
+ kind : ClusterIssuer
784
+ metadata :
785
+ name : selfsigned-issuer
786
+ spec :
787
+ selfSigned : {}
788
+ ---
789
+ apiVersion : cert-manager.io/v1
790
+ kind : Certificate
791
+ metadata :
792
+ name : opencloud-wildcard-tls
793
+ namespace : kube-system
794
+ spec :
795
+ secretName : opencloud-wildcard-tls
796
+ dnsNames :
797
+ - " opencloud.test"
798
+ - " *.opencloud.test"
799
+ issuerRef :
800
+ name : selfsigned-issuer
801
+ kind : ClusterIssuer
802
+ ` ` `
803
+
804
+ Apply the certificate:
805
+
806
+ ` ` ` bash
807
+ kubectl apply -f cluster-issuer.yaml
808
+ ```
809
+
810
+ ### Step 4: Install OpenCloud
811
+
812
+ Finally, install OpenCloud using Helm:
813
+
814
+ ``` bash
815
+ # Clone the repository
816
+ git clone https://github.com/your-repo/opencloud-helm.git
817
+ cd opencloud-helm
818
+ ```
819
+
820
+ Customize the chart to use Ingress objects instead of the newer gateway API
821
+
822
+ ``` yaml
823
+ global :
824
+ # TLS settings
825
+ tls :
826
+ # Enable TLS
827
+ enabled : true
828
+ secretName : opencloud-wildcard-tls
829
+
830
+ # Disable Gateway API configuration
831
+ httpRoute :
832
+ enabled : false
833
+
834
+ # Enable ingress
835
+ ingress :
836
+ enabled : true
837
+ # onlyoffice requires adding an X-Forwarded-Proto header to the request.
838
+ # The chart currently knows how to add this header for traefik, nginx,
839
+ # haproxy, contour, and istio. PR welcome.
840
+ annotationsPreset : " traefik" # optional, default ""
841
+ annotations :
842
+ cert-manager.io/cluster-issuer : selfsigned-issuer
843
+ ` ` `
844
+
845
+ ` ` ` bash
846
+ # Install OpenCloud
847
+ helm install opencloud . \
848
+ --namespace opencloud \
849
+ --create-namespace \
850
+ --set httpRoute.gateway.name=opencloud-gateway \
851
+ --set httpRoute.gateway.namespace=kube-system
852
+ ```
853
+
854
+
855
+ ### 🔧 Traefik Middleware for OnlyOffice
856
+ If you enable:
857
+ ``` yaml
858
+ ingress :
859
+ enabled : true
860
+ annotationsPreset : " traefik"
861
+ onlyoffice :
862
+ enabled : true
863
+ ` ` `
864
+
865
+ The chart will automatically:
866
+ * Create a Traefik ` Middleware` resource named `add-x-forwarded-proto-https` in the chart's namespace.
867
+ * Attach that Middleware to the OnlyOffice Ingress via:
868
+ ` ` ` yaml
869
+ traefik.ingress.kubernetes.io/router.middlewares: <namespace>-add-x-forwarded-proto-https@kubernetescrd
870
+ ` ` `
871
+
872
+ If you disable the preset and define custom annotations :
873
+ ` ` ` yaml
874
+ annotationsPreset: ""
875
+ ingress.annotations:
876
+ traefik.ingress.kubernetes.io/router.middlewares: my-custom-middleware@kubernetescrd
877
+ ` ` `
878
+ Then you are responsible for creating the referenced Middleware yourself.
879
+
735
880
736
881
# # 📜 License
737
882
0 commit comments