Files
vnctalk-prosody/helm/prosody/values.yaml
T
Stefan-Sanger e1c78e7358 feat: add pre-upgrade and post-upgrade DB migration hooks
Dockerfile: add postgresql-client and bake db-customization/ SQL scripts
into the image at /vnc/db-customization/.

config/migrate.sh: detection + migration script with two modes:
- pre-upgrade: runs idempotent prosody-13-new-deployment.sql on 13.0.x
  databases; skips 0.11.6 (unsafe pre-upgrade) and new deployments.
- post-upgrade: waits for Prosody table, then runs the appropriate
  scripts — full 0.11.6->13.0.6 migration (rules-triggers + migration-once
  + new-deployment) or idempotent drift correction for 13.0.x.

Helm chart: two Job templates (db-migration-pre-upgrade.yaml,
db-migration-post-upgrade.yaml) gated by dbMigration.enabled (default
true). Both reuse the Prosody image and DB credentials from existing
values. backoffLimit: 0, hook-delete-policy: hook-succeeded.

Also tracks the db-customization SQL files (previously untracked, now
referenced by the Dockerfile ADD).

Part-of: <http://gitlab.vnc.biz/uxf/vnctalk-prosody/-/merge_requests/3>
2026-07-15 17:59:09 +02:00

136 lines
3.1 KiB
YAML

# Default values for owncloud.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: eu.gcr.io/vnc-development/vnctalk-prosody
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: release-13.0.6-vnc
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
tlsUpdates:
enabled: false
secretName: none
# Pre-upgrade and post-upgrade Helm hook Jobs that detect the database
# state and run the appropriate SQL migrations from db-customization/.
# The hooks use the same image and DB credentials as the Prosody container.
dbMigration:
enabled: true
service:
type: NodePort
port: 5280
annotations: {}
node:
name: prosody-internal
ingress:
enabled: true
annotations:
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
tls:
- hosts:
- "xmpp.chart.example"
secretName: xmpp-tls
hosts:
- host: "xmpp.chart.example"
paths: ["/xmpp-websocket*"]
service:
name: xmpp-ws-ingress
port:
number: 5280
name: http
- host: "xmpp.chart.example"
paths: ["/*"]
service:
name: xmpp-plain-ingress
port:
number: 8080
name: http
ingress_additional_host:
enabled: false
# Non-sensitive environment variables rendered as literal env values.
# Sensitive credentials must NOT go here — use secretEnv below.
env: {}
# Credentials mounted from a pre-provisioned Secret via secretKeyRef.
# Create the Secret out-of-band (e.g. kubectl create secret generic
# prosody-secrets --from-literal=prosodyDBpass=... ) and reference it here.
secretEnv:
# Name of an existing Secret in the release namespace.
existingSecret: ""
# Map of environment variable name -> key within the Secret.
keys: {}
# prosodyDBpass: prosodyDBpass
# fcmApiKey: fcmApiKey
# fileShareSecret: fileShareSecret
# avatarUploadPass: avatarUploadPass
# Dedicated resource requests and limits for each container in the pod.
# `resourcesProsody` is the XMPP server (the real workload); `resourcesSidecar`
# is the static-file/redirect http-server (a tiny slice). Each accepts the
# standard Kubernetes resources shape with `requests` and `limits`.
resourcesProsody:
requests:
cpu: 2000m
memory: 2048Mi
limits:
cpu: 4000m
memory: 4096Mi
resourcesSidecar:
requests:
cpu: 100m
memory: 64Mi
limits:
cpu: 200m
memory: 128Mi
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 10
targetCPUUtilizationPercentage: 90
pdb:
maxUnavailable: "50%"
nodeSelector: {}
tolerations: []
affinity: {}