Other branches of this repository may choose to track the upstream
Kubernetes Cluster-API Azure provider
In the future, we may align the master branch with the upstream project as it
stabilizes within the community.
How to deploy and run azure actuator
Azure cloud resources
Configure RBAC rules so the actuator can CRUD resources
$ az role definition update --role-definition azure-role.json
Deploy machine API plane with minikube
Install kvm
Depending on your virtualization manager you can choose a different driver.
In order to install kvm, you can run (as described in the drivers documentation):
For development purposes the azure machine controller itself will run out of the machine API stack.
Otherwise, docker images needs to be built, pushed into a docker registry and deployed withing the stack.
Deployed machine API plane (machine-api-controllers deployment) is (among other
controllers) running machine-controller. In order to run locally built one,
simply edit machine-api-controllers deployment and remove machine-controller container from it.
Build and run azure actuator outside of the cluster
$ go build -o bin/machine-controller-manager sigs.k8s.io/cluster-api-provider-azure/cmd/manager
Once done, you can access the cluster via kubectl. E.g.
$ kubectl --kubeconfig=kubeconfig get nodes
Deploy k8s cluster in Azure with machine API plane deployed
Generate bootstrap user data
To generate bootstrap script for machine api plane, simply run:
$ ./examples/generate-bootstrap.sh
The script requires AZURE_SUBSCRIPTION_ID, AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET environment variables to be set.
It generates config/bootstrap.yaml secret for master machine
under config/master-machine.yaml.
The generated bootstrap secret contains user data responsible for:
deployment of kube-apiserver
deployment of machine API plane with azure machine controllers
generating worker machine user data script secret deploying a node
deployment of worker machineset
Deploy machine API plane through machine manifest: