vSphere Cloud Provider Interface (CPI)
vSphere Cloud Provider Interface handles cloud specific functionality for VMware vSphere infrastructure running on Kubernetes.
Introduction
This chart deploys all components required to run the external vSphere CPI as described on it's GitHub page.
Prerequisites
- Has been tested on Kubernetes 1.13.X+
- Assumes your Kubernetes cluster has been configured to use the external cloud provider. Please take a look at configuration guidelines located in the Kubernetes documentation.
Installing the Chart using Helm 3.0+
In Helm 3.0+, the stable charts repo isn't enabled by default because there is an effort to move the charts repo into a distributed model. To enable the stable charts, you can run the following command:
$ helm repo add stable https://kubernetes-charts.storage.googleapis.com/
$ helm repo update
Then to install this chart and by providing vCenter information/credentials, run the following command:
$ helm install vsphere-cpi stable/vsphere-cpi --set config.enabled=true --set config.vcenter=<vCenter IP> --set config.username=<vCenter Username> --set config.password=<vCenter Password> --set config.datacenter=<vCenter Datacenter>
Tip
: List all releases using
helm list --all
If you want to provide your own vsphere.conf and Kubernetes secret vsphere-cpi in the kube-system namespace (for example, to handle multple datacenters/vCenters or for using zones), you can learn more about the vsphere.conf and vsphere-cpi secret by reading the following documentation and then running the following command:
$ helm install vsphere-cpi stable/vsphere-cpi
Installing the Chart using Helm 2.X
To install this chart with the release name vsphere-cpi and by providing a vCenter information/credentials, run the following command:
$ helm install stable/vsphere-cpi --name vsphere-cpi --set config.enabled=true --set config.vcenter=<vCenter IP> --set config.username=<vCenter Username> --set config.password=<vCenter Password> --set config.datacenter=<vCenter Datacenter>
If you provide your own vsphere.conf and Kubernetes secret vsphere-cpi in the kube-system namespace, then deploy the chart running the following command:
$ helm install stable/vsphere-cpi --name vsphere-cpi
Uninstalling the Chart
To uninstall/delete the vsphere-cpi deployment:
$ helm delete vsphere-cpi
The command removes all the Kubernetes components associated with the chart and deletes the release.
Tip
: To permanently remove the release using Helm v2.X, run
helm delete --purge vsphere-cpi
Configuration
The following table lists the configurable parameters of the vSphere CPI chart and their default values.
| Parameter | Description | Default |
|---|---|---|
config.enabled |
Create a simple single VC config | false |
config.vcenter |
FQDN or IP of vCenter | vcenter.local |
config.username |
vCenter username | user |
config.password |
vCenter password | pass |
config.datacenter |
Datacenters within the vCenter | dc |
rbac.create |
Create roles and role bindings | true |
serviceAccount.create |
Create the service account | true |
serviceAccount.name |
Name of the created service account | cloud-controller-manager |
daemonset.annotations |
Annotations for CPI pod | nil |
daemonset.image |
Image for vSphere CPI | gcr.io/cloud-provider-vsphere/ |
| vsphere-cloud-controller-manager | ||
daemonset.tag |
Tag for vSphere CPI | latest |
daemonset.pullPolicy |
CPI image pullPolicy | IfNotPresent |
daemonset.dnsPolicy |
CPI dnsPolicy | ClusterFirst |
daemonset.cmdline.logging |
Logging level | 2 |
daemonset.cmdline.cloudConfig.dir |
vSphere conf directory | /etc/cloud |
daemonset.cmdline.cloudConfig.file |
vSphere conf filename | vsphere.conf |
daemonset.replicaCount |
Node resources | [] |
daemonset.resources |
Node resources | [] |
daemonset.podAnnotations |
Annotations for CPI pod | nil |
daemonset.podLabels |
Labels for CPI pod | nil |
service.enabled |
Enabled the CPI API endpoint | false |
service.annotations |
Annotations for API service | nil |
service.type |
Service type | ClusterIP |
service.loadBalancerSourceRanges |
list of IP CIDRs allowed access | [] |
service.endpointPort |
External accessible port | 43001 |
service.targetPort |
Internal API port | 43001 |
ingress.enabled |
Allow external traffic access | false |
ingress.annotations |
Annotations for Ingress | nil |
Specify each parameter using the --set key=value[,key=value] argument to helm install using Helm v3.X. For example,
$ helm install vsphere-cpi \
stable/vsphere-cpi \
--set daemonset.pullPolicy=Always
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart.
Image tags
vSphere CPI offers a multitude of tags for the various components used in this chart.