Skip to content

Commit

Permalink
allow for logging customization
Browse files Browse the repository at this point in the history
Signed-off-by: Manabu McCloskey <[email protected]>
  • Loading branch information
nabuskey committed Feb 23, 2024
1 parent 6b704e6 commit c59f6c0
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 17 deletions.
7 changes: 6 additions & 1 deletion pkg/build/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package build
import (
"context"
"fmt"
"time"

"github.com/cnoe-io/idpbuilder/api/v1alpha1"
"github.com/cnoe-io/idpbuilder/pkg/controllers"
"github.com/cnoe-io/idpbuilder/pkg/kind"
Expand All @@ -14,7 +16,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"sigs.k8s.io/controller-runtime/pkg/manager"
"time"
"sigs.k8s.io/controller-runtime/pkg/metrics/server"
)

var (
Expand Down Expand Up @@ -129,6 +131,9 @@ func (b *Build) Run(ctx context.Context, recreateCluster bool) error {
// Create controller manager
mgr, err := ctrl.NewManager(kubeConfig, ctrl.Options{
Scheme: b.scheme,
Metrics: server.Options{
BindAddress: "0",
},
})
if err != nil {
setupLog.Error(err, "Error creating controller manager")
Expand Down
26 changes: 10 additions & 16 deletions pkg/cmd/create/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,16 @@ package create

import (
"context"
"flag"
"fmt"
"os"
"path/filepath"

"github.com/cnoe-io/idpbuilder/pkg/build"
"github.com/cnoe-io/idpbuilder/pkg/cmd/helpers"
"github.com/cnoe-io/idpbuilder/pkg/k8s"
"github.com/spf13/cobra"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/log/zap"

"k8s.io/client-go/util/homedir"
ctrl "sigs.k8s.io/controller-runtime"
)

var (
Expand All @@ -28,10 +26,11 @@ var (
)

var CreateCmd = &cobra.Command{
Use: "create",
Short: "(Re)Create an IDP cluster",
Long: ``,
RunE: create,
Use: "create",
Short: "(Re)Create an IDP cluster",
Long: ``,
RunE: create,
PreRunE: preCreateE,
}

func init() {
Expand All @@ -42,15 +41,10 @@ func init() {
CreateCmd.PersistentFlags().StringVar(&kindConfigPath, "kind-config", "", "Path of the kind config file to be used instead of the default.")
CreateCmd.Flags().StringSliceVarP(&extraPackagesDirs, "package-dir", "p", []string{}, "Paths to custom packages")
CreateCmd.Flags().BoolVarP(&noExit, "no-exit", "n", true, "When set, idpbuilder will not exit after all packages are synced. Useful for continuously syncing local directories.")
}

zapfs := flag.NewFlagSet("zap", flag.ExitOnError)
opts := zap.Options{
Development: true,
}
opts.BindFlags(zapfs)
CreateCmd.Flags().AddGoFlagSet(zapfs)

ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts)))
func preCreateE(cmd *cobra.Command, args []string) error {
return helpers.SetLogger()
}

func create(cmd *cobra.Command, args []string) error {
Expand Down
44 changes: 44 additions & 0 deletions pkg/cmd/helpers/logger.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package helpers

import (
"fmt"
"log/slog"
"os"
"strings"

"github.com/go-logr/logr"
"k8s.io/klog/v2"
ctrl "sigs.k8s.io/controller-runtime"
)

var (
LogLevel string
LogLevelMsg = "Set the log verbosity. Supported values are: debug, info, warn, and error."
)

func SetLogger() error {
l, err := getSlogLevel(LogLevel)
if err != nil {
return err
}
slogger := slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: l}))
logger := logr.FromSlogHandler(slogger.Handler())
klog.SetLogger(logger)
ctrl.SetLogger(logger)
return nil
}

func getSlogLevel(s string) (slog.Level, error) {
switch strings.ToLower(s) {
case "debug":
return slog.LevelDebug, nil
case "info":
return slog.LevelInfo, nil
case "warn":
return slog.LevelWarn, nil
case "error":
return slog.LevelError, nil
default:
return slog.LevelDebug, fmt.Errorf("%s is not a valid log level", s)
}
}
2 changes: 2 additions & 0 deletions pkg/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"os"

"github.com/cnoe-io/idpbuilder/pkg/cmd/create"
"github.com/cnoe-io/idpbuilder/pkg/cmd/helpers"
"github.com/cnoe-io/idpbuilder/pkg/cmd/version"
"github.com/spf13/cobra"
)
Expand All @@ -16,6 +17,7 @@ var rootCmd = &cobra.Command{
}

func init() {
rootCmd.PersistentFlags().StringVarP(&helpers.LogLevel, "log-level", "l", "info", helpers.LogLevelMsg)
rootCmd.AddCommand(create.CreateCmd)
rootCmd.AddCommand(version.VersionCmd)
}
Expand Down

0 comments on commit c59f6c0

Please sign in to comment.