From 02acb50195fe4be06e8edf5d34fd25c4e358896e Mon Sep 17 00:00:00 2001 From: kaiyou <dev@kaiyou.fr> Date: Sun, 30 Oct 2022 17:34:22 +0100 Subject: [PATCH] Start hooking into k8s logging --- cmd/hepto/root.go | 2 +- go.mod | 4 +++- go.sum | 4 ++++ pkg/cluster/log.go | 13 +++++++++++++ pkg/wrappers/kubernetes.go | 17 ++++++++++++++--- 5 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 pkg/cluster/log.go diff --git a/cmd/hepto/root.go b/cmd/hepto/root.go index 8ce6343..05fa7de 100644 --- a/cmd/hepto/root.go +++ b/cmd/hepto/root.go @@ -18,7 +18,7 @@ var rootCmd = &cobra.Command{ Long: `Hepto is a Kubernetes distribution designed for geo-distributed deployments, including across links with noticeable latency.`, Run: func(cmd *cobra.Command, args []string) { - logrus.SetLevel(logrus.DebugLevel) + cluster.SetupLogging() config.Complete() err := selfcontain.RunFun(&config.Container, func() { config.Node.IP = waitForIP() diff --git a/go.mod b/go.mod index 78344cc..02e6a99 100644 --- a/go.mod +++ b/go.mod @@ -37,10 +37,12 @@ replace ( ) require ( + github.com/bombsimon/logrusr/v3 v3.1.0 github.com/containerd/containerd v1.6.8 github.com/containerd/go-runc v1.0.0 github.com/containerd/ttrpc v1.1.1-0.20220420014843-944ef4a40df3 github.com/containernetworking/plugins v1.1.1 + github.com/go-logr/logr v1.2.3 github.com/hashicorp/memberlist v0.4.0 github.com/opencontainers/runc v1.1.4 github.com/pkg/errors v0.9.1 @@ -54,6 +56,7 @@ require ( golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 golang.zx2c4.com/wireguard/wgctrl v0.0.0-20220916014741-473347a5e6e3 k8s.io/component-base v0.26.0-alpha.1 + k8s.io/klog v1.0.0 k8s.io/kubectl v0.0.0 k8s.io/kubernetes v1.25.1 ) @@ -129,7 +132,6 @@ require ( github.com/fsnotify/fsnotify v1.5.4 // indirect github.com/fvbommel/sortorder v1.0.1 // indirect github.com/go-errors/errors v1.0.1 // indirect - github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.19.5 // indirect diff --git a/go.sum b/go.sum index dccc1c0..c2e177e 100644 --- a/go.sum +++ b/go.sum @@ -152,6 +152,8 @@ github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdn github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= +github.com/bombsimon/logrusr/v3 v3.1.0 h1:zORbLM943D+hDMGgyjMhSAz/iDz86ZV72qaak/CA0zQ= +github.com/bombsimon/logrusr/v3 v3.1.0/go.mod h1:PksPPgSFEL2I52pla2glgCyyd2OqOHAnFF5E+g8Ixco= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= @@ -1666,6 +1668,8 @@ k8s.io/csi-translation-lib v0.26.0-alpha.1/go.mod h1:c9kcHanouJ7E/kZdDoxOnYqMl22 k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20220902162205-c0856e24416d/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= +k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= diff --git a/pkg/cluster/log.go b/pkg/cluster/log.go new file mode 100644 index 0000000..a2beee0 --- /dev/null +++ b/pkg/cluster/log.go @@ -0,0 +1,13 @@ +package cluster + +import ( + "github.com/bombsimon/logrusr/v3" + "github.com/sirupsen/logrus" + "k8s.io/klog/v2" +) + +func SetupLogging() { + logrus.SetLevel(logrus.DebugLevel) + log := logrusr.New(logrus.StandardLogger()) + klog.SetLogger(log) +} diff --git a/pkg/wrappers/kubernetes.go b/pkg/wrappers/kubernetes.go index 62f3ad4..c1ea209 100644 --- a/pkg/wrappers/kubernetes.go +++ b/pkg/wrappers/kubernetes.go @@ -4,22 +4,33 @@ import ( "context" "github.com/spf13/pflag" + restclient "k8s.io/client-go/rest" "k8s.io/component-base/cli/flag" apiserver "k8s.io/kubernetes/cmd/kube-apiserver/app" apiserveropts "k8s.io/kubernetes/cmd/kube-apiserver/app/options" cm "k8s.io/kubernetes/cmd/kube-controller-manager/app" + cmopts "k8s.io/kubernetes/cmd/kube-controller-manager/app/options" scheduler "k8s.io/kubernetes/cmd/kube-scheduler/app" scheduleropts "k8s.io/kubernetes/cmd/kube-scheduler/app/options" kubelet "k8s.io/kubernetes/cmd/kubelet/app" ) func ControllerManager(ctx context.Context, args []string) (context.Context, error) { - command := cm.NewControllerManagerCommand() - command.SetArgs(args) newCtx, cancel := context.WithCancel(ctx) + s, err := cmopts.NewKubeControllerManagerOptions() + if err != nil { + cancel() + return nil, err + } + restclient.SetDefaultWarningHandler(restclient.NoWarnings{}) + c, err := s.Config(cm.KnownControllers(), cm.ControllersDisabledByDefault.List()) + if err != nil { + cancel() + return nil, err + } go func() { - command.ExecuteContext(ctx) + cm.Run(c.Complete(), ctx.Done()) cancel() }() -- GitLab