From 14df9fdd8a35332ee477c0e71f86d96e6b41a26d Mon Sep 17 00:00:00 2001 From: salasberryfin Date: Wed, 12 Jun 2024 16:04:06 +0200 Subject: [PATCH] docs: add provider section with examples --- docs/reference-guides/providers/capa.md | 57 ++++++++++++++++++ .../providers/docker_kubeadm.md | 58 +++++++++++++++++++ .../{providers.md => providers/supported.md} | 2 +- sidebars.js | 11 +++- 4 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 docs/reference-guides/providers/capa.md create mode 100644 docs/reference-guides/providers/docker_kubeadm.md rename docs/reference-guides/{providers.md => providers/supported.md} (98%) diff --git a/docs/reference-guides/providers/capa.md b/docs/reference-guides/providers/capa.md new file mode 100644 index 00000000..999e5a6e --- /dev/null +++ b/docs/reference-guides/providers/capa.md @@ -0,0 +1,57 @@ +--- +sidebar_position: 0 +--- + +# Create & import a cluster using CAPI provider for AWS + +Remember that most Cluster API Providers are upstream projects maintained by the Kubernetes open-source community. + +## Prerequisites + +- Rancher Manager cluster with Rancher Turtles installed +- Cluster API providers installed for your scenario - we'll be using the AWS infrastructure in these instructions - you can find a guide on how to install a provider using the `CAPIProvider` resource [here](../../tasks/capi-operator/basic_cluster_api_provider_installation.md) +- **clusterctl** CLI - see the [releases](https://github.com/kubernetes-sigs/cluster-api/releases) + +## Create Your Cluster Definition + +To generate the YAML for the cluster, do the following (assuming the Docker infrastructure provider is being used): + +1. Open a terminal and run the following: + +```bash +export KUBERNETES_VERSION=v1.28 +export AWS_REGION=eu-west-2 +export AWS_INSTANCE_TYPE=t3.medium + +clusterctl generate cluster cluster1 \ +--from https://raw.githubusercontent.com/rancher-sandbox/rancher-turtles-fleet-example/templates/capa.yaml \ +> cluster1.yaml +``` +2. View **cluster1.yaml** to ensure there are no tokens. You can make any changes you want as well. + +> The Cluster API quickstart guide contains more detail. Read the steps related to this section [here](https://cluster-api.sigs.k8s.io/user/quick-start.html#required-configuration-for-common-providers). + +3. Create the cluster using kubectl + +```bash +kubectl create -f cluster1.yaml +``` + +## Mark Namespace or Cluster for Auto-Import + +To automatically import a CAPI cluster into Rancher Manager, there are 2 options: + +1. Label a namespace so all clusters contained in it are imported. +2. Label an individual cluster definition so that it's imported. + +Labeling a namespace: + +```bash +kubectl label namespace default cluster-api.cattle.io/rancher-auto-import=true +``` + +Labeling an individual cluster definition: + +```bash +kubectl label cluster.cluster.x-k8s.io cluster1 cluster-api.cattle.io/rancher-auto-import=true +``` diff --git a/docs/reference-guides/providers/docker_kubeadm.md b/docs/reference-guides/providers/docker_kubeadm.md new file mode 100644 index 00000000..717d5f32 --- /dev/null +++ b/docs/reference-guides/providers/docker_kubeadm.md @@ -0,0 +1,58 @@ +--- +sidebar_position: 0 +--- + +# Create & import a cluster using CAPI provider for Docker + +This section will guide you through creating a cluster and importing it into Rancher Manager using kubectl. + +## Prerequisites + +- Rancher Manager cluster with Rancher Turtles installed +- Cluster API providers installed for your scenario - we'll be using the Docker infrastructure and Kubeadm bootstrap/control plane providers in these instructions - you can find a guide on how to install a provider using the `CAPIProvider` resource [here](../../tasks/capi-operator/basic_cluster_api_provider_installation.md) +- **clusterctl** CLI - see the [releases](https://github.com/kubernetes-sigs/cluster-api/releases) + +## Create Your Cluster Definition + +To generate the YAML for the cluster, do the following (assuming the Docker infrastructure provider is being used): + +1. Open a terminal and run the following: + +```bash +export CONTROL_PLANE_MACHINE_COUNT=1 +export WORKER_MACHINE_COUNT=1 +export KUBERNETES_VERSION=v1.26.4 + +clusterctl generate cluster cluster1 \ +--from https://raw.githubusercontent.com/rancher-sandbox/rancher-turtles-fleet-example/templates/docker-kubeadm.yaml \ +> cluster1.yaml +``` + +2. View **cluster1.yaml** to ensure there are no tokens. You can make any changes you want as well. + +> The Cluster API quickstart guide contains more detail. Read the steps related to this section [here](https://cluster-api.sigs.k8s.io/user/quick-start.html#required-configuration-for-common-providers). + +3. Create the cluster using kubectl + +```bash +kubectl create -f cluster1.yaml +``` + +## Mark Namespace or Cluster for Auto-Import + +To automatically import a CAPI cluster into Rancher Manager, there are 2 options: + +1. Label a namespace so all clusters contained in it are imported. +2. Label an individual cluster definition so that it's imported. + +Labeling a namespace: + +```bash +kubectl label namespace default cluster-api.cattle.io/rancher-auto-import=true +``` + +Labeling an individual cluster definition: + +```bash +kubectl label cluster.cluster.x-k8s.io cluster1 cluster-api.cattle.io/rancher-auto-import=true +``` diff --git a/docs/reference-guides/providers.md b/docs/reference-guides/providers/supported.md similarity index 98% rename from docs/reference-guides/providers.md rename to docs/reference-guides/providers/supported.md index c1647487..f99cdefd 100644 --- a/docs/reference-guides/providers.md +++ b/docs/reference-guides/providers/supported.md @@ -2,7 +2,7 @@ sidebar_position: 0 --- -# CAPI Providers +# Supported CAPI Providers Remember that most Cluster API Providers are upstream projects maintained by the Kubernetes open-source community. diff --git a/sidebars.js b/sidebars.js index 39a4af44..603fa18c 100644 --- a/sidebars.js +++ b/sidebars.js @@ -83,7 +83,16 @@ const sidebars = { ] }, 'reference-guides/rancher-turtles-chart/values', - 'reference-guides/providers', + { + type: 'category', + label: 'CAPI Providers', + collapsed: true, + items: [ + 'reference-guides/providers/supported', + 'reference-guides/providers/docker_kubeadm', + 'reference-guides/providers/capa', + ] + }, ], }, {