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

Research how a network interface could be removed from loadbalancing without changing user-facing onmetal objects (LB/machine) #42

Open
KapilYadava opened this issue Apr 24, 2023 · 8 comments
Assignees
Labels
enhancement New feature or request

Comments

@KapilYadava
Copy link

KapilYadava commented Apr 24, 2023

Had discussion today with onmetal-api and virtualization team

Further discussion

  1. Relation between on-metal api LB and metal-net LB.
  2. To look into meta-lnet load balancer with virtualization team
  3. To look into on-metal API LB and LBR with on-metal api team

Solution:

  1. Add Watches to setUpManager() which can help us to identify the VM status and the NIC name.

Watches( &source.Kind{Type: &computev1alpha1.Machine{}}, handler.Funcs{ UpdateFunc: func(event event.UpdateEvent, queue workqueue.RateLimitingInterface) { machine := event.ObjectNew.(*computev1alpha1.Machine) for _, nic := range machine.Spec.NetworkInterfaces { queue.Add(ctrl.Request{NamespacedName: types.NamespacedName{Name: nic.Name}}) } } }, }, ).

  1. Update destinations in LoadBalancerRouting when reconcile triggered
@KapilYadava
Copy link
Author

KapilYadava commented Apr 24, 2023

Update from today meeting

  1. Update the network interface status or add status field (Machine Status) to create a relation (health check label) between Machine and network interface. (virtlet)

something like this:

apiVersion: networking.api.onmetal.de/v1alpha1 kind: NetworkInterface metadata: name: networkinterface-1 spec: networkRef: name: network-1 // to be updated status: MachineRef: name: vm-1 status: Running

[Monday 14:31] Stößel, Manuel

Hi Kapil, I don't think you really need point 1, you already have a machineref in the networkinterfacespec as we saw in the code. If that's used, every controller can just look up the status of the referenced machine itself. I don't think we need to copy a machineref plus machine status to the networkinterface status. But maybe I didn't completely understood what your reasons were for that.

#point 1 is not needed

  1. Add watches function to setUpManager() in LB controller to watch network interface status and filter out NICs on the basis of network interface networkInterface.Status.MachineRef.status. (onmetal-api)

  2. Update NICs in LBR object at reconcile loop. (onmetal-api)

@KapilYadava
Copy link
Author

KapilYadava commented Apr 28, 2023

Implementation is done: https://github.com/onmetal/onmetal-api/compare/feature/lb_health_check?expand=1

waiting for lab access to onmetal-api cluster

@LanDeleih
Copy link

Greetings,
May I inquire as to what assistance you require from us?

@KapilYadava
Copy link
Author

@LanDeleih, I need to access to the test lab so that I can deploy change to onmetal-api cluster, controller to be deployed.

@KapilYadava KapilYadava self-assigned this May 9, 2023
@KapilYadava KapilYadava added the enhancement New feature or request label May 9, 2023
@LanDeleih
Copy link

@LanDeleih, I need to access to the test lab so that I can deploy change to onmetal-api cluster, controller to be deployed.

Hello.
Regarding the issue created in our repository, please allow me to clarify that our team is not responsible for onmetal-api or the test environment. Do you need us to make a feature for baremetal servers? If that is indeed what you require, could you specify what exactly you need us to implement?

@KapilYadava
Copy link
Author

@LanDeleih it is not the right repo actually, as per our recent discussion I think this issue will be moved to dp-service. Is possible to change repo now ? I tried but I could not do that.

@LanDeleih LanDeleih transferred this issue from another repository May 10, 2023
@guvenc
Copy link
Collaborator

guvenc commented May 10, 2023

This is not dp-service related. Please talk to me first before moving issues to dp-service. @LanDeleih @KapilYadava
Please remove this one from dp-service and move it to metalnet and please clarify what is the problem and what is being tried to be done here.

@PlagueCZ
Copy link
Contributor

As discussed with @KapilYadava, removing of LBs is already supported in dp-service. It is on the orchestration to actually do it based on health checks. One possible solution is to implement it in metalbond with a tiny change to metalnet, but that is not something that can be decided in this (dp-service) project.

@guvenc guvenc transferred this issue from ironcore-dev/dpservice May 15, 2023
@MarekNaster MarekNaster self-assigned this Jun 15, 2023
@KapilYadava KapilYadava self-assigned this Jun 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants