Skip to content

GUIDES

Stateful Portability

Honest guide to volumes, databases, and persistence across runtime migrations.

What Aether does

  • Deploy stateful specs with PVC auto-mount (Kubernetes adapter)
  • Snapshot workload state before migrate (best-effort via backup module)
  • Re-create containers/VMs on target runtime with same spec

What Aether does not do

  • Copy disk data between Podman volumes, PVCs, and bare-metal disks
  • Replicate databases automatically
  • Preserve IP/DNS endpoints

Migration moves the workload definition and process, not the bytes on disk.


Limits by concern

Concern Podman Kubernetes KubeVirt
Local volume bind mount PVC VM disk
Snapshot Manual CSI snapshot* VM snapshot*
Cross-runtime copy Not automatic Not automatic Not automatic

* Via platform tooling + BACKUP.md, not migration engine.


Database migration playbook

1. Dump and restore

# Source still running
pg_dump -h source -U app db > backup.sql
aether migrate my-db kubernetes --strategy blue-green
# Target up — restore before cutover
psql -h target -U app db < backup.sql

2. Dual-write / read replica

For zero data loss: replicate until caught up, brief read-only window, cutover DNS.

3. Object storage

Prefer S3-compatible storage for blobs; migration only moves the app tier.


Kubernetes PVC notes

See examples/workload-full-featured.yaml for persistence block. After migrate to K8s, ensure StorageClass exists. After migrate from K8s, export data before deleting PVC.


Recommendations

Workload type Strategy
Stateless app Blue-green migrate freely
Cache (Redis) Accept cold cache or replicate
SQL database Dump/restore or logical replication
File uploads on disk Move to object storage first