[Agent][Deploy] - cmii update accomplish

This commit is contained in:
zeaslity
2024-06-14 18:01:50 +08:00
parent f3db4a9ff6
commit 32a9c8f8ee
49 changed files with 9762 additions and 8982 deletions

View File

@@ -1,19 +1,36 @@
package utils
import (
"encoding/base64"
"fmt"
"math/rand"
"time"
)
func GenerateRandomString(length int) string {
func GenerateRandomString(length int, includeSpecialChar bool) string {
rand.Seed(time.Now().UnixNano())
chars := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
b := make([]byte, length)
for i := range b {
b[i] = chars[rand.Intn(len(chars))]
letters := "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
specialChars := ".!@_#%^&*()-+"
b := make([]rune, length)
letterProbability := len(letters) * 100 / (len(letters) + len(specialChars))
if includeSpecialChar {
for i := range b {
if rand.Intn(100) < letterProbability { // 概率选择字母
b[i] = rune(letters[rand.Intn(len(letters))])
} else { // 概率选择特殊字符
b[i] = rune(specialChars[rand.Intn(len(specialChars))])
}
}
} else {
for i := range b {
b[i] = rune(letters[rand.Intn(len(letters))])
}
}
return string(b)
}
@@ -49,3 +66,16 @@ func ByteSizeToString(size uint64) string {
return fmt.Sprintf("%.2f %s", value, unit)
}
func Base64Encode(content string) string {
return base64.StdEncoding.EncodeToString([]byte(content))
}
func Base64Decode(content string) string {
decodeString, err := base64.StdEncoding.DecodeString(content)
if err != nil {
log.ErrorF("Base64Decode error: %s", err.Error())
return ""
}
return string(decodeString)
}

View File

@@ -0,0 +1,37 @@
package utils
import (
"fmt"
"testing"
)
func TestBase64Decode(t *testing.T) {
decode := Base64Decode("blljUk45MXIuX2hq")
fmt.Println(decode)
}
func TestBase64Encode(t *testing.T) {
encode := Base64Encode("RB6Vfzs7XdC2")
fmt.Println(encode)
}
func TestGetRandomString(t *testing.T) {
for i := 0; i < 10; i++ {
randomString := GenerateRandomString(10, true)
fmt.Printf("id: %d randomString: %s\n", i, randomString)
}
}
func TestGetRandomMySQLPassword(t *testing.T) {
rootPassword := GenerateRandomString(12, false)
rootPasswordBase64 := Base64Encode(rootPassword)
k8sAdminPass := GenerateRandomString(12, true)
fmt.Println(rootPassword)
fmt.Println(rootPasswordBase64)
fmt.Println()
fmt.Println(k8sAdminPass)
}

View File

@@ -6,9 +6,10 @@ import (
"wdd.io/agent-common/logger"
"wdd.io/agent-common/utils"
"wdd.io/agent-deploy/a_dashboard"
"wdd.io/agent-deploy/a_nfs"
"wdd.io/agent-deploy/b_middle"
"wdd.io/agent-deploy/c_app"
"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"
)
@@ -33,30 +34,30 @@ func OctopusDeploy() {
// kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
a_dashboard.K8sDashboardDeploy(common)
a_nfs.NFSDeploy(common)
a_nfs.NFSTestDeploy(common)
b_nfs.NFSDeploy(common)
b_nfs.NFSTestDeploy(common)
// pvc
b_middle.PVCDeploy(common)
c_middle.PVCDeploy(common)
// middlewares
b_middle.MidMySQlDeploy(common)
b_middle.MidRedisDeploy(common)
b_middle.MidEmqxDeploy(common)
b_middle.MidMongoDeploy(common)
b_middle.MidRabbitMQDeploy(common)
b_middle.MidRabbitMQDeploy(common)
b_middle.MidNacosDeploy(common)
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)
c_app.IngressDeploy(common)
d_app.IngressDeploy(common)
gzipFilePrefix := "/root/octopus_image/xjyd/"
frontendImageVersionMap, backendImageVersionMap, _ := image2.GzipFolderPathToCmiiImageTagMaps(gzipFilePrefix)
backendDeploy(common, backendImageVersionMap)
frontendDeploy(common, frontendImageVersionMap)
c_app.SRSDeploy(common)
d_app.SRSDeploy(common)
}
func CmiiAppDeploy() {
@@ -111,16 +112,16 @@ func backendDeploy(common *z_dep.CommonEnvironmentConfig, backendImageVersionMap
os.Remove(z_dep.BackendApplyFilePath)
for appName, tag := range backendImageVersionMap {
c_app.DefaultCmiiBackendConfig.AppName = appName
c_app.DefaultCmiiBackendConfig.ImageTag = tag
d_app.DefaultCmiiBackendConfig.AppName = appName
d_app.DefaultCmiiBackendConfig.ImageTag = tag
_, ok := IgnoreCmiiBackendAppName[appName]
if ok {
c_app.DefaultCmiiBackendConfig.Replicas = "0"
d_app.DefaultCmiiBackendConfig.Replicas = "0"
} else {
c_app.DefaultCmiiBackendConfig.Replicas = "1"
d_app.DefaultCmiiBackendConfig.Replicas = "1"
}
c_app.DefaultCmiiBackendConfig.BackendDeploy(common)
d_app.DefaultCmiiBackendConfig.BackendDeploy(common)
}
}
@@ -128,41 +129,41 @@ func frontendDeploy(common *z_dep.CommonEnvironmentConfig, frontendImageVersionM
os.Remove(z_dep.FrontendApplyFilePath)
c_app.FrontendDefaultNginxDeploy(common)
d_app.FrontendDefaultNginxDeploy(common)
for appName, tag := range frontendImageVersionMap {
c_app.DefaultCmiiFrontendConfig.AppName = appName
c_app.DefaultCmiiFrontendConfig.ImageTag = tag
c_app.DefaultCmiiFrontendConfig.Replicas = "1"
d_app.DefaultCmiiFrontendConfig.AppName = appName
d_app.DefaultCmiiFrontendConfig.ImageTag = tag
d_app.DefaultCmiiFrontendConfig.Replicas = "1"
value, ok := c_app.FrontendShortNameMaps[appName]
value, ok := d_app.FrontendShortNameMaps[appName]
if !ok {
log.ErrorF("FrontendShortNameMaps error ! not contains %s", appName)
continue
}
c_app.DefaultCmiiFrontendConfig.ShortName = value
d_app.DefaultCmiiFrontendConfig.ShortName = value
c_app.DefaultCmiiFrontendConfig.FrontendDeploy(common)
d_app.DefaultCmiiFrontendConfig.FrontendDeploy(common)
}
}
func configMapDeploy(common *z_dep.CommonEnvironmentConfig) {
os.Remove(z_dep.ConfigMapApplyFilePath)
for frontendName, shortName := range c_app.FrontendShortNameMaps {
c_app.DefaultCmiiFrontendConfig.AppName = frontendName
c_app.DefaultCmiiFrontendConfig.ShortName = shortName
for frontendName, shortName := range d_app.FrontendShortNameMaps {
d_app.DefaultCmiiFrontendConfig.AppName = frontendName
d_app.DefaultCmiiFrontendConfig.ShortName = shortName
value, ok := c_app.FrontendClientIdMaps[frontendName]
value, ok := d_app.FrontendClientIdMaps[frontendName]
if !ok {
log.ErrorF("FrontendClientIdMaps error ! not contains %s", frontendName)
continue
}
c_app.DefaultCmiiFrontendConfig.ClientId = value
d_app.DefaultCmiiFrontendConfig.ClientId = value
c_app.DefaultCmiiFrontendConfig.ConfigMapDeploy(common)
d_app.DefaultCmiiFrontendConfig.ConfigMapDeploy(common)
}
}
@@ -190,18 +191,19 @@ func CmiiEnvironmentDeploy(isCompleteDeploy bool, commonEnv *z_dep.CommonEnviron
if isCompleteDeploy {
// pvc
b_middle.PVCDeploy(commonEnv)
c_middle.PVCDeploy(commonEnv)
// middlewares
b_middle.MidMySQlDeploy(commonEnv)
b_middle.MidRedisDeploy(commonEnv)
b_middle.MidEmqxDeploy(commonEnv)
b_middle.MidMongoDeploy(commonEnv)
b_middle.MidRabbitMQDeploy(commonEnv)
b_middle.MidNacosDeploy(commonEnv)
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)
c_app.IngressDeploy(commonEnv)
d_app.DefaultIngressConfig.IngressDeploy(commonEnv)
}

View File

@@ -1,36 +0,0 @@
package b_middle
import (
"wdd.io/agent-common/logger"
"wdd.io/agent-deploy/z_dep"
)
var (
log = logger.Log
)
func MidEmqxDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiEmqxTemplate, z_dep.EmqxApplyFilePath)
}
func MidMongoDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiMongoTemplate, z_dep.MongoApplyFilePath)
}
func MidRabbitMQDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiRabbitMQTemplate, z_dep.RabbitMQApplyFilePath)
}
func MidRedisDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiRedisTemplate, z_dep.RedisApplyFilePath)
}
func MidMySQlDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiMySQLTemplate, z_dep.MySQLApplyFilePath)
}
func MidNacosDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiNacosTemplate, z_dep.NacosApplyFilePath)
}
func PVCDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiPVCTemplate, z_dep.PVCApplyFilePath)
}

View File

