From 1bc41e7e58e99e23cd8be522cc1c2d30090975d2 Mon Sep 17 00:00:00 2001 From: Yuhang Wei Date: Tue, 15 Aug 2023 16:33:11 +0800 Subject: [PATCH 1/2] KubeOS: fix clean space problems add clean space function in server change docker rm position in docker_image Signed-off-by: Yuhang Wei --- cmd/agent/main.go | 4 +--- cmd/agent/server/docker_image.go | 6 +++--- cmd/agent/server/server.go | 9 +++++++++ cmd/agent/server/utils.go | 27 +++++++++++++-------------- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/cmd/agent/main.go b/cmd/agent/main.go index 67c7e2da..7b1ed3da 100644 --- a/cmd/agent/main.go +++ b/cmd/agent/main.go @@ -13,8 +13,6 @@ package main import ( - "fmt" - "github.com/sirupsen/logrus" "google.golang.org/grpc" @@ -24,7 +22,7 @@ import ( ) func main() { - fmt.Println("Version is:", version.Version) + logrus.Infoln("Version is:", version.Version) l, err := server.NewListener(server.SockDir, server.SockName) if err != nil { logrus.Errorln("listen error" + err.Error()) diff --git a/cmd/agent/server/docker_image.go b/cmd/agent/server/docker_image.go index 0b6ee35b..16bcea54 100644 --- a/cmd/agent/server/docker_image.go +++ b/cmd/agent/server/docker_image.go @@ -61,13 +61,13 @@ func (d dockerImageHandler) getRootfsArchive(req *pb.UpdateRequest, neededPath p if err != nil { return "", err } - if err := runCommand("docker", "cp", containerId+":/"+neededPath.rootfsFile, neededPath.updatePath); err != nil { - return "", err - } defer func() { if err := runCommand("docker", "rm", containerId); err != nil { logrus.Errorln("remove kubeos-temp container error", err) } }() + if err := runCommand("docker", "cp", containerId+":/"+neededPath.rootfsFile, neededPath.updatePath); err != nil { + return "", err + } return neededPath.tarPath, nil } diff --git a/cmd/agent/server/server.go b/cmd/agent/server/server.go index 8ac6ffd6..f8cbb410 100644 --- a/cmd/agent/server/server.go +++ b/cmd/agent/server/server.go @@ -112,6 +112,15 @@ func (s *Server) update(req *pb.UpdateRequest) error { return fmt.Errorf("image type %s cannot be recognized", action) } imagePath, err := handler.downloadImage(req) + defer func() { + if err != nil { + path := newPreparePath() + if err := cleanSpace(path.updatePath, path.mountPath, path.imagePath); err != nil { + logrus.Errorln("clean space error " + err.Error()) + } + logrus.Infoln("clean space success") + } + }() if err != nil { return err } diff --git a/cmd/agent/server/utils.go b/cmd/agent/server/utils.go index b42db18f..d2d09463 100644 --- a/cmd/agent/server/utils.go +++ b/cmd/agent/server/utils.go @@ -190,26 +190,25 @@ func prepareEnv() (preparePath, error) { if err := checkDiskSize(needGBSize, PersistDir); err != nil { return preparePath{}, err } - rootfsFile := rootfsArchive - updatePath := splicePath(PersistDir, updateDir) - mountPath := splicePath(updatePath, mountDir) - tarPath := splicePath(updatePath, rootfsFile) - imagePath := splicePath(PersistDir, osImageName) - - if err := cleanSpace(updatePath, mountPath, imagePath); err != nil { + upgradePath := newPreparePath() + if err := cleanSpace(upgradePath.updatePath, upgradePath.mountPath, upgradePath.imagePath); err != nil { return preparePath{}, err } - if err := os.MkdirAll(mountPath, imgPermission); err != nil { + if err := os.MkdirAll(upgradePath.mountPath, imgPermission); err != nil { return preparePath{}, err } - upgradePath := preparePath{ + return upgradePath, nil +} + +func newPreparePath() preparePath { + updatePath := splicePath(PersistDir, updateDir) + return preparePath{ updatePath: updatePath, - mountPath: mountPath, - tarPath: tarPath, - imagePath: imagePath, - rootfsFile: rootfsFile, + mountPath: splicePath(updatePath, mountDir), + tarPath: splicePath(updatePath, rootfsArchive), + imagePath: splicePath(PersistDir, osImageName), + rootfsFile: rootfsArchive, } - return upgradePath, nil } func checkDiskSize(needGBSize int, path string) error { -- Gitee From 9454d10ab546b0edd50d1e0d68b386d00c95fb4b Mon Sep 17 00:00:00 2001 From: Yuhang Wei Date: Tue, 15 Aug 2023 16:24:25 +0800 Subject: [PATCH 2/2] KubeOS: add line breaks Signed-off-by: Yuhang Wei --- scripts/admin-container/set-ssh-pub-key.service | 2 +- scripts/admin-container/set-ssh-pub-key.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/admin-container/set-ssh-pub-key.service b/scripts/admin-container/set-ssh-pub-key.service index cf214069..84dd12d9 100644 --- a/scripts/admin-container/set-ssh-pub-key.service +++ b/scripts/admin-container/set-ssh-pub-key.service @@ -12,4 +12,4 @@ Description="set ssh authorized keys according to the secret which is set by user" [Service] -ExecStart="/usr/local/bin/set-ssh-pub-key.sh" \ No newline at end of file +ExecStart="/usr/local/bin/set-ssh-pub-key.sh" diff --git a/scripts/admin-container/set-ssh-pub-key.sh b/scripts/admin-container/set-ssh-pub-key.sh index aa706c2d..e91a15de 100755 --- a/scripts/admin-container/set-ssh-pub-key.sh +++ b/scripts/admin-container/set-ssh-pub-key.sh @@ -23,4 +23,4 @@ if [ ! -f "$authorized_file" ]; then chmod 600 "$authorized_file" fi -echo "$ssh_pub" >> "$authorized_file" \ No newline at end of file +echo "$ssh_pub" >> "$authorized_file" -- Gitee