Skip to content
Snippets Groups Projects
vsphere-csi.md 8.41 KiB

vSphere CSI Driver

vSphere CSI driver allows you to provision volumes over a vSphere deployment. The Kubernetes historic in-tree cloud provider is deprecated and will be removed in future versions.

Prerequisites

The vSphere user for CSI driver requires a set of privileges to perform Cloud Native Storage operations. Follow the official guide to configure those.

Kubespray configuration

To enable vSphere CSI driver, uncomment the vsphere_csi_enabled option in group_vars/all/vsphere.yml and set it to true.

To set the number of replicas for the vSphere CSI controller, you can change vsphere_csi_controller_replicas option in group_vars/all/vsphere.yml.

You need to source the vSphere credentials you use to deploy your machines that will host Kubernetes.

Variable Required Type Choices Default Comment
external_vsphere_vcenter_ip TRUE string IP/URL of the vCenter
external_vsphere_vcenter_port TRUE string "443" Port of the vCenter API
external_vsphere_insecure TRUE string "true", "false" "true" set to "true" if the host above uses a self-signed cert
external_vsphere_user TRUE string User name for vCenter with required privileges (Can also be specified with the VSPHERE_USER environment variable)
external_vsphere_password TRUE string Password for vCenter (Can also be specified with the VSPHERE_PASSWORD environment variable)
external_vsphere_datacenter TRUE string Datacenter name to use
external_vsphere_kubernetes_cluster_id TRUE string "kubernetes-cluster-id" Kubernetes cluster ID to use
external_vsphere_version TRUE string "6.7u3" Vmware Vsphere version where located all VMs
external_vsphere_cloud_controller_image_tag TRUE string "latest" Kubernetes cluster ID to use
vsphere_syncer_image_tag TRUE string "v2.2.1" Syncer image tag to use
vsphere_csi_attacher_image_tag TRUE string "v3.1.0" CSI attacher image tag to use
vsphere_csi_controller TRUE string "v2.2.1" CSI controller image tag to use
vsphere_csi_controller_replicas TRUE integer 1 Number of pods Kubernetes should deploy for the CSI controller
vsphere_csi_liveness_probe_image_tag TRUE string "v2.2.0" CSI liveness probe image tag to use
vsphere_csi_provisioner_image_tag TRUE string "v2.1.0" CSI provisioner image tag to use
vsphere_csi_node_driver_registrar_image_tag TRUE string "v1.1.0" CSI node driver registrar image tag to use
vsphere_csi_driver_image_tag TRUE string "v1.0.2" CSI driver image tag to use
vsphere_csi_resizer_tag TRUE string "v1.1.0" CSI resizer image tag to use
vsphere_csi_aggressive_node_drain FALSE boolean false Enable aggressive node drain strategy
vsphere_csi_aggressive_node_unreachable_timeout FALSE int 300 Timeout till node will be drained when it in an unreachable state
vsphere_csi_aggressive_node_not_ready_timeout FALSE int 300 Timeout till node will be drained when it in not-ready state
vsphere_csi_namespace TRUE string "kube-system" vSphere CSI namespace to use; kube-system for backward compatibility, should be change to vmware-system-csi on the long run

Usage example