Skip to content

Commit c0db1c8

Browse files
author
Your Name
committed
Merge branch 'full-chart'
2 parents 7c22f09 + 05976ef commit c0db1c8

File tree

12 files changed

+576
-91
lines changed

12 files changed

+576
-91
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,18 @@ A lightweight single-container deployment for development and testing:
8888

8989
[View Development Chart Documentation](./charts/opencloud-dev/README.md)
9090

91+
### Full OpenCloud Chart (`charts/opencloud-full`)
92+
93+
A comprehensive OpenCloud deployment with all components:
94+
- Full microservices architecture with LDAP integration
95+
- NATS for distributed messaging
96+
- Keycloak identity and access management
97+
- MinIO for S3-compatible object storage
98+
- API Gateway for routing and security
99+
- OnlyOffice for document editing
100+
101+
[View Full OpenCloud Chart Documentation](./charts/opencloud-full/README.md)
102+
91103
## 📜 License
92104

93105
This project is licensed under the **AGPLv3** licence. See the [LICENSE](LICENSE) file for more details.

charts/opencloud-full/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ maintainers:
99
1010
url: https://opencloud.eu
1111
type: application
12-
version: 2.0.10
12+
version: 3.0.0
1313
# renovate: datasource=docker depName=opencloudeu/opencloud-rolling
14-
appVersion: 2.3.0
14+
appVersion: 3.0.0
1515
kubeVersion: ""
1616
sources:
1717
- https://github.com/opencloud-eu/opencloud

charts/opencloud-full/README.md

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -97,27 +97,7 @@ The complete OpenCloud deployment with all components for production use:
9797

9898
[View Full Chart Documentation](./charts/opencloud-full/README.md)
9999

100-
### Production Chart (`charts/opencloud`)
101-
102-
The complete OpenCloud deployment with all components for production use:
103-
104-
- Full microservices architecture
105-
- Keycloak for authentication
106-
- MinIO for object storage
107-
- Document editing with Collabora and/or OnlyOffice
108-
- Full Gateway API integration
109-
110-
[View Production Chart Documentation](./charts/opencloud/README.md)
111-
112-
### Development Chart (`charts/opencloud-dev`)
113-
114-
A lightweight single-container deployment for development and testing:
115-
116-
- Simplified deployment (single Docker container)
117-
- Minimal resource requirements
118-
- Quick setup for testing
119-
120-
[View Development Chart Documentation](./charts/opencloud-dev/README.md)
100+
#
121101

122102
## 🚀 Installation
123103

@@ -130,7 +110,7 @@ You can install the Helm charts either directly from this Git repository or from
130110
git clone https://github.com/opencloud-eu/helm.git
131111

132112
# Install Full Chart
133-
cd charts/opencloud-full/deployments
113+
cd charts/opencloud-full/deployments/helm
134114
helmfile sync
135115
```
136116
You can also install it with timoni instead of helm:
@@ -139,24 +119,6 @@ kubectl apply -f ./charts/opencloud-full/deployments/timoni/ && \
139119
timoni bundle apply -f ./charts/opencloud-full/deployments/timoni/opencloud.cue --runtime ./charts/opencloud-full/deployments/timoni/runtime.cue
140120
```
141121

142-
```bash
143-
# Install Production Chart
144-
cd helm
145-
helm install opencloud ./charts/opencloud \
146-
--namespace opencloud \
147-
--create-namespace \
148-
--set httpRoute.enabled=true \
149-
--set httpRoute.gateway.name=opencloud-gateway \
150-
--set httpRoute.gateway.namespace=kube-system
151-
152-
153-
154-
# Or install Development Chart
155-
cd helm
156-
helm install opencloud ./charts/opencloud-dev \
157-
--namespace opencloud \
158-
--create-namespace
159-
```
160122

161123
### Installing from OCI Registry
162124

charts/opencloud-full/deployments/helm/helmfile.yaml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,15 @@ releases:
3333
persistence:
3434
size: "40Gi"
3535
- onlyoffice:
36-
enabled: true
36+
enabled: false
3737
domain: onlyoffice.opencloud.test # Domain for OnlyOffice.
3838
persistence:
3939
size: "2Gi" # Added
4040

41+
- collabora:
42+
enabled: true
43+
domain: collabora.opencloud.test # Domain for Collabora.
44+
4145
# --- Networking Configuration ---
4246
- ingress:
4347
enabled: false # Disable traditional Ingress as Gateway API is used.
@@ -85,7 +89,7 @@ releases:
8589
officeSuites:
8690
- name: Collabora
8791
product: Collabora
88-
enabled: false
92+
enabled: true
8993
uri: "https://collabora.opencloud.test"
9094
insecure: true
9195
disableProof: false
@@ -102,7 +106,7 @@ releases:
102106
- wopi-collabora.kube.opencloud.test
103107
- name: OnlyOffice
104108
product: OnlyOffice
105-
enabled: true
109+
enabled: false
106110
uri: "https://onlyoffice.opencloud.test"
107111
insecure: true
108112
disableProof: false

