Azure Bootstrap
Prepare to deploy Kubernetes clusters
To create Kubernetes clusters, Konvoy uses Cluster API (CAPI) controllers. These controllers run on a Kubernetes cluster. To get started, you need a bootstrap cluster. By default, Konvoy creates a bootstrap cluster for you in a Docker container using the Kubernetes-in-Docker (KIND) tool.
Prerequisites
Before you begin, you must:
Complete the steps in Prerequisites.
Ensure the
dkp
binary can be found in your $PATH.
Bootstrap Cluster Lifecycle Services
Review Universal Configurations for all Infrastructure Providers regarding settings, flags and other choices and then begin bootstrapping.
Create a bootstrap cluster:
YAMLdkp create bootstrap --kubeconfig $HOME/.kube/config
Configuring an HTTP/HTTPS Proxy use
--http-proxy
,--https-proxy
, and--no-proxy
and their related values in this command for it to be successful.
Konvoy creates a bootstrap cluster using KIND as a library. Konvoy then deploys the following Cluster API providers on the cluster:
Konvoy waits until the controller-manager and webhook deployments of these providers are ready. List these deployments using this command:
kubectl get --all-namespaces deployments -l=clusterctl.cluster.x-k8s.io
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
capa-system capa-controller-manager 1/1 1 1 69s
capi-kubeadm-bootstrap-system capi-kubeadm-bootstrap-controller-manager 1/1 1 1 71s
capi-kubeadm-control-plane-system capi-kubeadm-control-plane-controller-manager 1/1 1 1 70s
capi-system capi-controller-manager 1/1 1 1 73s
cappp-system cappp-controller-manager 1/1 1 1 66s
capv-system capv-controller-manager 1/1 1 1 65s
capz-system capz-controller-manager 1/1 1 1 67s
cert-manager cert-manager 1/1 1 1 16m
cert-manager cert-manager-cainjector 1/1 1 1 16m
cert-manager cert-manager-webhook 1/1 1 1 16m
(Optional) Create Identity Secret for Azure
If your bootstrap cluster resides on a Virtual machine inside Azure, create an identity secret that uses the cappz-controller:
export AZURE_CLUSTER_IDENTITY_SECRET_NAME="cluster-identity-secret"
export CLUSTER_IDENTITY_NAME="cluster-identity"
export AZURE_CLUSTER_IDENTITY_SECRET_NAMESPACE="default"
kubectl create secret generic ${AZURE_CLUSTER_IDENTITY_SECRET_NAME} --from-literal=clientSecret=${AZURE_CLIENT_SECRET}