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

add LoadBalancer support, yet another ingress service #521

Merged
merged 3 commits into from
Jul 23, 2024
Merged

Conversation

HughNhan
Copy link
Contributor

@HughNhan HughNhan commented Jul 18, 2024

Synopsis:

Add LoadBalancer (LB) support, yet another INGRESS service

Description:

The LB service is used in Nokia Core cluster where it has dedicated Gateway nodes for ingress/egress.
On baremetal, MetalLB is the LB control plane. To setup LB service, we need to install MetalLB, an IPAddressPool object . In the L2 mode where routes are resolved by ARP, we also install a L2Advertisement object. All those setup are outside Crucible.
In rickshaw, we detect Ingress topology when the workload server is on k8s, and the client is outside of k8s. In the past, for ingress we support nodePort by default. Now we have a choice between nodePort and LB. We select this choice by a new endpoint option "lbSvc=<lb_pool_name>", the "lb_pool_name" selects a IPAddressPool object.

Code changes

  1. Add an "if-else" for nodePort versus LB code path.
  2. Add a function to create the LB service CR
  3. Add a label to client and server pod so that LB will select the app

Test:

  • Both nodePort and the new LB are working.

@k-rister k-rister assigned HughNhan and unassigned atheurer and k-rister Jul 22, 2024
@k-rister k-rister merged commit eeab270 into master Jul 23, 2024
186 checks passed
@k-rister k-rister deleted the lb-service branch July 23, 2024 03:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants