Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 7 additions & 11 deletions controllers/openstackcluster_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,14 +119,14 @@ func (r *OpenStackClusterReconciler) Reconcile(ctx context.Context, req ctrl.Req

// Handle deleted clusters
if !openStackCluster.DeletionTimestamp.IsZero() {
return reconcileDelete(ctx, scope, patchHelper, cluster, openStackCluster)
return reconcileDelete(scope, cluster, openStackCluster)
}

// Handle non-deleted clusters
return reconcileNormal(ctx, scope, patchHelper, cluster, openStackCluster)
return reconcileNormal(scope, cluster, openStackCluster)
}

func reconcileDelete(ctx context.Context, scope scope.Scope, patchHelper *patch.Helper, cluster *clusterv1.Cluster, openStackCluster *infrav1.OpenStackCluster) (ctrl.Result, error) {
func reconcileDelete(scope scope.Scope, cluster *clusterv1.Cluster, openStackCluster *infrav1.OpenStackCluster) (ctrl.Result, error) {
scope.Logger().Info("Reconciling Cluster delete")

if err := deleteBastion(scope, cluster, openStackCluster); err != nil {
Expand Down Expand Up @@ -178,9 +178,6 @@ func reconcileDelete(ctx context.Context, scope scope.Scope, patchHelper *patch.
// Cluster is deleted so remove the finalizer.
controllerutil.RemoveFinalizer(openStackCluster, infrav1.ClusterFinalizer)
scope.Logger().Info("Reconciled Cluster delete successfully")
if err := patchHelper.Patch(ctx, openStackCluster); err != nil {
return ctrl.Result{}, err
}
return ctrl.Result{}, nil
}

Expand Down Expand Up @@ -245,14 +242,13 @@ func deleteBastion(scope scope.Scope, cluster *clusterv1.Cluster, openStackClust
return nil
}

func reconcileNormal(ctx context.Context, scope scope.Scope, patchHelper *patch.Helper, cluster *clusterv1.Cluster, openStackCluster *infrav1.OpenStackCluster) (ctrl.Result, error) {
func reconcileNormal(scope scope.Scope, cluster *clusterv1.Cluster, openStackCluster *infrav1.OpenStackCluster) (ctrl.Result, error) {
scope.Logger().Info("Reconciling Cluster")

// If the OpenStackCluster doesn't have our finalizer, add it.
controllerutil.AddFinalizer(openStackCluster, infrav1.ClusterFinalizer)
// Register the finalizer immediately to avoid orphaning OpenStack resources on delete
if err := patchHelper.Patch(ctx, openStackCluster); err != nil {
return reconcile.Result{}, err
if controllerutil.AddFinalizer(openStackCluster, infrav1.ClusterFinalizer) {
// Register the finalizer immediately to avoid orphaning OpenStack resources on delete
return reconcile.Result{}, nil
}

computeService, err := compute.NewService(scope)
Expand Down
18 changes: 7 additions & 11 deletions controllers/openstackmachine_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -148,11 +148,11 @@ func (r *OpenStackMachineReconciler) Reconcile(ctx context.Context, req ctrl.Req

// Handle deleted machines
if !openStackMachine.DeletionTimestamp.IsZero() {
return r.reconcileDelete(ctx, scope, patchHelper, cluster, infraCluster, machine, openStackMachine)
return r.reconcileDelete(scope, cluster, infraCluster, machine, openStackMachine)
}

// Handle non-deleted clusters
return r.reconcileNormal(ctx, scope, patchHelper, cluster, infraCluster, machine, openStackMachine)
return r.reconcileNormal(ctx, scope, cluster, infraCluster, machine, openStackMachine)
}

func patchMachine(ctx context.Context, patchHelper *patch.Helper, openStackMachine *infrav1.OpenStackMachine, machine *clusterv1.Machine, options ...patch.Option) error {
Expand Down Expand Up @@ -219,7 +219,7 @@ func (r *OpenStackMachineReconciler) SetupWithManager(ctx context.Context, mgr c
Complete(r)
}

func (r *OpenStackMachineReconciler) reconcileDelete(ctx context.Context, scope scope.Scope, patchHelper *patch.Helper, cluster *clusterv1.Cluster, openStackCluster *infrav1.OpenStackCluster, machine *clusterv1.Machine, openStackMachine *infrav1.OpenStackMachine) (ctrl.Result, error) {
func (r *OpenStackMachineReconciler) reconcileDelete(scope scope.Scope, cluster *clusterv1.Cluster, openStackCluster *infrav1.OpenStackCluster, machine *clusterv1.Machine, openStackMachine *infrav1.OpenStackMachine) (ctrl.Result, error) {
scope.Logger().Info("Reconciling Machine delete")

clusterName := fmt.Sprintf("%s-%s", cluster.ObjectMeta.Namespace, cluster.Name)
Expand Down Expand Up @@ -281,24 +281,20 @@ func (r *OpenStackMachineReconciler) reconcileDelete(ctx context.Context, scope

controllerutil.RemoveFinalizer(openStackMachine, infrav1.MachineFinalizer)
scope.Logger().Info("Reconciled Machine delete successfully")
if err := patchHelper.Patch(ctx, openStackMachine); err != nil {
return ctrl.Result{}, err
}
return ctrl.Result{}, nil
}

func (r *OpenStackMachineReconciler) reconcileNormal(ctx context.Context, scope scope.Scope, patchHelper *patch.Helper, cluster *clusterv1.Cluster, openStackCluster *infrav1.OpenStackCluster, machine *clusterv1.Machine, openStackMachine *infrav1.OpenStackMachine) (_ ctrl.Result, reterr error) {
func (r *OpenStackMachineReconciler) reconcileNormal(ctx context.Context, scope scope.Scope, cluster *clusterv1.Cluster, openStackCluster *infrav1.OpenStackCluster, machine *clusterv1.Machine, openStackMachine *infrav1.OpenStackMachine) (_ ctrl.Result, reterr error) {
// If the OpenStackMachine is in an error state, return early.
if openStackMachine.Status.FailureReason != nil || openStackMachine.Status.FailureMessage != nil {
scope.Logger().Info("Not reconciling machine in failed state. See openStackMachine.status.failureReason, openStackMachine.status.failureMessage, or previously logged error for details")
return ctrl.Result{}, nil
}

// If the OpenStackMachine doesn't have our finalizer, add it.
controllerutil.AddFinalizer(openStackMachine, infrav1.MachineFinalizer)
// Register the finalizer immediately to avoid orphaning OpenStack resources on delete
if err := patchHelper.Patch(ctx, openStackMachine); err != nil {
return ctrl.Result{}, err
if controllerutil.AddFinalizer(openStackMachine, infrav1.MachineFinalizer) {
// Register the finalizer immediately to avoid orphaning OpenStack resources on delete
return ctrl.Result{}, nil
}

if !cluster.Status.InfrastructureReady {
Expand Down