package main import ( "flag" "os" "wdd.io/agent-common/utils" ) var LocalKubeConfigFile = "/root/.kube/config" // build for offline usage // C:\Users\wddsh\go\bin\gox.exe -osarch="linux/amd64" -output "build/agent-operator_{{.OS}}_{{.Arch}}" // C:\Users\wddsh\go\bin\gox.exe -osarch="linux/amd64 linux/arm64" -output "build/agent-operator_{{.OS}}_{{.Arch}}" // func BuildDefaultK8sOperator() { // build from local LocalKubeConfigFile if !utils.FileExists(LocalKubeConfigFile) { log.ErrorF("%s not exits! error!", LocalKubeConfigFile) return } readFile, err := os.ReadFile(LocalKubeConfigFile) if err != nil { log.ErrorF("error reading %s, error %s", LocalKubeConfigFile, err.Error()) return } op := CmiiK8sOperator{} op.BuildCurrentClientFromConfig(readFile) DefaultCmiiOperator = op } func RealProjectRunner() { // ops // update //result := UpdateCmiiImageTagFromNameTagList(realNamespace, bgtg.AllCmiiImageTagList) //result := UpdateCmiiImageTagFromNameTagMap(realNamespace, xmyd.Real540ImageTagMap) //utils.BeautifulPrint(result) //for _, imageFullName := range xmyd.AllCmiiImageTagList { // appName := image.ImageFullNameToAppName(imageFullName) // if appName == "" { // log.InfoF("can't update %s", imageFullName) // continue // } // exists := op.DeploymentExist(realNamespace, appName) // if exists == nil { // log.InfoF("app of %s not eixts", appName) // continue // } // // _ = op.DeploymentUpdateTag(realNamespace, appName, image.ImageFullNameToImageTag(imageFullName)) // //} // backup system app tag //backendMap, frontendMap, srsMap := BackupAllCmiiDeploymentToMap(realNamespace) //utils.BeautifulPrint(backendMap) //utils.BeautifulPrint(frontendMap) //utils.BeautifulPrint(srsMap) // scale deployment //ScaleCmiiFrontendDeploymentToDesiredReplicas(realNamespace, 1) //ScaleCmiiBackendDeploymentToDesiredReplicas(realNamespace, 1) // update from map } func CmiiRunner() { } var DLTUHelp = ` DLTUHelp dltu [ossUrlPrefix] [ossFileName] [localGzipFolderOrGzipFile] [harborHostFullName] [namespace] ` func main() { // C:\Users\wddsh\go\bin\gox.exe -osarch="linux/amd64" -output "build/operator_{{.OS}}_{{.Arch}}" //RealProjectRunner() var mode string flag.StringVar(&mode, "mode", "mode", "agent run mode") flag.Parse() BuildDefaultK8sOperator() BackupAllDeploymentFromEnv(mode) // 解析命令行参数 //var mode string //flag.StringVar(&mode, "mode", "mode", "agent run mode") //flag.Parse() // //if mode == "image" { // // BuildDefaultK8sOperator() // // 堡垒机模式 的 镜像美容 // // 初始化堡垒机模式 // for { // // reader := bufio.NewReader(os.Stdin) // for { // fmt.Printf(DLTUHelp) // fmt.Print("enter ==> ") // // text, _ := reader.ReadString('\n') // split := strings.Split(text, " ") // var result []string // for _, s := range split { // text = strings.TrimSpace(s) // if text == "" { // continue // } // // result = append(result, text) // } // // if len(result) != 6 { // fmt.Println("input error!") // fmt.Printf(DLTUHelp) // return // } // // ossUrlPrefix := result[1] // ossFileName := result[2] // localGzipFolderOrGzipFile := result[3] // harborHostFullName := result[4] // namespace := result[5] // // fmt.Println("ossUrlPrefix: ", ossUrlPrefix) // fmt.Println("ossFileName: ", ossFileName) // fmt.Println("localGzipFolderOrGzipFile: ", localGzipFolderOrGzipFile) // fmt.Println("harborHostFullName: ", harborHostFullName) // fmt.Println("namespace: ", namespace) // fmt.Println() // // downloadFromOss := true // if ossFileName == "0" { // downloadFromOss = false // } // // // DLTU // targetImageFullNameList := DownloadLoadTagUpload(downloadFromOss, ossUrlPrefix, ossFileName, localGzipFolderOrGzipFile, harborHostFullName) // // // 是否需要更新 // if namespace != "" { // for _, targetImageFullName := range targetImageFullNameList { // if !DefaultCmiiOperator.DeploymentUpdateTagByImageFullName(namespace, targetImageFullName) { // fmt.Printf("[Update] update [%s] [%s] failed", namespace, targetImageFullName) // } // } // } // // fmt.Println() // } // } //} else if mode == "operator" { // //} }