diff --git a/docs/book/src/topics/addons.md b/docs/book/src/topics/addons.md index dfd8cd504..9a8964a5a 100644 --- a/docs/book/src/topics/addons.md +++ b/docs/book/src/topics/addons.md @@ -1,6 +1,6 @@ # Overview -This section provides examples for addons for self-managed clusters. +This section documents addons for self-managed clusters. ```admonish note Currently, all addons are installed via @@ -12,37 +12,82 @@ For more information, please refer to the [CAAPH Quick Start](https://github.com/kubernetes-sigs/cluster-api-addon-provider-helm/blob/main/docs/quick-start.md). ``` -# CNI +```admonish note +The [Linode Cloud Controller Manager](#linode-cloud-controller-manager) and +[Linode Blockstorage CSI Driver](#linode-blockstorage-csi-driver) addons require the `ClusterResourceSet` feature flag +to be set on the management cluster. -```admonish warning -By default, the CNI plugin is not installed for self-managed clusters. +This feature flag is enabled by default in the KIND cluster created by `make tilt-cluster`. -To install a CNI, ensure that your `Cluster` is labeled with one of the below CNI options. +For more information, please refer to [the ClusterResourceSet page in The Cluster API Book](https://cluster-api.sigs.k8s.io/tasks/experimental-features/cluster-resource-set). ``` -## Cilium + +## Contents + + + +- [CNI](#cni) + - [Cilium](#cilium) +- [CCM](#ccm) + - [Linode Cloud Controller Manager](#linode-cloud-controller-manager) +- [Container Storage](#container-storage) + - [Linode Blockstorage CSI Driver](#linode-blockstorage-csi-driver) + + + +## CNI + +In order for pod networking to work properly, a Container Network Interface (CNI) must be installed. + +### Cilium + +```admonish success title="" +Installed by default +``` To install [Cilium](https://cilium.io/) on a self-managed cluster, simply apply the `cni: cilium` label on the `Cluster` resource if not already present. ```bash -kubectl label cluster $CLUSTER_NAME cni=cilium +kubectl label cluster $CLUSTER_NAME cni=cilium --overwrite ``` -Cilium will then be automatically installed via CAAPH into the labeled self-managed cluster. +Cilium will then be automatically installed via CAAPH into the labeled cluster. -# CCM +## CCM In order for the `InternalIP` and `ExternalIP` of the provisioned Nodes to be set correctly, -the [linode-cloud-controller-manager (linode-ccm)](https://github.com/linode/linode-cloud-controller-manager) -must be installed into provisioned clusters. +a Cloud Controller Manager (CCM) must be installed. + +### Linode Cloud Controller Manager + +```admonish success title="" +Installed by default +``` + +To install the [linode-cloud-controller-manager (linode-ccm)](https://github.com/linode/linode-cloud-controller-manager) +on a self-managed cluster, simply apply the `ccm: linode` +label on the `Cluster` resource if not already present. + +```bash +kubectl label cluster $CLUSTER_NAME ccm=linode --overwrite +``` + +The linode-ccm will then be automatically installed via CAAPH into the labeled cluster. + +## Container Storage + +In order for stateful workloads to create PersistentVolumes (PVs), a storage driver must be installed. +### Linode Blockstorage CSI Driver -To install the linode-ccm on a self-managed cluster, simply apply the `ccm: linode` +To install the [linode-blockstorage-csi-driver](https://github.com/linode/linode-blockstorage-csi-driver) +on a self-managed cluster, simply apply the `csi-driver: linode` label on the `Cluster` resource if not already present. ```bash -kubectl label cluster $CLUSTER_NAME ccm=linode +kubectl label cluster $CLUSTER_NAME csi-driver=linode --overwrite ``` -The linode-ccm will then be automatically installed via CAAPH into the labeled self-managed cluster. \ No newline at end of file +The linode-blockstorage-csi-driver will then be automatically installed via CAAPH into the labeled cluster.