Files
home-server/clusters/noble/bootstrap/csi-snapshot-controller/README.md

31 lines
1.7 KiB
Markdown

# 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](https://github.com/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**).
```bash
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:
```bash
kubectl -n kube-system logs deploy/snapshot-controller --previous --tail=80
```
Typical causes:
1. **Volume Snapshot CRDs missing or wrong version** — re-apply: `kubectl apply -k clusters/noble/bootstrap/csi-snapshot-controller/crd`
2. **Volume group snapshot APIs** — this repo installs **GA** `VolumeSnapshot*` CRDs only. The controller overlay sets **`--feature-gates=CSIVolumeGroupSnapshot=false`** so the binary does not expect **VolumeGroupSnapshot*** CRDs.
3. **RBAC** — re-apply the controller kustomize (includes `rbac-snapshot-controller.yaml`).