{"id":13846238,"url":"https://github.com/gardener/machine-controller-manager","last_synced_at":"2026-02-17T17:15:05.525Z","repository":{"id":37405655,"uuid":"115122274","full_name":"gardener/machine-controller-manager","owner":"gardener","description":"Declarative way of managing machines for Kubernetes cluster","archived":false,"fork":false,"pushed_at":"2025-12-18T15:20:07.000Z","size":101300,"stargazers_count":278,"open_issues_count":21,"forks_count":132,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-12-21T17:19:30.237Z","etag":null,"topics":["alicloud","aws","azure","cluster-autoscaler","gardener","gcp","kubernetes","openstack","packet"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gardener.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-12-22T14:26:25.000Z","updated_at":"2025-12-19T09:24:51.000Z","dependencies_parsed_at":"2023-11-08T10:41:18.146Z","dependency_job_id":"497e4ae8-9c12-4e6c-908a-2024cfb75726","html_url":"https://github.com/gardener/machine-controller-manager","commit_stats":null,"previous_names":[],"tags_count":99,"template":false,"template_full_name":null,"purl":"pkg:github/gardener/machine-controller-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gardener%2Fmachine-controller-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gardener%2Fmachine-controller-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gardener%2Fmachine-controller-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gardener%2Fmachine-controller-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gardener","download_url":"https://codeload.github.com/gardener/machine-controller-manager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gardener%2Fmachine-controller-manager/sbom","scorecard":{"id":418790,"data":{"date":"2025-08-11","repo":{"name":"github.com/gardener/machine-controller-manager","commit":"817afda1a2d222de5dc6b855d9c0855eaaa38b6f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.5,"checks":[{"name":"Code-Review","score":9,"reason":"Found 20/22 approved changesets -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":10,"reason":"29 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":8,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/build.yaml:69","Info: jobLevel 'contents' permission set to 'read': .github/workflows/build.yaml:21","Info: jobLevel 'contents' permission set to 'read': .github/workflows/build.yaml:28","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/build.yaml:29","Info: jobLevel 'contents' permission set to 'read': .github/workflows/build.yaml:61","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/non-release.yaml:13","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/non-release.yaml:14","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/non-release.yaml:24","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/release.yaml:18","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yaml:16","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yaml:28","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/release.yaml:30","Warn: no topLevel permission defined: .github/workflows/build.yaml:1","Warn: no topLevel permission defined: .github/workflows/non-release.yaml:1","Warn: no topLevel permission defined: .github/workflows/release.yaml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.59.2 not signed: https://api.github.com/repos/gardener/machine-controller-manager/releases/233493354","Warn: release artifact v0.59.1 not signed: https://api.github.com/repos/gardener/machine-controller-manager/releases/233474099","Warn: release artifact v0.59.0 not signed: https://api.github.com/repos/gardener/machine-controller-manager/releases/215387747","Warn: release artifact v0.58.0 not signed: https://api.github.com/repos/gardener/machine-controller-manager/releases/204349213","Warn: release artifact v0.57.2 not signed: https://api.github.com/repos/gardener/machine-controller-manager/releases/207391479","Warn: release artifact v0.59.2 does not have provenance: https://api.github.com/repos/gardener/machine-controller-manager/releases/233493354","Warn: release artifact v0.59.1 does not have provenance: https://api.github.com/repos/gardener/machine-controller-manager/releases/233474099","Warn: release artifact v0.59.0 does not have provenance: https://api.github.com/repos/gardener/machine-controller-manager/releases/215387747","Warn: release artifact v0.58.0 does not have provenance: https://api.github.com/repos/gardener/machine-controller-manager/releases/204349213","Warn: release artifact v0.57.2 does not have provenance: https://api.github.com/repos/gardener/machine-controller-manager/releases/207391479"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/gardener/machine-controller-manager/build.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yaml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/gardener/machine-controller-manager/build.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yaml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/gardener/machine-controller-manager/build.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yaml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/gardener/machine-controller-manager/build.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yaml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/gardener/machine-controller-manager/build.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yaml:83: update your workflow using https://app.stepsecurity.io/secureworkflow/gardener/machine-controller-manager/build.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/non-release.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/gardener/machine-controller-manager/non-release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/gardener/machine-controller-manager/release.yaml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:2","Warn: containerImage not pinned by hash: Dockerfile:10","Warn: containerImage not pinned by hash: Dockerfile:14","Warn: goCommand not pinned by hash: .ci/test:30","Warn: goCommand not pinned by hash: hack/generate-code:41","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   7 third-party GitHubAction dependencies pinned","Info:   0 out of   3 containerImage dependencies pinned","Info:   0 out of   2 goCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":5,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'master'","Info: 'force pushes' disabled on branch 'master'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'master'","Warn: 'stale review dismissal' is disabled on branch 'master'","Warn: required approving review count is 1 on branch 'master'","Info: codeowner review is required on branch 'master'","Warn: 'last push approval' is disabled on branch 'master'","Warn: no status checks found to merge onto branch 'master'","Info: PRs are required in order to make changes on branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/gardener/.github/SECURITY.md:1","Info: Found linked content: github.com/gardener/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/gardener/.github/SECURITY.md:1","Info: Found text in security policy: github.com/gardener/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":1,"reason":"SAST tool is not run on all commits -- score normalized to 1","details":["Warn: 3 commits out of 28 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-19T00:38:24.534Z","repository_id":37405655,"created_at":"2025-08-19T00:38:24.534Z","updated_at":"2025-08-19T00:38:24.534Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28661007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alicloud","aws","azure","cluster-autoscaler","gardener","gcp","kubernetes","openstack","packet"],"created_at":"2024-08-04T18:00:20.651Z","updated_at":"2026-01-22T10:01:32.828Z","avatar_url":"https://github.com/gardener.png","language":"Go","readme":"# machine-controller-manager\n\n[![REUSE status](https://api.reuse.software/badge/github.com/gardener/machine-controller-manager)](https://api.reuse.software/info/github.com/gardener/machine-controller-manager)\n[![Build](https://github.com/gardener/machine-controller-manager/actions/workflows/non-release.yaml/badge.svg)](https://github.com/gardener/machine-controller-manager/actions/workflows/non-release.yaml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/gardener/machine-controller-manager)](https://goreportcard.com/report/github.com/gardener/machine-controller-manager)\n\n**Note**\nOne can add support for a new cloud provider by following [Adding support for new provider](https://github.com/gardener/machine-controller-manager/blob/master/docs/development/cp_support_new.md). \n\n# Overview\n\nMachine Controller Manager aka MCM is a group of cooperative controllers that manage the lifecycle of the worker machines. It is inspired by the design of Kube Controller Manager in which various sub controllers manage their respective Kubernetes Clients. MCM gives you the following benefits:\n\n- seamlessly manage machines/nodes with a declarative API (of course, across different cloud providers)\n- integrate generically with the cluster autoscaler\n- plugin with tools such as the node-problem-detector\n- transport the immutability design principle to machine/nodes\n- implement e.g. rolling upgrades of machines/nodes\n\nMCM supports the following providers. This provider code is maintained externally (out-of-tree), and the links for the same are linked below: \n* [Alicloud](https://github.com/gardener/machine-controller-manager-provider-alicloud)\n* [AWS](https://github.com/gardener/machine-controller-manager-provider-aws)\n* [Azure](https://github.com/gardener/machine-controller-manager-provider-azure)\n* [Equinix Metal](https://github.com/gardener/machine-controller-manager-provider-equinix-metal)\n* [GCP](https://github.com/gardener/machine-controller-manager-provider-gcp)\n* [KubeVirt](https://github.com/gardener/machine-controller-manager-provider-kubevirt)\n* [Metal Stack](https://github.com/metal-stack/machine-controller-manager-provider-metal)\n* [Openstack](https://github.com/gardener/machine-controller-manager-provider-openstack)\n* [V Sphere](https://github.com/gardener/machine-controller-manager-provider-vsphere)\n* [Yandex](https://github.com/gardener/machine-controller-manager-provider-yandex)\n\nIt can easily be extended to support other cloud providers as well.\n\nExample of managing a machine:\n```\nkubectl create/get/delete machine vm1\n```\n\n## Key terminologies\n\nNodes/Machines/VMs are different terminologies used to represent similar things. We use these terms in the following way\n\n1. VM: A virtual machine running on any cloud provider. It could also refer to a physical machine (PM) in case of a bare metal setup.\n1. Node: Native kubernetes node objects. The objects you get to see when you do a *\"kubectl get nodes\"*. Although nodes can be either physical/virtual machines, for the purposes of our discussions it refers to a VM.\n1. Machine: A VM that is provisioned/managed by the Machine Controller Manager.\n\n# Design of Machine Controller Manager\n\nThe design of the Machine Controller Manager is influenced by the Kube Controller Manager, wherein multiple sub-controllers are used to manage the Kubernetes clients.\n\n## Design Principles\n\nIt's designed to run in the master plane of a Kubernetes cluster. It follows the best principles and practices of writing controllers, including, but not limited to:\n\n- Reusing code from kube-controller-manager\n- leader election to allow HA deployments of the controller\n- `workqueues` and multiple thread-workers\n- `SharedInformers` that limit to minimum network calls, de-serialization and provide helpful create/update/delete events for resources\n- rate-limiting to allow back-off in case of network outages and general instability of other cluster components\n- sending events to respected resources for easy debugging and overview\n- Prometheus metrics, health and (optional) profiling endpoints\n\n## Objects of Machine Controller Manager\n\nMachine Controller Manager reconciles a set of Custom Resources namely `MachineDeployment`, `MachineSet` and `Machines` which are managed \u0026 monitored by their controllers MachineDeployment Controller, MachineSet Controller, Machine Controller respectively along with another cooperative controller called the Safety Controller.\n\nMachine Controller Manager makes use of 4 CRD objects and 1 Kubernetes secret object to manage machines. They are as follows:\n\n| Custom Resource Object | Description |\n| --- | --- |\n| `MachineClass`| A `MachineClass` represents a template that contains cloud provider specific details used to create machines.|\n| `Machine`| A `Machine` represents a VM which is backed by the cloud provider.|\n| `MachineSet` | A `MachineSet` ensures that the specified number of `Machine` replicas are running at a given point of time.|\n| `MachineDeployment`| A `MachineDeployment` provides a declarative update for `MachineSet` and `Machines`.|\n| `Secret`| A `Secret` here is a Kubernetes secret that stores cloudconfig (initialization scripts used to create VMs) and cloud specific credentials.|\n\nSee [here](docs/documents/apis.md) for CRD API Documentation\n\n\n## Components of Machine Controller Manager\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eController\u003c/th\u003e\n            \u003cth\u003eDescription\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eMachineDeployment controller\u003c/td\u003e\n            \u003ctd\u003eMachine Deployment controller reconciles the \u003ccode\u003eMachineDeployment\u003c/code\u003e objects and manages the lifecycle of \u003ccode\u003eMachineSet\u003c/code\u003e objects. \u003ccode\u003eMachineDeployment\u003c/code\u003e consumes provider specific \u003ccode\u003eMachineClass\u003c/code\u003e in its \u003ccode\u003espec.template.spec\u003c/code\u003e which is the template of the VM spec that would be spawned on the cloud by MCM.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eMachineSet controller\u003c/td\u003e\n            \u003ctd\u003eMachineSet controller reconciles the \u003ccode\u003eMachineSet\u003c/code\u003e objects and manages the lifecycle of \u003ccode\u003eMachine\u003c/code\u003e objects.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eSafety controller\u003c/td\u003e\n            \u003ctd\u003eThere is a Safety Controller responsible for handling the unidentified or unknown behaviours from the cloud providers. Safety Controller:\n                \u003cul\u003e\n                    \u003cli\u003e\n                        freezes the MachineDeployment controller and MachineSet controller if the number of \u003ccode\u003eMachine\u003c/code\u003e objects goes beyond a certain threshold on top of \u003ccode\u003eSpec.replicas\u003c/code\u003e. It can be configured by the flag \u003ccode\u003e--safety-up\u003c/code\u003e or \u003ccode\u003e--safety-down\u003c/code\u003e and also \u003ccode\u003e--machine-safety-overshooting-period\u003c/code\u003e.\n                    \u003c/li\u003e\n                    \u003cli\u003e\n                        freezes the functionality of the MCM if either of the \u003ccode\u003etarget-apiserver\u003c/code\u003e or the \u003ccode\u003econtrol-apiserver\u003c/code\u003e is not reachable.\n                    \u003c/li\u003e\n                    \u003cli\u003e\n                        unfreezes the MCM automatically once situation is resolved to normal. A \u003ccode\u003efreeze\u003c/code\u003e label is applied on \u003ccode\u003eMachineDeployment\u003c/code\u003e/\u003ccode\u003eMachineSet\u003c/code\u003e to enforce the freeze condition.\n                    \u003c/li\u003e\n                \u003c/ul\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\nAlong with the above Custom Controllers and Resources, MCM requires the `MachineClass` to use K8s `Secret` that stores cloudconfig (initialization scripts used to create VMs) and cloud specific credentials. All these controllers work in a co-operative manner. They form a parent-child relationship with `MachineDeployment` Controller being the grandparent, `MachineSet` Controller being the parent, and `Machine` Controller being the child.\n\n\n## Development\n\nTo start using or developing the Machine Controller Manager, see the documentation in the `/docs` repository.\n\n## FAQ\nAn FAQ is available [here](docs/faq.md).\n\n## cluster-api Implementation\n- `cluster-api` branch of machine-controller-manager implements the machine-api aspect of the [cluster-api project](https://github.com/kubernetes-sigs/cluster-api).\n- Link: https://github.com/gardener/machine-controller-manager/tree/cluster-api\n- Once the cluster-api project becomes stable, we may make `master` branch of MCM as well cluster-api compliant, with well-defined migration notes.\n","funding_links":[],"categories":["Operators vs Controllers","Go"],"sub_categories":["Multi-Cluster"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgardener%2Fmachine-controller-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgardener%2Fmachine-controller-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgardener%2Fmachine-controller-manager/lists"}