@@ -15,8 +15,8 @@ import (
15
15
16
16
kcpapis "github.com/kcp-dev/kcp/sdk/apis/apis/v1alpha1"
17
17
18
+ "github.com/openmfp/golang-commons/logger"
18
19
ctrl "sigs.k8s.io/controller-runtime"
19
- "sigs.k8s.io/controller-runtime/pkg/log"
20
20
)
21
21
22
22
// APIBindingReconciler reconciles an APIBinding object
@@ -25,19 +25,22 @@ type APIBindingReconciler struct {
25
25
discoveryFactory discoveryclient.Factory
26
26
apiSchemaResolver apischema.Resolver
27
27
clusterPathResolver clusterpath.Resolver
28
+ log * logger.Logger
28
29
}
29
30
30
31
func NewAPIBindingReconciler (
31
32
ioHandler workspacefile.IOHandler ,
32
33
discoveryFactory discoveryclient.Factory ,
33
34
apiSchemaResolver apischema.Resolver ,
34
35
clusterPathResolver clusterpath.Resolver ,
36
+ log * logger.Logger ,
35
37
) * APIBindingReconciler {
36
38
return & APIBindingReconciler {
37
39
ioHandler : ioHandler ,
38
40
discoveryFactory : discoveryFactory ,
39
41
apiSchemaResolver : apiSchemaResolver ,
40
42
clusterPathResolver : clusterPathResolver ,
43
+ log : log ,
41
44
}
42
45
}
43
46
@@ -47,70 +50,69 @@ func (r *APIBindingReconciler) Reconcile(ctx context.Context, req ctrl.Request)
47
50
return ctrl.Result {}, nil
48
51
}
49
52
50
- logger := log .FromContext ( ctx )
53
+ logger := r . log .With (). Str ( "cluster" , req . ClusterName ). Str ( "name" , req . Name ). Logger ( )
51
54
clusterClt , err := r .clusterPathResolver .ClientForCluster (req .ClusterName )
52
55
if err != nil {
53
- logger .Error (err , "failed to get cluster client" , "cluster" , req . ClusterName )
56
+ logger .Error (). Err ( err ). Msg ( "failed to get cluster client" )
54
57
return ctrl.Result {}, err
55
58
}
56
59
clusterPath , err := clusterpath .PathForCluster (req .ClusterName , clusterClt )
57
60
if err != nil {
58
61
if errors .Is (err , clusterpath .ErrClusterIsDeleted ) {
59
- logger .Info ("cluster is deleted, triggering cleanup" )
62
+ logger .Info (). Msg ( "cluster is deleted, triggering cleanup" )
60
63
if err = r .ioHandler .Delete (clusterPath ); err != nil {
61
- logger .Error (err , "failed to delete workspace file after cluster deletion" )
64
+ logger .Error (). Err ( err ). Msg ( "failed to delete workspace file after cluster deletion" )
62
65
return ctrl.Result {}, err
63
66
}
64
67
65
68
return ctrl.Result {}, nil
66
69
}
67
-
68
- logger .Error (err , "failed to get cluster path" , "cluster" , req .ClusterName )
70
+ logger .Error ().Err (err ).Msg ("failed to get cluster path" )
69
71
return ctrl.Result {}, err
70
72
}
71
73
72
- logger = logger .WithValues ( "cluster " , clusterPath )
73
- logger .Info ("starting reconciliation..." )
74
+ logger = logger .With (). Str ( "clusterPath " , clusterPath ). Logger ( )
75
+ logger .Info (). Msg ( "starting reconciliation..." )
74
76
75
77
dc , err := r .discoveryFactory .ClientForCluster (clusterPath )
76
78
if err != nil {
77
- logger .Error (err , "failed to create discovery client for cluster" )
79
+ logger .Error (). Err ( err ). Msg ( "failed to create discovery client for cluster" )
78
80
return ctrl.Result {}, err
79
81
}
80
82
81
83
rm , err := r .discoveryFactory .RestMapperForCluster (clusterPath )
82
84
if err != nil {
83
- logger .Error (err , "failed to create rest mapper for cluster" )
85
+ logger .Error (). Err ( err ). Msg ( "failed to create rest mapper for cluster" )
84
86
return ctrl.Result {}, err
85
87
}
86
88
87
89
savedJSON , err := r .ioHandler .Read (clusterPath )
88
90
if errors .Is (err , fs .ErrNotExist ) {
89
91
actualJSON , err1 := r .apiSchemaResolver .Resolve (dc , rm )
90
92
if err1 != nil {
91
- logger .Error (err1 , "failed to resolve server JSON schema" )
93
+ logger .Error (). Err ( err1 ). Msg ( "failed to resolve server JSON schema" )
92
94
return ctrl.Result {}, err1
93
95
}
94
96
if err := r .ioHandler .Write (actualJSON , clusterPath ); err != nil {
95
- logger .Error (err , "failed to write JSON to filesystem" )
97
+ logger .Error (). Err ( err ). Msg ( "failed to write JSON to filesystem" )
96
98
return ctrl.Result {}, err
97
99
}
98
100
return ctrl.Result {}, nil
99
101
}
100
102
101
103
if err != nil {
102
- logger .Error (err , "failed to read JSON from filesystem" )
104
+ logger .Error (). Err ( err ). Msg ( "failed to read JSON from filesystem" )
103
105
return ctrl.Result {}, err
104
106
}
105
107
106
108
actualJSON , err := r .apiSchemaResolver .Resolve (dc , rm )
107
109
if err != nil {
108
- logger .Error (err , "failed to resolve server JSON schema" )
110
+ logger .Error (). Err ( err ). Msg ( "failed to resolve server JSON schema" )
109
111
return ctrl.Result {}, err
110
112
}
111
113
if ! bytes .Equal (actualJSON , savedJSON ) {
112
114
if err := r .ioHandler .Write (actualJSON , clusterPath ); err != nil {
113
- logger .Error (err , "failed to write JSON to filesystem" )
115
+ logger .Error (). Err ( err ). Msg ( "failed to write JSON to filesystem" )
114
116
return ctrl.Result {}, err
115
117
}
116
118
}
0 commit comments