# ZFS-provisioner ## Requirements - ZFS on storage server - nfs-kernel-server on storage server - sudo on storage server ## Install - Add user `adduser zfs-provisioner` - Configure sudo on storage server: `echo "zfs-provisioner ALL=(ALL) NOPASSWD:/sbin/zfs *,/bin/chmod *" > /etc/sudoers.d/zfs-provisioner` - Generate an ssh keypair: `ssh-keygen` - Edit *values.yml* - hostAliases: IP and name of hypervisor or storage server - ssh.identities.id_rsa: generated private key - ssh.knownHosts: public machine key of storage server (*/etc/ssh/ssh_host_rsa_key.pub*) - Install ```sh kubectl create namespace zfs-provisioner helm repo add zfs-provisioner https://ccremer.github.io/kubernetes-zfs-provisioner helm install kubernetes-zfs-provisioner --namespace zfs-provisioner zfs-provisioner/kubernetes-zfs-provisioner -f values.yml ``` - Edit *storage-class.yml* and create the storage class - parameters - hostname: hostname of stroage server (make sure it resolves!) - parentDataset: used ZFS dataset `kubectl apply -f storage-class.yml`