CSI Volume Snapshot (external-snapshotter)
Installs the Volume Snapshot CRDs and the snapshot-controller so CSI drivers (e.g. Longhorn) and Velero can use VolumeSnapshot / VolumeSnapshotContent / VolumeSnapshotClass.
- Upstream: kubernetes-csi/external-snapshotter v8.5.0
- Not the per-driver csi-snapshotter sidecar — Longhorn ships that with its CSI components.
Order: apply before relying on volume snapshots (e.g. before or early with Longhorn; Ansible runs this after Cilium, before metrics-server / Longhorn).
kubectl apply -k clusters/noble/bootstrap/csi-snapshot-controller/crd
kubectl apply -k clusters/noble/bootstrap/csi-snapshot-controller/controller
kubectl -n kube-system rollout status deploy/snapshot-controller --timeout=120s
After this, create or label a VolumeSnapshotClass for Longhorn (velero.io/csi-volumesnapshot-class: "true") per clusters/noble/bootstrap/velero/README.md.
Troubleshooting
If snapshot-controller is CrashLoopBackOff with exit 255 / 1, check previous logs:
kubectl -n kube-system logs deploy/snapshot-controller --previous --tail=80
Typical causes:
- Volume Snapshot CRDs missing or wrong version — re-apply:
kubectl apply -k clusters/noble/bootstrap/csi-snapshot-controller/crd - Volume group snapshot APIs — this repo installs GA
VolumeSnapshot*CRDs only. The controller overlay sets--feature-gates=CSIVolumeGroupSnapshot=falseso the binary does not expect VolumeGroupSnapshot* CRDs. - RBAC — re-apply the controller kustomize (includes
rbac-snapshot-controller.yaml).