@@ -23,14 +23,14 @@ import (
23
23
24
24
"github.com/pkg/errors"
25
25
26
- "k8s.io/apimachinery/pkg/api/meta"
27
26
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
28
27
pkgruntime "k8s.io/apimachinery/pkg/runtime"
29
28
"k8s.io/apimachinery/pkg/util/runtime"
30
- "k8s.io/apimachinery/pkg/util/sets"
31
29
restclient "k8s.io/client-go/rest"
32
30
"k8s.io/client-go/tools/cache"
33
31
"k8s.io/klog/v2"
32
+ "sigs.k8s.io/controller-runtime/pkg/client"
33
+ "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
34
34
35
35
corev1b1 "sigs.k8s.io/kubefed/pkg/apis/core/v1beta1"
36
36
genericclient "sigs.k8s.io/kubefed/pkg/client/generic"
@@ -376,33 +376,23 @@ func (c *Controller) refreshSyncController(tc *corev1b1.FederatedTypeConfig) err
376
376
}
377
377
378
378
func (c * Controller ) ensureFinalizer (tc * corev1b1.FederatedTypeConfig ) (bool , error ) {
379
- accessor , err := meta .Accessor (tc )
380
- if err != nil {
381
- return false , err
382
- }
383
- finalizers := sets .NewString (accessor .GetFinalizers ()... )
384
- if finalizers .Has (finalizer ) {
379
+ if controllerutil .ContainsFinalizer (tc , finalizer ) {
385
380
return false , nil
386
381
}
387
- finalizers . Insert ( finalizer )
388
- accessor . SetFinalizers ( finalizers . List ())
389
- err = c . client . Update ( context . TODO (), tc )
390
- return true , err
382
+
383
+ patch := client . MergeFrom ( tc . DeepCopy ())
384
+ controllerutil . AddFinalizer ( tc , finalizer )
385
+ return true , c . client . Patch ( context . TODO (), tc , patch )
391
386
}
392
387
393
388
func (c * Controller ) removeFinalizer (tc * corev1b1.FederatedTypeConfig ) error {
394
- accessor , err := meta .Accessor (tc )
395
- if err != nil {
396
- return err
397
- }
398
- finalizers := sets .NewString (accessor .GetFinalizers ()... )
399
- if ! finalizers .Has (finalizer ) {
389
+ if ! controllerutil .ContainsFinalizer (tc , finalizer ) {
400
390
return nil
401
391
}
402
- finalizers . Delete ( finalizer )
403
- accessor . SetFinalizers ( finalizers . List ())
404
- err = c . client . Update ( context . TODO (), tc )
405
- return err
392
+
393
+ patch := client . MergeFrom ( tc . DeepCopy ())
394
+ controllerutil . RemoveFinalizer ( tc , finalizer )
395
+ return c . client . Patch ( context . TODO (), tc , patch )
406
396
}
407
397
408
398
func (c * Controller ) namespaceFTCExists () bool {
0 commit comments