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

Return to the regular view of this page.

Deploying CAREN

CAREN is implemented as a CAPI runtime extension provider, which means it can be deployed alongside all other CAPI providers in the same way using clusterctl. However, as CAREN is not yet integrated into clusterctl, it is necessary to first configure clusterctl to know about CAREN before we can deploy it.

Alternatively, you can install CAREN via Helm. Installing via Helm will provide some default ClusterClasses and allow for further customization of the CAREN deployment.

1 - Via clusterctl

Add the following to your clusterctl.yaml file, which is normally found at ${XDG_CONFIG_HOME}/cluster-api/clusterctl.yaml (or ${HOME}/cluster-api/clusterctl.yaml). See clusterctl configuration file for more details. If the providers section already exists, add the entry and omit the providers key from this block below:

providers:
  - name: "caren"
    url: "https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/releases/v0.23.1/runtime-extensions-components.yaml"
    type: "RuntimeExtensionProvider"

Now we can deploy CAREN and other necessary providers (update infrastructure providers for your needs), leaving all configuration values blank as we will specify these when creating clusters:

env CLUSTER_TOPOLOGY=true \
    EXP_RUNTIME_SDK=true  \
    EXP_CLUSTER_RESOURCE_SET=true  \
    NUTANIX_ENDPOINT= NUTANIX_PASSWORD= NUTANIX_USER=  \
    AWS_B64ENCODED_CREDENTIALS=  \
    clusterctl init \
      --infrastructure docker,nutanix:v1.4.0,aws \
      --addon helm \
      --runtime-extension caren:v0.23.1 \
      --wait-providers

2 - Via Helm

When installing CAREN via Helm, we need to deploy Cluster API core providers and any other required infrastructure providers to our management cluster via clusterctl:

env CLUSTER_TOPOLOGY=true \
    EXP_RUNTIME_SDK=true  \
    EXP_CLUSTER_RESOURCE_SET=true  \
    NUTANIX_ENDPOINT= NUTANIX_PASSWORD= NUTANIX_USER=  \
    AWS_B64ENCODED_CREDENTIALS=  \
    clusterctl init \
      --infrastructure docker,nutanix:v1.4.0,aws \
      --addon helm \
      --wait-providers

We can then deploy CAREN via Helm by adding the Helm repo and installing in the usual way via Helm: Add the CAREN Helm repo:

helm repo add caren https://nutanix-cloud-native.github.io/cluster-api-runtime-extensions-nutanix/helm
helm repo update caren
helm upgrade --install caren caren/cluster-api-runtime-extensions-nutanix \
  --version v0.23.1 \
  --namespace caren-system \
  --create-namespace \
  --wait \
  --wait-for-jobs