-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.go
54 lines (45 loc) · 1.62 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package main
import (
"context"
"github.com/practice/virtual-kubelet-practice/pkg/common"
"github.com/practice/virtual-kubelet-practice/pkg/providers"
"github.com/practice/virtual-kubelet-practice/pkg/remote"
"github.com/sirupsen/logrus"
cli "github.com/virtual-kubelet/node-cli"
//"github.com/virtual-kubelet/node-cli/opts"
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"
)
const (
k8sVersion = "v1.22.0"
providerName = "example-provider"
)
// 启动命令
// go run main.go --provider example-provider --kubeconfig ./config/config.yaml --nodename mynode
func main() {
remoteCRI := remote.NewRemoteCRIContainer(common.R, common.I)
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(providerName, func(cfg provider.InitConfig) (provider.Provider, error) {
return providers.NewCriProvider(common.SetupConfig(cfg), remoteCRI), nil
}),
cli.WithKubernetesNodeVersion(k8sVersion),
// Adds flags and parsing for using logrus as the configured logger
cli.WithPersistentFlags(logConfig.FlagSet()),
cli.WithPersistentPreRunCallback(func() error {
return logruscli.Configure(logConfig, logger)
}),
)
if err != nil {
panic(err)
}
// Args can be specified here, or os.Args[1:] will be used.
if err := node.Run(ctx); err != nil {
panic(err)
}
}