diff --git a/docs/kubernetes/how-to-import-volumes.md b/docs/kubernetes/how-to-import-volumes.md new file mode 100644 index 0000000000000000000000000000000000000000..d0ec542e26deb9c7463d66e60331b04851554025 --- /dev/null +++ b/docs/kubernetes/how-to-import-volumes.md @@ -0,0 +1,59 @@ +# How to import volumes + +This guide explains how to import an existing Hetzner Volume into your Kubernetes cluster with the csi-driver installed. + +1. Detach your volume by running: + +```bash +hcloud volume detach <VOLUME-NAME> +``` + +2. Find the ID of your volume by running: + +```bash +hcloud volume describe <VOLUME-NAME> +``` + +3. Create a new `PersistentVolume` and insert the volume ID into the `<VOLUME-ID>` and your volume location into `<VOLUME-LOCATION>`. This ensures that the topology constraints are set up correctly. + +```yaml +apiVersion: v1 +kind: PersistentVolume +metadata: + name: imported-data +spec: + storageClassName: hcloud-volumes + capacity: + storage: 10Gi + accessModes: + - ReadWriteOnce + csi: + fsType: ext4 + driver: csi.hetzner.cloud + volumeHandle: "<VOLUME-ID>" + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: csi.hetzner.cloud/location + operator: In + values: + - <VOLUME-LOCATION> +``` + +4. Create a new `PersistentVolumeClaim` and link it to the `PersistentVolume` via `volumeName`: + +```yaml +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: imported-data +spec: + storageClassName: hcloud-volumes + volumeName: imported-data # <-- reference PV name + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi +```