A deep dive into Cluster API and GitOps – hands-on
In this section, we’ll use Cluster API to provision a Kubernetes cluster in Azure by using the declarative approach with Argo CD on VMs.
First, let’s see what our environment looks like:
- Azure:
- Azure tenant ID
- Azure subscription
- Azure app registration with Contributor access to the subscription
- Azure Kubernetes Service (AKS)
- The necessary Azure infrastructure, including Virtual Machines Scale Sets (VMSS), virtual networks, and more
- Managed cluster – AKS:
- Argo CD running on a managed cluster
- Workload cluster – VMSS:
- Control plane
- Nodes
- Tools:
kubectl
clusterctl
az cli
helm
Initializing the management cluster
The clusterctl
command takes a list of providers to install as input. When executed for the first time, clusterctl init
automatically includes the cluster-api
core provider in the list. If not specified, it also adds the kubeadm
bootstrap and kubeadm
control plane providers...