@@ -103,14 +103,14 @@ func (r *OpenStackClusterReconciler) Reconcile(req ctrl.Request) (_ ctrl.Result,
103
103
104
104
// Handle deleted clusters
105
105
if ! openStackCluster .DeletionTimestamp .IsZero () {
106
- return r .reconcileDelete (ctx , log , patchHelper , cluster , openStackCluster )
106
+ return r .reconcileDelete (ctx , log , patchHelper , openStackCluster )
107
107
}
108
108
109
109
// Handle non-deleted clusters
110
110
return r .reconcileNormal (ctx , log , patchHelper , cluster , openStackCluster )
111
111
}
112
112
113
- func (r * OpenStackClusterReconciler ) reconcileDelete (ctx context.Context , log logr.Logger , patchHelper * patch.Helper , cluster * clusterv1. Cluster , openStackCluster * infrav1.OpenStackCluster ) (ctrl.Result , error ) {
113
+ func (r * OpenStackClusterReconciler ) reconcileDelete (ctx context.Context , log logr.Logger , patchHelper * patch.Helper , openStackCluster * infrav1.OpenStackCluster ) (ctrl.Result , error ) {
114
114
log .Info ("Reconciling Cluster delete" )
115
115
116
116
osProviderClient , clientOpts , err := provider .NewClientFromCluster (r .Client , openStackCluster )
@@ -128,19 +128,21 @@ func (r *OpenStackClusterReconciler) reconcileDelete(ctx context.Context, log lo
128
128
if err != nil {
129
129
return reconcile.Result {}, err
130
130
}
131
+ if bastion := openStackCluster .Status .Bastion ; bastion != nil {
131
132
132
- err = computeService .DeleteBastion (openStackCluster .Status .Bastion .ID )
133
- if err != nil {
134
- return reconcile.Result {}, errors .Errorf ("failed to delete bastion: %v" , err )
133
+ if err = computeService .DeleteBastion (bastion .ID ); err != nil {
134
+ return reconcile.Result {}, errors .Errorf ("failed to delete bastion: %v" , err )
135
+ }
136
+ r .Recorder .Eventf (openStackCluster , corev1 .EventTypeNormal , "SuccessfulDeleteServer" , "Deleted server %s with id %s" , bastion .Name , bastion .ID )
135
137
}
136
- r .Recorder .Eventf (openStackCluster , corev1 .EventTypeNormal , "SuccessfulTerminate" , "Terminated instance %q" , openStackCluster .Status .Bastion .ID )
137
- if openStackCluster .Status .BastionSecurityGroup != nil {
138
- log .Info ("Deleting bastion security group" , "name" , openStackCluster .Status .BastionSecurityGroup .Name )
139
138
140
- err = networkingService .DeleteSecurityGroups (openStackCluster .Status .BastionSecurityGroup )
141
- if err != nil {
139
+ if bastionSecGroup := openStackCluster .Status .BastionSecurityGroup ; bastionSecGroup != nil {
140
+ log .Info ("Deleting bastion security group" , "name" , bastionSecGroup .Name )
141
+ if err = networkingService .DeleteSecurityGroups (bastionSecGroup ); err != nil {
142
142
return reconcile.Result {}, errors .Errorf ("failed to delete security group: %v" , err )
143
143
}
144
+ r .Recorder .Eventf (openStackCluster , corev1 .EventTypeNormal , "SuccessfulDeleteSecurityGroup" , "Deleted security group %s with id %s" , bastionSecGroup .Name , bastionSecGroup .ID )
145
+
144
146
}
145
147
}
146
148
@@ -149,45 +151,49 @@ func (r *OpenStackClusterReconciler) reconcileDelete(ctx context.Context, log lo
149
151
return reconcile.Result {}, err
150
152
}
151
153
152
- clusterName := fmt .Sprintf ("%s-%s" , cluster .Namespace , cluster .Name )
153
154
if openStackCluster .Spec .ManagedAPIServerLoadBalancer {
154
- err = loadBalancerService .DeleteLoadBalancer (clusterName , openStackCluster )
155
- if err != nil {
156
- return reconcile.Result {}, errors .Errorf ("failed to delete load balancer: %v" , err )
155
+ if apiLb := openStackCluster .Status .Network .APIServerLoadBalancer ; apiLb != nil {
156
+ if err = loadBalancerService .DeleteLoadBalancer (apiLb .Name , openStackCluster ); err != nil {
157
+ return reconcile.Result {}, errors .Errorf ("failed to delete load balancer: %v" , err )
158
+ }
159
+ r .Recorder .Eventf (openStackCluster , corev1 .EventTypeNormal , "SuccessfulDeleteLoadBalancer" , "Deleted load balancer %s with id %s" , apiLb .Name , apiLb .ID )
160
+
157
161
}
158
162
}
159
163
160
164
// Delete other things
161
- if openStackCluster .Status .WorkerSecurityGroup != nil {
162
- log .Info ("Deleting worker security group" , "name" , openStackCluster .Status .WorkerSecurityGroup .Name )
163
- err := networkingService .DeleteSecurityGroups (openStackCluster .Status .WorkerSecurityGroup )
164
- if err != nil {
165
+ if workerSecGroup := openStackCluster .Status .WorkerSecurityGroup ; workerSecGroup != nil {
166
+ log .Info ("Deleting worker security group" , "name" , workerSecGroup .Name )
167
+ if err = networkingService .DeleteSecurityGroups (workerSecGroup ); err != nil {
165
168
return reconcile.Result {}, errors .Errorf ("failed to delete security group: %v" , err )
166
169
}
170
+ r .Recorder .Eventf (openStackCluster , corev1 .EventTypeNormal , "SuccessfulDeleteSecurityGroup" , "Deleted security group %s with id %s" , workerSecGroup .Name , workerSecGroup .ID )
167
171
}
168
172
169
- if openStackCluster .Status .ControlPlaneSecurityGroup != nil {
170
- log .Info ("Deleting control plane security group" , "name" , openStackCluster .Status .ControlPlaneSecurityGroup .Name )
171
- err := networkingService .DeleteSecurityGroups (openStackCluster .Status .ControlPlaneSecurityGroup )
172
- if err != nil {
173
+ if controlPlaneSecGroup := openStackCluster .Status .ControlPlaneSecurityGroup ; controlPlaneSecGroup != nil {
174
+ log .Info ("Deleting control plane security group" , "name" , controlPlaneSecGroup .Name )
175
+ if err = networkingService .DeleteSecurityGroups (controlPlaneSecGroup ); err != nil {
173
176
return reconcile.Result {}, errors .Errorf ("failed to delete security group: %v" , err )
174
177
}
178
+ r .Recorder .Eventf (openStackCluster , corev1 .EventTypeNormal , "SuccessfulDeleteSecurityGroup" , "Deleted security group %s with id %s" , controlPlaneSecGroup .Name , controlPlaneSecGroup .ID )
175
179
}
176
180
177
- if openStackCluster .Status .Network .Router != nil {
178
- log .Info ("Deleting router" , "name" , openStackCluster . Status . Network . Router .Name )
179
- if err : = networkingService .DeleteRouter (openStackCluster .Status .Network ); err != nil {
181
+ if router := openStackCluster .Status .Network .Router ; router != nil {
182
+ log .Info ("Deleting router" , "name" , router .Name )
183
+ if err = networkingService .DeleteRouter (openStackCluster .Status .Network ); err != nil {
180
184
return ctrl.Result {}, errors .Errorf ("failed to delete router: %v" , err )
181
185
}
186
+ r .Recorder .Eventf (openStackCluster , corev1 .EventTypeNormal , "SuccessfulDeleteRouter" , "Deleted router %s with id %s" , router .Name , router .ID )
182
187
log .Info ("OpenStack router deleted successfully" )
183
188
}
184
189
185
190
// if NodeCIDR was not set, no network was created.
186
- if openStackCluster .Status .Network != nil && openStackCluster .Spec .NodeCIDR != "" {
187
- log .Info ("Deleting network" , "name" , openStackCluster . Status . Network .Name )
188
- if err : = networkingService .DeleteNetwork (openStackCluster . Status . Network ); err != nil {
191
+ if network := openStackCluster .Status .Network ; network != nil && openStackCluster .Spec .NodeCIDR != "" {
192
+ log .Info ("Deleting network" , "name" , network .Name )
193
+ if err = networkingService .DeleteNetwork (network ); err != nil {
189
194
return ctrl.Result {}, errors .Errorf ("failed to delete network: %v" , err )
190
195
}
196
+ r .Recorder .Eventf (openStackCluster , corev1 .EventTypeNormal , "SuccessfulDeleteNetwork" , "Deleted network %s with id %s" , network .Name , network .ID )
191
197
log .Info ("OpenStack network deleted successfully" )
192
198
}
193
199
0 commit comments