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