Out of tree (controller based) implementation for Azure
as a new provider.
The Azure Out Of Tree provider implements the interface defined at MCM OOT driver.
Following are the basic development principles for this external plugin:
MachineSet
and MachineDeployment
objects.Open terminal pointing to $GOPATH/src/github.com/gardener
. Clone this repository.
Navigate to $GOPATH/src/github.com/gardener/machine-controller-manager-provider-azure
.
In the MAKEFILE
make sure that
$TARGET_KUBECONFIG
points to the kubeconfig file of the cluster where you wish to manage machines. This points to the shoot cluster in the context of Gardener.$CONTROL_KUBECONFIG
points to the kubeconfig file of the cluster which holds these machine CRs. This points to the seed cluster in the context of Gardener.$CONTROL_NAMESPACE
represents the namespaces where MCM is looking for machine CR objects. Run the machine controller (driver) using the command below.
make start
On the second terminal pointing to $GOPATH/src/github.com/gardener
,
git clone git@github.com:gardener/machine-controller-manager.git
cd machine-controller-manager
kubectl apply -f kubernetes/crds.yaml
make start
On the third terminal pointing to $GOPATH/src/github.com/gardener/machine-controller-manager-provider-azure
Fill in the object files given below and deploy them as described below:
Deploy kubernetes secret
for Azure.
kubectl apply -f kubernetes/secret.yaml
Deploy MachineClass
kubectl apply -f kubernetes/machine-class.yaml
Deploy Machine
object and make sure it joins the cluster successfully.
kubectl apply -f kubernetes/machine.yaml
Once machine joins, you can test by deploying a machine-deployment.
Deploy the MachineDeployment
object and make sure it joins the cluster successfully.
kubectl apply -f kubernetes/machine-deployment.yaml
Make sure to delete both the Machine
and MachineDeployment
object after use.
kubectl delete -f kubernetes/machine.yaml
kubectl delete -f kubernetes/machine-deployment.yaml