openmcp-project / openmcp-project/backlog
Task: Implement Cluster Provider CAPI
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 1
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Understand the Task
Description
Based on the existing hackathon POC, the implementation is expected to fully integrate the existing CAPI provider ecosystem to OpenControlPlane.
The cluster provider has to allow platform owners to choose and configure existing CAPI providers to create and access clusters in OpenControlPlane.
Open Points
Scope: I suggest to start with the CoreProvider + a configurable list of infrastructure providers (that allow provisioning fully managed clusters like CAPA, CAPZ and CAPG) with control plane providers (for self managed control planes) being a nice to have but completely optional feature for the initial version.
Any further valuable resources.
Rough implementation sketch:
- cluster-provider-capi uses the Cluster API Operator that can be deployed with platform service-helm-deployer of OpenControlPlane. The
initjob will deploy the CAPI Operator and CoreProvider. Additional infrastructure providers will be installed based on the ProviderConfig (similar to Service Provider Crossplane and its provider installation based on user configuration) in context of the regular run (config controller reconcile). - cluster-provider-capi -> reconciles OpenControlPlane
Clusterresources and creates ClusterAPIClusterresources. - cluster-provider-capi -> reconciles OpenControlPlane
AccessRequestresources and references the kubeconfig secret created by the cluster api provider that manages the cluster - The platform operator can configure infrastructure provider specific templates that are referenced in the provider config of cluster-provider-capi to define different openmcp cluster profiles (see cluster provider design for cluster purpose, profile and config relationship).
Resulting Controllers
- config_controller -> reconcile the
ProviderConfigof cluster-provider-capi and manages infrastructure providers - accessrequest_controller -> reconciles
AccessRequestsassigned to cluster-provider-capi and provides kubeconfig secrets - cluster_controller -> reconciles OpenControlPlane
Clustersand creates ClusterAPIClustersusing the OpenControlPlaneClusterProfileto infrastructure provider template mapping provided with theProviderConfig
What is required to accept the Task as done.
Done Criteria
- Init job deploys Cluster API Operator + CoreProvider
- Controllers have been implemented to reconcile
Cluster,AccessRequestandProviderConfigresources - Code has been reviewed by other team members
- Unit Tests and e2e test with a bare metal infrastructure provider created (if feasible)
- Integration Test Suite updated
- Provider config is documented
- Successful demonstration with at least one infrastructure provider in Review
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked hackathon POC, the Cluster API Operator resources, and the listed config_controller, accessrequest_controller, and cluster_controller responsibilities. Trace how ProviderConfig, Cluster, and AccessRequest resources should be reconciled, then use the done criteria to verify the init job, controllers, tests, documentation, and provider demonstration.
Written by the indexing model from the issue text.
Assessment
- Domain
- infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100