Docker

Cluster API requires that ClusterClasses referenced by a Cluster reside in the same namespace as the Cluster. To create the necessary ClusterClass, run:

kubectl apply --server-side \
  -f https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/releases/download/v0.15.0/docker-cluster-class.yaml

You can then create your cluster. First, let's list the required variables:

clusterctl generate cluster my-cluster \
  --from https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/releases/download/v0.15.0/docker-cluster-cilium-helm-addon.yaml \
  --list-variables

Export the required variables and any optional variables that you may want to set and then create your cluster:

clusterctl generate cluster my-cluster \
  --from https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/releases/download/v0.15.0/docker-cluster-cilium-helm-addon.yaml \
  --kubernetes-version=v1.31.0 \
  --worker-machine-count=1 \
  | kubectl apply --server-side -f -

To customize your cluster configuration prior to creation, generate the cluster definition to a file and edit it before applying:

clusterctl generate cluster my-cluster \
  --from https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/releases/download/v0.15.0/docker-cluster-cilium-helm-addon.yaml \
  --kubernetes-version=v1.31.0 >mycluster.yaml

# EDIT mycluster.yaml

kubectl apply --server-side -f mycluster.yaml