Skip to content

Commit

Permalink
fix labring#621. join node or master should not exsit in kubernetes.
Browse files Browse the repository at this point in the history
  • Loading branch information
oldthreefeng committed Apr 29, 2021
1 parent ea8a08f commit 86e50cb
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 20 deletions.
12 changes: 6 additions & 6 deletions cmd/clean.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,12 @@ func CleanCmdFunc(cmd *cobra.Command, args []string) {
}

// 使用 sealos clean --node 不小心写了 masterip.
if ok, node := deleteNodeIsExistInNodes(deleteNodes, c.Masters); ok {
if ok, node := deleteOrJoinNodeIsExistInCfgNodes(deleteNodes, c.Masters); ok {
logger.Error(`clean master Use "sealos clean --master %s" to clean it, exit...`, node)
os.Exit(-1)
}
// 使用 sealos clean --master 不小心写了 nodeip.
if ok, node := deleteNodeIsExistInNodes(deleteMasters, c.Nodes); ok {
if ok, node := deleteOrJoinNodeIsExistInCfgNodes(deleteMasters, c.Nodes); ok {
logger.Error(`clean nodes Use "sealos clean --node %s" to clean it, exit...`, node)
os.Exit(-1)
}
Expand All @@ -111,11 +111,11 @@ func CleanCmdFunc(cmd *cobra.Command, args []string) {
}

// IsExistNodes
func deleteNodeIsExistInNodes(deleteNodes []string, nodes []string) (bool, string) {
func deleteOrJoinNodeIsExistInCfgNodes(deleteOrJoinNodes []string, nodes []string) (bool, string) {
for _, node := range nodes {
for _, deleteNode := range deleteNodes {
// 如果ips 相同. 则说明删除错了.
if node == deleteNode {
for _, deleteOrJoinNode := range deleteOrJoinNodes {
// 如果ips 相同. 则说明cfg配置文件已经存在该node.
if node == deleteOrJoinNode {
return true, node
}
}
Expand Down
39 changes: 25 additions & 14 deletions cmd/join.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,7 @@ var joinCmd = &cobra.Command{
os.Exit(0)
}
},
Run: func(cmd *cobra.Command, args []string) {
beforeNodes := install.ParseIPs(install.NodeIPs)
beforeMasters := install.ParseIPs(install.MasterIPs)

c := &install.SealConfig{}
err := c.Load(cfgFile)
if err != nil {
logger.Error(err)
c.ShowDefaultConfig()
os.Exit(0)
}
install.BuildJoin(beforeMasters, beforeNodes)
c.Dump(cfgFile)
},
Run: JoinCmdFunc,
}

func init() {
Expand All @@ -57,3 +44,27 @@ func init() {
joinCmd.Flags().StringSliceVar(&install.NodeIPs, "node", []string{}, "kubernetes multi-nodes ex. 192.168.0.5-192.168.0.5")
joinCmd.Flags().IntVar(&install.Vlog, "vlog", 0, "kubeadm log level")
}

func JoinCmdFunc (cmd *cobra.Command, args []string) {
beforeNodes := install.ParseIPs(install.NodeIPs)
beforeMasters := install.ParseIPs(install.MasterIPs)

c := &install.SealConfig{}
err := c.Load(cfgFile)
if err != nil {
logger.Error(err)
c.ShowDefaultConfig()
os.Exit(0)
}

cfgNodes := append(c.Masters, c.Nodes...)
joinNodes := append(beforeNodes, beforeMasters...)

if ok, node := deleteOrJoinNodeIsExistInCfgNodes(joinNodes, cfgNodes); ok {
logger.Error(`[%s] has already exist in your cluster. please check.`, node)
os.Exit(-1)
}

install.BuildJoin(beforeMasters, beforeNodes)
c.Dump(cfgFile)
}

0 comments on commit 86e50cb

Please sign in to comment.