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

managed control planes config patch management #725

Open
Tracked by #549
Unix4ever opened this issue Nov 4, 2024 · 6 comments
Open
Tracked by #549

managed control planes config patch management #725

Unix4ever opened this issue Nov 4, 2024 · 6 comments
Assignees

Comments

@Unix4ever
Copy link
Member

Unix4ever commented Nov 4, 2024

Implement the controller that will create high priority config patches for the cluster which is using managed control planes.

We need config patches for the following:

  • enable KubeSpan.
  • configure endpoints to make control planes reachable by the workers from anywhere (should it be configurable through some Omni instance flags?)

The provider should be able to:

  • create the Kubernetes services of the loadbalancer type. The IP will be selected from the pool, but the port should picked from the pool of the available ones. Would prefer to offload the port allocation to the loadbalancer.
  • when the service is running the provider should read the allocated IP:PORT from the status and create the config patch for the machine.
@smira
Copy link
Member

smira commented Nov 5, 2024

configure endpoints to make control planes reachable by the workers from anywhere (should it be configurable through some Omni instance flags?).

This should be done by the infrastructure provider via injecting appropriate MachineConfig patch (as the provider knows the endpoints, and it makes sense always to have them).

@Unix4ever
Copy link
Member Author

Implementation of this feature might be more tricky than expected.

Creating services is not required for the regular KubeVirt provider, it feels like a thing more specific to the managed control planes only.

So there are two options

Create a forked version of th KubeVirt provider

Then implement the config patch and service creation flow there.
Huge downside of this approach is that it won't be convenient to swap infra providers used for managed control planes.

Create a separate service to handle configs

The separate service will be very similar to the infra providers, but will handle only config patches creation.
Disadvantage of this approach is that there will be more moving parts.

@rothgar
Copy link
Member

rothgar commented Nov 14, 2024

Can you help me understand what the service is needed for? Do nodes need to be publicly accessible for KubeSpan?

@smira
Copy link
Member

smira commented Nov 14, 2024

Creating services is not required for the regular KubeVirt provider, it feels like a thing more specific to the managed control planes only.

I don't think it is specific to managed control planes, but rather a feature flag for the KubeVirt provider to establish a "hole" which KubeSpan can use. It should be enabled for managed control planes case, but might be useful outside of it.

So I would rather add it as a feature flag (can even be a machine request property?).

@Unix4ever
Copy link
Member Author

If we agree to bring more complexity to the infra provider, I have no objections against that.

@Unix4ever
Copy link
Member Author

Can you help me understand what the service is needed for? Do nodes need to be publicly accessible for KubeSpan?

The way we plan to set up KubeVirt we need to expose the nodes through the kubernetes services, and we need the additional config to tell the other members about it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants