Skip to content

Commit

Permalink
Merge pull request #15 from cybozu-go/unify-logger-using-slog
Browse files Browse the repository at this point in the history
unify logger using slog
  • Loading branch information
terassyi committed Sep 24, 2024
2 parents eaea468 + df9a497 commit a3ca0b6
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 21 deletions.
14 changes: 8 additions & 6 deletions cmd/egress-controller/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,26 @@ import (
"crypto/tls"
"flag"
"fmt"
"log/slog"
"os"

// Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.)
// to ensure that exec-entrypoint and run can make use of them.
_ "k8s.io/client-go/plugin/pkg/client/auth"
"k8s.io/klog/v2"

"k8s.io/apimachinery/pkg/runtime"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/healthz"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
"sigs.k8s.io/controller-runtime/pkg/metrics/filters"
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
"sigs.k8s.io/controller-runtime/pkg/webhook"

ponav1beta1 "github.com/cybozu-go/pona/api/v1beta1"
"github.com/cybozu-go/pona/internal/controller"
"github.com/go-logr/logr"
// +kubebuilder:scaffold:imports
)

Expand Down Expand Up @@ -65,18 +67,18 @@ func main() {
flag.IntVar(&config.FoUPort, "fou-port", 5555, "port number for foo-over-udp tunnels")
flag.StringVar(&config.NatGatewayImage, "natgateway-image", "", "default image name for nat-gateway pods")

opts := zap.Options{
Development: true,
}
opts.BindFlags(flag.CommandLine)
flag.Parse()

if config.NatGatewayImage == "" {
setupLog.Error(fmt.Errorf("--natgateway-image is required"), "failed to parse flags")
os.Exit(1)
}

ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts)))
l := slog.New(slog.NewJSONHandler(os.Stdout, nil))
logger := logr.FromSlogHandler(l.Handler())
slog.SetDefault(l)
klog.SetLogger(logger)
ctrl.SetLogger(logger)

// if the enable-http2 flag is false (the default), http/2 should be disabled
// due to its vulnerabilities. More specifically, disabling http/2 will
Expand Down
14 changes: 8 additions & 6 deletions cmd/nat-gateway/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,21 @@ import (
"crypto/tls"
"errors"
"flag"
"log/slog"
"net/netip"
"os"
"strings"

// Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.)
// to ensure that exec-entrypoint and run can make use of them.
_ "k8s.io/client-go/plugin/pkg/client/auth"
"k8s.io/klog/v2"

"k8s.io/apimachinery/pkg/runtime"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/healthz"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
"sigs.k8s.io/controller-runtime/pkg/metrics/filters"
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
"sigs.k8s.io/controller-runtime/pkg/webhook"
Expand All @@ -26,6 +27,7 @@ import (
"github.com/cybozu-go/pona/internal/controller"
"github.com/cybozu-go/pona/pkg/nat"
"github.com/cybozu-go/pona/pkg/tunnel/fou"
"github.com/go-logr/logr"
// +kubebuilder:scaffold:imports
)

Expand Down Expand Up @@ -67,13 +69,13 @@ func main() {
"If set, HTTP/2 will be enabled for the metrics and webhook servers")
flag.IntVar(&config.FoUPort, "fou-port", 5555, "port number for foo-over-udp tunnels")

opts := zap.Options{
Development: true,
}
opts.BindFlags(flag.CommandLine)
flag.Parse()

ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts)))
l := slog.New(slog.NewJSONHandler(os.Stdout, nil))
logger := logr.FromSlogHandler(l.Handler())
slog.SetDefault(l)
klog.SetLogger(logger)
ctrl.SetLogger(logger)

// if the enable-http2 flag is false (the default), http/2 should be disabled
// due to its vulnerabilities. More specifically, disabling http/2 will
Expand Down
10 changes: 7 additions & 3 deletions cmd/ponad/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"k8s.io/apimachinery/pkg/runtime"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
"k8s.io/klog/v2"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/healthz"
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
Expand Down Expand Up @@ -51,9 +52,12 @@ func main() {
flag.IntVar(&config.egressPort, "egress-port", 5555, "UDP port number for egress NAT")

flag.Parse()
logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
slog.SetDefault(logger)
ctrl.SetLogger(logr.FromSlogHandler(logger.Handler()))

l := slog.New(slog.NewJSONHandler(os.Stdout, nil))
logger := logr.FromSlogHandler(l.Handler())
slog.SetDefault(l)
klog.SetLogger(logger)
ctrl.SetLogger(logger)

mgr, err := setupManager(config)
if err != nil {
Expand Down
5 changes: 1 addition & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ require (
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/go-logr/logr v1.4.1
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-logr/zapr v1.3.0 // indirect
github.com/go-openapi/jsonpointer v0.19.6 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/swag v0.22.3 // indirect
Expand Down Expand Up @@ -77,8 +76,6 @@ require (
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
go.opentelemetry.io/otel/trace v1.19.0 // indirect
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.26.0 // indirect
golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 // indirect
golang.org/x/net v0.25.0 // indirect
golang.org/x/oauth2 v0.20.0 // indirect
Expand All @@ -97,7 +94,7 @@ require (
k8s.io/apiextensions-apiserver v0.30.1 // indirect
k8s.io/apiserver v0.30.1 // indirect
k8s.io/component-base v0.30.1 // indirect
k8s.io/klog/v2 v2.120.1 // indirect
k8s.io/klog/v2 v2.120.1
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
Expand Down
9 changes: 7 additions & 2 deletions internal/controller/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@ package controller

import (
"fmt"
"log/slog"
"os"
"path/filepath"
"runtime"
"testing"

"github.com/go-logr/logr"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"

Expand All @@ -14,7 +17,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/envtest"
logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/log/zap"

ponav1beta1 "github.com/cybozu-go/pona/api/v1beta1"
// +kubebuilder:scaffold:imports
Expand All @@ -34,7 +36,10 @@ func TestControllers(t *testing.T) {
}

var _ = BeforeSuite(func() {
logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true)))
l := slog.New(slog.NewTextHandler(os.Stdout, nil))
logger := logr.FromSlogHandler(l.Handler())
slog.SetDefault(l)
logf.SetLogger(logger)

By("bootstrapping test environment")
testEnv = &envtest.Environment{
Expand Down

0 comments on commit a3ca0b6

Please sign in to comment.