package agent_deploy import ( "os" image2 "wdd.io/agent-common/image" "wdd.io/agent-common/logger" "wdd.io/agent-common/utils" "wdd.io/agent-deploy/a_dashboard" "wdd.io/agent-deploy/b_nfs" "wdd.io/agent-deploy/c_middle" "wdd.io/agent-deploy/d_app" "wdd.io/agent-deploy/e_cmii" "wdd.io/agent-deploy/z_dep" ) var log = logger.Log func OctopusDeploy() { // common environment common := &z_dep.CommonEnvironmentConfig{ WebIP: "10.250.0.110", WebPort: "8888", HarborIP: "10.250.0.110", HarborPort: "8033", Namespace: "bjtg", TagVersion: "5.5.0", TenantEnv: "", MinioPublicIP: "10.250.0.110", MinioInnerIP: "10.250.0.110", NFSServerIP: "10.250.0.110", } // kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}') a_dashboard.K8sDashboardDeploy(common) b_nfs.NFSDeploy(common) b_nfs.NFSTestDeploy(common) // pvc c_middle.PVCDeploy(common) // middlewares c_middle.MidMySQlDeploy(common) c_middle.MidRedisDeploy(common) c_middle.MidEmqxDeploy(common) c_middle.MidMongoDeploy(common) c_middle.MidRabbitMQDeploy(common) c_middle.MidRabbitMQDeploy(common) c_middle.MidNacosDeploy(common) configMapDeploy(common) d_app.IngressDeploy(common) gzipFilePrefix := "/root/octopus_image/xjyd/" frontendImageVersionMap, backendImageVersionMap, _ := image2.GzipFolderPathToCmiiImageTagMaps(gzipFilePrefix) backendDeploy(common, backendImageVersionMap) frontendDeploy(common, frontendImageVersionMap) d_app.SRSDeploy(common) } func CmiiAppDeploy() { // common environment common := &z_dep.CommonEnvironmentConfig{ WebIP: "36.133.201.78", WebPort: "8888", HarborIP: "192.168.0.14", HarborPort: "", Namespace: "xjyd", TagVersion: "5.5.0", TenantEnv: "", MinioPublicIP: "36.133.201.146", MinioInnerIP: "192.168.0.21", NFSServerIP: "192.168.0.14", } //frontendImageVersionMap, backendImageVersionMap, _ := image.FrontendBackendSrsImageMapFromCmiiImageMap(zjjt.CmiiImageMap) gzipFilePrefix := "/root/octopus_image/xjyd/" frontendImageVersionMap, backendImageVersionMap, _ := image2.GzipFolderPathToCmiiImageTagMaps(gzipFilePrefix) backendDeploy(common, backendImageVersionMap) frontendDeploy(common, frontendImageVersionMap) //utils.BeautifulPrint(frontendImageVersionMap) //configMapDeploy(common) //c_app.IngressDeploy(common) } var IgnoreCmiiBackendAppName = map[string]string{ "cmii-uav-grid-datasource": "0", "cmii-uav-grid-manage": "", "cmii-uav-grid-engine": "", "cmii-uav-kpi-monitor": "", "cmii-uav-gis-server": "", "cmii-app-release": "", "cmii-uav-autowaypoint": "", "cmii-uav-integration": "", "cmii-uav-developer": "", "cmii-open-gateway": "", "cmii-uav-brain": "", "cmii-uav-data-post-process": "", "cmii-uav-multilink": "", "cmii-uav-alarm": "", "cmii-uav-tower": "", } func backendDeploy(common *z_dep.CommonEnvironmentConfig, backendImageVersionMap map[string]string) { os.Remove(z_dep.BackendApplyFilePath) for appName, tag := range backendImageVersionMap { d_app.DefaultCmiiBackendConfig.AppName = appName d_app.DefaultCmiiBackendConfig.ImageTag = tag _, ok := IgnoreCmiiBackendAppName[appName] if ok { d_app.DefaultCmiiBackendConfig.Replicas = "0" } else { d_app.DefaultCmiiBackendConfig.Replicas = "1" } d_app.DefaultCmiiBackendConfig.BackendDeploy(common) } } func frontendDeploy(common *z_dep.CommonEnvironmentConfig, frontendImageVersionMap map[string]string) { os.Remove(z_dep.FrontendApplyFilePath) d_app.FrontendDefaultNginxDeploy(common) for appName, tag := range frontendImageVersionMap { d_app.DefaultCmiiFrontendConfig.AppName = appName d_app.DefaultCmiiFrontendConfig.ImageTag = tag d_app.DefaultCmiiFrontendConfig.Replicas = "1" value, ok := d_app.FrontendShortNameMaps[appName] if !ok { log.ErrorF("FrontendShortNameMaps error ! not contains %s", appName) continue } d_app.DefaultCmiiFrontendConfig.ShortName = value d_app.DefaultCmiiFrontendConfig.FrontendDeploy(common) } } func configMapDeploy(common *z_dep.CommonEnvironmentConfig) { os.Remove(z_dep.ConfigMapApplyFilePath) for frontendName, shortName := range d_app.FrontendShortNameMaps { d_app.DefaultCmiiFrontendConfig.AppName = frontendName d_app.DefaultCmiiFrontendConfig.ShortName = shortName value, ok := d_app.FrontendClientIdMaps[frontendName] if !ok { log.ErrorF("FrontendClientIdMaps error ! not contains %s", frontendName) continue } d_app.DefaultCmiiFrontendConfig.ClientId = value d_app.DefaultCmiiFrontendConfig.ConfigMapDeploy(common) } } // CmiiEnvironmentDeploy 部署完整的CMII环境的所有组件 func CmiiEnvironmentDeploy(isCompleteDeploy bool, commonEnv *z_dep.CommonEnvironmentConfig, backendImageVersionMap, frontendImageVersionMap map[string]string) { // clear old apply file _ = os.Mkdir(commonEnv.ApplyFilePrefix, os.ModePerm) oldApplyFileFolder := commonEnv.ApplyFilePrefix + "old" utils.RemoveFolderComplete(oldApplyFileFolder) _ = os.Mkdir(oldApplyFileFolder, os.ModePerm) // move all apply file to old folder _ = utils.FolderMoveFiles(commonEnv.ApplyFilePrefix, oldApplyFileFolder) // clear all middleware data // ignore redis rabbitmq mongo nacos emqx // sync mysql-data // generate commonEnv.GenerateApplyFilePath() // generate new apply file for specific environment if isCompleteDeploy { // pvc c_middle.PVCDeploy(commonEnv) // middlewares e_cmii.CmiiDevConfig.MySQlConfig.MidMySQlDeploy(commonEnv) e_cmii.CmiiDevConfig.RedisConfig.MidRedisDeploy(commonEnv) e_cmii.CmiiDevConfig.EmqxConfig.MidEmqxDeploy(commonEnv) e_cmii.CmiiDevConfig.MongoConfig.MidMongoDeploy(commonEnv) e_cmii.CmiiDevConfig.RabbitMQConfig.MidRabbitMQDeploy(commonEnv) e_cmii.CmiiDevConfig.NacosConfig.MidNacosDeploy(commonEnv) configMapDeploy(commonEnv) d_app.DefaultIngressConfig.IngressDeploy(commonEnv) } // frontend // frontend frontendDeploy(commonEnv, frontendImageVersionMap) // backend backendDeploy(commonEnv, backendImageVersionMap) }