diff --git a/internal/client/aws.go b/internal/client/aws.go index 7834f45..05b5fec 100644 --- a/internal/client/aws.go +++ b/internal/client/aws.go @@ -157,11 +157,14 @@ func (a *AwsS3Client) DeleteBucket(ctx context.Context) error { }) if err != nil { var ae smithy.APIError + var nfe *s3types.NoSuchBucket if errors.As(err, &ae) && ae.ErrorCode() == "BucketNotEmpty" { log.Println("skipped error", err) - } else { - return err } + if errors.As(err, &nfe) { + return nil + } + return err } return nil } diff --git a/internal/controller/irsasetup_controller.go b/internal/controller/irsasetup_controller.go index 340c07e..2570178 100644 --- a/internal/controller/irsasetup_controller.go +++ b/internal/controller/irsasetup_controller.go @@ -63,11 +63,13 @@ func (r *IRSASetupReconciler) Reconcile(ctx context.Context, req ctrl.Request) ( if err := r.Get(ctx, req.NamespacedName, obj); err != nil { return ctrl.Result{}, client.IgnoreNotFound(err) } - awsClient, err := awsclient.NewAwsClientFactory(ctx) - if err != nil { - return ctrl.Result{}, err + if r.AwsClient == nil { + awsClient, err := awsclient.NewAwsClientFactory(ctx) + if err != nil { + return ctrl.Result{}, err + } + r.AwsClient = awsClient } - r.AwsClient = awsClient kubeClient, err := kubernetes.NewKubernetesClient(r.Client, kubernetes.Owner{Field: "irsa-manager"}) if err != nil { return ctrl.Result{}, err @@ -123,8 +125,7 @@ func (r *IRSASetupReconciler) reconcileDelete(ctx context.Context, obj *irsav1al return err } controllerutil.RemoveFinalizer(obj, irsamanagerFinalizer) - - return nil + return r.Update(ctx, obj) } // reconcileSelfhosted ensures that the self-hosted resources are set up correctly.