Skip to content

Commit

Permalink
do not use logrus
Browse files Browse the repository at this point in the history
  • Loading branch information
czeslavo committed Jul 21, 2023
1 parent 69b0655 commit 92ffd58
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 13 deletions.
33 changes: 23 additions & 10 deletions internal/clients/readiness.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@ package clients

import (
"context"
"errors"
"fmt"
"time"

"github.com/sirupsen/logrus"
"github.com/go-logr/logr"
k8stypes "k8s.io/apimachinery/pkg/types"

"github.com/kong/kubernetes-ingress-controller/v2/internal/adminapi"
"github.com/kong/kubernetes-ingress-controller/v2/internal/util"
)

const (
Expand Down Expand Up @@ -52,10 +55,10 @@ type AlreadyCreatedClient interface {

type DefaultReadinessChecker struct {
factory ClientFactory
logger logrus.FieldLogger
logger logr.Logger
}

func NewDefaultReadinessChecker(factory ClientFactory, logger logrus.FieldLogger) DefaultReadinessChecker {
func NewDefaultReadinessChecker(factory ClientFactory, logger logr.Logger) DefaultReadinessChecker {
return DefaultReadinessChecker{
factory: factory,
logger: logger,
Expand Down Expand Up @@ -91,16 +94,18 @@ func (c DefaultReadinessChecker) checkPendingClient(
pendingClient adminapi.DiscoveredAdminAPI,
) (client *adminapi.Client) {
defer func() {
c.logger.WithField("ok", client != nil).
Debugf("checking readiness of pending client for %q", pendingClient.Address)
c.logger.V(util.DebugLevel).
Info(fmt.Sprintf("checking readiness of pending client for %q", pendingClient.Address),
"ok", client != nil,
)
}()

ctx, cancel := context.WithTimeout(ctx, readinessCheckTimeout)
defer cancel()
client, err := c.factory.CreateAdminAPIClient(ctx, pendingClient)
if err != nil {
// Despite the error reason we still want to keep the client in the pending list to retry later.
c.logger.WithError(err).Debugf("pending client for %q is not ready yet", pendingClient.Address)
c.logger.V(util.DebugLevel).Error(err, fmt.Sprintf("pending client for %q is not ready yet", pendingClient.Address))
return nil
}

Expand All @@ -116,7 +121,10 @@ func (c DefaultReadinessChecker) checkAlreadyExistingClients(ctx context.Context
podRef, ok := client.PodReference()
if !ok {
// This should never happen, but if it does, we want to log it.
c.logger.Errorf("failed to get PodReference for client %q", client.BaseRootURL())
c.logger.Error(
errors.New("missing pod reference"),
fmt.Sprintf("failed to get PodReference for client %q", client.BaseRootURL()),
)
continue
}
turnedPending = append(turnedPending, adminapi.DiscoveredAdminAPI{
Expand All @@ -130,15 +138,20 @@ func (c DefaultReadinessChecker) checkAlreadyExistingClients(ctx context.Context

func (c DefaultReadinessChecker) checkAlreadyCreatedClient(ctx context.Context, client AlreadyCreatedClient) (ready bool) {
defer func() {
c.logger.WithField("ok", ready).
Debugf("checking readiness of already created client for %q", client.BaseRootURL())
c.logger.V(util.DebugLevel).Info(
fmt.Sprintf("checking readiness of already created client for %q", client.BaseRootURL()),
"ok", ready,
)
}()

ctx, cancel := context.WithTimeout(ctx, readinessCheckTimeout)
defer cancel()
if err := client.IsReady(ctx); err != nil {
// Despite the error reason we still want to keep the client in the pending list to retry later.
c.logger.WithError(err).Debugf("already created client for %q is not ready, moving to pending", client.BaseRootURL())
c.logger.V(util.DebugLevel).Error(
err,
fmt.Sprintf("already created client for %q is not ready, moving to pending", client.BaseRootURL()),
)
return false
}

Expand Down
4 changes: 2 additions & 2 deletions internal/clients/readiness_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import (
"fmt"
"testing"

"github.com/go-logr/logr"
"github.com/samber/lo"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/require"
k8stypes "k8s.io/apimachinery/pkg/types"

Expand Down Expand Up @@ -196,7 +196,7 @@ func TestDefaultReadinessChecker(t *testing.T) {
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
factory := newMockClientFactory(t, tc.pendingClientsReadiness)
checker := clients.NewDefaultReadinessChecker(factory, logrus.New())
checker := clients.NewDefaultReadinessChecker(factory, logr.Discard())
result := checker.CheckReadiness(context.Background(), tc.alreadyCreatedClients, tc.pendingClients)

turnedPending := lo.Map(result.ClientsTurnedPending, func(c adminapi.DiscoveredAdminAPI, _ int) string { return c.Address })
Expand Down
2 changes: 1 addition & 1 deletion internal/manager/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ func Run(ctx context.Context, c *Config, diagnostic util.ConfigDumpDiagnostic, d
setupLog.Info("Initializing Dataplane Client")
eventRecorder := mgr.GetEventRecorderFor(KongClientEventRecorderComponentName)

readinessChecker := clients.NewDefaultReadinessChecker(adminAPIClientsFactory, deprecatedLogger)
readinessChecker := clients.NewDefaultReadinessChecker(adminAPIClientsFactory, setupLog.WithName("readiness-checker"))
clientsManager, err := clients.NewAdminAPIClientsManager(
ctx,
deprecatedLogger,
Expand Down

0 comments on commit 92ffd58

Please sign in to comment.