Skip to main content

Snapshot Controller

Deploys the external-snapshotter snapshot-controller, which is what makes VolumeSnapshotClass / VolumeSnapshot / VolumeSnapshotContent work. It's required for CSI snapshotting and isn't tied to any specific CSI driver — many Kubernetes distributions bundle it, but not all do.

This wrapper (chart version 1.0.0) pins the Piraeus snapshot-controller chart (currently 5.2.0, from https://piraeus.io/helm-charts) and wires up a self-signed cert-manager Issuer for the controller's webhook.

Why it's in KubeAid​

CSI drivers used across KubeAid clusters (Rook-Ceph, hcloud-csi, EBS/EFS CSI, etc.) rely on the snapshot CRDs and controller to support snapshotting/restoring PVCs. If a cluster doesn't already have volumesnapshotclasses.snapshot.storage.k8s.io (check with kubectl get crd volumesnapshotclasses.snapshot.storage.k8s.io), it needs this chart.

Key values / KubeAid-specific configuration​

  • networkpolicies: true (default) — enables templates/netpol-snapshot-controller.yaml and templates/netpol-snapshot-validation-webhook.yaml.
  • snapshot-controller.webhook.tls.certManagerIssuerRef points the webhook's TLS at the Issuer/selfsigned this chart creates (templates/Issuer.yaml, a cert-manager Issuer with selfSigned: {} in the release namespace) rather than requiring a pre-existing issuer.
  • snapshot-controller.webhook.revisionHistoryLimit / snapshot-controller.controller.revisionHistoryLimit both set to 0 — no old ReplicaSets retained.

Operational notes​

VolumeSnapshots created by Velero (or similar backup tooling) can outlive the backup they belong to and keep costing money on the cloud provider's snapshot storage. Periodically check for orphaned snapshots — see the Velero chart README for the cleanup procedure.