diff --git a/pkg/agent/run.go b/pkg/agent/run.go index 9e9ba0a953a2..4c879d3aa025 100644 --- a/pkg/agent/run.go +++ b/pkg/agent/run.go @@ -372,6 +372,11 @@ func setupTunnelAndRunAgent(ctx context.Context, nodeConfig *daemonconfig.Node, case <-ctx.Done(): return ctx.Err() } + } else if cfg.ClusterReset && proxy.IsAPIServerLBEnabled() { + if err := agent.Agent(&nodeConfig.AgentConfig); err != nil { + return err + } + agentRan = true } if err := tunnel.Setup(ctx, nodeConfig, proxy); err != nil { diff --git a/pkg/cli/cmds/agent.go b/pkg/cli/cmds/agent.go index 3f031ff62898..98d9fc48993a 100644 --- a/pkg/cli/cmds/agent.go +++ b/pkg/cli/cmds/agent.go @@ -37,11 +37,7 @@ type Agent struct { EnableSELinux bool ProtectKernelDefaults bool AgentShared - ExtraKubeletArgs cli.StringSlice - ExtraKubeProxyArgs cli.StringSlice - Labels cli.StringSlice - Taints cli.StringSlice - PrivateRegistry string + ClusterReset bool } type AgentShared struct { diff --git a/pkg/cli/server/server.go b/pkg/cli/server/server.go index 42bf40e61066..8018c30f5785 100644 --- a/pkg/cli/server/server.go +++ b/pkg/cli/server/server.go @@ -333,6 +333,7 @@ func run(app *cli.Context, cfg *cmds.Server, leaderControllers server.CustomCont agentConfig.Token = token agentConfig.DisableLoadBalancer = !serverConfig.ControlConfig.DisableAPIServer agentConfig.ETCDAgent = serverConfig.ControlConfig.DisableAPIServer + agentConfig.ClusterReset = serverConfig.ControlConfig.ClusterReset agentConfig.Rootless = cfg.Rootless diff --git a/pkg/cluster/managed.go b/pkg/cluster/managed.go index e3e041ad0fbf..5c09a0db94ea 100644 --- a/pkg/cluster/managed.go +++ b/pkg/cluster/managed.go @@ -69,9 +69,12 @@ func (c *Cluster) start(ctx context.Context) error { if !os.IsNotExist(err) { return err } - } else { - return fmt.Errorf("cluster-reset was successfully performed, please remove the cluster-reset flag and start %s normally, if you need to perform another cluster reset, you must first manually delete the %s file", version.Program, resetFile) + rebootstrap := func() error { + return c.storageBootstrap(ctx) + } + return c.managedDB.Reset(ctx, rebootstrap) } + return fmt.Errorf("cluster-reset was successfully performed, please remove the cluster-reset flag and start %s normally, if you need to perform another cluster reset, you must first manually delete the %s file", version.Program, resetFile) } // removing the reset file and ignore error if the file doesn't exist