This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Creating clusters from example ClusterClasses

CAREN currently supports clusters for the providers below (follow the links below to see instructions on how to use CAREN with these providers).

1 - AWS

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.23.1/aws-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.23.1/aws-cluster-cilium-helm-addon.yaml \
  --list-variables

Export the required variables and any optional variables that you may want to set:

export AMI_LOOKUP_BASEOS=<value> \
       AMI_LOOKUP_FORMAT=<value> \
       AMI_LOOKUP_ORG=<value>

And create your cluster:

clusterctl generate cluster my-cluster \
  --from https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/releases/download/v0.23.1/aws-cluster-cilium-helm-addon.yaml \
  --kubernetes-version=v1.31.2 \
  --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.23.1/aws-cluster-cilium-helm-addon.yaml \
  --kubernetes-version=v1.31.2 >mycluster.yaml

# EDIT mycluster.yaml

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

2 - Nutanix

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.23.1/nutanix-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.23.1/nutanix-cluster-cilium-helm-addon.yaml \
  --list-variables

Export the required variables and any optional variables that you may want to set:

export CONTROL_PLANE_ENDPOINT_IP=<value> \
       DOCKER_HUB_PASSWORD=<value> \
       DOCKER_HUB_USERNAME=<value> \
       NUTANIX_ENDPOINT=<value> \
       NUTANIX_INSECURE=<value> \
       NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME=<value> \
       NUTANIX_PASSWORD=<value> \
       NUTANIX_PORT=<value> \
       NUTANIX_PRISM_ELEMENT_CLUSTER_NAME=<value> \
       NUTANIX_STORAGE_CONTAINER_NAME=<value> \
       NUTANIX_SUBNET_NAME=<value> \
       NUTANIX_USER=<value>

And create your cluster:

clusterctl generate cluster my-cluster \
  --from https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/releases/download/v0.23.1/nutanix-cluster-cilium-helm-addon.yaml \
  --kubernetes-version=v1.31.2 \
  --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.23.1/nutanix-cluster-cilium-helm-addon.yaml \
  --kubernetes-version=v1.31.2 >mycluster.yaml

# EDIT mycluster.yaml

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

3 - 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.23.1/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.23.1/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.23.1/docker-cluster-cilium-helm-addon.yaml \
  --kubernetes-version=v1.31.2 \
  --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.23.1/docker-cluster-cilium-helm-addon.yaml \
  --kubernetes-version=v1.31.2 >mycluster.yaml

# EDIT mycluster.yaml

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