@@ -1,4 +1,4 @@
package a_nfs
package b_nfs
import (
"wdd.io/agent-common/logger"

View File

@@ -1,4 +1,4 @@
package a_nfs
package b_nfs
const CmiiNfsTemplate = `
apiVersion: v1

View File

@@ -1,4 +1,4 @@
package a_nfs
package b_nfs
const CmiiNFSTestTemplate = `
kind: PersistentVolumeClaim

View File

@@ -1,4 +1,4 @@
package b_middle
package c_middle
const CmiiEmqxTemplate = `
apiVersion: v1
@@ -20,14 +20,14 @@ metadata:
app.kubernetes.io/managed-by: octopus-control
app.kubernetes.io/version: {{ .TagVersion }}
data:
EMQX_CLUSTER__K8S__APISERVER: https://kubernetes.default.svc.cluster.local:443
EMQX_NAME: helm-emqxs
EMQX_CLUSTER__DISCOVERY: k8s
EMQX_CLUSTER__K8S__APP_NAME: helm-emqxs
EMQX_CLUSTER__K8S__SERVICE_NAME: helm-emqxs-headless
EMQX_CLUSTER__K8S__APISERVER: "https://kubernetes.default.svc.cluster.local:443"
EMQX_NAME: "helm-emqxs"
EMQX_CLUSTER__DISCOVERY: "k8s"
EMQX_CLUSTER__K8S__APP_NAME: "helm-emqxs"
EMQX_CLUSTER__K8S__SERVICE_NAME: "helm-emqxs-headless"
EMQX_CLUSTER__K8S__ADDRESS_TYPE: "dns"
EMQX_CLUSTER__K8S__namespace: {{ .Namespace }}
EMQX_CLUSTER__K8S__SUFFIX: svc.cluster.local
EMQX_CLUSTER__K8S__namespace: "{{ .Namespace }}"
EMQX_CLUSTER__K8S__SUFFIX: "svc.cluster.local"
EMQX_ALLOW_ANONYMOUS: "false"
EMQX_ACL_NOMATCH: "deny"
---
@@ -46,7 +46,7 @@ metadata:
data:
emqx_auth_username.conf: |-
auth.user.1.username = cmlc
auth.user.1.password = odD8#Ve7.B
auth.user.1.password = {{ .EmqxPassword }}
auth.user.password_hash = sha256
acl.conf: |-
@@ -209,15 +209,15 @@ spec:
- port: 1883
name: mqtt
targetPort: 1883
nodePort: 31883
nodePort: {{ .EmqxNodePort }}
- port: 18083
name: dashboard
targetPort: 18083
nodePort: 38085
nodePort: {{ .EmqxDashboardNodePort }}
- port: 8083
name: mqtt-websocket
targetPort: 8083
nodePort: 38083
nodePort: {{ .EmqxWebSocketNodePort }}
---
apiVersion: v1
kind: Service

View File

@@ -1,4 +1,4 @@
package b_middle
package c_middle
const CmiiMongoTemplate = `
apiVersion: v1
@@ -68,7 +68,7 @@ spec:
- name: MONGO_INITDB_ROOT_USERNAME
value: cmlc
- name: MONGO_INITDB_ROOT_PASSWORD
value: REdPza8#oVlt
value: {{ .MongoPassword }}
volumeMounts:
- name: mongo-data
mountPath: /data/db

View File

@@ -1,4 +1,4 @@
package b_middle
package c_middle
const CmiiMySQLTemplate = `
apiVersion: v1
@@ -11,7 +11,7 @@ metadata:
octopus.control: mysql-db-wdd
app.kubernetes.io/release: {{ .Namespace }}
app.kubernetes.io/managed-by: octopus
annotations:
annotations: {}
secrets:
- name: helm-mysql
---
@@ -27,7 +27,7 @@ metadata:
app.kubernetes.io/managed-by: octopus
type: Opaque
data:
mysql-root-password: "UXpmWFFoZDNiUQ=="
mysql-root-password: "{{ .MySQLRootPasswordBase64 }}"
mysql-password: "S0F0cm5PckFKNw=="
---
apiVersion: v1
@@ -167,7 +167,7 @@ data:
grant select on *.* to zyly@'%';
create user zyly_qc@'%' identified by 'Uh)E_owCyb16';
grant all on *.* to zyly_qc@'%';
create user k8s_admin@'%' identified by 'fP#UaH6qQ3)8';
create user k8s_admin@'%' identified by '{{ .MySQLK8sAdminPassword }}';
grant all on *.* to k8s_admin@'%';
create user audit_dba@'%' identified by 'PjCzqiBmJaTpgkoYXynH';
grant all on *.* to audit_dba@'%';
@@ -217,7 +217,7 @@ metadata:
cmii.type: middleware
cmii.app: mysql
app.kubernetes.io/component: primary
annotations:
annotations: {}
spec:
type: ClusterIP
clusterIP: None
@@ -246,7 +246,7 @@ metadata:
cmii.type: middleware
cmii.app: mysql
app.kubernetes.io/component: primary
annotations:
annotations: {}
spec:
type: NodePort
ports:
@@ -254,7 +254,7 @@ spec:
port: 3306
protocol: TCP
targetPort: mysql
nodePort: 33306
nodePort: {{ .MySQLNodePort }}
selector:
app.kubernetes.io/name: mysql-db
app.kubernetes.io/release: {{ .Namespace }}
@@ -415,5 +415,5 @@ spec:
name: helm-mysql-init-scripts
- name: mysql-data
hostPath:
path: /var/lib/docker/mysql-pv
path: /var/lib/docker/mysql-pv/{{ .Namespace }}/
`

View File

@@ -1,4 +1,4 @@
package b_middle
package c_middle
const CmiiNacosTemplate = `
apiVersion: v1
@@ -17,7 +17,7 @@ data:
mysql.db.host: "helm-mysql"
mysql.port: "3306"
mysql.user: "k8s_admin"
mysql.password: "fP#UaH6qQ3)8"
mysql.password: "{{ .MySQLK8sAdminPassword }}"
---
apiVersion: v1
kind: Service
@@ -39,15 +39,13 @@ spec:
- port: 8848
name: server
targetPort: 8848
nodePort: 38989
nodePort: {{ .NacosNodePort }}
- port: 9848
name: server12
targetPort: 9848
nodePort: 38912
- port: 9849
name: server23
targetPort: 9849
nodePort: 38923
---
apiVersion: apps/v1
kind: StatefulSet

View File

@@ -1,4 +1,4 @@
package b_middle
package c_middle
const CmiiRabbitMQTemplate = `
apiVersion: v1
@@ -27,7 +27,7 @@ metadata:
app.kubernetes.io/managed-by: rabbitmq
type: Opaque
data:
rabbitmq-password: "blljUk45MXIuX2hq"
rabbitmq-password: "{{ .RabbitPasswordBase64 }}"
rabbitmq-erlang-cookie: "emFBRmt1ZU1xMkJieXZvdHRYbWpoWk52UThuVXFzcTU="
---
apiVersion: v1
@@ -45,7 +45,7 @@ data:
## Username and password
##
default_user = admin
default_pass = nYcRN91r._hj
default_pass = {{ .RabbitPassword }}
## Clustering
##
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s
@@ -143,11 +143,11 @@ spec:
- name: amqp
port: 5672
targetPort: amqp
nodePort: 35672
nodePort: {{ .RabbitNodePort }}
- name: dashboard
port: 15672
targetPort: dashboard
nodePort: 35675
nodePort: {{ .RabbitDashboardNodePort }}
selector:
app.kubernetes.io/name: helm-rabbitmq
app.kubernetes.io/release: {{ .Namespace }}

View File

@@ -1,4 +1,4 @@
package b_middle
package c_middle
const CmiiRedisTemplate = `
apiVersion: v1

View File

@@ -0,0 +1,213 @@
package c_middle
import (
"encoding/base64"
"github.com/go-playground/validator/v10"
"wdd.io/agent-common/logger"
"wdd.io/agent-common/utils"
"wdd.io/agent-deploy/z_dep"
)
var (
log = logger.Log
DefaultMysqlConfig = &MySQlConfig{
MySQLNodePort: "33306",
MySQLRootPasswordBase64: base64.StdEncoding.EncodeToString([]byte("QzfXQhd3bQ")),
MySQLRootPassword: "QzfXQhd3bQ",
MySQLK8sAdminPassword: "fP#UaH6qQ3)8",
}
DefaultRabbitConfig = &RabbitMQConfig{
RabbitNodePort: "35672",
RabbitDashboardNodePort: "35675",
RabbitPassword: "nYcRN91r._hj",
RabbitPasswordBase64: "blljUk45MXIuX2hq",
}
DefaultEmqxConfig = &EmqxConfig{
EmqxNodePort: "31883",
EmqxDashboardNodePort: "38085",
EmqxWebSocketNodePort: "38083",
EmqxPassword: "odD8#Ve7.B",
}
DefaultMongoConfig = &MongoConfig{
MongoPassword: "REdPza8#oVlt",
}
)
type MySQlConfig struct {
z_dep.CommonEnvironmentConfig
MySQLNodePort string
MySQLRootPassword string `validate:"required" comment:"string"`
MySQLRootPasswordBase64 string `validate:"required" comment:"base64"`
MySQLK8sAdminPassword string `validate:"required" comment:"string"`
}
type RedisConfig struct {
z_dep.CommonEnvironmentConfig
}
type RabbitMQConfig struct {
z_dep.CommonEnvironmentConfig
RabbitNodePort string
RabbitDashboardNodePort string
RabbitPassword string
RabbitPasswordBase64 string
}
type NacosConfig struct {
z_dep.CommonEnvironmentConfig
MySQLK8sAdminPassword string
NacosNodePort string
}
type MongoConfig struct {
z_dep.CommonEnvironmentConfig
MongoPassword string
}
type EmqxConfig struct {
z_dep.CommonEnvironmentConfig
EmqxNodePort string
EmqxDashboardNodePort string
EmqxWebSocketNodePort string
EmqxPassword string
}
func (emqx *EmqxConfig) MidEmqxDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
// copy
utils.CopySameFields(commonEnv, emqx)
validate := validator.New()
err := validate.Struct(emqx)
if err != nil {
log.ErrorF("backend config validate error: %v\n", err)
return false
}
if !z_dep.ParseEnvToApplyFile(emqx, CmiiEmqxTemplate, z_dep.EmqxApplyFilePath) {
return false
}
return true
}
func MidEmqxDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiEmqxTemplate, z_dep.EmqxApplyFilePath)
}
func (mongo *MongoConfig) MidMongoDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
// copy
utils.CopySameFields(commonEnv, mongo)
validate := validator.New()
err := validate.Struct(mongo)
if err != nil {
log.ErrorF("backend config validate error: %v\n", err)
return false
}
if !z_dep.ParseEnvToApplyFile(mongo, CmiiMongoTemplate, z_dep.MongoApplyFilePath) {
return false
}
return true
}
func MidMongoDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiMongoTemplate, z_dep.MongoApplyFilePath)
}
func (rabbit *RabbitMQConfig) MidRabbitMQDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
// copy
utils.CopySameFields(commonEnv, rabbit)
validate := validator.New()
err := validate.Struct(rabbit)
if err != nil {
log.ErrorF("backend config validate error: %v\n", err)
return false
}
if !z_dep.ParseEnvToApplyFile(rabbit, CmiiRabbitMQTemplate, z_dep.RabbitMQApplyFilePath) {
return false
}
return true
}
func MidRabbitMQDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiRabbitMQTemplate, z_dep.RabbitMQApplyFilePath)
}
func (redis *RedisConfig) MidRedisDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
// copy
utils.CopySameFields(commonEnv, redis)
validate := validator.New()
err := validate.Struct(redis)
if err != nil {
log.ErrorF("backend config validate error: %v\n", err)
return false
}
if !z_dep.ParseEnvToApplyFile(redis, CmiiRedisTemplate, z_dep.RedisApplyFilePath) {
return false
}
return true
}
func MidRedisDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiRedisTemplate, z_dep.RedisApplyFilePath)
}
func (mysql *MySQlConfig) MidMySQlDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
// copy
utils.CopySameFields(commonEnv, mysql)
validate := validator.New()
err := validate.Struct(mysql)
if err != nil {
log.ErrorF("backend config validate error: %v\n", err)
return false
}
if !z_dep.ParseEnvToApplyFile(mysql, CmiiMySQLTemplate, z_dep.MySQLApplyFilePath) {
return false
}
return true
}
func MidMySQlDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiMySQLTemplate, z_dep.MySQLApplyFilePath)
}
func (nacos *NacosConfig) MidNacosDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
// copy
utils.CopySameFields(commonEnv, nacos)
validate := validator.New()
err := validate.Struct(nacos)
if err != nil {
log.ErrorF("backend config validate error: %v\n", err)
return false
}
if !z_dep.ParseEnvToApplyFile(nacos, CmiiNacosTemplate, z_dep.NacosApplyFilePath) {
return false
}
return true
}
func MidNacosDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiNacosTemplate, z_dep.NacosApplyFilePath)
}
func PVCDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
return commonEnv.ParseCommonEnvToApplyFile(CmiiPVCTemplate, z_dep.PVCApplyFilePath)
}

View File

@@ -1,4 +1,4 @@
package b_middle
package c_middle
const CmiiPVCTemplate = `
apiVersion: v1

View File

@@ -1,4 +1,4 @@
package c_app
package d_app
import (
"github.com/go-playground/validator/v10"
@@ -8,7 +8,14 @@ import (
"wdd.io/agent-deploy/z_dep"
)
var log = logger.Log
var (
DefaultCmiiBackendConfig = &CmiiBackendConfig{}
DefaultCmiiFrontendConfig = &CmiiFrontendConfig{}
DefaultIngressConfig = &IngressConfig{
FrontendShortNameMaps: FrontendShortNameMaps,
}
log = logger.Log
)
type CmiiBackendConfig struct {
z_dep.CommonEnvironmentConfig
@@ -29,10 +36,10 @@ type CmiiFrontendConfig struct {
ClientId string
}
var (
DefaultCmiiBackendConfig = &CmiiBackendConfig{}
DefaultCmiiFrontendConfig = &CmiiFrontendConfig{}
)
type IngressConfig struct {
z_dep.CommonEnvironmentConfig
FrontendShortNameMaps map[string]string
}
func (backend *CmiiBackendConfig) BackendDeploy(common *z_dep.CommonEnvironmentConfig) bool {
@@ -99,6 +106,31 @@ func (frontend *CmiiFrontendConfig) ConfigMapDeploy(commonEnv *z_dep.CommonEnvir
return z_dep.ParseEnvToApplyFile(frontend, CmiiFrontendConfigMapTemplate, z_dep.ConfigMapApplyFilePath)
}
func (ingress *IngressConfig) IngressDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
// copy
utils.CopySameFields(commonEnv, ingress)
// manual validate
if len(ingress.FrontendShortNameMaps) == 0 {
log.ErrorF("frontend short name is empty !")
return false
}
if !z_dep.ParseEnvToApplyFile(ingress, CmiiFrontendIngressTemplate, z_dep.IngresApplyFilePath) {
return false
}
if !commonEnv.ParseCommonEnvToApplyFile(CmiiBackendIngressTemplate, z_dep.IngresApplyFilePath) {
return false
}
if !commonEnv.ParseCommonEnvToApplyFile(CmiiGatewayIngressTemplate, z_dep.IngresApplyFilePath) {
return false
}
return true
}
func IngressDeploy(commonEnv *z_dep.CommonEnvironmentConfig) bool {
if !commonEnv.ParseCommonEnvToApplyFile(CmiiFrontendIngressTemplate, z_dep.IngresApplyFilePath) {
return false

View File

@@ -1,4 +1,4 @@
package c_app
package d_app
import (
"testing"

View File

@@ -1,4 +1,4 @@
package c_app
package d_app
var FrontendShortNameMaps = map[string]string{
"cmii-suav-platform-supervision": "supervision",

View File

@@ -1,4 +1,4 @@
package c_app
package d_app
const CmiiBackendDeploymentTemplate = `
apiVersion: apps/v1

View File

@@ -1,4 +1,4 @@
package c_app
package d_app
const CmiiFrontendDeploymentTemplate = `
apiVersion: apps/v1

View File

@@ -1,4 +1,4 @@
package c_app
package d_app
const CmiiSrsTemplate = `
kind: ConfigMap

View File

@@ -1,4 +1,4 @@
package c_app
package d_app
const CmiiFrontendConfigMapTemplate = `
kind: ConfigMap
@@ -82,43 +82,32 @@ metadata:
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite ^(/green)$ $1/ redirect;
rewrite ^(/supervision)$ $1/ redirect;
rewrite ^(/inspection)$ $1/ redirect;
rewrite ^(/park)$ $1/ redirect;
rewrite ^(/pangu)$ $1/ redirect;
rewrite ^(/ai-brain)$ $1/ redirect;
rewrite ^(/base)$ $1/ redirect;
rewrite ^(/cms)$ $1/ redirect;
rewrite ^(/cmsportal)$ $1/ redirect;
rewrite ^(/detection)$ $1/ redirect;
rewrite ^(/emergency)$ $1/ redirect;
rewrite ^(/hyper)$ $1/ redirect;
rewrite ^(/logistics)$ $1/ redirect;
rewrite ^(/mws)$ $1/ redirect;
rewrite ^(/mws-admin)$ $1/ redirect;
rewrite ^(/oms)$ $1/ redirect;
rewrite ^(/open)$ $1/ redirect;
rewrite ^(/security)$ $1/ redirect;
rewrite ^(/share)$ $1/ redirect;
rewrite ^(/splice)$ $1/ redirect;
rewrite ^(/splice-visual)$ $1/ redirect;
rewrite ^(/traffic)$ $1/ redirect;
rewrite ^(/visualization)$ $1/ redirect;
rewrite ^(/communication)$ $1/ redirect;
rewrite ^(/infrastructure)$ $1/ redirect;
rewrite ^(/media)$ $1/ redirect;
rewrite ^(/seniclive)$ $1/ redirect;
{{- range $key, $value := .FrontendShortNameMaps }}
rewrite ^(/{{ $value }})$ $1/ redirect;
{{- end }}
spec:
rules:
- host: fake-domain.{{ .Namespace }}.io
http:
paths:
- path: /inspection/?(.*)
{{- if .TenantEnv }}
{{- $tenantEnv := .TenantEnv }}
{{- range $key, $value := .FrontendShortNameMaps }}
- path: /{{ $tenantEnv }}/{{ $value }}/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform
serviceName: {{ $key }}
servicePort: 9528
{{- end }}
{{- else }}
{{- range $key, $value := .FrontendShortNameMaps }}
- path: /{{ $value }}/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: {{ $key }}
servicePort: 9528
{{- end }}
{{- end }}
- path: /supervision/?(.*)
pathType: ImplementationSpecific
backend:

View File

@@ -0,0 +1,50 @@
package e_cmii
import (
"wdd.io/agent-deploy/c_middle"
"wdd.io/agent-deploy/d_app"
"wdd.io/agent-deploy/z_dep"
)
type CmiiEnvConfig struct {
c_middle.MySQlConfig
c_middle.RedisConfig
c_middle.MongoConfig
c_middle.RabbitMQConfig
c_middle.NacosConfig
c_middle.EmqxConfig
d_app.CmiiFrontendConfig
d_app.CmiiBackendConfig
}
var CmiiDevConfig = &CmiiEnvConfig{
MySQlConfig: c_middle.MySQlConfig{
MySQLNodePort: "33306",
MySQLRootPassword: "Gwubc6CxRM",
MySQLRootPasswordBase64: "R3d1YmM2Q3hSTQ==",
MySQLK8sAdminPassword: "VFJncwy58^Zm",
},
RedisConfig: c_middle.RedisConfig{},
MongoConfig: c_middle.MongoConfig{
MongoPassword: "7(#dD3zcz8",
},
RabbitMQConfig: c_middle.RabbitMQConfig{
CommonEnvironmentConfig: z_dep.CommonEnvironmentConfig{},
RabbitNodePort: "35672",
RabbitDashboardNodePort: "36675",
RabbitPassword: "7v&7#w1ef)T-",
RabbitPasswordBase64: "N3YmNyN3MWVmKVQt",
},
NacosConfig: c_middle.NacosConfig{
MySQLK8sAdminPassword: "VFJncwy58^Zm",
NacosNodePort: "33848",
},
EmqxConfig: c_middle.EmqxConfig{
EmqxNodePort: "31883",
EmqxDashboardNodePort: "38085",
EmqxWebSocketNodePort: "38083",
EmqxPassword: "4YPk*DS%+5",
},
CmiiFrontendConfig: d_app.CmiiFrontendConfig{},
CmiiBackendConfig: d_app.CmiiBackendConfig{},
}

View File

@@ -0,0 +1,164 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: cmlc-nfs-client-provisioner
# replace with namespace where provisioner is deployed
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: cmlc-nfs-client-provisioner-runner
rules:
- apiGroups:
- ""
resources:
- persistentvolumes
verbs:
- get
- list
- watch
- create
- delete
- apiGroups:
- ""
resources:
- persistentvolumeclaims
verbs:
- get
- list
- watch
- update
- apiGroups:
- storage.k8s.io
resources:
- storageclasses
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- events
verbs:
- watch
- create
- update
- patch
- apiGroups:
- ""
resources:
- services
verbs:
- get
- apiGroups:
- extensions
resourceNames:
- nfs-provisioner
resources:
- podsecuritypolicies
verbs:
- use
- apiGroups:
- ""
resources:
- endpoints
verbs:
- get
- list
- watch
- create
- update
- patch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: cmlc-run-nfs-client-provisioner
subjects:
- kind: ServiceAccount
name: cmlc-nfs-client-provisioner
# replace with namespace where provisioner is deployed
namespace: kube-system
roleRef:
kind: ClusterRole
name: cmlc-nfs-client-provisioner-runner
apiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: cmlc-leader-locking-nfs-client-provisioner
# replace with namespace where provisioner is deployed
namespace: kube-system
rules:
- apiGroups: [ "" ]
resources: [ "endpoints" ]
verbs: [ "get", "list", "watch", "create", "update", "patch" ]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: cmlc-leader-locking-nfs-client-provisioner
subjects:
- kind: ServiceAccount
name: cmlc-nfs-client-provisioner
# replace with namespace where provisioner is deployed
namespace: kube-system
roleRef:
kind: Role
name: cmlc-leader-locking-nfs-client-provisioner
apiGroup: rbac.authorization.k8s.io
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs-prod-distribute
provisioner: cmlc-nfs-client-provisioner
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: cmlc-nfs-client-provisioner
labels:
app: cmlc-nfs-client-provisioner
# replace with namespace where provisioner is deployed
namespace: kube-system
spec:
replicas: 1
selector:
matchLabels:
app: cmlc-nfs-client-provisioner
strategy:
type: Recreate
template:
metadata:
labels:
app: cmlc-nfs-client-provisioner
spec:
serviceAccountName: cmlc-nfs-client-provisioner
imagePullSecrets:
- name: harborsecret
containers:
- name: cmlc-nfs-client-provisioner
image: harbor.cdcyy.com.cn/cmii/nfs-subdir-external-provisioner:v4.0.2
volumeMounts:
- name: nfs-client-root
mountPath: /persistentvolumes
env:
- name: PROVISIONER_NAME
value: cmlc-nfs-client-provisioner
- name: NFS_SERVER
value: yfcsnfs.com
- name: NFS_PATH
value: /drone/zyly
volumes:
- name: nfs-client-root
nfs:
server: yfcsnfs.com
path: /drone/zyly

View File

@@ -0,0 +1,9 @@
kind: Secret
apiVersion: v1
metadata:
name: harborsecret
namespace: uavcloud-devoperation
data:
.dockerconfigjson: >-
ewoJImF1dGhzIjogewoJCSJoYXJib3ItcWEuc3JlLmNkY3l5LmNuIjogewoJCQkiYXV0aCI6ICJjbUZrTURKZlpISnZibVU2UkhKdmJtVkFNVEl6TkE9PSIKCQl9LAogICAgICAgICAgICAgICAgImhhcmJvci5jZGN5eS5jb20uY24iOiB7CgkJCSJhdXRoIjogImNtRmtNREpmWkhKdmJtVTZSSEp2Ym1WQU1USXpOQT09IgoJCX0KCX0sCgkiSHR0cEhlYWRlcnMiOiB7CgkJIlVzZXItQWdlbnQiOiAiRG9ja2VyLUNsaWVudC8xOS4wMy45IChsaW51eCkiCgl9Cn0=
type: kubernetes.io/dockerconfigjson

File diff suppressed because it is too large Load Diff

View File

@@ -2,127 +2,29 @@
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-open
name: tenant-prefix-supervision
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "open",
AppClientId: "empty"
ApplicationShortName: "supervision",
AppClientId: "APP_qqSu82THfexI8PLM"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-security
name: tenant-prefix-media
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "security",
AppClientId: "APP_JUSEMc7afyWXxvE7"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-securityh5
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "securityh5",
AppClientId: "APP_N3ImO0Ubfu9peRHD"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-hljtt
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "hljtt",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-base
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "base",
AppClientId: "APP_9LY41OaKSqk2btY0"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-detection
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "detection",
AppClientId: "APP_FDHW2VLVDWPnnOCy"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-multiterminal
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "multiterminal",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-mws
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "mws",
AppClientId: "APP_uKniXPELlRERBBwK"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-splice
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "splice",
AppClientId: "APP_zE0M3sTRXrCIJS8Y"
ApplicationShortName: "media",
AppClientId: "APP_4AU8lbifESQO4FD6"
}
---
kind: ConfigMap
@@ -156,28 +58,42 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-media
name: tenant-prefix-mws
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "media",
AppClientId: "APP_4AU8lbifESQO4FD6"
ApplicationShortName: "mws",
AppClientId: "APP_uKniXPELlRERBBwK"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-threedsimulation
name: tenant-prefix-hljtt
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "threedsimulation",
ApplicationShortName: "hljtt",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-open
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "open",
AppClientId: "empty"
}
---
@@ -212,15 +128,85 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-armypeople
name: tenant-prefix-emergency
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "armypeople",
AppClientId: "APP_UIegse6Lfou9pO1U"
ApplicationShortName: "emergency",
AppClientId: "APP_aGsTAY1uMZrpKdfk"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-logistics
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "logistics",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-oms
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "oms",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-security
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "security",
AppClientId: "APP_JUSEMc7afyWXxvE7"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-splice
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "splice",
AppClientId: "APP_zE0M3sTRXrCIJS8Y"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-threedsimulation
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "threedsimulation",
AppClientId: "empty"
}
---
kind: ConfigMap
@@ -240,14 +226,42 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-oms
name: tenant-prefix-base
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "oms",
ApplicationShortName: "base",
AppClientId: "APP_9LY41OaKSqk2btY0"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-securityh5
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "securityh5",
AppClientId: "APP_N3ImO0Ubfu9peRHD"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-pangu
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "",
AppClientId: "empty"
}
---
@@ -268,75 +282,47 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-supervision
name: tenant-prefix-cmsportal
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "supervision",
AppClientId: "APP_qqSu82THfexI8PLM"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-supervisionh5
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "supervisionh5",
AppClientId: "APP_qqSu82THfexI8PLM"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-pangu
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "",
ApplicationShortName: "cmsportal",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-logistics
name: tenant-prefix-detection
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "logistics",
ApplicationShortName: "detection",
AppClientId: "APP_FDHW2VLVDWPnnOCy"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-multiterminal
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "multiterminal",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-seniclive
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "seniclive",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-share
namespace: uavcloud-dev
@@ -352,27 +338,41 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-cmsportal
name: tenant-prefix-supervisionh5
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "cmsportal",
AppClientId: "empty"
ApplicationShortName: "supervisionh5",
AppClientId: "APP_qqSu82THfexI8PLM"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-emergency
name: tenant-prefix-armypeople
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "emergency",
AppClientId: "APP_aGsTAY1uMZrpKdfk"
ApplicationShortName: "armypeople",
AppClientId: "APP_UIegse6Lfou9pO1U"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-seniclive
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "seniclive",
AppClientId: "empty"
}

View File

@@ -18,14 +18,14 @@ metadata:
app.kubernetes.io/managed-by: octopus-control
app.kubernetes.io/version: 5.5.0
data:
EMQX_CLUSTER__K8S__APISERVER: https://kubernetes.default.svc.cluster.local:443
EMQX_NAME: helm-emqxs
EMQX_CLUSTER__DISCOVERY: k8s
EMQX_CLUSTER__K8S__APP_NAME: helm-emqxs
EMQX_CLUSTER__K8S__SERVICE_NAME: helm-emqxs-headless
EMQX_CLUSTER__K8S__APISERVER: "https://kubernetes.default.svc.cluster.local:443"
EMQX_NAME: "helm-emqxs"
EMQX_CLUSTER__DISCOVERY: "k8s"
EMQX_CLUSTER__K8S__APP_NAME: "helm-emqxs"
EMQX_CLUSTER__K8S__SERVICE_NAME: "helm-emqxs-headless"
EMQX_CLUSTER__K8S__ADDRESS_TYPE: "dns"
EMQX_CLUSTER__K8S__namespace: uavcloud-dev
EMQX_CLUSTER__K8S__SUFFIX: svc.cluster.local
EMQX_CLUSTER__K8S__namespace: "uavcloud-dev"
EMQX_CLUSTER__K8S__SUFFIX: "svc.cluster.local"
EMQX_ALLOW_ANONYMOUS: "false"
EMQX_ACL_NOMATCH: "deny"
---
@@ -44,7 +44,7 @@ metadata:
data:
emqx_auth_username.conf: |-
auth.user.1.username = cmlc
auth.user.1.password = odD8#Ve7.B
auth.user.1.password = 4YPk*DS%+5
auth.user.password_hash = sha256
acl.conf: |-

File diff suppressed because it is too large Load Diff

View File

@@ -14,43 +14,173 @@ metadata:
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite ^(/green)$ $1/ redirect;
rewrite ^(/supervision)$ $1/ redirect;
rewrite ^(/inspection)$ $1/ redirect;
rewrite ^(/park)$ $1/ redirect;
rewrite ^(/supervisionh5)$ $1/ redirect;
rewrite ^(/pangu)$ $1/ redirect;
rewrite ^(/ai-brain)$ $1/ redirect;
rewrite ^(/armypeople)$ $1/ redirect;
rewrite ^(/base)$ $1/ redirect;
rewrite ^(/cms)$ $1/ redirect;
rewrite ^(/cmsportal)$ $1/ redirect;
rewrite ^(/detection)$ $1/ redirect;
rewrite ^(/emergency)$ $1/ redirect;
rewrite ^(/hyper)$ $1/ redirect;
rewrite ^(/hljtt)$ $1/ redirect;
rewrite ^(/jiangsuwenlv)$ $1/ redirect;
rewrite ^(/logistics)$ $1/ redirect;
rewrite ^(/media)$ $1/ redirect;
rewrite ^(/multiterminal)$ $1/ redirect;
rewrite ^(/mws)$ $1/ redirect;
rewrite ^(/mws-admin)$ $1/ redirect;
rewrite ^(/oms)$ $1/ redirect;
rewrite ^(/open)$ $1/ redirect;
rewrite ^(/qingdao)$ $1/ redirect;
rewrite ^(/qinghaitourism)$ $1/ redirect;
rewrite ^(/security)$ $1/ redirect;
rewrite ^(/securityh5)$ $1/ redirect;
rewrite ^(/seniclive)$ $1/ redirect;
rewrite ^(/share)$ $1/ redirect;
rewrite ^(/splice)$ $1/ redirect;
rewrite ^(/splice-visual)$ $1/ redirect;
rewrite ^(/threedsimulation)$ $1/ redirect;
rewrite ^(/traffic)$ $1/ redirect;
rewrite ^(/visualization)$ $1/ redirect;
rewrite ^(/communication)$ $1/ redirect;
rewrite ^(/infrastructure)$ $1/ redirect;
rewrite ^(/media)$ $1/ redirect;
rewrite ^(/seniclive)$ $1/ redirect;
spec:
rules:
- host: fake-domain.uavcloud-dev.io
http:
paths:
- path: /inspection/?(.*)
- path: /dev/supervision/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-suav-platform-supervision
servicePort: 9528
- path: /dev/supervisionh5/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-suav-platform-supervisionh5
servicePort: 9528
- path: /dev/pangu/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform
servicePort: 9528
- path: /dev/ai-brain/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-ai-brain
servicePort: 9528
- path: /dev/armypeople/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-armypeople
servicePort: 9528
- path: /dev/base/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-base
servicePort: 9528
- path: /dev/cmsportal/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-cms-portal
servicePort: 9528
- path: /dev/detection/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-detection
servicePort: 9528
- path: /dev/emergency/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-emergency-rescue
servicePort: 9528
- path: /dev/hljtt/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-hljtt
servicePort: 9528
- path: /dev/jiangsuwenlv/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-jiangsuwenlv
servicePort: 9528
- path: /dev/logistics/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-logistics
servicePort: 9528
- path: /dev/media/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-media
servicePort: 9528
- path: /dev/multiterminal/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-multiterminal
servicePort: 9528
- path: /dev/mws/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-mws
servicePort: 9528
- path: /dev/oms/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-oms
servicePort: 9528
- path: /dev/open/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-open
servicePort: 9528
- path: /dev/qingdao/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-qingdao
servicePort: 9528
- path: /dev/qinghaitourism/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-qinghaitourism
servicePort: 9528
- path: /dev/security/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-security
servicePort: 9528
- path: /dev/securityh5/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-securityh5
servicePort: 9528
- path: /dev/seniclive/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-seniclive
servicePort: 9528
- path: /dev/share/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-share
servicePort: 9528
- path: /dev/splice/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-splice
servicePort: 9528
- path: /dev/threedsimulation/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-threedsimulation
servicePort: 9528
- path: /dev/traffic/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-traffic
servicePort: 9528
- path: /dev/visualization/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-visualization
servicePort: 9528
- path: /supervision/?(.*)
pathType: ImplementationSpecific
backend:

View File

@@ -62,7 +62,7 @@ spec:
- name: MONGO_INITDB_ROOT_USERNAME
value: cmlc
- name: MONGO_INITDB_ROOT_PASSWORD
value: REdPza8#oVlt
value: 7(#dD3zcz8
volumeMounts:
- name: mongo-data
mountPath: /data/db

View File

@@ -9,7 +9,7 @@ metadata:
octopus.control: mysql-db-wdd
app.kubernetes.io/release: uavcloud-dev
app.kubernetes.io/managed-by: octopus
annotations:
annotations: { }
secrets:
- name: helm-mysql
---
@@ -25,7 +25,7 @@ metadata:
app.kubernetes.io/managed-by: octopus
type: Opaque
data:
mysql-root-password: "UXpmWFFoZDNiUQ=="
mysql-root-password: "R3d1YmM2Q3hSTQ=="
mysql-password: "S0F0cm5PckFKNw=="
---
apiVersion: v1
@@ -169,7 +169,7 @@ data:
grant all
on *.* to zyly_qc@'%';
create
user k8s_admin@'%' identified by 'fP#UaH6qQ3)8';
user k8s_admin@'%' identified by 'VFJncwy58^Zm';
grant all
on *.* to k8s_admin@'%';
create
@@ -228,7 +228,7 @@ metadata:
cmii.type: middleware
cmii.app: mysql
app.kubernetes.io/component: primary
annotations:
annotations: { }
spec:
type: ClusterIP
clusterIP: None
@@ -257,7 +257,7 @@ metadata:
cmii.type: middleware
cmii.app: mysql
app.kubernetes.io/component: primary
annotations:
annotations: { }
spec:
type: NodePort
ports:
@@ -418,4 +418,4 @@ spec:
name: helm-mysql-init-scripts
- name: mysql-data
hostPath:
path: /var/lib/docker/mysql-pv
path: /var/lib/docker/mysql-pv/uavcloud-dev/

View File

@@ -15,7 +15,7 @@ data:
mysql.db.host: "helm-mysql"
mysql.port: "3306"
mysql.user: "k8s_admin"
mysql.password: "fP#UaH6qQ3)8"
mysql.password: "VFJncwy58^Zm"
---
apiVersion: v1
kind: Service
@@ -37,15 +37,13 @@ spec:
- port: 8848
name: server
targetPort: 8848
nodePort: 38989
nodePort: 33848
- port: 9848
name: server12
targetPort: 9848
nodePort: 38912
- port: 9849
name: server23
targetPort: 9849
nodePort: 38923
---
apiVersion: apps/v1
kind: StatefulSet

View File

@@ -25,7 +25,7 @@ metadata:
app.kubernetes.io/managed-by: rabbitmq
type: Opaque
data:
rabbitmq-password: "blljUk45MXIuX2hq"
rabbitmq-password: "N3YmNyN3MWVmKVQt"
rabbitmq-erlang-cookie: "emFBRmt1ZU1xMkJieXZvdHRYbWpoWk52UThuVXFzcTU="
---
apiVersion: v1
@@ -43,7 +43,7 @@ data:
## Username and password
##
default_user = admin
default_pass = nYcRN91r._hj
default_pass = 7v&7#w1ef)T-
## Clustering
##
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s
@@ -145,7 +145,7 @@ spec:
- name: dashboard
port: 15672
targetPort: dashboard
nodePort: 35675
nodePort: 36675
selector:
app.kubernetes.io/name: helm-rabbitmq
app.kubernetes.io/release: uavcloud-dev

File diff suppressed because it is too large Load Diff

View File

@@ -2,57 +2,43 @@
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-security
name: tenant-prefix-ai-brain
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "security",
AppClientId: "APP_JUSEMc7afyWXxvE7"
ApplicationShortName: "ai-brain",
AppClientId: "APP_rafnuCAmBESIVYMH"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-qinghaitourism
name: tenant-prefix-cmsportal
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "qinghaitourism",
ApplicationShortName: "cmsportal",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-hljtt
name: tenant-prefix-logistics
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "hljtt",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-supervision
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "supervision",
AppClientId: "APP_qqSu82THfexI8PLM"
ApplicationShortName: "logistics",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
@@ -71,48 +57,6 @@ data:
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-media
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "media",
AppClientId: "APP_4AU8lbifESQO4FD6"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-multiterminal
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "multiterminal",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-oms
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "oms",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-share
namespace: uavcloud-dev
@@ -128,57 +72,29 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-pangu
name: tenant-prefix-qinghaitourism
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "",
ApplicationShortName: "qinghaitourism",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-base
name: tenant-prefix-qingdao
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "base",
AppClientId: "APP_9LY41OaKSqk2btY0"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-ai-brain
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "ai-brain",
AppClientId: "APP_rafnuCAmBESIVYMH"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-mws
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "mws",
AppClientId: "APP_uKniXPELlRERBBwK"
ApplicationShortName: "qingdao",
AppClientId: "empty"
}
---
kind: ConfigMap
@@ -197,34 +113,6 @@ data:
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-threedsimulation
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "threedsimulation",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-cmsportal
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "cmsportal",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-seniclive
namespace: uavcloud-dev
@@ -239,76 +127,6 @@ data:
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-emergency
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "emergency",
AppClientId: "APP_aGsTAY1uMZrpKdfk"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-jiangsuwenlv
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "jiangsuwenlv",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-detection
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "detection",
AppClientId: "APP_FDHW2VLVDWPnnOCy"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-logistics
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "logistics",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-splice
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "splice",
AppClientId: "APP_zE0M3sTRXrCIJS8Y"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-traffic
namespace: uavcloud-dev
@@ -324,14 +142,14 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-qingdao
name: tenant-prefix-hljtt
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "qingdao",
ApplicationShortName: "hljtt",
AppClientId: "empty"
}
---
@@ -351,6 +169,20 @@ data:
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-pangu
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-armypeople
namespace: uavcloud-dev
@@ -365,6 +197,118 @@ data:
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-media
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "media",
AppClientId: "APP_4AU8lbifESQO4FD6"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-oms
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "oms",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-threedsimulation
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "threedsimulation",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-jiangsuwenlv
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "jiangsuwenlv",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-base
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "base",
AppClientId: "APP_9LY41OaKSqk2btY0"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-detection
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "detection",
AppClientId: "APP_FDHW2VLVDWPnnOCy"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-multiterminal
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "multiterminal",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-mws
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "mws",
AppClientId: "APP_uKniXPELlRERBBwK"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-securityh5
namespace: uavcloud-dev
@@ -376,3 +320,59 @@ data:
ApplicationShortName: "securityh5",
AppClientId: "APP_N3ImO0Ubfu9peRHD"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-emergency
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "emergency",
AppClientId: "APP_aGsTAY1uMZrpKdfk"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-supervision
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "supervision",
AppClientId: "APP_qqSu82THfexI8PLM"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-security
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "security",
AppClientId: "APP_JUSEMc7afyWXxvE7"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-splice
namespace: uavcloud-dev
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "dev",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "splice",
AppClientId: "APP_zE0M3sTRXrCIJS8Y"
}

