Skip to content

Commit

Permalink
refact log (#1097)
Browse files Browse the repository at this point in the history
* refact log

Signed-off-by: zwwhdls <[email protected]>
  • Loading branch information
zwwhdls authored Aug 28, 2024
1 parent 0472ea7 commit 489d406
Show file tree
Hide file tree
Showing 74 changed files with 1,008 additions and 961 deletions.
4 changes: 2 additions & 2 deletions .github/scripts/deploy-csi-in-k8s.sh
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ function deploy_webhook() {
sudo kustomize build ${GITHUB_WORKSPACE}/deploy/kubernetes/csi-ci/webhook >> ${GITHUB_WORKSPACE}/deploy/webhook.yaml
sudo ${GITHUB_WORKSPACE}/hack/update_install_script.sh
sudo ${GITHUB_WORKSPACE}/scripts/juicefs-csi-webhook-install.sh print | sed -e "s@juicedata/juicefs-csi-driver.*\$@juicedata/juicefs-csi-driver:${dev_tag}@g" \
-e 's@/var/lib/kubelet@/var/snap/microk8s/common/var/lib/kubelet@g' -e 's@--v=5@--v=6@g' -e "s@juicedata/csi-dashboard.*\$@juicedata/csi-dashboard:${dev_tag}@g" | sudo microk8s.kubectl apply -f -
-e 's@/var/lib/kubelet@/var/snap/microk8s/common/var/lib/kubelet@g' -e "s@juicedata/csi-dashboard.*\$@juicedata/csi-dashboard:${dev_tag}@g" | sudo microk8s.kubectl apply -f -
# Wait until the deploy finish
timeout=0
while true; do
Expand Down Expand Up @@ -161,7 +161,7 @@ function deploy_webhook_provisioner() {
sudo kustomize build ${GITHUB_WORKSPACE}/deploy/kubernetes/csi-ci/webhook-provisioner > ${GITHUB_WORKSPACE}/deploy/webhook.yaml
sudo ${GITHUB_WORKSPACE}/hack/update_install_script.sh
sudo ${GITHUB_WORKSPACE}/scripts/juicefs-csi-webhook-install.sh print | sed -e "s@juicedata/juicefs-csi-driver.*\$@juicedata/juicefs-csi-driver:${dev_tag}@g" \
-e 's@/var/lib/kubelet@/var/snap/microk8s/common/var/lib/kubelet@g' -e 's@--v=5@--v=6@g' -e "s@juicedata/csi-dashboard.*\$@juicedata/csi-dashboard:${dev_tag}@g" | sudo microk8s.kubectl apply -f -
-e 's@/var/lib/kubelet@/var/snap/microk8s/common/var/lib/kubelet@g' -e "s@juicedata/csi-dashboard.*\$@juicedata/csi-dashboard:${dev_tag}@g" | sudo microk8s.kubectl apply -f -
# Wait until the deploy finish
timeout=0
while true; do
Expand Down
17 changes: 9 additions & 8 deletions cmd/app/mount_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import (
"k8s.io/apimachinery/pkg/runtime"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
"k8s.io/klog"
"k8s.io/klog/v2"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/cache"

Expand All @@ -38,6 +38,7 @@ import (

var (
scheme = runtime.NewScheme()
log = klog.NewKlogr().WithName("manager")
)

func init() {
Expand Down Expand Up @@ -79,14 +80,14 @@ func NewMountManager(
}),
})
if err != nil {
klog.Errorf("New mount controller error: %v", err)
log.Error(err, "New mount controller error")
return nil, err
}

// gen k8s client
k8sClient, err := k8sclient.NewClient()
if err != nil {
klog.V(5).Infof("Could not create k8s client %v", err)
log.Error(err, "Could not create k8s client")
return nil, err
}

Expand All @@ -99,22 +100,22 @@ func NewMountManager(
func (m *MountManager) Start(ctx context.Context) {
// init Reconciler(Controller)
if err := (mountctrl.NewMountController(m.client)).SetupWithManager(m.mgr); err != nil {
klog.Errorf("Register mount controller error: %v", err)
log.Error(err, "Register mount controller error")
return
}
if err := (mountctrl.NewJobController(m.client)).SetupWithManager(m.mgr); err != nil {
klog.Errorf("Register job controller error: %v", err)
log.Error(err, "Register job controller error")
return
}
if config.CacheClientConf {
if err := (mountctrl.NewSecretController(m.client)).SetupWithManager(m.mgr); err != nil {
klog.Errorf("Register secret controller error: %v", err)
log.Error(err, "Register secret controller error")
return
}
}
klog.Info("Mount manager started.")
log.Info("Mount manager started.")
if err := m.mgr.Start(ctx); err != nil {
klog.Errorf("Mount manager start error: %v", err)
log.Error(err, "Mount manager start error")
os.Exit(1)
}
}
11 changes: 5 additions & 6 deletions cmd/app/pod_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import (
"k8s.io/apimachinery/pkg/labels"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
"k8s.io/klog"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/cache"

Expand Down Expand Up @@ -62,14 +61,14 @@ func NewPodManager() (*PodManager, error) {
}),
})
if err != nil {
klog.Errorf("New pod controller error: %v", err)
log.Error(err, "New pod controller error")
return nil, err
}

// gen k8s client
k8sClient, err := k8sclient.NewClient()
if err != nil {
klog.V(5).Infof("Could not create k8s client %v", err)
log.Info("Could not create k8s client")
return nil, err
}

Expand All @@ -82,12 +81,12 @@ func NewPodManager() (*PodManager, error) {
func (m *PodManager) Start(ctx context.Context) error {
// init Reconciler(Controller)
if err := (mountctrl.NewPodController(m.client)).SetupWithManager(m.mgr); err != nil {
klog.Errorf("Register pod controller error: %v", err)
log.Error(err, "Register pod controller error")
return err
}
klog.Info("Pod manager started.")
log.Info("Pod manager started.")
if err := m.mgr.Start(ctx); err != nil {
klog.Errorf("Pod manager start error: %v", err)
log.Error(err, "Pod manager start error")
return err
}
return nil
Expand Down
21 changes: 10 additions & 11 deletions cmd/app/webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import (
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/labels"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
"k8s.io/klog"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/cache"

Expand All @@ -44,7 +43,7 @@ func NewWebhookManager(certDir string, webhookPort int, leaderElection bool,
_ = clientgoscheme.AddToScheme(scheme)
cfg, err := ctrl.GetConfig()
if err != nil {
klog.Error(err, "can not get kube config")
log.Error(err, "can not get kube config")
return nil, err
}

Expand All @@ -68,18 +67,18 @@ func NewWebhookManager(certDir string, webhookPort int, leaderElection bool,
})

if err != nil {
klog.Error(err, "initialize controller manager failed")
log.Error(err, "initialize controller manager failed")
return nil, err
}
// gen k8s client
k8sClient, err := k8sclient.NewClient()
if err != nil {
klog.V(5).Infof("Could not create k8s client %v", err)
log.Error(err, "Could not create k8s client")
return nil, err
}
if config.CacheClientConf {
if err := (mountctrl.NewSecretController(k8sClient)).SetupWithManager(mgr); err != nil {
klog.Errorf("Register secret controller error: %v", err)
log.Error(err, "Register secret controller error")
return nil, err
}
}
Expand All @@ -91,30 +90,30 @@ func NewWebhookManager(certDir string, webhookPort int, leaderElection bool,

func (w *WebhookManager) Start(ctx context.Context) error {
if err := w.registerWebhook(); err != nil {
klog.Errorf("Register webhook error: %v", err)
log.Error(err, "Register webhook error")
return err
}
if err := w.registerAppController(); err != nil {
klog.Errorf("Register app controller error: %v", err)
log.Error(err, "Register app controller error")
return err
}
klog.Info("Webhook manager started.")
log.Info("Webhook manager started.")
if err := w.mgr.Start(ctx); err != nil {
klog.Errorf("Webhook manager start error: %v", err)
log.Error(err, "Webhook manager start error")
return err
}
return nil
}

func (w *WebhookManager) registerWebhook() error {
// register admission handlers
klog.Info("Register webhook handler")
log.Info("Register webhook handler")
handler.Register(w.mgr, w.client)
return nil
}

func (w *WebhookManager) registerAppController() error {
// init Reconciler(Controller)
klog.Info("Register app controller")
log.Info("Register app controller")
return (mountctrl.NewAppController(w.client)).SetupWithManager(w.mgr)
}
34 changes: 20 additions & 14 deletions cmd/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import (
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/runtime"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/klog"

"github.com/juicedata/juicefs-csi-driver/cmd/app"
"github.com/juicedata/juicefs-csi-driver/pkg/config"
Expand Down Expand Up @@ -74,7 +73,8 @@ func parseControllerConfig() {
if immutable, err := strconv.ParseBool(jfsImmutable); err == nil {
config.Immutable = immutable
} else {
klog.Errorf("cannot parse JUICEFS_IMMUTABLE: %v", err)
log.Error(err, "cannot parse JUICEFS_IMMUTABLE")
os.Exit(1)
}
}

Expand Down Expand Up @@ -106,17 +106,17 @@ func parseControllerConfig() {
// When not in sidecar mode, we should inherit attributes from CSI Node pod.
k8sclient, err := k8s.NewClient()
if err != nil {
klog.V(5).Infof("Can't get k8s client: %v", err)
os.Exit(0)
log.Error(err, "Can't get k8s client")
os.Exit(1)
}
CSINodeDsName := "juicefs-csi-node"
if name := os.Getenv("JUICEFS_CSI_NODE_DS_NAME"); name != "" {
CSINodeDsName = name
}
ds, err := k8sclient.GetDaemonSet(context.TODO(), CSINodeDsName, config.Namespace)
if err != nil {
klog.V(5).Infof("Can't get DaemonSet %s: %v", CSINodeDsName, err)
os.Exit(0)
log.Error(err, "Can't get DaemonSet", "ds", CSINodeDsName)
os.Exit(1)
}
config.CSIPod = corev1.Pod{
Spec: ds.Spec.Template.Spec,
Expand All @@ -127,15 +127,17 @@ func parseControllerConfig() {
func controllerRun(ctx context.Context) {
parseControllerConfig()
if nodeID == "" {
klog.Fatalln("nodeID must be provided")
log.Info("nodeID must be provided")
os.Exit(1)
}

// http server for pprof
go func() {
port := 6060
for {
if err := http.ListenAndServe(fmt.Sprintf("localhost:%d", port), nil); err != nil {
klog.Errorf("failed to start pprof server: %v", err)
log.Error(err, "failed to start pprof server")
os.Exit(1)
}
port++
}
Expand All @@ -157,7 +159,7 @@ func controllerRun(ctx context.Context) {
Handler: mux,
}
if err := server.ListenAndServe(); err != nil {
klog.Errorf("failed to start metrics server: %v", err)
log.Error(err, "failed to start metrics server")
}
}()

Expand All @@ -166,7 +168,7 @@ func controllerRun(ctx context.Context) {
go func() {
mgr, err := app.NewMountManager(leaderElection, leaderElectionNamespace, leaderElectionLeaseDuration)
if err != nil {
klog.Error(err)
log.Error(err, "fail to create mount manager")
return
}
mgr.Start(ctx)
Expand All @@ -178,24 +180,28 @@ func controllerRun(ctx context.Context) {
go func() {
mgr, err := app.NewWebhookManager(certDir, webhookPort, leaderElection, leaderElectionNamespace, leaderElectionLeaseDuration)
if err != nil {
klog.Fatalln(err)
log.Error(err, "fail to create webhook manager")
os.Exit(1)
}

if err := mgr.Start(ctx); err != nil {
klog.Fatalln(err)
log.Error(err, "fail to start webhook manager")
os.Exit(1)
}
}()
}

drv, err := driver.NewDriver(endpoint, nodeID, leaderElection, leaderElectionNamespace, leaderElectionLeaseDuration, registerer)
if err != nil {
klog.Fatalln(err)
log.Error(err, "fail to create driver")
os.Exit(1)
}
go func() {
<-ctx.Done()
drv.Stop()
}()
if err := drv.Run(); err != nil {
klog.Fatalln(err)
log.Error(err, "fail to run driver")
os.Exit(1)
}
}
27 changes: 17 additions & 10 deletions cmd/dashboard/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (
"context"
goflag "flag"
"fmt"
"log"
"net/http"
_ "net/http/pprof"
"os"
Expand All @@ -40,7 +39,7 @@ import (
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
"k8s.io/client-go/util/homedir"
"k8s.io/klog"
"k8s.io/klog/v2"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/cache"

Expand All @@ -58,6 +57,7 @@ const (

var (
scheme = runtime.NewScheme()
log = klog.NewKlogr().WithName("main")

port uint16
devMode bool
Expand Down Expand Up @@ -114,11 +114,13 @@ func run() {
config = ctrl.GetConfigOrDie()
}
if err != nil {
log.Fatalf("can't get k8s config: %v", err)
log.Error(err, "can't get k8s config")
os.Exit(1)
}
mgr, err := newManager(config)
if err != nil {
log.Fatalf("can't create manager: %v", err)
log.Error(err, "can't create manager")
os.Exit(1)
}
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
Expand Down Expand Up @@ -159,28 +161,33 @@ func run() {
}

go func() {
log.Printf("listen on %s\n", addr)
log.Info("listen and serve", "addr", addr)
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
log.Fatalf("listen: %s\n", err)
log.Error(err, "listen error")
os.Exit(1)
}
}()
go func() {
// pprof server
log.Println(http.ListenAndServe("localhost:8089", nil))
err = http.ListenAndServe("localhost:8089", nil)
if err != nil {
log.Error(err, "pprof server error")
}
}()
quit := make(chan os.Signal, 1)
go func() {
if err := podApi.StartManager(ctx, mgr); err != nil {
klog.Errorf("manager start error: %v", err)
log.Error(err, "manager start error")
}
quit <- syscall.SIGTERM
}()

signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
<-quit
log.Println("Shutdown Server ...")
log.Info("Shutdown Server ...")
if err := srv.Shutdown(ctx); err != nil {
log.Fatal("Server Shutdown:", err)
log.Error(err, "Server Shutdown")
os.Exit(1)
}
}

Expand Down
Loading

0 comments on commit 489d406

Please sign in to comment.