[CMII] [Operator] - offline image download

This commit is contained in:
zeaslity
2024-01-25 11:08:08 +08:00
parent 8d4e304237
commit 5069372348
9 changed files with 349 additions and 80 deletions

View File

@@ -3,21 +3,19 @@ package cmii_operator
import (
"errors"
"os"
"strings"
"wdd.io/agent-go/executor"
"wdd.io/agent-go/utils"
)
func FetchDemoImages(projectName, projectFolderPath string) bool {
if !strings.HasSuffix(projectFolderPath, "/") {
projectFolderPath += "/"
}
const OfflineImageGzipFolderPrefix = "/root/octopus_image/"
func FetchDemoImages(projectName string, gzipSplit bool) bool {
// generate a project folder
err := os.Mkdir(projectFolderPath, os.ModeDir)
err := os.Mkdir(OfflineImageGzipFolderPrefix+projectName, os.ModeDir)
if err != nil {
if !errors.Is(err, os.ErrExist) {
log.ErrorF("[FetchDemoImages] - create folder of %s error %s", projectFolderPath, err.Error())
log.ErrorF("[FetchDemoImages] - create folder of %s error %s", OfflineImageGzipFolderPrefix+projectName, err.Error())
return false
}
}
@@ -29,8 +27,8 @@ func FetchDemoImages(projectName, projectFolderPath string) bool {
utils.BeautifulPrint(frontendMap)
// save map to file
backendMapFile := projectFolderPath + projectName + "-backend-app.json"
frontendMapFile := projectFolderPath + projectName + "-frontend-app.json"
backendMapFile := OfflineImageGzipFolderPrefix + projectName + "-backend-app.json"
frontendMapFile := OfflineImageGzipFolderPrefix + projectName + "-frontend-app.json"
_ = os.Remove(backendMapFile)
_ = os.Remove(frontendMapFile)
@@ -48,10 +46,31 @@ func FetchDemoImages(projectName, projectFolderPath string) bool {
ImagePullFromCmiiHarborByMap(frontendMap, true)
// compress image
if gzipSplit {
for image, tag := range backendMap {
ImageSaveToTarGZ(image+":"+tag, OfflineImageGzipFolderPrefix+projectName+"/app/")
}
for image, tag := range frontendMap {
ImageSaveToTarGZ(image+":"+tag, OfflineImageGzipFolderPrefix+projectName+"/app/")
}
}
// upload to harbor
// clean up images
return false
}
func FetchDependencyRepos(gzipSplit bool) {
err := os.Mkdir(OfflineImageGzipFolderPrefix, os.ModeDir)
if err != nil {
if !errors.Is(err, os.ErrExist) {
log.ErrorF("[FetchDependencyRepos] - create folder of %s error %s", OfflineImageGzipFolderPrefix, err.Error())
}
}
ImagePullFromListAndCompressSplit(MiddlewareAmd64, OfflineImageGzipFolderPrefix+"middle/")
ImagePullFromListAndCompressSplit(Rancher1204Amd64, OfflineImageGzipFolderPrefix+"rke/")
}