View File

@@ -18,14 +18,14 @@ metadata:
app.kubernetes.io/managed-by: octopus-control
app.kubernetes.io/version: 5.5.0
data:
EMQX_CLUSTER__K8S__APISERVER: https://kubernetes.default.svc.cluster.local:443
EMQX_NAME: helm-emqxs
EMQX_CLUSTER__DISCOVERY: k8s
EMQX_CLUSTER__K8S__APP_NAME: helm-emqxs
EMQX_CLUSTER__K8S__SERVICE_NAME: helm-emqxs-headless
EMQX_CLUSTER__K8S__APISERVER: "https://kubernetes.default.svc.cluster.local:443"
EMQX_NAME: "helm-emqxs"
EMQX_CLUSTER__DISCOVERY: "k8s"
EMQX_CLUSTER__K8S__APP_NAME: "helm-emqxs"
EMQX_CLUSTER__K8S__SERVICE_NAME: "helm-emqxs-headless"
EMQX_CLUSTER__K8S__ADDRESS_TYPE: "dns"
EMQX_CLUSTER__K8S__namespace: uavcloud-dev
EMQX_CLUSTER__K8S__SUFFIX: svc.cluster.local
EMQX_CLUSTER__K8S__namespace: "uavcloud-dev"
EMQX_CLUSTER__K8S__SUFFIX: "svc.cluster.local"
EMQX_ALLOW_ANONYMOUS: "false"
EMQX_ACL_NOMATCH: "deny"
---
@@ -44,7 +44,7 @@ metadata:
data:
emqx_auth_username.conf: |-
auth.user.1.username = cmlc
auth.user.1.password = odD8#Ve7.B
auth.user.1.password = 4YPk*DS%+5
auth.user.password_hash = sha256
acl.conf: |-

