Skip to content

Commit

Permalink
move lib to deckhouse
Browse files Browse the repository at this point in the history
Signed-off-by: Pavel Okhlopkov <[email protected]>
  • Loading branch information
Pavel Okhlopkov committed Oct 31, 2024
1 parent a19056a commit 639b2cc
Show file tree
Hide file tree
Showing 69 changed files with 164 additions and 1,437 deletions.
6 changes: 3 additions & 3 deletions cmd/shell-operator/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ import (

"gopkg.in/alecthomas/kingpin.v2"

"github.com/deckhouse/deckhouse/go_lib/log"
"github.com/flant/kube-client/klogtologrus"
"github.com/flant/shell-operator/pkg/app"
"github.com/flant/shell-operator/pkg/debug"
"github.com/flant/shell-operator/pkg/jq"
shell_operator "github.com/flant/shell-operator/pkg/shell-operator"
"github.com/flant/shell-operator/pkg/unilogger"
utils_signal "github.com/flant/shell-operator/pkg/utils/signal"
)

Expand All @@ -36,8 +36,8 @@ func main() {
return nil
})

logger := unilogger.NewLogger(unilogger.Options{})
unilogger.SetDefault(logger)
logger := log.NewLogger(log.Options{})
log.SetDefault(logger)

// start main loop
startCmd := kpApp.Command("start", "Start shell-operator.").
Expand Down
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
module github.com/flant/shell-operator

go 1.22
go 1.23.1

