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

[FEATURE] Expose the IPMI endpoint to external #3

Open
starbops opened this issue Feb 22, 2024 · 2 comments
Open

[FEATURE] Expose the IPMI endpoint to external #3

starbops opened this issue Feb 22, 2024 · 2 comments
Assignees
Labels
kind/feature New feature proposed/asked

Comments

@starbops
Copy link
Owner

Is your feature request related to a problem? Please describe.

To be able to access the KubeBMC for a specific VM, users are required to have the ability and rights to access the cluster. This is because the IPMI endpoints are currently exposed through ClusterIP type of Services. The only way to touch the endpoint is to spawn Pods on the cluster. It isn't very easy for external users or applications to integrate with KubeBMC. They still have to be aware of Kubernetes.

Describe the solution you'd like

Leverage NodePort or LoadBalancer type of Services, which can provide external accessibility.

Describe alternatives you've considered

Build up a new program responsible for proxying all the IPMI access requests from external to the internal KubeBMC endpoints.

Additional context

N/A

@starbops starbops added the kind/feature New feature proposed/asked label Jul 28, 2024
@starbops
Copy link
Owner Author

So the plan is to add a simple toggle under the VirtualMachineBMC CRD's .spec section for users to specify whether to expose the BMC to the outside world with the aid of the load balancer provider, e.g., kube-vip. Also, a corresponding field will be under the .status section that reflects the provisioned external IP.

That being said, I'm still unsure if we should integrate a specific load balancer solution or not...

@starbops
Copy link
Owner Author

To make it work in the current implementation, you need to manually modify the generated Service object. It depends on your environment's solutions.

Suppose you have kube-vip deployed in your cluster (along with KubeVirtBMC). In that case, you can simply modify the generated Service object from the ClusterIP type to the LoadBalancer type and also add a loadBalancerIP: 0.0.0.0 to the .spec section. This will make kube-vip grab an IP address with DHCP (needless to say, you'll need a valid DHCP server running on the network).

@starbops starbops self-assigned this Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature New feature proposed/asked
Projects
None yet
Development

No branches or pull requests

1 participant