mirror of
https://github.com/k3s-io/k3s.git
synced 2024-06-07 19:41:36 +00:00
Move ClusterResetRestore handling ControlConfig setup
Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
This commit is contained in:
parent
a3190bd146
commit
a0cadcd343
@ -165,43 +165,6 @@ func run(app *cli.Context, cfg *cmds.Server, leaderControllers server.CustomCont
|
|||||||
return errors.New("invalid flag use; --cluster-reset required with --cluster-reset-restore-path")
|
return errors.New("invalid flag use; --cluster-reset required with --cluster-reset-restore-path")
|
||||||
}
|
}
|
||||||
|
|
||||||
// make sure components are disabled so we only perform a restore
|
|
||||||
// and bail out
|
|
||||||
if cfg.ClusterResetRestorePath != "" && cfg.ClusterReset {
|
|
||||||
serverConfig.ControlConfig.ClusterInit = true
|
|
||||||
serverConfig.ControlConfig.DisableAPIServer = true
|
|
||||||
serverConfig.ControlConfig.DisableControllerManager = true
|
|
||||||
serverConfig.ControlConfig.DisableScheduler = true
|
|
||||||
serverConfig.ControlConfig.DisableCCM = true
|
|
||||||
|
|
||||||
// only close the agentReady channel in case of k3s restoration, because k3s does not start
|
|
||||||
// the agent until server returns successfully, unlike rke2's agent which starts in parallel
|
|
||||||
// with the server
|
|
||||||
if serverConfig.ControlConfig.SupervisorPort == serverConfig.ControlConfig.HTTPSPort {
|
|
||||||
close(agentReady)
|
|
||||||
}
|
|
||||||
|
|
||||||
dataDir, err := datadir.LocalHome(cfg.DataDir, false)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
// delete local loadbalancers state for apiserver and supervisor servers
|
|
||||||
loadbalancer.ResetLoadBalancer(filepath.Join(dataDir, "agent"), loadbalancer.SupervisorServiceName)
|
|
||||||
loadbalancer.ResetLoadBalancer(filepath.Join(dataDir, "agent"), loadbalancer.APIServerServiceName)
|
|
||||||
|
|
||||||
// at this point we're doing a restore. Check to see if we've
|
|
||||||
// passed in a token and if not, check if the token file exists.
|
|
||||||
// If it doesn't, return an error indicating the token is necessary.
|
|
||||||
if cfg.Token == "" {
|
|
||||||
tokenFile := filepath.Join(dataDir, "server", "token")
|
|
||||||
if _, err := os.Stat(tokenFile); err != nil {
|
|
||||||
if os.IsNotExist(err) {
|
|
||||||
return errors.New(tokenFile + " does not exist, please pass --token to complete the restoration")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
serverConfig.ControlConfig.ClusterReset = cfg.ClusterReset
|
serverConfig.ControlConfig.ClusterReset = cfg.ClusterReset
|
||||||
serverConfig.ControlConfig.ClusterResetRestorePath = cfg.ClusterResetRestorePath
|
serverConfig.ControlConfig.ClusterResetRestorePath = cfg.ClusterResetRestorePath
|
||||||
serverConfig.ControlConfig.SystemDefaultRegistry = cfg.SystemDefaultRegistry
|
serverConfig.ControlConfig.SystemDefaultRegistry = cfg.SystemDefaultRegistry
|
||||||
@ -417,6 +380,43 @@ func run(app *cli.Context, cfg *cmds.Server, leaderControllers server.CustomCont
|
|||||||
return errors.Wrap(err, "invalid tls-cipher-suites")
|
return errors.Wrap(err, "invalid tls-cipher-suites")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// make sure components are disabled so we only perform a restore
|
||||||
|
// and bail out
|
||||||
|
if cfg.ClusterResetRestorePath != "" && cfg.ClusterReset {
|
||||||
|
serverConfig.ControlConfig.ClusterInit = true
|
||||||
|
serverConfig.ControlConfig.DisableAPIServer = true
|
||||||
|
serverConfig.ControlConfig.DisableControllerManager = true
|
||||||
|
serverConfig.ControlConfig.DisableScheduler = true
|
||||||
|
serverConfig.ControlConfig.DisableCCM = true
|
||||||
|
|
||||||
|
// only close the agentReady channel in case of k3s restoration, because k3s does not start
|
||||||
|
// the agent until server returns successfully, unlike rke2's agent which starts in parallel
|
||||||
|
// with the server
|
||||||
|
if serverConfig.ControlConfig.SupervisorPort == serverConfig.ControlConfig.HTTPSPort {
|
||||||
|
close(agentReady)
|
||||||
|
}
|
||||||
|
|
||||||
|
dataDir, err := datadir.LocalHome(cfg.DataDir, false)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
// delete local loadbalancers state for apiserver and supervisor servers
|
||||||
|
loadbalancer.ResetLoadBalancer(filepath.Join(dataDir, "agent"), loadbalancer.SupervisorServiceName)
|
||||||
|
loadbalancer.ResetLoadBalancer(filepath.Join(dataDir, "agent"), loadbalancer.APIServerServiceName)
|
||||||
|
|
||||||
|
// at this point we're doing a restore. Check to see if we've
|
||||||
|
// passed in a token and if not, check if the token file exists.
|
||||||
|
// If it doesn't, return an error indicating the token is necessary.
|
||||||
|
if cfg.Token == "" {
|
||||||
|
tokenFile := filepath.Join(dataDir, "server", "token")
|
||||||
|
if _, err := os.Stat(tokenFile); err != nil {
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
return errors.New(tokenFile + " does not exist, please pass --token to complete the restoration")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
logrus.Info("Starting " + version.Program + " " + app.App.Version)
|
logrus.Info("Starting " + version.Program + " " + app.App.Version)
|
||||||
|
|
||||||
notifySocket := os.Getenv("NOTIFY_SOCKET")
|
notifySocket := os.Getenv("NOTIFY_SOCKET")
|
||||||
|
Loading…
Reference in New Issue
Block a user