@@ -46,7 +46,7 @@ const (
46
46
47
47
const loadBalancerProvisioningStatusActive = "ACTIVE"
48
48
49
- func (s * Service ) ReconcileLoadBalancer (openStackCluster * infrav1.OpenStackCluster , clusterName string , apiServerPort int ) error {
49
+ func (s * Service ) ReconcileLoadBalancer (openStackCluster * infrav1.OpenStackCluster , clusterName string , apiServerPort int ) ( bool , error ) {
50
50
loadBalancerName := getLoadBalancerName (clusterName )
51
51
s .scope .Logger ().Info ("Reconciling load balancer" , "name" , loadBalancerName )
52
52
@@ -60,7 +60,7 @@ func (s *Service) ReconcileLoadBalancer(openStackCluster *infrav1.OpenStackClust
60
60
61
61
providers , err := s .loadbalancerClient .ListLoadBalancerProviders ()
62
62
if err != nil {
63
- return err
63
+ return false , err
64
64
}
65
65
66
66
// Choose the selected provider if it is set in cluster spec, if not, omit the field and Octavia will use the default provider.
@@ -80,10 +80,10 @@ func (s *Service) ReconcileLoadBalancer(openStackCluster *infrav1.OpenStackClust
80
80
81
81
lb , err := s .getOrCreateLoadBalancer (openStackCluster , loadBalancerName , openStackCluster .Status .Network .Subnet .ID , clusterName , fixedIPAddress , lbProvider )
82
82
if err != nil {
83
- return err
83
+ return false , err
84
84
}
85
85
if err := s .waitForLoadBalancerActive (lb .ID ); err != nil {
86
- return fmt .Errorf ("load balancer %q with id %s is not active after timeout: %v" , loadBalancerName , lb .ID , err )
86
+ return false , fmt .Errorf ("load balancer %q with id %s is not active after timeout: %v" , loadBalancerName , lb .ID , err )
87
87
}
88
88
89
89
var lbFloatingIP string
@@ -97,10 +97,10 @@ func (s *Service) ReconcileLoadBalancer(openStackCluster *infrav1.OpenStackClust
97
97
}
98
98
fp , err := s .networkingService .GetOrCreateFloatingIP (openStackCluster , openStackCluster , clusterName , floatingIPAddress )
99
99
if err != nil {
100
- return err
100
+ return false , err
101
101
}
102
102
if err = s .networkingService .AssociateFloatingIP (openStackCluster , fp , lb .VipPortID ); err != nil {
103
- return err
103
+ return false , err
104
104
}
105
105
lbFloatingIP = fp .FloatingIP
106
106
}
@@ -110,7 +110,7 @@ func (s *Service) ReconcileLoadBalancer(openStackCluster *infrav1.OpenStackClust
110
110
allowedCIDRsSupported := false
111
111
octaviaVersions , err := s .loadbalancerClient .ListOctaviaVersions ()
112
112
if err != nil {
113
- return err
113
+ return false , err
114
114
}
115
115
// The current version is always the last one in the list.
116
116
octaviaVersion := octaviaVersions [len (octaviaVersions )- 1 ].ID
@@ -125,23 +125,23 @@ func (s *Service) ReconcileLoadBalancer(openStackCluster *infrav1.OpenStackClust
125
125
126
126
listener , err := s .getOrCreateListener (openStackCluster , lbPortObjectsName , lb .ID , port )
127
127
if err != nil {
128
- return err
128
+ return false , err
129
129
}
130
130
131
131
pool , err := s .getOrCreatePool (openStackCluster , lbPortObjectsName , listener .ID , lb .ID , lb .Provider )
132
132
if err != nil {
133
- return err
133
+ return false , err
134
134
}
135
135
136
136
if err := s .getOrCreateMonitor (openStackCluster , lbPortObjectsName , pool .ID , lb .ID ); err != nil {
137
- return err
137
+ return false , err
138
138
}
139
139
140
140
if allowedCIDRsSupported {
141
141
// Skip reconciliation if network status is nil (e.g. during clusterctl move)
142
142
if openStackCluster .Status .Network != nil {
143
143
if err := s .getOrUpdateAllowedCIDRS (openStackCluster , listener ); err != nil {
144
- return err
144
+ return false , err
145
145
}
146
146
allowedCIDRs = listener .AllowedCIDRs
147
147
}
@@ -156,7 +156,7 @@ func (s *Service) ReconcileLoadBalancer(openStackCluster *infrav1.OpenStackClust
156
156
AllowedCIDRs : allowedCIDRs ,
157
157
Tags : lb .Tags ,
158
158
}
159
- return nil
159
+ return false , nil
160
160
}
161
161
162
162
func (s * Service ) getOrCreateLoadBalancer (openStackCluster * infrav1.OpenStackCluster , loadBalancerName , subnetID , clusterName , vipAddress , provider string ) (* loadbalancers.LoadBalancer , error ) {
0 commit comments