Skip to content

Commit 7f34676

Browse files
committed
feat: apibinding_controller is using a golang-commons logger now
1 parent 8c2ff00 commit 7f34676

File tree

2 files changed

+27
-19
lines changed

2 files changed

+27
-19
lines changed

listener/controller/apibinding_controller.go

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import (
1515

1616
kcpapis "github.com/kcp-dev/kcp/sdk/apis/apis/v1alpha1"
1717

18+
"github.com/openmfp/golang-commons/logger"
1819
ctrl "sigs.k8s.io/controller-runtime"
19-
"sigs.k8s.io/controller-runtime/pkg/log"
2020
)
2121

2222
// APIBindingReconciler reconciles an APIBinding object
@@ -25,19 +25,22 @@ type APIBindingReconciler struct {
2525
discoveryFactory discoveryclient.Factory
2626
apiSchemaResolver apischema.Resolver
2727
clusterPathResolver clusterpath.Resolver
28+
log *logger.Logger
2829
}
2930

3031
func NewAPIBindingReconciler(
3132
ioHandler workspacefile.IOHandler,
3233
discoveryFactory discoveryclient.Factory,
3334
apiSchemaResolver apischema.Resolver,
3435
clusterPathResolver clusterpath.Resolver,
36+
log *logger.Logger,
3537
) *APIBindingReconciler {
3638
return &APIBindingReconciler{
3739
ioHandler: ioHandler,
3840
discoveryFactory: discoveryFactory,
3941
apiSchemaResolver: apiSchemaResolver,
4042
clusterPathResolver: clusterPathResolver,
43+
log: log,
4144
}
4245
}
4346

@@ -47,70 +50,69 @@ func (r *APIBindingReconciler) Reconcile(ctx context.Context, req ctrl.Request)
4750
return ctrl.Result{}, nil
4851
}
4952

50-
logger := log.FromContext(ctx)
53+
logger := r.log.With().Str("cluster", req.ClusterName).Str("name", req.Name).Logger()
5154
clusterClt, err := r.clusterPathResolver.ClientForCluster(req.ClusterName)
5255
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")
5457
return ctrl.Result{}, err
5558
}
5659
clusterPath, err := clusterpath.PathForCluster(req.ClusterName, clusterClt)
5760
if err != nil {
5861
if errors.Is(err, clusterpath.ErrClusterIsDeleted) {
59-
logger.Info("cluster is deleted, triggering cleanup")
62+
logger.Info().Msg("cluster is deleted, triggering cleanup")
6063
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")
6265
return ctrl.Result{}, err
6366
}
6467

6568
return ctrl.Result{}, nil
6669
}
67-
68-
logger.Error(err, "failed to get cluster path", "cluster", req.ClusterName)
70+
logger.Error().Err(err).Msg("failed to get cluster path")
6971
return ctrl.Result{}, err
7072
}
7173

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...")
7476

7577
dc, err := r.discoveryFactory.ClientForCluster(clusterPath)
7678
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")
7880
return ctrl.Result{}, err
7981
}
8082

8183
rm, err := r.discoveryFactory.RestMapperForCluster(clusterPath)
8284
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")
8486
return ctrl.Result{}, err
8587
}
8688

8789
savedJSON, err := r.ioHandler.Read(clusterPath)
8890
if errors.Is(err, fs.ErrNotExist) {
8991
actualJSON, err1 := r.apiSchemaResolver.Resolve(dc, rm)
9092
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")
9294
return ctrl.Result{}, err1
9395
}
9496
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")
9698
return ctrl.Result{}, err
9799
}
98100
return ctrl.Result{}, nil
99101
}
100102

101103
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")
103105
return ctrl.Result{}, err
104106
}
105107

106108
actualJSON, err := r.apiSchemaResolver.Resolve(dc, rm)
107109
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")
109111
return ctrl.Result{}, err
110112
}
111113
if !bytes.Equal(actualJSON, savedJSON) {
112114
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")
114116
return ctrl.Result{}, err
115117
}
116118
}

listener/controller/apibinding_controller_test.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,17 @@ package controller_test
22

33
import (
44
"context"
5+
"testing"
6+
57
kcpcore "github.com/kcp-dev/kcp/sdk/apis/core/v1alpha1"
68
"github.com/openmfp/kubernetes-graphql-gateway/listener/controller"
79
"github.com/stretchr/testify/assert"
810
"github.com/stretchr/testify/mock"
911
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1012
ctrl "sigs.k8s.io/controller-runtime"
1113
"sigs.k8s.io/controller-runtime/pkg/client"
12-
"testing"
1314

15+
"github.com/openmfp/golang-commons/logger"
1416
controllerRuntimeMocks "github.com/openmfp/kubernetes-graphql-gateway/gateway/resolver/mocks"
1517
apischemaMocks "github.com/openmfp/kubernetes-graphql-gateway/listener/apischema/mocks"
1618
clusterpathMocks "github.com/openmfp/kubernetes-graphql-gateway/listener/clusterpath/mocks"
@@ -68,8 +70,12 @@ func TestAPIBindingReconciler_Reconcile(t *testing.T) {
6870
tt.mockSetup(ioHandler, discoveryFactory, apiSchemaResolver, clusterPathResolver)
6971
}
7072

71-
r := controller.NewAPIBindingReconciler(ioHandler, discoveryFactory, apiSchemaResolver, clusterPathResolver)
72-
_, err := r.Reconcile(context.Background(), ctrl.Request{ClusterName: tt.clusterName})
73+
loggerCfg := logger.DefaultConfig()
74+
loggerCfg.Name = "test-apibinding-reconciler"
75+
log, err := logger.New(loggerCfg)
76+
assert.NoError(t, err)
77+
r := controller.NewAPIBindingReconciler(ioHandler, discoveryFactory, apiSchemaResolver, clusterPathResolver, log)
78+
_, err = r.Reconcile(context.Background(), ctrl.Request{ClusterName: tt.clusterName})
7379
assert.Equal(t, tt.err, err)
7480
})
7581
}

0 commit comments

Comments
 (0)