This project provides a library for rapid prototyping of a virtual-kubelet node. It is not intended for production use and may have breaking changes, but takes as much as made sense from the old command line code from github.com/virtual-kubelet/virtual-kubelet.
package main
import (
"context""errors""github.com/sirupsen/logrus"
cli "github.com/virtual-kubelet/node-cli"
logruscli "github.com/virtual-kubelet/node-cli/logrus""github.com/virtual-kubelet/node-cli/provider""github.com/virtual-kubelet/virtual-kubelet/log"
logruslogger "github.com/virtual-kubelet/virtual-kubelet/log/logrus"
)
funcmain() {
ctx:=cli.ContextWithCancelOnSignal(context.Background())
logger:=logrus.StandardLogger()
log.L=logruslogger.FromLogrus(logrus.NewEntry(logger))
logConfig:=&logruscli.Config{LogLevel: "info"}
node, err:=cli.New(ctx,
cli.WithProvider("demo", func(cfg provider.InitConfig) (provider.Provider, error) {
returnnil, errors.New("your implementation goes here")
}),
// Adds flags and parsing for using logrus as the configured loggercli.WithPersistentFlags(logConfig.FlagSet()),
cli.WithPersistentPreRunCallback(func() error {
returnlogruscli.Configure(logConfig, logger)
}),
)
iferr!=nil {
panic(err)
}
// Args can be specified here, or os.Args[1:] will be used.iferr:=node.Run(ctx); err!=nil {
panic(err)
}
}