Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supporting externally managed Control Plane #4437

Closed
prometherion opened this issue Aug 4, 2023 · 2 comments · Fixed by #4438
Closed

Supporting externally managed Control Plane #4437

prometherion opened this issue Aug 4, 2023 · 2 comments · Fixed by #4438
Labels
kind/feature Categorizes issue or PR as related to a new feature. needs-priority triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@prometherion
Copy link
Contributor

/kind feature

Describe the solution you'd like

Kamaji is an Open Source project that is offering Kubernetes Control Plane as a Service. Thanks to the CAPI Control Plane provider contract and its implementation it allows creating workload clusters just made of worker nodes and consuming the kube-apiserver as an external service.

At the current state, the Cluster API Provider for AWS is not supporting this contract since it gives for granted the Control Plane is made of Virtual Machines on AWS, thus provisioning of an AWS Load Balancer, or the reference to an already created one is mandatory and doesn't provide a chance to support an externally managed.

As briefly discussed with @richardcase, an annotation for the AWSCluster could skip the creation of the AWS Load Balancer: in a such situation, the AWS Cluster API provider will wait for the Control Plane provider to patch the /AWSCluster/spec/controlPlaneEndpoint object with the externally managed endpoint.

Anything else you would like to add:

The proposed implementation sounds similar to what we achieved, as Kamaji developers, with other infrastructure providers we tested, such as vSphere, KubeVirt, Equinix, and OpenStack (although the latter supports a field to reference a fixed API server address and port).

I'm already working on a PR to address this use case and discussing the implementation.

Environment:

  • Cluster-api-provider-aws version: v2.2.1
  • Kubernetes version: (use kubectl version): N.R.
  • OS (e.g. from /etc/os-release): N.R.
@k8s-ci-robot k8s-ci-robot added kind/feature Categorizes issue or PR as related to a new feature. needs-priority needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Aug 4, 2023
@Skarlso
Copy link
Contributor

Skarlso commented Aug 10, 2023

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Aug 10, 2023
@richardcase
Copy link
Member

/milestone v2.3.0

@k8s-ci-robot k8s-ci-robot added this to the v2.3.0 milestone Oct 2, 2023
@richardcase richardcase modified the milestones: v2.3.0, v2.4.0 Oct 16, 2023
@richardcase richardcase removed this from the v2.4.0 milestone Jan 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. needs-priority triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants