Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
The FDP team is no longer accepting new bugs in Bugzilla. Please report your issues under FDP project in Jira. Thanks.

Bug 2059261

Summary: [ovn-nbctl] Add helper ovn-nbctl commands to attach LBs to LB Groups and to display them.
Product: Red Hat Enterprise Linux Fast Datapath Reporter: Dumitru Ceara <dceara>
Component: OVNAssignee: lorenzo bianconi <lorenzo.bianconi>
Status: CLOSED CURRENTRELEASE QA Contact: ying xu <yinxu>
Severity: high Docs Contact:
Priority: medium    
Version: FDP 21.JCC: ctrautma, jiji, lorenzo.bianconi, mmahmoud
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-03-13 07:19:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Dumitru Ceara 2022-02-28 15:53:31 UTC
Description of problem:

OVN support a syntactic sugar, Load_Balancer_Group, which makes applying a set of load balancers to a set of logical switches and/or routers simpler.

For example, consider the following scenario:

LB1: VIP1:BACKEND1_1, BACKEND1_2
LB2: VIP1:BACKEND2_1, BACKEND2_2
LB3: VIP1:BACKEND3_1, BACKEND3_2

LS1, LS2, LS3
LR1, LR2, LR3

Without load balancer groups a CMS would have to apply each of the 3 LBs to each of the 3 routers and switches:

LS1={.load_balancer=[LB1, LB2, LB3]}
LS2={.load_balancer=[LB1, LB2, LB3]}
LS3={.load_balancer=[LB1, LB2, LB3]}
LR1={.load_balancer=[LB1, LB2, LB3]}
LR2={.load_balancer=[LB1, LB2, LB3]}
LR3={.load_balancer=[LB1, LB2, LB3]}

With Load_Balancer_Groups this can be simplified:

LBG={.name="load_balancer_group_1", .load_balancer=[LB1, LB2, LB3]}

LS1={.load_balancer_group=[LBG]}
LS2={.load_balancer_group=[LBG]}
LS3={.load_balancer_group=[LBG]}
LR1={.load_balancer_group=[LBG]}
LR2={.load_balancer_group=[LBG]}
LR3={.load_balancer_group=[LBG]}

The only missing part would be supporting helper commands in nbctl, e.g.:

ovn-nbctl --lbg-lb-add <Load_Balancer_Group> <Load_Balancer>
ovn-nbctl --lbg-lb-del <Load_Balancer_Group> [<Load_Balancer>]
ovn-nbctl --lbg-lb-list <Load_Balancer_Group>

And enhance "ovn-nbctl --ls-lb-list" and "ovn-nbctl --lr-lb-list" to also display information about load balancers that are applied indirectly, through a load balancer group.