[ Cmii ] [ Octopus ] - image sync refresh
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
"filePath": "~.fastRequest~collections~Root~server~ExecutionController~patchCommandToAgentAll.rapi",
|
||||
"headerList": [],
|
||||
"id": "api_io.wdd.rpc.controller.ExecutionController.patchCommandToAgentAll",
|
||||
"name": "[命令]- 发送命令至所有的主机",
|
||||
"allCmiiImageName": "[命令]- 发送命令至所有的主机",
|
||||
"paramGroup": {
|
||||
"bodyKeyValueListJson": "",
|
||||
"className": "io.wdd.rpc.controller.ExecutionController",
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
"filePath": "~.fastRequest~collections~Root~server~SchedulerController~createScriptScheduler.rapi",
|
||||
"headerList": [],
|
||||
"id": "api_io.wdd.rpc.controller.SchedulerController.createScriptScheduler",
|
||||
"name": "新增一个定时脚本任务",
|
||||
"allCmiiImageName": "新增一个定时脚本任务",
|
||||
"paramGroup": {
|
||||
"bodyKeyValueListJson": "{\n \"schedulerUuid\": \"\",\n \"name\": \"测试任务\",\n \"cronExpress\": \"30 */30 * * * ? *\",\n \"description\": \"这是注释内容\",\n \"scriptContent\": \"echo yes \\napt-get update \\necho no \\napt-get install nginx -y\",\n \"targetMachine\": \"Chengdu-amd64-98-98066f\",\n \"lastExecutionId\": null,\n \"lastExecutionResultKey\": \"\",\n \"lastExecutionStatus\": null ,\n \"createTime\": \"\",\n \"updateTime\": \"\",\n \"nextScheduleTime\": \"\",\n \"lastScheduleTime\": \"\"\n}",
|
||||
"bodyKeyValueListJson": "{\n \"schedulerUuid\": \"\",\n \"allCmiiImageName\": \"测试任务\",\n \"cronExpress\": \"30 */30 * * * ? *\",\n \"description\": \"这是注释内容\",\n \"scriptContent\": \"echo yes \\napt-get update \\necho no \\napt-get install nginx -y\",\n \"targetMachine\": \"Chengdu-amd64-98-98066f\",\n \"lastExecutionId\": null,\n \"lastExecutionResultKey\": \"\",\n \"lastExecutionStatus\": null ,\n \"createTime\": \"\",\n \"updateTime\": \"\",\n \"nextScheduleTime\": \"\",\n \"lastScheduleTime\": \"\"\n}",
|
||||
"className": "io.wdd.rpc.controller.SchedulerController",
|
||||
"jsonDocument": "{\n \"schedulerUuid\": \"No comment,Value =schedulerUuid_9dr3w\",\n \"name\": \"No comment,Value =name_ucmeh\",\n \"cronExpress\": \"No comment,Value =cronExpress_qbwqm\",\n \"description\": \"No comment,Value =description_drj0c\",\n \"scriptContent\": \"脚本任务的内容\",\n \"targetMachine\": \"执行目标机器agent_topic_name列表,使用, 分隔\",\n \"lastExecutionId\": \"与 execution_log表的主键对应,方便查询执行日志\",\n \"lastExecutionResultKey\": \"与 execution_log表的 result_key 对应,方便查询执行日志\",\n \"lastExecutionStatus\": \"任务上次执行状态\",\n \"createTime\": \"定时脚本任务创建时间\",\n \"updateTime\": \"上次更新时间\",\n \"nextScheduleTime\": \"任务下次计划执行时间\",\n \"lastScheduleTime\": \"任务上次计划执行时间\"\n}",
|
||||
"jsonDocument": "{\n \"schedulerUuid\": \"No comment,Value =schedulerUuid_9dr3w\",\n \"allCmiiImageName\": \"No comment,Value =name_ucmeh\",\n \"cronExpress\": \"No comment,Value =cronExpress_qbwqm\",\n \"description\": \"No comment,Value =description_drj0c\",\n \"scriptContent\": \"脚本任务的内容\",\n \"targetMachine\": \"执行目标机器agent_topic_name列表,使用, 分隔\",\n \"lastExecutionId\": \"与 execution_log表的主键对应,方便查询执行日志\",\n \"lastExecutionResultKey\": \"与 execution_log表的 result_key 对应,方便查询执行日志\",\n \"lastExecutionStatus\": \"任务上次执行状态\",\n \"createTime\": \"定时脚本任务创建时间\",\n \"updateTime\": \"上次更新时间\",\n \"nextScheduleTime\": \"任务下次计划执行时间\",\n \"lastScheduleTime\": \"任务上次计划执行时间\"\n}",
|
||||
"method": "createScriptScheduler",
|
||||
"methodDescription": "新增一个定时脚本任务",
|
||||
"methodType": "POST",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"filePath": "~.fastRequest~collections~Root~server~SchedulerController~queryAllQuartzJob.rapi",
|
||||
"headerList": [],
|
||||
"id": "api_io.wdd.rpc.controller.SchedulerController.queryAllQuartzJob",
|
||||
"name": "查询所有job",
|
||||
"allCmiiImageName": "查询所有job",
|
||||
"paramGroup": {
|
||||
"bodyKeyValueListJson": "",
|
||||
"className": "io.wdd.rpc.controller.SchedulerController",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"filePath": "~.fastRequest~collections~Root~server~SchedulerController~queryAllTriggers.rapi",
|
||||
"headerList": [],
|
||||
"id": "api_io.wdd.rpc.controller.SchedulerController.queryAllTriggers",
|
||||
"name": "查询所有的触发器Trigger",
|
||||
"allCmiiImageName": "查询所有的触发器Trigger",
|
||||
"paramGroup": {
|
||||
"bodyKeyValueListJson": "",
|
||||
"className": "io.wdd.rpc.controller.SchedulerController",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"filePath": "~.fastRequest~collections~Root~server~SchedulerController~queryRunQuartzJob.rapi",
|
||||
"headerList": [],
|
||||
"id": "api_io.wdd.rpc.controller.SchedulerController.queryRunQuartzJob",
|
||||
"name": "查询所有运行job",
|
||||
"allCmiiImageName": "查询所有运行job",
|
||||
"paramGroup": {
|
||||
"bodyKeyValueListJson": "",
|
||||
"className": "io.wdd.rpc.controller.SchedulerController",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"filePath": "~.fastRequest~collections~Root~server~StatusController~GetHealthyStatusAgentList.rapi",
|
||||
"headerList": [],
|
||||
"id": "api_io.wdd.rpc.controller.StatusController.GetHealthyStatusAgentList",
|
||||
"name": "[ 状态-Agent ] Map",
|
||||
"allCmiiImageName": "[ 状态-Agent ] Map",
|
||||
"paramGroup": {
|
||||
"bodyKeyValueListJson": "",
|
||||
"className": "io.wdd.rpc.controller.StatusController",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"filePath": "~.fastRequest~collections~Root~server~StatusController~ManualUpdateAgentStatus.rapi",
|
||||
"headerList": [],
|
||||
"id": "api_io.wdd.rpc.controller.StatusController.ManualUpdateAgentStatus",
|
||||
"name": "手动更新Agent的状态",
|
||||
"allCmiiImageName": "手动更新Agent的状态",
|
||||
"paramGroup": {
|
||||
"bodyKeyValueListJson": "",
|
||||
"className": "io.wdd.rpc.controller.StatusController",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="go build agent-go" type="GoApplicationRunConfiguration" factoryName="Go Application" nameIsGenerated="true">
|
||||
<module name="ProjectOctopus" />
|
||||
<component allCmiiImageName="ProjectRunConfigurationManager">
|
||||
<configuration default="false" allCmiiImageName="go build agent-go" type="GoApplicationRunConfiguration"
|
||||
factoryName="Go Application" nameIsGenerated="true">
|
||||
<module allCmiiImageName="ProjectOctopus"/>
|
||||
<working_directory value="$PROJECT_DIR$/agent-go" />
|
||||
<useCustomBuildTags value="true" />
|
||||
<parameters value="-version=shanghai -agentServerInfoConf=$PROJECT_DIR$/agent-go/server-env.yaml" />
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<groupId>io.wdd</groupId>
|
||||
<artifactId>agent</artifactId>
|
||||
|
||||
<name>agent</name>
|
||||
<allCmiiImageName>agent</allCmiiImageName>
|
||||
<description>agent</description>
|
||||
|
||||
<properties>
|
||||
@@ -56,7 +56,7 @@
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>github</id>
|
||||
<name>GitHub Apache Maven Packages</name>
|
||||
<allCmiiImageName>GitHub Apache Maven Packages</allCmiiImageName>
|
||||
<url>https://maven.pkg.github.com/zeaslity/ProjectOctopus</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
|
||||
@@ -67,7 +67,7 @@ func TestRestartCmiiFrontendDeployment(t *testing.T) {
|
||||
|
||||
func TestRestartCmiiDeployment(t *testing.T) {
|
||||
cmiiEnv := integration
|
||||
appName := "cmii-uav-cloud-live"
|
||||
appName := "cmii-uav-device"
|
||||
|
||||
kill := CmiiOperator.DeploymentRestartByKill(cmiiEnv, appName)
|
||||
assert.Equal(t, kill, true, "have unhealthy pod !")
|
||||
@@ -237,7 +237,7 @@ func TestUpdateCmiiDeploymentImageTag(t *testing.T) {
|
||||
|
||||
cmiiEnv := demo
|
||||
appName := "cmii-uav-platform"
|
||||
newTag := "5.4.0"
|
||||
newTag := "5.4.0-25263-0311"
|
||||
|
||||
tag := UpdateCmiiDeploymentImageTag(cmiiEnv, appName, newTag)
|
||||
assert.Equal(t, tag, true, "update image tag failed !")
|
||||
|
||||
@@ -2,7 +2,9 @@ package cmii_operator
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"io/fs"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"wdd.io/agent-go/executor"
|
||||
"wdd.io/agent-go/utils"
|
||||
@@ -12,16 +14,128 @@ import (
|
||||
const OfflineImageGzipFolderPrefix = "/root/octopus_image/"
|
||||
const OfflineDeployHarborHost = "harbor.wdd.io"
|
||||
const PublicDeployHarborHost = "42.192.52.227"
|
||||
const DirectPushDeployHarborHost = "36.134.28.60"
|
||||
const DirectPushDeployHarborHost = "36.134.71.138"
|
||||
|
||||
func FetchDemoImages(projectName string, gzipSplit bool) (errorPullImageList, errorGzipImageList []string) {
|
||||
type ImageSyncEntity struct {
|
||||
ProjectName string
|
||||
ProjectVersion string
|
||||
DirectHarborHost string
|
||||
PushToDemoMinio bool
|
||||
}
|
||||
|
||||
type ImageSyncResult struct {
|
||||
ErrorPullImageList []string
|
||||
ErrorGzipImageList []string
|
||||
ErrorPushImageNameList []string
|
||||
RealImageNameList []string
|
||||
RealGzipFileNameList []string
|
||||
AllCmiiImageNameList []string
|
||||
}
|
||||
|
||||
func (sync ImageSyncEntity) PullFromEntityAndSyncConditionally() (imageSyncResult ImageSyncResult) {
|
||||
|
||||
var realCmiiImageList []string
|
||||
var errorPullImageList []string
|
||||
var errorGzipImageList []string
|
||||
var allCmiiImageNameList []string
|
||||
var allGzipFileNameList []string
|
||||
var errorPushImageNameList []string
|
||||
var gzipFolderFullPath string
|
||||
// get all image name by Name or Version
|
||||
// pull images
|
||||
// compress
|
||||
if sync.ProjectVersion == "" {
|
||||
// get version
|
||||
if sync.DirectHarborHost == "" {
|
||||
errorPullImageList, errorGzipImageList, allCmiiImageNameList = FetchVersionImages(sync.ProjectVersion, true)
|
||||
gzipFolderFullPath = OfflineImageGzipFolderPrefix + sync.ProjectVersion
|
||||
} else {
|
||||
errorPullImageList, errorGzipImageList, allCmiiImageNameList = FetchVersionImages(sync.ProjectVersion, false)
|
||||
}
|
||||
} else {
|
||||
// get demo images
|
||||
if sync.DirectHarborHost == "" {
|
||||
errorPullImageList, errorGzipImageList, allCmiiImageNameList = FetchDemoImages(sync.ProjectName, true)
|
||||
gzipFolderFullPath = OfflineImageGzipFolderPrefix + sync.ProjectName
|
||||
} else {
|
||||
errorPullImageList, errorGzipImageList, allCmiiImageNameList = FetchDemoImages(sync.ProjectName, false)
|
||||
}
|
||||
}
|
||||
|
||||
realCmiiImageList = append(realCmiiImageList, remove(allCmiiImageNameList, errorPullImageList)...)
|
||||
realCmiiImageList = append(realCmiiImageList, remove(allCmiiImageNameList, errorGzipImageList)...)
|
||||
|
||||
// direct push if can
|
||||
if sync.DirectHarborHost != "" {
|
||||
// push to
|
||||
errorPushImageNameList = image.TagFromListAndPushToCHarbor(realCmiiImageList, sync.DirectHarborHost)
|
||||
|
||||
// build
|
||||
imageSyncResult.AllCmiiImageNameList = allCmiiImageNameList
|
||||
imageSyncResult.ErrorPullImageList = errorPullImageList
|
||||
imageSyncResult.ErrorGzipImageList = errorGzipImageList
|
||||
imageSyncResult.ErrorPushImageNameList = errorPushImageNameList
|
||||
|
||||
// no gzip file
|
||||
|
||||
return imageSyncResult
|
||||
}
|
||||
|
||||
// get gzip file name list
|
||||
err := filepath.WalkDir(gzipFolderFullPath, func(path string, d fs.DirEntry, err error) error {
|
||||
if err != nil {
|
||||
log.ErrorF("error getting gzip file name list 1! %s", err.Error())
|
||||
}
|
||||
if !d.IsDir() {
|
||||
allGzipFileNameList = append(allGzipFileNameList, d.Name())
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
log.ErrorF("error getting gzip file name list 2! %s", err.Error())
|
||||
}
|
||||
|
||||
// push to demo minio
|
||||
if sync.PushToDemoMinio {
|
||||
log.InfoF("pretend to push to minio !")
|
||||
// create path
|
||||
// push
|
||||
}
|
||||
|
||||
// build
|
||||
imageSyncResult.AllCmiiImageNameList = allCmiiImageNameList
|
||||
imageSyncResult.ErrorPullImageList = errorPullImageList
|
||||
imageSyncResult.ErrorGzipImageList = errorGzipImageList
|
||||
imageSyncResult.ErrorPushImageNameList = errorPushImageNameList
|
||||
imageSyncResult.RealGzipFileNameList = allGzipFileNameList
|
||||
|
||||
// no gzip file
|
||||
|
||||
return imageSyncResult
|
||||
}
|
||||
|
||||
func remove(s1, s2 []string) []string {
|
||||
m := make(map[string]struct{}, len(s2))
|
||||
for _, v := range s2 {
|
||||
m[v] = struct{}{}
|
||||
}
|
||||
res := make([]string, 0, len(s1))
|
||||
for _, v := range s1 {
|
||||
if _, ok := m[v]; !ok {
|
||||
res = append(res, v)
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func FetchDemoImages(projectName string, gzipSplit bool) (errorPullImageList, errorGzipImageList, allCmiiImageName []string) {
|
||||
|
||||
// generate a project folder
|
||||
err := os.MkdirAll(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 errorPullImageList, errorGzipImageList
|
||||
return errorPullImageList, errorGzipImageList, allCmiiImageName
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,9 +168,13 @@ func FetchDemoImages(projectName string, gzipSplit bool) (errorPullImageList, er
|
||||
)
|
||||
|
||||
// download image
|
||||
backendPull := image.ImagePullFromCmiiHarborByMap(backendMap, true)
|
||||
frontendPull := image.ImagePullFromCmiiHarborByMap(frontendMap, true)
|
||||
srsPull := image.ImagePullFromCmiiHarborByMap(srsMap, true)
|
||||
backendFullNameList, backendPull := image.PullFromCmiiHarborByMap(backendMap, true)
|
||||
frontendFullNameList, frontendPull := image.PullFromCmiiHarborByMap(frontendMap, true)
|
||||
srsFullNameList, srsPull := image.PullFromCmiiHarborByMap(srsMap, true)
|
||||
|
||||
allCmiiImageName = append(allCmiiImageName, backendFullNameList...)
|
||||
allCmiiImageName = append(allCmiiImageName, frontendFullNameList...)
|
||||
allCmiiImageName = append(allCmiiImageName, srsFullNameList...)
|
||||
|
||||
// compress image
|
||||
if gzipSplit {
|
||||
@@ -84,32 +202,30 @@ func FetchDemoImages(projectName string, gzipSplit bool) (errorPullImageList, er
|
||||
errorPullImageList = append(errorPullImageList, frontendPull...)
|
||||
errorPullImageList = append(errorPullImageList, srsPull...)
|
||||
|
||||
return errorPullImageList, errorGzipImageList
|
||||
return errorPullImageList, errorGzipImageList, allCmiiImageName
|
||||
}
|
||||
|
||||
func FetchVersionImages(cmiiVersion string, gzipSplit bool) (errorPullImageList, errorGzipImageList []string) {
|
||||
func FetchVersionImages(cmiiVersion string, shouldGzip bool) (errorPullImageList, errorGzipImageList, allCmiiImageName []string) {
|
||||
|
||||
// generate a project folder
|
||||
err := os.MkdirAll(OfflineImageGzipFolderPrefix+cmiiVersion, os.ModeDir)
|
||||
if err != nil {
|
||||
if !errors.Is(err, os.ErrExist) {
|
||||
log.ErrorF("[FetchDemoImages] - create folder of %s error %s", OfflineImageGzipFolderPrefix+cmiiVersion, err.Error())
|
||||
return errorPullImageList, errorGzipImageList
|
||||
return errorPullImageList, errorGzipImageList, allCmiiImageName
|
||||
}
|
||||
}
|
||||
|
||||
backendMap := CmiiBackendAppMap
|
||||
frontendMap := CmiiFrontendAppMap
|
||||
|
||||
for app, _ := range backendMap {
|
||||
for app := range backendMap {
|
||||
backendMap[app] = cmiiVersion
|
||||
}
|
||||
for app, _ := range frontendMap {
|
||||
for app := range frontendMap {
|
||||
frontendMap[app] = cmiiVersion
|
||||
}
|
||||
|
||||
var allCmiiImageName []string
|
||||
|
||||
allCmiiImageName = append(allCmiiImageName, image.ConvertCMiiImageMapToList(backendMap)...)
|
||||
allCmiiImageName = append(allCmiiImageName, image.ConvertCMiiImageMapToList(frontendMap)...)
|
||||
|
||||
@@ -130,12 +246,16 @@ func FetchVersionImages(cmiiVersion string, gzipSplit bool) (errorPullImageList,
|
||||
}
|
||||
}
|
||||
|
||||
utils.BeautifulPrint(allCmiiImageName)
|
||||
utils.BeautifulPrintListWithTitle(allCmiiImageName, "Cmii Version Image => "+cmiiVersion)
|
||||
|
||||
// do work
|
||||
if shouldGzip {
|
||||
errorPullImageList, errorGzipImageList = image.PullFromListAndCompressSplit(allCmiiImageName, OfflineImageGzipFolderPrefix+cmiiVersion)
|
||||
} else {
|
||||
errorPullImageList = image.PullFromFullNameList(allCmiiImageName)
|
||||
}
|
||||
|
||||
return errorPullImageList, errorGzipImageList
|
||||
return errorPullImageList, errorGzipImageList, allCmiiImageName
|
||||
}
|
||||
|
||||
func FetchDependencyRepos(gzipSplit bool) (errorPullImageList, errorGzipImageList []string) {
|
||||
@@ -151,14 +271,13 @@ func FetchDependencyRepos(gzipSplit bool) (errorPullImageList, errorGzipImageLis
|
||||
pull, gzipImageList := image.PullFromListAndCompressSplit(image.Rancher1204Amd64, OfflineImageGzipFolderPrefix+"rke/")
|
||||
|
||||
return append(errorPullImageList, pull...), append(errorGzipImageList, gzipImageList...)
|
||||
|
||||
}
|
||||
|
||||
func LoadSplitGzipImageToTargetHarbor(projectName, targetHarborHost string) (errorLoadImageNameList, errorPushImageNameList []string) {
|
||||
func LoadSplitCmiiGzipImageToTargetHarbor(projectName, targetHarborHost string) (errorLoadImageNameList, errorPushImageNameList []string) {
|
||||
|
||||
// list folder
|
||||
projectGzipFolder := OfflineImageGzipFolderPrefix + projectName
|
||||
errorLoadImageNameList = append(errorLoadImageNameList, image.ImageLoadFromFolderPath(projectGzipFolder)...)
|
||||
errorLoadImageNameList = append(errorLoadImageNameList, image.LoadFromFolderPath(projectGzipFolder)...)
|
||||
// read from json
|
||||
errorPushImageNameList = append(errorPushImageNameList, image.TagFromListAndPushToCHarbor(image.Cmii520DemoImageList, targetHarborHost)...)
|
||||
|
||||
|
||||
@@ -7,18 +7,19 @@ import (
|
||||
|
||||
func TestFetchDemoImages(t *testing.T) {
|
||||
|
||||
errorPullImageList, errorGzipImageList := FetchDemoImages("shls", true)
|
||||
errorPullImageList, errorGzipImageList, allCmiiImageName := FetchDemoImages("shls", true)
|
||||
|
||||
utils.BeautifulPrintListWithTitle(errorPullImageList, "cmii errorPullImageList")
|
||||
utils.BeautifulPrintListWithTitle(errorGzipImageList, "cmii errorGzipImageList")
|
||||
|
||||
utils.BeautifulPrintListWithTitle(allCmiiImageName, "cmii allCmiiImageName")
|
||||
}
|
||||
|
||||
func TestFetchVersionImages(t *testing.T) {
|
||||
errorPullImageList, errorGzipImageList := FetchVersionImages("5.4.0", true)
|
||||
errorPullImageList, errorGzipImageList, allCmiiImageName := FetchVersionImages("5.4.0", true)
|
||||
|
||||
utils.BeautifulPrintListWithTitle(errorPullImageList, "cmii errorPullImageList")
|
||||
utils.BeautifulPrintListWithTitle(errorGzipImageList, "cmii errorGzipImageList")
|
||||
utils.BeautifulPrintListWithTitle(allCmiiImageName, "cmii allCmiiImageName")
|
||||
}
|
||||
|
||||
func TestFetchDependencyRepos(t *testing.T) {
|
||||
@@ -27,11 +28,10 @@ func TestFetchDependencyRepos(t *testing.T) {
|
||||
|
||||
utils.BeautifulPrintListWithTitle(errorPullImageList, "dep errorPullImageList")
|
||||
utils.BeautifulPrintListWithTitle(errorGzipImageList, "dep errorGzipImageList")
|
||||
|
||||
}
|
||||
|
||||
func TestLoadSplitGzipImageToTargetHarbor(t *testing.T) {
|
||||
errorLoadImageNameList, errorPushImageNameList := LoadSplitGzipImageToTargetHarbor("cqga", OfflineDeployHarborHost)
|
||||
errorLoadImageNameList, errorPushImageNameList := LoadSplitCmiiGzipImageToTargetHarbor("xmyd", DirectPushDeployHarborHost)
|
||||
|
||||
utils.BeautifulPrintListWithTitle(errorLoadImageNameList, "errorLoadImageNameList")
|
||||
utils.BeautifulPrintListWithTitle(errorPushImageNameList, "errorPushImageNameList")
|
||||
@@ -43,3 +43,15 @@ func TestLoadSplitDepGzipImageToTargetHarbor(t *testing.T) {
|
||||
utils.BeautifulPrintListWithTitle(errorLoadImageNameList, "errorLoadImageNameList")
|
||||
utils.BeautifulPrintListWithTitle(errorPushImageNameList, "errorPushImageNameList")
|
||||
}
|
||||
|
||||
func TestImageSyncEntity_PullFromEntityAndSyncConditionally(t *testing.T) {
|
||||
imageSyncEntity := ImageSyncEntity{
|
||||
ProjectVersion: "5.4.0",
|
||||
DirectHarborHost: "36.134.71.138",
|
||||
}
|
||||
|
||||
imageSyncResult := imageSyncEntity.PullFromEntityAndSyncConditionally()
|
||||
|
||||
utils.BeautifulPrint(imageSyncResult)
|
||||
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"wdd.io/agent-go/utils"
|
||||
"wdd.io/cmii_operator"
|
||||
)
|
||||
|
||||
@@ -37,11 +38,11 @@ func main() {
|
||||
//}
|
||||
|
||||
// restart all backend
|
||||
cmii_operator.RestartCmiiBackendDeployment(realNamespace)
|
||||
//cmii_operator.RestartCmiiBackendDeployment(realNamespace)
|
||||
|
||||
//cmii_operator.RestartCmiiFrontendDeployment(realNamespace)
|
||||
|
||||
//backMap := map[string]string{
|
||||
backMap := map[string]string{
|
||||
//"cmii-admin-data": "5.4.0",
|
||||
//"cmii-admin-gateway": "5.4.0",
|
||||
//"cmii-admin-user": "5.4.0",
|
||||
@@ -76,17 +77,17 @@ func main() {
|
||||
//"cmii-uav-notice": "5.4.0",
|
||||
//"cmii-uav-oauth": "5.4.0",
|
||||
//"cmii-uav-process": "5.4.0",
|
||||
// "cmii-uav-surveillance": "5.4.0-25916",
|
||||
"cmii-uav-surveillance": "5.4.0-leaflet",
|
||||
//"cmii-uav-threedsimulation": "5.1.0",
|
||||
//"cmii-uav-tower": "5.4.0",
|
||||
//"cmii-uav-user": "5.4.0",
|
||||
//"cmii-uav-waypoint": "5.4.0-26768",
|
||||
//}
|
||||
}
|
||||
//
|
||||
//frontMap := map[string]string{
|
||||
frontMap := map[string]string{
|
||||
"cmii-uav-platform": "5.4.0-leaflet",
|
||||
//"cmii-suav-platform-supervision": "5.4.0",
|
||||
//"cmii-suav-platform-supervisionh5": "5.4.0",
|
||||
// "cmii-uav-platform": "5.4.0-25263",
|
||||
//"cmii-uav-platform-ai-brain": "5.4.0",
|
||||
//"cmii-uav-platform-armypeople": "5.4.0",
|
||||
//"cmii-uav-platform-base": "5.4.0",
|
||||
@@ -110,14 +111,14 @@ func main() {
|
||||
//"cmii-uav-platform-splice": "5.4.0",
|
||||
//"cmii-uav-platform-threedsimulation": "5.2.0-21392",
|
||||
//"cmii-uav-platform-visualization": "5.2.0",
|
||||
//}
|
||||
}
|
||||
//
|
||||
//cmii_operator.CmiiOperator = k8sOperator
|
||||
cmii_operator.CmiiOperator = k8sOperator
|
||||
//
|
||||
//result := cmii_operator.UpdateCmiiImageTagFromNameTagMap(realNamespace, backMap)
|
||||
//utils.BeautifulPrint(result)
|
||||
//
|
||||
//result = cmii_operator.UpdateCmiiImageTagFromNameTagMap(realNamespace, frontMap)
|
||||
//utils.BeautifulPrint(result)
|
||||
result := cmii_operator.UpdateCmiiImageTagFromNameTagMap(realNamespace, backMap)
|
||||
utils.BeautifulPrint(result)
|
||||
|
||||
result = cmii_operator.UpdateCmiiImageTagFromNameTagMap(realNamespace, frontMap)
|
||||
utils.BeautifulPrint(result)
|
||||
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ var MiddlewareAmd64 = []string{
|
||||
"nginx:1.21.3",
|
||||
"redis:6.0.20-alpine",
|
||||
"dyrnq/nfs-subdir-external-provisioner:v4.0.2",
|
||||
"jerrychina2020/rke-tools:v0.175-linux",
|
||||
"busybox:latest",
|
||||
}
|
||||
|
||||
@@ -85,7 +86,6 @@ var Rancher1204Amd64 = []string{
|
||||
"rancher/rancher-webhook:v0.1.0-beta9",
|
||||
"rancher/rancher:v2.5.7",
|
||||
"rancher/rke-tools:v0.1.72",
|
||||
"jerrychina2020/rke-tools:v0.175-linux",
|
||||
"rancher/security-scan:v0.1.14",
|
||||
"rancher/security-scan:v0.2.2",
|
||||
"rancher/shell:v0.1.6",
|
||||
|
||||
@@ -17,6 +17,7 @@ import (
|
||||
"strings"
|
||||
"wdd.io/agent-go/executor"
|
||||
"wdd.io/agent-go/logger"
|
||||
"wdd.io/agent-go/utils"
|
||||
)
|
||||
|
||||
var apiClient = newClient()
|
||||
@@ -109,7 +110,7 @@ func Delete(imageName string) []types.ImageDeleteResponseItem {
|
||||
|
||||
func PruneAllCmiiImages() (errorRemoveImageNameList []string) {
|
||||
|
||||
apiClient.ImagesPrune(context.TODO(), filters.Args{})
|
||||
_, _ = apiClient.ImagesPrune(context.TODO(), filters.Args{})
|
||||
|
||||
imageGetAll := GetAll()
|
||||
|
||||
@@ -134,6 +135,8 @@ func PruneAllCmiiImages() (errorRemoveImageNameList []string) {
|
||||
}
|
||||
}
|
||||
|
||||
_, _ = apiClient.ImagesPrune(context.TODO(), filters.Args{})
|
||||
|
||||
return errorRemoveImageNameList
|
||||
}
|
||||
|
||||
@@ -175,11 +178,15 @@ func PushToOctopusKindHarbor(targetImageName string) (pushResult io.ReadCloser)
|
||||
return pushResult
|
||||
}
|
||||
|
||||
// TagFromListAndPushToCHarbor 需要支持 harbor.cdcyy.cn ip:8033 rancher/rancher:v2.5.7 nginx:latest
|
||||
func TagFromListAndPushToCHarbor(referenceImageList []string, targetHarborHost string) (errorPushImageNameList []string) {
|
||||
|
||||
for _, imageName := range referenceImageList {
|
||||
|
||||
// check image
|
||||
// harbor.cdcyy.cn
|
||||
cmiiImageFullName := imageName
|
||||
|
||||
if strings.HasPrefix(imageName, "cmii") {
|
||||
cmiiImageFullName = CmiiHarborPrefix + imageName
|
||||
}
|
||||
@@ -190,7 +197,10 @@ func TagFromListAndPushToCHarbor(referenceImageList []string, targetHarborHost s
|
||||
}
|
||||
|
||||
if strings.Contains(imageName, "/") {
|
||||
//
|
||||
imageName = strings.Split(imageName, "/")[1]
|
||||
} else {
|
||||
|
||||
}
|
||||
|
||||
targetImageName := targetHarborHost + ":8033/" + targetProject + "/" + imageName
|
||||
@@ -232,14 +242,14 @@ func PullFromCmiiHarbor(imageName string) (pullResult io.ReadCloser) {
|
||||
return pullResult
|
||||
}
|
||||
|
||||
func ImagePullFromCmiiHarborByMap(imageVersionMap map[string]string, silentMode bool) (errorPullImageList []string) {
|
||||
func PullFromCmiiHarborByMap(imageVersionMap map[string]string, silentMode bool) (fullImageNameList, errorPullImageList []string) {
|
||||
|
||||
fullImageNameList := ConvertCMiiImageMapToList(imageVersionMap)
|
||||
return ImagePullFromFullNameList(fullImageNameList)
|
||||
fullImageNameList = ConvertCMiiImageMapToList(imageVersionMap)
|
||||
return fullImageNameList, PullFromFullNameList(fullImageNameList)
|
||||
|
||||
}
|
||||
|
||||
func ImagePullCMiiFromFileJson(filePathName string) {
|
||||
func PullCmiiFromFileJson(filePathName string) {
|
||||
|
||||
readFile, err := os.ReadFile(filePathName)
|
||||
if err != nil {
|
||||
@@ -274,7 +284,8 @@ func ImagePullCMiiFromFileJson(filePathName string) {
|
||||
|
||||
}
|
||||
|
||||
func ImagePullFromFullNameList(fullImageNameList []string) (errorPullImageList []string) {
|
||||
// PullFromFullNameList 根据镜像名列表拉取全部的镜像
|
||||
func PullFromFullNameList(fullImageNameList []string) (errorPullImageList []string) {
|
||||
|
||||
for _, dep := range fullImageNameList {
|
||||
|
||||
@@ -301,7 +312,7 @@ func ImagePullFromFullNameList(fullImageNameList []string) (errorPullImageList [
|
||||
|
||||
func PullFromListAndCompressSplit(fullImageNameList []string, gzipFolder string) (errorPullImageList, errorGzipImageList []string) {
|
||||
|
||||
errorPullImageList = ImagePullFromFullNameList(fullImageNameList)
|
||||
errorPullImageList = PullFromFullNameList(fullImageNameList)
|
||||
|
||||
// generate a project folder
|
||||
err := os.MkdirAll(gzipFolder, os.ModeDir)
|
||||
@@ -311,16 +322,22 @@ func PullFromListAndCompressSplit(fullImageNameList []string, gzipFolder string)
|
||||
}
|
||||
}
|
||||
|
||||
var tarGzipFileNameList []string
|
||||
|
||||
for _, image := range fullImageNameList {
|
||||
|
||||
if !SaveToTarGZ(image, gzipFolder) {
|
||||
errorGzipImageList = append(errorGzipImageList, image)
|
||||
continue
|
||||
}
|
||||
tarGzipFileNameList = append(tarGzipFileNameList, convertImageGzipFileName(image))
|
||||
}
|
||||
|
||||
utils.BeautifulPrintListWithTitle(tarGzipFileNameList, "image gzip name list")
|
||||
return errorPullImageList, errorGzipImageList
|
||||
}
|
||||
|
||||
func ImageLoadFromFile(gzipFullPath string) bool {
|
||||
func LoadFromGzipFilePath(gzipFullPath string) bool {
|
||||
openFile, err := os.OpenFile(gzipFullPath, 0, fs.ModePerm)
|
||||
if err != nil {
|
||||
log.ErrorF("[ImageLoadFromFile] - failed to open file %s, error is %s", gzipFullPath, err.Error())
|
||||
@@ -344,7 +361,7 @@ func ImageLoadFromFile(gzipFullPath string) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func ImageLoadFromFolderPath(folderPath string) (errorLoadImageNameList []string) {
|
||||
func LoadFromFolderPath(folderPath string) (errorLoadImageNameList []string) {
|
||||
if !strings.HasSuffix(folderPath, "/") {
|
||||
folderPath += "/"
|
||||
}
|
||||
@@ -358,7 +375,7 @@ func ImageLoadFromFolderPath(folderPath string) (errorLoadImageNameList []string
|
||||
// load gzip file
|
||||
for _, dirEntry := range dirEntries {
|
||||
if strings.HasSuffix(dirEntry.Name(), ".tar.gz") {
|
||||
if !ImageLoadFromFile(folderPath + dirEntry.Name()) {
|
||||
if !LoadFromGzipFilePath(folderPath + dirEntry.Name()) {
|
||||
errorLoadImageNameList = append(errorLoadImageNameList, folderPath+dirEntry.Name())
|
||||
}
|
||||
}
|
||||
@@ -385,6 +402,7 @@ func SaveToTarGZ(targetImageName, folderPathPrefix string) bool {
|
||||
for _, repoTag := range imageGetByName.RepoTags {
|
||||
if !strings.Contains(repoTag, "8033") {
|
||||
realImageTag = repoTag
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
@@ -393,9 +411,9 @@ func SaveToTarGZ(targetImageName, folderPathPrefix string) bool {
|
||||
folderPathPrefix += "/"
|
||||
}
|
||||
_ = os.MkdirAll(folderPathPrefix, os.ModeDir)
|
||||
|
||||
gzipImageFile = folderPathPrefix + gzipImageFile
|
||||
log.InfoF("[ImageSaveToTarGZ] - start to save [%s] to [%s]", realImageTag, gzipImageFile)
|
||||
|
||||
_ = os.Remove(gzipImageFile)
|
||||
tarFile, err := os.Create(gzipImageFile)
|
||||
if err != nil {
|
||||
@@ -420,9 +438,19 @@ func SaveToTarGZ(targetImageName, folderPathPrefix string) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// convertImageGzipFileName 必须输出长度完全一致的内容
|
||||
// convertImageGzipFileName 必须输出长度为4的内容 =出现得次数为3
|
||||
func convertImageGzipFileName(imageRepoTag string) (gzipFileName string) {
|
||||
|
||||
// harbor.cdcyy.cn/cmii/cmii-uav-platform:5.4.0 ==> cmlc=cmii=cmii-uav-platform=5.4.0.tar.gz
|
||||
// rancher/fleet:v0.3.4
|
||||
|
||||
// ossr/srs:v5.0.1 ==> docker=cmii=srs=v5.0.1.tar.gz
|
||||
// nginx:latest
|
||||
// bitnami/minio:2022.5.4
|
||||
// simonrupf/chronyd:0.4.3
|
||||
|
||||
// 10.1.1.1:8033/cmii/ok:1.2 不支持 不允许存在
|
||||
|
||||
split := strings.Split(imageRepoTag, ":")
|
||||
//log.DebugF(" %s to %s", imageRepoTag, split)
|
||||
if len(split) == 1 {
|
||||
@@ -433,28 +461,23 @@ func convertImageGzipFileName(imageRepoTag string) (gzipFileName string) {
|
||||
first := strings.Split(split[0], "/")
|
||||
//log.DebugF(" split[0] %s to %s", split[0], first)
|
||||
if len(first) == 3 {
|
||||
|
||||
if strings.Contains(first[0], "cdcyy") {
|
||||
gzipFileName += "cmlc="
|
||||
// harbor.cdcyy.cn/cmii/cmii-uav-platform:5.4.0
|
||||
// docker.io/ossr/srs:v5.0.1
|
||||
if strings.HasPrefix(split[0], CmiiHarborPrefix) {
|
||||
gzipFileName += "cmlc=cmii="
|
||||
} else {
|
||||
gzipFileName += "docker="
|
||||
gzipFileName += "docker=cmii="
|
||||
}
|
||||
|
||||
gzipFileName += first[1]
|
||||
gzipFileName += "="
|
||||
gzipFileName += first[2]
|
||||
gzipFileName += "="
|
||||
|
||||
} else if len(first) == 4 {
|
||||
if strings.Contains(first[0], "cdcyy") {
|
||||
gzipFileName += "cmlc="
|
||||
} else {
|
||||
gzipFileName += "docker="
|
||||
// harbor.cdcyy.cn/cmii/ossr/srs:v5.0.1
|
||||
if !strings.HasPrefix(split[0], CmiiHarborPrefix) {
|
||||
return imageRepoTag
|
||||
}
|
||||
|
||||
gzipFileName += first[1]
|
||||
gzipFileName += "="
|
||||
gzipFileName += first[2]
|
||||
gzipFileName += "cmlc=cmii="
|
||||
gzipFileName += first[3]
|
||||
gzipFileName += "="
|
||||
} else if len(first) == 2 {
|
||||
// bitnami/redis
|
||||
@@ -465,7 +488,7 @@ func convertImageGzipFileName(imageRepoTag string) (gzipFileName string) {
|
||||
gzipFileName += first[1]
|
||||
gzipFileName += "="
|
||||
} else if len(first) == 1 {
|
||||
// nginx
|
||||
// nginx:latest
|
||||
return "docker=library=" + split[0] + "=" + split[1] + ".tar.gz"
|
||||
}
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ func TestImagePushToOctopusKindHarbor(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestImageLoadFromFile(t *testing.T) {
|
||||
loadFromFile := ImageLoadFromFile("/root/octopus_image/cqga/cqga/cmlc=cmii=cmii-uav-user=5.2.0.tar.gz")
|
||||
loadFromFile := LoadFromGzipFilePath("/root/octopus_image/cqga/cqga/cmlc=cmii=cmii-uav-user=5.2.0.tar.gz")
|
||||
|
||||
assert.Equal(t, loadFromFile, true, "image load error !")
|
||||
}
|
||||
@@ -117,20 +117,12 @@ func TestConvertImageGzipFileName(t *testing.T) {
|
||||
|
||||
test := []string{
|
||||
"bitnami/redis:6.2.6-debian-10-r0",
|
||||
"bitnami/mysql:8.1.0-debian-11-r42",
|
||||
"simonrupf/chronyd:0.4.3",
|
||||
"bitnami/bitnami-shell:11-debian-11-r136",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-rtsp-operator:v4.1.0",
|
||||
"harbor.cdcyy.com.cn/cmii/ossrs/srs:v4.0.136",
|
||||
"bitnami/rabbitmq:3.9.12-debian-10-r3",
|
||||
"ossrs/srs:v4.0.136",
|
||||
"emqx/emqx:4.2.12",
|
||||
"nacos/nacos-server:v2.1.2",
|
||||
"mongo:5.0",
|
||||
"bitnami/minio:2023.5.4",
|
||||
"kubernetesui/metrics-scraper:v1.0.4",
|
||||
"redis:6.0.20-alpine",
|
||||
"dyrnq/nfs-subdir-external-provisioner:v4.0.2",
|
||||
"busybox:latest",
|
||||
"busybox",
|
||||
}
|
||||
|
||||
@@ -6,29 +6,29 @@ cmii_image_list=(
|
||||
docker=ossrs=srs=v4.0.136.tar.gz
|
||||
)
|
||||
middle_image_list=(
|
||||
cmlc=cmii=nfs-subdir-external-provisioner=v4.0.2.tar.gz
|
||||
docker=busybox=latest.tar.gz
|
||||
cmlc=cmii=srs=v4.0-r3.tar.gz
|
||||
docker=emqx=emqx=4.2.12.tar.gz
|
||||
docker=bitnami=bitnami-shell=10-debian-10-r140.tar.gz
|
||||
docker=kubernetesui=dashboard=v2.0.1.tar.gz
|
||||
docker=bitnami=bitnami-shell=11-debian-11-r136.tar.gz
|
||||
docker=kubernetesui=metrics-scraper=v1.0.4.tar.gz
|
||||
docker=bitnami=minio=2022.5.4.tar.gz
|
||||
docker=mongo=5.0.tar.gz
|
||||
docker=library=busybox=latest.tar.gz
|
||||
docker=bitnami=minio=2023.5.4.tar.gz
|
||||
docker=nacos=nacos-server=v2.1.2-slim.tar.gz
|
||||
docker=library=mongo=5.0.tar.gz
|
||||
docker=bitnami=mysql=8.0.35-debian-11-r1.tar.gz
|
||||
docker=nginx=1.21.3.tar.gz
|
||||
docker=library=nginx=1.21.3.tar.gz
|
||||
docker=bitnami=mysql=8.1.0-debian-11-r42.tar.gz
|
||||
docker=ossrs=srs=v4.0.136.tar.gz
|
||||
docker=library=rabbitmq=3.9-management.tar.gz
|
||||
docker=bitnami=rabbitmq=3.11.26-debian-11-r2.tar.gz
|
||||
docker=ossrs=srs=v5.0.195.tar.gz
|
||||
docker=library=redis=6.0.20-alpine.tar.gz
|
||||
docker=bitnami=rabbitmq=3.9.12-debian-10-r3.tar.gz
|
||||
docker=rabbitmq=3.9-management.tar.gz
|
||||
docker=nacos=nacos-server=v2.1.2-slim.tar.gz
|
||||
docker=bitnami=redis=6.2.14-debian-11-r1.tar.gz
|
||||
docker=redis=6.0.20-alpine.tar.gz
|
||||
docker=ossrs=srs=v4.0.136.tar.gz
|
||||
docker=bitnami=redis=6.2.6-debian-10-r0.tar.gz
|
||||
docker=ossrs=srs=v4.0-r3.tar.gz
|
||||
docker=dyrnq=nfs-subdir-external-provisioner=v4.0.2.tar.gz
|
||||
docker=ossrs=srs=v5.0.195.tar.gz
|
||||
docker=emqx=emqx=4.2.12.tar.gz
|
||||
docker=simonrupf=chronyd=0.4.3.tar.gz
|
||||
)
|
||||
rke_image_list=(
|
||||
@@ -161,19 +161,20 @@ image_load_to_harbor() {
|
||||
echo
|
||||
done
|
||||
|
||||
# for image in "${middle_image_list[@]}"; do
|
||||
# echo "start to load => $image"
|
||||
# docker load <"$image"
|
||||
# echo ""
|
||||
# local app_name_prefix=$(echo $image | cut -d "=" -f2)
|
||||
# local app_name=$(echo $image | cut -d "=" -f3)
|
||||
# local ccc=$(echo $image | cut -d "=" -f4)
|
||||
# local app_tag="${ccc%.tar.gz}"
|
||||
# echo "from $app_name_prefix/$app_name:$app_tag ==> $target_harbor_host/rancher/$app_name:$app_tag"
|
||||
# echo "start to push => $target_harbor_host/rancher/$app_name:$app_tag"
|
||||
# docker login -u admin -p V2ryStr@ngPss $target_harbor_host
|
||||
# docker push "$target_harbor_host/rancher/$app_name:$app_tag"
|
||||
# done
|
||||
for image in "${middle_image_list[@]}"; do
|
||||
echo "start to load => $image"
|
||||
docker load <"$image"
|
||||
echo ""
|
||||
# docker=bitnami=redis=6.2.14-debian-11-r1.tar.gz
|
||||
local app_name_prefix=$(echo $image | cut -d "=" -f2)
|
||||
local app_name=$(echo $image | cut -d "=" -f3)
|
||||
local ccc=$(echo $image | cut -d "=" -f4)
|
||||
local app_tag="${ccc%.tar.gz}"
|
||||
echo "from $app_name_prefix/$app_name:$app_tag ==> $target_harbor_host/cmii/$app_name:$app_tag"
|
||||
echo "start to push => $target_harbor_host/cmii/$app_name:$app_tag"
|
||||
docker login -u admin -p V2ryStr@ngPss $target_harbor_host
|
||||
docker push "$target_harbor_host/cmii/$app_name:$app_tag"
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -109,3 +109,5 @@
|
||||
2024-03-08-14-15-41 zyga cmii-uav-platform-share 8033/cmii/cmii-uav-platform-share5.4.0
|
||||
2024-03-08-14-15-55 zyga cmii-uav-platform-multiterminal 8033/cmii/cmii-uav-platform-multiterminal5.4.0
|
||||
2024-03-08-15-16-14 uavcloud-demo cmii-uav-platform 5.4.0-25263 5.4.0
|
||||
2024-03-11-11-20-15 zyga cmii-uav-surveillance 5.4.0 5.4.0-leaflet
|
||||
2024-03-11-15-42-15 uavcloud-demo cmii-uav-platform 5.4.0 5.4.0-25263-0311
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<groupId>io.wdd</groupId>
|
||||
<artifactId>common</artifactId>
|
||||
|
||||
<name>common</name>
|
||||
<allCmiiImageName>common</allCmiiImageName>
|
||||
<description>common</description>
|
||||
|
||||
<properties>
|
||||
|
||||
2
pom.xml
2
pom.xml
@@ -16,7 +16,7 @@
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<version>1.0.0</version>
|
||||
<name>ProjectOctopus</name>
|
||||
<allCmiiImageName>ProjectOctopus</allCmiiImageName>
|
||||
<description>ProjectOctopus</description>
|
||||
|
||||
<modules>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<artifactId>server</artifactId>
|
||||
|
||||
<name>server</name>
|
||||
<allCmiiImageName>server</allCmiiImageName>
|
||||
<description>server</description>
|
||||
|
||||
<properties>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
spring:
|
||||
application:
|
||||
name: octopus-server
|
||||
allCmiiImageName: octopus-server
|
||||
profiles:
|
||||
active: local
|
||||
cloud:
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
<resultMap id="BaseResultMap" type="io.wdd.server.beans.po.ScriptSchedulerPO">
|
||||
<id property="schedulerUuid" column="scheduler_uuid" jdbcType="VARCHAR"/>
|
||||
<result property="name" column="name" jdbcType="VARCHAR"/>
|
||||
<result property="allCmiiImageName" column="allCmiiImageName" jdbcType="VARCHAR"/>
|
||||
<result property="cronExpress" column="cron_express" jdbcType="VARCHAR"/>
|
||||
<result property="description" column="description" jdbcType="VARCHAR"/>
|
||||
<result property="scriptContent" column="script_content" jdbcType="VARCHAR"/>
|
||||
@@ -21,7 +21,8 @@
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
scheduler_uuid,name,cron_express,
|
||||
scheduler_uuid
|
||||
,allCmiiImageName,cron_express,
|
||||
description,script_content,target_machine,
|
||||
last_execution_id,last_execution_result_key,last_execution_status,
|
||||
create_time,update_time,next_schedule_time,
|
||||
|
||||
@@ -48,15 +48,15 @@ public class TestBaseFuncScheduler {
|
||||
// Long projectServerId = 1722453318596550657L;// lappro
|
||||
// Long projectServerId = 1752602668144975873L;// cqlyj
|
||||
// Long projectServerId = 1764575895186030593L;// 上海雷视联动
|
||||
// Long projectServerId = 1765290465066692610L;// 吉林移动
|
||||
Long projectServerId = 1765654823726669826L;// 资阳公安
|
||||
Long projectServerId = 1765290465066692610L;// 吉林移动
|
||||
// Long projectServerId = 1765654823726669826L;// 资阳公安
|
||||
|
||||
projectDeployContext.setProjectId(projectServerId);
|
||||
|
||||
|
||||
// String masterNodeServerName = "Shanghai-amd64-09"; // cgga
|
||||
// String masterNodeServerName = "Chengdu-amd64-51"; // lap pro
|
||||
String masterNodeServerName = "Ziyang-amd64-61"; // 资阳公安
|
||||
String masterNodeServerName = "Chengdu-amd64-51"; // 吉林移动
|
||||
// String masterNodeServerName = "Ziyang-amd64-61"; // 资阳公安
|
||||
|
||||
ProjectServerVO projectServerVO = coreProjectServerService.projectServerOne(projectServerId);
|
||||
Map<Boolean, List<ServerInfoPO>> collect = projectServerVO.getBindingServerList().stream().collect(
|
||||
@@ -123,15 +123,15 @@ public class TestBaseFuncScheduler {
|
||||
// AppFunctionEnum.DEPLOY_K8S_DASHBOARD,
|
||||
// AppFunctionEnum.DEPLOY_NFS,
|
||||
// AppFunctionEnum.DEPLOY_TEST_NFS
|
||||
// AppFunctionEnum.DEPLOY_K8S_NAMESPACE,
|
||||
// AppFunctionEnum.DEPLOY_K8S_PVC,
|
||||
// AppFunctionEnum.DEPLOY_K8S_MYSQL,
|
||||
// AppFunctionEnum.DEPLOY_K8S_REDIS,
|
||||
// AppFunctionEnum.DEPLOY_K8S_MIDDLEWARES
|
||||
AppFunctionEnum.DEPLOY_K8S_NAMESPACE,
|
||||
AppFunctionEnum.DEPLOY_K8S_PVC,
|
||||
AppFunctionEnum.DEPLOY_K8S_MYSQL,
|
||||
AppFunctionEnum.DEPLOY_K8S_REDIS,
|
||||
AppFunctionEnum.DEPLOY_K8S_MIDDLEWARES
|
||||
// AppFunctionEnum.DEPLOY_INGRESS,
|
||||
// AppFunctionEnum.DEPLOY_FRONTEND
|
||||
// AppFunctionEnum.DEPLOY_BACKEND
|
||||
AppFunctionEnum.DEPLOY_K8S_SRS
|
||||
// AppFunctionEnum.DEPLOY_K8S_SRS
|
||||
|
||||
);
|
||||
projectDeployContext.setMasterAppProcedure(appFunctionEnumList);
|
||||
|
||||
@@ -111,7 +111,7 @@ under the License.
|
||||
<servers>
|
||||
<!-- server
|
||||
| Specifies the authentication information to use when connecting to a particular server, identified by
|
||||
| a unique name within the system (referred to by the 'id' attribute below).
|
||||
| a unique allCmiiImageName within the system (referred to by the 'id' attribute below).
|
||||
|
|
||||
| NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
|
||||
| used together.
|
||||
@@ -152,14 +152,14 @@ under the License.
|
||||
<mirror>
|
||||
<id>mirrorId</id>
|
||||
<mirrorOf>repositoryId</mirrorOf>
|
||||
<name>Human Readable Name for this Mirror.</name>
|
||||
<allCmiiImageName>Human Readable Name for this Mirror.</allCmiiImageName>
|
||||
<url>http://my.repository.com/repo/path</url>
|
||||
</mirror>
|
||||
-->
|
||||
<mirror>
|
||||
<id>aliyunmaven</id>
|
||||
<mirrorOf>*</mirrorOf>
|
||||
<name>阿里云公共仓库</name>
|
||||
<allCmiiImageName>阿里云公共仓库</allCmiiImageName>
|
||||
<url>https://maven.aliyun.com/repository/public</url>
|
||||
</mirror>
|
||||
|
||||
@@ -208,7 +208,7 @@ under the License.
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>jdk14</id>
|
||||
<name>Repository for JDK 1.4 builds</name>
|
||||
<allCmiiImageName>Repository for JDK 1.4 builds</allCmiiImageName>
|
||||
<url>http://www.myhost.com/maven/jdk14</url>
|
||||
<layout>default</layout>
|
||||
<snapshotPolicy>always</snapshotPolicy>
|
||||
@@ -241,7 +241,7 @@ under the License.
|
||||
|
||||
<activation>
|
||||
<property>
|
||||
<name>target-env</name>
|
||||
<allCmiiImageName>target-env</allCmiiImageName>
|
||||
<value>devFilght</value>
|
||||
</property>
|
||||
</activation>
|
||||
|
||||
@@ -11,7 +11,7 @@ func main() {
|
||||
fmt.Println("start socks5 server error must provide listen port !")
|
||||
return
|
||||
}
|
||||
if len(os.Args) > 3 {
|
||||
if len(os.Args) > 4 {
|
||||
fmt.Println("start socks5 server error !")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<groupId>io.wdd</groupId>
|
||||
<artifactId>source</artifactId>
|
||||
|
||||
<name>source</name>
|
||||
<allCmiiImageName>source</allCmiiImageName>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
|
||||
@@ -4,7 +4,7 @@ ARG TARGETARCH
|
||||
|
||||
LABEL org.opencontainers.image.authors="https://bitnami.com/contact" \
|
||||
org.opencontainers.image.description="Application packaged by Bitnami" \
|
||||
org.opencontainers.image.ref.name="6.2.8-debian-11-r0" \
|
||||
org.opencontainers.image.ref.allCmiiImageName="6.2.8-debian-11-r0" \
|
||||
org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/redis" \
|
||||
org.opencontainers.image.title="redis" \
|
||||
org.opencontainers.image.vendor="VMware, Inc." \
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
Bitnami containers ship with software bundles. You can find the licenses under:
|
||||
/opt/bitnami/nami/COPYING
|
||||
/opt/bitnami/[name-of-bundle]/licenses/[bundle-version].txt
|
||||
/opt/bitnami/[allCmiiImageName-of-bundle]/licenses/[bundle-version].txt
|
||||
|
||||
@@ -67,7 +67,7 @@ INSERT INTO `app_info` VALUES (1596765526292430849, 'appName_obevz', 'appInfo_ut
|
||||
DROP TABLE IF EXISTS `appdomain_info`;
|
||||
CREATE TABLE `appdomain_info` (
|
||||
`app_domain_id` bigint NOT NULL,
|
||||
`app_domain_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'app associated domain name',
|
||||
`app_domain_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'app associated domain allCmiiImageName',
|
||||
`app_domain_port` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'app domain port',
|
||||
`domain_id` bigint NULL DEFAULT NULL COMMENT 'app associated domain_info id',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL,
|
||||
@@ -89,13 +89,13 @@ DROP TABLE IF EXISTS `domain_info`;
|
||||
CREATE TABLE `domain_info` (
|
||||
`domain_id` bigint NOT NULL,
|
||||
`domain_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'complete domain url',
|
||||
`domain_provider` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'domain provider name',
|
||||
`domain_provider` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'domain provider allCmiiImageName',
|
||||
`register_time` datetime(0) NULL DEFAULT NULL,
|
||||
`expire_time` datetime(0) NULL DEFAULT NULL,
|
||||
`create_time` datetime(0) NULL DEFAULT NULL,
|
||||
`update_time` datetime(0) NULL DEFAULT NULL,
|
||||
`dns_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'the dns record to the server ip',
|
||||
`dns_provider` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'domain dns provider name',
|
||||
`dns_provider` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'domain dns provider allCmiiImageName',
|
||||
`dns_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'dns type for A AAAA CNAME\r\n',
|
||||
`dns_manage_api` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
||||
`is_delete` tinyint NULL DEFAULT 0,
|
||||
@@ -195,8 +195,8 @@ CREATE TABLE `server_domain_relation` (
|
||||
DROP TABLE IF EXISTS `server_info`;
|
||||
CREATE TABLE `server_info` (
|
||||
`server_id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'server primary key',
|
||||
`topic_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'octopus message unique key name',
|
||||
`server_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'server host name',
|
||||
`topic_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'octopus message unique key allCmiiImageName',
|
||||
`server_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'server host allCmiiImageName',
|
||||
`server_ip_pb_v4` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'server public ipv4\r\n',
|
||||
`server_ip_in_v4` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'server inner ipv4\r\n',
|
||||
`server_ip_pb_v6` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'server public ipv6\r\n',
|
||||
|
||||
Reference in New Issue
Block a user