Connect cluster to control plane

The below document shares the step on how to connect your kubernetes cluster to the control plane. Make sure you are following the requirements before creating the cluster

If you already have a running cluster you can quickly get started using the below steps.

1. Creating you cluster on UI

  1. When you first login to the control plane URL you will be asked to add a cluster .
Set up your account

Set up your account

  1. Click on Add to add the cluster which will ask for few details
  • Name - Enter the name of your cluster. Name doesn't need to be the same name as your kubernetes cluster name rather its an indicator in the platform to distinguish resources that you will deploy via the cluster name. In this example I take the name as kind-kind
  • Cluster Type - Select cluster type corresponding to the cloud provider where you deployed your kubernetes cluster. Select generic if your requirements doesn't match any other option.
  • Region - Region where your kubernetes cluster is deployed. In case of generic cluster type, chose any region. For e.g. local
  1. Click on Connect so as to connect your kubernetes cluster with your control plane. This step involves running a script which is to be done whoever has kubectl access to your cluster. This step also requires kubectl and helm to be installed locally or from the workstation where you are accessing the kubernetes cluster.
  • The script will look something like this
bash <(curl -sSL https://raw.githubusercontent.com/truefoundry/infra-charts/main/scripts/bootstrap_cluster.sh) tenantName cliusterType clusterToken controlPlaneURL

Make sure you are running the script in the right kubectl context.

  1. When you will run the script, it will automatically show connected after 2 minutes
Cluster Connected

Cluster Connected

  1. Step 3 Ingress Setup will remain in a progressing phase if you are using a local cluster which doesn't give a load balancer IP.

📘

Ingress setup: local cluster

Without an explicit support of load balancer it is difficult to set up an ingress on a local kind or minikube cluster. For such scenarios, you can ignore Step 3.

  1. Next we will go ahead and complete the Step 4 by clicking Deploy .
  2. You can also select the option of Skip Optional Steps to skip deployment and ingress.

❗️

Error: ClusterModel id must be unique, truefoundry-k8s-cluster already exists.

This error can come up if you are trying to use a cluster name that is already being used by someone else. Cluster name must be unique across internet and upon submitting this would give the above error.

It doesn't matter if your actual kubernetes cluster name in the cloud provider is different then the cluster name you pass in the above form. The cluster name in the control plane URL is just a way to annotate your resources with it. It is not mandatory to keep the cluster name in the cloud and in the Truefoundry control plane same.