The compatible versions of Core CAPI / clusterctl and CAPVCD are listed in the table below:
CAPVCD Version | Core CAPI/clusterctl Version |
---|---|
main | v1.5.4 |
1.3.z | v1.5.4 |
1.2.z | v1.4.0 |
1.1.z | v1.4.0 |
1.0.z | v1.1.3 |
Setup instructions vary across versions. Please refer to CLUSTERCTL.md
from the appropriate branch for setup instructions:
- Run the below command to initialize the management cluster with the Cluster API and the associated provider for VMware Cloud Director. Ensure the version interop between CAPVCD, Core CAPI, and Clusterctl are correct from the interop version table
- For CAPVCD
main
, useclusterctl init --core cluster-api:v1.5.4 -b kubeadm:v1.5.4 -c kubeadm:v1.5.4 -i vcd:v1.3.0
- For CAPVCD
- Apply CRS definitions to ensure CNI, CPI and CSI are automatically installed on the workload clusters.
- Copy clusterctl.yaml to
~/.cluster-api/clusterctl.yaml
- Fill out the values for the environment variables in
~/.cluster-api/clusterctl.yaml
.- One of the variables is RefreshToken. Refer to How to create refreshToken (or) API token in Cloud Director.
- Refer to the script to get Kubernetes, etcd, coredns versions from TKG OVA to fill in few variables. Note that you may skip filling in few of these variables if you decide to use the existing clusterctl template flavors.
- If you decide to not use one of the existing clusterctl template flavors, please refer to the TKGm release matrix on the
main
branch
- Generate the CAPI manifest file. Please check the templates folder for relevant CRS versions.
clusterctl generate cluster <clusterName> -f v1.28.4-crs > <clusterName>.yaml
.
- Create the workload cluster by applying it on the (parent) management cluster.
kubectl apply -f <clusterName>.yaml
- Apply CRS labels and enable the resultant add-ons like CPI, CSI to access VCD resources
-
All of the templates to generate the cluster manifests are located at
templates
directory under the root of the github repository. -
All the flavors listed support only v1beta1 API versions of CAPVCD and Core CAPI, and they each have their own etcd/dns versions prepopulated
-
Currently supported flavors:
- v1.20.8
- v1.24.10
- v1.24.17
- v1.25.7
- v1.25.13
- v1.26.8
- v1.26.11
- v1.27.5
- v1.27.8
- v1.28.4
Please ensure your
~/.cluster-api/clusterctl.yaml
hasVCD_TEMPLATE_NAME
matching the correct versions of Kubernetes. For example, ifVCD_TEMPLATE_NAME=Ubuntu 20.04 and Kubernetes v1.28.4+vmware.1
then usev1.28.4-crs
flavor. -
It is strongly recommended to use
v1.y.z-crs
flavors to ensure CNI, CPI and CSI are automatically installed on the workload clusters. CNI and CPI are required add-ons for the cluster creation to be successful.