fix makefile build error
Signed-off-by: zhangxiaoyu <zhangxiaoyu58@huawei.com>
This commit is contained in:
parent
54a8dccb2c
commit
4d2b584c03
156
0013-add-cleanup-last-step.patch
Normal file
156
0013-add-cleanup-last-step.patch
Normal file
@ -0,0 +1,156 @@
|
||||
From fb31a0596857b2fe0daa824a37027a906a45ca57 Mon Sep 17 00:00:00 2001
|
||||
From: zhangxiaoyu <zhangxiaoyu58@huawei.com>
|
||||
Date: Mon, 29 Nov 2021 19:39:56 +0800
|
||||
Subject: [PATCH 13/17] add cleanup last step
|
||||
|
||||
Signed-off-by: zhangxiaoyu <zhangxiaoyu58@huawei.com>
|
||||
---
|
||||
pkg/api/types.go | 2 ++
|
||||
pkg/clusterdeployment/binary/binary.go | 10 +++++++++
|
||||
.../binary/cleanupcluster/cleanupcommon.go | 22 +++++++++++++++++++
|
||||
pkg/clusterdeployment/clusterdeploy.go | 14 ++++++++++++
|
||||
pkg/utils/runner/runner.go | 14 ------------
|
||||
5 files changed, 48 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/pkg/api/types.go b/pkg/api/types.go
|
||||
index fea3f26..e5e1958 100644
|
||||
--- a/pkg/api/types.go
|
||||
+++ b/pkg/api/types.go
|
||||
@@ -305,6 +305,8 @@ type ClusterManagerAPI interface {
|
||||
ClusterStatus() (*ClusterStatus, error)
|
||||
AddonsSetup() error
|
||||
AddonsDestroy() error
|
||||
+
|
||||
+ CleanupLastStep(nodeName string) error
|
||||
}
|
||||
|
||||
type LoadBalancerAPI interface {
|
||||
diff --git a/pkg/clusterdeployment/binary/binary.go b/pkg/clusterdeployment/binary/binary.go
|
||||
index 246f547..363de0e 100644
|
||||
--- a/pkg/clusterdeployment/binary/binary.go
|
||||
+++ b/pkg/clusterdeployment/binary/binary.go
|
||||
@@ -563,3 +563,13 @@ func (bcp *BinaryClusterDeployment) PostNodeCleanupHooks(node *api.HostConfig) {
|
||||
logrus.Warnf("Ignore: Delete Node PostHook failed: %v", err)
|
||||
}
|
||||
}
|
||||
+
|
||||
+func (bcp *BinaryClusterDeployment) CleanupLastStep(nodeName string) error {
|
||||
+ itask := task.NewTaskInstance(&cleanupcluster.CleanupTempDirTask{})
|
||||
+
|
||||
+ if err := nodemanager.RunTaskOnNodes(itask, []string{nodeName}); err != nil {
|
||||
+ return fmt.Errorf("cleanup user temp dir failed: %v", err)
|
||||
+ }
|
||||
+
|
||||
+ return nil
|
||||
+}
|
||||
diff --git a/pkg/clusterdeployment/binary/cleanupcluster/cleanupcommon.go b/pkg/clusterdeployment/binary/cleanupcluster/cleanupcommon.go
|
||||
index e681b63..f282d94 100644
|
||||
--- a/pkg/clusterdeployment/binary/cleanupcluster/cleanupcommon.go
|
||||
+++ b/pkg/clusterdeployment/binary/cleanupcluster/cleanupcommon.go
|
||||
@@ -21,6 +21,7 @@ import (
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
+ "isula.org/eggo/pkg/api"
|
||||
"isula.org/eggo/pkg/utils"
|
||||
"isula.org/eggo/pkg/utils/runner"
|
||||
)
|
||||
@@ -49,3 +50,24 @@ func stopServices(r runner.Runner, services []string) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
+
|
||||
+type CleanupTempDirTask struct {
|
||||
+}
|
||||
+
|
||||
+func (c *CleanupTempDirTask) Name() string {
|
||||
+ return "CleanupTempDirTask"
|
||||
+}
|
||||
+
|
||||
+func (c *CleanupTempDirTask) Run(r runner.Runner, hostConfig *api.HostConfig) error {
|
||||
+ if hostConfig == nil {
|
||||
+ return fmt.Errorf("empty host config")
|
||||
+ }
|
||||
+
|
||||
+ dir := api.GetUserTempDir(hostConfig.UserName)
|
||||
+ _, err := r.RunCommand(utils.AddSudo("rm -rf " + dir))
|
||||
+ if err != nil {
|
||||
+ return err
|
||||
+ }
|
||||
+
|
||||
+ return nil
|
||||
+}
|
||||
diff --git a/pkg/clusterdeployment/clusterdeploy.go b/pkg/clusterdeployment/clusterdeploy.go
|
||||
index d8941ee..138d584 100644
|
||||
--- a/pkg/clusterdeployment/clusterdeploy.go
|
||||
+++ b/pkg/clusterdeployment/clusterdeploy.go
|
||||
@@ -217,6 +217,7 @@ func rollbackFailedNoeds(handler api.ClusterDeploymentAPI, nodes []*api.HostConf
|
||||
// do best to cleanup, if error, just ignore
|
||||
handler.ClusterNodeCleanup(n, n.Type)
|
||||
handler.MachineInfraDestroy(n)
|
||||
+ handler.CleanupLastStep(n.Name)
|
||||
rollIDs = append(rollIDs, n.Address)
|
||||
}
|
||||
|
||||
@@ -457,6 +458,11 @@ func doDeleteNode(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, h *ap
|
||||
return err
|
||||
}
|
||||
|
||||
+ if err := handler.CleanupLastStep(h.Name); err != nil {
|
||||
+ logrus.Warnf("cleanup user temp dir for node %s failed: %v", h.Name, err)
|
||||
+ return err
|
||||
+ }
|
||||
+
|
||||
if err := nodemanager.WaitNodesFinishWithProgress([]string{h.Address}, time.Minute*5); err != nil {
|
||||
logrus.Warnf("wait cleanup finish failed: %v", err)
|
||||
}
|
||||
@@ -581,6 +587,14 @@ func doRemoveCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig) {
|
||||
}
|
||||
}
|
||||
|
||||
+ // Step9: cleanup user temp dir
|
||||
+ for _, n := range cc.Nodes {
|
||||
+ err = handler.CleanupLastStep(n.Name)
|
||||
+ if err != nil {
|
||||
+ logrus.Warnf("[cluster] cleanup user temp dir for node: %s failed: %v", n.Name, err)
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if err = nodemanager.WaitNodesFinishWithProgress(allNodes, time.Minute*5); err != nil {
|
||||
logrus.Warnf("[cluster] wait all cleanup finish failed: %v", err)
|
||||
}
|
||||
diff --git a/pkg/utils/runner/runner.go b/pkg/utils/runner/runner.go
|
||||
index 83a81e9..9a739ca 100644
|
||||
--- a/pkg/utils/runner/runner.go
|
||||
+++ b/pkg/utils/runner/runner.go
|
||||
@@ -145,8 +145,6 @@ func NewSSHRunner(hcfg *api.HostConfig) (Runner, error) {
|
||||
}
|
||||
|
||||
func (ssh *SSHRunner) Close() {
|
||||
- // cleanup resources
|
||||
- clearUserTempDir(ssh.Conn, ssh.Host)
|
||||
// TODO: wait kubekey support close for Connection
|
||||
logrus.Debugf("TODO: wait kubekey support close for Connection")
|
||||
}
|
||||
@@ -160,18 +158,6 @@ func (ssh *SSHRunner) Reconnect() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
-func clearUserTempDir(conn ssh.Connection, host *kkv1alpha1.HostCfg) {
|
||||
- tmpShell := "/tmp/" + RunnerShellPrefix + "*"
|
||||
- // scp to tmp file
|
||||
- dir := api.GetUserTempDir(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)
|
||||
- return
|
||||
- }
|
||||
- logrus.Debugf("[%s] remove temp dir: %s success", host.Name, dir)
|
||||
-}
|
||||
-
|
||||
func prepareUserTempDir(conn ssh.Connection, host *kkv1alpha1.HostCfg) error {
|
||||
// scp to tmp file
|
||||
dir := api.GetUserTempDir(host.User)
|
||||
--
|
||||
2.25.1
|
||||
|
||||
834
0014-refactor-dependency.patch
Normal file
834
0014-refactor-dependency.patch
Normal file
@ -0,0 +1,834 @@
|
||||
From 77ad958ade9f72f97042bd0f7e0f9fa258a64153 Mon Sep 17 00:00:00 2001
|
||||
From: zhangxiaoyu <zhangxiaoyu58@huawei.com>
|
||||
Date: Sat, 4 Dec 2021 16:47:24 +0800
|
||||
Subject: [PATCH 14/17] refactor dependency
|
||||
|
||||
Signed-off-by: zhangxiaoyu <zhangxiaoyu58@huawei.com>
|
||||
---
|
||||
.../binary/infrastructure/infrastructure.go | 4 +-
|
||||
pkg/clusterdeployment/runtime/runtime.go | 40 +--
|
||||
pkg/utils/dependency/dependency.go | 237 ++++++++-----
|
||||
pkg/utils/dependency/install.go | 322 ++++--------------
|
||||
4 files changed, 231 insertions(+), 372 deletions(-)
|
||||
|
||||
diff --git a/pkg/clusterdeployment/binary/infrastructure/infrastructure.go b/pkg/clusterdeployment/binary/infrastructure/infrastructure.go
|
||||
index 68faf36..7c55d5f 100644
|
||||
--- a/pkg/clusterdeployment/binary/infrastructure/infrastructure.go
|
||||
+++ b/pkg/clusterdeployment/binary/infrastructure/infrastructure.go
|
||||
@@ -68,7 +68,7 @@ func (it *SetupInfraTask) Run(r runner.Runner, hcg *api.HostConfig) error {
|
||||
return err
|
||||
}
|
||||
|
||||
- if err := dependency.InstallDependency(r, it.roleInfra, hcg, it.packageSrc.GetPkgDstPath()); err != nil {
|
||||
+ if err := dependency.InstallBaseDependency(r, it.roleInfra, hcg, it.packageSrc.GetPkgDstPath()); err != nil {
|
||||
logrus.Errorf("install dependency failed: %v", err)
|
||||
return err
|
||||
}
|
||||
@@ -325,7 +325,7 @@ func (it *DestroyInfraTask) Run(r runner.Runner, hcg *api.HostConfig) error {
|
||||
return fmt.Errorf("empty host config")
|
||||
}
|
||||
|
||||
- dependency.RemoveDependency(r, it.roleInfra, hcg, it.packageSrc.GetPkgDstPath())
|
||||
+ dependency.RemoveBaseDependency(r, it.roleInfra, hcg, it.packageSrc.GetPkgDstPath())
|
||||
|
||||
if err := removeHostNameIP(r, hcg); err != nil {
|
||||
logrus.Errorf("remove host name ip failed: %v", err)
|
||||
diff --git a/pkg/clusterdeployment/runtime/runtime.go b/pkg/clusterdeployment/runtime/runtime.go
|
||||
index edfc4a7..e996dae 100644
|
||||
--- a/pkg/clusterdeployment/runtime/runtime.go
|
||||
+++ b/pkg/clusterdeployment/runtime/runtime.go
|
||||
@@ -3,14 +3,11 @@ package runtime
|
||||
import (
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
- "path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"isula.org/eggo/pkg/api"
|
||||
"isula.org/eggo/pkg/clusterdeployment/binary/commontools"
|
||||
- "isula.org/eggo/pkg/constants"
|
||||
- "isula.org/eggo/pkg/utils"
|
||||
"isula.org/eggo/pkg/utils/dependency"
|
||||
"isula.org/eggo/pkg/utils/runner"
|
||||
"isula.org/eggo/pkg/utils/template"
|
||||
@@ -435,7 +432,8 @@ func (ct *DeployRuntimeTask) Run(r runner.Runner, hcg *api.HostConfig) error {
|
||||
return err
|
||||
}
|
||||
|
||||
- if err := loadImages(r, ct.workerInfra, ct.packageSrc, ct.runtime, ct.workerConfig.ContainerEngineConf.Runtime); err != nil {
|
||||
+ if err := dependency.InstallImageDependency(r, ct.workerInfra, ct.packageSrc, ct.runtime.GetRuntimeService(),
|
||||
+ ct.runtime.GetRuntimeClient(), ct.runtime.GetRuntimeLoadImageCommand()); err != nil {
|
||||
logrus.Errorf("load images failed: %v", err)
|
||||
return err
|
||||
}
|
||||
@@ -459,40 +457,6 @@ func (ct *DeployRuntimeTask) check(r runner.Runner) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
-func getImages(workerInfra *api.RoleInfra) []*api.PackageConfig {
|
||||
- images := []*api.PackageConfig{}
|
||||
- for _, s := range workerInfra.Softwares {
|
||||
- if s.Type == "image" {
|
||||
- images = append(images, s)
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return images
|
||||
-}
|
||||
-
|
||||
-func loadImages(r runner.Runner, workerInfra *api.RoleInfra, packageSrc *api.PackageSrcConfig, runtime Runtime, rt string) error {
|
||||
- images := getImages(workerInfra)
|
||||
- if len(images) == 0 {
|
||||
- logrus.Warn("no images load")
|
||||
- return nil
|
||||
- }
|
||||
-
|
||||
- logrus.Info("do load images...")
|
||||
-
|
||||
- imagePath := filepath.Join(packageSrc.GetPkgDstPath(), constants.DefaultImagePath)
|
||||
- imageDep := dependency.NewDependencyImage(imagePath, runtime.GetRuntimeClient(), runtime.GetRuntimeLoadImageCommand(), images)
|
||||
- if err := imageDep.Install(r); err != nil {
|
||||
- if utils.IsContainerd(rt) {
|
||||
- logrus.Warnf("%s not support load images", rt)
|
||||
- return nil
|
||||
- }
|
||||
- return err
|
||||
- }
|
||||
-
|
||||
- logrus.Info("load images success")
|
||||
- return nil
|
||||
-}
|
||||
-
|
||||
func GetRuntime(runtime string) Runtime {
|
||||
if runtime == "" {
|
||||
return mapRuntime["docker"]
|
||||
diff --git a/pkg/utils/dependency/dependency.go b/pkg/utils/dependency/dependency.go
|
||||
index 2c5dc26..9b464dd 100644
|
||||
--- a/pkg/utils/dependency/dependency.go
|
||||
+++ b/pkg/utils/dependency/dependency.go
|
||||
@@ -19,124 +19,175 @@ import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
+ "github.com/sirupsen/logrus"
|
||||
"isula.org/eggo/pkg/api"
|
||||
"isula.org/eggo/pkg/utils/runner"
|
||||
"isula.org/eggo/pkg/utils/template"
|
||||
)
|
||||
|
||||
-type dependency interface {
|
||||
- Install(r runner.Runner) error
|
||||
- Remove(r runner.Runner) error
|
||||
+const (
|
||||
+ PrmTest = "if [ x != x$(which apt 2>/dev/null) ]; then echo apt ; elif [ x != x$(which yum 2>/dev/null) ]; then echo yum ; fi"
|
||||
+ PmTest = "if [ x != x$(which dpkg 2>/dev/null) ]; then echo dpkg ; elif [ x != x$(which rpm 2>/dev/null) ]; then echo rpm ; fi"
|
||||
+)
|
||||
+
|
||||
+type managerCommand struct {
|
||||
+ installCommand string
|
||||
+ removeCommand string
|
||||
}
|
||||
|
||||
-// install dependency by repo
|
||||
-func runRepoCommand(r runner.Runner, software []*api.PackageConfig, command string) error {
|
||||
- join := ""
|
||||
- for _, s := range software {
|
||||
- join += s.Name + " "
|
||||
+func getPackageRepoManager(r runner.Runner) (*managerCommand, error) {
|
||||
+ packageRepoManagerCommand := map[string]*managerCommand{
|
||||
+ "apt": {
|
||||
+ installCommand: "apt install -y",
|
||||
+ removeCommand: "apt remove -y",
|
||||
+ },
|
||||
+ "yum": {
|
||||
+ installCommand: "yum install -y",
|
||||
+ removeCommand: "yum remove -y",
|
||||
+ },
|
||||
}
|
||||
- _, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"%s -y %s\"", command, join))
|
||||
- return err
|
||||
-}
|
||||
|
||||
-type dependencyApt struct {
|
||||
- software []*api.PackageConfig
|
||||
-}
|
||||
+ output, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"%s\"", PrmTest))
|
||||
+ if err != nil {
|
||||
+ logrus.Errorf("package repo manager test failed: %v", err)
|
||||
+ return nil, err
|
||||
+ }
|
||||
|
||||
-func (da *dependencyApt) Install(r runner.Runner) error {
|
||||
- command := "apt install"
|
||||
- if err := runRepoCommand(r, da.software, command); err != nil {
|
||||
- return fmt.Errorf("apt install failed: %v", err)
|
||||
+ if strings.Contains(output, "apt") {
|
||||
+ return packageRepoManagerCommand["apt"], nil
|
||||
+ }
|
||||
+ if strings.Contains(output, "yum") {
|
||||
+ return packageRepoManagerCommand["yum"], nil
|
||||
}
|
||||
|
||||
- return nil
|
||||
+ return nil, fmt.Errorf("invalid package repo manager %s", output)
|
||||
}
|
||||
|
||||
-func (da *dependencyApt) Remove(r runner.Runner) error {
|
||||
- command := "apt remove"
|
||||
- if err := runRepoCommand(r, da.software, command); err != nil {
|
||||
- return fmt.Errorf("apt remove failed: %v", err)
|
||||
+func getPackageManager(r runner.Runner) (*managerCommand, error) {
|
||||
+ packageManagerCommand := map[string]*managerCommand{
|
||||
+ "dpkg": {
|
||||
+ installCommand: "dpkg --force-all -i",
|
||||
+ removeCommand: "apt remove -y",
|
||||
+ },
|
||||
+ "rpm": {
|
||||
+ installCommand: "rpm -ivh --force --nodeps",
|
||||
+ removeCommand: "yum remove -y",
|
||||
+ },
|
||||
}
|
||||
|
||||
- return nil
|
||||
+ output, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"%s\"", PmTest))
|
||||
+ if err != nil {
|
||||
+ logrus.Errorf("package manager test failed: %v", err)
|
||||
+ return nil, err
|
||||
+ }
|
||||
+
|
||||
+ if strings.Contains(output, "dpkg") {
|
||||
+ return packageManagerCommand["dpkg"], nil
|
||||
+ }
|
||||
+ if strings.Contains(output, "rpm") {
|
||||
+ return packageManagerCommand["rpm"], nil
|
||||
+ }
|
||||
+
|
||||
+ return nil, fmt.Errorf("invalid package manager %s", output)
|
||||
+}
|
||||
+
|
||||
+type dependency interface {
|
||||
+ Install(r runner.Runner) error
|
||||
+ Remove(r runner.Runner) error
|
||||
}
|
||||
|
||||
-type dependencyYum struct {
|
||||
+type dependencyRepo struct {
|
||||
software []*api.PackageConfig
|
||||
}
|
||||
|
||||
-func (dy *dependencyYum) Install(r runner.Runner) error {
|
||||
- command := "yum install"
|
||||
- if err := runRepoCommand(r, dy.software, command); err != nil {
|
||||
- return fmt.Errorf("yum install by yum failed: %v", err)
|
||||
+func (dr *dependencyRepo) Install(r runner.Runner) error {
|
||||
+ if len(dr.software) == 0 {
|
||||
+ return nil
|
||||
}
|
||||
|
||||
- return nil
|
||||
-}
|
||||
+ prManager, err := getPackageRepoManager(r)
|
||||
+ if err != nil {
|
||||
+ return err
|
||||
+ }
|
||||
|
||||
-func (dy *dependencyYum) Remove(r runner.Runner) error {
|
||||
- command := "yum remove"
|
||||
- if err := runRepoCommand(r, dy.software, command); err != nil {
|
||||
- return fmt.Errorf("yum remove failed: %v", err)
|
||||
+ join := ""
|
||||
+ for _, s := range dr.software {
|
||||
+ join += s.Name + " "
|
||||
+ }
|
||||
+ if _, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"%s %s\"", prManager.installCommand, join)); err != nil {
|
||||
+ return fmt.Errorf("%s failed: %v", prManager.installCommand, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
-// install dependency by pkg
|
||||
-func runPkgCommand(r runner.Runner, software []*api.PackageConfig, srcPath, command string) error {
|
||||
- var sb strings.Builder
|
||||
- sb.WriteString(fmt.Sprintf("sudo -E /bin/sh -c \"cd %s && %s ", srcPath, command))
|
||||
- for _, s := range software {
|
||||
- sb.WriteString(fmt.Sprintf("%s* ", s.Name))
|
||||
+func (dr *dependencyRepo) Remove(r runner.Runner) error {
|
||||
+ if len(dr.software) == 0 {
|
||||
+ return nil
|
||||
+ }
|
||||
+
|
||||
+ prManager, err := getPackageRepoManager(r)
|
||||
+ if err != nil {
|
||||
+ return err
|
||||
+ }
|
||||
+
|
||||
+ join := ""
|
||||
+ for _, s := range dr.software {
|
||||
+ join += s.Name + " "
|
||||
+ }
|
||||
+ if _, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"%s remove -y %s\"", prManager.removeCommand, join)); err != nil {
|
||||
+ return fmt.Errorf("%s failed: %v", prManager.removeCommand, err)
|
||||
}
|
||||
- sb.WriteString("\"")
|
||||
|
||||
- _, err := r.RunCommand(sb.String())
|
||||
- return err
|
||||
+ return nil
|
||||
}
|
||||
|
||||
-type dependencyRpm struct {
|
||||
+type dependencyPkg struct {
|
||||
srcPath string
|
||||
software []*api.PackageConfig
|
||||
}
|
||||
|
||||
-func (dr *dependencyRpm) Install(r runner.Runner) error {
|
||||
- command := "rpm -ivh --force --nodeps"
|
||||
- if err := runPkgCommand(r, dr.software, dr.srcPath, command); err != nil {
|
||||
- return fmt.Errorf("rpm install failed: %v", err)
|
||||
+func (dp *dependencyPkg) Install(r runner.Runner) error {
|
||||
+ if len(dp.software) == 0 {
|
||||
+ return nil
|
||||
}
|
||||
|
||||
- return nil
|
||||
-}
|
||||
+ pManager, err := getPackageManager(r)
|
||||
+ if err != nil {
|
||||
+ return err
|
||||
+ }
|
||||
|
||||
-func (dr *dependencyRpm) Remove(r runner.Runner) error {
|
||||
- command := "yum remove -y"
|
||||
- if err := runPkgCommand(r, dr.software, dr.srcPath, command); err != nil {
|
||||
- return fmt.Errorf("yum remove rpm pkgs failed: %v", err)
|
||||
+ join := ""
|
||||
+ for _, s := range dp.software {
|
||||
+ join += s.Name + "* "
|
||||
+ }
|
||||
+
|
||||
+ if _, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"cd %s && %s %s",
|
||||
+ dp.srcPath, pManager.installCommand, join)); err != nil {
|
||||
+ return fmt.Errorf("%s failed: %v", pManager.installCommand, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
-type dependencyDeb struct {
|
||||
- srcPath string
|
||||
- software []*api.PackageConfig
|
||||
-}
|
||||
+func (dp *dependencyPkg) Remove(r runner.Runner) error {
|
||||
+ if len(dp.software) == 0 {
|
||||
+ return nil
|
||||
+ }
|
||||
|
||||
-func (dd *dependencyDeb) Install(r runner.Runner) error {
|
||||
- command := "dpkg --force-all -i"
|
||||
- if err := runPkgCommand(r, dd.software, dd.srcPath, command); err != nil {
|
||||
- return fmt.Errorf("dpkg install failed: %v", err)
|
||||
+ pManager, err := getPackageManager(r)
|
||||
+ if err != nil {
|
||||
+ return err
|
||||
}
|
||||
|
||||
- return nil
|
||||
-}
|
||||
+ join := ""
|
||||
+ for _, s := range dp.software {
|
||||
+ join += s.Name + "* "
|
||||
+ }
|
||||
|
||||
-func (dd *dependencyDeb) Remove(r runner.Runner) error {
|
||||
- command := "apt remove -y"
|
||||
- if err := runPkgCommand(r, dd.software, dd.srcPath, command); err != nil {
|
||||
- return fmt.Errorf("apt remove deb pkgs failed: %v", err)
|
||||
+ if _, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"cd %s && %s %s",
|
||||
+ dp.srcPath, pManager.removeCommand, join)); err != nil {
|
||||
+ return fmt.Errorf("%s remove failed: %v", pManager.removeCommand, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -150,6 +201,10 @@ type dependencyFileDir struct {
|
||||
}
|
||||
|
||||
func (df *dependencyFileDir) Install(r runner.Runner) error {
|
||||
+ if len(df.software) == 0 {
|
||||
+ return nil
|
||||
+ }
|
||||
+
|
||||
shell := `
|
||||
#!/bin/bash
|
||||
cd {{ .srcPath }}
|
||||
@@ -185,6 +240,10 @@ fi
|
||||
}
|
||||
|
||||
func (df *dependencyFileDir) Remove(r runner.Runner) error {
|
||||
+ if len(df.software) == 0 {
|
||||
+ return nil
|
||||
+ }
|
||||
+
|
||||
var sb strings.Builder
|
||||
sb.WriteString("sudo -E /bin/sh -c \"")
|
||||
for _, s := range df.software {
|
||||
@@ -211,16 +270,11 @@ type dependencyImage struct {
|
||||
image []*api.PackageConfig
|
||||
}
|
||||
|
||||
-func NewDependencyImage(srcPath, client, command string, image []*api.PackageConfig) *dependencyImage {
|
||||
- return &dependencyImage{
|
||||
- srcPath: srcPath,
|
||||
- client: client,
|
||||
- command: command,
|
||||
- image: image,
|
||||
+func (di *dependencyImage) Install(r runner.Runner) error {
|
||||
+ if len(di.image) == 0 {
|
||||
+ return nil
|
||||
}
|
||||
-}
|
||||
|
||||
-func (di *dependencyImage) Install(r runner.Runner) error {
|
||||
var sb strings.Builder
|
||||
sb.WriteString("sudo -E /bin/sh -c \"")
|
||||
for _, i := range di.image {
|
||||
@@ -255,6 +309,10 @@ func NewDependencyYaml(srcPath, kubeconfig string, yaml []*api.PackageConfig) *d
|
||||
}
|
||||
|
||||
func (dy *dependencyYaml) Install(r runner.Runner) error {
|
||||
+ if len(dy.yaml) == 0 {
|
||||
+ return nil
|
||||
+ }
|
||||
+
|
||||
var sb strings.Builder
|
||||
sb.WriteString(fmt.Sprintf("sudo -E /bin/sh -c \"export KUBECONFIG=%s ", dy.kubeconfig))
|
||||
for _, y := range dy.yaml {
|
||||
@@ -274,6 +332,10 @@ func (dy *dependencyYaml) Install(r runner.Runner) error {
|
||||
}
|
||||
|
||||
func (dy *dependencyYaml) Remove(r runner.Runner) error {
|
||||
+ if len(dy.yaml) == 0 {
|
||||
+ return nil
|
||||
+ }
|
||||
+
|
||||
var sb strings.Builder
|
||||
sb.WriteString(fmt.Sprintf("sudo -E /bin/sh -c \"export KUBECONFIG=%s ", dy.kubeconfig))
|
||||
for _, y := range dy.yaml {
|
||||
@@ -306,6 +368,10 @@ func NewDependencyShell(srcPath string, shell []*api.PackageConfig) *dependencyS
|
||||
}
|
||||
|
||||
func (ds *dependencyShell) Install(r runner.Runner) error {
|
||||
+ if len(ds.shell) == 0 {
|
||||
+ return nil
|
||||
+ }
|
||||
+
|
||||
shellTemplate := `
|
||||
#!/bin/bash
|
||||
{{- range $i, $v := .Envs }}
|
||||
@@ -354,3 +420,20 @@ func (ds *dependencyShell) Remove(r runner.Runner) error {
|
||||
// nothing to do
|
||||
return nil
|
||||
}
|
||||
+
|
||||
+type DependencyTask struct {
|
||||
+ dp dependency
|
||||
+}
|
||||
+
|
||||
+func (dt *DependencyTask) Name() string {
|
||||
+ return "DependencyTask"
|
||||
+}
|
||||
+
|
||||
+func (dt *DependencyTask) Run(r runner.Runner, hcf *api.HostConfig) error {
|
||||
+ if err := dt.dp.Install(r); err != nil {
|
||||
+ logrus.Errorf("install failed for %s: %v", hcf.Address, err)
|
||||
+ return err
|
||||
+ }
|
||||
+
|
||||
+ return nil
|
||||
+}
|
||||
diff --git a/pkg/utils/dependency/install.go b/pkg/utils/dependency/install.go
|
||||
index 8cb80f6..35c3521 100644
|
||||
--- a/pkg/utils/dependency/install.go
|
||||
+++ b/pkg/utils/dependency/install.go
|
||||
@@ -18,6 +18,7 @@ package dependency
|
||||
import (
|
||||
"fmt"
|
||||
"path"
|
||||
+ "path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
@@ -29,131 +30,55 @@ import (
|
||||
"isula.org/eggo/pkg/utils/task"
|
||||
)
|
||||
|
||||
-const (
|
||||
- PrmTest = "if [ x != x$(which apt 2>/dev/null) ]; then echo apt ; elif [ x != x$(which yum 2>/dev/null) ]; then echo yum ; fi"
|
||||
- PmTest = "if [ x != x$(which dpkg 2>/dev/null) ]; then echo dpkg ; elif [ x != x$(which rpm 2>/dev/null) ]; then echo rpm ; fi"
|
||||
-)
|
||||
-
|
||||
-type DependencyTask struct {
|
||||
- dp dependency
|
||||
-}
|
||||
-
|
||||
-func (dt *DependencyTask) Name() string {
|
||||
- return "DependencyTask"
|
||||
-}
|
||||
-
|
||||
-func (dt *DependencyTask) Run(r runner.Runner, hcf *api.HostConfig) error {
|
||||
- if err := dt.dp.Install(r); err != nil {
|
||||
- logrus.Errorf("install failed for %s: %v", hcf.Address, err)
|
||||
- return err
|
||||
- }
|
||||
-
|
||||
- return nil
|
||||
-}
|
||||
-
|
||||
-func installRepo(r runner.Runner, software []*api.PackageConfig, hcf *api.HostConfig) error {
|
||||
- if len(software) == 0 {
|
||||
- return nil
|
||||
- }
|
||||
-
|
||||
- output, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"%s\"", PrmTest))
|
||||
- if err != nil {
|
||||
- logrus.Errorf("package repo manager test failed: %v", err)
|
||||
- return err
|
||||
+func newBaseDependency(roleInfra *api.RoleInfra, packagePath string) map[string]dependency {
|
||||
+ packages := map[string][]*api.PackageConfig{
|
||||
+ "repo": {},
|
||||
+ "pkg": {},
|
||||
+ "bin": {},
|
||||
+ "file": {},
|
||||
+ "dir": {},
|
||||
}
|
||||
|
||||
- var dp dependency
|
||||
- if strings.Contains(output, "apt") {
|
||||
- dp = &dependencyApt{
|
||||
- software: software,
|
||||
- }
|
||||
- } else if strings.Contains(output, "yum") {
|
||||
- dp = &dependencyYum{
|
||||
- software: software,
|
||||
+ for _, p := range roleInfra.Softwares {
|
||||
+ if _, exist := packages[p.Type]; !exist {
|
||||
+ continue
|
||||
}
|
||||
+ packages[p.Type] = append(packages[p.Type], p)
|
||||
}
|
||||
|
||||
- if dp == nil {
|
||||
- return fmt.Errorf("invalid package repo manager %s", output)
|
||||
- }
|
||||
-
|
||||
- if err := dp.Install(r); err != nil {
|
||||
- logrus.Errorf("install failed for %s: %v", hcf.Address, err)
|
||||
- return err
|
||||
- }
|
||||
-
|
||||
- return nil
|
||||
-}
|
||||
-
|
||||
-func installPkg(r runner.Runner, software []*api.PackageConfig, hcf *api.HostConfig, packagePath string) error {
|
||||
- if len(software) == 0 {
|
||||
- return nil
|
||||
- }
|
||||
-
|
||||
- output, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"%s\"", PmTest))
|
||||
- if err != nil {
|
||||
- logrus.Errorf("package manager test failed: %v", err)
|
||||
- return err
|
||||
- }
|
||||
-
|
||||
- var dp dependency
|
||||
- if strings.Contains(output, "dpkg") {
|
||||
- dp = &dependencyDeb{
|
||||
- srcPath: path.Join(packagePath, constants.DefaultPkgPath),
|
||||
- software: software,
|
||||
- }
|
||||
- } else if strings.Contains(output, "rpm") {
|
||||
- dp = &dependencyRpm{
|
||||
+ baseDependency := map[string]dependency{
|
||||
+ "repo": &dependencyRepo{
|
||||
+ software: packages["repo"],
|
||||
+ },
|
||||
+ "pkg": &dependencyPkg{
|
||||
srcPath: path.Join(packagePath, constants.DefaultPkgPath),
|
||||
- software: software,
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if dp == nil {
|
||||
- return fmt.Errorf("invalid package manager %s", output)
|
||||
- }
|
||||
-
|
||||
- if err := dp.Install(r); err != nil {
|
||||
- logrus.Errorf("install failed for %s: %v", hcf.Address, err)
|
||||
- return err
|
||||
- }
|
||||
-
|
||||
- return nil
|
||||
-}
|
||||
-
|
||||
-func installFD(r runner.Runner, bin, file, dir []*api.PackageConfig, hcf *api.HostConfig, packagePath string) error {
|
||||
- dp := []dependency{}
|
||||
-
|
||||
- if len(bin) != 0 {
|
||||
- dp = append(dp, &dependencyFileDir{
|
||||
- srcPath: path.Join(packagePath, constants.DefaultBinPath),
|
||||
- software: bin,
|
||||
+ software: packages["pkg"],
|
||||
+ },
|
||||
+ "bin": &dependencyFileDir{
|
||||
executable: true,
|
||||
- })
|
||||
- }
|
||||
-
|
||||
- if len(file) != 0 {
|
||||
- dp = append(dp, &dependencyFileDir{
|
||||
+ srcPath: path.Join(packagePath, constants.DefaultBinPath),
|
||||
+ software: packages["bin"],
|
||||
+ },
|
||||
+ "file": &dependencyFileDir{
|
||||
+ executable: false,
|
||||
srcPath: path.Join(packagePath, constants.DefaultFilePath),
|
||||
- software: file,
|
||||
+ },
|
||||
+ "dir": &dependencyFileDir{
|
||||
executable: false,
|
||||
- })
|
||||
- }
|
||||
-
|
||||
- if len(dir) != 0 {
|
||||
- dp = append(dp, &dependencyFileDir{
|
||||
srcPath: path.Join(packagePath, constants.DefaultDirPath),
|
||||
- software: dir,
|
||||
- executable: false,
|
||||
- })
|
||||
+ software: packages["dir"],
|
||||
+ },
|
||||
}
|
||||
|
||||
- if len(dp) == 0 {
|
||||
- return nil
|
||||
- }
|
||||
+ return baseDependency
|
||||
+}
|
||||
|
||||
- for _, d := range dp {
|
||||
- if err := d.Install(r); err != nil {
|
||||
+// install base dependency, include repo, pkg, bin, file, dir
|
||||
+func InstallBaseDependency(r runner.Runner, roleInfra *api.RoleInfra, hcf *api.HostConfig, packagePath string) error {
|
||||
+ baseDependency := newBaseDependency(roleInfra, packagePath)
|
||||
+
|
||||
+ for _, dep := range baseDependency {
|
||||
+ if err := dep.Install(r); err != nil {
|
||||
logrus.Errorf("install failed for %s: %v", hcf.Address, err)
|
||||
return err
|
||||
}
|
||||
@@ -162,170 +87,57 @@ func installFD(r runner.Runner, bin, file, dir []*api.PackageConfig, hcf *api.Ho
|
||||
return nil
|
||||
}
|
||||
|
||||
-func uninstallRepo(r runner.Runner, software []*api.PackageConfig, hcf *api.HostConfig) error {
|
||||
- if len(software) == 0 {
|
||||
- return nil
|
||||
- }
|
||||
-
|
||||
- output, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"%s\"", PrmTest))
|
||||
- if err != nil {
|
||||
- logrus.Errorf("package repo manager test failed: %v", err)
|
||||
- return err
|
||||
- }
|
||||
+func RemoveBaseDependency(r runner.Runner, roleInfra *api.RoleInfra, hcf *api.HostConfig, packagePath string) {
|
||||
+ baseDependency := newBaseDependency(roleInfra, packagePath)
|
||||
|
||||
- var dp dependency
|
||||
- if strings.Contains(output, "apt") {
|
||||
- dp = &dependencyApt{
|
||||
- software: software,
|
||||
- }
|
||||
- } else if strings.Contains(output, "yum") {
|
||||
- dp = &dependencyYum{
|
||||
- software: software,
|
||||
+ for _, dep := range baseDependency {
|
||||
+ if err := dep.Remove(r); err != nil {
|
||||
+ logrus.Errorf("uninstall failed for %s: %v", hcf.Address, err)
|
||||
}
|
||||
}
|
||||
-
|
||||
- if dp == nil {
|
||||
- return fmt.Errorf("invalid package repo manager %s", output)
|
||||
- }
|
||||
-
|
||||
- if err := dp.Remove(r); err != nil {
|
||||
- logrus.Errorf("uninstall failed for %s: %v", hcf.Address, err)
|
||||
- return err
|
||||
- }
|
||||
-
|
||||
- return nil
|
||||
}
|
||||
|
||||
-func uninstallPkg(r runner.Runner, software []*api.PackageConfig, hcf *api.HostConfig, packagePath string) error {
|
||||
- if len(software) == 0 {
|
||||
- return nil
|
||||
- }
|
||||
-
|
||||
- output, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"%s\"", PmTest))
|
||||
- if err != nil {
|
||||
- logrus.Errorf("package manager test failed: %v", err)
|
||||
- return err
|
||||
- }
|
||||
-
|
||||
- var dp dependency
|
||||
- if strings.Contains(output, "dpkg") {
|
||||
- dp = &dependencyDeb{
|
||||
- srcPath: path.Join(packagePath, constants.DefaultPkgPath),
|
||||
- software: software,
|
||||
+func getImages(workerInfra *api.RoleInfra) []*api.PackageConfig {
|
||||
+ images := []*api.PackageConfig{}
|
||||
+ for _, s := range workerInfra.Softwares {
|
||||
+ if s.Type == "image" {
|
||||
+ images = append(images, s)
|
||||
}
|
||||
- } else if strings.Contains(output, "rpm") {
|
||||
- dp = &dependencyRpm{
|
||||
- srcPath: path.Join(packagePath, constants.DefaultPkgPath),
|
||||
- software: software,
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if dp == nil {
|
||||
- return fmt.Errorf("invalid package manager %s", output)
|
||||
}
|
||||
|
||||
- if err := dp.Remove(r); err != nil {
|
||||
- logrus.Errorf("uninstall failed for %s: %v", hcf.Address, err)
|
||||
- return err
|
||||
- }
|
||||
-
|
||||
- return nil
|
||||
+ return images
|
||||
}
|
||||
|
||||
-func uninstallFD(r runner.Runner, bin, file, dir []*api.PackageConfig, hcf *api.HostConfig) error {
|
||||
- dp := []dependency{}
|
||||
-
|
||||
- if len(bin) != 0 {
|
||||
- dp = append(dp, &dependencyFileDir{
|
||||
- software: bin,
|
||||
- })
|
||||
- }
|
||||
-
|
||||
- if len(file) != 0 {
|
||||
- dp = append(dp, &dependencyFileDir{
|
||||
- software: file,
|
||||
- })
|
||||
- }
|
||||
-
|
||||
- if len(dir) != 0 {
|
||||
- dp = append(dp, &dependencyFileDir{
|
||||
- software: dir,
|
||||
- })
|
||||
- }
|
||||
-
|
||||
- if len(dp) == 0 {
|
||||
+// install image dependency
|
||||
+func InstallImageDependency(r runner.Runner, workerInfra *api.RoleInfra, packageSrc *api.PackageSrcConfig,
|
||||
+ runtime, runtimeClient, runtimeCommand string) error {
|
||||
+ images := getImages(workerInfra)
|
||||
+ if len(images) == 0 {
|
||||
+ logrus.Warn("no images load")
|
||||
return nil
|
||||
}
|
||||
|
||||
- for _, d := range dp {
|
||||
- if err := d.Remove(r); err != nil {
|
||||
- logrus.Errorf("uninstall failed for %s: %v", hcf.Address, err)
|
||||
- return err
|
||||
- }
|
||||
- }
|
||||
+ logrus.Info("do load images...")
|
||||
|
||||
- return nil
|
||||
-}
|
||||
-
|
||||
-func separateSofeware(softwares []*api.PackageConfig) ([]*api.PackageConfig, []*api.PackageConfig, []*api.PackageConfig, []*api.PackageConfig, []*api.PackageConfig) {
|
||||
- repo := []*api.PackageConfig{}
|
||||
- pkg := []*api.PackageConfig{}
|
||||
- bin := []*api.PackageConfig{}
|
||||
- file := []*api.PackageConfig{}
|
||||
- dir := []*api.PackageConfig{}
|
||||
-
|
||||
- for _, p := range softwares {
|
||||
- switch p.Type {
|
||||
- case "repo":
|
||||
- repo = append(repo, p)
|
||||
- case "pkg":
|
||||
- pkg = append(pkg, p)
|
||||
- case "bin":
|
||||
- bin = append(bin, p)
|
||||
- case "file":
|
||||
- file = append(file, p)
|
||||
- case "dir":
|
||||
- dir = append(dir, p)
|
||||
- }
|
||||
+ imageDependency := &dependencyImage{
|
||||
+ srcPath: filepath.Join(packageSrc.GetPkgDstPath(), constants.DefaultImagePath),
|
||||
+ client: runtimeClient,
|
||||
+ command: runtimeCommand,
|
||||
+ image: images,
|
||||
}
|
||||
|
||||
- return repo, pkg, bin, file, dir
|
||||
-}
|
||||
-
|
||||
-func InstallDependency(r runner.Runner, roleInfra *api.RoleInfra, hcf *api.HostConfig, packagePath string) error {
|
||||
- repo, pkg, bin, file, dir := separateSofeware(roleInfra.Softwares)
|
||||
-
|
||||
- if err := installRepo(r, repo, hcf); err != nil {
|
||||
- return fmt.Errorf("install repo failed: %v", err)
|
||||
- }
|
||||
-
|
||||
- if err := installPkg(r, pkg, hcf, packagePath); err != nil {
|
||||
- return fmt.Errorf("install pkg failed: %v", err)
|
||||
- }
|
||||
-
|
||||
- if err := installFD(r, bin, file, dir, hcf, packagePath); err != nil {
|
||||
- return fmt.Errorf("install file failed: %v", err)
|
||||
+ if err := imageDependency.Install(r); err != nil {
|
||||
+ if utils.IsContainerd(runtime) {
|
||||
+ logrus.Warnf("%s not support load images", runtime)
|
||||
+ return nil
|
||||
+ }
|
||||
+ return err
|
||||
}
|
||||
|
||||
+ logrus.Info("load images success")
|
||||
return nil
|
||||
}
|
||||
|
||||
-func RemoveDependency(r runner.Runner, roleInfra *api.RoleInfra, hcf *api.HostConfig, packagePath string) {
|
||||
- repo, pkg, bin, file, dir := separateSofeware(roleInfra.Softwares)
|
||||
-
|
||||
- if err := uninstallRepo(r, repo, hcf); err != nil {
|
||||
- logrus.Errorf("uninstall repo failed: %v", err)
|
||||
- }
|
||||
-
|
||||
- if err := uninstallPkg(r, pkg, hcf, packagePath); err != nil {
|
||||
- logrus.Errorf("uninstall pkg failed: %v", err)
|
||||
- }
|
||||
-
|
||||
- if err := uninstallFD(r, bin, file, dir, hcf); err != nil {
|
||||
- logrus.Errorf("uninstall file failed: %v", err)
|
||||
- }
|
||||
-}
|
||||
-
|
||||
func CheckDependency(r runner.Runner, softwares []string) error {
|
||||
for _, s := range softwares {
|
||||
_, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"which %s\"", s))
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -0,0 +1,86 @@
|
||||
From 83a2ad6a3b68180d0c926280500dd20ee715f26e Mon Sep 17 00:00:00 2001
|
||||
From: zhangxiaoyu <zhangxiaoyu58@huawei.com>
|
||||
Date: Wed, 15 Dec 2021 10:32:29 +0800
|
||||
Subject: [PATCH 15/17] delete apiserver kubelet-https flag, and add lb bind
|
||||
port in firewall
|
||||
|
||||
Signed-off-by: zhangxiaoyu <zhangxiaoyu58@huawei.com>
|
||||
---
|
||||
cmd/configs.go | 13 +++++++++++--
|
||||
.../binary/commontools/systemdservices.go | 1 -
|
||||
pkg/utils/template/template_test.go | 2 --
|
||||
3 files changed, 11 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/cmd/configs.go b/cmd/configs.go
|
||||
index beefd9d..326e889 100644
|
||||
--- a/cmd/configs.go
|
||||
+++ b/cmd/configs.go
|
||||
@@ -300,7 +300,7 @@ func fillPackageConfig(ccfg *api.ClusterConfig, icfg *InstallConfig) {
|
||||
}
|
||||
}
|
||||
|
||||
-func fillOpenPort(ccfg *api.ClusterConfig, openports map[string][]*OpenPorts, dnsType string) {
|
||||
+func fillOpenPort(ccfg *api.ClusterConfig, openports map[string][]*OpenPorts, dnsType string, lb LoadBalance) {
|
||||
// key: master, worker, etcd, loadbalance
|
||||
for t, p := range openports {
|
||||
role, ok := toTypeInt[t]
|
||||
@@ -316,6 +316,15 @@ func fillOpenPort(ccfg *api.ClusterConfig, openports map[string][]*OpenPorts, dn
|
||||
ccfg.RoleInfra[api.Master].OpenPorts =
|
||||
append(ccfg.RoleInfra[api.Master].OpenPorts, infra.CorednsPorts...)
|
||||
}
|
||||
+
|
||||
+ if lb.Ip != "" && lb.BindPort > 0 {
|
||||
+ ccfg.RoleInfra[api.LoadBalance].OpenPorts =
|
||||
+ append(ccfg.RoleInfra[api.LoadBalance].OpenPorts, &api.OpenPorts{
|
||||
+ Port: lb.BindPort,
|
||||
+ Protocol: "tcp",
|
||||
+ })
|
||||
+ return
|
||||
+ }
|
||||
}
|
||||
|
||||
func defaultHostName(clusterID string, nodeType string, i int) string {
|
||||
@@ -588,7 +597,7 @@ func toClusterdeploymentConfig(conf *DeployConfig) *api.ClusterConfig {
|
||||
fillLoadBalance(&ccfg.LoadBalancer, conf.LoadBalance)
|
||||
fillAPIEndPoint(&ccfg.APIEndpoint, conf)
|
||||
fillPackageConfig(ccfg, &conf.InstallConfig)
|
||||
- fillOpenPort(ccfg, conf.OpenPorts, conf.Service.DNS.CorednsType)
|
||||
+ fillOpenPort(ccfg, conf.OpenPorts, conf.Service.DNS.CorednsType, conf.LoadBalance)
|
||||
ccfg.WorkerConfig.KubeletConf.EnableServer = conf.EnableKubeletServing
|
||||
|
||||
fillExtrArgs(ccfg, conf.ConfigExtraArgs)
|
||||
diff --git a/pkg/clusterdeployment/binary/commontools/systemdservices.go b/pkg/clusterdeployment/binary/commontools/systemdservices.go
|
||||
index 0a17ee2..3b32e22 100644
|
||||
--- a/pkg/clusterdeployment/binary/commontools/systemdservices.go
|
||||
+++ b/pkg/clusterdeployment/binary/commontools/systemdservices.go
|
||||
@@ -44,7 +44,6 @@ func SetupAPIServerService(r runner.Runner, ccfg *api.ClusterConfig, hcf *api.Ho
|
||||
"--client-ca-file": "/etc/kubernetes/pki/ca.crt",
|
||||
"--kubelet-client-certificate": "/etc/kubernetes/pki/apiserver-kubelet-client.crt",
|
||||
"--kubelet-client-key": "/etc/kubernetes/pki/apiserver-kubelet-client.key",
|
||||
- "--kubelet-https": "true",
|
||||
"--proxy-client-cert-file": "/etc/kubernetes/pki/front-proxy-client.crt",
|
||||
"--proxy-client-key-file": "/etc/kubernetes/pki/front-proxy-client.key",
|
||||
"--tls-cert-file": "/etc/kubernetes/pki/apiserver.crt",
|
||||
diff --git a/pkg/utils/template/template_test.go b/pkg/utils/template/template_test.go
|
||||
index 2d13329..ae46d48 100644
|
||||
--- a/pkg/utils/template/template_test.go
|
||||
+++ b/pkg/utils/template/template_test.go
|
||||
@@ -156,7 +156,6 @@ func TestCreateSystemdServiceTemplate(t *testing.T) {
|
||||
"--client-ca-file=/etc/kubernetes/pki/ca.crt",
|
||||
"--kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt",
|
||||
"--kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key",
|
||||
- "--kubelet-https=true",
|
||||
"--proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt",
|
||||
"--proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key",
|
||||
"--tls-cert-file=/etc/kubernetes/pki/apiserver.crt",
|
||||
@@ -195,7 +194,6 @@ ExecStart=/usr/bin/kube-apiserver \
|
||||
--client-ca-file=/etc/kubernetes/pki/ca.crt \
|
||||
--kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt \
|
||||
--kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key \
|
||||
- --kubelet-https=true \
|
||||
--proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt \
|
||||
--proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key \
|
||||
--tls-cert-file=/etc/kubernetes/pki/apiserver.crt \
|
||||
--
|
||||
2.25.1
|
||||
|
||||
9227
0016-add-vendor-LICENSE.patch
Normal file
9227
0016-add-vendor-LICENSE.patch
Normal file
File diff suppressed because it is too large
Load Diff
74
0017-fix-Makefile-build-error.patch
Normal file
74
0017-fix-Makefile-build-error.patch
Normal file
@ -0,0 +1,74 @@
|
||||
From ace481915286e8973821d80642ec56457331d07f Mon Sep 17 00:00:00 2001
|
||||
From: zhangxiaoyu <zhangxiaoyu58@huawei.com>
|
||||
Date: Mon, 19 Sep 2022 16:37:07 +0800
|
||||
Subject: [PATCH 17/17] fix Makefile build error
|
||||
|
||||
Signed-off-by: zhangxiaoyu <zhangxiaoyu58@huawei.com>
|
||||
---
|
||||
Makefile | 28 ++++++++++++++++++++++------
|
||||
1 file changed, 22 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 4b6d7c7..d2c4d9e 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -9,26 +9,40 @@ ARCH = arm64
|
||||
endif
|
||||
endif
|
||||
|
||||
+TMP_PATH := /tmp/xxeggo
|
||||
+
|
||||
EXTRALDFLAGS :=
|
||||
LDFLAGS := -X isula.org/eggo/cmd.Version=$(VERSION) \
|
||||
-X isula.org/eggo/cmd.Commit=$(GIT_COMMIT) \
|
||||
-X isula.org/eggo/cmd.BuildTime=$(SOURCE_DATE_EPOCH) \
|
||||
-X isula.org/eggo/cmd.Arch=$(ARCH) \
|
||||
$(EXTRALDFLAGS)
|
||||
-STATIC_LDFLAGS := -extldflags=-static -linkmode=external
|
||||
-SAFEBUILDFLAGS := -buildmode=pie -extldflags=-ftrapv -extldflags=-zrelro -extldflags=-znow -tmpdir=/tmp/xxeggo $(LDFLAGS)
|
||||
+STATIC_LDFLAGS := -extldflags=-static -linkmode=external
|
||||
+SAFEBUILDFLAGS := -buildmode=pie \
|
||||
+ -extldflags=-ftrapv -extldflags=-zrelro -extldflags=-znow \
|
||||
+ -linkmode=external \
|
||||
+ -extldflags "-static-pie -Wl,-z,now" \
|
||||
+ -tmpdir=$(TMP_PATH) \
|
||||
+ $(LDFLAGS)
|
||||
|
||||
GO := go
|
||||
-GO_BUILD := CGO_ENABLED=0 GOARCH=$(ARCH) $(GO)
|
||||
+GO_BUILD := CGO_ENABLED=1 GOARCH=$(ARCH) $(GO)
|
||||
+GO_SAFE_BUILD:= CGO_ENABLE=1 \
|
||||
+ CGO_CFLAGS="-fstack-protector-strong -fPIE" \
|
||||
+ CGO_CPPFLAGS="-fstack-protector-strong -fPIE" \
|
||||
+ CGO_LDFLAGS_ALLOW="-Wl,-z,relro,-z,now" \
|
||||
+ CGO_LDFLAGS="-Wl,-z,relro,-z,now -Wl,-z,noexecstack" \
|
||||
+ GOARCH=$(ARCH) \
|
||||
+ $(GO)
|
||||
|
||||
.PHONY: eggo
|
||||
eggo:
|
||||
@echo "build eggo of $(ARCH) starting..."
|
||||
- @$(GO_BUILD) build -ldflags '$(LDFLAGS) $(STATIC_LDFLAGS)' -o bin/eggo .
|
||||
+ @$(GO_BUILD) build -ldflags '$(LDFLAGS) $(STATIC_LDFLAGS)' -o bin/eggo . 2>/dev/null
|
||||
@echo "build eggo done!"
|
||||
local:
|
||||
@echo "build eggo use vendor starting..."
|
||||
- @$(GO_BUILD) build -ldflags '$(LDFLAGS) $(STATIC_LDFLAGS)' -mod vendor -o bin/eggo .
|
||||
+ @$(GO_BUILD) build -ldflags '$(LDFLAGS) $(STATIC_LDFLAGS)' -mod vendor -o bin/eggo . 2>/dev/null
|
||||
@echo "build eggo use vendor done!"
|
||||
test:
|
||||
@echo "Unit tests starting..."
|
||||
@@ -38,7 +52,9 @@ test:
|
||||
.PHONY: safe
|
||||
safe:
|
||||
@echo "build safe eggo starting..."
|
||||
- $(GO_BUILD) build -ldflags '$(SAFEBUILDFLAGS) $(STATIC_LDFLAGS)' -o bin/eggo .
|
||||
+ mkdir -p $(TMP_PATH)
|
||||
+ $(GO_SAFE_BUILD) build -ldflags '$(SAFEBUILDFLAGS)' -o bin/eggo .
|
||||
+ rm -rf $(TMP_PATH)
|
||||
@echo "build safe eggo done!"
|
||||
|
||||
images: image-eggo
|
||||
--
|
||||
2.25.1
|
||||
|
||||
13
eggo.spec
13
eggo.spec
@ -1,6 +1,6 @@
|
||||
Name: eggo
|
||||
Version: 0.9.4
|
||||
Release: 2
|
||||
Release: 3
|
||||
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
|
||||
@ -18,6 +18,11 @@ Patch0009: 0009-add-spec-of-eggo-hook.patch
|
||||
Patch0010: 0010-update-roadmap-of-eggo.patch
|
||||
Patch0011: 0011-run-hook-with-envs-of-cluster-info.patch
|
||||
Patch0012: 0012-add-deploy-problems-doc.patch
|
||||
Patch0013: 0013-add-cleanup-last-step.patch
|
||||
Patch0014: 0014-refactor-dependency.patch
|
||||
Patch0015: 0015-delete-apiserver-kubelet-https-flag-and-add-lb-bind-.patch
|
||||
Patch0016: 0016-add-vendor-LICENSE.patch
|
||||
Patch0017: 0017-fix-Makefile-build-error.patch
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: git
|
||||
@ -58,6 +63,12 @@ rm -rf src
|
||||
%attr(551,root,root) %{_bindir}/eggo
|
||||
|
||||
%changelog
|
||||
* Mon Sep 19 2022 zhangxiaoyu<zhangxiaoyu58@huawei.com> - 0.9.4-3
|
||||
- Type:upgrade
|
||||
- CVE:NA
|
||||
- SUG:NA
|
||||
- DESC:fix makefile build error
|
||||
|
||||
* Fri Nov 26 2021 zhangxiaoyu<zhangxiaoyu58@huawei.com> - 0.9.4-2
|
||||
- Type:upgrade
|
||||
- CVE:NA
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user