kubectl
CLI installed locally.- vSphere instance version
6.7.0
or higher. - vSphere account with appropriate privileges.
- Image template.
- vSphere network with DHCP enabled.
You can use pre-buit image templates from CAPV project or build your own.
When building your own image make sure that vmware tools and cloud-init are installed and properly configured.
You can follow official open-vm-tools guide on how to correctly install vmware-tools.
When setting up cloud-init you can refer to official docs and specifically vmware datasource docs for extended information regarding cloud-init on vSphere.
When creating network make sure that it has DHCP service.
Also make sure that the part of your network is out of DHCP range (e.g. network 172.16.0.0/24 with DHCP range 172.16.0.100-172.16.0.254). This is needed to make sure that LB services will not create any IP conflicts in the network.
To function properly the user assigned to vSphere provider should be able to manipulate vSphere resources. The following is the general overview of the required privileges:
Virtual machine
- full permissions are requiredNetwork
-Assign network
is sufficientDatastore
- it should be possible for user to manipulate virtual machine files and metadata
In addition to that specific CSI driver permissions are required see the official doc to get more information on CSI specific permissions.
Follow the vSphere cluster parameters guide to setup mandatory parameters for vSphere clusters.
Follow the vSphere machine parameters guide if you want to setup/modify the default machine parameters.
Follow the Hosted control plane guide to deploy hosted control plane cluster on vSphere.