No description
  • Go 86.5%
  • Makefile 7.7%
  • Smarty 3.8%
  • Dockerfile 1.5%
  • Shell 0.5%
Find a file
dependabot[bot] 70293d9818
Bump golang.org/x/net from 0.33.0 to 0.36.0 (#459)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.33.0 to 0.36.0.
- [Commits](https://github.com/golang/net/compare/v0.33.0...v0.36.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-24 17:18:33 +01:00
.github Bump MCM to v0.55.1 (#442) 2024-12-19 15:39:57 +01:00
.reuse Make project REUSE compliant (#277) 2023-11-29 15:03:42 +01:00
cmd/machine-controller Fix wrong CSI driver name reference (#275) 2023-11-29 16:07:11 +01:00
docs Add api reference doc generation (#140) 2023-04-28 14:04:47 +02:00
hack Make project REUSE compliant (#277) 2023-11-29 15:03:42 +01:00
kubernetes Rename project to machine-controller-manager-provider-ironcore (#272) 2023-11-28 12:52:05 +01:00
LICENSES Make project REUSE compliant (#277) 2023-11-29 15:03:42 +01:00
pkg Bump MCM to v0.55.1 (#442) 2024-12-19 15:39:57 +01:00
.gitignore Various improvements (#27) 2022-12-14 09:56:10 +01:00
.golangci.yaml Refactor ProviderSpec (#63) 2023-02-07 13:51:59 +01:00
CODE_OF_CONDUCT.md Rename project to machine-controller-manager-provider-ironcore (#272) 2023-11-28 12:52:05 +01:00
CODEOWNERS Rename project to machine-controller-manager-provider-ironcore (#272) 2023-11-28 12:52:05 +01:00
CONTRIBUTING.md Rename project to machine-controller-manager-provider-ironcore (#272) 2023-11-28 12:52:05 +01:00
Dockerfile Bump golang from 1.23.4 to 1.23.5 (#447) 2025-01-22 17:28:10 +01:00
go.mod Bump golang.org/x/net from 0.33.0 to 0.36.0 (#459) 2025-03-24 17:18:33 +01:00
go.sum Bump golang.org/x/net from 0.33.0 to 0.36.0 (#459) 2025-03-24 17:18:33 +01:00
LICENSE Initial commit 2022-11-14 10:48:07 +01:00
Makefile Bump MCM to v0.55.1 (#442) 2024-12-19 15:39:57 +01:00
README.md Fix wrong CSI driver name reference (#275) 2023-11-29 16:07:11 +01:00

machine-controller-manager-provider-ironcore

REUSE status Go Report Card GitHub License PRs Welcome

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

  1. Open terminal pointing to $GOPATH/src/github.com/gardener. Clone this repository.

  2. 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
      
  3. On the second terminal pointing to $GOPATH/src/github.com/gardener,

    • Clone the latest MCM code
      git clone git@github.com:gardener/machine-controller-manager.git
      
    • Navigate to the newly created directory.
      cd machine-controller-manager
      
    • Deploy the required CRDs from the machine-controller-manager repo,
      kubectl apply -f kubernetes/crds.yaml
      
    • Run the machine-controller-manager in the cmi-client branch
      make start
      
  4. On the third terminal pointing to $GOPATH/src/github.com/gardener/machine-controller-manager-provider-ironcore

    • Fill in the object files given below and deploy them as described below.
    • Deploy the machine-class
      kubectl apply -f kubernetes/machine-class.yaml
      
    • Deploy the kubernetes secret if required.
      kubectl apply -f kubernetes/secret.yaml
      
    • Deploy the 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 machine-deployment object and make sure it joins the cluster successfully.
      kubectl apply -f kubernetes/machine-deployment.yaml
      
    • Make sure to delete both the machine and machine-deployment object after use.
      kubectl delete -f kubernetes/machine.yaml
      kubectl delete -f kubernetes/machine-deployment.yaml