Skip to content
This repository was archived by the owner on Nov 26, 2025. It is now read-only.

Commit c2b8e0b

Browse files
authored
Merge pull request #142 from red-panda45/posixfs-support-3
Add Posix support
2 parents 43a756f + 7ec5f59 commit c2b8e0b

39 files changed

+1139
-502
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,10 @@ The complete OpenCloud deployment with all components for production use:
9595
- NATS service discovery required
9696
- Keycloak for authentication
9797
- MinIO for object storage
98-
- Integrated LDAP
98+
- Integrated OpenLDAP
99+
- Integrated ClamAV
100+
- Posix support
101+
- Helm and Timoni Chart for FluxCD
99102
- Document editing with Collabora and/or OnlyOffice
100103
- Slightly higher resource usage due to microservices pod overhead
101104
- See [architectural warnings](./charts/opencloud-microservices/README.md#architectural-considerations)
@@ -112,6 +115,6 @@ A lightweight single-container deployment for development and testing:
112115

113116
## 📜 License
114117

115-
This project is licensed under the **AGPLv3** licence. See the [LICENSE](LICENSE) file for more details.
118+
This project is licensed under the **AGPLv3** license. See the [LICENSE](LICENSE) file for more details.
116119

117120

charts/opencloud-microservices/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ maintainers:
1212
email: info@opencloud.eu
1313
url: https://opencloud.eu
1414
type: application
15-
version: 0.1.0
15+
version: 0.3.8
1616
# renovate: datasource=docker depName=opencloudeu/opencloud-rolling
17-
appVersion: 3.2.0
17+
appVersion: 4.0.0
1818
kubeVersion: ""
1919
sources:
2020
- https://github.com/opencloud-eu/helm

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

Lines changed: 54 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,29 @@ releases:
2121
- logging:
2222
level: debug # Set logging level for OpenCloud components.
2323
- externalDomain: cloud.opencloud.test # Main domain for OpenCloud access.
24-
24+
- image:
25+
tag: "4.0.0-rc.1"
2526
# --- Core Components Configuration ---
2627
- keycloak:
2728
enabled: true # Enable Keycloak for authentication.
2829
domain: keycloak.opencloud.test # Domain for Keycloak.
2930
- minio:
30-
enabled: true # Enable MinIO for object storage.
31+
enabled: false # Enable MinIO for object storage.
3132
domain: minio.opencloud.test # Domain for MinIO.
3233
config:
3334
persistence:
3435
size: "40Gi"
36+
accessModes:
37+
- ReadWriteOnce
38+
storageClassName:
3539
- onlyoffice:
3640
enabled: false
3741
domain: onlyoffice.opencloud.test # Domain for OnlyOffice.
3842
persistence:
39-
size: "2Gi" # Added
43+
size: "2Gi"
44+
accessModes:
45+
- ReadWriteOnce
46+
storageClassName:
4047

4148
- collabora:
4249
enabled: true
@@ -83,6 +90,17 @@ releases:
8390
group:
8491
schema:
8592
id: openCloudUUID
93+
quotas:
94+
roles:
95+
# User Role set to 2GB
96+
'd7beeea8-8ff4-406b-8fb6-ab2dd81e6b11': 0
97+
# Space Administrator Role set to 100GB
98+
'2aadd357-682c-406b-8874-293091995fdd': 0
99+
virusscan:
100+
enabled: true
101+
infectedFileHandling: "abort"
102+
scannerType: "clamav"
103+
clamavSocket: "tcp://clamav.clamav.svc.cluster.local:3310"
86104
appsIntegration:
87105
enabled: true
88106
wopiIntegration:
@@ -118,31 +136,49 @@ releases:
118136
persistence:
119137
enabled: true
120138
size: "10Gi"
139+
accessModes:
140+
- ReadWriteOnce
141+
storageClassName:
121142
search:
122143
persistence:
123144
enabled: true
124145
size: "10Gi"
146+
accessModes:
147+
- ReadWriteOnce
148+
storageClassName:
125149
extractor:
126150
type: tika
127151
storagesystem:
128152
persistence:
129153
enabled: true
130154
size: "5Gi"
155+
accessModes:
156+
- ReadWriteOnce
157+
storageClassName:
131158
storageusers:
132159
persistence:
133160
enabled: true
134-
size: "50Gi"
161+
size: "60Gi"
162+
accessModes:
163+
- ReadWriteOnce
164+
storageClassName:
135165
storageBackend:
136-
driver: decomposeds3
137-
166+
driver: posix
167+
138168
thumbnails:
139169
persistence:
140170
enabled: true
141171
size: "10Gi"
172+
accessModes:
173+
- ReadWriteOnce
174+
storageClassName:
142175
web:
143176
persistence:
144177
enabled: true
145178
size: "1Gi"
179+
accessModes:
180+
- ReadWriteOnce
181+
storageClassName:
146182
config:
147183
oidc:
148184
webClientID: web
@@ -158,7 +194,7 @@ releases:
158194
priority: 50
159195
additionalInitContainers:
160196
- name: external-sites
161-
image: opencloudeu/web-extensions:external-sites-latest
197+
image: opencloudeu/web-extensions:external-sites-1.0.0
162198
command:
163199
- /bin/sh
164200
- -c
@@ -167,7 +203,7 @@ releases:
167203
- name: apps
168204
mountPath: /apps
169205
- name: drawio
170-
image: opencloudeu/web-extensions:draw-io-latest
206+
image: opencloudeu/web-extensions:draw-io-1.0.0
171207
command:
172208
- /bin/sh
173209
- -c
@@ -176,7 +212,7 @@ releases:
176212
- name: apps
177213
mountPath: /apps
178214
- name: importer
179-
image: opencloudeu/web-extensions:importer-latest
215+
image: opencloudeu/web-extensions:importer-1.0.0
180216
command:
181217
- /bin/sh
182218
- -c
@@ -185,7 +221,7 @@ releases:
185221
- name: apps
186222
mountPath: /apps
187223
- name: jsonviewer
188-
image: opencloudeu/web-extensions:json-viewer-latest
224+
image: opencloudeu/web-extensions:json-viewer-1.0.0
189225
command:
190226
- /bin/sh
191227
- -c
@@ -194,7 +230,7 @@ releases:
194230
- name: apps
195231
mountPath: /apps
196232
- name: progressbars
197-
image: opencloudeu/web-extensions:progress-bars-latest
233+
image: opencloudeu/web-extensions:progress-bars-1.0.0
198234
command:
199235
- /bin/sh
200236
- -c
@@ -203,7 +239,7 @@ releases:
203239
- name: apps
204240
mountPath: /apps
205241
- name: unzip
206-
image: opencloudeu/web-extensions:unzip-latest
242+
image: opencloudeu/web-extensions:unzip-1.0.0
207243
command:
208244
- /bin/sh
209245
- -c
@@ -215,10 +251,16 @@ releases:
215251
persistence:
216252
enabled: false
217253
size: "10Gi"
254+
accessModes:
255+
- ReadWriteOnce
256+
storageClassName:
218257
ocm:
219258
persistence:
220259
enabled: false
221260
size: "1Gi"
261+
accessModes:
262+
- ReadWriteOnce
263+
storageClassName:
222264
- extraResources:
223265
- |
224266
apiVersion: v1
Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Install/Upgrade
2-
kubectl apply -f ./charts/opencloud-microservices/deployments/timoni/ && \
3-
timoni bundle apply -f ./charts/opencloud-microservices/deployments/timoni/opencloud.cue --runtime ./charts/opencloud-microservices/deployments/timoni/runtime.cue
2+
This are the cli commands to install with timoni (fluxcd) the opencloud, openldap and clamav
43

4+
## Install openldap
5+
kubectl apply -f ./charts/opencloud-microservices/deployments/timoni/openldap && \
6+
timoni bundle apply -f ./charts/opencloud-microservices/deployments/timoni/openldap/openldap.cue --runtime ./charts/opencloud-microservices/deployments/timoni/openldap/runtime.cue
7+
8+
## Install clamav
9+
kubectl apply -f ./charts/opencloud-microservices/deployments/timoni/clamav && \
10+
timoni bundle apply -f ./charts/opencloud-microservices/deployments/timoni/clamav/clamav.cue --runtime ./charts/opencloud-microservices/deployments/timoni/clamav/runtime.cue
11+
12+
## Install opencloud
13+
kubectl apply -f ./charts/opencloud-microservices/deployments/timoni/opencloud && \
14+
timoni bundle apply -f ./charts/opencloud-microservices/deployments/timoni/opencloud/opencloud.cue --runtime ./charts/opencloud-microservices/deployments/timoni/opencloud/runtime.cue
515

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Install/Upgrade
2+
kubectl apply -f ./charts/opencloud-microservices/deployments/timoni/clamav && \
3+
timoni bundle apply -f ./charts/opencloud-microservices/deployments/timoni/clamav/clamav.cue --runtime ./charts/opencloud-microservices/deployments/timoni/clamav/runtime.cue
4+
5+
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
bundle: {
2+
apiVersion: "v1alpha1"
3+
name: "clamav"
4+
instances: {
5+
"service-account": {
6+
module: url: "oci://ghcr.io/stefanprodan/modules/flux-tenant"
7+
namespace: "clamav"
8+
values: {
9+
role: "namespace-admin"
10+
resourceQuota: {
11+
kustomizations: 100
12+
helmreleases: 100
13+
}
14+
}
15+
},
16+
17+
"clamav": {
18+
module: {
19+
url: "oci://ghcr.io/stefanprodan/modules/flux-helm-release"
20+
version: "latest"
21+
}
22+
namespace: "clamav"
23+
values: {
24+
repository: {
25+
url: "https://wiremind.github.io/wiremind-helm-charts"
26+
}
27+
chart: {
28+
name: "clamav"
29+
version: "3.7.1"
30+
}
31+
sync: {
32+
timeout: 5
33+
createNamespace: true
34+
}
35+
helmValues: {
36+
_persistenceStorageClassName: string @timoni(runtime:string:CLAMAV_PERSISTENCE_STORAGE_CLASS)
37+
_persistenceAccessModes: string @timoni(runtime:string:CLAMAV_PERSISTENCE_ACCESS_MODES)
38+
39+
replicaCount: int @timoni(runtime:number:CLAMAV_REPLICA_COUNT)
40+
41+
updateStrategy: {
42+
type: string @timoni(runtime:string:CLAMAV_UPDATE_STRATEGY_TYPE)
43+
rollingUpdate: {
44+
partition: int @timoni(runtime:number:CLAMAV_UPDATE_STRATEGY_PARTITION)
45+
}
46+
}
47+
48+
hpa: {
49+
enabled: bool @timoni(runtime:bool:CLAMAV_HPA_ENABLED)
50+
}
51+
52+
podDisruptionBudget: {
53+
enabled: bool @timoni(runtime:bool:CLAMAV_PDB_ENABLED)
54+
minAvailable: int @timoni(runtime:number:CLAMAV_PDB_MIN_AVAILABLE)
55+
}
56+
57+
topologySpreadConstraints: [
58+
{
59+
maxSkew: int @timoni(runtime:number:CLAMAV_TOPOLOGY_MAX_SKEW)
60+
topologyKey: string @timoni(runtime:string:CLAMAV_TOPOLOGY_KEY)
61+
whenUnsatisfiable: string @timoni(runtime:string:CLAMAV_TOPOLOGY_UNSATISFIABLE)
62+
labelSelector: {
63+
matchLabels: {
64+
"app.kubernetes.io/name": "clamav"
65+
}
66+
}
67+
}
68+
]
69+
70+
persistentVolume: {
71+
enabled: bool @timoni(runtime:bool:CLAMAV_PERSISTENCE_ENABLED)
72+
size: string @timoni(runtime:string:CLAMAV_PERSISTENCE_SIZE)
73+
storageClass: "\(_persistenceStorageClassName)"
74+
accessModes: [ "\(_persistenceAccessModes)" ]
75+
}
76+
77+
resources: {
78+
limits: {
79+
cpu: string @timoni(runtime:string:CLAMAV_RESOURCES_LIMITS_CPU)
80+
memory: string @timoni(runtime:string:CLAMAV_RESOURCES_LIMITS_MEMORY)
81+
}
82+
requests: {
83+
cpu: string @timoni(runtime:string:CLAMAV_RESOURCES_REQUESTS_CPU)
84+
memory: string @timoni(runtime:string:CLAMAV_RESOURCES_REQUESTS_MEMORY)
85+
}
86+
}
87+
}
88+
}
89+
}
90+
}
91+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: clamav
5+
---
6+
apiVersion: v1
7+
kind: ConfigMap
8+
metadata:
9+
name: opencloud-config
10+
namespace: clamav
11+
data:
12+
###############################################################################
13+
# High Availability Configuration
14+
###############################################################################
15+
CLAMAV_REPLICA_COUNT: "2"
16+
CLAMAV_UPDATE_STRATEGY_TYPE: "RollingUpdate"
17+
CLAMAV_UPDATE_STRATEGY_PARTITION: "1"
18+
CLAMAV_HPA_ENABLED: "false"
19+
CLAMAV_PDB_ENABLED: "false"
20+
CLAMAV_PDB_MIN_AVAILABLE: "1"
21+
CLAMAV_TOPOLOGY_MAX_SKEW: "1"
22+
CLAMAV_TOPOLOGY_KEY: "kubernetes.io/hostname"
23+
CLAMAV_TOPOLOGY_UNSATISFIABLE: "ScheduleAnyway"
24+
25+
###############################################################################
26+
# Persistence Configuration
27+
###############################################################################
28+
CLAMAV_PERSISTENCE_ENABLED: "false"
29+
CLAMAV_PERSISTENCE_SIZE: "5000Mi"
30+
# For ReadWriteMany deployment, change to: ReadWriteMany
31+
CLAMAV_PERSISTENCE_ACCESS_MODES: "ReadWriteOnce"
32+
CLAMAV_PERSISTENCE_STORAGE_CLASS: ""
33+
34+
###############################################################################
35+
# Resource Configuration
36+
###############################################################################
37+
CLAMAV_RESOURCES_LIMITS_CPU: "6000m"
38+
CLAMAV_RESOURCES_LIMITS_MEMORY: "8Gi"
39+
CLAMAV_RESOURCES_REQUESTS_CPU: "500m"
40+
CLAMAV_RESOURCES_REQUESTS_MEMORY: "1Gi"
41+
42+
###############################################################################
43+
# Image Configuration
44+
###############################################################################
45+
# Leave empty to use default image tag from helm chart
46+
CLAMAV_IMAGE_TAG: ""

0 commit comments

Comments
 (0)