[agent-operator] - image bastion mode

This commit is contained in:
zeaslity
2024-04-19 16:50:56 +08:00
parent 6f9cba1270
commit c6ee9ed859
18 changed files with 609 additions and 83 deletions

View File

@@ -168,6 +168,7 @@ func TagFromSourceToTarget(sourceImageName, targetImageName string) bool {
return false
}
sourceImageName = getByName.RepoTags[0]
err := apiClient.ImageTag(context.TODO(), sourceImageName, targetImageName)
if err != nil {
log.ErrorF("[ImageTagFromSourceToTarget] - from %s to %s error %s", sourceImageName, targetImageName, err.Error())
@@ -208,41 +209,47 @@ func TagFromListAndPushToCHarbor(referenceImageList []string, targetHarborHost s
cmiiImageFullName := imageName
if strings.HasPrefix(imageName, "cmii") {
// cmii-uav-gateway:v1.0.0 短名称的形式
cmiiImageFullName = image2.CmiiHarborPrefix + imageName
}
targetProject := "cmii"
if strings.HasPrefix(imageName, "rancher") {
// rancher/rancher:v2.5.7 rancher名称的形式
targetProject = "rancher"
}
// referenceImageList 存储的是全名称的形式
if strings.HasPrefix(imageName, image2.CmiiHarborPrefix) {
//
// harbor.cdcyy.cn/cmii/cmii-uav-gateway:v1.0.0 全名称的形式 需要拿到短名称
imageName = strings.TrimPrefix(imageName, image2.CmiiHarborPrefix)
} else {
// todo
if strings.Contains(imageName, "/") {
imageName = strings.Split(imageName, "/")[1]
// 10.250.0.10:8033/cmii/cmii-uav-gateway:v1.0.0
if strings.Contains(imageName, ":8033") {
imageName = strings.TrimLeft(imageName, ":8033")
}
}
targetImageName := targetHarborHost + ":8033/" + targetProject + "/" + imageName
fmt.Println(cmiiImageFullName)
fmt.Println(targetImageName)
if TagFromSourceToTarget(cmiiImageFullName, targetImageName) {
pushResult := PushToOctopusKindHarbor(targetImageName)
if pushResult == nil {
errorPushImageNameList = append(errorPushImageNameList, cmiiImageFullName)
log.InfoF("[ImageTagFromListAndPushToCHarbor] - push of %s error error !", targetImageName)
break
}
scanner := bufio.NewScanner(pushResult)
for scanner.Scan() {
}
log.InfoF("[ImageTagFromListAndPushToCHarbor] - push of %s success!", targetImageName)
} else {
errorPushImageNameList = append(errorPushImageNameList, cmiiImageFullName)
}
//if TagFromSourceToTarget(cmiiImageFullName, targetImageName) {
// pushResult := PushToOctopusKindHarbor(targetImageName)
// if pushResult == nil {
// errorPushImageNameList = append(errorPushImageNameList, cmiiImageFullName)
// log.InfoF("[ImageTagFromListAndPushToCHarbor] - push of %s error error !", targetImageName)
// break
// }
// scanner := bufio.NewScanner(pushResult)
// for scanner.Scan() {
//
// }
// log.InfoF("[ImageTagFromListAndPushToCHarbor] - push of %s success!", targetImageName)
//} else {
// errorPushImageNameList = append(errorPushImageNameList, cmiiImageFullName)
//}
}
@@ -361,6 +368,7 @@ func PullFromListAndCompressSplit(fullImageNameList []string, gzipFolder string)
return errorPullImageList, errorGzipImageList
}
// LoadFromGzipFilePath 根据Gzip文件的全名称进行Load操作
func LoadFromGzipFilePath(gzipFullPath string) bool {
openFile, err := os.OpenFile(gzipFullPath, 0, fs.ModePerm)
if err != nil {
@@ -386,6 +394,7 @@ func LoadFromGzipFilePath(gzipFullPath string) bool {
}
func LoadFromFolderPath(folderPath string) (errorLoadImageNameList []string) {
if !strings.HasSuffix(folderPath, "/") {
folderPath += "/"
}