Skip to content

Longhorn Storage Configuration

Longhorn provides persistent volumes for stateful Engine components.

Typical Consumers

  • Storage service data.
  • Identity data and keys.
  • RabbitMQ durable state.

Setup Checklist

  1. Install Longhorn in cluster.
  2. Confirm default or dedicated storage class.
  3. Verify nodes have required disk capacity.
  4. Apply Engine manifests using matching storageClassName.

Validation Commands

kubectl get sc
kubectl get pvc -n meshflows
kubectl get pv
kubectl get recurringjobs.longhorn.io -n longhorn-system
kubectl get backuptargets.longhorn.io -n longhorn-system

Longhorn Backups (Contabo Object Storage)

Off-site backups use S3-compatible Contabo Object Storage configured by the deploy pipeline.

Required GitHub/environment secrets:

  • CONTABO_S3_ACCESS_KEY
  • CONTABO_S3_SECRET_KEY
  • CONTABO_S3_ENDPOINT (e.g. https://eu2.contabostorage.com)
  • CONTABO_S3_BUCKET
  • CONTABO_S3_BACKUP_PREFIX (optional, default longhorn-backups)
  • CONTABO_S3_REGION (optional, default default)

Recurring jobs (all volumes in Longhorn default group):

  • Daily snapshots at 02:00, retain 7
  • Weekly backups to Contabo at Sunday 03:00, retain 4

Contabo requires path-style S3 access. Do not enable VIRTUAL_HOSTED_STYLE in the backup secret.

On Longhorn v1.11+, configure the BackupTarget named default (not legacy settings.backup-target):

kubectl -n longhorn-system patch backuptargets.longhorn.io default --type merge \
  -p '{"spec":{"backupTargetURL":"s3://BUCKET@default/longhorn-backups/","credentialSecret":"longhorn-contabo-backup"}}'

Operational Guidance

  • Use replica counts aligned with node availability.
  • Monitor volume health and rebuild activity.
  • Backup critical volumes before major upgrades.
  • Keep sufficient free capacity to avoid write pressure.