require (
github.com/deckhouse/deckhouse/go_lib/log v0.0.0-20241031111821-6d9459d45b78
github.com/flant/kube-client v1.2.0
github.com/flant/libjq-go v1.6.3-0.20201126171326-c46a40ff22ee // branch: master
github.com/go-chi/chi/v5 v5.1.0
Expand Down
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/deckhouse/deckhouse/go_lib/log v0.0.0-20241031111821-6d9459d45b78 h1:H5ROFYwvuxE51WzcS9mSKDiD2/6tQCjNExqiUOxLvqY=
github.com/deckhouse/deckhouse/go_lib/log v0.0.0-20241031111821-6d9459d45b78/go.mod h1:okGCqOIU70vDhivVs/UmuSMTdZMHKNTVw2cRAv+Pzqc=
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
Expand Down
10 changes: 5 additions & 5 deletions pkg/app/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import (

"gopkg.in/alecthomas/kingpin.v2"

"github.com/deckhouse/deckhouse/go_lib/log"
"github.com/flant/shell-operator/pkg/config"
"github.com/flant/shell-operator/pkg/unilogger"
)

// Use info level with timestamps and a text output by default
Expand Down Expand Up @@ -44,7 +44,7 @@ func DefineLoggingFlags(cmd *kingpin.CmdClause) {
}

// SetupLogging sets logger formatter and level.
func SetupLogging(runtimeConfig *config.Config, logger *unilogger.Logger) {
func SetupLogging(runtimeConfig *config.Config, logger *log.Logger) {
// TODO: if we need formatters - add to logger
// jsonFormatter := log.JSONFormatter{DisableTimestamp: LogNoTime}
// textFormatter := log.TextFormatter{DisableTimestamp: LogNoTime, DisableColors: true}
Expand All @@ -64,14 +64,14 @@ func SetupLogging(runtimeConfig *config.Config, logger *unilogger.Logger) {
// log.SetFormatter(&ProxyJsonWrapperFormatter{WrappedFormatter: formatter})
// }

unilogger.SetDefaultLevel(unilogger.LogLevelFromStr(LogLevel))
log.SetDefaultLevel(log.LogLevelFromStr(LogLevel))

runtimeConfig.Register("log.level",
fmt.Sprintf("Global log level. Default duration for debug level is %s", ForcedDurationForDebugLevel),
strings.ToLower(LogLevel),
func(oldValue string, newValue string) error {
unilogger.Infof("Set log level to '%s'", newValue)
unilogger.SetDefaultLevel(unilogger.LogLevelFromStr(newValue))
log.Infof("Set log level to '%s'", newValue)
log.SetDefaultLevel(log.LogLevelFromStr(newValue))
return nil
}, func(oldValue string, newValue string) time.Duration {
if strings.ToLower(newValue) == "debug" {
Expand Down
8 changes: 4 additions & 4 deletions pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
"sync"
"time"

"github.com/flant/shell-operator/pkg/unilogger"
"github.com/deckhouse/deckhouse/go_lib/log"
)

/**
Expand Down Expand Up @@ -43,10 +43,10 @@ type Config struct {
temporalValues map[string]*TemporalValue
expireTicker *time.Ticker

logger *unilogger.Logger
logger *log.Logger
}

func NewConfig(logger *unilogger.Logger) *Config {
func NewConfig(logger *log.Logger) *Config {
return &Config{
params: make(map[string]*Parameter),
values: make(map[string]string),
Expand Down Expand Up @@ -132,7 +132,7 @@ func (c *Config) IsValid(name, value string) error {
// maybe we should register it together with a parameter
switch name {
case "log.level":
_, err := unilogger.ParseLevel(value)
_, err := log.ParseLevel(value)
if err != nil {
return err
}
Expand Down
8 changes: 4 additions & 4 deletions pkg/config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ import (
"testing"
"time"

"github.com/flant/shell-operator/pkg/unilogger"
"github.com/deckhouse/deckhouse/go_lib/log"
"github.com/stretchr/testify/assert"
)

func TestConfig_Register(t *testing.T) {
c := NewConfig(unilogger.NewNop())
c := NewConfig(log.NewNop())

c.Register("log.level", "", "info", nil, nil)

Expand All @@ -33,7 +33,7 @@ func TestConfig_Register(t *testing.T) {
}

func TestConfig_OnChange(t *testing.T) {
c := NewConfig(unilogger.NewNop())
c := NewConfig(log.NewNop())

newValue := ""
c.Register("log.level", "", "info", func(oldValue string, n string) error {
Expand Down Expand Up @@ -67,7 +67,7 @@ func TestConfig_OnChange(t *testing.T) {

func TestConfig_Errors(t *testing.T) {
var err error
c := NewConfig(unilogger.NewNop())
c := NewConfig(log.NewNop())

c.Register("log.level", "", "info", func(oldValue string, n string) error {
if n == "debug" {
Expand Down
6 changes: 3 additions & 3 deletions pkg/debug/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"github.com/go-chi/chi/v5/middleware"
"gopkg.in/yaml.v3"

"github.com/flant/shell-operator/pkg/unilogger"
"github.com/deckhouse/deckhouse/go_lib/log"
utils "github.com/flant/shell-operator/pkg/utils/file"
structuredLogger "github.com/flant/shell-operator/pkg/utils/structured-logger"
)
Expand All @@ -25,10 +25,10 @@ type Server struct {

Router chi.Router

logger *unilogger.Logger
logger *log.Logger
}

func NewServer(prefix, socketPath, httpAddr string, logger *unilogger.Logger) *Server {
func NewServer(prefix, socketPath, httpAddr string, logger *log.Logger) *Server {
router := chi.NewRouter()

router.Use(structuredLogger.NewStructuredLogger(logger.Named("debugEndpoint"), "debugEndpoint"))
Expand Down
14 changes: 7 additions & 7 deletions pkg/executor/executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"syscall"
"time"

"github.com/flant/shell-operator/pkg/unilogger"
"github.com/deckhouse/deckhouse/go_lib/log"
utils "github.com/flant/shell-operator/pkg/utils/labels"

"github.com/flant/shell-operator/pkg/app"
Expand All @@ -28,12 +28,12 @@ type CmdUsage struct {
func Run(cmd *exec.Cmd) error {
// TODO context: hook name, hook phase, hook binding
// TODO observability
unilogger.Debugf("Executing command '%s' in '%s' dir", strings.Join(cmd.Args, " "), cmd.Dir)
log.Debugf("Executing command '%s' in '%s' dir", strings.Join(cmd.Args, " "), cmd.Dir)

return cmd.Run()
}

func RunAndLogLines(cmd *exec.Cmd, logLabels map[string]string, logger *unilogger.Logger) (*CmdUsage, error) {
func RunAndLogLines(cmd *exec.Cmd, logLabels map[string]string, logger *log.Logger) (*CmdUsage, error) {
// TODO observability
stdErr := bytes.NewBuffer(nil)
logEntry := utils.EnrichLoggerWithLabels(logger, logLabels)
Expand Down Expand Up @@ -77,7 +77,7 @@ func RunAndLogLines(cmd *exec.Cmd, logLabels map[string]string, logger *unilogge
type proxyLogger struct {
logProxyHookJSON bool

logger *unilogger.Logger
logger *log.Logger

buf []byte
}
Expand Down Expand Up @@ -124,15 +124,15 @@ func (pl *proxyLogger) Write(p []byte) (int, error) {
if len(logLine) > 10000 {
logLine = fmt.Sprintf("%s:truncated", string(logLine[:10000]))

logger.Log(context.Background(), unilogger.LevelFatal.Level(), "hook result", slog.Any("hook", map[string]any{
logger.Log(context.Background(), log.LevelFatal.Level(), "hook result", slog.Any("hook", map[string]any{
"truncated": logLine,
}))

return len(p), nil
}

// logEntry.Log(log.FatalLevel, string(logLine))
logger.Log(context.Background(), unilogger.LevelFatal.Level(), "hook result", slog.Any("hook", logMap))
logger.Log(context.Background(), log.LevelFatal.Level(), "hook result", slog.Any("hook", logMap))

return len(p), nil
}
Expand Down Expand Up @@ -180,7 +180,7 @@ func (pl *proxyLogger) writerScanner(p []byte) {
func Output(cmd *exec.Cmd) (output []byte, err error) {
// TODO context: hook name, hook phase, hook binding
// TODO observability
unilogger.Debugf("Executing command '%s' in '%s' dir", strings.Join(cmd.Args, " "), cmd.Dir)
log.Debugf("Executing command '%s' in '%s' dir", strings.Join(cmd.Args, " "), cmd.Dir)
output, err = cmd.Output()
return
}
Expand Down
12 changes: 6 additions & 6 deletions pkg/executor/executor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ import (
"testing"
"time"

"github.com/deckhouse/deckhouse/go_lib/log"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"

"github.com/flant/shell-operator/pkg/app"
"github.com/flant/shell-operator/pkg/unilogger"
)

func TestRunAndLogLines(t *testing.T) {
loggerOpts := unilogger.Options{
loggerOpts := log.Options{
TimeFunc: func(_ time.Time) time.Time {
parsedTime, err := time.Parse(time.DateTime, "2006-01-02 15:04:05")
if err != nil {
Expand All @@ -28,8 +28,8 @@ func TestRunAndLogLines(t *testing.T) {
return parsedTime
},
}
logger := unilogger.NewLogger(loggerOpts)
logger.SetLevel(unilogger.LevelInfo)
logger := log.NewLogger(loggerOpts)
logger.SetLevel(log.LevelInfo)

var buf bytes.Buffer
logger.SetOutput(&buf)
Expand Down Expand Up @@ -100,7 +100,7 @@ func TestRunAndLogLines(t *testing.T) {
})

t.Run("invalid json structure", func(t *testing.T) {
logger.SetLevel(unilogger.LevelDebug)
logger.SetLevel(log.LevelDebug)
app.LogProxyHookJSON = true
cmd := exec.Command("echo", `["a","b","c"]`)
_, err := RunAndLogLines(cmd, map[string]string{"a": "b"}, logger)
Expand All @@ -113,7 +113,7 @@ func TestRunAndLogLines(t *testing.T) {
})

t.Run("multiline", func(t *testing.T) {
logger.SetLevel(unilogger.LevelInfo)
logger.SetLevel(log.LevelInfo)
app.LogProxyHookJSON = true
cmd := exec.Command("echo", `
{"a":"b",
Expand Down
2 changes: 1 addition & 1 deletion pkg/hook/binding_context/binding_context.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package binding_context
import (
"encoding/json"

log "github.com/flant/shell-operator/pkg/unilogger"
log "github.com/deckhouse/deckhouse/go_lib/log"
v1 "k8s.io/api/admission/v1"
apixv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"

Expand Down
2 changes: 1 addition & 1 deletion pkg/hook/controller/admission_bindings_controller.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package controller

import (
log "github.com/flant/shell-operator/pkg/unilogger"
log "github.com/deckhouse/deckhouse/go_lib/log"
v1 "k8s.io/api/admission/v1"

. "github.com/flant/shell-operator/pkg/hook/binding_context"
Expand Down
2 changes: 1 addition & 1 deletion pkg/hook/controller/conversion_bindings_controller.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package controller

import (
log "github.com/flant/shell-operator/pkg/unilogger"
log "github.com/deckhouse/deckhouse/go_lib/log"
v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"

. "github.com/flant/shell-operator/pkg/hook/binding_context"
Expand Down
6 changes: 3 additions & 3 deletions pkg/hook/controller/hook_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ package controller
import (
v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"

"github.com/deckhouse/deckhouse/go_lib/log"
. "github.com/flant/shell-operator/pkg/hook/binding_context"
. "github.com/flant/shell-operator/pkg/hook/types"
"github.com/flant/shell-operator/pkg/kube_events_manager"
. "github.com/flant/shell-operator/pkg/kube_events_manager/types"
"github.com/flant/shell-operator/pkg/schedule_manager"
"github.com/flant/shell-operator/pkg/unilogger"
"github.com/flant/shell-operator/pkg/webhook/admission"
"github.com/flant/shell-operator/pkg/webhook/conversion"
)
Expand Down Expand Up @@ -50,10 +50,10 @@ type HookController struct {
mutatingBindings []MutatingConfig
conversionBindings []ConversionConfig

logger *unilogger.Logger
logger *log.Logger
}

func (hc *HookController) InitKubernetesBindings(bindings []OnKubernetesEventConfig, kubeEventMgr kube_events_manager.KubeEventsManager, logger *unilogger.Logger) {
func (hc *HookController) InitKubernetesBindings(bindings []OnKubernetesEventConfig, kubeEventMgr kube_events_manager.KubeEventsManager, logger *log.Logger) {
if len(bindings) == 0 {
return
}
Expand Down
6 changes: 3 additions & 3 deletions pkg/hook/controller/hook_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"testing"

"github.com/deckhouse/deckhouse/go_lib/log"
. "github.com/onsi/gomega"

"github.com/flant/kube-client/fake"
Expand All @@ -12,15 +13,14 @@ import (
"github.com/flant/shell-operator/pkg/hook/types"
"github.com/flant/shell-operator/pkg/kube_events_manager"
types2 "github.com/flant/shell-operator/pkg/kube_events_manager/types"
"github.com/flant/shell-operator/pkg/unilogger"
)

// Test updating snapshots for combined contexts.
func Test_UpdateSnapshots(t *testing.T) {
g := NewWithT(t)

fc := fake.NewFakeCluster(fake.ClusterVersionV121)
mgr := kube_events_manager.NewKubeEventsManager(context.Background(), fc.Client, unilogger.NewNop())
mgr := kube_events_manager.NewKubeEventsManager(context.Background(), fc.Client, log.NewNop())

testHookConfig := `
configVersion: v1
Expand All @@ -47,7 +47,7 @@ kubernetes:
g.Expect(err).ShouldNot(HaveOccurred())

hc := NewHookController()
hc.InitKubernetesBindings(testCfg.OnKubernetesEvents, mgr, unilogger.NewNop())
hc.InitKubernetesBindings(testCfg.OnKubernetesEvents, mgr, log.NewNop())
hc.EnableScheduleBindings()

// Test case: combined binding context for binding_2 and binding_3.
Expand Down
7 changes: 3 additions & 4 deletions pkg/hook/controller/kubernetes_bindings_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ package controller
import (
"fmt"

"github.com/flant/shell-operator/pkg/unilogger"
log "github.com/flant/shell-operator/pkg/unilogger"
"github.com/deckhouse/deckhouse/go_lib/log"

. "github.com/flant/shell-operator/pkg/hook/binding_context"
. "github.com/flant/shell-operator/pkg/hook/types"
Expand Down Expand Up @@ -50,14 +49,14 @@ type kubernetesBindingsController struct {
// dependencies
kubeEventsManager kube_events_manager.KubeEventsManager

logger *unilogger.Logger
logger *log.Logger
}

// kubernetesHooksController should implement the KubernetesHooksController
var _ KubernetesBindingsController = &kubernetesBindingsController{}

// NewKubernetesBindingsController returns an implementation of KubernetesBindingsController
var NewKubernetesBindingsController = func(logger *unilogger.Logger) *kubernetesBindingsController {
var NewKubernetesBindingsController = func(logger *log.Logger) *kubernetesBindingsController {
return &kubernetesBindingsController{
BindingMonitorLinks: make(map[string]*KubernetesBindingToMonitorLink),
logger: logger,
Expand Down
Loading

0 comments on commit 639b2cc

Please sign in to comment.