Skip to content

feat: add velero (umbrella tracking issue) #125

Description

@patrick-hermann-sva

Goal

Stand up Velero as a first-class flux app, deploy it to the platform-sthings cluster against in-cluster MinIO, and unblock the restore-hook work in #115 (which depends on #111).

Done

Base in this repo (infra/velero/)

Platform-sthings overlay (stuttgart-things/stuttgart-things)

  • stuttgart-things/stuttgart-things#2200 — feat(platform-sthings): deploy velero to MinIO velero-test bucket
  • stuttgart-things/stuttgart-things#2202 — fix(platform-sthings): retarget velero cred patch to plain Secret
  • stuttgart-things/stuttgart-things#2203 — chore(platform-sthings): bump flux-infra to v1.6.0, pin velero to it (overlay now references the stable tag instead of apps-upstream/main)
  • stuttgart-things/stuttgart-things#2204 — chore(platform-sthings): velero uses dedicated MinIO svc account (off MinIO root creds onto bucket-scoped user velero with policy velero-test-rw; SOPS-encrypted velero-s3-credentials Secret)
  • stuttgart-things/stuttgart-things#2205 — chore(platform-sthings): velero on v1.7.0 base, drop redundant trust-bundle patches, add nightly Schedule (bumped flux-infra v1.6.0 → v1.7.0; replaced inline patches with single VELERO_SSL_CERT_DIR: /etc/ssl/custom; added daily-all Schedule)
  • Verified live: BackupStorageLocation/default is Available; smoke backup smoke-test-1779023397 (23 items) completed against velero-test bucket
  • TLS via trust-manager cluster-trust-bundle ConfigMap + AWS_CA_BUNDLE verified
  • End-to-end restore test — backup restore-test-1779027554 of throwaway velero-restore-test namespace (21 items) → ns deleted → restore (14 user-restorable items) → ConfigMap data, Secret api-key, and Deployment all came back identical. Two benign warnings (cluster-scoped ciliumendpoints.cilium.io CRD + auto-generated kube-root-ca.crt skipped) — expected Velero behavior. Test artefacts cleaned up.
  • Daily Schedule liveSchedule/daily-all (Enabled, cron 0 2 * * *, 30-day TTL, full cluster minus kube-{system,public,node-lease}). Manually triggered daily-all-20260517145502 for verification → Completed, 1713 items backed up.

Outstanding

Followups in platform-sthings overlay

  • Re-enable ServiceMonitor once kube-prometheus-stack (or the prometheus-operator CRDs) is on platform-sthings.
  • Pod-restart-after-Secret-update wrinkle: AWS SDK reads creds at startup. Won't recur on fresh deploys but matters for rotation — consider stakater/Reloader.

Backup hygiene / next features

  • Node-agent for filesystem PV backup (VELERO_DEPLOY_NODE_AGENT=true) if PV data needs to be in scope; default is off.
  • Volume snapshots — currently VELERO_SNAPSHOTS_ENABLED=false; decide CSI snapshot strategy.

Crossplane-specific (parent work)

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions