Description of problem: when https://github.com/openshift/sdn/pull/277 merged assigning multiple egressIPs to a namespace is supposed to loadbalance between the egressIPs when trying to patch a namespace with multiple egressIPs the cluster fails to allocate any Version-Release number of selected component (if applicable): 4.8 How reproducible: always Steps to Reproduce: 1. create a new netnamespace $ oc create new-project test 2. add egressCIDRs to two different nodes $ oc patch hostsubnet ip-10-0-145-191.us-east-2.compute.internal --type=merge -p '{"egressCIDRs":["10.131.129.0/24"]}' $ oc patch hostsubnet ip-10-0-162-33.us-east-2.compute.internal --type=merge -p '{"egressCIDRs":["10.131.128.0/24"]}' $ oc get hostsubnets NAME HOST HOST IP SUBNET EGRESS CIDRS EGRESS IPS ip-10-0-142-125.us-east-2.compute.internal ip-10-0-142-125.us-east-2.compute.internal 10.0.142.125 10.128.2.0/23 ip-10-0-145-191.us-east-2.compute.internal ip-10-0-145-191.us-east-2.compute.internal 10.0.145.191 10.128.0.0/23 ["10.131.129.0/24"] ip-10-0-162-33.us-east-2.compute.internal ip-10-0-162-33.us-east-2.compute.internal 10.0.162.33 10.130.0.0/23 ["10.131.128.0/24"] ip-10-0-164-127.us-east-2.compute.internal ip-10-0-164-127.us-east-2.compute.internal 10.0.164.127 10.129.2.0/23 ip-10-0-199-225.us-east-2.compute.internal ip-10-0-199-225.us-east-2.compute.internal 10.0.199.225 10.131.0.0/23 ip-10-0-202-52.us-east-2.compute.internal ip-10-0-202-52.us-east-2.compute.internal 10.0.202.52 10.129.0.0/23 3. assign egressIPs from those two ranges to the new namespace $ oc patch netnamespace test --type=merge -p '{"egressIPs": ["10.131.128.50", "10.131.129.50"]}' netnamespace.network.openshift.io/test patched Actual results: the egressIPs are not allocated even through the netnamespace reports that it is using them. $ oc get netnamespace NAME NETID EGRESS IPS ... test 5746827 ["10.131.128.50","10.131.129.50"] $ oc get hostsubnets NAME HOST HOST IP SUBNET EGRESS CIDRS EGRESS IPS ... ip-10-0-145-191.us-east-2.compute.internal ip-10-0-145-191.us-east-2.compute.internal 10.0.145.191 10.128.0.0/23 ["10.131.129.0/24"] ip-10-0-162-33.us-east-2.compute.internal ip-10-0-162-33.us-east-2.compute.internal 10.0.162.33 10.130.0.0/23 ["10.131.128.0/24"] and the egressIP ovs groups and flows are not created by the sdn pods Expected results: $ oc get hostsubnets NAME HOST HOST IP SUBNET EGRESS CIDRS EGRESS IPS ... ip-10-0-145-191.us-east-2.compute.internal ip-10-0-145-191.us-east-2.compute.internal 10.0.145.191 10.128.0.0/23 ["10.131.129.0/24"] ["10.131.129.50"] ip-10-0-162-33.us-east-2.compute.internal ip-10-0-162-33.us-east-2.compute.internal 10.0.162.33 10.130.0.0/23 ["10.131.128.0/24"] ["10.131.128.50"] and the correct ovs is generated by the sdn pods in an sdn pod hosting the egressIP sh-5.0# ovs-ofctl -O OpenFlow13 dump-groups br0 OFPST_GROUP_DESC reply (OF1.3) (xid=0x2): group_id=5746827,type=select,bucket=actions=set_field:1e:60:aa:48:96:42->eth_dst,set_field:0x157b08a->pkt_mark,output:tun0 in an sdn pod not hosting the egressIP # ovs-ofctl -O OpenFlow13 dump-groups br0 OFPST_GROUP_DESC reply (OF1.3) (xid=0x2): group_id=5746827,type=select,bucket=actions=ct(commit),move:NXM_NX_REG0[]->NXM_NX_TUN_ID[0..31],set_field:10.0.162.33->tun_dst,output:vxlan0,bucket=actions=ct(commit),move:NXM_NX_REG0[]->NXM_NX_TUN_ID[0..31],set_field:10.0.145.191->tun_dst,output:vxlan0 Additional info:
*** This bug has been marked as a duplicate of bug 1948999 ***