From d70720005506a7b12ee15dd9ba5f3cdc89fa28e7 Mon Sep 17 00:00:00 2001 From: bubu Date: Sun, 31 May 2026 03:53:33 +0200 Subject: [PATCH] add: helm chart changes --- charts/oxicloud/Chart.lock | 7 ---- charts/oxicloud/Chart.yaml | 8 +---- charts/oxicloud/templates/configmap.yaml | 2 -- charts/oxicloud/templates/secret.yaml | 15 +++++--- charts/oxicloud/templates/statefulset.yaml | 20 +++++------ .../oxicloud/templates/wopi-deployment.yaml | 5 +-- charts/oxicloud/values.yaml | 34 +++++++------------ docs/guide/installation.md | 2 ++ 8 files changed, 36 insertions(+), 57 deletions(-) delete mode 100644 charts/oxicloud/Chart.lock diff --git a/charts/oxicloud/Chart.lock b/charts/oxicloud/Chart.lock deleted file mode 100644 index 603690f6..00000000 --- a/charts/oxicloud/Chart.lock +++ /dev/null @@ -1,7 +0,0 @@ ---- -dependencies: -- name: postgresql - repository: https://charts.bitnami.com/bitnami - version: 18.5.6 -digest: sha256:15eb9ab8fa1b8df15d424dc3ab70db86a95d4ab123109827f78cf60e3c59ad72 -generated: "2026-03-12T10:03:03.681662+01:00" diff --git a/charts/oxicloud/Chart.yaml b/charts/oxicloud/Chart.yaml index 5eceb226..4503e1fa 100644 --- a/charts/oxicloud/Chart.yaml +++ b/charts/oxicloud/Chart.yaml @@ -5,10 +5,4 @@ description: | Ultra-fast, secure & lightweight self-hosted cloud storage — your files, photos, calendars & contacts, all in one place. Built in Rust. type: application version: 0.1.0 -appVersion: "0.5.2" - -dependencies: - - name: postgresql - version: 18.5.6 - repository: https://charts.bitnami.com/bitnami - condition: postgresql.enabled \ No newline at end of file +appVersion: "0.5.6" diff --git a/charts/oxicloud/templates/configmap.yaml b/charts/oxicloud/templates/configmap.yaml index 3e95594f..67c4be1d 100644 --- a/charts/oxicloud/templates/configmap.yaml +++ b/charts/oxicloud/templates/configmap.yaml @@ -6,9 +6,7 @@ metadata: data: OXICLOUD_SERVER_PORT: {{ .Values.config.server.port | quote }} OXICLOUD_SERVER_HOST: {{ .Values.config.server.host | quote }} - {{- if .Values.config.server.baseUrl }} OXICLOUD_BASE_URL: {{ .Values.config.server.baseUrl | quote }} - {{- end }} OXICLOUD_ENABLE_AUTH: {{ .Values.config.features.enableAuth | quote }} OXICLOUD_ENABLE_FILE_SHARING: {{ .Values.config.features.enableSharing | quote }} MIMALLOC_PURGE_DELAY: {{ .Values.config.mimalloc.purgeDelay | quote }} diff --git a/charts/oxicloud/templates/secret.yaml b/charts/oxicloud/templates/secret.yaml index 72d690d7..b582aa49 100644 --- a/charts/oxicloud/templates/secret.yaml +++ b/charts/oxicloud/templates/secret.yaml @@ -11,11 +11,16 @@ data: {{- if .Values.secrets.jwtSecret }} OXICLOUD_JWT_SECRET: {{ .Values.secrets.jwtSecret | b64enc | quote }} {{- end }} - {{- if .Values.postgresql.enabled }} - DB_PASSWORD: {{ .Values.postgresql.auth.password | b64enc | quote }} - {{- end }} {{- if .Values.wopi.enabled }} - WOPI_ADMIN_USERNAME: {{ .Values.wopi.collabora.admin.username | b64enc | quote }} - WOPI_ADMIN_PASSWORD: {{ .Values.wopi.collabora.admin.password | b64enc | quote }} + {{- /* Existing secret retrieval to keep same password during upgrade */-}} + {{- $secretName := printf "%s-secret" (include "oxicloud.fullname" .) }} + {{- $existingSecret := lookup "v1" "Secret" .Release.Namespace $secretName }} + {{- $password := "" }} + {{- if and $existingSecret (hasKey $existingSecret.data "WOPI_ADMIN_PASSWORD") }} + {{- $password = index $existingSecret.data "WOPI_ADMIN_PASSWORD" }} + {{- else }} + {{- $password = .Values.wopi.collabora.admin.password | default (randAlphaNum 20) | b64enc }} + {{- end }} + WOPI_ADMIN_PASSWORD: {{ $password | quote }} {{- end }} {{- end }} \ No newline at end of file diff --git a/charts/oxicloud/templates/statefulset.yaml b/charts/oxicloud/templates/statefulset.yaml index 0f658d07..1674c15e 100644 --- a/charts/oxicloud/templates/statefulset.yaml +++ b/charts/oxicloud/templates/statefulset.yaml @@ -15,8 +15,12 @@ spec: labels: {{- include "oxicloud.selectorLabels" . | nindent 8 }} spec: + {{- if and .Values.persistence.enabled .Values.persistence.fsGroup }} + securityContext: + fsGroup: {{ .Values.persistence.fsGroup }} + {{- end }} containers: - - name: oxicloud + - name: oxicloud-app image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} ports: @@ -26,19 +30,13 @@ spec: envFrom: - configMapRef: name: {{ include "oxicloud.fullname" . }}-config - - secretRef: - name: {{ if .Values.secrets.existingSecret }}{{ .Values.secrets.existingSecret }}{{ else }}{{ include "oxicloud.fullname" . }}-secret{{ end }} + {{- if .Values.envs }} env: - - name: DB_PASSWORD - valueFrom: - secretKeyRef: - name: {{ if .Values.secrets.existingSecret }}{{ .Values.secrets.existingSecret }}{{ else }}{{ include "oxicloud.fullname" . }}-secret{{ end }} - key: DB_PASSWORD - - name: OXICLOUD_DB_CONNECTION_STRING - value: "postgres://{{ .Values.postgresql.auth.username }}:$(DB_PASSWORD)@{{ .Release.Name }}-postgresql/{{ .Values.postgresql.auth.database }}" + {{- toYaml .Values.envs | nindent 12 }} + {{- end }} volumeMounts: - name: storage-data - mountPath: /app/storage + mountPath: {{ .Values.persistence.mountPath | default "/app/storage" }} {{- if not .Values.persistence.enabled }} volumes: - name: storage-data diff --git a/charts/oxicloud/templates/wopi-deployment.yaml b/charts/oxicloud/templates/wopi-deployment.yaml index 9230b9f4..ea010200 100644 --- a/charts/oxicloud/templates/wopi-deployment.yaml +++ b/charts/oxicloud/templates/wopi-deployment.yaml @@ -40,10 +40,7 @@ spec: - name: extra_params value: {{ .Values.wopi.collabora.extraParams | quote }} - name: username - valueFrom: - secretKeyRef: - name: {{ if .Values.secrets.existingSecret }}{{ .Values.secrets.existingSecret }}{{ else }}{{ include "oxicloud.fullname" . }}-secret{{ end }} - key: WOPI_ADMIN_USERNAME + value: admin - name: password valueFrom: secretKeyRef: diff --git a/charts/oxicloud/values.yaml b/charts/oxicloud/values.yaml index 1103752f..363c21d9 100644 --- a/charts/oxicloud/values.yaml +++ b/charts/oxicloud/values.yaml @@ -2,20 +2,19 @@ replicaCount: 1 image: - repository: oxicloud + repository: diocrafts/oxicloud pullPolicy: IfNotPresent - tag: "latest" + tag: "0.5.6" + +# cf : https://github.com/AtalayaLabs/OxiCloud/blob/main/example.env +envs: + - name: OXICLOUD_DB_CONNECTION_STRING + value: "postgres://postgres:postgres@postgres/oxicloud" + - name: OXICLOUD_STORAGE_PATH + value: /app/storage + - name: OXICLOUD_STATIC_PATH + value: /app/static -postgresql: - enabled: true - auth: - username: postgres - password: "change_me_in_production" - database: oxicloud - primary: - persistence: - enabled: true - size: 8Gi config: server: @@ -47,23 +46,16 @@ wopi: port: 9980 admin: username: admin - password: "wopi_admin_password" # In production behind an ingress, you'd likely enable SSL termination. extraParams: "--o:ssl.enable=false --o:ssl.termination=false --o:net.frame_ancestors=http://* https://*" -secrets: - # If existingSecret is set, the chart will NOT create a Secret and will use this one instead. - existingSecret: "" - jwtSecret: "" - oidcClientSecret: "" - service: type: ClusterIP port: 8086 ingress: enabled: true - className: "nginx" # Adjust to your ingress controller (e.g., traefik) + className: "traefik" # Adjust to your ingress controller (e.g., traefik) annotations: {} hosts: - host: cloud.example.com @@ -73,4 +65,4 @@ ingress: tls: [] # - secretName: oxicloud-tls # hosts: - # - cloud.example.com \ No newline at end of file + # - cloud.example.com diff --git a/docs/guide/installation.md b/docs/guide/installation.md index a51d0d5f..463235d3 100644 --- a/docs/guide/installation.md +++ b/docs/guide/installation.md @@ -70,6 +70,8 @@ cargo run --release `OXICLOUD_DB_CONNECTION_STRING` is the runtime setting read by OxiCloud. `DATABASE_URL` is only needed for SQLx build-time checks. ## Kubernetes (Helm) +* Please note the and external postgresql is required (for instance, create it with cncf postgreqsl operator), More information [HERE](https://cloudnative-pg.io/) +* Please pay attention to pvc name change if you are using this charte with an already existing installation, you'll have to migrate the data. ```bash helm upgrade --install oxicloud charts/oxicloud \