fix: scaledown processor checker error (#4815)

* fix: scaledown processor checker error
This commit is contained in:
榴莲榴莲
2024-07-02 10:55:55 +08:00
committed by GitHub
parent 694ddb9764
commit 8382b4b594
3 changed files with 38 additions and 20 deletions
+1 -1
View File
@@ -85,7 +85,7 @@ func (c *CreateProcessor) Check(cluster *v2.Cluster) error {
// the order doesn't matter
ips = append(ips, cluster.GetMasterIPAndPortList()...)
ips = append(ips, cluster.GetNodeIPAndPortList()...)
return NewCheckError(checker.RunCheckList([]checker.Interface{checker.NewIPsHostChecker(ips)}, cluster, checker.PhasePre))
return NewCheckError(checker.RunCheckList([]checker.Interface{checker.NewIPsHostChecker(ips), checker.NewContainerdChecker(ips)}, cluster, checker.PhasePre))
}
func (c *CreateProcessor) PreProcess(cluster *v2.Cluster) error {
+4 -4
View File
@@ -154,11 +154,11 @@ func (c ScaleProcessor) UnMountRootfs(cluster *v2.Cluster) error {
func (c *ScaleProcessor) JoinCheck(cluster *v2.Cluster) error {
logger.Info("Executing pipeline JoinCheck in ScaleProcessor.")
var ips []string
var ips, scales []string
ips = append(ips, cluster.GetMaster0IPAndPort())
ips = append(ips, c.MastersToJoin...)
ips = append(ips, c.NodesToJoin...)
return NewCheckError(checker.RunCheckList([]checker.Interface{checker.NewIPsHostChecker(ips)}, cluster, checker.PhasePre))
scales = append(c.MastersToJoin, c.NodesToJoin...)
ips = append(ips, scales...)
return NewCheckError(checker.RunCheckList([]checker.Interface{checker.NewIPsHostChecker(ips), checker.NewContainerdChecker(scales)}, cluster, checker.PhasePre))
}
func (c *ScaleProcessor) DeleteCheck(cluster *v2.Cluster) error {
+33 -15
View File
@@ -47,9 +47,6 @@ func (a HostChecker) Check(cluster *v2.Cluster, _ string) error {
if err := checkHostnameUnique(execer, ipList); err != nil {
return err
}
if err := checkContainerd(execer, ipList); err != nil {
return err
}
return checkTimeSync(execer, ipList)
}
@@ -94,18 +91,6 @@ func checkTimeSync(s exec.Interface, ipList []string) error {
return nil
}
// Check whether the containerd is installed
func checkContainerd(s exec.Interface, ipList []string) error {
logger.Info("checker:containerd %v", ipList)
for _, ip := range ipList {
_, err := s.CmdToString(ip, "containerd --version", "")
if err == nil {
return fmt.Errorf("containerd is installed on %s please uninstall it first", ip)
}
}
return nil
}
func confirmNonOddMasters() error {
prompt := "Warning: Using an even number of master nodes is a risky operation and can lead to reduced high availability and potential resource wastage. " +
"It is strongly recommended to use an odd number of master nodes for optimal cluster stability. " +
@@ -120,3 +105,36 @@ func confirmNonOddMasters() error {
}
return nil
}
type ContainerdChecker struct {
IPs []string
}
func NewContainerdChecker(ips []string) Interface {
return &ContainerdChecker{IPs: ips}
}
func (a ContainerdChecker) Check(cluster *v2.Cluster, _ string) error {
var ipList []string
if len(a.IPs) != 0 {
ipList = a.IPs
}
sshClient := ssh.NewCacheClientFromCluster(cluster, false)
execer, err := exec.New(sshClient)
if err != nil {
return err
}
return checkContainerd(execer, ipList)
}
// Check whether the containerd is installed
func checkContainerd(s exec.Interface, ipList []string) error {
logger.Info("checker:containerd %v", ipList)
for _, ip := range ipList {
_, err := s.CmdToString(ip, "containerd --version", "")
if err == nil {
return fmt.Errorf("containerd is installed on %s please uninstall it first", ip)
}
}
return nil
}