From 118a68c9139a61fd9372b835d18fed802edab166 Mon Sep 17 00:00:00 2001 From: Derek Nola Date: Tue, 2 Aug 2022 13:51:16 -0700 Subject: [PATCH] Updates to CLI flag grouping + deprecated flag warnings. (#5937) * Consolidate data dir flag * Group cluster flags together * Reorder and group agent flags * Add additional info around vmodule flag * Hide deprecated flags, and add warning about their removal Signed-off-by: Derek Nola --- pkg/agent/config/config.go | 3 ++ pkg/cli/agent/agent.go | 1 + pkg/cli/cmds/agent.go | 62 +++++++++++----------- pkg/cli/cmds/certs.go | 6 +-- pkg/cli/cmds/log.go | 2 +- pkg/cli/cmds/root.go | 2 +- pkg/cli/cmds/server.go | 104 +++++++++++++++++++------------------ pkg/cli/server/server.go | 2 + 8 files changed, 94 insertions(+), 88 deletions(-) diff --git a/pkg/agent/config/config.go b/pkg/agent/config/config.go index b0ee7a0afc6c..a281549b3513 100644 --- a/pkg/agent/config/config.go +++ b/pkg/agent/config/config.go @@ -515,6 +515,9 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N if nodeConfig.FlannelBackend == config.FlannelBackendNone { nodeConfig.NoFlannel = true + } else if envInfo.NoFlannel { + logrus.Warn("no-flannel is deprecated, it will be removed in v1.25. Use --flannel-backend=none instead.") + nodeConfig.NoFlannel = envInfo.NoFlannel } else { nodeConfig.NoFlannel = envInfo.NoFlannel } diff --git a/pkg/cli/agent/agent.go b/pkg/cli/agent/agent.go index baa58d8a7550..569a95fe9fa8 100644 --- a/pkg/cli/agent/agent.go +++ b/pkg/cli/agent/agent.go @@ -46,6 +46,7 @@ func Run(ctx *cli.Context) error { } if cmds.AgentConfig.Token == "" && cmds.AgentConfig.ClusterSecret != "" { + logrus.Warn("cluster-secret is deprecated, it will be removed in v1.25. Use --token instead.") cmds.AgentConfig.Token = cmds.AgentConfig.ClusterSecret } diff --git a/pkg/cli/cmds/agent.go b/pkg/cli/cmds/agent.go index eed7760532a5..116ae1b62424 100644 --- a/pkg/cli/cmds/agent.go +++ b/pkg/cli/cmds/agent.go @@ -86,11 +86,23 @@ var ( Usage: "(agent/node) Append id to node name", Destination: &AgentConfig.WithNodeID, } - DockerFlag = cli.BoolFlag{ - Hidden: true, - Name: "docker", - Usage: "(deprecated) (agent/runtime) Use docker instead of containerd", - Destination: &AgentConfig.Docker, + ProtectKernelDefaultsFlag = cli.BoolFlag{ + Name: "protect-kernel-defaults", + Usage: "(agent/node) Kernel tuning behavior. If set, error if kernel tunables are different than kubelet defaults.", + Destination: &AgentConfig.ProtectKernelDefaults, + } + SELinuxFlag = cli.BoolFlag{ + Name: "selinux", + Usage: "(agent/node) Enable SELinux in containerd", + Destination: &AgentConfig.EnableSELinux, + EnvVar: version.ProgramUpper + "_SELINUX", + } + LBServerPortFlag = cli.IntFlag{ + Name: "lb-server-port", + Usage: "(agent/node) Local port for supervisor client load-balancer. If the supervisor and apiserver are not colocated an additional port 1 less than this port will also be used for the apiserver client load-balancer.", + Destination: &AgentConfig.LBServerPort, + EnvVar: version.ProgramUpper + "_LB_SERVER_PORT", + Value: 6444, } CRIEndpointFlag = cli.StringFlag{ Name: "container-runtime-endpoint", @@ -121,11 +133,6 @@ var ( Destination: &AgentConfig.Snapshotter, Value: DefaultSnapshotter, } - FlannelFlag = cli.BoolFlag{ - Name: "no-flannel", - Usage: "(deprecated) use --flannel-backend=none", - Destination: &AgentConfig.NoFlannel, - } FlannelIfaceFlag = cli.StringFlag{ Name: "flannel-iface", Usage: "(agent/networking) Override default flannel interface", @@ -184,23 +191,17 @@ var ( Usage: "(deprecated) Use --selinux to explicitly enable SELinux", Hidden: true, } - ProtectKernelDefaultsFlag = cli.BoolFlag{ - Name: "protect-kernel-defaults", - Usage: "(agent/node) Kernel tuning behavior. If set, error if kernel tunables are different than kubelet defaults.", - Destination: &AgentConfig.ProtectKernelDefaults, - } - SELinuxFlag = cli.BoolFlag{ - Name: "selinux", - Usage: "(agent/node) Enable SELinux in containerd", - Destination: &AgentConfig.EnableSELinux, - EnvVar: version.ProgramUpper + "_SELINUX", + DockerFlag = cli.BoolFlag{ + Hidden: true, + Name: "docker", + Usage: "(deprecated) (agent/runtime) Use docker instead of containerd", + Destination: &AgentConfig.Docker, } - LBServerPortFlag = cli.IntFlag{ - Name: "lb-server-port", - Usage: "(agent/node) Local port for supervisor client load-balancer. If the supervisor and apiserver are not colocated an additional port 1 less than this port will also be used for the apiserver client load-balancer.", - Destination: &AgentConfig.LBServerPort, - EnvVar: version.ProgramUpper + "_LB_SERVER_PORT", - Value: 6444, + FlannelFlag = cli.BoolFlag{ + Hidden: true, + Name: "no-flannel", + Usage: "(deprecated) use --flannel-backend=none", + Destination: &AgentConfig.NoFlannel, } ) @@ -253,7 +254,9 @@ func NewAgentCommand(action func(ctx *cli.Context) error) cli.Command { NodeTaints, ImageCredProvBinDirFlag, ImageCredProvConfigFlag, - DockerFlag, + &SELinuxFlag, + LBServerPortFlag, + ProtectKernelDefaultsFlag, CRIEndpointFlag, PauseImageFlag, SnapshotterFlag, @@ -267,24 +270,23 @@ func NewAgentCommand(action func(ctx *cli.Context) error) cli.Command { FlannelCniConfFileFlag, ExtraKubeletArgs, ExtraKubeProxyArgs, - ProtectKernelDefaultsFlag, cli.BoolFlag{ Name: "rootless", Usage: "(experimental) Run rootless", Destination: &AgentConfig.Rootless, }, - &SELinuxFlag, - LBServerPortFlag, // Deprecated/hidden below &DisableSELinuxFlag, + DockerFlag, FlannelFlag, cli.StringFlag{ Name: "cluster-secret", Usage: "(deprecated) use --token", Destination: &AgentConfig.ClusterSecret, EnvVar: version.ProgramUpper + "_CLUSTER_SECRET", + Hidden: true, }, }, } diff --git a/pkg/cli/cmds/certs.go b/pkg/cli/cmds/certs.go index e4384f8f4c63..8a974d2768c2 100644 --- a/pkg/cli/cmds/certs.go +++ b/pkg/cli/cmds/certs.go @@ -14,11 +14,7 @@ var ( ConfigFlag, LogFile, AlsoLogToStderr, - cli.StringFlag{ - Name: "data-dir,d", - Usage: "(data) Folder to hold state default /var/lib/rancher/" + version.Program + " or ${HOME}/.rancher/" + version.Program + " if not root", - Destination: &ServerConfig.DataDir, - }, + DataDirFlag, cli.StringSliceFlag{ Name: "service,s", Usage: "List of services to rotate certificates for. Options include (admin, api-server, controller-manager, scheduler, " + version.Program + "-controller, " + version.Program + "-server, cloud-controller, etcd, auth-proxy, kubelet, kube-proxy)", diff --git a/pkg/cli/cmds/log.go b/pkg/cli/cmds/log.go index 32586bf79820..6ebb096895e2 100644 --- a/pkg/cli/cmds/log.go +++ b/pkg/cli/cmds/log.go @@ -28,7 +28,7 @@ var ( } VModule = cli.StringFlag{ Name: "vmodule", - Usage: "(logging) Comma-separated list of pattern=N settings for file-filtered logging", + Usage: "(logging) Comma-separated list of FILE_PATTERN=LOG_LEVEL settings for file-filtered logging", Destination: &LogConfig.VModule, } LogFile = cli.StringFlag{ diff --git a/pkg/cli/cmds/root.go b/pkg/cli/cmds/root.go index 0e2dbf791ae8..eece55ac5b1c 100644 --- a/pkg/cli/cmds/root.go +++ b/pkg/cli/cmds/root.go @@ -39,7 +39,7 @@ func NewApp() *cli.App { DebugFlag, cli.StringFlag{ Name: "data-dir,d", - Usage: "(data) Folder to hold state default /var/lib/rancher/" + version.Program + " or ${HOME}/.rancher/" + version.Program + " if not root", + Usage: "(data) Folder to hold state (default: /var/lib/rancher/" + version.Program + " or ${HOME}/.rancher/" + version.Program + " if not root)", }, } diff --git a/pkg/cli/cmds/server.go b/pkg/cli/cmds/server.go index f726a0461348..3773267268d5 100644 --- a/pkg/cli/cmds/server.go +++ b/pkg/cli/cmds/server.go @@ -218,7 +218,7 @@ var ServerFlags = []cli.Flag{ }, cli.StringFlag{ Name: "egress-selector-mode", - Usage: "(networking) One of 'agent', cluster', 'pod', 'disabled'", + Usage: "(networking) One of 'agent', 'cluster', 'pod', 'disabled'", Destination: &ServerConfig.EgressSelectorMode, Value: "agent", }, @@ -228,13 +228,6 @@ var ServerFlags = []cli.Flag{ Destination: &ServerConfig.ServiceLBNamespace, Value: "kube-system", }, - ServerToken, - cli.StringFlag{ - Name: "token-file", - Usage: "(cluster) File containing the cluster-secret/token", - Destination: &ServerConfig.TokenFile, - EnvVar: version.ProgramUpper + "_TOKEN_FILE", - }, cli.StringFlag{ Name: "write-kubeconfig,o", Usage: "(client) Write kubeconfig for admin client to this file", @@ -247,10 +240,47 @@ var ServerFlags = []cli.Flag{ Destination: &ServerConfig.KubeConfigMode, EnvVar: version.ProgramUpper + "_KUBECONFIG_MODE", }, + ServerToken, + cli.StringFlag{ + Name: "token-file", + Usage: "(cluster) File containing the cluster-secret/token", + Destination: &ServerConfig.TokenFile, + EnvVar: version.ProgramUpper + "_TOKEN_FILE", + }, + cli.StringFlag{ + Name: "agent-token", + Usage: "(cluster) Shared secret used to join agents to the cluster, but not servers", + Destination: &ServerConfig.AgentToken, + EnvVar: version.ProgramUpper + "_AGENT_TOKEN", + }, + cli.StringFlag{ + Name: "agent-token-file", + Usage: "(cluster) File containing the agent secret", + Destination: &ServerConfig.AgentTokenFile, + EnvVar: version.ProgramUpper + "_AGENT_TOKEN_FILE", + }, + cli.StringFlag{ + Name: "server,s", + Usage: "(cluster) Server to connect to, used to join a cluster", + EnvVar: version.ProgramUpper + "_URL", + Destination: &ServerConfig.ServerURL, + }, cli.BoolFlag{ - Name: "enable-pprof", - Usage: "(experimental) Enable pprof endpoint on supervisor port", - Destination: &ServerConfig.EnablePProf, + Name: "cluster-init", + Usage: "(cluster) Initialize a new cluster using embedded Etcd", + EnvVar: version.ProgramUpper + "_CLUSTER_INIT", + Destination: &ServerConfig.ClusterInit, + }, + cli.BoolFlag{ + Name: "cluster-reset", + Usage: "(cluster) Forget all peers and become sole member of a new cluster", + EnvVar: version.ProgramUpper + "_CLUSTER_RESET", + Destination: &ServerConfig.ClusterReset, + }, + &cli.StringFlag{ + Name: "cluster-reset-restore-path", + Usage: "(db) Path to snapshot file to be restored", + Destination: &ServerConfig.ClusterResetRestorePath, }, ExtraAPIArgs, ExtraEtcdArgs, @@ -287,7 +317,7 @@ var ServerFlags = []cli.Flag{ }, &cli.BoolFlag{ Name: "etcd-expose-metrics", - Usage: "(db) Expose etcd metrics to client interface. (Default false)", + Usage: "(db) Expose etcd metrics to client interface. (default: false)", Destination: &ServerConfig.EtcdExposeMetrics, }, &cli.BoolFlag{ @@ -297,7 +327,7 @@ var ServerFlags = []cli.Flag{ }, &cli.StringFlag{ Name: "etcd-snapshot-name", - Usage: "(db) Set the base name of etcd snapshots. Default: etcd-snapshot-", + Usage: "(db) Set the base name of etcd snapshots (default: etcd-snapshot-)", Destination: &ServerConfig.EtcdSnapshotName, Value: "etcd-snapshot", }, @@ -315,7 +345,7 @@ var ServerFlags = []cli.Flag{ }, &cli.StringFlag{ Name: "etcd-snapshot-dir", - Usage: "(db) Directory to save db snapshots. (Default location: ${data-dir}/db/snapshots)", + Usage: "(db) Directory to save db snapshots. (default: ${data-dir}/db/snapshots)", Destination: &ServerConfig.EtcdSnapshotDir, }, &cli.BoolFlag{ @@ -456,46 +486,16 @@ var ServerFlags = []cli.Flag{ ExtraKubeletArgs, ExtraKubeProxyArgs, ProtectKernelDefaultsFlag, + cli.BoolFlag{ + Name: "enable-pprof", + Usage: "(experimental) Enable pprof endpoint on supervisor port", + Destination: &ServerConfig.EnablePProf, + }, cli.BoolFlag{ Name: "rootless", Usage: "(experimental) Run rootless", Destination: &ServerConfig.Rootless, }, - cli.StringFlag{ - Name: "agent-token", - Usage: "(cluster) Shared secret used to join agents to the cluster, but not servers", - Destination: &ServerConfig.AgentToken, - EnvVar: version.ProgramUpper + "_AGENT_TOKEN", - }, - cli.StringFlag{ - Name: "agent-token-file", - Usage: "(cluster) File containing the agent secret", - Destination: &ServerConfig.AgentTokenFile, - EnvVar: version.ProgramUpper + "_AGENT_TOKEN_FILE", - }, - cli.StringFlag{ - Name: "server,s", - Usage: "(cluster) Server to connect to, used to join a cluster", - EnvVar: version.ProgramUpper + "_URL", - Destination: &ServerConfig.ServerURL, - }, - cli.BoolFlag{ - Name: "cluster-init", - Usage: "(cluster) Initialize a new cluster using embedded Etcd", - EnvVar: version.ProgramUpper + "_CLUSTER_INIT", - Destination: &ServerConfig.ClusterInit, - }, - cli.BoolFlag{ - Name: "cluster-reset", - Usage: "(cluster) Forget all peers and become sole member of a new cluster", - EnvVar: version.ProgramUpper + "_CLUSTER_RESET", - Destination: &ServerConfig.ClusterReset, - }, - &cli.StringFlag{ - Name: "cluster-reset-restore-path", - Usage: "(db) Path to snapshot file to be restored", - Destination: &ServerConfig.ClusterResetRestorePath, - }, cli.BoolFlag{ Name: "secrets-encryption", Usage: "(experimental) Enable Secret encryption at rest", @@ -515,14 +515,16 @@ var ServerFlags = []cli.Flag{ &DisableSELinuxFlag, FlannelFlag, cli.StringSliceFlag{ - Name: "no-deploy", - Usage: "(deprecated) Do not deploy packaged components (valid items: " + DisableItems + ")", + Name: "no-deploy", + Usage: "(deprecated) Do not deploy packaged components (valid items: " + DisableItems + ")", + Hidden: true, }, cli.StringFlag{ Name: "cluster-secret", Usage: "(deprecated) use --token", Destination: &ServerConfig.ClusterSecret, EnvVar: version.ProgramUpper + "_CLUSTER_SECRET", + Hidden: true, }, cli.BoolFlag{ Name: "disable-agent", diff --git a/pkg/cli/server/server.go b/pkg/cli/server/server.go index c0aeb13c0b0f..caaa207092ee 100644 --- a/pkg/cli/server/server.go +++ b/pkg/cli/server/server.go @@ -88,6 +88,7 @@ func run(app *cli.Context, cfg *cmds.Server, leaderControllers server.CustomCont } if cfg.Token == "" && cfg.ClusterSecret != "" { + logrus.Warn("cluster-secret is deprecated, it will be removed in v1.25. Use --token instead.") cfg.Token = cfg.ClusterSecret } @@ -348,6 +349,7 @@ func run(app *cli.Context, cfg *cmds.Server, leaderControllers server.CustomCont serverConfig.ControlConfig.Skips = map[string]bool{} for _, noDeploy := range app.StringSlice("no-deploy") { + logrus.Warn("no-deploy flag is deprecated, it will be removed in v1.25. Use --skip-deploy instead.") for _, v := range strings.Split(noDeploy, ",") { v = strings.TrimSpace(v) serverConfig.ControlConfig.Skips[v] = true