77 lines
2.0 KiB
Go
77 lines
2.0 KiB
Go
package cmii_operator
|
|
|
|
import (
|
|
"errors"
|
|
"os"
|
|
"wdd.io/agent-go/executor"
|
|
"wdd.io/agent-go/utils"
|
|
)
|
|
|
|
const OfflineImageGzipFolderPrefix = "/root/octopus_image/"
|
|
|
|
func FetchDemoImages(projectName string, gzipSplit bool) bool {
|
|
|
|
// generate a project folder
|
|
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", OfflineImageGzipFolderPrefix+projectName, err.Error())
|
|
return false
|
|
}
|
|
}
|
|
|
|
// get demo image version map
|
|
backendMap, frontendMap := BackupAllCmiiDeploymentToMap(demo)
|
|
|
|
utils.BeautifulPrint(backendMap)
|
|
utils.BeautifulPrint(frontendMap)
|
|
|
|
// save map to file
|
|
backendMapFile := OfflineImageGzipFolderPrefix + projectName + "-backend-app.json"
|
|
frontendMapFile := OfflineImageGzipFolderPrefix + projectName + "-frontend-app.json"
|
|
_ = os.Remove(backendMapFile)
|
|
_ = os.Remove(frontendMapFile)
|
|
|
|
executor.BasicAppendContentToFile(
|
|
utils.BeautifulPrintToString(backendMap),
|
|
backendMapFile,
|
|
)
|
|
executor.BasicAppendContentToFile(
|
|
utils.BeautifulPrintToString(frontendMap),
|
|
frontendMapFile,
|
|
)
|
|
|
|
// download image
|
|
ImagePullFromCmiiHarborByMap(backendMap, true)
|
|
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/")
|
|
|
|
}
|