mirror of
https://github.com/k3s-io/k3s.git
synced 2026-06-09 00:33:35 -04:00
Better isolates the K3s implementation from the interface, and aligns
the package path with other projects executors. This should also remove
the indirect flannel dep from other projects that don't use the embedded
executor.
Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
(cherry picked from commit c3ca02aa75)
Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
91 lines
2.2 KiB
Go
91 lines
2.2 KiB
Go
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"
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/urfave/cli/v2"
|
|
crictl2 "sigs.k8s.io/cri-tools/cmd/crictl"
|
|
|
|
_ "github.com/k3s-io/k3s/pkg/executor/embed"
|
|
)
|
|
|
|
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.DisableSliceFlagSeparator = true
|
|
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,
|
|
token.Rotate,
|
|
),
|
|
cmds.NewEtcdSnapshotCommands(
|
|
etcdsnapshot.Delete,
|
|
etcdsnapshot.List,
|
|
etcdsnapshot.Prune,
|
|
etcdsnapshot.Save,
|
|
),
|
|
cmds.NewSecretsEncryptCommands(
|
|
secretsencrypt.Status,
|
|
secretsencrypt.Enable,
|
|
secretsencrypt.Disable,
|
|
secretsencrypt.Prepare,
|
|
secretsencrypt.Rotate,
|
|
secretsencrypt.Reencrypt,
|
|
secretsencrypt.RotateKeys,
|
|
),
|
|
cmds.NewCertCommands(
|
|
cert.Check,
|
|
cert.Rotate,
|
|
cert.RotateCA,
|
|
),
|
|
cmds.NewCompletionCommand(
|
|
completion.Bash,
|
|
completion.Zsh,
|
|
),
|
|
}
|
|
|
|
if err := app.Run(configfilearg.MustParse(os.Args)); err != nil && !errors.Is(err, context.Canceled) {
|
|
logrus.Fatal(err)
|
|
}
|
|
}
|