add LoadBalancer support, yet another ingress service #521
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Test: