Skip to content

Commit 8500344

Browse files
committed
Ignore NoMatchError on IP deletion
1 parent 52b7452 commit 8500344

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

internal/controller/ironcoremetalmachine_controller.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
corev1 "k8s.io/api/core/v1"
2121
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
2222
apierrors "k8s.io/apimachinery/pkg/api/errors"
23+
"k8s.io/apimachinery/pkg/api/meta"
2324
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2425
"k8s.io/apimachinery/pkg/runtime"
2526
"k8s.io/apimachinery/pkg/types"
@@ -185,12 +186,15 @@ func (r *IroncoreMetalMachineReconciler) reconcileDelete(ctx context.Context, ma
185186
// insert ServerClaim deletion logic here
186187

187188
ipList := &capiv1beta1.IPAddressClaimList{}
188-
if err := r.Client.List(ctx, ipList, client.InNamespace(machineScope.IroncoreMetalMachine.Namespace)); err != nil {
189+
if err := r.Client.List(ctx, ipList, client.InNamespace(machineScope.IroncoreMetalMachine.Namespace)); meta.IsNoMatchError(err) {
190+
machineScope.Logger.Info(fmt.Sprintf("Kind %s not found, assuming IP objects for that kind is absent", ipList.GetObjectKind().GroupVersionKind().Kind))
191+
ipList = &capiv1beta1.IPAddressClaimList{}
192+
} else if err != nil {
189193
return ctrl.Result{}, fmt.Errorf("error listing ip resources: %s", err.Error())
190194
}
191195
for _, ip := range ipList.Items {
192196
if strings.HasPrefix(ip.Name, machineScope.IroncoreMetalMachine.Name) {
193-
if err := r.Client.Delete(ctx, &ip); client.IgnoreNotFound(err) != nil {
197+
if err := r.Client.Delete(ctx, &ip); !meta.IsNoMatchError(client.IgnoreNotFound(err)) {
194198
return ctrl.Result{}, fmt.Errorf("error deleting ip resource: %s", err.Error())
195199
}
196200
}

0 commit comments

Comments
 (0)