File diff suppressed because it is too large Load Diff

View File

@@ -14,43 +14,200 @@ metadata:
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite ^(/green)$ $1/ redirect;
rewrite ^(/supervision)$ $1/ redirect;
rewrite ^(/inspection)$ $1/ redirect;
rewrite ^(/park)$ $1/ redirect;
rewrite ^(/supervisionh5)$ $1/ redirect;
rewrite ^(/pangu)$ $1/ redirect;
rewrite ^(/ai-brain)$ $1/ redirect;
rewrite ^(/armypeople)$ $1/ redirect;
rewrite ^(/base)$ $1/ redirect;
rewrite ^(/cms)$ $1/ redirect;
rewrite ^(/cmsportal)$ $1/ redirect;
rewrite ^(/detection)$ $1/ redirect;
rewrite ^(/emergency)$ $1/ redirect;
rewrite ^(/hyper)$ $1/ redirect;
rewrite ^(/hljtt)$ $1/ redirect;
rewrite ^(/jiangsuwenlv)$ $1/ redirect;
rewrite ^(/logistics)$ $1/ redirect;
rewrite ^(/media)$ $1/ redirect;
rewrite ^(/multiterminal)$ $1/ redirect;
rewrite ^(/mws)$ $1/ redirect;
rewrite ^(/mws-admin)$ $1/ redirect;
rewrite ^(/oms)$ $1/ redirect;
rewrite ^(/open)$ $1/ redirect;
rewrite ^(/qingdao)$ $1/ redirect;
rewrite ^(/qinghaitourism)$ $1/ redirect;
rewrite ^(/security)$ $1/ redirect;
rewrite ^(/securityh5)$ $1/ redirect;
rewrite ^(/seniclive)$ $1/ redirect;
rewrite ^(/share)$ $1/ redirect;
rewrite ^(/splice)$ $1/ redirect;
rewrite ^(/splice-visual)$ $1/ redirect;
rewrite ^(/threedsimulation)$ $1/ redirect;
rewrite ^(/traffic)$ $1/ redirect;
rewrite ^(/visualization)$ $1/ redirect;
rewrite ^(/communication)$ $1/ redirect;
rewrite ^(/infrastructure)$ $1/ redirect;
rewrite ^(/media)$ $1/ redirect;
rewrite ^(/seniclive)$ $1/ redirect;
spec:
rules:
- host: fake-domain.uavcloud-dev.io
http:
paths:
- path: /inspection/?(.*)
- path: /dev/supervision/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-suav-platform-supervision
servicePort: 9528
- path: /dev/supervisionh5/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-suav-platform-supervisionh5
servicePort: 9528
- path: /dev/pangu/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform
servicePort: 9528
- path: /dev/ai-brain/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-ai-brain
servicePort: 9528
- path: /dev/armypeople/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-armypeople
servicePort: 9528
- path: /dev/base/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-base
servicePort: 9528
- path: /dev/cmsportal/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-cms-portal
servicePort: 9528
- path: /dev/detection/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-detection
servicePort: 9528
- path: /dev/emergency/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-emergency-rescue
servicePort: 9528
- path: /dev/hljtt/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-hljtt
servicePort: 9528
- path: /dev/jiangsuwenlv/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-jiangsuwenlv
servicePort: 9528
- path: /dev/logistics/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-logistics
servicePort: 9528
- path: /dev/media/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-media
servicePort: 9528
- path: /dev/multiterminal/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-multiterminal
servicePort: 9528
- path: /dev/mws/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-mws
servicePort: 9528
- path: /dev/oms/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-oms
servicePort: 9528
- path: /dev/open/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-open
servicePort: 9528
- path: /dev/qingdao/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-qingdao
servicePort: 9528
- path: /dev/qinghaitourism/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-qinghaitourism
servicePort: 9528
- path: /dev/security/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-security
servicePort: 9528
- path: /dev/securityh5/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-securityh5
servicePort: 9528
- path: /dev/seniclive/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-seniclive
servicePort: 9528
- path: /dev/share/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-share
servicePort: 9528
- path: /dev/splice/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-splice
servicePort: 9528
- path: /dev/threedsimulation/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-threedsimulation
servicePort: 9528
- path: /dev/traffic/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-traffic
servicePort: 9528
- path: /dev/visualization/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-visualization
servicePort: 9528
- path: /supervision/?(.*)
pathType: ImplementationSpecific
backend:

