diff --git a/controllers/openstackcluster_controller.go b/controllers/openstackcluster_controller.go index 4b7d270c0d..ab7a7c7030 100644 --- a/controllers/openstackcluster_controller.go +++ b/controllers/openstackcluster_controller.go @@ -627,11 +627,15 @@ func resolveLoadBalancerNetwork(openStackCluster *infrav1.OpenStackCluster, netw for _, s := range lbSpec.Subnets { matchFound := false for _, subnetID := range lbNet.Subnets { - if s.ID != nil && subnetID == *s.ID { + subnet, err := networkingService.GetSubnetByParam(&s) + if s.ID != nil && subnetID == *s.ID && err == nil { matchFound = true lbNetStatus.Subnets = append( lbNetStatus.Subnets, infrav1.Subnet{ - ID: *s.ID, + ID: subnet.ID, + Name: subnet.Name, + CIDR: subnet.CIDR, + Tags: subnet.Tags, }) } } @@ -640,6 +644,8 @@ func resolveLoadBalancerNetwork(openStackCluster *infrav1.OpenStackCluster, netw return fmt.Errorf("no subnet match was found in the specified network (specified subnet: %v, available subnets: %v)", s, lbNet.Subnets) } } + + openStackCluster.Status.APIServerLoadBalancer.LoadBalancerNetwork = lbNetStatus } } diff --git a/pkg/cloud/services/loadbalancer/loadbalancer.go b/pkg/cloud/services/loadbalancer/loadbalancer.go index f29d633777..62028145d2 100644 --- a/pkg/cloud/services/loadbalancer/loadbalancer.go +++ b/pkg/cloud/services/loadbalancer/loadbalancer.go @@ -305,10 +305,11 @@ func (s *Service) getOrCreateAPILoadBalancer(openStackCluster *infrav1.OpenStack if vipNetworkID == "" && vipSubnetID == "" { // keep the default and create the VIP on the first cluster subnet vipSubnetID = openStackCluster.Status.Network.Subnets[0].ID + s.scope.Logger().Info("No load balancer network specified, creating load balancer in the default subnet", "subnetID", vipSubnetID, "name", loadBalancerName) + } else { + s.scope.Logger().Info("Creating load balancer in subnet", "subnetID", vipSubnetID, "name", loadBalancerName) } - s.scope.Logger().Info("Creating load balancer in subnet", "subnetID", vipSubnetID, "name", loadBalancerName) - providers, err := s.loadbalancerClient.ListLoadBalancerProviders() if err != nil { return nil, err