diff --git a/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go b/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go index 4d486387af..e38d2d157b 100644 --- a/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go +++ b/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go @@ -817,6 +817,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(ctx context.Context, clusterName string if !memberExists(members, addr, int(port.NodePort)) { glog.V(4).Infof("Creating member for pool %s", pool.ID) _, err := v2pools.CreateMember(lbaas.lb, pool.ID, v2pools.CreateMemberOpts{ + Name: fmt.Sprintf("member_%s_%d_%s", name, portIndex, node.Name), ProtocolPort: int(port.NodePort), Address: addr, SubnetID: lbaas.opts.SubnetID, @@ -854,6 +855,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(ctx context.Context, clusterName string if monitorID == "" && lbaas.opts.CreateMonitor { glog.V(4).Infof("Creating monitor for pool %s", pool.ID) monitor, err := v2monitors.Create(lbaas.lb, v2monitors.CreateOpts{ + Name: fmt.Sprintf("monitor_%s_%d", name, portIndex), PoolID: pool.ID, Type: string(port.Protocol), Delay: int(lbaas.opts.MonitorDelay.Duration.Seconds()), @@ -1214,17 +1216,17 @@ func (lbaas *LbaasV2) UpdateLoadBalancer(ctx context.Context, clusterName string } // Compose Set of member (addresses) that _should_ exist - addrs := map[string]empty{} + addrs := make(map[string]*v1.Node) for _, node := range nodes { addr, err := nodeAddressForLB(node) if err != nil { return err } - addrs[addr] = empty{} + addrs[addr] = node } // Check for adding/removing members associated with each port - for _, port := range ports { + for portIndex, port := range ports { // Get listener associated with this port listener, ok := lbListeners[portKey{ Protocol: toListenersProtocol(port.Protocol), @@ -1251,12 +1253,13 @@ func (lbaas *LbaasV2) UpdateLoadBalancer(ctx context.Context, clusterName string } // Add any new members for this port - for addr := range addrs { + for addr, node := range addrs { if _, ok := members[addr]; ok && members[addr].ProtocolPort == int(port.NodePort) { // Already exists, do not create member continue } _, err := v2pools.CreateMember(lbaas.lb, pool.ID, v2pools.CreateMemberOpts{ + Name: fmt.Sprintf("member_%s_%d_%s", loadbalancer.Name, portIndex, node.Name), Address: addr, ProtocolPort: int(port.NodePort), SubnetID: lbaas.opts.SubnetID,