Out of tree (controller based) implementation for Azure as a new provider.
About
The Azure Out Of Tree provider implements the interface defined at MCM OOT driver.
Fundamental Design Principles:
Following are the basic development principles for this external plugin:
Communication between this Machine Controller (MC) and Machine Controller Manager (MCM) is achieved using the Kubernetes native declarative approach.
Machine Controller (MC) behaves as the controller used to interact with the cloud provider Microsoft Azure and manage the VMs corresponding to the machine objects.
Machine Controller Manager (MCM) deals with higher level objects such as MachineSet and MachineDeployment objects.
Usage of the Azure OOT
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,