charts/opencloud-full/templates/_common/_tplvalues.tpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ Adds the app names to the scope and set the name of the app based on the input p
9898
{{- $_ := set .scope "appNameOcm" "ocm" -}}
9999
{{- $_ := set .scope "appNameOcs" "ocs" -}}
100100
{{- $_ := set .scope "appNameOnlyOffice" "onlyoffice" -}}
101+
{{- $_ := set .scope "appNameCollabora" "collabora" -}}
101102
{{- $_ := set .scope "appNamePolicies" "policies" -}}
102103
{{- $_ := set .scope "appNamePostprocessing" "postprocessing" -}}
103104
{{- $_ := set .scope "appNameProxy" "proxy" -}}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
{{- include "oc.basicServiceTemplates" (dict "scope" . "appName" "appNameCollabora" "appNameSuffix" "") -}}
2+
{{- if .Values.collabora.enabled }}
3+
apiVersion: apps/v1
4+
kind: Deployment
5+
{{ include "oc.metadata" . | nindent 0 }}
6+
spec:
7+
{{- include "oc.selector" . | nindent 2 }}
8+
replicas: 1
9+
template:
10+
{{- include "oc.templateMetadata" (dict "scope" $ "configCheck" false) | nindent 4 }}
11+
spec:
12+
containers:
13+
- name: collabora
14+
image: {{ .Values.collabora.repository }}:{{ .Values.collabora.tag | default "latest" }}
15+
imagePullPolicy: {{ .Values.collabora.pullPolicy | default "IfNotPresent" }}
16+
command: ['/bin/bash', '-c']
17+
args:
18+
- 'coolconfig generate-proof-key && /start-collabora-online.sh'
19+
env:
20+
- name: aliasgroup1
21+
value: 'http://collaboration-collabora:9300,https://{{ .Values.collabora.domain }},http://collaboration-collabora.{{ template "oc.namespace" $ }}.svc.cluster.local:9300'
22+
- name: DONT_GEN_SSL_CERT
23+
value: "YES"
24+
- name: extra_params
25+
value: |
26+
--o:ssl.enable={{ .Values.collabora.ssl.enabled }} \
27+
--o:ssl.ssl_verification={{ .Values.collabora.ssl.verification }} \
28+
--o:ssl.termination=true \
29+
--o:welcome.enable=false \
30+
--o:net.frame_ancestors={{ .Values.externalDomain }}
31+
- name: username
32+
value: "{{ .Values.collabora.admin.user | default "admin" }}"
33+
- name: password
34+
value: "{{ .Values.collabora.admin.password | default "admin" }}"
35+
ports:
36+
- containerPort: 9980
37+
name: http
38+
protocol: TCP
39+
resources:
40+
{{- toYaml .Values.collabora.resources | nindent 12 }}
41+
livenessProbe:
42+
httpGet:
43+
path: /hosting/discovery
44+
port: http
45+
initialDelaySeconds: 60
46+
periodSeconds: 10
47+
readinessProbe:
48+
httpGet:
49+
path: /hosting/discovery
50+
port: http
51+
initialDelaySeconds: 30
52+
periodSeconds: 10
53+
securityContext:
54+
capabilities:
55+
add:
56+
- MKNOD
57+
{{- end }}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{{- include "oc.basicServiceTemplates" (dict "scope" . "appName" "appNameCollabora" "appNameSuffix" "") -}}
2+
{{- if and .Values.collabora.enabled .Values.gateway.httproute.enabled }}
3+
apiVersion: gateway.networking.k8s.io/v1beta1
4+
kind: HTTPRoute
5+
metadata:
6+
name: {{ .Release.Name }}-collabora
7+
namespace: {{ template "oc.namespace" . }}
8+
labels:
9+
app: {{ .appName }}
10+
oc-metrics: enabled
11+
{{- include "oc.labels" . | nindent 4 }}
12+
spec:
13+
parentRefs:
14+
- name: {{ .Values.gateway.httproute.gateway.name }}
15+
namespace: {{ .Values.gateway.httproute.gateway.namespace }}
16+
sectionName: oc-collabora-https
17+
hostnames:
18+
- {{ .Values.collabora.domain }}
19+
rules:
20+
- matches:
21+
- path:
22+
type: PathPrefix
23+
value: /
24+
backendRefs:
25+
- name: {{ .appName }}
26+
port: 9980
27+
{{- end }}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{{- if and .Values.ingress.enabled .Values.collabora.enabled }}
2+
apiVersion: networking.k8s.io/v1
3+
kind: Ingress
4+
metadata:
5+
name: {{ include "opencloud.fullname" . }}-collabora
6+
annotations:
7+
{{- toYaml .Values.ingress.annotations | nindent 4 }}
8+
spec:
9+
{{- if .Values.ingress.ingressClassName }}
10+
ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
11+
{{- end }}
12+
{{- if .Values.global.tls.enabled }}
13+
tls:
14+
- hosts:
15+
- {{ .Values.global.domain.collabora | quote }}
16+
secretName: {{ .Values.global.tls.secretName }}
17+
{{- end }}
18+
rules:
19+
- host: {{ .Values.global.domain.collabora | quote }}
20+
http:
21+
paths:
22+
- path: /
23+
pathType: Prefix
24+
backend:
25+
service:
26+
name: {{ include "opencloud.fullname" . }}-collabora
27+
port:
28+
number: 9980
29+
{{- end }}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{{- include "oc.basicServiceTemplates" (dict "scope" . "appName" "appNameCollabora" "appNameSuffix" "") -}}
2+
{{- if .Values.collabora.enabled }}
3+
apiVersion: v1
4+
kind: Service
5+
{{ include "oc.metadata" . | nindent 0 }}
6+
spec:
7+
type: ClusterIP
8+
ports:
9+
- port: 9980
10+
targetPort: http
11+
protocol: TCP
12+
name: http
13+
selector:
14+
app: {{ .appName }}
15+
{{- end }}

0 commit comments

Comments
 (0)