Skip to content

Commit 24841ae

Browse files
author
Your Name
committed
Merge branch 'posixfs-support-3'
2 parents 4df0017 + b8ec9fd commit 24841ae

File tree

10 files changed

+266
-74
lines changed

10 files changed

+266
-74
lines changed

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
1313
url: https://opencloud.eu
1414
type: application
15-
version: 0.2.0
15+
version: 0.2.7
1616
# renovate: datasource=docker depName=opencloudeu/opencloud-rolling
17-
appVersion: 3.2.1
17+
appVersion: 3.4.0
1818
kubeVersion: ""
1919
sources:
2020
- https://github.com/opencloud-eu/helm

charts/opencloud-microservices/README.md

Lines changed: 25 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -997,71 +997,9 @@ Or via command line:
997997
--set opencloud.proxy.basicAuth.enabled=true
998998
```
999999

1000-
1001-
#### Improved Namespace Handling
1002-
1003-
The chart now automatically uses the correct namespace across all resources, eliminating the need to manually set the namespace in multiple places.
1004-
1005-
The following HTTPRoutes are created when `httpRoute.enabled` is set to `true`:
1006-
1007-
1. **OpenCloud Proxy HTTPRoute (`oc-proxy-https`)**:
1008-
- Hostname: `global.domain.opencloud`
1009-
- Service: `{{ release-name }}-opencloud`
1010-
- Port: 9200
1011-
- Headers: Removes Permissions-Policy header to prevent browser console errors
1012-
1013-
2. **Keycloak HTTPRoute (`oc-keycloak-https`)** (when `keycloak.enabled` is `true`):
1014-
- Hostname: `global.domain.keycloak`
1015-
- Service: `{{ release-name }}-keycloak`
1016-
- Port: 8080
1017-
- Headers: Adds Permissions-Policy header to prevent browser features like interest-based advertising
1018-
1019-
3. **MinIO HTTPRoute (`oc-minio-https`)** (when `opencloud.storage.s3.internal.enabled` is `true`):
1020-
- Hostname: `global.domain.minio`
1021-
- Service: `{{ release-name }}-minio`
1022-
- Port: 9001
1023-
- Headers: Adds Permissions-Policy header to prevent browser features like interest-based advertising
1024-
1025-
default user: opencloud
1026-
pass: opencloud-secret-key
1027-
1028-
4. **MinIO Console HTTPRoute (`oc-minio-console-https`)** (when `opencloud.storage.s3.internal.enabled` is `true`):
1029-
- Hostname: `console.minio.opencloud.test` (or `global.domain.minioConsole` if defined)
1030-
- Service: `{{ release-name }}-minio`
1031-
- Port: 9001
1032-
- Headers: Adds Permissions-Policy header to prevent browser features like interest-based advertising
1033-
1034-
5. **OnlyOffice HTTPRoute (`oc-onlyoffice-https`)** (when `onlyoffice.enabled` is `true`):
1035-
- Hostname: `global.domain.onlyoffice`
1036-
- Service: `{{ release-name }}-onlyoffice`
1037-
- Port: 443 (or 80 if using HTTP)
1038-
- Path: "/"
1039-
- This route is used to access the OnlyOffice Document Server for collaborative editing
1040-
1041-
6. **WOPI HTTPRoute (`oc-wopi-https`)** (when `onlyoffice.collaboration.enabled` and `onlyoffice.enabled` are `true`):
1042-
- Hostname: `global.domain.wopi` (or `collaboration.wopiDomain`)
1043-
- Service: `{{ release-name }}-collaboration`
1044-
- Port: 9300
1045-
- Path: "/"
1046-
- This route is used for the WOPI protocol communication between OnlyOffice and the collaboration service
1047-
1048-
7. **Collabora HTTPRoute** (when `collabora.enabled` is `true`):
1049-
- Hostname: `global.domain.collabora`
1050-
- Service: `{{ release-name }}-collabora`
1051-
- Port: 9980
1052-
- Headers: Adds Permissions-Policy header to prevent browser features like interest-based advertising
1053-
1054-
8. **Collaboration (WOPI) HTTPRoute** (when `collaboration.enabled` is `true`):
1055-
- Hostname: `collaboration.wopiDomain`
1056-
- Service: `{{ release-name }}-collaboration`
1057-
- Port: 9300
1058-
- Headers: Adds Permissions-Policy header to prevent browser features like interest-based advertising
1059-
1060-
All HTTPRoutes are configured to use the same Gateway specified by `httpRoute.gateway.name` and `httpRoute.gateway.namespace`.
1061-
10621000
## Setting Up Gateway API with Talos, Cilium, and cert-manager
10631001

1064-
This section provides a practical guide to setting up the Gateway API with Talos, Cilium, and cert-manager for the production OpenCloud chart.
1002+
This section provides a practical guide to setting up the Gateway API with Talos Kubernetes, Cilium, and cert-manager for the production OpenCloud chart.
10651003

10661004
### Prerequisites
10671005

@@ -1235,6 +1173,30 @@ spec:
12351173
allowedRoutes:
12361174
namespaces:
12371175
from: All
1176+
- name: oc-collabora-https
1177+
protocol: HTTPS
1178+
port: 443
1179+
hostname: "collabora.opencloud.test"
1180+
tls:
1181+
mode: Terminate
1182+
certificateRefs:
1183+
- name: opencloud-wildcard-tls
1184+
namespace: kube-system
1185+
allowedRoutes:
1186+
namespaces:
1187+
from: All
1188+
- name: oc-collaboration-https
1189+
protocol: HTTPS
1190+
port: 443
1191+
hostname: "collaboration.opencloud.test"
1192+
tls:
1193+
mode: Terminate
1194+
certificateRefs:
1195+
- name: opencloud-wildcard-tls
1196+
namespace: kube-system
1197+
allowedRoutes:
1198+
namespaces:
1199+
from: All
12381200
- name: oc-onlyoffice-https
12391201
protocol: HTTPS
12401202
port: 443

charts/opencloud-microservices/deployments/timoni/configmap.yaml

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ metadata:
99
name: openldap
1010
---
1111
apiVersion: v1
12+
kind: Namespace
13+
metadata:
14+
name: clamav
15+
---
16+
apiVersion: v1
1217
kind: ConfigMap
1318
metadata:
1419
name: opencloud-config
@@ -18,7 +23,14 @@ data:
1823
# Global Configuration
1924
###############################################################################
2025
EXTERNAL_DOMAIN: "cloud.opencloud.test"
21-
TAG: "3.0.0"
26+
TAG: ""
27+
28+
###############################################################################
29+
# Deployment Strategy
30+
###############################################################################
31+
DEPLOY_TYPE: "Recreate"
32+
MAX_SURGE: "25%"
33+
MAX_UNAV: "25%"
2234

2335
OPENCLOUD_WEB_URL: "https://www.opencloud.eu"
2436
OPENCLOUD_LOGGING_LEVEL: "debug"
@@ -42,9 +54,9 @@ data:
4254
###############################################################################
4355
# Persistence StorageClass and AccessModes (global defaults)
4456
###############################################################################
45-
PERSISTENCE_STORAGE_CLASS_NAME: "ceph-cephfs"
57+
PERSISTENCE_STORAGE_CLASS_NAME: ""
4658
# Comma-separated for runtime to split into a list, e.g. "ReadWriteMany" or "ReadWriteOnce,ReadOnlyMany"
47-
PERSISTENCE_ACCESS_MODES: "ReadWriteMany"
59+
PERSISTENCE_ACCESS_MODES: "ReadWriteOnce"
4860

4961
###############################################################################
5062
# Persistence (service PVC sizes and toggles)
@@ -117,6 +129,11 @@ data:
117129
###############################################################################
118130
SEARCH_EXTRACTOR_TYPE: "tika"
119131

132+
###############################################################################
133+
# Demo Users
134+
###############################################################################
135+
DEMO_USERS_ENABLED: "false"
136+
120137
###############################################################################
121138
# Collabora Configuration
122139
###############################################################################
@@ -146,3 +163,28 @@ data:
146163
###############################################################################
147164
WOPI_INGRESS_DOMAIN: "wopi.opencloud.test"
148165
WOPI_COLLABORA_TLS_HOST: "wopi-collabora.kube.opencloud.test"
166+
167+
###############################################################################
168+
# Antivirus
169+
###############################################################################
170+
ANTIVIRUS_ENABLED: "true"
171+
ANTIVIRUS_INFECTED_FILE_HANDLING: "abort"
172+
ANTIVIRUS_ICAP_URL: "http://clamav-icap.clamav:1344"
173+
ANTIVIRUS_ICAP_SERVICE: "avscan"
174+
175+
###############################################################################
176+
# ClamAV Configuration
177+
###############################################################################
178+
CLAMAV_REPLICA_COUNT: "1"
179+
CLAMAV_RESOURCES_LIMITS_CPU: "500m"
180+
CLAMAV_RESOURCES_LIMITS_MEMORY: "512Mi"
181+
CLAMAV_RESOURCES_REQUESTS_CPU: "250m"
182+
CLAMAV_RESOURCES_REQUESTS_MEMORY: "256Mi"
183+
CLAMAV_PERSISTENCE_SIZE: "10Gi"
184+
CLAMAV_FRESHCLAM_IMAGE_TAG: "1.4.0"
185+
CLAMAV_CLAMD_IMAGE_TAG: "1.4.0"
186+
CLAMAV_ICAP_IMAGE_TAG: "0.5.10"
187+
CLAMAV_ICAP_IMAGE_REPOSITORY: "bmi/opendesk/components/platform-development/images/clamav-icap"
188+
CLAMAV_ICAP_IMAGE_REGISTRY: "registry.opencode.de"
189+
CLAMAV_ICAP_CLAMD_HOST: "clamav-clamd"
190+
CLAMAV_MILTER_CLAMD_HOST: "clamav-clamd"
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
apiVersion: batch/v1
2+
kind: Job
3+
metadata:
4+
name: clamav-db-chown
5+
namespace: clamav
6+
spec:
7+
backoffLimit: 1
8+
template:
9+
spec:
10+
restartPolicy: Never
11+
containers:
12+
- name: chown
13+
image: busybox:1.36
14+
imagePullPolicy: IfNotPresent
15+
command: ["/bin/sh", "-c", "chown -R 100:100 /var/lib/clamav"]
16+
volumeMounts:
17+
- name: clamav-database
18+
mountPath: /var/lib/clamav
19+
volumes:
20+
- name: clamav-database
21+
persistentVolumeClaim:
22+
claimName: clamav-db

charts/opencloud-microservices/deployments/timoni/opencloud.cue

Lines changed: 88 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,17 @@ bundle: {
1515
// },
1616
"opencloud": {
1717
module: {
18-
url: "oci://ghcr.io/stefanprodan/modules/flux-helm-release"
18+
url: "oci://ghcr.io/stefanprodan/modules/flux-helm-release"
1919
version: "latest"
2020
}
2121
namespace: "opencloud"
2222
values: {
2323
repository: {
24-
url: "oci://ghcr.io/suse-coder/helm-charts"
24+
url: "oci://ghcr.io/opencloud-eu/helm-charts"
2525
}
2626
chart: {
2727
name: "opencloud-microservices"
28-
version: "0.2.0"
28+
version: "0.2.7"
2929
}
3030
sync: {
3131
timeout: 10
@@ -35,6 +35,15 @@ bundle: {
3535
// Global persistence indirection (like _domainFilter pattern)
3636
_persistenceStorageClassName: string @timoni(runtime:string:PERSISTENCE_STORAGE_CLASS_NAME)
3737
_persistenceAccessModes: string @timoni(runtime:string:PERSISTENCE_ACCESS_MODES)
38+
39+
deploymentStrategy: {
40+
type: string @timoni(runtime:string:DEPLOY_TYPE)
41+
rollingUpdate: {
42+
maxSurge: string @timoni(runtime:string:MAX_SURGE)
43+
maxUnavailable: string @timoni(runtime:string:MAX_UNAV)
44+
}
45+
}
46+
3847
logging: {
3948
level: string @timoni(runtime:string:OPENCLOUD_LOGGING_LEVEL)
4049
}
@@ -106,6 +115,15 @@ bundle: {
106115
}
107116
}
108117
features: {
118+
demoUsers: bool @timoni(runtime:bool:DEMO_USERS_ENABLED)
119+
virusscan: {
120+
enabled: bool @timoni(runtime:bool:ANTIVIRUS_ENABLED)
121+
infectedFileHandling: string @timoni(runtime:string:ANTIVIRUS_INFECTED_FILE_HANDLING)
122+
icap: {
123+
url: string @timoni(runtime:string:ANTIVIRUS_ICAP_URL)
124+
service: string @timoni(runtime:string:ANTIVIRUS_ICAP_SERVICE)
125+
}
126+
}
109127
externalUserManagement: {
110128
enabled: bool @timoni(runtime:bool:EXTERNAL_USER_MANAGEMENT_ENABLED)
111129
adminUUID: string @timoni(runtime:string:EXTERNAL_USER_MANAGEMENT_ADMIN_UUID)
@@ -524,6 +542,73 @@ bundle: {
524542
}
525543
}
526544
}
545+
},
546+
"clamav": {
547+
module: {
548+
url: "oci://ghcr.io/stefanprodan/modules/flux-helm-release"
549+
version: "latest"
550+
}
551+
namespace: "clamav"
552+
values: {
553+
repository: {
554+
url: "https://gitlab.opencode.de/api/v4/projects/1381/packages/helm/stable"
555+
}
556+
chart: {
557+
name: "opendesk-clamav"
558+
version: "4.0.6"
559+
}
560+
sync: {
561+
timeout: 5
562+
createNamespace: true
563+
}
564+
helmValues: {
565+
// Global persistence indirection (like _domainFilter pattern)
566+
_persistenceStorageClassName: string @timoni(runtime:string:PERSISTENCE_STORAGE_CLASS_NAME)
567+
_persistenceAccessModes: string @timoni(runtime:string:PERSISTENCE_ACCESS_MODES)
568+
569+
replicaCount: string @timoni(runtime:string:CLAMAV_REPLICA_COUNT)
570+
resources: {
571+
limits: {
572+
cpu: string @timoni(runtime:string:CLAMAV_RESOURCES_LIMITS_CPU)
573+
memory: string @timoni(runtime:string:CLAMAV_RESOURCES_LIMITS_MEMORY)
574+
}
575+
requests: {
576+
cpu: string @timoni(runtime:string:CLAMAV_RESOURCES_REQUESTS_CPU)
577+
memory: string @timoni(runtime:string:CLAMAV_RESOURCES_REQUESTS_MEMORY)
578+
}
579+
}
580+
persistence: {
581+
accessModes: [ "\(_persistenceAccessModes)" ]
582+
size: string @timoni(runtime:string:CLAMAV_PERSISTENCE_SIZE)
583+
storageClass: "\(_persistenceStorageClassName)"
584+
}
585+
freshclam: {
586+
image: {
587+
tag: string @timoni(runtime:string:CLAMAV_FRESHCLAM_IMAGE_TAG)
588+
}
589+
}
590+
clamd: {
591+
image: {
592+
tag: string @timoni(runtime:string:CLAMAV_CLAMD_IMAGE_TAG)
593+
}
594+
}
595+
icap: {
596+
image: {
597+
registry: string @timoni(runtime:string:CLAMAV_ICAP_IMAGE_REGISTRY)
598+
repository: string @timoni(runtime:string:CLAMAV_ICAP_IMAGE_REPOSITORY)
599+
tag: string @timoni(runtime:string:CLAMAV_ICAP_IMAGE_TAG)
600+
}
601+
settings: {
602+
clamdModClamdHost: string @timoni(runtime:string:CLAMAV_ICAP_CLAMD_HOST)
603+
}
604+
}
605+
milter: {
606+
settings: {
607+
clamdHost: string @timoni(runtime:string:CLAMAV_MILTER_CLAMD_HOST)
608+
}
609+
}
610+
}
611+
}
527612
}
528613
}
529614
}

0 commit comments

Comments
 (0)