@@ -22,7 +22,6 @@ import (
22
22
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/lifecyclehandler"
23
23
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/k8s"
24
24
25
- "github.com/go-logr/logr"
26
25
v1 "k8s.io/api/apps/v1"
27
26
apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
28
27
"k8s.io/apimachinery/pkg/api/errors"
@@ -32,26 +31,30 @@ import (
32
31
"sigs.k8s.io/controller-runtime/pkg/builder"
33
32
"sigs.k8s.io/controller-runtime/pkg/client"
34
33
"sigs.k8s.io/controller-runtime/pkg/controller"
35
- klog "sigs.k8s.io/controller-runtime/pkg/log"
34
+ crlog "sigs.k8s.io/controller-runtime/pkg/log"
36
35
"sigs.k8s.io/controller-runtime/pkg/manager"
37
36
"sigs.k8s.io/controller-runtime/pkg/reconcile"
38
37
)
39
38
40
- var logger = klog .Log
41
-
42
39
type Reconciler struct {
43
40
lifecyclehandler.LifecycleHandler
44
- mgr manager.Manager
45
- crd * apiextensions.CustomResourceDefinition
46
- gvk schema.GroupVersionKind
47
- logger logr.Logger
41
+ mgr manager.Manager
42
+ gvk schema.GroupVersionKind
48
43
}
49
44
50
45
func Add (mgr manager.Manager , crd * apiextensions.CustomResourceDefinition ) error {
46
+ ctx := context .TODO ()
47
+ logger := crlog .FromContext (ctx )
51
48
kind := crd .Spec .Names .Kind
52
49
apiVersion := k8s .GetAPIVersionFromCRD (crd )
53
50
controllerName := fmt .Sprintf ("%v-unmanaged-detector" , strings .ToLower (kind ))
54
- r , err := NewReconciler (mgr , crd )
51
+
52
+ gvk := schema.GroupVersionKind {
53
+ Group : crd .Spec .Group ,
54
+ Version : k8s .GetVersionFromCRD (crd ),
55
+ Kind : crd .Spec .Names .Kind ,
56
+ }
57
+ r , err := NewReconciler (mgr , gvk )
55
58
if err != nil {
56
59
return err
57
60
}
@@ -74,34 +77,31 @@ func Add(mgr manager.Manager, crd *apiextensions.CustomResourceDefinition) error
74
77
return nil
75
78
}
76
79
77
- func NewReconciler (mgr manager.Manager , crd * apiextensions.CustomResourceDefinition ) (* Reconciler , error ) {
78
- controllerName := fmt .Sprintf ("%v-unmanaged-detector" , strings .ToLower (crd .Spec .Names .Kind ))
80
+ // NewReconciler creates a new unmanageddetector reconciler, watching objects of the specified GVK
81
+ func NewReconciler (mgr manager.Manager , gvk schema.GroupVersionKind ) (* Reconciler , error ) {
82
+ controllerName := fmt .Sprintf ("%v-unmanaged-detector" , strings .ToLower (gvk .Kind ))
79
83
return & Reconciler {
80
84
LifecycleHandler : lifecyclehandler .NewLifecycleHandlerWithFieldOwner (
81
85
mgr .GetClient (),
82
86
mgr .GetEventRecorderFor (controllerName ),
83
87
k8s .UnmanagedDetectorFieldManager ,
84
88
),
85
89
mgr : mgr ,
86
- crd : crd ,
87
- gvk : schema.GroupVersionKind {
88
- Group : crd .Spec .Group ,
89
- Version : k8s .GetVersionFromCRD (crd ),
90
- Kind : crd .Spec .Names .Kind ,
91
- },
92
- logger : logger .WithName (controllerName ),
90
+ gvk : gvk ,
93
91
}, nil
94
92
}
95
93
96
94
func (r * Reconciler ) Reconcile (ctx context.Context , req reconcile.Request ) (res reconcile.Result , err error ) {
97
- r .logger .Info ("starting reconcile" , "resource" , req .NamespacedName )
95
+ logger := crlog .FromContext (ctx )
96
+
97
+ logger .Info ("starting reconcile" , "resource" , req .NamespacedName )
98
98
99
99
u := & unstructured.Unstructured {}
100
100
u .SetGroupVersionKind (r .gvk )
101
101
102
102
if err := r .Get (ctx , req .NamespacedName , u ); err != nil {
103
103
if errors .IsNotFound (err ) {
104
- r . logger .Info ("resource not found in API server; finishing reconcile" , "resource" , req .NamespacedName )
104
+ logger .Info ("resource not found in API server; finishing reconcile" , "resource" , req .NamespacedName )
105
105
return reconcile.Result {}, nil
106
106
}
107
107
return reconcile.Result {}, err
@@ -114,7 +114,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (res
114
114
if yes {
115
115
// Don't requeue resource for reconciliation; this controller has
116
116
// achieved its purpose.
117
- r . logger .Info ("controller found for resource's namespace; finishing reconcile" , "resource" , k8s .GetNamespacedName (u ))
117
+ logger .Info ("controller found for resource's namespace; finishing reconcile" , "resource" , k8s .GetNamespacedName (u ))
118
118
return reconcile.Result {}, nil
119
119
}
120
120
@@ -125,7 +125,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (res
125
125
126
126
// Don't requeue resource for reconciliation (unless there's an error
127
127
// during the status update); this controller has achieved its purpose.
128
- r . logger .Info ("controller not found for resource's namespace; finishing reconcile" , "resource" , k8s .GetNamespacedName (u ))
128
+ logger .Info ("controller not found for resource's namespace; finishing reconcile" , "resource" , k8s .GetNamespacedName (u ))
129
129
return reconcile.Result {}, r .HandleUnmanaged (ctx , resource )
130
130
}
131
131
0 commit comments