Out of tree (controller based) implementation for ironcore as a new provider.
About
The ironcore Out Of Tree provider implements the interface defined at MCM OOT driver.
Fundamental Design Principles:
Following are the basic principles kept in mind while developing the 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 ironcore and manage the resources corresponding to the machine objects.
Machine Controller Manager (MCM) deals with higher level objects such as machine-set and machine-deployment objects.
Support for a new provider
Steps to be followed while implementing/testing a new provider are mentioned here
Testing the IronCore OOT
Open terminal pointing to $GOPATH/src/github.com/gardener. Clone this repository.
Navigate to $GOPATH/src/github.com/ironcore-dev/machine-controller-manager-provider-ironcore.
In the MAKEFILE make sure $TARGET_KUBECONFIG points to the cluster where you wish to manage machines. $CONTROL_NAMESPACE represents the namespaces where MCM is looking for machine CR objects, and $CONTROL_KUBECONFIG points to the cluster which holds these machine CRs.
Run the machine controller (driver) using the command below.
make start
On the second terminal pointing to $GOPATH/src/github.com/gardener,
Package v1alpha1 contains API Schema definitions for the settings.gardener.cloud API group +groupName=settings.gardener.cloud +kubebuilder:object:generate=true
Package v1alpha1 contains API Schema definitions for the settings.gardener.cloud API group +groupName=settings.gardener.cloud +kubebuilder:object:generate=true