mirror of https://github.com/k3s-io/k3s
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.0 KiB
84 lines
2.0 KiB
package main |
|
|
|
import ( |
|
"context" |
|
"errors" |
|
"os" |
|
"path/filepath" |
|
|
|
"github.com/docker/docker/pkg/reexec" |
|
"github.com/k3s-io/k3s/pkg/cli/agent" |
|
"github.com/k3s-io/k3s/pkg/cli/cert" |
|
"github.com/k3s-io/k3s/pkg/cli/cmds" |
|
"github.com/k3s-io/k3s/pkg/cli/completion" |
|
"github.com/k3s-io/k3s/pkg/cli/crictl" |
|
"github.com/k3s-io/k3s/pkg/cli/ctr" |
|
"github.com/k3s-io/k3s/pkg/cli/etcdsnapshot" |
|
"github.com/k3s-io/k3s/pkg/cli/kubectl" |
|
"github.com/k3s-io/k3s/pkg/cli/secretsencrypt" |
|
"github.com/k3s-io/k3s/pkg/cli/server" |
|
"github.com/k3s-io/k3s/pkg/cli/token" |
|
"github.com/k3s-io/k3s/pkg/configfilearg" |
|
"github.com/k3s-io/k3s/pkg/containerd" |
|
ctr2 "github.com/k3s-io/k3s/pkg/ctr" |
|
kubectl2 "github.com/k3s-io/k3s/pkg/kubectl" |
|
crictl2 "github.com/kubernetes-sigs/cri-tools/cmd/crictl" |
|
"github.com/sirupsen/logrus" |
|
"github.com/urfave/cli" |
|
) |
|
|
|
func init() { |
|
reexec.Register("containerd", containerd.Main) |
|
reexec.Register("kubectl", kubectl2.Main) |
|
reexec.Register("crictl", crictl2.Main) |
|
reexec.Register("ctr", ctr2.Main) |
|
} |
|
|
|
func main() { |
|
cmd := os.Args[0] |
|
os.Args[0] = filepath.Base(os.Args[0]) |
|
if reexec.Init() { |
|
return |
|
} |
|
os.Args[0] = cmd |
|
|
|
app := cmds.NewApp() |
|
app.Commands = []cli.Command{ |
|
cmds.NewServerCommand(server.Run), |
|
cmds.NewAgentCommand(agent.Run), |
|
cmds.NewKubectlCommand(kubectl.Run), |
|
cmds.NewCRICTL(crictl.Run), |
|
cmds.NewCtrCommand(ctr.Run), |
|
cmds.NewTokenCommands( |
|
token.Create, |
|
token.Delete, |
|
token.Generate, |
|
token.List, |
|
), |
|
cmds.NewEtcdSnapshotCommands( |
|
etcdsnapshot.Delete, |
|
etcdsnapshot.List, |
|
etcdsnapshot.Prune, |
|
etcdsnapshot.Save, |
|
), |
|
cmds.NewSecretsEncryptCommands( |
|
secretsencrypt.Status, |
|
secretsencrypt.Enable, |
|
secretsencrypt.Disable, |
|
secretsencrypt.Prepare, |
|
secretsencrypt.Rotate, |
|
secretsencrypt.Reencrypt, |
|
), |
|
cmds.NewCertCommand( |
|
cmds.NewCertSubcommands( |
|
cert.Rotate, |
|
cert.RotateCA, |
|
), |
|
), |
|
cmds.NewCompletionCommand(completion.Run), |
|
} |
|
|
|
if err := app.Run(configfilearg.MustParse(os.Args)); err != nil && !errors.Is(err, context.Canceled) { |
|
logrus.Fatal(err) |
|
} |
|
}
|
|
|