View File

@@ -62,7 +62,7 @@ spec:
- name: MONGO_INITDB_ROOT_USERNAME
value: cmlc
- name: MONGO_INITDB_ROOT_PASSWORD
value: REdPza8#oVlt
value: 7(#dD3zcz8
volumeMounts:
- name: mongo-data
mountPath: /data/db

View File

@@ -9,7 +9,7 @@ metadata:
octopus.control: mysql-db-wdd
app.kubernetes.io/release: uavcloud-dev
app.kubernetes.io/managed-by: octopus
annotations:
annotations: { }
secrets:
- name: helm-mysql
---
@@ -25,7 +25,7 @@ metadata:
app.kubernetes.io/managed-by: octopus
type: Opaque
data:
mysql-root-password: "UXpmWFFoZDNiUQ=="
mysql-root-password: "R3d1YmM2Q3hSTQ=="
mysql-password: "S0F0cm5PckFKNw=="
---
apiVersion: v1
@@ -169,7 +169,7 @@ data:
grant all
on *.* to zyly_qc@'%';
create
user k8s_admin@'%' identified by 'fP#UaH6qQ3)8';
user k8s_admin@'%' identified by 'VFJncwy58^Zm';
grant all
on *.* to k8s_admin@'%';
create
@@ -228,7 +228,7 @@ metadata:
cmii.type: middleware
cmii.app: mysql
app.kubernetes.io/component: primary
annotations:
annotations: { }
spec:
type: ClusterIP
clusterIP: None
@@ -257,7 +257,7 @@ metadata:
cmii.type: middleware
cmii.app: mysql
app.kubernetes.io/component: primary
annotations:
annotations: { }
spec:
type: NodePort
ports:
@@ -418,4 +418,4 @@ spec:
name: helm-mysql-init-scripts
- name: mysql-data
hostPath:
path: /var/lib/docker/mysql-pv
path: /var/lib/docker/mysql-pv/uavcloud-dev/

View File

@@ -15,7 +15,7 @@ data:
mysql.db.host: "helm-mysql"
mysql.port: "3306"
mysql.user: "k8s_admin"
mysql.password: "fP#UaH6qQ3)8"
mysql.password: "VFJncwy58^Zm"
---
apiVersion: v1
kind: Service
@@ -37,15 +37,13 @@ spec:
- port: 8848
name: server
targetPort: 8848
nodePort: 38989
nodePort: 33848
- port: 9848
name: server12
targetPort: 9848
nodePort: 38912
- port: 9849
name: server23
targetPort: 9849
nodePort: 38923
---
apiVersion: apps/v1
kind: StatefulSet

View File

@@ -25,7 +25,7 @@ metadata:
app.kubernetes.io/managed-by: rabbitmq
type: Opaque
data:
rabbitmq-password: "blljUk45MXIuX2hq"
rabbitmq-password: "N3YmNyN3MWVmKVQt"
rabbitmq-erlang-cookie: "emFBRmt1ZU1xMkJieXZvdHRYbWpoWk52UThuVXFzcTU="
---
apiVersion: v1
@@ -43,7 +43,7 @@ data:
## Username and password
##
default_user = admin
default_pass = nYcRN91r._hj
default_pass = 7v&7#w1ef)T-
## Clustering
##
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s
@@ -145,7 +145,7 @@ spec:
- name: dashboard
port: 15672
targetPort: dashboard
nodePort: 35675
nodePort: 36675
selector:
app.kubernetes.io/name: helm-rabbitmq
app.kubernetes.io/release: uavcloud-dev

View File

@@ -103,7 +103,7 @@ func (env *CommonEnvironmentConfig) GenerateApplyFilePath() {
func ParseEnvToApplyFile(environment any, applyTemplate string, applyFilePath string) bool {
randomString := utils.GenerateRandomString(8)
randomString := utils.GenerateRandomString(8, false)
// Deployment
tmpl, err := template.New(randomString).Parse(applyTemplate)

View File

@@ -62,7 +62,7 @@ func CmiiEnvDeploy() {
agent_deploy.CmiiEnvironmentDeploy(shouldDoCompleteDeploy, common, backendMap, frontendMap)
// test
GetNodeWideByKubectl(cmiiNamespace)
//GetNodeWideByKubectl(cmiiNamespace)
// clear old apply file
//clearOldApplyStuff(applyYamlFolder+"old/", cmiiNamespace)

View File

@@ -253,7 +253,7 @@ func TestUpdateCmiiDeploymentImageTag(t *testing.T) {
// 计算20:00的时间
now := time.Now()
targetTime := time.Date(now.Year(), now.Month(), now.Day(), 17, 23, 00, 0, now.Location())
targetTime := time.Date(now.Year(), now.Month(), now.Day(), 17, 34, 00, 0, now.Location())
duration := time.Duration(0)
@@ -277,7 +277,10 @@ func TestUpdateCmiiDeploymentImageTag(t *testing.T) {
appNameTagMap := map[string]string{
//"cmii-uav-multilink": "5.5.0",
//"cmii-uav-process": "5.6.0-060601",
"cmii-uav-industrial-portfolio": "5.6.0-061302",
//"cmii-uav-industrial-portfolio": "5.6.0-061303",
"cmii-uav-industrial-portfolio": "5.6.0-061401",
//"cmii-uas-lifecycle": "5.6.0",
"cmii-uas-lifecycle": "5.6.0-061401",
}
for appName, newTag := range appNameTagMap {

View File

@@ -966,14 +966,14 @@ func (op *CmiiK8sOperator) PodStatusCheckTimeout(specificPod string, cmiiEnv str
for {
select {
case <-timeout:
log.ErrorF("[K8sCheckPodStatusTimeout] - 命名空间: [%s], Pod名称: [%s], 状态: 失败!", cmiiEnv, specificPod)
log.ErrorF("[PodStatusCheck] - 命名空间: [%s], Pod名称: [%s], 状态: 失败!", cmiiEnv, specificPod)
return false
case <-tick:
pod, err := client.CoreV1().Pods(cmiiEnv).Get(context.TODO(), specificPod, metav1.GetOptions{})
if err != nil {
log.ErrorF("[K8sCheckPodStatusTimeout] - 命名空间: [%s], Pod名称: [%s], 获取Pod信息失败 ", cmiiEnv, err.Error())
log.ErrorF("[PodStatusCheck] - 命名空间: [%s], Pod名称: [%s], 获取Pod信息失败 ", cmiiEnv, err.Error())
} else {
log.DebugF("[K8sCheckPodStatusTimeout] - 命名空间: [%s], Pod名称: [%s], 状态: [%s]", cmiiEnv, pod.Name, pod.Status.Phase)
log.DebugF("[PodStatusCheck] - 命名空间: [%s], Pod名称: [%s], 状态: [%s]", cmiiEnv, pod.Name, pod.Status.Phase)
if pod.Status.Phase == corev1.PodRunning || pod.Status.Phase == corev1.PodSucceeded {
return true
}

View File

@@ -5,15 +5,15 @@ clusters:
api-version: v1
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN3akNDQWFxZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFTTVJBd0RnWURWUVFERXdkcmRXSmwKTFdOaE1CNFhEVEkwTURZd05UQTRNakl4T0ZvWERUTTBNRFl3TXpBNE1qSXhPRm93RWpFUU1BNEdBMVVFQXhNSAphM1ZpWlMxallUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxsWFhmZGwrbkxnCkt2RnV6OFVkNTQ0T2Q2M1RpaHNOYzMvZlJZSXdEcWNLcXo3ditEQVZzYTZXem94WUxHK1BOaDFHbzZYeXBKSXoKV1hWNFN4NC9mVXo0S2hpMW5mY3RnSkVReVdnU3ZkbDVpcEQxaTJIRkEvR3Jnb3R2RkljN0IwRExVdzBrb3F0Ygo2QzlSYnhNSFFpWk1yZXlzelJYWXRGN3J1c1dHb2J5eGc5RFZsczdTWmdGMjhOSkZXOHNFa0FMaWRwMTBUVENECk05QkhENXdEQkRVMGsyMzFRaE1lY3IzL2YzZDVvOG8vVklLTWs0VDFIZ2lMM0NuZmZlc2FGeTNVSnlxSnBERkUKYmtici9uSmNxcXZ5emxnQ1hsSEtTUlN1ZFN1QkVhbHVRbTczSC83b05oVHE2Y1BkN0hwUHdnK3BTR0kvd0h6NwpHaHNReVVCRXNoa0NBd0VBQWFNak1DRXdEZ1lEVlIwUEFRSC9CQVFEQWdLa01BOEdBMVVkRXdFQi93UUZNQU1CCkFmOHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBREJUSlc0ckNQSFNraVQzZ1RsQWJ5a0VsMlF4cFBwRHRLdWwKUHU0cDVsQ0RUZWhJTWFabnlnREZMajlpN2tQQ3lGb1JQaFRxcyswaWVId0p3N2xYWG00dnNOTGZXajN3MDV1Rgo0dnM1N0JRZTI2VzBSZWNMdG5iUFNYVXBJdDBxcjV2VVcwVkYxNk1wdm40ZzZIL2Rvc0hxOUlHcTBMWFpWaU5sClhPUUgvUXZNOG5xTWM4RHFaSG9DUzNvQ3NGQWVTeHd2eFQvY3QwRDUwVWE3ZWtlRllVLzZkSzY0dkk5bzJhY0UKSWc1UkhnM0NlR2RNN2VLdXN1bUpjL1FOeHZTd3pwS0xjWjlzNnpLODVRdlB2dFlTWmRYVEhmdlVENUpHdlFoQwpjLzlMci9BV0hBWUxOOXpOSEdOdE9nK0h1TTBPVHZKeWZkYnF0dVJXTklOL2NlYmhnTTA9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
server: "https://192.168.35.178:6443"
name: "rke-cluster"
name: "cmii-dev-cluster"
contexts:
- context:
cluster: "rke-cluster"
user: "kube-admin-rke-cluster"
name: "rke-cluster"
current-context: "rke-cluster"
cluster: "cmii-dev-cluster"
user: "kube-admin-cmii-dev-cluster"
name: "cmii-dev-cluster"
current-context: "cmii-dev-cluster"
users:
- name: "kube-admin-rke-cluster"
- name: "kube-admin-cmii-dev-cluster"
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM2VENDQWRHZ0F3SUJBZ0lJQmtVSkFlMU9yMW93RFFZSktvWklodmNOQVFFTEJRQXdFakVRTUE0R0ExVUUKQXhNSGEzVmlaUzFqWVRBZUZ3MHlOREEyTURVd09ESXlNVGhhRncwek5EQTJNRE13T0RJeU1UbGFNQzR4RnpBVgpCZ05WQkFvVERuTjVjM1JsYlRwdFlYTjBaWEp6TVJNd0VRWURWUVFERXdwcmRXSmxMV0ZrYldsdU1JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXNLTS9KclZCRjJhejV5Wlcwb0ZoN0dCNnhkYW8KWjh4cnk2MXBob0FmM3gxbmxJUkhtK08vaDdCbVdpNXBCciswV1FOUEJNV3pXT3FCa1VDcWVrZHJEd3VqM3VpZQoxVzJ0d2tUUDhmb1NZK1ZQY2xPWkJIR0NrNzZad0N0SFlTb05mci9PcHQyb2grNFptVUdlcFJjNndrYzNXTkxXClB6djh0NUFTZGJTbnYxUXZJaVg5Z1kySWpjRlU0YUdudW9PQ29Rdzd5OUdIOWJOMHMwM2hMN0kraXhoTm16TlIKajVoOEU4SGhPVzhSZXVwUzBDSlVVazZwSzZRUFcwd0hRME9pajVIV1JZRmd1aTFDaE9vcTN0emVlVTBvRytRegpPN1M1bFB0NExYdFpGN1NvSWFMb1A5bG9valpMWFhlY21QcnBTS3NOY2p2K3FnNk93d3BhZXNDaG5RSURBUUFCCm95Y3dKVEFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0l3RFFZSktvWkkKaHZjTkFRRUxCUUFEZ2dFQkFEcHJJMGRtZTMrK0RRWmVTNjRuSHBySHBwNGxFU2t5UkNsNVdjd3gvR00yc2s5bQp5Z0Jmcjlkd2dJQmFpSU5XQld3YWFlWVdBaS91dXJTRTZ2cUxkeUNlVkRNeGlQWnhPS3hLd3ZtWFpHL2lsRkxjCk50TEg5R3pGY0RqdUM4QndpRDAxbnlaTHZsRVV3TW9DVEpQNi96VGRpV3JqU1VHVXVIN1FkTHhNN29ROU4za0YKNm5qUzlZV2JYU1hVckNXc2pna1lIMmphTXEyZzFuNU9mN3JQOXptZjJBZ1VVVUlmYzhIaS9RQWx6eWRIdlFqUQpHNlFGUjF4aGg0ZzFtcUw5aWQyek1sZXQvZXNqSWlwemZJMzF4L1lvd2lnNlZPeDhkQWNQMFZBZXpOS3Y3cmJaCkdYSFNwcEJrOS9GdFFyMytWTitsTWVtS2dqTG40Tk1EZjkzOTcxcz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBc0tNL0pyVkJGMmF6NXlaVzBvRmg3R0I2eGRhb1o4eHJ5NjFwaG9BZjN4MW5sSVJICm0rTy9oN0JtV2k1cEJyKzBXUU5QQk1XeldPcUJrVUNxZWtkckR3dWozdWllMVcydHdrVFA4Zm9TWStWUGNsT1oKQkhHQ2s3Nlp3Q3RIWVNvTmZyL09wdDJvaCs0Wm1VR2VwUmM2d2tjM1dOTFdQenY4dDVBU2RiU252MVF2SWlYOQpnWTJJamNGVTRhR251b09Db1F3N3k5R0g5Yk4wczAzaEw3SStpeGhObXpOUmo1aDhFOEhoT1c4UmV1cFMwQ0pVClVrNnBLNlFQVzB3SFEwT2lqNUhXUllGZ3VpMUNoT29xM3R6ZWVVMG9HK1F6TzdTNWxQdDRMWHRaRjdTb0lhTG8KUDlsb29qWkxYWGVjbVBycFNLc05janYrcWc2T3d3cGFlc0NoblFJREFRQUJBb0lCQUM1QzB1dEVWVVBYdGc0MwowRTFaYlZnRy9LQ0wwNWM3eG8rVlh5bkdySkkybFVZa1RzelpIUFJna3EzVHNkWCtwekVZMkwwYk9obHpjWE9sClNBQzJhNmVKR09Yc2JvemZLTDdVWHRHMCtOUUkzb0hHdXpDYXVlUVA2eHlWT1NDTmJ2TmZNTFFySVZSWVc0UHoKMTZUTkxLcHRGR1hDOGpHbGVFNXJBU3Fxb2JSTjNHeG01R08xL0ppOHlvcG5sbVdnV0VKUjUyWXI2SVFBNk1xMQpYQXNGYzZ6UlRhVHRsN000Z3ZRU3VONVNKT1BZdkpscGJYejZ1WDRGcTRSUFc5dEFLekN5cFVDam05WGdaZ2FHCktpaHEwWVY1ZWMybFYveVZlTjBTMUs1NS9ZL3ZsOHNTNC9XbmZlZk1na2FBbytEc3FJOS9lSzduOUNQZkNUc3EKQ2VTUkJJRUNnWUVBNEtvbzJNcTkxemlJSE9BRXpTNjNKaVlzY2VqTCs5bCtCM1FUV1RteE1jc2MrUnptUW5OMQp3dllzaTdnSkVsR3hnVHJ3ai9KT3NhM1hCUnJPL0NjOXZQYzhNNnR0UEliUjVNZ29lSzFNalBvMGdhTmlsV1F5CnlScUh5RzlOMWMrMEhOZnFyUFAydzVhMysvQmZ5VS9mVEI5a0RjMU1waDZWaHNzQ2VuakhoOWtDZ1lFQXlVWSsKS1NaVzc5RFJYS1k5N0U1OG9MRGt4ajhXUllpMVlwTFc2djJPLy9McXBmU08ycmR0USs5aHR0cklrUC9hZlc0MAowMzRmOTVsKzNPR0c0b0I5VytNdUhIOVdtR1ZKNHljUlJhSk9YWXNhVk42Smh1ZGE5Y0FGRFJkRkJLZVBVRjB3Ck9NaFlBSU9OYnRKcFdENXJ0djNZTlM3ckg4K2QweU1kc2RvVHNXVUNnWUFiTFhwemYxTW56ZmJwUjFCTllmRlYKOUJnOFQyVWR1bG04blJZYUhSaUtaWC9Ed3ZNMzVxL0FQZmQxajNYSmVZaDNrYUc0U0Irczd0S3NFMm9tcHJpWgpPMjlVOE0vdUdvRVpvLzBCWERWK2VHWVJxS29zV0Vxc2VVRWp4aE1zWWt2dmtVOGFUUWowOEM2aGs1cUN4OTdEClhxakQ0cW43RG9nWUhrYldlZlhwUVFLQmdDbTdHcUJGaHJqcVByNUs2WVBaTWhYUEYxL1RMTGIyQlVXTzFHaWMKY2MyM2U5YzB3WG12bGtRRG1lcmpxYm9Ha2pKM2F4UitqZm8wSlExKzVReUpQM1NSd2JtKzNTRnp2c0lPRTVLdwplRGNFNUV5OFp4OUZVS0tyVVdESmRsSGt1OTRadENuUndBMDdPVlBFNUhxYlZwSDJSNkdmUExpM3Z5MUxscGlOCmNvL1JBb0dCQUl4OHloK1lLOHpHUlR2aTFseUdTTG90eFlWdlZMbWc4bG9CRmFzUS9tR0RhTk1rNVZ6cS9mUmgKbHU1dGUzWjhtYmxvTExUdzd1OUhRcGM3UGNqVklFV21DazBhYVA4YUs5VkpGYVQzV0xzWG1nRGIrb0tuNG9DVgpTSzZsOWVlQS9uWDA1Uk5xMEx0ekR3d3JNa2paR1VYZ3FldXJvTTF2cjJ2a2RLTkxhWEtmCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==

View File

@@ -56,3 +56,9 @@
2024-06-12-13-45-01 uavcloud-demo cmii-uav-industrial-portfolio 5.6.0-061201 5.6.0-061101
2024-06-12-13-47-35 uavcloud-demo cmii-uav-industrial-portfolio 5.6.0-061101 5.6.0-061201
2024-06-13-17-23-00 uavcloud-demo cmii-uav-industrial-portfolio 5.6.0-061202 5.6.0-061302
2024-06-14-17-34-10 uavcloud-demo cmii-uav-industrial-portfolio 5.6.0-061303 5.6.0-061401
2024-06-14-17-37-15 uavcloud-demo cmii-uas-lifecycle 5.6.0 5.6.0-061401
2024-06-14-17-42-34 uavcloud-demo cmii-uav-industrial-portfolio 5.6.0-061401 5.6.0-061303
2024-06-14-17-45-15 uavcloud-demo cmii-uas-lifecycle 5.6.0-061401 5.6.0
2024-06-14-17-47-17 uavcloud-demo cmii-uav-industrial-portfolio 5.6.0-061303 5.6.0-061401
2024-06-14-17-49-53 uavcloud-demo cmii-uas-lifecycle 5.6.0 5.6.0-061401