Prepare Cluster for Rok CSI

Rok uses the Container Storage Interface (CSI) v1alpha1. However, GKE forces a different, incompatible version by default. In this guide you will prepare your cluster to install the CSI version that Rok needs.

See also


Prepare your cluster to install the CSI version that Rok needs with the following commands:

  1. Go to your GitOps repository, inside your rok-tools management environment:

    root@rok-tools:~# cd ~/ops/deployments
  2. Install Kyverno:

    root@rok-tools:~/ops/deployments# rok-deploy --apply rok/kyverno/overlays/deploy
  3. Apply a Kyverno policy to disable the original GKE-provided CSI version:

    root@rok-tools:~/ops/deployments# rok-deploy --apply rok/csi-disable-v1beta1/overlays/deploy
  4. Verify that Kyverno is up-and-running:

    root@rok-tools:~/ops/deployments# kubectl get deploy -n kyverno
  5. Delete the original GKE-provided VolumeSnapshot Custom Resource Definition (CRD):

    root@rok-tools:~/ops/deployments# kubectl delete
  6. Delete the original GKE-provided VolumeSnapshotClass CRD:

    root@rok-tools:~/ops/deployments# kubectl delete
  7. Delete the original GKE-provided VolumeSnapshotContents CRD:

    root@rok-tools:~/ops/deployments# kubectl delete


  1. Verify your cluster does not have any snapshot-related CRDs left. Ensure that the following command produces no output:

    root@rok-tools:~/ops/deployments# kubectl get | grep volumesnapshot


You have successfully prepared your cluster to install the CSI version that Rok needs.

What's Next

The next step is to deploy Rok.