Supporting externally managed Control Plane #4437
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.
/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:
kubectl version
): N.R./etc/os-release
): N.R.The text was updated successfully, but these errors were encountered: