diff --git a/pkg/controllers/interruption/controller.go b/pkg/controllers/interruption/controller.go index 0c3cea26dba7..c6e3c1912140 100644 --- a/pkg/controllers/interruption/controller.go +++ b/pkg/controllers/interruption/controller.go @@ -38,7 +38,6 @@ import ( interruptionevents "github.com/aws/karpenter/pkg/controllers/interruption/events" "github.com/aws/karpenter/pkg/controllers/interruption/messages" "github.com/aws/karpenter/pkg/controllers/interruption/messages/statechange" - "github.com/aws/karpenter/pkg/errors" "github.com/aws/karpenter/pkg/utils" "github.com/aws/karpenter-core/pkg/apis/v1alpha5" @@ -203,10 +202,7 @@ func (c *Controller) handleNode(ctx context.Context, msg messages.Message, node // deleteNode removes the node from the api-server func (c *Controller) deleteNode(ctx context.Context, node *v1.Node) error { if err := c.kubeClient.Delete(ctx, node); err != nil { - if errors.IsNotFound(err) { - return nil - } - return fmt.Errorf("deleting the node on interruption message, %w", err) + return client.IgnoreNotFound(fmt.Errorf("deleting the node on interruption message, %w", err)) } logging.FromContext(ctx).Infof("deleted node from interruption message") c.recorder.Publish(interruptionevents.NodeTerminatingOnInterruption(node)) diff --git a/pkg/controllers/interruption/suite_test.go b/pkg/controllers/interruption/suite_test.go index 03daca0e87bd..f49895eb30b1 100644 --- a/pkg/controllers/interruption/suite_test.go +++ b/pkg/controllers/interruption/suite_test.go @@ -273,6 +273,10 @@ var _ = Describe("AWSInterruption", func() { sqsapi.ReceiveMessageBehavior.Error.Set(awsErrWithCode("AccessDenied"), fake.MaxCalls(0)) ExpectReconcileFailed(ctx, controller, types.NamespacedName{}) }) + It("should not return an error when deleting a node that is already deleted", func() { + ExpectMessagesCreated(spotInterruptionMessage(defaultInstanceID)) + ExpectReconcileSucceeded(ctx, controller, types.NamespacedName{}) + }) }) Context("Configuration", func() { It("should not poll SQS if interruption queue is disabled", func() {