Files
ProjectOctopus/cmii_operator/CmiiOperator.go
2024-01-25 11:08:08 +08:00

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/")
}