[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 += "/"
}

View File

@@ -99,7 +99,8 @@ func TestImagePushToOctopusKindHarbor(t *testing.T) {
}
func TestImageLoadFromFile(t *testing.T) {
loadFromFile := LoadFromGzipFilePath("/root/octopus_image/cqga/cqga/cmlc=cmii=cmii-uav-user=5.2.0.tar.gz")
loadFromFile := LoadFromGzipFilePath("/root/cmlc=cmii=srs=v5.0.195.tar.gz")
assert.Equal(t, loadFromFile, true, "image load error !")
}
@@ -126,9 +127,11 @@ func TestImageFullNameToGzipFileName(t *testing.T) {
"busybox",
}
test = append(test, MiddlewareAmd64...)
for _, s := range test {
gzipFileName := image.ImageFullNameToGzipFileName(s)
fmt.Printf(" %s to %s \n", s, gzipFileName)
fmt.Println(gzipFileName)
}
}