sync from openeuler
Signed-off-by: zhangxiaoyu <zhangxiaoyu58@huawei.com>
This commit is contained in:
parent
7c01f69b3b
commit
dc5457b084
214
0001-remove-residual-objects.patch
Normal file
214
0001-remove-residual-objects.patch
Normal file
@ -0,0 +1,214 @@
|
||||
From 989d35593ad625cafa6ce60a1dc57c8bd2a917c8 Mon Sep 17 00:00:00 2001
|
||||
From: haozi007 <liuhao27@huawei.com>
|
||||
Date: Thu, 2 Sep 2021 03:02:35 +0100
|
||||
Subject: [PATCH 1/2] remove residual objects
|
||||
|
||||
Signed-off-by: haozi007 <liuhao27@huawei.com>
|
||||
---
|
||||
pkg/clusterdeployment/binary/binary.go | 30 +++++++++++++++++++
|
||||
.../binary/controlplane/controlplane.go | 2 +-
|
||||
.../binary/infrastructure/infrastructure.go | 11 ++++++-
|
||||
pkg/clusterdeployment/clusterdeploy.go | 1 +
|
||||
pkg/clusterdeployment/runtime/runtime.go | 4 +--
|
||||
pkg/constants/constants.go | 5 ++--
|
||||
pkg/utils/runner/runner.go | 15 +++++++---
|
||||
7 files changed, 58 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/pkg/clusterdeployment/binary/binary.go b/pkg/clusterdeployment/binary/binary.go
|
||||
index 246f547..4596047 100644
|
||||
--- a/pkg/clusterdeployment/binary/binary.go
|
||||
+++ b/pkg/clusterdeployment/binary/binary.go
|
||||
@@ -444,11 +444,37 @@ func (bcp *BinaryClusterDeployment) PreDeleteClusterHooks() {
|
||||
}
|
||||
}
|
||||
|
||||
+func clearResiduals(nodes []*api.HostConfig, confDir string) error {
|
||||
+ if len(nodes) == 0 {
|
||||
+ return nil
|
||||
+ }
|
||||
+
|
||||
+ var strNodes []string
|
||||
+ for _, n := range nodes {
|
||||
+ strNodes = append(strNodes, n.Address)
|
||||
+ }
|
||||
+
|
||||
+ shell := fmt.Sprintf("#!/bin/bash\nrm -rf %s\nexit 0", confDir)
|
||||
+
|
||||
+ checker := task.NewTaskIgnoreErrInstance(
|
||||
+ &commontools.RunShellTask{
|
||||
+ ShellName: "checkMaster",
|
||||
+ Shell: shell,
|
||||
+ },
|
||||
+ )
|
||||
+
|
||||
+ return nodemanager.RunTaskOnNodes(checker, strNodes)
|
||||
+}
|
||||
+
|
||||
func (bcp *BinaryClusterDeployment) PostDeleteClusterHooks() {
|
||||
role := []uint16{api.Worker, api.Master, api.ETCD, api.LoadBalance}
|
||||
if err := dependency.HookSchedule(bcp.config, bcp.config.Nodes, role, api.SchedulePostCleanup); err != nil {
|
||||
logrus.Warnf("Ignore: Delete cluster PostHook failed: %v", err)
|
||||
}
|
||||
+ // clear all residual objects
|
||||
+ if err := clearResiduals(bcp.config.Nodes, bcp.config.GetConfigDir()); err != nil {
|
||||
+ logrus.Warnf("Ignore: Delete cluster PostHook failed: %v", err)
|
||||
+ }
|
||||
}
|
||||
|
||||
func (bcp *BinaryClusterDeployment) PreNodeJoinHooks(node *api.HostConfig) error {
|
||||
@@ -562,4 +588,8 @@ func (bcp *BinaryClusterDeployment) PostNodeCleanupHooks(node *api.HostConfig) {
|
||||
if err := dependency.HookSchedule(bcp.config, []*api.HostConfig{node}, role, api.SchedulePostCleanup); err != nil {
|
||||
logrus.Warnf("Ignore: Delete Node PostHook failed: %v", err)
|
||||
}
|
||||
+
|
||||
+ if err := clearResiduals([]*api.HostConfig{node}, bcp.config.GetConfigDir()); err != nil {
|
||||
+ logrus.Warnf("Ignore: Delete cluster PostHook failed: %v", err)
|
||||
+ }
|
||||
}
|
||||
diff --git a/pkg/clusterdeployment/binary/controlplane/controlplane.go b/pkg/clusterdeployment/binary/controlplane/controlplane.go
|
||||
index 38e138f..5e6a8a0 100644
|
||||
--- a/pkg/clusterdeployment/binary/controlplane/controlplane.go
|
||||
+++ b/pkg/clusterdeployment/binary/controlplane/controlplane.go
|
||||
@@ -636,7 +636,7 @@ func (ct *PostControlPlaneTask) bootstrapClusterRoleBinding(r runner.Runner) err
|
||||
}
|
||||
|
||||
func (ct *PostControlPlaneTask) kubeletServerCRB(r runner.Runner) error {
|
||||
- if !ct.cluster.WorkerConfig.KubeletConf.EnableServer {
|
||||
+ if ct.cluster.WorkerConfig.KubeletConf == nil || !ct.cluster.WorkerConfig.KubeletConf.EnableServer {
|
||||
return nil
|
||||
}
|
||||
|
||||
diff --git a/pkg/clusterdeployment/binary/infrastructure/infrastructure.go b/pkg/clusterdeployment/binary/infrastructure/infrastructure.go
|
||||
index 5a489dc..71ad610 100644
|
||||
--- a/pkg/clusterdeployment/binary/infrastructure/infrastructure.go
|
||||
+++ b/pkg/clusterdeployment/binary/infrastructure/infrastructure.go
|
||||
@@ -27,6 +27,7 @@ import (
|
||||
|
||||
"isula.org/eggo/pkg/api"
|
||||
"isula.org/eggo/pkg/clusterdeployment/binary/cleanupcluster"
|
||||
+ "isula.org/eggo/pkg/constants"
|
||||
"isula.org/eggo/pkg/utils"
|
||||
"isula.org/eggo/pkg/utils/dependency"
|
||||
"isula.org/eggo/pkg/utils/nodemanager"
|
||||
@@ -319,6 +320,13 @@ func (it *DestroyInfraTask) Name() string {
|
||||
return "DestroyInfraTask"
|
||||
}
|
||||
|
||||
+func getCopyDefaultDir(user string) string {
|
||||
+ if user == "root" {
|
||||
+ return constants.DefaultRootCopyTempDirHome
|
||||
+ }
|
||||
+ return fmt.Sprintf(constants.DefaultUserCopyTempHomeFormat, user)
|
||||
+}
|
||||
+
|
||||
func (it *DestroyInfraTask) Run(r runner.Runner, hcg *api.HostConfig) error {
|
||||
if hcg == nil {
|
||||
return fmt.Errorf("empty host config")
|
||||
@@ -339,7 +347,8 @@ func (it *DestroyInfraTask) Run(r runner.Runner, hcg *api.HostConfig) error {
|
||||
logrus.Errorf("path %s not in White List and cannot remove", dstDir)
|
||||
return nil
|
||||
}
|
||||
- if _, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"rm -rf %s\"", dstDir)); err != nil {
|
||||
+ copyTempDir := getCopyDefaultDir(hcg.UserName)
|
||||
+ if _, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"rm -rf %s %s\"", dstDir, copyTempDir)); err != nil {
|
||||
return fmt.Errorf("rm dependency failed: %v", err)
|
||||
}
|
||||
|
||||
diff --git a/pkg/clusterdeployment/clusterdeploy.go b/pkg/clusterdeployment/clusterdeploy.go
|
||||
index ee57ec3..f31ac42 100644
|
||||
--- a/pkg/clusterdeployment/clusterdeploy.go
|
||||
+++ b/pkg/clusterdeployment/clusterdeploy.go
|
||||
@@ -216,6 +216,7 @@ func rollbackFailedNoeds(handler api.ClusterDeploymentAPI, nodes []*api.HostConf
|
||||
for _, n := range nodes {
|
||||
// do best to cleanup, if error, just ignore
|
||||
handler.ClusterNodeCleanup(n, n.Type)
|
||||
+ handler.PostNodeCleanupHooks(n)
|
||||
handler.MachineInfraDestroy(n)
|
||||
rollIDs = append(rollIDs, n.Address)
|
||||
}
|
||||
diff --git a/pkg/clusterdeployment/runtime/runtime.go b/pkg/clusterdeployment/runtime/runtime.go
|
||||
index 29fab7d..2e352b6 100644
|
||||
--- a/pkg/clusterdeployment/runtime/runtime.go
|
||||
+++ b/pkg/clusterdeployment/runtime/runtime.go
|
||||
@@ -199,9 +199,9 @@ func (ct *DeployRuntimeTask) Run(r runner.Runner, hcg *api.HostConfig) error {
|
||||
}
|
||||
|
||||
// start service
|
||||
- if _, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"systemctl daemon-reload && systemctl restart %s\"",
|
||||
+ if output, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"systemctl daemon-reload && systemctl restart %s\"",
|
||||
ct.runtime.GetRuntimeService())); err != nil {
|
||||
- logrus.Errorf("start %s failed: %v", ct.runtime.GetRuntimeService(), err)
|
||||
+ logrus.Errorf("start %s failed: %v\nout: %s", ct.runtime.GetRuntimeService(), err, output)
|
||||
return err
|
||||
}
|
||||
|
||||
diff --git a/pkg/constants/constants.go b/pkg/constants/constants.go
|
||||
index 0935c36..ee02e24 100644
|
||||
--- a/pkg/constants/constants.go
|
||||
+++ b/pkg/constants/constants.go
|
||||
@@ -21,8 +21,9 @@ const (
|
||||
DefaultImagePath = "/image"
|
||||
|
||||
// user home dir formats
|
||||
- UserHomeFormat = "/home/%s"
|
||||
- DefaultUserCopyTempDirFormat = "/home/%s/.eggo/temp"
|
||||
+ UserHomeFormat = "/home/%s"
|
||||
+ DefaultUserCopyTempHomeFormat = "/home/%s/.eggo"
|
||||
+ DefaultRootCopyTempDirHome = "/root/.eggo"
|
||||
|
||||
// network plugin arguments key
|
||||
NetworkPluginArgKeyYamlPath = "NetworkYamlPath"
|
||||
diff --git a/pkg/utils/runner/runner.go b/pkg/utils/runner/runner.go
|
||||
index 7436f63..3b15a08 100644
|
||||
--- a/pkg/utils/runner/runner.go
|
||||
+++ b/pkg/utils/runner/runner.go
|
||||
@@ -164,7 +164,7 @@ func (ssh *SSHRunner) Reconnect() error {
|
||||
func clearUserTempDir(conn ssh.Connection, host *kkv1alpha1.HostCfg) {
|
||||
tmpShell := "/tmp/" + RunnerShellPrefix + "*"
|
||||
// scp to tmp file
|
||||
- dir := fmt.Sprintf(constants.DefaultUserCopyTempDirFormat, host.User)
|
||||
+ dir := getCopyDefaultDir(host.User)
|
||||
_, err := conn.Exec(fmt.Sprintf("sudo -E /bin/sh -c \"rm -rf %s; rm -rf %s\"", dir, tmpShell), host)
|
||||
if err != nil {
|
||||
logrus.Warnf("[%s] remove temp dir: %s failed: %v", host.Name, dir, err)
|
||||
@@ -175,7 +175,7 @@ func clearUserTempDir(conn ssh.Connection, host *kkv1alpha1.HostCfg) {
|
||||
|
||||
func prepareUserTempDir(conn ssh.Connection, host *kkv1alpha1.HostCfg) error {
|
||||
// scp to tmp file
|
||||
- dir := fmt.Sprintf(constants.DefaultUserCopyTempDirFormat, host.User)
|
||||
+ dir := getCopyDefaultDir(host.User)
|
||||
var sb strings.Builder
|
||||
sb.WriteString("sudo -E /bin/sh -c \"")
|
||||
sb.WriteString(fmt.Sprintf("mkdir -p %s", dir))
|
||||
@@ -190,11 +190,18 @@ func prepareUserTempDir(conn ssh.Connection, host *kkv1alpha1.HostCfg) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
+func getCopyDefaultDir(user string) string {
|
||||
+ if user == "root" {
|
||||
+ return constants.DefaultRootCopyTempDirHome + "/temp"
|
||||
+ }
|
||||
+ return fmt.Sprintf(constants.DefaultUserCopyTempHomeFormat, user) + "/temp"
|
||||
+}
|
||||
+
|
||||
func (ssh *SSHRunner) copyFile(src, dst string) error {
|
||||
if ssh.Conn == nil {
|
||||
return fmt.Errorf("[%s] SSH runner is not connected", ssh.Host.Name)
|
||||
}
|
||||
- tempDir := fmt.Sprintf(constants.DefaultUserCopyTempDirFormat, ssh.Host.User)
|
||||
+ tempDir := getCopyDefaultDir(ssh.Host.User)
|
||||
// scp to tmp file
|
||||
tempCpyFile := filepath.Join(tempDir, filepath.Base(src))
|
||||
err := ssh.Conn.Scp(src, tempCpyFile)
|
||||
@@ -240,7 +247,7 @@ func (ssh *SSHRunner) copyDir(srcDir, dstDir string) error {
|
||||
logrus.Errorf("[%s] create cert tmp tar failed: %v", ssh.Host.Name, err)
|
||||
return err
|
||||
}
|
||||
- tmpCpyDir := fmt.Sprintf(constants.DefaultUserCopyTempDirFormat, ssh.Host.User)
|
||||
+ tmpCpyDir := getCopyDefaultDir(ssh.Host.User)
|
||||
tmpPkiFile := filepath.Join(tmpCpyDir, "pkg.tar")
|
||||
// scp to user home directory
|
||||
err = ssh.Copy(tmpPkgFile, tmpPkiFile)
|
||||
--
|
||||
2.25.1
|
||||
|
||||
115
0002-remove-residual-in-infrastruce.patch
Normal file
115
0002-remove-residual-in-infrastruce.patch
Normal file
@ -0,0 +1,115 @@
|
||||
From 782855308cd9f817c6525617a2a45e9aea4859f5 Mon Sep 17 00:00:00 2001
|
||||
From: haozi007 <liuhao27@huawei.com>
|
||||
Date: Sat, 4 Sep 2021 09:54:50 +0100
|
||||
Subject: [PATCH 2/2] remove residual in infrastruce
|
||||
|
||||
Signed-off-by: haozi007 <liuhao27@huawei.com>
|
||||
---
|
||||
pkg/clusterdeployment/binary/binary.go | 30 -------------------
|
||||
.../binary/infrastructure/infrastructure.go | 12 ++++----
|
||||
pkg/clusterdeployment/clusterdeploy.go | 1 -
|
||||
3 files changed, 7 insertions(+), 36 deletions(-)
|
||||
|
||||
diff --git a/pkg/clusterdeployment/binary/binary.go b/pkg/clusterdeployment/binary/binary.go
|
||||
index 4596047..246f547 100644
|
||||
--- a/pkg/clusterdeployment/binary/binary.go
|
||||
+++ b/pkg/clusterdeployment/binary/binary.go
|
||||
@@ -444,37 +444,11 @@ func (bcp *BinaryClusterDeployment) PreDeleteClusterHooks() {
|
||||
}
|
||||
}
|
||||
|
||||
-func clearResiduals(nodes []*api.HostConfig, confDir string) error {
|
||||
- if len(nodes) == 0 {
|
||||
- return nil
|
||||
- }
|
||||
-
|
||||
- var strNodes []string
|
||||
- for _, n := range nodes {
|
||||
- strNodes = append(strNodes, n.Address)
|
||||
- }
|
||||
-
|
||||
- shell := fmt.Sprintf("#!/bin/bash\nrm -rf %s\nexit 0", confDir)
|
||||
-
|
||||
- checker := task.NewTaskIgnoreErrInstance(
|
||||
- &commontools.RunShellTask{
|
||||
- ShellName: "checkMaster",
|
||||
- Shell: shell,
|
||||
- },
|
||||
- )
|
||||
-
|
||||
- return nodemanager.RunTaskOnNodes(checker, strNodes)
|
||||
-}
|
||||
-
|
||||
func (bcp *BinaryClusterDeployment) PostDeleteClusterHooks() {
|
||||
role := []uint16{api.Worker, api.Master, api.ETCD, api.LoadBalance}
|
||||
if err := dependency.HookSchedule(bcp.config, bcp.config.Nodes, role, api.SchedulePostCleanup); err != nil {
|
||||
logrus.Warnf("Ignore: Delete cluster PostHook failed: %v", err)
|
||||
}
|
||||
- // clear all residual objects
|
||||
- if err := clearResiduals(bcp.config.Nodes, bcp.config.GetConfigDir()); err != nil {
|
||||
- logrus.Warnf("Ignore: Delete cluster PostHook failed: %v", err)
|
||||
- }
|
||||
}
|
||||
|
||||
func (bcp *BinaryClusterDeployment) PreNodeJoinHooks(node *api.HostConfig) error {
|
||||
@@ -588,8 +562,4 @@ func (bcp *BinaryClusterDeployment) PostNodeCleanupHooks(node *api.HostConfig) {
|
||||
if err := dependency.HookSchedule(bcp.config, []*api.HostConfig{node}, role, api.SchedulePostCleanup); err != nil {
|
||||
logrus.Warnf("Ignore: Delete Node PostHook failed: %v", err)
|
||||
}
|
||||
-
|
||||
- if err := clearResiduals([]*api.HostConfig{node}, bcp.config.GetConfigDir()); err != nil {
|
||||
- logrus.Warnf("Ignore: Delete cluster PostHook failed: %v", err)
|
||||
- }
|
||||
}
|
||||
diff --git a/pkg/clusterdeployment/binary/infrastructure/infrastructure.go b/pkg/clusterdeployment/binary/infrastructure/infrastructure.go
|
||||
index 71ad610..634e338 100644
|
||||
--- a/pkg/clusterdeployment/binary/infrastructure/infrastructure.go
|
||||
+++ b/pkg/clusterdeployment/binary/infrastructure/infrastructure.go
|
||||
@@ -312,8 +312,9 @@ func NodeInfrastructureSetup(config *api.ClusterConfig, nodeID string, role uint
|
||||
}
|
||||
|
||||
type DestroyInfraTask struct {
|
||||
- packageSrc *api.PackageSrcConfig
|
||||
- roleInfra *api.RoleInfra
|
||||
+ packageSrc *api.PackageSrcConfig
|
||||
+ roleInfra *api.RoleInfra
|
||||
+ k8sConfigDir string
|
||||
}
|
||||
|
||||
func (it *DestroyInfraTask) Name() string {
|
||||
@@ -348,7 +349,7 @@ func (it *DestroyInfraTask) Run(r runner.Runner, hcg *api.HostConfig) error {
|
||||
return nil
|
||||
}
|
||||
copyTempDir := getCopyDefaultDir(hcg.UserName)
|
||||
- if _, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"rm -rf %s %s\"", dstDir, copyTempDir)); err != nil {
|
||||
+ if _, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"rm -rf %s %s %s\"", dstDir, copyTempDir, it.k8sConfigDir)); err != nil {
|
||||
return fmt.Errorf("rm dependency failed: %v", err)
|
||||
}
|
||||
|
||||
@@ -429,8 +430,9 @@ func NodeInfrastructureDestroy(config *api.ClusterConfig, hostconfig *api.HostCo
|
||||
|
||||
itask := task.NewTaskIgnoreErrInstance(
|
||||
&DestroyInfraTask{
|
||||
- packageSrc: &config.PackageSrc,
|
||||
- roleInfra: roleInfra,
|
||||
+ packageSrc: &config.PackageSrc,
|
||||
+ roleInfra: roleInfra,
|
||||
+ k8sConfigDir: config.GetConfigDir(),
|
||||
})
|
||||
|
||||
if err := nodemanager.RunTaskOnNodes(itask, []string{hostconfig.Address}); err != nil {
|
||||
diff --git a/pkg/clusterdeployment/clusterdeploy.go b/pkg/clusterdeployment/clusterdeploy.go
|
||||
index f31ac42..ee57ec3 100644
|
||||
--- a/pkg/clusterdeployment/clusterdeploy.go
|
||||
+++ b/pkg/clusterdeployment/clusterdeploy.go
|
||||
@@ -216,7 +216,6 @@ func rollbackFailedNoeds(handler api.ClusterDeploymentAPI, nodes []*api.HostConf
|
||||
for _, n := range nodes {
|
||||
// do best to cleanup, if error, just ignore
|
||||
handler.ClusterNodeCleanup(n, n.Type)
|
||||
- handler.PostNodeCleanupHooks(n)
|
||||
handler.MachineInfraDestroy(n)
|
||||
rollIDs = append(rollIDs, n.Address)
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
11
eggo.spec
11
eggo.spec
@ -1,11 +1,14 @@
|
||||
Name: eggo
|
||||
Version: 0.9.3
|
||||
Release: 1
|
||||
Release: 2
|
||||
Summary: Eggo is a tool built to provide standard multi-ways for creating Kubernetes clusters.
|
||||
License: Mulan PSL V2
|
||||
URL: https://gitee.com/openeuler/eggo
|
||||
Source0: https://gitee.com/openeuler/eggo/repository/archive/v%{version}.tar.gz
|
||||
|
||||
Patch0001: 0001-remove-residual-objects.patch
|
||||
Patch0002: 0002-remove-residual-in-infrastruce.patch
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: git
|
||||
BuildRequires: golang >= 1.13
|
||||
@ -45,6 +48,12 @@ rm -rf src
|
||||
%attr(551,root,root) %{_bindir}/eggo
|
||||
|
||||
%changelog
|
||||
* Tue Sep 07 2021 zhangxiaoyu<zhangxiaoyu58@huawei.com> - 0.9.3-2
|
||||
- Type:upgrade
|
||||
- CVE:NA
|
||||
- SUG:NA
|
||||
- DESC:sync from openeuler
|
||||
|
||||
* Wed Sep 01 2021 zhangxiaoyu<zhangxiaoyu58@huawei.com> - 0.9.3-1
|
||||
- Type:upgrade
|
||||
- CVE:NA
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user