大量更新

This commit is contained in:
zeaslity
2026-05-19 14:28:44 +08:00
parent a8f6bda703
commit 9fc3372fa3
5299 changed files with 423176 additions and 426690 deletions

View File

@@ -0,0 +1,303 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: helm-emqx
namespace: cq-fly-260311
labels:
cmii.type: middleware-base
cmii.app: helm-emqx
helm.sh/chart: all-persistence-volume-claims-1.1.0
app.kubernetes.io/version: 3.1.0
spec:
storageClassName: nfs-prod-distribute
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 20Gi
---
apiVersion: v1
kind: Service
metadata:
name: helm-emqx
namespace: cq-fly-260311
labels:
cmii.type: middleware
cmii.app: helm-emqx
cmii.emqx.architecture: standalone
helm.sh/chart: emqx-1.1.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/version: "3.1.0"
spec:
type: NodePort
selector:
cmii.type: middleware
cmii.app: helm-emqx
cmii.emqx.architecture: standalone
ports:
- port: 1883
name: mqtt
targetPort: 1883
nodePort: 31883
- port: 18083
name: dashboard
targetPort: 18083
nodePort: 38085
- port: 8083
name: mqtt-ws
targetPort: 8083
nodePort: 38083
- port: 8883
name: mqtt-ssl
targetPort: 8883
nodePort: 38883
- port: 8084
name: mqtt-ws-ssl
targetPort: 8084
nodePort: 38084
---
kind: ConfigMap
apiVersion: v1
metadata:
name: helm-emqx-emqx-conf
namespace: cq-fly-260311
data:
emqx.conf: |-
node {
name = "emqx@127.0.0.1"
role = core
cookie = "emqxsecretcookie"
data_dir = "data"
}
# cluster {
# name = emqxcl
# discovery_strategy = manual
# }
dashboard {
listeners {
http.bind = 18083
# https.bind = 18084
https {
ssl_options {
certfile = "${EMQX_ETC_DIR}/certs/cert.pem"
keyfile = "${EMQX_ETC_DIR}/certs/key.pem"
}
}
}
default_password="cmlc"
}
mqtt {
strict_mode = true
max_inflight = 1000
}
# 认证
authentication = [
{
use_jwks = false
algorithm = hmac-based
secret = "emqxsecretemqxsecretemqxsecretemqxsecret"
secret_base64_encoded = false
mechanism = jwt
verify_claims = {"clientid": "${clientid}"}
disconnect_after_expire = false
from = password
},
{
# 初始化内置数据库
backend = built_in_database
mechanism = password_based
# 密码加密sha256
password_hash_algorithm {name = sha256, salt_position = suffix}
user_id_type = username
bootstrap_file = "${EMQX_ETC_DIR}/auth-built-in-db-bootstrap.json"
bootstrap_type = plain
}
]
# 授权
authorization {
cache {
enable = true
excludes = []
max_size = 32
ttl = "1m"
}
deny_action = ignore
no_match = deny
sources = [
{
enable = true
path = "/opt/emqx/etc/acl.conf"
type = file
}
{
type = "built_in_database"
enable = true
}
]
}
log {
console {level = warning}
file {level = warning}
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: helm-emqx-auth-conf
namespace: cq-fly-260311
data:
auth-built-in-db-bootstrap.json: |-
[
{
"user_id": "cmlc",
"password": "odD8#Ve7.B",
"is_superuser": false
},
{
"user_id": "admin",
"password": "odD8#Ve7.B",
"is_superuser": true
}
]
---
kind: ConfigMap
apiVersion: v1
metadata:
name: helm-emqx-acl-conf
namespace: cq-fly-260311
data:
acl.conf: |
{allow, {username, {re, "^dashboard$"}}, subscribe, ["$SYS/#"]}.
{allow, {username, "cmlc"}, all, ["#"]}.
{allow, {ipaddr, "127.0.0.1"}, all, ["$SYS/#", "#"]}.
{deny, all, subscribe, ["$SYS/#", {eq, "#"}, {eq, "+/#"}]}.
{deny, all}.
---
# Source: outside-deploy/charts/all-middleware/charts/emqx/templates/standalone/statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: helm-emqx
namespace: cq-fly-260311
labels:
cmii.type: middleware
cmii.app: helm-emqx
cmii.emqx.architecture: standalone
helm.sh/chart: emqx-1.1.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/version: "3.1.0"
spec:
serviceName: helm-emqx
replicas: 1
selector:
matchLabels:
cmii.type: middleware
cmii.app: helm-emqx
cmii.emqx.architecture: standalone
template:
metadata:
labels:
cmii.type: middleware
cmii.app: helm-emqx
cmii.emqx.architecture: standalone
helm.sh/chart: emqx-1.1.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/version: "3.1.0"
annotations:
pod.alpha.kubernetes.io/initialized: "true"
spec:
imagePullSecrets:
- name: harborsecret
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- "cq-fly-260311"
containers:
- name: helm-emqx
image: "chongqingshcis-a189ec98.ecis.chongqing-1.cmecloud.cn/cmii/emqx:5.8.8"
securityContext:
privileged: true
resources:
limits:
cpu: "1"
memory: 2Gi
requests:
cpu: 300m
memory: 1Gi
ports:
- containerPort: 1883
name: mqtt
protocol: TCP
- containerPort: 18083
name: dashboard
protocol: TCP
- containerPort: 8083
name: mqtt-ws
protocol: TCP
- containerPort: 8883
name: mqtt-ssl
protocol: TCP
- containerPort: 8084
name: mqtt-ws-ssl
protocol: TCP
env:
- name: EMQX_NODE__NAME
value: emqx@helm-emqx-0.helm-emqx.cq-fly-260311.svc.cluster.local
- name: EMQX_NODE__COOKIE
value: emqxsecretcookie
volumeMounts:
- name: helm-emqx-acl-conf
mountPath: /opt/emqx/etc/acl.conf
subPath: acl.conf
- name: helm-emqx-auth-conf
mountPath: /opt/emqx/etc/auth-built-in-db-bootstrap.json
subPath: auth-built-in-db-bootstrap.json
- name: helm-emqx-emqx-conf
mountPath: /opt/emqx/etc/emqx.conf
subPath: emqx.conf
- name: emqx-data
mountPath: /opt/emqx/log
subPath: default/helm-emqx/log
- name: emqx-data
mountPath: /opt/emqx/data/emqx_erl_pipes
subPath: default/helm-emqx/data
- name: emqx-data
mountPath: /opt/emqx/data/mnesia
subPath: default/helm-emqx/mnesia
- name: emqx-data
mountPath: /opt/emqx/data/configs
subPath: default/helm-emqx/configs
volumes:
- name: emqx-data
persistentVolumeClaim:
claimName: helm-emqx
- name: helm-emqx-acl-conf
configMap:
name: helm-emqx-acl-conf
items:
- key: acl.conf
path: acl.conf
- name: helm-emqx-auth-conf
configMap:
name: helm-emqx-auth-conf
items:
- key: auth-built-in-db-bootstrap.json
path: auth-built-in-db-bootstrap.json
- name: helm-emqx-emqx-conf
configMap:
name: helm-emqx-emqx-conf
items:
- key: emqx.conf
path: emqx.conf

View File

@@ -0,0 +1,999 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
labels:
app.kubernetes.io/managed-by: octopus-control
app.kubernetes.io/version: uas-2.3
octopus.control: all-ingress-config-1.1.0
type: api-gateway
name: all-gateways-ingress
namespace: 命名空间
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/enable-cors: 'true'
nginx.ingress.kubernetes.io/proxy-read-timeout: '3600'
nginx.ingress.kubernetes.io/proxy-send-timeout: '3600'
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: fake-domain.命名空间.io
http:
paths:
- backend:
service:
name: cmii-admin-gateway
port:
number: 8080
path: /oms/api/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-open-gateway
port:
number: 8080
path: /open/api/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-gateway
port:
number: 8080
path: /api/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uas-gateway
port:
number: 8080
path: /uas/api/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-sky-converge
port:
number: 8080
path: /converge/?(.*)
pathType: ImplementationSpecific
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
labels:
app.kubernetes.io/managed-by: octopus-control
app.kubernetes.io/version: uas-2.3
octopus.control: all-ingress-config-wdd
type: backend
name: backend-applications-ingress
namespace: 命名空间
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/enable-cors: 'true'
nginx.ingress.kubernetes.io/proxy-read-timeout: '3600'
nginx.ingress.kubernetes.io/proxy-send-timeout: '3600'
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: cmii-admin-data.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-admin-data
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-admin-gateway.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-admin-gateway
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-admin-user.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-admin-user
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-app-release.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-app-release
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-open-gateway.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-open-gateway
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-sky-converge.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-sky-converge
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-suav-supervision.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-suav-supervision
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uas-datahub.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uas-datahub
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uas-gateway.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uas-gateway
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uas-lifecycle.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uas-lifecycle
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-advanced5g.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-advanced5g
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-airspace.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-airspace
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-alarm.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-alarm
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-autowaypoint.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-autowaypoint
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-brain.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-brain
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-bridge.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-bridge
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-cloud-live.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-cloud-live
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-clusters.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-clusters
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-cms.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-cms
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-data-post-process.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-data-post-process
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-depotautoreturn.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-depotautoreturn
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-developer.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-developer
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-device.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-device
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-emergency.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-emergency
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-fwdd.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-fwdd
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-gateway.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-gateway
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-gis-server.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-gis-server
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-grid-datasource.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-grid-datasource
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-grid-engine.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-grid-engine
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-grid-manage.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-grid-manage
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-industrial-portfolio.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-industrial-portfolio
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-integration.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-integration
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-iot-dispatcher.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-iot-dispatcher
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-iot-manager.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-iot-manager
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-kpi-monitor.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-kpi-monitor
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-logger.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-logger
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-material-warehouse.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-material-warehouse
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-mission.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-mission
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-mqtthandler.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-mqtthandler
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-multilink.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-multilink
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-notice.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-notice
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-oauth.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-oauth
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-process.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-process
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-sec-awareness.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-sec-awareness
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-security-trace.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-security-trace
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-sense-adapter.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-sense-adapter
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-surveillance.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-surveillance
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-sync.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-sync
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-tcp-server.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-tcp-server
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-threedsimulation.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-threedsimulation
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-tower.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-tower
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-user.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-user
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-watchdog.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-watchdog
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uav-waypoint.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uav-waypoint
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uavms-pyfusion.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uavms-pyfusion
port:
number: 8080
path: /
pathType: ImplementationSpecific
- host: cmii-uavms-security-center.uavcloud-xadcity-uas.io
http:
paths:
- backend:
service:
name: cmii-uavms-security-center
port:
number: 8080
path: /
pathType: ImplementationSpecific
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
labels:
app.kubernetes.io/managed-by: octopus-control
app.kubernetes.io/version: uas-2.3
octopus.control: all-ingress-config-wdd
type: frontend
name: frontend-applications-ingress
namespace: 命名空间
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/enable-cors: 'true'
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: fake-domain.命名空间.io
http:
paths:
- backend:
service:
name: cmii-uav-platform
port:
number: 9528
path: /?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-suav-platform-supervision
port:
number: 9528
path: /supervision/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-suav-platform-supervisionh5
port:
number: 9528
path: /supervisionh5/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform
port:
number: 9528
path: /pangu/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-ai-brain
port:
number: 9528
path: /ai-brain/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-armypeople
port:
number: 9528
path: /armypeople/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-awareness
port:
number: 9528
path: /awareness/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-base
port:
number: 9528
path: /base/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-blockchain
port:
number: 9528
path: /blockchain/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-classification
port:
number: 9528
path: /classification/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-cms-portal
port:
number: 9528
path: /cmsportal/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-detection
port:
number: 9528
path: /detection/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-dikongzhixingh5
port:
number: 9528
path: /dikongzhixingh5/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-dispatchh5
port:
number: 9528
path: /dispatchh5/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-emergency-rescue
port:
number: 9528
path: /emergency/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-eventsh5
port:
number: 9528
path: /eventsh5/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-flight-control
port:
number: 9528
path: /flight-control/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-hljtt
port:
number: 9528
path: /hljtt/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-hyperspectral
port:
number: 9528
path: /hyper/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-iot-manager
port:
number: 9528
path: /iot/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-jiangsuwenlv
port:
number: 9528
path: /jiangsuwenlv/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-logistics
port:
number: 9528
path: /logistics/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-media
port:
number: 9528
path: /media/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-mianyangbackend
port:
number: 9528
path: /mianyangbackend/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-multiterminal
port:
number: 9528
path: /multiterminal/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-mws
port:
number: 9528
path: /mws/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-oms
port:
number: 9528
path: /oms/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-open
port:
number: 9528
path: /open/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-pilot2-to-cloud
port:
number: 9528
path: /pilot2cloud/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-qingdao
port:
number: 9528
path: /qingdao/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-qinghaitourism
port:
number: 9528
path: /qinghaitourism/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-renyike
port:
number: 9528
path: /renyike/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-scanner
port:
number: 9528
path: /scanner/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-security
port:
number: 9528
path: /security/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-securityh5
port:
number: 9528
path: /securityh5/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-seniclive
port:
number: 9528
path: /seniclive/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-share
port:
number: 9528
path: /share/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-smauth
port:
number: 9528
path: /smauth/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-smsecret
port:
number: 9528
path: /smsecret/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-splice
port:
number: 9528
path: /splice/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-threedsimulation
port:
number: 9528
path: /threedsimulation/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-traffic
port:
number: 9528
path: /traffic/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-uas
port:
number: 9528
path: /uas/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-uaskny
port:
number: 9528
path: /uas/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-uasms
port:
number: 9528
path: /uasms/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-uasmskny
port:
number: 9528
path: /uasms/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uav-platform-visualization
port:
number: 9528
path: /visualization/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uavms-platform-manager
port:
number: 9528
path: /uavmsmanager/?(.*)
pathType: ImplementationSpecific
- backend:
service:
name: cmii-uavms-platform-security-center
port:
number: 9528
path: /secenter/?(.*)
pathType: ImplementationSpecific

View File

@@ -0,0 +1,196 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-inference-hub
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-inference-hub
namespace: 命名空间
spec:
progressDeadlineSeconds: 600
replicas: 0
revisionHistoryLimit: 10
selector:
matchLabels:
cmii.app: cmii-inference-hub
cmii.type: backend
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-inference-hub
cmii.type: backend
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
containers:
- env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-inference-hub
- name: CUST_JAVA_OPTS
value: -Xms200m -Xmx1500m -Dlog4j2.formatMsgNoLookups=true
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: "8080"
- name: BIZ_CONFIG_GROUP
value: uas-2.3
- name: SYS_CONFIG_GROUP
value: uas-2.3
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: IMAGE_NAME
value: 镜像仓库/cmii/cmii-inference-hub:2.2.0-pro-20251031
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-inference-hub
divisor: "0"
resource: limits.cpu
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-inference-hub
divisor: "0"
resource: limits.memory
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-inference-hub
divisor: "0"
resource: requests.cpu
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-inference-hub
divisor: "0"
resource: requests.memory
image: 镜像仓库/cmii/cmii-inference-hub:2.2.0-pro-20251031
imagePullPolicy: Always
livenessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
name: cmii-inference-hub
ports:
- containerPort: 8080
name: pod-port
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: "2"
memory: 2Gi
requests:
cpu: 200m
memory: 200Mi
startupProbe:
failureThreshold: 5
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /cmii/logs
name: nfs-backend-log-volume
subPath: 命名空间/cmii-inference-hub
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: harborsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-inference-hub
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-inference-hub
namespace: 命名空间
spec:
ports:
- name: backend-tcp
port: 8080
protocol: TCP
targetPort: 8080
selector:
cmii.app: cmii-inference-hub
cmii.type: backend
sessionAffinity: None
type: ClusterIP

View File

@@ -0,0 +1,25 @@
---
kind: ConfigMap
apiVersion: v1
metadata:
name: nginx-cm
namespace: bj-sh-uas-260511
labels:
cmii.type: frontend
data:
nginx.conf: |
server {
listen 9528;
server_name localhost;
gzip on;
location / {
root /home/cmii-platform/dist;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

View File

@@ -0,0 +1,196 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uas-datahub
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uas-datahub
namespace: 命名空间
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
cmii.app: cmii-uas-datahub
cmii.type: backend
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uas-datahub
cmii.type: backend
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
containers:
- env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uas-datahub
- name: CUST_JAVA_OPTS
value: -Xms200m -Xmx1500m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Dlog4j2.formatMsgNoLookups=true -Duser.timezone=Asia/Shanghai
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: "8080"
- name: BIZ_CONFIG_GROUP
value: uas-2.3
- name: SYS_CONFIG_GROUP
value: uas-2.3
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: IMAGE_NAME
value: uas-2.3
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uas-datahub
divisor: "0"
resource: limits.cpu
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uas-datahub
divisor: "0"
resource: limits.memory
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uas-datahub
divisor: "0"
resource: requests.cpu
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uas-datahub
divisor: "0"
resource: requests.memory
image: 镜像仓库/cmii/cmii-uas-datahub:2.3.0-pro-20260226
imagePullPolicy: Always
livenessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
name: cmii-uas-datahub
ports:
- containerPort: 8080
name: pod-port
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: "2"
memory: 2Gi
requests:
cpu: 200m
memory: 200Mi
startupProbe:
failureThreshold: 5
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /cmii/logs
name: nfs-backend-log-volume
subPath: 命名空间/cmii-uas-datahub
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: harborsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/app-version: uas-2.0
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uas-datahub
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uas-datahub
namespace: 命名空间
spec:
ports:
- name: backend-tcp
port: 8080
protocol: TCP
targetPort: 8080
selector:
cmii.app: cmii-uas-datahub
cmii.type: backend
sessionAffinity: None
type: ClusterIP

View File

@@ -0,0 +1,196 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/app-version: uas-2.0
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uas-fusion
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uas-fusion
namespace: 命名空间
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
cmii.app: cmii-uas-fusion
cmii.type: backend
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uas-fusion
cmii.type: backend
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
containers:
- env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uas-fusion
- name: CUST_JAVA_OPTS
value: -Xms200m -Xmx1500m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Dlog4j2.formatMsgNoLookups=true
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: "8080"
- name: BIZ_CONFIG_GROUP
value: uas-2.3
- name: SYS_CONFIG_GROUP
value: uas-2.3
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: IMAGE_NAME
value: uas-2.3
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uas-fusion
divisor: "0"
resource: limits.cpu
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uas-fusion
divisor: "0"
resource: limits.memory
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uas-fusion
divisor: "0"
resource: requests.cpu
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uas-fusion
divisor: "0"
resource: requests.memory
image: 镜像仓库/cmii/cmii-uas-fusion:2.2.0-112
imagePullPolicy: Always
livenessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
name: cmii-uas-fusion
ports:
- containerPort: 8080
name: pod-port
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: "2"
memory: 2Gi
requests:
cpu: 200m
memory: 200Mi
startupProbe:
failureThreshold: 5
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /cmii/logs
name: nfs-backend-log-volume
subPath: 命名空间/cmii-uas-fusion
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: harborsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/app-version: uas-2.0
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uas-fusion
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uas-fusion
namespace: 命名空间
spec:
ports:
- name: backend-tcp
port: 8080
protocol: TCP
targetPort: 8080
selector:
cmii.app: cmii-uas-fusion
cmii.type: backend
sessionAffinity: None
type: ClusterIP

View File

@@ -0,0 +1,196 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uas-gateway
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uas-gateway
namespace: 命名空间
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
cmii.app: cmii-uas-gateway
cmii.type: backend
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uas-gateway
cmii.type: backend
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
containers:
- env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uas-gateway
- name: CUST_JAVA_OPTS
value: -Xms200m -Xmx1500m -Dlog4j2.formatMsgNoLookups=true
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: "8080"
- name: BIZ_CONFIG_GROUP
value: uas-2.3
- name: SYS_CONFIG_GROUP
value: uas-2.3
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: IMAGE_NAME
value: 镜像仓库/cmii/cmii-uas-gateway:2.2.0-pro-20251031
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uas-gateway
divisor: "0"
resource: limits.cpu
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uas-gateway
divisor: "0"
resource: limits.memory
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uas-gateway
divisor: "0"
resource: requests.cpu
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uas-gateway
divisor: "0"
resource: requests.memory
image: 镜像仓库/cmii/cmii-uas-gateway:2.3.0-pro-20260226
imagePullPolicy: Always
livenessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
name: cmii-uas-gateway
ports:
- containerPort: 8080
name: pod-port
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: "2"
memory: 2Gi
requests:
cpu: 200m
memory: 200Mi
startupProbe:
failureThreshold: 5
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /cmii/logs
name: nfs-backend-log-volume
subPath: 命名空间/cmii-uas-gateway
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: harborsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uas-gateway
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uas-gateway
namespace: 命名空间
spec:
ports:
- name: backend-tcp
port: 8080
protocol: TCP
targetPort: 8080
selector:
cmii.app: cmii-uas-gateway
cmii.type: backend
sessionAffinity: None
type: ClusterIP

View File

@@ -0,0 +1,196 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uas-lifecycle
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uas-lifecycle
namespace: 命名空间
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
cmii.app: cmii-uas-lifecycle
cmii.type: backend
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uas-lifecycle
cmii.type: backend
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
containers:
- env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uas-lifecycle
- name: CUST_JAVA_OPTS
value: -Xms1500m -Xmx5500m -Dlog4j2.formatMsgNoLookups=true
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: "8080"
- name: BIZ_CONFIG_GROUP
value: uas-2.3
- name: SYS_CONFIG_GROUP
value: uas-2.3
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: IMAGE_NAME
value: 镜像仓库/cmii/cmii-uas-lifecycle:2.2.0-pro-20251120
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uas-lifecycle
divisor: "0"
resource: limits.cpu
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uas-lifecycle
divisor: "0"
resource: limits.memory
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uas-lifecycle
divisor: "0"
resource: requests.cpu
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uas-lifecycle
divisor: "0"
resource: requests.memory
image: 镜像仓库/cmii/cmii-uas-lifecycle:2.3.4-xa-2026042901
imagePullPolicy: Always
livenessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
name: cmii-uas-lifecycle
ports:
- containerPort: 8080
name: pod-port
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: "6"
memory: 6Gi
requests:
cpu: "1"
memory: 1500Mi
startupProbe:
failureThreshold: 5
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /cmii/logs
name: nfs-backend-log-volume
subPath: 命名空间/cmii-uas-lifecycle
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: harborsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uas-lifecycle
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uas-lifecycle
namespace: 命名空间
spec:
ports:
- name: backend-tcp
port: 8080
protocol: TCP
targetPort: 8080
selector:
cmii.app: cmii-uas-lifecycle
cmii.type: backend
sessionAffinity: None
type: ClusterIP

View File

@@ -0,0 +1,196 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uas-perception-live
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uas-perception-live
namespace: 命名空间
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
cmii.app: cmii-uas-perception-live
cmii.type: backend
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uas-perception-live
cmii.type: backend
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
containers:
- env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uas-perception-live
- name: CUST_JAVA_OPTS
value: -Xms200m -Xmx1500m -Dlog4j2.formatMsgNoLookups=true
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: "8080"
- name: BIZ_CONFIG_GROUP
value: uas-2.3
- name: SYS_CONFIG_GROUP
value: uas-2.3
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: IMAGE_NAME
value: 镜像仓库/cmii/cmii-uas-perception-live:2.2.0-pro-20251031
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uas-perception-live
divisor: "0"
resource: limits.cpu
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uas-perception-live
divisor: "0"
resource: limits.memory
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uas-perception-live
divisor: "0"
resource: requests.cpu
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uas-perception-live
divisor: "0"
resource: requests.memory
image: 镜像仓库/cmii/cmii-uas-perception-live:2.3.0-pro-2.3.1-0428-04
imagePullPolicy: Always
livenessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
name: cmii-uas-perception-live
ports:
- containerPort: 8080
name: pod-port
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: "2"
memory: 2Gi
requests:
cpu: 200m
memory: 200Mi
startupProbe:
failureThreshold: 5
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /cmii/logs
name: nfs-backend-log-volume
subPath: 命名空间/cmii-uas-perception-live
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: harborsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uas-perception-live
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uas-perception-live
namespace: 命名空间
spec:
ports:
- name: backend-tcp
port: 8080
protocol: TCP
targetPort: 8080
selector:
cmii.app: cmii-uas-perception-live
cmii.type: backend
sessionAffinity: None
type: ClusterIP

View File

@@ -0,0 +1,196 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uav-data-center
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uav-data-center
namespace: 命名空间
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
cmii.app: cmii-uav-data-center
cmii.type: backend
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uav-data-center
cmii.type: backend
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
containers:
- env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uav-data-center
- name: CUST_JAVA_OPTS
value: -Xms1024m -Xmx3072m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Dlog4j2.formatMsgNoLookups=true -Duser.timezone=Asia/Shanghai
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: "8080"
- name: BIZ_CONFIG_GROUP
value: uas-2.3
- name: SYS_CONFIG_GROUP
value: uas-2.3
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: IMAGE_NAME
value: uas-2.3
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-data-center
divisor: "0"
resource: limits.cpu
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-data-center
divisor: "0"
resource: limits.memory
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-data-center
divisor: "0"
resource: requests.cpu
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-data-center
divisor: "0"
resource: requests.memory
image: 镜像仓库/cmii/cmii-uav-data-center:2.3.3-xa-260402
imagePullPolicy: Always
livenessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
name: cmii-uav-data-center
ports:
- containerPort: 8080
name: pod-port
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: "2"
memory: 4Gi
requests:
cpu: 200m
memory: 200Mi
startupProbe:
failureThreshold: 5
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /cmii/logs
name: nfs-backend-log-volume
subPath: 命名空间/cmii-uav-data-center
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: harborsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uav-data-center
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uav-data-center
namespace: 命名空间
spec:
ports:
- name: backend-tcp
port: 8080
protocol: TCP
targetPort: 8080
selector:
cmii.app: cmii-uav-data-center
cmii.type: backend
sessionAffinity: None
type: ClusterIP

View File

@@ -0,0 +1,208 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uav-iot-dispatcher
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uav-iot-dispatcher
namespace: 命名空间
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
cmii.app: cmii-uav-iot-dispatcher
cmii.type: backend
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uav-iot-dispatcher
cmii.type: backend
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
containers:
- env:
- name: ENV
value: production
- name: NACOS_SYSTEM_CONFIG_NAME
value: cmii-backend-system
- name: NACOS_SERVICE_CONFIG_NAME
value: cmii-uav-iot-dispatcher
- name: NACOS_SERVER_ADDRESS
value: helm-nacos:8848
- name: NACOS_NAMESPACE_ID
value: public
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uav-iot-dispatcher
- name: IMAGE_VERSION
value: uas-2.3
- name: CUST_JAVA_OPTS
value: -Xms200m -Xmx1500m -Dlog4j2.formatMsgNoLookups=true
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: "8080"
- name: BIZ_CONFIG_GROUP
value: uas-2.3
- name: SYS_CONFIG_GROUP
value: uas-2.3
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: IMAGE_NAME
value: 镜像仓库/cmii/cmii-uav-iot-dispatcher:2.2.0-pro-20251104
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-iot-dispatcher
divisor: "0"
resource: limits.cpu
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-iot-dispatcher
divisor: "0"
resource: limits.memory
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-iot-dispatcher
divisor: "0"
resource: requests.cpu
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-iot-dispatcher
divisor: "0"
resource: requests.memory
image: 镜像仓库/cmii/cmii-uav-iot-dispatcher:2.3.0-20260211-fix-live-record-v4
imagePullPolicy: Always
livenessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
name: cmii-uav-iot-dispatcher
ports:
- containerPort: 8080
name: pod-port
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: "2"
memory: 2Gi
requests:
cpu: 200m
memory: 200Mi
startupProbe:
failureThreshold: 5
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /cmii/logs
name: nfs-backend-log-volume
subPath: 命名空间/cmii-uav-iot-dispatcher
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: harborsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uav-iot-dispatcher
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uav-iot-dispatcher
namespace: 命名空间
spec:
ports:
- name: backend-tcp
port: 8080
protocol: TCP
targetPort: 8080
selector:
cmii.app: cmii-uav-iot-dispatcher
cmii.type: backend
sessionAffinity: None
type: ClusterIP

View File

@@ -0,0 +1,196 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uav-material-warehouse
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uav-material-warehouse
namespace: 命名空间
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
cmii.app: cmii-uav-material-warehouse
cmii.type: backend
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uav-material-warehouse
cmii.type: backend
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
containers:
- env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uav-material-warehouse
- name: CUST_JAVA_OPTS
value: -Xms200m -Xmx1500m -Dlog4j2.formatMsgNoLookups=true
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: "8080"
- name: BIZ_CONFIG_GROUP
value: uas-2.3
- name: SYS_CONFIG_GROUP
value: uas-2.3
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: IMAGE_NAME
value: 镜像仓库/cmii/cmii-uav-material-warehouse:2.2.0-pro-20251104
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-material-warehouse
divisor: "0"
resource: limits.cpu
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-material-warehouse
divisor: "0"
resource: limits.memory
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-material-warehouse
divisor: "0"
resource: requests.cpu
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-material-warehouse
divisor: "0"
resource: requests.memory
image: 镜像仓库/cmii/cmii-uav-material-warehouse:2.3.0-pro-20260225
imagePullPolicy: Always
livenessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
name: cmii-uav-material-warehouse
ports:
- containerPort: 8080
name: pod-port
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: "2"
memory: 2Gi
requests:
cpu: 200m
memory: 200Mi
startupProbe:
failureThreshold: 5
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /cmii/logs
name: nfs-backend-log-volume
subPath: 命名空间/cmii-uav-material-warehouse
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: harborsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uav-material-warehouse
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uav-material-warehouse
namespace: 命名空间
spec:
ports:
- name: backend-tcp
port: 8080
protocol: TCP
targetPort: 8080
selector:
cmii.app: cmii-uav-material-warehouse
cmii.type: backend
sessionAffinity: None
type: ClusterIP

View File

@@ -0,0 +1,125 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
cmii.app: cmii-uav-platform-uas
cmii.type: frontend
octopus.control: frontend-app-wdd
name: cmii-uav-platform-uas
namespace: 命名空间
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
cmii.app: cmii-uav-platform-uas
cmii.type: frontend
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uav-platform-uas
cmii.type: frontend
spec:
containers:
- env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uav-platform-uas
image: 镜像仓库/cmii/cmii-uav-platform-uas:2.3.4-xa-20260427
imagePullPolicy: Always
name: cmii-uav-platform-uas
ports:
- containerPort: 9528
name: platform-9528
protocol: TCP
resources:
limits:
cpu: "1"
memory: 1Gi
requests:
cpu: 50m
memory: 50Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /etc/nginx/conf.d/nginx.conf
name: nginx-conf
subPath: nginx.conf
- mountPath: /home/cmii-platform/dist/ingress-config.js
name: tenant-prefix
subPath: ingress-config.js
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: harborsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- configMap:
defaultMode: 420
items:
- key: nginx.conf
path: nginx.conf
name: nginx-cm
name: nginx-conf
- configMap:
defaultMode: 420
items:
- key: ingress-config.js
path: ingress-config.js
name: tenant-prefix-uas
name: tenant-prefix
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/version: uas-2.3
cmii.app: cmii-uav-platform-uas
cmii.type: frontend
octopus.control: frontend-app-wdd
name: cmii-uav-platform-uas
namespace: 命名空间
spec:
ports:
- name: web-svc-port
port: 9528
protocol: TCP
targetPort: 9528
selector:
cmii.app: cmii-uav-platform-uas
cmii.type: frontend
sessionAffinity: None
type: ClusterIP
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-uas
namespace: 命名空间
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "",
CloudHOST: "实际公网入口CloudHOST",
ApplicationShortName: "uas",
TdtToken: '0b0f172571340ced0900bf2fd08cdbfd',
AppClientId: "empty",
brandConfig: {
title: 'XXX低空应用公共服务平台'
},
MapConfigs:{
center: [115.941198, 39.049656]
}
}

View File

@@ -0,0 +1,127 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
cmii.app: cmii-uav-platform-uasms
cmii.type: frontend
octopus.control: frontend-app-wdd
name: cmii-uav-platform-uasms
namespace: 命名空间
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
cmii.app: cmii-uav-platform-uasms
cmii.type: frontend
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uav-platform-uasms
cmii.type: frontend
spec:
containers:
- env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uav-platform-uasms
image: 镜像仓库/cmii/cmii-uav-platform-uasms:2.3.4-xa-2026050801
imagePullPolicy: Always
name: cmii-uav-platform-uasms
ports:
- containerPort: 9528
name: platform-9528
protocol: TCP
resources:
limits:
cpu: "1"
memory: 1Gi
requests:
cpu: 50m
memory: 50Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /etc/nginx/conf.d/nginx.conf
name: nginx-conf
subPath: nginx.conf
- mountPath: /home/cmii-platform/dist/ingress-config.js
name: tenant-prefix
subPath: ingress-config.js
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: harborsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- configMap:
defaultMode: 420
items:
- key: nginx.conf
path: nginx.conf
name: nginx-cm
name: nginx-conf
- configMap:
defaultMode: 420
items:
- key: ingress-config.js
path: ingress-config.js
name: tenant-prefix-uasms
name: tenant-prefix
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/version: uas-2.3
cmii.app: cmii-uav-platform-uasms
cmii.type: frontend
octopus.control: frontend-app-wdd
name: cmii-uav-platform-uasms
namespace: 命名空间
spec:
ports:
- name: web-svc-port
port: 9528
protocol: TCP
targetPort: 9528
selector:
cmii.app: cmii-uav-platform-uasms
cmii.type: frontend
sessionAffinity: None
type: ClusterIP
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-uasms
namespace: 命名空间
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "",
CloudHOST: "实际公网入口CloudHOST",
ApplicationShortName: "uasms",
TdtToken: '1f905fbf3a730cecc43256a87afaa2b8',
AppClientId: "empty",
brandConfig: {
title: 'XXX低空应用公共服务平台',
name: '',
logoImg: './security.png'
},
MapConfigs:{
center: [115.941198, 39.049656]
}
}

View File

@@ -0,0 +1,212 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uav-sense-adapter
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uav-sense-adapter
namespace: 命名空间
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
cmii.app: cmii-uav-sense-adapter
cmii.type: backend
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uav-sense-adapter
cmii.type: backend
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
containers:
- env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uav-sense-adapter
- name: CUST_JAVA_OPTS
value: -Xms200m -Xmx1500m -Dlog4j2.formatMsgNoLookups=true
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: "8080"
- name: BIZ_CONFIG_GROUP
value: uas-2.3
- name: SYS_CONFIG_GROUP
value: uas-2.3
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: IMAGE_NAME
value: 镜像仓库/cmii/cmii-uav-sense-adapter:2.2.0-pro-20251031
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-sense-adapter
divisor: "0"
resource: limits.cpu
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-sense-adapter
divisor: "0"
resource: limits.memory
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-sense-adapter
divisor: "0"
resource: requests.cpu
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-sense-adapter
divisor: "0"
resource: requests.memory
image: 镜像仓库/cmii/cmii-uav-sense-adapter:2.2.0-pro-20251031
imagePullPolicy: Always
livenessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
name: cmii-uav-sense-adapter
ports:
- name: pod-port
containerPort: 8080
protocol: TCP
- name: tcp8010
containerPort: 8010
protocol: TCP
- name: udp8011
containerPort: 8011
protocol: UDP
readinessProbe:
failureThreshold: 3
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: "2"
memory: 2Gi
requests:
cpu: 200m
memory: 200Mi
startupProbe:
failureThreshold: 5
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /cmii/logs
name: nfs-backend-log-volume
subPath: 命名空间/cmii-uav-sense-adapter
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: harborsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/app-version: uas-2.3
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uav-sense-adapter
cmii.type: backend
octopus/control: backend-app-1.0.0
name: cmii-uav-sense-adapter
namespace: 命名空间
spec:
ports:
- name: backend-tcp
protocol: TCP
port: 8080
targetPort: 8080
- name: tcp-8010
protocol: TCP
port: 8010
targetPort: 8010
nodePort: 31554
- name: tcp-8011
protocol: UDP
port: 8011
targetPort: 8011
nodePort: 31556
selector:
cmii.app: cmii-uav-sense-adapter
cmii.type: backend
sessionAffinity: None
type: NodePort

View File

@@ -0,0 +1,111 @@
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: helm-minio
namespace: 命名空间
spec:
persistentVolumeClaimRetentionPolicy:
whenDeleted: Retain
whenScaled: Retain
podManagementPolicy: OrderedReady
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: helm-minio
serviceName: helm-minio
template:
metadata:
creationTimestamp: null
labels:
app: helm-minio
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: minio-deploy
operator: In
values:
- "true"
containers:
- args:
- minio server /data --console-address ":9001"
command:
- /bin/sh
- -c
env:
- name: MINIO_ACCESS_KEY
value: cmii
- name: MINIO_SECRET_KEY
value: B#923fC7mk
image: 镜像仓库/cmii/minio:RELEASE.2023-06-02T23-17-26Z
imagePullPolicy: IfNotPresent
name: minio
ports:
- containerPort: 9000
name: api
protocol: TCP
- containerPort: 9001
name: console
protocol: TCP
resources:
limits:
cpu: "2"
memory: 2Gi
requests:
cpu: 200m
memory: 200Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /data
name: data
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: harborsecret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- hostPath:
path: /var/lib/docker/minio-pv/
type: ""
name: data
updateStrategy:
rollingUpdate:
partition: 0
type: RollingUpdate
---
apiVersion: v1
kind: Service
metadata:
name: helm-minio
namespace: 命名空间
spec:
clusterIP: 10.74.247.190
clusterIPs:
- 10.74.247.190
externalTrafficPolicy: Cluster
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: api
nodePort: 39000
port: 9000
protocol: TCP
targetPort: 9000
- name: console
nodePort: 39001
port: 9001
protocol: TCP
targetPort: 9001
selector:
app: helm-minio
sessionAffinity: None
type: NodePort

View File

@@ -0,0 +1,50 @@
upstream cc_server {
ip_hash;
server 192.168.3.31:30500;
server 192.168.3.32:30500;
server 192.168.3.33:30500;
}
server {
listen 8088;
server_name localhost;
location / {
proxy_pass http://cc_server;
client_max_body_size 5120m;
client_body_buffer_size 5120m;
client_body_timeout 6000s;
proxy_send_timeout 10000s;
proxy_read_timeout 10000s;
proxy_connect_timeout 600s;
proxy_max_temp_file_size 5120m;
proxy_request_buffering on;
proxy_buffering off;
proxy_buffer_size 4k;
proxy_buffers 4 12k;
proxy_set_header Host fake-domain.ahyd-app.io;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 高德内网代理
location /_AMapService/ {
proxy_pass https://restapi.amap.com/;
}
location /_AMapService/v4/map/styles {
set $args "$args&jscode=cf66cea95bdcdfcf8048456b36f357a1";
proxy_pass https://webapi.amap.com/v4/ap/styles;
}
location /_AMapService/ {
set $args "$args&jscode=cf66cea95bdcdfcf8048456b36f357a1";
proxy_pass https://restapi.amap.com/;
}
location ~ ^/.*/(actuator|swagger-resources|api-docs|env|ping|health)(/|$) {
return 403;
}
}

View File

@@ -0,0 +1,4 @@
命名空间
镜像仓库
实际公网入口CloudHOST
XXX低空应用公共服务平台

View File

@@ -0,0 +1,10 @@
https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-uas-gateway=2.3.0-pro-20260226=2026-03-13=986.tar.gz
https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-uas-lifecycle=2.3.0-pro-20260304=2026-03-13=626.tar.gz
https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-uas-perception-live=2.3.0-pro-20260226=2026-03-13=110.tar.gz
https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-uas-datahub=2.3.0-comp=2026-04-11=742.tar.gz
https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-uav-material-warehouse=2.3.0-pro-20260225=2026-03-13=879.tar.gz
https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-uav-data-center=2.3.0-pro-20260225=2026-03-13=358.tar.gz
https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-uav-platform-uasms=2.3.0-pro-20260403=2026-04-03=450.tar.gz
https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-uav-platform-uas=2.3.0-pro-20260403=2026-04-03=864.tar.gz
https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-uas-fusion=2.2.0-112=2026-03-13=454.tar.gz

View File

@@ -0,0 +1,618 @@
---
# Source: cmii-live-services/templates/cmii-live-helper-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: 命名空间
name: cmii-live-helper-config
labels:
app: cmii-live-helper
chart: cmii-live-services-1.0.0
release: cmii-live
data:
config.yaml: |
app:
port: 7080
workers: 4
log:
level: INFO
client:
zlm: "http://cmii-live-zlm:7088"
downloader:
allow_domains: all
---
---
# Source: cmii-live-services/templates/live-op-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: 命名空间
name: cmii-live-operator-config
labels:
app: cmii-live-operator
chart: cmii-live-services-1.0.0
release: cmii-live
data:
application.yaml: |
debug: false
server:
port: 7086
spring:
web:
resources:
static-locations: classpath:/static/
main:
allow-bean-definition-overriding: true
allow-circular-references: true
application:
name: cmii-live-operator
thymeleaf:
check-template-location: false
cache: false
platform:
info:
name: cmii-live-operator
description: cmii-live-operator
version: 5.8.0
scanPackage: com.cmii.live.op
jackson:
time-zone: GMT+8
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://helm-mysql:3306/cmii_live_operator?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: k8s_admin
password: fP#UaH6qQ3)8
druid:
initial-size: 10
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1
test-while-idle: true
test-on-borrow: false
test-on-return: false
use-ping-method: false
keep-alive: true
redis:
host: helm-redis-master
port: 6379
database: 1
password: Mcache@4522
live:
sync:
pool:
monitor:
enabled: false
core: 10
max: 20
queue: 1
keepalive: 20
logging:
config: classpath:logback-operator.xml
level:
root: info
com.cmii.live.op.mapper: info
mybatis-plus:
global-config:
banner: false
knife4j:
enable: true
---
---
# Source: cmii-live-services/templates/live-proxy-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: 命名空间
name: cmii-live-proxy-config
labels:
app: cmii-live-proxy
chart: cmii-live-services-1.0.0
release: cmii-live
data:
application.yaml: |
server:
port: 7081
live:
proxy:
ffmpeg:
ffmpeg-path: /usr/bin/ffmpeg
ffprobe-path: /usr/bin/ffprobe
ffplay-path: /usr/bin/ffplay
check-win-pid: tasklist /FI "PID eq %s " /FO LIST
check-unix-pid: ps -p %s
os-name: windows
upload:
path: /proxy/uploads
src-all-size: 4294967296
dest-all-size: 4294967296
ws:
url: "固定主机内网IP:37081"
minio:
endpoint: http://helm-minio:9000
access-key: cmii
secret-key: B#923fC7mk
bucket-name: ilm-detect
spring:
platform:
info:
name: cmii-live-proxy
description: ffmpeg服务小工具
version: 1.0.3
scanPackage: com.cmii.live.proxy.web.controller
profiles:
active: local
jackson:
time-zone: GMT+8
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER
thymeleaf:
check-template-location: false
cache: false
servlet:
multipart:
max-file-size: 1024MB
max-request-size: 1024MB
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
druid:
url: jdbc:mysql://helm-mysql:3306/cmii_live_proxy?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: k8s_admin
password: fP#UaH6qQ3)8
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
max-evictable-idle-time-millis: 600000
validation-query: SELECT 1
test-while-idle: true
test-on-borrow: false
test-on-return: false
filters: stat,wall,slf4j
connection-properties: connectTimeout=10000;socketTimeout=30000
redis:
host: helm-redis-master
port: 6379
password: Mcache@4522
database: 3
timeout: 10s
lettuce:
pool:
min-idle: 0
max-idle: 10
max-active: 10
max-wait: -1ms
springdoc:
api-docs:
enabled: true
swagger-ui:
enabled: true
mybatis-plus:
global-config:
banner: false
logging:
config: classpath:logback-proxy.xml
level:
com.cmii.live.proxy.web.mapper: info
---
---
# Source: cmii-live-services/templates/wvp-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: 命名空间
name: cmii-live-wvp-config
labels:
app: wvp
chart: cmii-live-services-1.0.0
release: cmii-live
data:
application.yaml: |
spring:
cache:
type: redis
thymeleaf:
cache: false
mvc:
async:
request-timeout: 20000
servlet:
multipart:
max-file-size: 10MB
max-request-size: 100MB
data:
redis:
host: helm-redis-master
port: 6379
database: 2
password: Mcache@4522
timeout: 10000
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://helm-mysql:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
username: k8s_admin
password: fP#UaH6qQ3)8
server:
port: 7082
ssl:
enabled: false
sip:
ip: ${NODE_IP}
show-ip: ${NODE_IP}
port: 7060
domain: 5101000049
id: "51010000492000000228"
password: 035c7GB5cc
register-time-interval: 60
ptz-speed: 50
keepalliveToOnline: true
alarm: true
timeout: 1000
media:
id: koisi_gb_228
ip: 127.0.0.1
http-port: 7088
http-ssl-port: 0
flv-port: 7088
flv-ssl-port: 7089
ws-flv-port: 7088
ws-flv-ssl-port: 7089
rtp-proxy-port: 7088
rtmp-port: 7089
rtmp-ssl-port: 0
rtsp-port: 7554
rtsp-ssl-port: 0
auto-config: false
secret: 035c7GB5cc
rtp:
enable: true
port-range: 7200,7250
send-port-range: 30800,30990
record-path: /opt/media/bin/www/record/
record-day: 7
record-assist-port: 0
user-settings:
auto-apply-play: true
play-timeout: 30000
wait-track: false
record-push-live: false
record-sip: true
stream-on-demand: true
interface-authentication: true
broadcast-for-platform: TCP-PASSIVE
push-stream-after-ack: true
send-to-platforms-when-id-lost: true
interface-authentication-excludes:
- /api/**
push-authority: true
logging:
config: classpath:logback-spring.xml
---
---
# Source: cmii-live-services/templates/zlm-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: 命名空间
name: cmii-live-zlm-config
labels:
app: zlm
chart: cmii-live-services-1.0.0
release: cmii-live
data:
zlm.ini: |
[api]
apiDebug = 0
secret = 035c7GB5cc
snapRoot = ./www/snap/
defaultSnap = ./www/logo.png
downloadRoot = ./www
[ffmpeg]
bin = /usr/bin/ffmpeg
cmd = %s -re -i %s -c:a aac -strict -2 -ar 44100 -ab 48k -c:v libx264 -f flv %s
log = ./ffmpeg/ffmpeg.log
restart_sec = 0
snap = %s -rtsp_transport tcp -i %s -y -f mjpeg -frames:v 1 %s
[protocol]
modify_stamp = 2
enable_audio = 1
add_mute_audio = 0
auto_close = 0
continue_push_ms = 3000
paced_sender_ms = 0
enable_hls = 1
enable_hls_fmp4 = 0
enable_rtmp = 1
enable_ts = 1
enable_fmp4 = 1
enable_rtsp = 1
enable_mp4 = 0
mp4_as_player = 0
mp4_max_second = 3600
mp4_save_path = ./www
hls_save_path = ./www/zlm/hls
hls_demand = 0
rtsp_demand = 0
rtmp_demand = 0
ts_demand = 0
fmp4_demand = 0
[general]
enableVhost = 0
flowThreshold = 1024
enable_ffmpeg_log = 0
listen_ip = ::
maxStreamWaitMS = 0
streamNoneReaderDelayMS = 120000
resetWhenRePlay = 1
mergeWriteMS = 0
mediaServerId = koisi_gb_228
wait_audio_track_data_ms = 1000
wait_track_ready_ms = 8000
wait_add_track_ms = 2000
unready_frame_cache = 96
check_nvidia_dev = 1
broadcast_player_count_changed = 0
[hls]
fileBufSize = 65536
segDur = 10
segNum = 3
segDelay = 0
segRetain = 5
broadcastRecordTs = 1
deleteDelaySec = 10
segKeep = 0
fastRegister = 0
[hook]
enable = 1
on_flow_report =
on_http_access =
# ZLM → Live Operator
on_play = http://cmii-live-operator:7086/hooks/on_play
on_publish = http://cmii-live-operator:7086/hooks/on_push
on_stream_changed = http://cmii-live-operator:7086/hooks/on_stream_changed
# ZLM → WVP
on_stream_none_reader = http://127.0.0.1:7082/index/hook/on_stream_none_reader
on_stream_not_found = http://127.0.0.1:7082/index/hook/on_stream_not_found
on_rtp_server_timeout = http://127.0.0.1:7082/index/hook/on_rtp_server_timeout
on_send_rtp_stopped = http://127.0.0.1:7082/index/hook/on_send_rtp_stopped
on_server_started = http://127.0.0.1:7082/index/hook/on_server_started
on_server_keepalive = http://127.0.0.1:7082/index/hook/on_server_keepalive
on_record_mp4 = http://127.0.0.1:7082/index/hook/on_record_mp4
on_server_exited =
on_rtsp_auth =
on_rtsp_realm =
on_shell_login =
# ZLM → ZLM OSS
on_record_ts = http://127.0.0.1:7084/hooks/on_record_ts
stream_changed_schemas = rtsp/rtmp/fmp4/ts/hls/hls.fmp4
timeoutSec = 30
alive_interval = 10.0
retry = 1
retry_delay = 3.0
[cluster]
origin_url =
timeout_sec = 15
retry_count = 3
[http]
port = 7088
sslport = 7089
charSet = utf-8
keepAliveSecond = 30
maxReqSize = 40960
notFound = <html><head><title>404 Not Found</title></head><body><div>404 Not Found</div></body></html>
rootPath = ./www
sendBufSize = 65536
dirMenu = 1
virtualPath =
forbidCacheSuffix =
allow_cross_domains = 1
allow_ip_range = ::1,127.0.0.1,172.1.0.0-172.31.255.255,192.168.0.0-192.168.255.255,10.0.0.0-10.255.255.255
[multicast]
addrMax = 239.255.255.255
addrMin = 239.0.0.0
udpTTL = 64
[record]
appName = record
fileBufSize = 65536
sampleMS = 500
fastStart = 0
fileRepeat = 0
enableFmp4 = 0
[rtmp]
port = 7935
sslport = 0
handshakeSecond = 15
keepAliveSecond = 15
directProxy = 1
enhanced = 0
[rtp]
audioMtuSize = 600
videoMtuSize = 1400
rtpMaxSize = 10
lowLatency = 0
h264_stap_a = 1
[rtp_proxy]
port = 7100
port_range = 7200-7250
dumpDir =
timeoutSec = 5
h264_pt = 98
h265_pt = 99
ps_pt = 96
opus_pt = 100
gop_cache = 1
rtp_g711_dur_ms = 100
udp_recv_socket_buffer = 4194304
[rtc]
bfilter=0
datachannel_echo=0
maxRtpCacheMS=5000
maxRtpCacheSize=2048
externIP = $(NODE_IP)
port = 7090
tcpPort = 7090
timeoutSec = 30
rembBitRate = 0
preferredCodecA = PCMA,PCMU,opus,mpeg4-generic
preferredCodecV = H264,H265,AV1,VP9,VP8
start_bitrate = 0
max_bitrate = 0
min_bitrate = 0
maxNackMS = 4000
rtpCacheCheckInterval = 96
nackMaxSize = 2048
nackMaxMS = 3000
nackMaxCount = 15
nackIntervalRatio = 1.0
nackRtpSize = 8
[srt]
port = 7556
timeoutSec = 5
latencyMul = 4
pktBufSize = 8192
passPhrase=
[rtsp]
port = 7554
sslport = 0
authBasic = 0
directProxy = 1
handshakeSecond = 15
keepAliveSecond = 15
lowLatency = 1
rtpTransportType = -1
[shell]
maxReqSize = 1024
port = 0
---
---
# Source: cmii-live-services/templates/zlm-oss-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: 命名空间
name: cmii-live-zlm-oss-config
labels:
app: media-suite
chart: cmii-live-services-1.0.0
release: cmii-live
data:
config.yaml: |
app:
env: default
listen:
host: 0.0.0.0
port: 7084
workers: 4
thread_pool: 8
log:
level: INFO
onfile_logger_interval: 10
backup_on_fails: true
skip_on_initializing_seconds: 4
skip_hubs: "Hangar, ai-5g-a"
file_dir:
shared: "/cmii/share/hls"
backup: "/cmii/backup"
debug:
save_all: false
save_to: "UASMS"
max_duration: 120
minio:
endpoint: "http://helm-minio:9000"
access_key: "cmii"
secret_key: "B#923fC7mk"
mysql:
host: helm-mysql
port: 3306
username: k8s_admin
password: fP#UaH6qQ3)8
redis:
host: helm-redis-master
port: 6379
database: 1
password: Mcache@4522
rabbitmq:
host: helm-rabbitmq
port: 5672
username: admin
password: nYcRN91r._hj
platforms:
live_op:
db_schema: "cmii_live_operator"
old_cmlc:
cloud_live: "cmii-uav-cloud-live"
quota: false
oss_bucket: "ilm-detect"
meta:
src_id: "1323096648758464518"
user_id: 0
company_id: 0
uasms:
scope_prefix: "UASMS"
oss_bucket: "ilm-detect"
meta:
src_id: "1323096648758464523"
platform: "REGULATOR"
user_id: 0
lite:
scope_prefix: "LITE"
oss_bucket: "ilm-detect"
routing_key: "sky.live.video"
meta:
src_id: "1111111112222222222"
platform: "LITE"
user_id: 0

View File

@@ -0,0 +1,73 @@
---
# Source: cmii-live-services/templates/cmii-live-helper-deployment.yaml
apiVersion: v1
kind: Service
metadata:
namespace: 命名空间
name: cmii-live-helper
labels:
app: cmii-live-helper
chart: cmii-live-services-1.0.0
release: cmii-live
spec:
type: NodePort
ports:
- name: http
port: 7080
targetPort: http
nodePort: 37080
protocol: TCP
selector:
app: cmii-live-helper
release: cmii-live
---
# Source: cmii-live-services/templates/cmii-live-helper-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: 命名空间
name: cmii-live-helper
labels:
app: cmii-live-helper
chart: cmii-live-services-1.0.0
release: cmii-live
spec:
replicas: 1
selector:
matchLabels:
app: cmii-live-helper
release: cmii-live
template:
metadata:
labels:
app: cmii-live-helper
release: cmii-live
spec:
containers:
- name: cmii-live-helper
image: "镜像仓库/cmii/cmii-hls-downloader:v2.7.4"
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 7080
protocol: TCP
env:
- name: ALLOW_DOWNLOAD
value: "all"
volumeMounts:
- name: config
mountPath: /cmii/cmii-live-helper/config.yaml
subPath: config.yaml
resources:
limits:
cpu: "1"
memory: 1Gi
requests:
cpu: 500m
memory: 512Mi
volumes:
- name: config
configMap:
name: cmii-live-helper-config
imagePullSecrets:
- name: harborsecret

View File

@@ -0,0 +1,105 @@
---
# Source: cmii-live-services/templates/cmii-live-op-deployment.yaml
apiVersion: v1
kind: Service
metadata:
namespace: 命名空间
name: cmii-live-operator
labels:
app: cmii-live-operator
chart: cmii-live-services-1.0.0
release: cmii-live
spec:
type: NodePort
ports:
- name: http
port: 7086
targetPort: http
nodePort: 37086
protocol: TCP
selector:
app: cmii-live-operator
release: cmii-live
---
# Source: cmii-live-services/templates/cmii-live-op-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: 命名空间
name: cmii-live-operator
labels:
app: cmii-live-operator
chart: cmii-live-services-1.0.0
release: cmii-live
spec:
replicas: 1
selector:
matchLabels:
app: cmii-live-operator
release: cmii-live
template:
metadata:
labels:
app: cmii-live-operator
release: cmii-live
spec:
containers:
- name: cmii-live-operator
image: "镜像仓库/cmii/cmii-live-operator:v5.8.0"
imagePullPolicy: Always
ports:
- name: http
containerPort: 7086
protocol: TCP
env:
- name: LIVE_IP_PUBLIC
value: "固定主机内网IP"
- name: LIVE_IP_PRIVATE
value: "固定主机内网IP"
- name: LIVE_OP_PORT_HTTP
value: "7086"
- name: LIVE_WVP_PORT_HTTP
value: "7082"
- name: LIVE_ZLM_PORT_HTTP
value: "7088"
- name: LIVE_ZLM_PORT_HTTPS
value: "7089"
- name: LIVE_ZLM_PORT_RTMP
value: "7935"
- name: LIVE_ZLM_PORT_RTSP
value: "7554"
- name: LIVE_ZLM_PORT_SRT
value: "7556"
- name: LIVE_ZLM_API_PASSWD
value: "035c7GB5cc"
- name: OSS_ENDPOINT
value: "http://helm-minio:9000"
- name: OSS_AK
value: "cmii"
- name: OSS_SK
value: "B#923fC7mk"
- name: RABBITMQ_HOST
value: "helm-rabbitmq"
- name: RABBITMQ_USERNAME
value: "admin"
- name: RABBITMQ_PASSWORD
value: "nYcRN91r._hj"
- name: RABBITMQ_PORT
value: "5672"
volumeMounts:
- name: config
mountPath: /cmii/application.yaml
subPath: application.yaml
resources:
limits:
cpu: "2"
memory: 2Gi
requests:
cpu: "1"
memory: 1Gi
volumes:
- name: config
configMap:
name: cmii-live-operator-config
imagePullSecrets:
- name: harborsecret

View File

@@ -0,0 +1,89 @@
---
# Source: cmii-live-services/templates/cmii-live-proxy-deployment.yaml
apiVersion: v1
kind: Service
metadata:
namespace: 命名空间
name: cmii-live-proxy
labels:
app: cmii-live-proxy
chart: cmii-live-services-1.0.0
release: cmii-live
spec:
type: NodePort
ports:
- name: http
port: 7081
targetPort: http
nodePort: 37081
protocol: TCP
selector:
app: cmii-live-proxy
release: cmii-live
---
# Source: cmii-live-services/templates/cmii-live-proxy-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: 命名空间
name: cmii-live-proxy
labels:
app: cmii-live-proxy
chart: cmii-live-services-1.0.0
release: cmii-live
spec:
replicas: 1
selector:
matchLabels:
app: cmii-live-proxy
release: cmii-live
template:
metadata:
labels:
app: cmii-live-proxy
release: cmii-live
spec:
containers:
- name: cmii-live-proxy
image: "镜像仓库/cmii/cmii-live-proxy:v1.0.3"
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 7081
protocol: TCP
env:
- name: LIVE_IP_PRIVATE
value: "固定主机内网IP"
- name: LIVE_ZLM_PORT_HTTP
value: "7088"
- name: LIVE_ZLM_PORT_HTTPS
value: "7089"
- name: LIVE_ZLM_PORT_RTMP
value: "7935"
- name: LIVE_ZLM_PORT_RTSP
value: "7554"
- name: LIVE_OP_PORT_HTTP
value: "37086"
volumeMounts:
- name: config
mountPath: /proxy/application.yaml
subPath: application.yaml
- name: shared-data
mountPath: /cmii/uploads
subPath: uploads
resources:
limits:
cpu: "1"
memory: 2Gi
requests:
cpu: "1"
memory: 1Gi
volumes:
- name: config
configMap:
name: cmii-live-proxy-config
- name: shared-data
persistentVolumeClaim:
claimName: cmii-live-shared-data-pvc
imagePullSecrets:
- name: harborsecret

View File

@@ -0,0 +1,369 @@
---
# Source: cmii-live-services/templates/media-suite-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: 命名空间
name: cmii-live-media-suite
labels:
app: media-suite
chart: cmii-live-services-1.0.0
release: cmii-live
spec:
replicas: 1
selector:
matchLabels:
app: media-suite
release: cmii-live
template:
metadata:
labels:
app: media-suite
release: cmii-live
spec:
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
# 配置到固定node上
nodeSelector:
kubernetes.io/hostname: "固定主机hostname"
containers:
# WVP Container
- name: wvp
image: "镜像仓库/cmii/wvp:v2.7.4"
imagePullPolicy: IfNotPresent
ports:
- name: wvp-http
containerPort: 7082
hostPort: 7082
protocol: TCP
- name: wvp-sip
containerPort: 7060
hostPort: 7060
protocol: UDP
env:
- name: TZ
value: "Asia/Shanghai"
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
volumeMounts:
- name: wvp-config
mountPath: /home/koisi/wvp.yaml
subPath: application.yaml
resources:
limits:
cpu: "2"
memory: 4Gi
requests:
cpu: "1"
memory: 2Gi
# ZLM Container
- name: zlm
image: "镜像仓库/cmii/zlm:v2.7.5"
imagePullPolicy: IfNotPresent
ports:
- name: zlm-http
containerPort: 7088
hostPort: 7088
protocol: TCP
- name: zlm-https
containerPort: 7089
hostPort: 7089
protocol: TCP
- name: zlm-rtmp
containerPort: 7935
hostPort: 7935
protocol: TCP
- name: zlm-rtsp
containerPort: 7554
hostPort: 7554
protocol: TCP
- name: zlm-webrtc-tcp
containerPort: 7090
hostPort: 7090
protocol: TCP
- name: zlm-webrtc-udp
containerPort: 7090
hostPort: 7090
protocol: UDP
- name: zlm-srt
containerPort: 7556
hostPort: 7556
protocol: TCP
- name: zlm-rtp-proxy
containerPort: 7100
hostPort: 7100
protocol: UDP
- name: zlm-rtp-7200
containerPort: 7200
hostPort: 7200
protocol: UDP
- name: zlm-rtp-7201
containerPort: 7201
hostPort: 7201
protocol: UDP
- name: zlm-rtp-7202
containerPort: 7202
hostPort: 7202
protocol: UDP
- name: zlm-rtp-7203
containerPort: 7203
hostPort: 7203
protocol: UDP
- name: zlm-rtp-7204
containerPort: 7204
hostPort: 7204
protocol: UDP
- name: zlm-rtp-7205
containerPort: 7205
hostPort: 7205
protocol: UDP
- name: zlm-rtp-7206
containerPort: 7206
hostPort: 7206
protocol: UDP
- name: zlm-rtp-7207
containerPort: 7207
hostPort: 7207
protocol: UDP
- name: zlm-rtp-7208
containerPort: 7208
hostPort: 7208
protocol: UDP
- name: zlm-rtp-7209
containerPort: 7209
hostPort: 7209
protocol: UDP
- name: zlm-rtp-7210
containerPort: 7210
hostPort: 7210
protocol: UDP
- name: zlm-rtp-7211
containerPort: 7211
hostPort: 7211
protocol: UDP
- name: zlm-rtp-7212
containerPort: 7212
hostPort: 7212
protocol: UDP
- name: zlm-rtp-7213
containerPort: 7213
hostPort: 7213
protocol: UDP
- name: zlm-rtp-7214
containerPort: 7214
hostPort: 7214
protocol: UDP
- name: zlm-rtp-7215
containerPort: 7215
hostPort: 7215
protocol: UDP
- name: zlm-rtp-7216
containerPort: 7216
hostPort: 7216
protocol: UDP
- name: zlm-rtp-7217
containerPort: 7217
hostPort: 7217
protocol: UDP
- name: zlm-rtp-7218
containerPort: 7218
hostPort: 7218
protocol: UDP
- name: zlm-rtp-7219
containerPort: 7219
hostPort: 7219
protocol: UDP
- name: zlm-rtp-7220
containerPort: 7220
hostPort: 7220
protocol: UDP
- name: zlm-rtp-7221
containerPort: 7221
hostPort: 7221
protocol: UDP
- name: zlm-rtp-7222
containerPort: 7222
hostPort: 7222
protocol: UDP
- name: zlm-rtp-7223
containerPort: 7223
hostPort: 7223
protocol: UDP
- name: zlm-rtp-7224
containerPort: 7224
hostPort: 7224
protocol: UDP
- name: zlm-rtp-7225
containerPort: 7225
hostPort: 7225
protocol: UDP
- name: zlm-rtp-7226
containerPort: 7226
hostPort: 7226
protocol: UDP
- name: zlm-rtp-7227
containerPort: 7227
hostPort: 7227
protocol: UDP
- name: zlm-rtp-7228
containerPort: 7228
hostPort: 7228
protocol: UDP
- name: zlm-rtp-7229
containerPort: 7229
hostPort: 7229
protocol: UDP
- name: zlm-rtp-7230
containerPort: 7230
hostPort: 7230
protocol: UDP
- name: zlm-rtp-7231
containerPort: 7231
hostPort: 7231
protocol: UDP
- name: zlm-rtp-7232
containerPort: 7232
hostPort: 7232
protocol: UDP
- name: zlm-rtp-7233
containerPort: 7233
hostPort: 7233
protocol: UDP
- name: zlm-rtp-7234
containerPort: 7234
hostPort: 7234
protocol: UDP
- name: zlm-rtp-7235
containerPort: 7235
hostPort: 7235
protocol: UDP
- name: zlm-rtp-7236
containerPort: 7236
hostPort: 7236
protocol: UDP
- name: zlm-rtp-7237
containerPort: 7237
hostPort: 7237
protocol: UDP
- name: zlm-rtp-7238
containerPort: 7238
hostPort: 7238
protocol: UDP
- name: zlm-rtp-7239
containerPort: 7239
hostPort: 7239
protocol: UDP
- name: zlm-rtp-7240
containerPort: 7240
hostPort: 7240
protocol: UDP
- name: zlm-rtp-7241
containerPort: 7241
hostPort: 7241
protocol: UDP
- name: zlm-rtp-7242
containerPort: 7242
hostPort: 7242
protocol: UDP
- name: zlm-rtp-7243
containerPort: 7243
hostPort: 7243
protocol: UDP
- name: zlm-rtp-7244
containerPort: 7244
hostPort: 7244
protocol: UDP
- name: zlm-rtp-7245
containerPort: 7245
hostPort: 7245
protocol: UDP
- name: zlm-rtp-7246
containerPort: 7246
hostPort: 7246
protocol: UDP
- name: zlm-rtp-7247
containerPort: 7247
hostPort: 7247
protocol: UDP
- name: zlm-rtp-7248
containerPort: 7248
hostPort: 7248
protocol: UDP
- name: zlm-rtp-7249
containerPort: 7249
hostPort: 7249
protocol: UDP
- name: zlm-rtp-7250
containerPort: 7250
hostPort: 7250
protocol: UDP
env:
- name: TZ
value: "Asia/Shanghai"
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
volumeMounts:
- name: zlm-config
mountPath: /home/koisi/zlm.ini
subPath: zlm.ini
- name: shared-data
mountPath: /home/koisi/zlm/www/zlm/hls
subPath: hls
resources:
limits:
cpu: "2"
memory: 4Gi
requests:
cpu: "2"
memory: 2Gi
# ZLM-OSS Container
- name: zlm-oss
image: "镜像仓库/cmii/zlm-oss-adaptor:v2.7.5"
imagePullPolicy: IfNotPresent
ports:
- name: zlm-oss-http
containerPort: 7084
hostPort: 7084
protocol: TCP
volumeMounts:
- name: zlm-oss-config
mountPath: /cmii/oss-adaptor/boot/config.yaml
subPath: config.yaml
- name: shared-data
mountPath: /cmii/share/hls
subPath: hls
resources:
limits:
cpu: "2"
memory: 2Gi
requests:
cpu: "1"
memory: 1Gi
volumes:
- name: wvp-config
configMap:
name: cmii-live-wvp-config
- name: zlm-config
configMap:
name: cmii-live-zlm-config
- name: zlm-oss-config
configMap:
name: cmii-live-zlm-oss-config
- name: shared-data
persistentVolumeClaim:
claimName: cmii-live-shared-data-pvc
imagePullSecrets:
- name: harborsecret

View File

@@ -0,0 +1,30 @@
location /live-play/flv/ {
proxy_pass http://ZLM_HOST_IP:7088/;
}
location /live-play/hls/ {
proxy_pass http://ZLM_HOST_IP:7088/zlm/hls/;
}
location /live-play/webrtc {
proxy_pass http://ZLM_HOST_IP:7088/index/api/webrtc;
}
location /live-play/whip {
proxy_pass http://ZLM_HOST_IP:7088/index/api/whip;
}
location /live-replay/hls-by-time-range/ {
proxy_pass http://MASTET_IN_IP:37086/api/v2/storage/hls-by-time-range/;
}
location /live-replay/fetch_file/ {
proxy_pass http://MASTET_IN_IP:37086/api/v2/storage/fetch_file/;
}
location /live-replay/hls-downloader {
proxy_pass http://MASTET_IN_IP:37080/hls-downloader;
}
zlmIp: zlm的nodeIp
zlmHttpPort 对应values.yaml中的 zlm.ports.http的值
liveOpIp: live-op服务的nodeIp
liveOpHttpPort 对应values.yaml中 liveOp.port,如果是nodePort就是 network.liveOpNodePort
liveHelperIp live-helper服务的nodeIp
liveHelperHttpPort: 对应values.yaml中 liveHelper.port,如果是nodePort就是 network.liveHelperNodePort

View File

@@ -0,0 +1,19 @@
---
# Source: cmii-live-services/templates/pvc.yaml
# 单个共享 PVC通过 subPath 区分不同服务的数据
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: 命名空间
name: cmii-live-shared-data-pvc
labels:
app: media-suite
chart: cmii-live-services-1.0.0
release: cmii-live
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
storageClassName: nfs-prod-distribute

View File

@@ -0,0 +1,4 @@
命名空间
镜像仓库
固定主机内网IP
固定主机hostname

View File

@@ -0,0 +1,15 @@
harbor.cdcyy.com.cn/cmii/cmlc-live/zlm:v2.7.5
harbor.cdcyy.com.cn/cmii/cmlc-live/wvp:v2.7.4
harbor.cdcyy.com.cn/cmii/cmlc-live/cmii-live-operator:v5.8.0
harbor.cdcyy.com.cn/cmii/cmlc-live/zlm-oss-adaptor:v2.7.5
harbor.cdcyy.com.cn/cmii/cmlc-live/cmii-hls-downloader:v2.7.4
harbor.cdcyy.com.cn/cmii/cmlc-live/cmii-live-proxy:v1.0.3
zlm=v2.7.5=2026-04-29=235.tar.gz
wvp=v2.7.4=2026-04-29=520.tar.gz
cmii-live-operator=v5.8.0=2026-04-29=624.tar.gz
zlm-oss-adaptor=v2.7.5=2026-04-29=153.tar.gz
cmii-hls-downloader=v2.7.4=2026-04-29=894.tar.gz
cmii-live-proxy=v1.0.3=2026-04-29=433.tar.gz

View File

@@ -0,0 +1,215 @@
kind: Deployment
apiVersion: apps/v1
metadata:
name: cmii-fly-center
namespace: 命名空间
labels:
app.kubernetes.io/app-version: 6.0.0
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-fly-center
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
replicas: 1
selector:
matchLabels:
cmii.app: cmii-fly-center
cmii.type: backend
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-fly-center
cmii.type: backend
spec:
volumes:
- name: application-k8s
configMap:
name: cmii-fly-center-cm
items:
- key: application-k8s.yml
path: application-k8s.yml
defaultMode: 420
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
containers:
- name: cmii-fly-center
image: 镜像仓库/cmii/cmii-fly-center:2.0.0-031102
ports:
- name: pod-port
containerPort: 8080
protocol: TCP
env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-fly-center
- name: CUST_JAVA_OPTS
value: '-Xms2000m -Xmx4500m -Dlog4j2.formatMsgNoLookups=true'
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: '8080'
- name: BIZ_CONFIG_GROUP
value: 5.7.0
- name: SYS_CONFIG_GROUP
value: 5.7.0
- name: IMAGE_VERSION
value: 5.7.0
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: SPRING_PROFILES_ACTIVE
value: k8s,db,cache,message
resources:
limits:
cpu: '4'
memory: 6Gi
requests:
cpu: '4'
memory: 2Gi
volumeMounts:
- name: application-k8s
mountPath: /cmii/config/application-k8s.yml
subPath: application-k8s.yml
- name: nfs-backend-log-volume
mountPath: /cmii/logs
subPath: uavcloud-devflight/cmii-fly-center
livenessProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
timeoutSeconds: 5
periodSeconds: 20
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
timeoutSeconds: 5
periodSeconds: 20
successThreshold: 1
failureThreshold: 3
startupProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
timeoutSeconds: 3
periodSeconds: 20
successThreshold: 1
failureThreshold: 5
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
imagePullSecrets:
- name: harborsecret
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
---
kind: Service
apiVersion: v1
metadata:
name: cmii-fly-center
namespace: 命名空间
labels:
app.kubernetes.io/app-version: 6.0.0
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-fly-center
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
ports:
- name: backend-tcp
protocol: TCP
port: 8080
targetPort: 8080
selector:
cmii.app: cmii-fly-center
cmii.type: backend
type: ClusterIP
---
kind: ConfigMap
apiVersion: v1
metadata:
name: cmii-fly-center-cm
namespace: 命名空间
data:
application-k8s.yml: |
center:
####################下面部分为中间件对应配置,需要确认!!!#######################
############使用k8s部署的中间件可以直接用k8s里面的服务名#################
db:
ip: helm-mysql
port: 3306
username: k8s_admin
password: fP#UaH6qQ3)8
rabbitmq:
ip: helm-rabbitmq
port: 5672
username: admin
password: nYcRN91r._hj
redis:
ip: helm-redis-master
port: 6379
password: Mcache@4522
mqtt:
BASIC:
ip: helm-emqxs
port: 1883 # mqtt内部1883端口
username: cmlc
password: odD8#Ve7.B
DRC:
ip: 36.133.115.174 # 设备连接的mqtt的公网IP
port: 31883 # 1883映射的公网端口
username: cmlc
password: odD8#Ve7.B
influxdb:
ip: helm-influxdb #influxdb宿主机的内部ip
port: 8086 #influxdb宿主机的端口
token: YunnHJASAAdj23rasQAWd621erGAS82kaqj
org: cmii
bucket: cmii
minio:
ip: helm-minio # minio服务的宿主机ip
port: 9000
access-key: cmii # minio的访问key
secret-key: B#923fC7mk # minio访问secret
publicEndpoint: http://36.133.115.174:31090
shareEndpoint: http://36.133.115.174:8088/center
hub:
appKey: Zhdjk*72uU^2xz@s

View File

@@ -0,0 +1,25 @@
---
kind: ConfigMap
apiVersion: v1
metadata:
name: nginx-cm
namespace: 命名空间
labels:
cmii.type: frontend
data:
nginx.conf: |
server {
listen 9528;
server_name localhost;
gzip on;
location / {
root /home/cmii-platform/dist;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

View File

@@ -0,0 +1,247 @@
kind: Deployment
apiVersion: apps/v1
metadata:
name: cmii-sky-converge
namespace: 命名空间
labels:
app.kubernetes.io/app-version: 6.0.0
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-sky-converge
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
replicas: 1
selector:
matchLabels:
cmii.app: cmii-sky-converge
cmii.type: backend
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-sky-converge
cmii.type: backend
spec:
volumes:
- name: application-k8s
configMap:
name: cmii-sky-converge-cm
items:
- key: application-k8s.yml
path: application-k8s.yml
- key: simAuth.license
path: simAuth.license
defaultMode: 420
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
containers:
- name: cmii-sky-converge
image: 镜像仓库/cmii/cmii-sky-converge:2.1.0-xa-2026031103
ports:
- name: pod-port
containerPort: 8080
protocol: TCP
env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-sky-converge
- name: CUST_JAVA_OPTS
value: '-Xms2000m -Xmx4500m -Dlog4j2.formatMsgNoLookups=true'
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: '8080'
- name: BIZ_CONFIG_GROUP
value: 5.7.0
- name: SYS_CONFIG_GROUP
value: 5.7.0
- name: IMAGE_VERSION
value: 5.7.0
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: SPRING_PROFILES_ACTIVE
value: k8s,db,cache,message
resources:
limits:
cpu: '4'
memory: 6Gi
requests:
cpu: '4'
memory: 2Gi
volumeMounts:
- name: application-k8s
mountPath: /cmii/config/application-k8s.yml
subPath: application-k8s.yml
- name: application-k8s
mountPath: /cmii/config/simAuth.license
subPath: simAuth.license
- name: nfs-backend-log-volume
mountPath: /cmii/logs
subPath: uavcloud-devflight/cmii-sky-converge
livenessProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 30
timeoutSeconds: 5
periodSeconds: 20
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 30
timeoutSeconds: 5
periodSeconds: 20
successThreshold: 1
failureThreshold: 3
startupProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 30
timeoutSeconds: 3
periodSeconds: 20
successThreshold: 1
failureThreshold: 5
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
imagePullSecrets:
- name: harborsecret
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
---
kind: Service
apiVersion: v1
metadata:
name: cmii-sky-converge
namespace: 命名空间
labels:
app.kubernetes.io/app-version: 6.0.0
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-sky-converge
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
ports:
- name: backend-tcp
protocol: TCP
port: 8080
targetPort: 8080
selector:
cmii.app: cmii-sky-converge
cmii.type: backend
type: ClusterIP
---
kind: ConfigMap
apiVersion: v1
metadata:
name: cmii-sky-converge-cm
namespace: 命名空间
data:
application-k8s.yml: |
converge:
####################下面部分为中间件对应配置,需要确认!!!#######################
############使用k8s部署的中间件可以直接用k8s里面的服务名#################
db:
ip: helm-mysql
port: 3306
username: k8s_admin
password: fP#UaH6qQ3)8
mqtt:
ip: helm-emqxs
port: 1883 # mqtt内部1883端口
username: cmlc
password: odD8#Ve7.B
rabbitmq:
ip: helm-rabbitmq
port: 5672
username: admin
password: nYcRN91r._hj
redis:
ip: helm-redis-master
port: 6379
password: Mcache@4522
influxdb:
ip: helm-influxdb #influxdb宿主机的内部ip
port: 8086 #influxdb宿主机的端口如果docker compose文件没有改动则默认不变
token: YunnHJASAAdj23rasQAWd621erGAS82kaqj
org: cmii
bucket: cmii
minio:
ip: helm-minio # minio服务的宿主机ip
port: 9000
access-key: cmii # minio的访问key
secret-key: B#923fC7mk # minio访问secret
#######################下面部分是业务服务需要的配置,需要确认!!!#######################
center:
address: http://cmii-fly-center:8080 # cmii-fly-center服务部署的容器宿主机ip地址和暴露的端口
stream:
endpoint: http://192.168.9.4:8088 #平台地址端口
buckets:
live-srs-hls: ilm-detect
storage:
endpoint: http://36.133.115.174:8088/converge # cmii-sky-converge服务的公网请求地址需要匹配到all-gateways-ingress里面converge服务的根路径
live:
merge:
tmp: /tmp/ffmpeg/
expired: 10
sms:
mas:
enable: false #内网部署改为false
host: http://XXX:XXX/sms/tmpsubmit
ecName: XXX科技有限公司
apId: notice
secretKey: notice@123
sign: ynYl2Vpl7
templateId: e4dc71ddd5c24d25b24daa01e969e24
expire: 3
limit:
minute: 5
hour: 15
day: 30
sim:
# true = 启用, false = 不启用
enable: false
###固定k8s里面挂载路径
licensePath: /cmii/config/simAuth.license
# 测试环境https://ptest.cmccsim.com:9090, 生产环境https://certplat.cmccsim.com
host: https://ptest.cmccsim.com:9090
callbackUrl: http://36.133.115.174:8088/converge
simAuth.license: >
BOOedo/TVLbYLdKyGkFYEAljoncjd2+mKkwARpNkb0Q8D0QaZbOnCjJdMj0kUtHVRJ03CYujyVJZ8Xc1JvBTujSFgBvNwXWJN2E35TZYGUYx4uZW7WZJ9ajp3pi9Q4V9JLA4qdyd/Zaz0/T+mqaXzW0l18jA9VL25fB0tkzQYpySql76V9QAowpuVcklItcNZ8YWwK4lbPjaygBhZVNqdhbJQwqLG7io2X0QV11T5yhbu8SXCag0hoX6s93IBz0k4Aze2TZvpJ25o/NuMptWKviddrVNpVAIwT/L9kLNVkBT8T0xysX6Ku+9aLKUlLrGw4lhAHM5iHp82jduw7L9jc878ZZgOoUALLaw9axnVdnf3XfhZ75/uhx4mZ+JnNS2aNH18mVR53CGT3jxY0y1RA64e2zhMhFr/KNxVGIuZl/iAr1EGI85QWrnYGsLNbilCFlZyDzcH8tK4hDvmMtUe1xCEUF6oO9nwr+YDHGBSM1ifXLJZrvwuDI7Zim+h6pUqctWhtf6eyfyF17iBrzzt6lmSjkQtZ1kRVUxRni68/FPH9YJBKQhJItAk2h1OaUBB1Lt5vfu8OYi5S+onTmesvlIuUk7USBIFbt4kVhUpgGtV+WyddcjH6BJo3NPqCYcObR4KeLmQ/bHmN/xyVT3HMed8VhiVv0U8EuTINJxmXh+nDVmeDEUa4qYtPRGArSsGF2KGbnOOqwkyk1D/o81Zxb8Kklxn3I/CK1EM63HZLY4hGm52oRsNDjbJPFFFUdTqyQw7igHdwJYJbgxqycCAh1f8zioVVziOXwHxV85poIpVG7pP0LWrYttW1e2WdrSI4WUO1X4krfPu+7WxYHj4Cs4aTflYM9F+KVqbw6bVlg5PIPRiIy6eMRqzvl53y9eesd7eqUNgRnM13PmRDJPe6sw5BnaPn1eHBk7Mh+CAsdRnq8V0t9NkRK2aNfJFNo/PPjahDlw9DHMnJW3QGgZNR3LqFKQxDQIpR7xwgsYX5CmZo3gaBHbTx1EozCagco1tGHrRaDlJNjAYKjnus0huujI0dh+w/ybkWoN4jPQiMWx5O/oem62ga5NbHd5wS/A5e9UKfNZef1NYJyiWRYNINXr3lUl0835rb38q6+5tBKZnrJq1GZ8n2IEuw8L1YcbvtuSDBlHYGSDQ6yD5sL/qv73sXjL2jwtu+QllQt6jhFw5VUKIFRhCjuTeLbrzmcOO2TwCVZb89QPW5rGNA5sO99qormwqNkwXzsKXNx6r9B2rQ6WUdP05r1ti0YAShBdfC1CPhpt2yuKIFO3eh8J6fWjHygBX2kYq+zdb4w39d77gBayQX5lIw4MY0Dcqbyw/MvqcnXj47EUmQ+xIxkaL76C4nbN7GuMQs1rpJ4eox9qqyBeKbVGo/7/aqP6vMXl0BsPWLV5Z2jCy0HzgyBMy4mU1Q==

View File

@@ -0,0 +1,209 @@
kind: Deployment
apiVersion: apps/v1
metadata:
name: cmii-sky-integration
namespace: 命名空间
labels:
app.kubernetes.io/app-version: 6.0.0
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-sky-integration
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
replicas: 1
selector:
matchLabels:
cmii.app: cmii-sky-integration
cmii.type: backend
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-sky-integration
cmii.type: backend
spec:
volumes:
- name: application-k8s
configMap:
name: cmii-sky-integration-cm
items:
- key: application-k8s.yml
path: application-k8s.yml
defaultMode: 420
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
containers:
- name: cmii-sky-integration
image: 镜像仓库/cmii/cmii-sky-integration:2.1.0-xa-2026031103
ports:
- name: pod-port
containerPort: 8080
protocol: TCP
env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-sky-integration
- name: CUST_JAVA_OPTS
value: '-Xms2000m -Xmx4500m -Dlog4j2.formatMsgNoLookups=true'
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: '8080'
- name: BIZ_CONFIG_GROUP
value: 5.7.0
- name: SYS_CONFIG_GROUP
value: 5.7.0
- name: IMAGE_VERSION
value: 5.7.0
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: SPRING_PROFILES_ACTIVE
value: k8s,db,cache,message
resources:
limits:
cpu: '4'
memory: 6Gi
requests:
cpu: '4'
memory: 2Gi
volumeMounts:
- name: application-k8s
mountPath: /cmii/config/application-k8s.yml
subPath: application-k8s.yml
- name: application-k8s
mountPath: /cmii/config/simAuth.license
subPath: simAuth.license
- name: nfs-backend-log-volume
mountPath: /cmii/logs
subPath: uavcloud-devflight/cmii-sky-integration
livenessProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 30
timeoutSeconds: 5
periodSeconds: 20
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 30
timeoutSeconds: 5
periodSeconds: 20
successThreshold: 1
failureThreshold: 3
startupProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 30
timeoutSeconds: 3
periodSeconds: 20
successThreshold: 1
failureThreshold: 5
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
imagePullSecrets:
- name: harborsecret
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
---
kind: Service
apiVersion: v1
metadata:
name: cmii-sky-integration
namespace: 命名空间
labels:
app.kubernetes.io/app-version: 6.0.0
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-sky-integration
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
ports:
- name: backend-tcp
protocol: TCP
port: 8080
targetPort: 8080
selector:
cmii.app: cmii-sky-integration
cmii.type: backend
type: ClusterIP
---
kind: ConfigMap
apiVersion: v1
metadata:
name: cmii-sky-integration-cm
namespace: 命名空间
data:
application-k8s.yml: |
server:
ip: 192.168.40.93
# 外部访问地址 endpoint内网访问, 必须, 末尾没有/
endpoint: http://192.168.0.1:35689/ #sky-converge 内网地址
public-endpoint: https://uav.xadcity.com/converge #sky-converge 公网网地址
comparison:
guochuang-endpoint: http://apitest.tools.liandanlu.cn:50000 #国创算法地址
reconstruction:
geoway-endpoint: http://10.22.48.3:1892 #吉威算法地址
project.name: sky-integration-dev
rabbitmq:
ip: helm-rabbitmq
port: 5672
username: admin
password: nYcRN91r._hj
redis:
host: helm-redis-master
port: 6379
password: Mcache@4522
minio:
ip: helm-minio
port: 39010
access-key: cmii
secret-key: B#923fC7mk
db:
ip: helm-mysql
port: 3306
username: k8s_admin
password: fP#UaH6qQ3)8
callback:
url: xxxx
reconstruction:
host: xxx

View File

@@ -0,0 +1,129 @@
kind: Deployment
apiVersion: apps/v1
metadata:
name: cmii-uav-platform-lite-oms
namespace: 命名空间
labels:
app.kubernetes.io/app-version: 6.2.0
cmii.app: cmii-uav-platform-lite-oms
cmii.type: frontend
octopus.lite: frontend-app-wdd
spec:
replicas: 1
selector:
matchLabels:
cmii.app: cmii-uav-platform-lite-oms
cmii.type: frontend
template:
metadata:
labels:
cmii.app: cmii-uav-platform-lite-oms
cmii.type: frontend
spec:
volumes:
- name: nginx-conf
configMap:
name: nginx-cm
items:
- key: nginx.conf
path: nginx.conf
defaultMode: 420
- name: tenant-prefix
configMap:
name: tenant-prefix-lite-oms
items:
- key: ingress-config.js
path: ingress-config.js
defaultMode: 420
containers:
- name: cmii-uav-platform-lite-oms
image: 镜像仓库/cmii/cmii-uav-platform-lite-oms:2.1.0-2026040203-noicp
ports:
- name: platform-9528
containerPort: 9528
protocol: TCP
env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uav-platform-lite-oms
resources:
limits:
cpu: '1'
memory: 1Gi
requests:
cpu: 50m
memory: 50Mi
volumeMounts:
- name: nginx-conf
mountPath: /etc/nginx/conf.d/nginx.conf
subPath: nginx.conf
- name: tenant-prefix
mountPath: /home/cmii-platform/dist/ingress-config.js
subPath: ingress-config.js
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
imagePullSecrets:
- name: harborsecret
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
---
kind: Service
apiVersion: v1
metadata:
name: cmii-uav-platform-lite-oms
namespace: 命名空间
labels:
app.kubernetes.io/version: 6.2.0
cmii.app: cmii-uav-platform-lite-oms
cmii.type: frontend
octopus.control: frontend-app-wdd
spec:
ports:
- name: web-svc-port
protocol: TCP
port: 9528
targetPort: 9528
selector:
cmii.app: cmii-uav-platform-lite-oms
cmii.type: frontend
type: ClusterIP
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-lite-oms
namespace: 命名空间
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "",
CloudHOST: "实际公网入口CloudHOST",
ApplicationShortName: "ms",
AppClientId: "",
Headers: {
ORG_ID: 'pago',
PROJECT_ID: 'prgn'
},
TdtToken: "XXXX"
}
var __GlobalSystemConfig = {
systemName: "XXX低空应用公共服务平台",
platformName: "",
ShowICP: false,
ShowAgreement: false
};

View File

@@ -0,0 +1,129 @@
kind: Deployment
apiVersion: apps/v1
metadata:
name: cmii-uav-platform-lite-pilot2
namespace: 命名空间
labels:
app.kubernetes.io/app-version: 6.2.0
cmii.app: cmii-uav-platform-lite-pilot2
cmii.type: frontend
octopus.lite: frontend-app-wdd
spec:
replicas: 1
selector:
matchLabels:
cmii.app: cmii-uav-platform-lite-pilot2
cmii.type: frontend
template:
metadata:
labels:
cmii.app: cmii-uav-platform-lite-pilot2
cmii.type: frontend
spec:
volumes:
- name: nginx-conf
configMap:
name: nginx-cm
items:
- key: nginx.conf
path: nginx.conf
defaultMode: 420
- name: tenant-prefix
configMap:
name: tenant-prefix-lite-piolt2
items:
- key: ingress-config.js
path: ingress-config.js
defaultMode: 420
containers:
- name: cmii-uav-platform-lite-pilot2
image: 镜像仓库/cmii/cmii-uav-platform-lite-pilot2:2.1.0-2026040203-noicp
ports:
- name: platform-9528
containerPort: 9528
protocol: TCP
env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uav-platform-lite-pilot2
resources:
limits:
cpu: '1'
memory: 1Gi
requests:
cpu: 50m
memory: 50Mi
volumeMounts:
- name: nginx-conf
mountPath: /etc/nginx/conf.d/nginx.conf
subPath: nginx.conf
- name: tenant-prefix
mountPath: /home/cmii-platform/dist/ingress-config.js
subPath: ingress-config.js
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
imagePullSecrets:
- name: harborsecret
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
---
kind: Service
apiVersion: v1
metadata:
name: cmii-uav-platform-lite-pilot2
namespace: 命名空间
labels:
app.kubernetes.io/version: 6.2.0
cmii.app: cmii-uav-platform-lite-pilot2
cmii.type: frontend
octopus.control: frontend-app-wdd
spec:
ports:
- name: web-svc-port
protocol: TCP
port: 9528
targetPort: 9528
selector:
cmii.app: cmii-uav-platform-lite-pilot2
cmii.type: frontend
type: ClusterIP
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-lite-piolt2
namespace: 命名空间
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "",
CloudHOST: "实际公网入口CloudHOST",
ApplicationShortName: "piolt2cloud",
AppClientId: "",
Headers: {
ORG_ID: 'pago',
PROJECT_ID: 'prgn'
},
TdtToken: "XXXX"
}
var __GlobalSystemConfig = {
systemName: "XXX低空应用公共服务平台",
platformName: "",
ShowICP: false,
ShowAgreement: false
};

View File

@@ -0,0 +1,136 @@
kind: Deployment
apiVersion: apps/v1
metadata:
name: cmii-uav-platform-lite
namespace: 命名空间
labels:
app.kubernetes.io/app-version: 6.2.0
cmii.app: cmii-uav-platform-lite
cmii.type: frontend
octopus.lite: frontend-app-wdd
annotations:
deployment.kubernetes.io/revision: '8'
spec:
replicas: 1
selector:
matchLabels:
cmii.app: cmii-uav-platform-lite
cmii.type: frontend
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uav-platform-lite
cmii.type: frontend
spec:
volumes:
- name: nginx-conf
configMap:
name: nginx-cm
items:
- key: nginx.conf
path: nginx.conf
defaultMode: 420
- name: tenant-prefix
configMap:
name: tenant-prefix-lite
items:
- key: ingress-config.js
path: ingress-config.js
defaultMode: 420
containers:
- name: cmii-uav-platform-lite
image: 镜像仓库/cmii/cmii-uav-platform-lite:1.5.0-2026031201-noicp
ports:
- name: platform-9528
containerPort: 9528
protocol: TCP
env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uav-platform-lite
resources:
limits:
cpu: '1'
memory: 1Gi
requests:
cpu: 50m
memory: 50Mi
volumeMounts:
- name: nginx-conf
mountPath: /etc/nginx/conf.d/nginx.conf
subPath: nginx.conf
- name: tenant-prefix
mountPath: /home/cmii-platform/dist/ingress-config.js
subPath: ingress-config.js··
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
imagePullSecrets:
- name: harborsecret
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
---
kind: Service
apiVersion: v1
metadata:
name: cmii-uav-platform-lite
namespace: 命名空间
labels:
app.kubernetes.io/version: 6.2.0
cmii.app: cmii-uav-platform-lite
cmii.type: frontend
octopus.control: frontend-app-wdd
spec:
ports:
- name: web-svc-port
protocol: TCP
port: 9528
targetPort: 9528
selector:
cmii.app: cmii-uav-platform-lite
cmii.type: frontend
type: ClusterIP
sessionAffinity: None
status:
loadBalancer: {}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-lite
namespace: 命名空间
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "",
CloudHOST: "实际公网入口CloudHOST",
ApplicationShortName: "lite",
AppClientId: "",
Headers: {
ORG_ID: 'pago',
PROJECT_ID: 'prgn'
},
TdtToken: "XXXX"
}
var __GlobalSystemConfig = {
systemName: "XXX低空应用公共服务平台",
platformName: "",
ShowICP: false,
ShowAgreement: false
};

View File

@@ -0,0 +1,79 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
namespace: 命名空间
name: helm-minio
spec:
serviceName: helm-minio
replicas: 1
selector:
matchLabels:
app: helm-minio
template:
metadata:
labels:
app: helm-minio
spec:
imagePullSecrets:
- name: harborsecret
affinity: {}
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# - key: minio-deploy
# operator: In
# values:
# - "true"
containers:
- name: minio
image: 镜像仓库/cmii/minio:RELEASE.2023-06-02T23-17-26Z
command: ["/bin/sh", "-c"]
args:
- minio server /data --console-address ":9001"
ports:
- containerPort: 9000
name: api
- containerPort: 9001
name: console
env:
- name: MINIO_ACCESS_KEY
value: "cmii"
- name: MINIO_SECRET_KEY
value: "B#923fC7mk"
volumeMounts:
- name: data
mountPath: /data
resources:
limits:
memory: 1Gi
cpu: "1"
requests:
memory: 200Mi
cpu: 200m
volumes:
- name: data
persistentVolumeClaim:
claimName: helm-minio
# hostPath:
# path: /var/lib/docker/minio-pv/
---
apiVersion: v1
kind: Service
metadata:
name: helm-minio
namespace: 命名空间
spec:
selector:
app: helm-minio
ports:
- name: api
port: 9000
targetPort: 9000
nodePort: 39000
- name: console
port: 9001
targetPort: 9001
nodePort: 39001
type: NodePort

View File

@@ -0,0 +1,122 @@
upstream cc_server {
ip_hash;
server 127.0.0.1:30500;
}
server {
listen 8088;
server_name localhost;
location / {
proxy_pass http://cc_server;
client_max_body_size 5120m;
client_body_buffer_size 5120m;
client_body_timeout 6000s;
proxy_send_timeout 10000s;
proxy_read_timeout 10000s;
proxy_connect_timeout 600s;
proxy_max_temp_file_size 5120m;
proxy_request_buffering on;
proxy_buffering off;
proxy_buffer_size 4k;
proxy_buffers 4 12k;
proxy_set_header Host fake-domain.ahyd-app.io;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /center/ws {
proxy_pass http://192.168.0.6:38083/mqtt;
proxy_http_version 1.1;
proxy_set_header Sec-WebSocket-Protocol mqtt;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
##############2.1变动#########################
# gis模型地址
location /converge/bigdata/download/ {
# 使用 rewrite + break 剥离前缀,同时保留 URL 编码(避免 %2F 被二次编码)
rewrite ^/converge/bigdata/download/(.*)$ /$1 break;
# 使用内网minio数据端口
proxy_pass http://10.22.48.7:39010/;
# 关键:必须将 Host 固定为 MinIO 后端地址,否则签名校验失败
proxy_set_header Host 10.22.48.7:39010;
# 查询字符串AWS 签名参数)由 nginx 自动透传,无需额外配置
proxy_pass_request_headers on;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 关闭缓冲,适合大文件(如 GeoTIFF流式传输
proxy_buffering off;
proxy_request_buffering off;
# 大文件下载超时设置
proxy_connect_timeout 60s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
}
# 高德内网代理
location /_AMapService/ {
proxy_pass https://restapi.amap.com/;
}
####删除掉/center/storage的配置#######
########################end##################
location /api/mqtt_ws2/token {
proxy_pass http://192.168.0.6:38083/mqtt;
proxy_http_version 1.1;
proxy_set_header Sec-WebSocket-Protocol mqtt;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
location /rtc/v1/ {
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
proxy_pass http://127.0.0.1:30985/rtc/v1/;
}
location /_AMapService/v4/map/styles {
set $args "$args&jscode=cf66cea95bdcdfcf8048456b36f357a1";
proxy_pass https://webapi.amap.com/v4/ap/styles;
}
location /_AMapService/ {
set $args "$args&jscode=cf66cea95bdcdfcf8048456b36f357a1";
proxy_pass https://restapi.amap.com/;
}
location ~ ^/.*/(actuator|swagger-resources|api-docs|env|ping|health)(/|$) {
return 403;
}
location /live-play/flv/ {
proxy_pass http://ZLM_HOST_IP:7088/;
}
location /live-play/hls/ {
proxy_pass http://ZLM_HOST_IP:7088/zlm/hls/;
}
location /live-play/webrtc {
proxy_pass http://ZLM_HOST_IP:7088/index/api/webrtc;
}
location /live-play/whip {
proxy_pass http://ZLM_HOST_IP:7088/index/api/whip;
}
location /live-replay/hls-by-time-range/ {
proxy_pass http://MASTET_IN_IP:37086/api/v2/storage/hls-by-time-range/;
}
location /live-replay/fetch_file/ {
proxy_pass http://MASTET_IN_IP:37086/api/v2/storage/fetch_file/;
}
location /live-replay/hls-downloader {
proxy_pass http://MASTET_IN_IP:37080/hls-downloader;
}
}

View File

@@ -0,0 +1,191 @@
spring:
cache:
type: none
mvc:
pathmatch:
matching-strategy: ant_path_matcher
platform:
info:
name: AI原子能力
description: AI原子能力
version: 6.2.0
datasource:
dynamic:
primary: uav_ai_core
datasource:
uav_ai_core:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://helm-mysql:3306/uav_ai_core?characterEncoding=UTF-8&useSSL=true&zeroDateTimeBehavior=convertToNull&&allowMultiQueries=true&serverTimezone=GMT%2B8
username: k8s_admin
password: fP#UaH6qQ3)8
redis:
host: helm-redis-master
port: 6379
database: 0
password: Mcache@4522
redisson:
model: SINGLE
single-server-config:
address: helm-redis-master:6379
database: 0
password: Mcache@4522
rabbitmq:
host: helm-rabbitmq
port: 5672
username: admin
password: nYcRN91r._hj
virtual-host: /
server:
compression:
enabled: true
min-response-size: 1024
mime-types: text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json
springdoc:
api-docs:
version: openapi_3_1
group-configs:
- group: common
display-name: 公共能力
paths-to-match:
- /cmii/**
- group: regulator
display-name: 管理端
paths-to-match:
- /regulator/**
- group: all
display-name: 所有的服务能力
paths-to-match:
- /**
override-with-generic-response: true
info:
title: AI原子能力
description: AI原子能力
version: 6.2.0
com:
cmii:
chinamobile:
request:
mapping:
scan:
register-request-mapping: true
group: regulator
logging:
level:
com.cmii.chinamobile: info
minio:
srcId: 1323096648758464519
mqtt:
single:
host: tcp://helm-emqxs:1883
hosts: tcp://helm-emqxs:1883
username: cmlc
password: odD8#Ve7.B
hosts: tcp://helm-emqxs:1883
host: tcp://helm-emqxs:1883
username: cmlc
password: odD8#Ve7.B
qos: 1
connectionTimeout: 10
keepAliveInterval: 20
gzipPayload: false
#消息发布者clientId
publishClientId: ai_core
#消息订阅者clientId
subscribeClientId: ai_core_subscribe
ai:
core:
srcId: 1323096648758464519
ware:
defaultTenant: zjcxy
cityCode: 510100
projCode: demo
printMqttSendMsg: true
printHttpReceiveMsg: true
printMqttReceiveMsg: true
closeLightMqtt: false
cacheWithRedis: false
closePublishStandardMqtt: true
closePublishImageRecord: false
callbackUrl: https://www.demo.uavcmlc.com/uas/api/community/aicore/client/aiware/order/reportAiRecord
tenants:
zjcxy:
# host: https://cxy-stg-soul.vimvp.cn:50920
host: https://soul.gateway.zjcloud.com:50443
path: /uvsg-ai/order/cdfk
ak: 332d17324133bae0
sk: faa05b2072fc4ab881124eef62013066
guochuang:
host: http://api.tools.liandanlu.cn:50000
path: /005
ak: 1b59cfdb4e2d8d0d
sk: e5e5644f41354be8a4acb27e9b1ff37b
yitong:
host: http://183.6.114.147:6007
path:
ak: 1b59cfdb4e2d8d0d
sk: e5e5644f41354be8a4acb27e9b1ff37b
# zyly:
# host: http://192.168.75.14:2334
# path: /uvsg-ai/order/cdfk
# ak: 1b59cfdb4e2d8d0d
# sk: e5e5644f41354be8a4acb27e9b1ff37b
cyy1:
host: http://192.168.36.49:2333
path: /uvsg-ai/order/cdfk
ak: 1b59cfdb4e2d8d0d
sk: e5e5644f41354be8a4acb27e9b1ff37b
cyy2:
host: http://192.168.36.49:2334
path: /uvsg-ai/order/cdfk
ak: 1b59cfdb4e2d8d0d
sk: e5e5644f41354be8a4acb27e9b1ff37b
cyy3:
host: http://192.168.36.49:2335
path: /uvsg-ai/order/cdfk
ak: 1b59cfdb4e2d8d0d
sk: e5e5644f41354be8a4acb27e9b1ff37b
cyy4:
host: http://192.168.36.49:2336
path: /uvsg-ai/order/cdfk
ak: 1b59cfdb4e2d8d0d
sk: e5e5644f41354be8a4acb27e9b1ff37b
qjb:
host: http://uav.qjb1000.com:57893
path: /uvsg-ai/order/cdfk
ak: 1b59cfdb4e2d8d0d
sk: e5e5644f41354be8a4acb27e9b1ff37b
zylybig:
host: http://192.168.35.51:6526
path: /uvsg-ai/order/cdfk
ak: 1b59cfdb4e2d8d0d
sk: e5e5644f41354be8a4acb27e9b1ff37b
# jsj1:
# host: http://183.47.59.221:20197
# path: /uvsg-ai/order/cdfk
# ak: abc
# sk: axxxx
# jsj2:
# host: http://183.47.59.221:20198
# path: /uvsg-ai/order/cdfk
# ak: abc
# sk: axxxx
# jsj3:
# host: http://183.47.59.221:20199
# path: /uvsg-ai/order/cdfk
# ak: abc
# sk: axxxx
# jsj4:
# host: http://183.47.59.221:20194
# path: /uvsg-ai/order/cdfk
# ak: abc
# sk: axxxx
# yanfa2:
# host: http://192.168.75.21:8000
# path: /uvsg-ai/order/cdfk
# ak: 1b59cfdb4e2d8d0d
# sk: e5e5644f41354be8a4acb27e9b1ff37b
#宜通
video:
process:
getUrl: http://192.168.9.4:8088/api/v2/segments/info/batch?type=2

View File

@@ -0,0 +1,194 @@
kind: Deployment
apiVersion: apps/v1
metadata:
name: cmii-uav-ai-core
namespace: 命名空间
labels:
app.kubernetes.io/app-version: 6.2.0
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uav-ai-core
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
replicas: 1
selector:
matchLabels:
cmii.app: cmii-uav-ai-core
cmii.type: backend
template:
metadata:
labels:
cmii.app: cmii-uav-ai-core
cmii.type: backend
spec:
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
containers:
- name: cmii-uav-ai-core
image: 镜像仓库/cmii/cmii-uav-ai-core:5.7.0-shidian202603
ports:
- name: pod-port
containerPort: 8080
protocol: TCP
env:
- name: K8S_NAMESPACE
value: 命名空间
- name: APPLICATION_NAME
value: cmii-uav-ai-core
- name: CUST_JAVA_OPTS
value: '-Xms200m -Xmx1500m -Dlog4j2.formatMsgNoLookups=true'
- name: NACOS_REGISTRY
value: helm-nacos:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: '8080'
- name: BIZ_CONFIG_GROUP
value: 6.2.0
- name: SYS_CONFIG_GROUP
value: 6.2.0
- name: IMAGE_VERSION
value: 6.2.0
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-ai-core
resource: limits.cpu
divisor: '0'
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-ai-core
resource: limits.memory
divisor: '0'
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-ai-core
resource: requests.cpu
divisor: '0'
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-ai-core
resource: requests.memory
divisor: '0'
resources:
limits:
cpu: '2'
memory: 3Gi
requests:
cpu: 300m
memory: 512Mi
volumeMounts:
- name: nfs-backend-log-volume
mountPath: /cmii/logs
subPath: 命名空间/cmii-uav-ai-core
livenessProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
timeoutSeconds: 5
periodSeconds: 20
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
timeoutSeconds: 5
periodSeconds: 20
successThreshold: 1
failureThreshold: 3
startupProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
timeoutSeconds: 3
periodSeconds: 20
successThreshold: 1
failureThreshold: 5
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
imagePullSecrets:
- name: harborsecret
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 命名空间
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
---
kind: Service
apiVersion: v1
metadata:
name: cmii-uav-ai-core
namespace: 命名空间
labels:
app.kubernetes.io/app-version: 6.2.0
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uav-ai-core
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
ports:
- name: backend-tcp
protocol: TCP
port: 8080
targetPort: 8080
selector:
cmii.app: cmii-uav-ai-core
cmii.type: backend
type: ClusterIP

View File

@@ -0,0 +1,27 @@
命名空间
镜像仓库
实际公网入口CloudHOST
XXX低空应用公共服务平台
- path: /lite/?(.*)
pathType: ImplementationSpecific
backend:
service:
name: cmii-uav-platform-lite
port:
number: 9528
- path: /ms/?(.*)
pathType: ImplementationSpecific
backend:
service:
name: cmii-uav-platform-lite-oms
port:
number: 9528
- path: /pilot2cloud/?(.*)
pathType: ImplementationSpecific
backend:
service:
name: cmii-uav-platform-lite-pilot2
port:
number: 9528

View File

@@ -0,0 +1,9 @@
wget https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-uav-platform-lite-oms=2.1.0-20260409-5-noicp=2026-04-09=598.tar.gz
wget https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-uav-platform-lite=2.1.0-2026041401-noicp=2026-04-14=857.tar.gz
wget https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-sky-converge=2.1-demo-260414=2026-04-14=350.tar.gz
wget https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-fly-center=2.1-demo-260409=2026-04-09=227.tar.gz
wget https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-sky-integration=2.1.0-demo-260409=2026-04-09=937.tar.gz
wget https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-uav-platform-lite-pilot2=2.1-demo-260409=2026-04-09=979.tar.gz
wget https://oss.demo.uavcmlc.com/cmlc-installation/tmp/cmii-uav-ai-core=2.0.0-20260420=2026-04-20=897.tar.gz

View File

@@ -0,0 +1,11 @@
k8sdashboard
https://192.168.40.93:39999/
eyJhbGciOiJSUzI1NiIsImtpZCI6IkdQVUdKTXFSSlVjaVRVXzZNbENUYTRhRGwxWV9jVWh2bTcxVlVQY0RoM00ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIzMGYxMjAyNy0wMTRmLTQzMTAtOGU4NS01MGM2NmI4MTAwMzAiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.QhDKVA0LLMWNaSMasMYh3QImva0aETC0tFTa1X1X1UbcjuTV3SPWN_c0qIWLXkn-XpBhzdlPSSjk3mkNvclGw4gopImPwg4I85oZStcqT9O4BXBZIiDaerq74AWzsUezvXy-RdBRz4HWDRSuta9jbfqwfHo_cmwjrLtSrXF4Fo3FWLeu45pIdY5Xop6rats6FSfsgsy9dJpZ0FcIWCfpm8IBA0WR0xWc-OoGN0ai10vo_PEOMOL_Ufes8BNRiDtDGtU4p4LdkLph5KYaPqvfX6wc-vWtlUsd1FpLicsI8OsXbeDvfjMEWK7w8fPgeLQ5cTPjBrhP7oC7LrWeuefdSA
master节点 192.168.40.80
Len3#io7%2k2025
高可用虚拟IP为VIP,绑定在808182三个之间的 192.168.40.93

View File

@@ -1,82 +0,0 @@
kind: ConfigMap
apiVersion: v1
metadata:
name: doris-cluster-be-conf
namespace: xakny
labels:
app.kubernetes.io/component: be
data:
be.conf: >
CUR_DATE=`date +%Y%m%d-%H%M%S`
# Log dir
LOG_DIR="${DORIS_HOME}/log/"
# For jdk 8
JAVA_OPTS="-Dfile.encoding=UTF-8 -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xloggc:$LOG_DIR/be.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives"
# Set your own JAVA_HOME
# JAVA_HOME=/path/to/jdk/
# https://github.com/apache/doris/blob/master/docs/zh-CN/community/developer-guide/debug-tool.md#jemalloc-heap-profile
# https://jemalloc.net/jemalloc.3.html jemalloc 内存分配器设置参数
JEMALLOC_CONF="percpu_arena:percpu,background_thread:true,metadata_thp:auto,muzzy_decay_ms:15000,dirty_decay_ms:15000,oversize_threshold:0,prof:false,lg_prof_interval:32,lg_prof_sample:19,prof_gdump:false,prof_accum:false,prof_leak:false,prof_final:false"
JEMALLOC_PROF_PRFIX=""
# ports for admin, web, heartbeat service
be_port = 9060
webserver_port = 8040
heartbeat_service_port = 9050
brpc_port = 8060
arrow_flight_sql_port = -1
# HTTPS configures
enable_https = false
# path of certificate in PEM format.
#ssl_certificate_path = "$DORIS_HOME/conf/cert.pem"
# path of private key in PEM format.
#ssl_private_key_path = "$DORIS_HOME/conf/key.pem"
# Choose one if there are more than one ip except loopback address.
# Note that there should at most one ip match this list.
# If no ip match this rule, will choose one randomly.
# use CIDR format, e.g. 10.10.10.0/24 or IP format, e.g. 10.10.10.1
# Default value is empty.
# priority_networks = 10.10.10.0/24;192.168.0.0/16
# data root path, separate by ';'
# You can specify the storage type for each root path, HDD (cold data) or SSD (hot data)
# eg:
# storage_root_path = /home/disk1/doris;/home/disk2/doris;/home/disk2/doris
# storage_root_path = /home/disk1/doris,medium:SSD;/home/disk2/doris,medium:SSD;/home/disk2/doris,medium:HDD
# /home/disk2/doris,medium:HDD(default)
#
# you also can specify the properties by setting '<property>:<value>', separate by ','
# property 'medium' has a higher priority than the extension of path
#
# Default value is ${DORIS_HOME}/storage, you should create it by hand.
# storage_root_path = ${DORIS_HOME}/storage
# Default dirs to put jdbc drivers,default value is ${DORIS_HOME}/jdbc_drivers
# jdbc_drivers_dir = ${DORIS_HOME}/jdbc_drivers
# Advanced configurations
# INFO, WARNING, ERROR, FATAL
sys_log_level = INFO
# sys_log_roll_mode = SIZE-MB-1024
# sys_log_roll_num = 10
# sys_log_verbose_modules = *
# log_buffer_level = -1
# aws sdk log level
# Off = 0,
# Fatal = 1,
# Error = 2,
# Warn = 3,
# Info = 4,
# Debug = 5,
# Trace = 6
# Default to turn off aws sdk log, because aws sdk errors that need to be cared will be output through Doris logs
#aws_log_level=0
## If you are not running in aws cloud, you can disable EC2 metadata
#AWS_EC2_METADATA_DISABLED=false

View File

@@ -1,17 +0,0 @@
kind: Service
apiVersion: v1
metadata:
namespace: xakny
name: doris-cluster-be-internal
labels:
app.kubernetes.io/component: doris-cluster-be-internal
spec:
ports:
- name: heartbeat-port
protocol: TCP
port: 9050
targetPort: 9050
selector:
app.kubernetes.io/component: doris-cluster-be
clusterIP: None
type: ClusterIP

View File

@@ -2,7 +2,7 @@ kind: Service
apiVersion: v1
metadata:
name: doris-cluster-be-service
namespace: xakny
namespace: 命名空间
labels:
app.kubernetes.io/component: doris-cluster-be
spec:
@@ -29,4 +29,22 @@ spec:
nodePort: 31627
selector:
app.kubernetes.io/component: doris-cluster-be
type: NodePort
type: NodePort
---
kind: Service
apiVersion: v1
metadata:
namespace: 命名空间
name: doris-cluster-be-internal
labels:
app.kubernetes.io/component: doris-cluster-be-internal
spec:
ports:
- name: heartbeat-port
protocol: TCP
port: 9050
targetPort: 9050
selector:
app.kubernetes.io/component: doris-cluster-be
clusterIP: None
type: ClusterIP

View File

@@ -2,7 +2,7 @@ kind: StatefulSet
apiVersion: apps/v1
metadata:
name: doris-cluster-be
namespace: xakny
namespace: 命名空间
labels:
app.kubernetes.io/component: doris-cluster-be
spec:
@@ -43,7 +43,7 @@ spec:
claimName: doris-fe-log-pvc
initContainers:
- name: default-init
image: '192.168.0.2:8033/cmii/alpine:1.0.0'
image: '镜像仓库/cmii/tools:1.0'
command:
- /bin/sh
args:
@@ -63,7 +63,7 @@ spec:
privileged: true
containers:
- name: be
image: '192.168.0.2:8033/cmii/doris.be-ubuntu:2.1.6'
image: '镜像仓库/cmii/doris.be-ubuntu:2.1.6'
command:
- /opt/apache-doris/be_entrypoint.sh
args:
@@ -211,4 +211,87 @@ spec:
# storageClassName: nfs-prod-distribute
# volumeMode: Filesystem
serviceName: doris-cluster-be-internal
podManagementPolicy: Parallel
podManagementPolicy: Parallel
---
kind: ConfigMap
apiVersion: v1
metadata:
name: doris-cluster-be-conf
namespace: 命名空间
labels:
app.kubernetes.io/component: be
data:
be.conf: >
CUR_DATE=`date +%Y%m%d-%H%M%S`
# Log dir
LOG_DIR="${DORIS_HOME}/log/"
# For jdk 8
JAVA_OPTS="-Dfile.encoding=UTF-8 -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xloggc:$LOG_DIR/be.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives"
# Set your own JAVA_HOME
# JAVA_HOME=/path/to/jdk/
# https://github.com/apache/doris/blob/master/docs/zh-CN/community/developer-guide/debug-tool.md#jemalloc-heap-profile
# https://jemalloc.net/jemalloc.3.html jemalloc 内存分配器设置参数
JEMALLOC_CONF="percpu_arena:percpu,background_thread:true,metadata_thp:auto,muzzy_decay_ms:15000,dirty_decay_ms:15000,oversize_threshold:0,prof:false,lg_prof_interval:32,lg_prof_sample:19,prof_gdump:false,prof_accum:false,prof_leak:false,prof_final:false"
JEMALLOC_PROF_PRFIX=""
# ports for admin, web, heartbeat service
be_port = 9060
webserver_port = 8040
heartbeat_service_port = 9050
brpc_port = 8060
arrow_flight_sql_port = -1
# HTTPS configures
enable_https = false
# path of certificate in PEM format.
#ssl_certificate_path = "$DORIS_HOME/conf/cert.pem"
# path of private key in PEM format.
#ssl_private_key_path = "$DORIS_HOME/conf/key.pem"
# Choose one if there are more than one ip except loopback address.
# Note that there should at most one ip match this list.
# If no ip match this rule, will choose one randomly.
# use CIDR format, e.g. 10.10.10.0/24 or IP format, e.g. 10.10.10.1
# Default value is empty.
# priority_networks = 10.10.10.0/24;192.168.0.0/16
# data root path, separate by ';'
# You can specify the storage type for each root path, HDD (cold data) or SSD (hot data)
# eg:
# storage_root_path = /home/disk1/doris;/home/disk2/doris;/home/disk2/doris
# storage_root_path = /home/disk1/doris,medium:SSD;/home/disk2/doris,medium:SSD;/home/disk2/doris,medium:HDD
# /home/disk2/doris,medium:HDD(default)
#
# you also can specify the properties by setting '<property>:<value>', separate by ','
# property 'medium' has a higher priority than the extension of path
#
# Default value is ${DORIS_HOME}/storage, you should create it by hand.
# storage_root_path = ${DORIS_HOME}/storage
# Default dirs to put jdbc drivers,default value is ${DORIS_HOME}/jdbc_drivers
# jdbc_drivers_dir = ${DORIS_HOME}/jdbc_drivers
# Advanced configurations
# INFO, WARNING, ERROR, FATAL
sys_log_level = INFO
# sys_log_roll_mode = SIZE-MB-1024
# sys_log_roll_num = 10
# sys_log_verbose_modules = *
# log_buffer_level = -1
# aws sdk log level
# Off = 0,
# Fatal = 1,
# Error = 2,
# Warn = 3,
# Info = 4,
# Debug = 5,
# Trace = 6
# Default to turn off aws sdk log, because aws sdk errors that need to be cared will be output through Doris logs
#aws_log_level=0
## If you are not running in aws cloud, you can disable EC2 metadata
#AWS_EC2_METADATA_DISABLED=false

View File

@@ -1,67 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: doris-cluster-fe-conf
namespace: xakny
labels:
app.kubernetes.io/component: fe
data:
fe.conf: |
#####################################################################
## The uppercase properties are read and exported by bin/start_fe.sh.
## To see all Frontend configurations,
## see fe/src/org/apache/doris/common/Config.java
#####################################################################
CUR_DATE=`date +%Y%m%d-%H%M%S`
# Log dir
LOG_DIR = ${DORIS_HOME}/log
# For jdk 8
JAVA_OPTS="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx8192m -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:$LOG_DIR/log/fe.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Dlog4j2.formatMsgNoLookups=true"
# Set your own JAVA_HOME
# JAVA_HOME=/path/to/jdk/
##
## the lowercase properties are read by main program.
##
# store metadata, must be created before start FE.
# Default value is ${DORIS_HOME}/doris-meta
# meta_dir = ${DORIS_HOME}/doris-meta
# Default dirs to put jdbc drivers,default value is ${DORIS_HOME}/jdbc_drivers
# jdbc_drivers_dir = ${DORIS_HOME}/jdbc_drivers
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
arrow_flight_sql_port = -1
# Choose one if there are more than one ip except loopback address.
# Note that there should at most one ip match this list.
# If no ip match this rule, will choose one randomly.
# use CIDR format, e.g. 10.10.10.0/24 or IP format, e.g. 10.10.10.1
# Default value is empty.
# priority_networks = 10.10.10.0/24;192.168.0.0/16
# Advanced configurations
# log_roll_size_mb = 1024
# INFO, WARN, ERROR, FATAL
sys_log_level = INFO
# NORMAL, BRIEF, ASYNC,FE 日志的输出模式,其中 NORMAL 为默认的输出模式日志同步输出且包含位置信息。ASYNC 默认是日志异步输出且包含位置信息。 BRIEF 模式是日志异步输出但不包含位置信息。三种日志输出模式的性能依次递增
sys_log_mode = ASYNC
# sys_log_roll_num = 10
# sys_log_verbose_modules = org.apache.doris
# audit_log_dir = $LOG_DIR
# audit_log_modules = slow_query, query
# audit_log_roll_num = 10
# meta_delay_toleration_second = 10
# qe_max_connection = 1024
# qe_query_timeout_second = 300
# qe_slow_log_ms = 5000
#Fully Qualified Domain Name完全限定域名,开启后各节点之间通信基于FQDN
enable_fqdn_mode = true

View File

@@ -1,17 +0,0 @@
kind: Service
apiVersion: v1
metadata:
name: doris-cluster-fe-internal
namespace: xakny
labels:
app.kubernetes.io/component: doris-cluster-fe
spec:
ports:
- name: query-port
protocol: TCP
port: 9030
targetPort: 9030
selector:
app.kubernetes.io/component: doris-cluster-fe
clusterIP: None
type: ClusterIP

View File

@@ -2,7 +2,7 @@ kind: Service
apiVersion: v1
metadata:
name: doris-cluster-fe-service
namespace: xakny
namespace: 命名空间
labels:
app.kubernetes.io/component: doris-cluster-fe
spec:
@@ -29,4 +29,22 @@ spec:
nodePort: 31623
selector:
app.kubernetes.io/component: doris-cluster-fe
type: NodePort
type: NodePort
---
kind: Service
apiVersion: v1
metadata:
name: doris-cluster-fe-internal
namespace: 命名空间
labels:
app.kubernetes.io/component: doris-cluster-fe
spec:
ports:
- name: query-port
protocol: TCP
port: 9030
targetPort: 9030
selector:
app.kubernetes.io/component: doris-cluster-fe
clusterIP: None
type: ClusterIP

View File

@@ -2,7 +2,7 @@ kind: StatefulSet
apiVersion: apps/v1
metadata:
name: doris-cluster-fe
namespace: xakny
namespace: 命名空间
labels:
app.kubernetes.io/component: doris-cluster-fe
spec:
@@ -45,7 +45,7 @@ spec:
defaultMode: 420
containers:
- name: doris-cluster-fe
image: '192.168.0.2:8033/cmii/doris.fe-ubuntu:2.1.6'
image: '镜像仓库/cmii/doris.fe-ubuntu:2.1.6'
command:
- /opt/apache-doris/fe_entrypoint.sh
args:
@@ -195,4 +195,72 @@ spec:
# storageClassName: hcms-efs-class
# volumeMode: Filesystem
serviceName: doris-cluster-fe-internal
podManagementPolicy: Parallel
podManagementPolicy: Parallel
---
apiVersion: v1
kind: ConfigMap
metadata:
name: doris-cluster-fe-conf
namespace: 命名空间
labels:
app.kubernetes.io/component: fe
data:
fe.conf: |
#####################################################################
## The uppercase properties are read and exported by bin/start_fe.sh.
## To see all Frontend configurations,
## see fe/src/org/apache/doris/common/Config.java
#####################################################################
CUR_DATE=`date +%Y%m%d-%H%M%S`
# Log dir
LOG_DIR = ${DORIS_HOME}/log
# For jdk 8
JAVA_OPTS="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx8192m -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:$LOG_DIR/log/fe.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Dlog4j2.formatMsgNoLookups=true"
# Set your own JAVA_HOME
# JAVA_HOME=/path/to/jdk/
##
## the lowercase properties are read by main program.
##
# store metadata, must be created before start FE.
# Default value is ${DORIS_HOME}/doris-meta
# meta_dir = ${DORIS_HOME}/doris-meta
# Default dirs to put jdbc drivers,default value is ${DORIS_HOME}/jdbc_drivers
# jdbc_drivers_dir = ${DORIS_HOME}/jdbc_drivers
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
arrow_flight_sql_port = -1
# Choose one if there are more than one ip except loopback address.
# Note that there should at most one ip match this list.
# If no ip match this rule, will choose one randomly.
# use CIDR format, e.g. 10.10.10.0/24 or IP format, e.g. 10.10.10.1
# Default value is empty.
# priority_networks = 10.10.10.0/24;192.168.0.0/16
# Advanced configurations
# log_roll_size_mb = 1024
# INFO, WARN, ERROR, FATAL
sys_log_level = INFO
# NORMAL, BRIEF, ASYNC,FE 日志的输出模式,其中 NORMAL 为默认的输出模式日志同步输出且包含位置信息。ASYNC 默认是日志异步输出且包含位置信息。 BRIEF 模式是日志异步输出但不包含位置信息。三种日志输出模式的性能依次递增
sys_log_mode = ASYNC
# sys_log_roll_num = 10
# sys_log_verbose_modules = org.apache.doris
# audit_log_dir = $LOG_DIR
# audit_log_modules = slow_query, query
# audit_log_roll_num = 10
# meta_delay_toleration_second = 10
# qe_max_connection = 1024
# qe_query_timeout_second = 300
# qe_slow_log_ms = 5000
#Fully Qualified Domain Name完全限定域名,开启后各节点之间通信基于FQDN
enable_fqdn_mode = true

View File

@@ -4,7 +4,7 @@ apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: doris-fe-meta-pvc
namespace: xakny
namespace: 命名空间
spec:
storageClassName: nfs-prod-distribute
volumeMode: Filesystem
@@ -19,7 +19,7 @@ apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: doris-fe-log-pvc
namespace: xakny
namespace: 命名空间
spec:
storageClassName: nfs-prod-distribute
volumeMode: Filesystem
@@ -34,7 +34,7 @@ apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: doris-be-storage-pvc
namespace: xakny
namespace: 命名空间
spec:
storageClassName: nfs-prod-distribute
volumeMode: Filesystem
@@ -49,7 +49,7 @@ apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: doris-be-log-pvc
namespace: xakny
namespace: 命名空间
spec:
storageClassName: nfs-prod-distribute
volumeMode: Filesystem

View File

@@ -1,5 +0,0 @@
修改PVC文件
修改全部的NAMESPACE
修改statefulset里面的IMAGE

View File

@@ -0,0 +1,2 @@
命名空间
镜像仓库

View File

@@ -0,0 +1,49 @@
export tenant_name=uas
export minio_host_ip=192.168.9.91
mc alias set ${tenant_name} http://${minio_host_ip}:32090 cmii B#923fC7mk
mc mb ${tenant_name}/jadenq ${tenant_name}/tus ${tenant_name}/thumbnail ${tenant_name}/pub-cms ${tenant_name}/live-srs-hls/ ${tenant_name}/mission/ ${tenant_name}/surveillance ${tenant_name}/playback ${tenant_name}/tower ${tenant_name}/modelprocess ${tenant_name}/srs-hls ${tenant_name}/live-cluster-hls ${tenant_name}/geodata ${tenant_name}/ilm-geodata ${tenant_name}/ilm-detect
echo ""
echo "set rabbit mq"
mc admin config set ${tenant_name} notify_amqp:1 delivery_mode="2" exchange_type="direct" no_wait="off" queue_dir="" queue_limit="0" url="amqp://admin:nYcRN91r._hj@helm-rabbitmq:5672" auto_deleted="off" durable="on" exchange="cmii.chinamobile.minio.event" internal="off" mandatory="off" routing_key="cmii.chinamobile.material.warehouse"
echo ""
echo "sleep 5 s!"
sleep 5
mc admin service restart ${tenant_name}
echo "sleep 5 s!"
sleep 5
echo ""
echo "start to add event notification !"
mc event add ${tenant_name}/mission arn:minio:sqs::1:amqp --event put
mc event add ${tenant_name}/modelprocess arn:minio:sqs::1:amqp --event put
mc event add ${tenant_name}/live-srs-hls arn:minio:sqs::1:amqp --event put
mc event add ${tenant_name}/playback arn:minio:sqs::1:amqp --event put
mc event add ${tenant_name}/live-cluster-hls arn:minio:sqs::1:amqp --event put
mc event add ${tenant_name}/geodata arn:minio:sqs::1:amqp --event put
mc event add ${tenant_name}/ilm-geodata arn:minio:sqs::1:amqp --event put
mc event add ${tenant_name}/ilm-detect arn:minio:sqs::1:amqp --event put
mc event add ${tenant_name}/surveillance arn:minio:sqs::1:amqp --event put
mc event add ${tenant_name}/tus arn:minio:sqs::1:amqp --event delete
mc ilm add --expiry-days "1" ${tenant_name}/tus
echo ""
echo "done of init !"

View File

@@ -1,19 +1,19 @@
echo "n
p
t
8e
w
" | fdisk /dev/sda
partprobe
vgextend ubuntu-vg /dev/sda5
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
partprobe
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
echo "n
p
t
8e
w
" | fdisk /dev/sda
partprobe
vgextend ubuntu-vg /dev/sda5
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
partprobe
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
df -TH

View File

@@ -0,0 +1,130 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: helm-nacos-cm
namespace: 修改命名空间
labels:
cmii.app: helm-nacos
cmii.type: middleware
octopus.control: nacos-wdd
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/version: "6.2"
data:
mysql.db.name: "cmii_nacos_config"
mysql.db.host: "helm-mysql"
mysql.port: "3306"
mysql.user: "按照实际的填写"
mysql.password: "按照实际的填写"
---
apiVersion: v1
kind: Service
metadata:
name: helm-nacos
namespace: 修改命名空间
labels:
cmii.app: helm-nacos
cmii.type: middleware
octopus.control: nacos-wdd
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/version: "6.2"
spec:
type: NodePort
selector:
cmii.app: helm-nacos
cmii.type: middleware
ports:
- port: 8848
name: server
targetPort: 8848
nodePort: 38848
- port: 9848
name: server12
targetPort: 9848
- port: 9849
name: server23
targetPort: 9849
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: helm-nacos
namespace: 修改命名空间
labels:
cmii.app: helm-nacos
cmii.type: middleware
octopus.control: nacos-wdd
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/version: "6.2"
spec:
serviceName: helm-nacos
replicas: 1
selector:
matchLabels:
cmii.app: helm-nacos
cmii.type: middleware
template:
metadata:
labels:
cmii.app: helm-nacos
cmii.type: middleware
octopus.control: nacos-wdd
app.kubernetes.io/managed-by: octopus
app.kubernetes.io/version: "6.2"
annotations:
pod.alpha.kubernetes.io/initialized: "true"
spec:
imagePullSecrets:
- name: harborsecret
affinity: {}
containers:
- name: nacos-server
image: 修改Harbor地址/cmii/nacos-server:v2.1.2
ports:
- containerPort: 8848
name: dashboard
- containerPort: 9848
name: tcp-9848
- containerPort: 9849
name: tcp-9849
env:
- name: NACOS_AUTH_ENABLE
value: "false"
- name: NACOS_REPLICAS
value: "1"
- name: MYSQL_SERVICE_DB_NAME
valueFrom:
configMapKeyRef:
name: helm-nacos-cm
key: mysql.db.name
- name: MYSQL_SERVICE_PORT
valueFrom:
configMapKeyRef:
name: helm-nacos-cm
key: mysql.port
- name: MYSQL_SERVICE_USER
valueFrom:
configMapKeyRef:
name: helm-nacos-cm
key: mysql.user
- name: MYSQL_SERVICE_PASSWORD
valueFrom:
configMapKeyRef:
name: helm-nacos-cm
key: mysql.password
- name: MYSQL_SERVICE_HOST
valueFrom:
configMapKeyRef:
name: helm-nacos-cm
key: mysql.db.host
- name: NACOS_SERVER_PORT
value: "8848"
- name: NACOS_APPLICATION_PORT
value: "8848"
- name: PREFER_HOST_MODE
value: "hostname"
- name: MODE
value: standalone
- name: SPRING_DATASOURCE_PLATFORM
value: mysql
---

View File

@@ -0,0 +1,145 @@
kind: Deployment
apiVersion: apps/v1
metadata:
name: cmii-uav-platform-lite-oms
namespace: 修改命名空间
labels:
app.kubernetes.io/app-version: 6.2.0
cmii.app: cmii-uav-platform-lite-oms
cmii.type: frontend
octopus.lite: frontend-app-wdd
spec:
replicas: 1
selector:
matchLabels:
cmii.app: cmii-uav-platform-lite-oms
cmii.type: frontend
template:
metadata:
labels:
cmii.app: cmii-uav-platform-lite-oms
cmii.type: frontend
spec:
volumes:
- name: nginx-conf
configMap:
name: nginx-cm
items:
- key: nginx.conf
path: nginx.conf
defaultMode: 420
- name: tenant-prefix
configMap:
name: tenant-prefix-lite-oms
items:
- key: ingress-config.js
path: ingress-config.js
defaultMode: 420
- name: tenant-prefix-c
configMap:
name: tenant-prefix-lite
items:
- key: system-config-noicp.js
path: system-config-noicp.js
defaultMode: 420
containers:
- name: cmii-uav-platform-lite-oms
image: 修改/cmii/cmii-uav-platform-lite-oms:2.1.0-2026040203-noicp
ports:
- name: platform-9528
containerPort: 9528
protocol: TCP
env:
- name: K8S_NAMESPACE
value: 修改命名空间
- name: APPLICATION_NAME
value: cmii-uav-platform-lite-oms
resources:
limits:
cpu: '1'
memory: 1Gi
requests:
cpu: 50m
memory: 50Mi
volumeMounts:
- name: nginx-conf
mountPath: /etc/nginx/conf.d/nginx.conf
subPath: nginx.conf
- name: tenant-prefix
mountPath: /home/cmii-platform/dist/ingress-config.js
subPath: ingress-config.js
- name: tenant-prefix-c
mountPath: /home/cmii-platform/dist/system-config-noicp.js
subPath: system-config-noicp.js
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
imagePullSecrets:
- name: harborsecret
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
---
kind: Service
apiVersion: v1
metadata:
name: cmii-uav-platform-lite-oms
namespace: 修改命名空间
labels:
app.kubernetes.io/version: 6.2.0
cmii.app: cmii-uav-platform-lite-oms
cmii.type: frontend
octopus.control: frontend-app-wdd
spec:
ports:
- name: web-svc-port
protocol: TCP
port: 9528
targetPort: 9528
selector:
cmii.app: cmii-uav-platform-lite-oms
cmii.type: frontend
type: ClusterIP
sessionAffinity: None
externalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
internalTrafficPolicy: Cluster
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-lite-oms
namespace: 修改命名空间
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "",
CloudHOST: "改为实际的主入口 如192.168.11.159:8088",
ApplicationShortName: "ms",
AppClientId: "",
Headers: {
ORG_ID: 'pago',
PROJECT_ID: 'prgn'
},
TdtToken: "XXXX"
}
var __GlobalSystemConfig = {
systemName: "改为实际的:如 XX市低空应用公共服务平台",
platformName: "",
ShowICP: false,
ShowAgreement: false
};

View File

@@ -1,15 +1,15 @@
version: '2'
services:
minio:
image: 172.16.100.55:8033/cmii/minio:RELEASE.2023-06-02T23-17-26Z
container_name: live-minio
ports:
- "9000:9000"
- "9001:9001"
command: 'server /data --console-address ":9001"'
restart: always
environment:
MINIO_ACCESS_KEY: cmii
MINIO_SECRET_KEY: B#923fC7mk
volumes:
- /var/lib/docker/miniodata/minio-pv:/data
version: '2'
services:
minio:
image: 172.16.100.55:8033/cmii/minio:RELEASE.2023-06-02T23-17-26Z
container_name: live-minio
ports:
- "9000:9000"
- "9001:9001"
command: 'server /data --console-address ":9001"'
restart: always
environment:
MINIO_ACCESS_KEY: cmii
MINIO_SECRET_KEY: B#923fC7mk
volumes:
- /var/lib/docker/miniodata/minio-pv:/data

View File

@@ -1,165 +1,165 @@
kind: ConfigMap
apiVersion: v1
metadata:
name: cmii-uav-tsmpf-cm
namespace: yzyd
data:
server_config_docker.ini: >
#minio=mc alias set minIO https://oss.demo.uavcmlc.com:18000/ cmii
B#923fC7mk
minio=mc alias set minIO http://192.168.0.17:39010/ cmii B#923fC7mk
http_port=8192
docker_logs_path=/workspace/logs
docker_temp_folder=/workspace/temp_folder
mp4_file_size=500
upload_url=no used.
query_file_url=no used.
download_url=no_useful_now.
send_complete_msg_url=no used.
logs_path=no_useful_now.
temp_folder=no_useful_now.
#需要排除的合并任务(这些任务由于ts文件不存在导致无法成功)
exclude_task_codes=
#是否执行playback的任务,0:false; 1:true;
merge_playback=1
#下载ts文件方式http, mc
download_type=mc
#仅合成某个公司的文件;(可用于希望优先下载某个公司的文件的场景); 数字半角逗号分割;
only_download_company_ids=
#是否记录磁盘日志; 0:false, 1:true
log_to_disk=1
#(integer)日志级别; 1:error, 2:warn, 3:info, 4:debug
log_level=2
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: cmii-uav-tsmpf
namespace: yzyd
labels:
app.kubernetes.io/app-version: 6.2.0
app.kubernetes.io/managed-by: octopus-control
cmii.app: cmii-uav-tsmpf
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
replicas: 1
selector:
matchLabels:
cmii.app: cmii-uav-tsmpf
cmii.type: backend
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uav-tsmpf
cmii.type: backend
spec:
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
- name: server-config-docker
configMap:
name: cmii-uav-tsmpf-cm
items:
- key: server_config_docker.ini
path: server_config_docker.ini
containers:
- name: cmii-uav-tsmpf
image: '192.168.0.14:8033/cmii/tsmpf_docker_image:v2.0.1'
ports:
- name: pod-port
containerPort: 8192
protocol: TCP
env:
- name: K8S_NAMESPACE
value: yzyd
- name: APPLICATION_NAME
value: cmii-uav-tsmpf
resources:
requests:
cpu: 500m
memory: 2Gi
volumeMounts:
- name: nfs-backend-log-volume
mountPath: /cmii/logs
subPath: yzyd/cmii-uav-tsmpf
- name: server-config-docker
mountPath: /workspace/server_config_docker.ini
subPath: server_config_docker.ini
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- demo
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
---
kind: Service
apiVersion: v1
metadata:
name: cmii-uav-tsmpf
namespace: yzyd
labels:
app.kubernetes.io/app-version: 6.2.0
app.kubernetes.io/managed-by: octopus-control
cmii.app: cmii-uav-tsmpf
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
ports:
- name: backend-tcp
protocol: TCP
port: 8192
targetPort: 8192
nodePort: 38192
selector:
cmii.app: cmii-uav-tsmpf
cmii.type: backend
type: NodePort
kind: ConfigMap
apiVersion: v1
metadata:
name: cmii-uav-tsmpf-cm
namespace: yzyd
data:
server_config_docker.ini: >
#minio=mc alias set minIO https://oss.demo.uavcmlc.com:18000/ cmii
B#923fC7mk
minio=mc alias set minIO http://192.168.0.17:39010/ cmii B#923fC7mk
http_port=8192
docker_logs_path=/workspace/logs
docker_temp_folder=/workspace/temp_folder
mp4_file_size=500
upload_url=no used.
query_file_url=no used.
download_url=no_useful_now.
send_complete_msg_url=no used.
logs_path=no_useful_now.
temp_folder=no_useful_now.
#需要排除的合并任务(这些任务由于ts文件不存在导致无法成功)
exclude_task_codes=
#是否执行playback的任务,0:false; 1:true;
merge_playback=1
#下载ts文件方式http, mc
download_type=mc
#仅合成某个公司的文件;(可用于希望优先下载某个公司的文件的场景); 数字半角逗号分割;
only_download_company_ids=
#是否记录磁盘日志; 0:false, 1:true
log_to_disk=1
#(integer)日志级别; 1:error, 2:warn, 3:info, 4:debug
log_level=2
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: cmii-uav-tsmpf
namespace: yzyd
labels:
app.kubernetes.io/app-version: 6.2.0
app.kubernetes.io/managed-by: octopus-control
cmii.app: cmii-uav-tsmpf
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
replicas: 1
selector:
matchLabels:
cmii.app: cmii-uav-tsmpf
cmii.type: backend
template:
metadata:
creationTimestamp: null
labels:
cmii.app: cmii-uav-tsmpf
cmii.type: backend
spec:
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
- name: server-config-docker
configMap:
name: cmii-uav-tsmpf-cm
items:
- key: server_config_docker.ini
path: server_config_docker.ini
containers:
- name: cmii-uav-tsmpf
image: '192.168.0.14:8033/cmii/tsmpf_docker_image:v2.0.1'
ports:
- name: pod-port
containerPort: 8192
protocol: TCP
env:
- name: K8S_NAMESPACE
value: yzyd
- name: APPLICATION_NAME
value: cmii-uav-tsmpf
resources:
requests:
cpu: 500m
memory: 2Gi
volumeMounts:
- name: nfs-backend-log-volume
mountPath: /cmii/logs
subPath: yzyd/cmii-uav-tsmpf
- name: server-config-docker
mountPath: /workspace/server_config_docker.ini
subPath: server_config_docker.ini
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- demo
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
---
kind: Service
apiVersion: v1
metadata:
name: cmii-uav-tsmpf
namespace: yzyd
labels:
app.kubernetes.io/app-version: 6.2.0
app.kubernetes.io/managed-by: octopus-control
cmii.app: cmii-uav-tsmpf
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
ports:
- name: backend-tcp
protocol: TCP
port: 8192
targetPort: 8192
nodePort: 38192
selector:
cmii.app: cmii-uav-tsmpf
cmii.type: backend
type: NodePort

View File

@@ -0,0 +1,194 @@
kind: Deployment
apiVersion: apps/v1
metadata:
name: cmii-uav-ai-core
namespace: 修改命名空间
labels:
app.kubernetes.io/app-version: 6.2.0
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uav-ai-core
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
replicas: 1
selector:
matchLabels:
cmii.app: cmii-uav-ai-core
cmii.type: backend
template:
metadata:
labels:
cmii.app: cmii-uav-ai-core
cmii.type: backend
spec:
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
containers:
- name: cmii-uav-ai-core
image: 修改Harbor地址/cmii/cmii-uav-ai-core:5.7.0-shidian202603
ports:
- name: pod-port
containerPort: 8080
protocol: TCP
env:
- name: K8S_NAMESPACE
value: uavcloud-devflight
- name: APPLICATION_NAME
value: cmii-uav-ai-core
- name: CUST_JAVA_OPTS
value: '-Xms200m -Xmx1500m -Dlog4j2.formatMsgNoLookups=true'
- name: NACOS_REGISTRY
value: helm-nacos.cqejpt.svc.cluster.local:8848
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NACOS_DISCOVERY_PORT
value: '8080'
- name: BIZ_CONFIG_GROUP
value: 6.2.0
- name: SYS_CONFIG_GROUP
value: 6.2.0
- name: IMAGE_VERSION
value: 6.2.0
- name: NACOS_USERNAME
value: developer
- name: NACOS_PASSWORD
value: Deve@9128201
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-ai-core
resource: limits.cpu
divisor: '0'
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-ai-core
resource: limits.memory
divisor: '0'
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-ai-core
resource: requests.cpu
divisor: '0'
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-ai-core
resource: requests.memory
divisor: '0'
resources:
limits:
cpu: '2'
memory: 3Gi
requests:
cpu: 300m
memory: 512Mi
volumeMounts:
- name: nfs-backend-log-volume
mountPath: /cmii/logs
subPath: uavcloud-devflight/cmii-uav-ai-core
livenessProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
timeoutSeconds: 5
periodSeconds: 20
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
timeoutSeconds: 5
periodSeconds: 20
successThreshold: 1
failureThreshold: 3
startupProbe:
httpGet:
path: /cmii/health
port: pod-port
scheme: HTTP
initialDelaySeconds: 60
timeoutSeconds: 3
periodSeconds: 20
successThreshold: 1
failureThreshold: 5
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
imagePullSecrets:
- name: harborsecret
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- 修改命名空间
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
---
kind: Service
apiVersion: v1
metadata:
name: cmii-uav-ai-core
namespace: 修改命名空间
labels:
app.kubernetes.io/app-version: 6.2.0
app.kubernetes.io/managed-by: octopus
cmii.app: cmii-uav-ai-core
cmii.type: backend
octopus/control: backend-app-1.0.0
spec:
ports:
- name: backend-tcp
protocol: TCP
port: 8080
targetPort: 8080
selector:
cmii.app: cmii-uav-ai-core
cmii.type: backend
type: ClusterIP

View File

@@ -27,7 +27,7 @@ fP#UaH6qQ3)8
端口 33306
helm-rabbimq
helm-rabbitmq
RabbitMQ
admin
nYcRN91r._hj
@@ -95,4 +95,33 @@ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | gre
uasms
13800000000
MENF!BnG&U4k
MENF!BnG&U4k
13123456789
Sdmi@Fjbh!3
192.168.35.248
Administrator
boge14@Level5
DORIS
cmii
Gy8F5jpaFG@G
192.168.11.14
boge14@Level5
192.168.35.71
V2ryStr@ngPss
192.168.35.80
SuperB@ge.123
kubectl port-forward -n kube-system \
--address 0.0.0.0 \
service/kubernetes-dashboard 39999:443

View File

@@ -0,0 +1,12 @@
apiVersion: v2
name: cmii-live-services
description: to k8s by cmii live
type: application
version: 1.0.0
appVersion: "5.8.0"
keywords:
- live-stream
- gb28181
- video
maintainers:
- name: hujiaxin@sinontt.com

View File

@@ -0,0 +1,228 @@
#!/bin/bash
# CMII Live Services (Merged) Helm 部署脚本
# 特性: WVP + ZLM + ZLM-OSS 合并部署,使用 HostNetwork 模式访问
# live-op | live-proxy | live-helper node port 模式访问
# ============================说明=====================================
# 如果你不需要使用此脚本文件,直接使用 helm install/upgrade ${release_name} . -n ${namespace_name} 启动
# 或者 kubectl apply -f templates/** 创建
# =====================================================================
set -e
# 配置变量 (***配置namespace & releaseName)
RELEASE_NAME="helm-live"
NAMESPACE="uavcloud-live-test"
CHART_PATH="$(cd "$(dirname "$0")" && pwd)"
VALUES_FILE="${CHART_PATH}/values.yaml"
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
echo_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
echo_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
echo_step() {
echo -e "${BLUE}[STEP]${NC} $1"
}
# 检查前置条件
check_prerequisites() {
echo_step "检查前置条件..."
# 检查 kubectl
if ! command -v kubectl &> /dev/null; then
echo_error "kubectl 未安装,请先安装 kubectl"
exit 1
fi
# 检查 helm
if ! command -v helm &> /dev/null; then
echo_error "helm 未安装,请先安装 helm 3.x"
exit 1
fi
# 检查 Kubernetes 连接
if ! kubectl cluster-info &> /dev/null; then
echo_error "无法连接到 Kubernetes 集群,请检查 kubeconfig 配置"
exit 1
fi
echo_info "前置条件检查通过"
}
# 创建命名空间
create_namespace() {
echo_step "创建命名空间: ${NAMESPACE}"
kubectl create namespace ${NAMESPACE} --dry-run=client -o yaml | kubectl apply -f -
}
# 验证配置文件
validate_config() {
echo_step "验证配置文件..."
if [ ! -f "${VALUES_FILE}" ]; then
echo_error "配置文件不存在: ${VALUES_FILE}"
exit 1
fi
# 检查必要配置 - 外部依赖必须填写
for field in "external.database.host" "external.redis.host" "external.minio.endpoint" "external.rabbitmq.host"; do
if grep -q "${field}: \"\"" "${VALUES_FILE}" || grep -q "${field}: ''" "${VALUES_FILE}"; then
echo_error "请在 values.yaml 中配置 ${field}"
exit 1
fi
done
echo_info "配置文件验证通过"
}
# 渲染模板(用于调试)
render_templates() {
echo_step "渲染 Helm 模板..."
helm template ${RELEASE_NAME} "${CHART_PATH}" -n ${NAMESPACE} -f "${VALUES_FILE}" > /tmp/rendered-merged.yaml
echo_info "模板已渲染到: /tmp/rendered-merged.yaml"
}
# 安装或升级
install_or_upgrade() {
echo_step "部署服务..."
# 检查是否已存在 release
if helm status ${RELEASE_NAME} -n ${NAMESPACE} &> /dev/null; then
echo_info "检测到已存在的 release,执行升级..."
helm upgrade ${RELEASE_NAME} "${CHART_PATH}" \
--namespace "${NAMESPACE}" \
--values "${VALUES_FILE}" \
--timeout 10m
else
echo_info "执行全新安装..."
helm install "${RELEASE_NAME}" "${CHART_PATH}" \
--namespace "${NAMESPACE}" \
--values "${VALUES_FILE}" \
--timeout 10m \
--create-namespace
fi
echo_info "部署完成!"
}
# 等待 Pod 就绪
wait_for_pods() {
echo_step "等待 Pod 就绪..."
echo_info "等待 Media Suite Pod (包含 WVP + ZLM + ZLM-OSS)..."
kubectl wait --for=condition=ready pod \
-l app=media-suite \
-n "${NAMESPACE}" \
--timeout=600s || {
echo_warn "Media Suite Pod 可能未就绪,请手动检查"
}
echo_info "等待其他服务 Pod..."
kubectl wait --for=condition=ready pod \
-l release="${RELEASE_NAME}" \
-n "${NAMESPACE}" \
--timeout=300s || {
echo_warn "部分 Pod 可能未就绪,请手动检查"
}
}
# 显示状态
show_status() {
echo_step "服务状态:"
echo ""
helm status "${RELEASE_NAME}" -n "${NAMESPACE}"
echo ""
echo_info "Pod 列表:"
kubectl get pods -n "${NAMESPACE}" -l release="${RELEASE_NAME}"
echo ""
echo_info "Service 列表:"
kubectl get svc -n "${NAMESPACE}" -l release="${RELEASE_NAME}"
echo ""
# 获取节点 IP
NODE_IP=$(kubectl get nodes -o jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}' 2>/dev/null || echo "<NODE_IP>")
echo ""
echo_info "========================================="
echo_info "服务访问地址"
echo_info "========================================="
echo_info "Media Suite (HostNetwork 模式):"
echo " WVP HTTP: http://${NODE_IP}:$(grep 'http:' "${VALUES_FILE}" | head -1 | awk '{print $2}')"
echo " WVP SIP: ${NODE_IP}:$(grep 'sip:' "${VALUES_FILE}" | head -1 | awk '{print $2}')/UDP"
echo " ZLM HTTP: http://${NODE_IP}:$(grep 'http:' "${VALUES_FILE}" | head -1 | awk '{print $2}')"
echo " ZLM RTMP: rtmp://${NODE_IP}:$(grep 'rtmp:' "${VALUES_FILE}" | head -1 | awk '{print $2}')"
echo " ZLM RTSP: rtsp://${NODE_IP}:$(grep 'rtsp:' "${VALUES_FILE}" | head -1 | awk '{print $2}')"
echo " ZLM-OSS: http://${NODE_IP}:$(grep 'port:' "${VALUES_FILE}" | grep -A1 'zlmOss' | tail -1 | awk '{print $2}')"
echo ""
echo_info "其他服务 (NodePort 模式):"
echo " Live Operator: http://${NODE_IP}:$(grep 'liveOpNodePort' "${VALUES_FILE}" | awk '{print $2}')"
echo " Live Proxy: http://${NODE_IP}:$(grep 'liveProxyNodePort' "${VALUES_FILE}" | awk '{print $2}')"
echo " Live Helper: http://${NODE_IP}:$(grep 'liveHelperNodePort' "${VALUES_FILE}" | awk '{print $2}')"
}
# 显示日志查看命令
show_log_commands() {
echo ""
echo_info "========================================="
echo_info "日志查看命令"
echo_info "========================================="
echo_info "Media Suite 容器日志:"
echo " kubectl logs -f deployment/${RELEASE_NAME}-media-suite -n ${NAMESPACE} -c wvp"
echo " kubectl logs -f deployment/${RELEASE_NAME}-media-suite -n ${NAMESPACE} -c zlm"
echo " kubectl logs -f deployment/${RELEASE_NAME}-media-suite -n ${NAMESPACE} -c zlm-oss"
echo ""
echo_info "其他服务日志:"
echo " kubectl logs -f deployment/${RELEASE_NAME}-live-op -n ${NAMESPACE}"
echo " kubectl logs -f deployment/${RELEASE_NAME}-live-proxy -n ${NAMESPACE}"
echo " kubectl logs -f deployment/${RELEASE_NAME}-live-helper -n ${NAMESPACE}"
}
# 显示卸载命令
show_uninstall_command() {
echo ""
echo_info "========================================="
echo_info "卸载命令"
echo_info "========================================="
echo " helm uninstall ${RELEASE_NAME} -n ${NAMESPACE}"
}
# 主函数
main() {
echo_info "========================================="
echo_info "CMII Live Services (Merged) Helm 部署"
echo_info "WVP + ZLM + ZLM-OSS 合并部署模式"
echo_info "========================================="
echo ""
check_prerequisites
validate_config
create_namespace
install_or_upgrade
wait_for_pods
show_status
show_log_commands
show_uninstall_command
echo ""
echo_info "========================================="
echo_info "部署完成!"
echo_info "========================================="
}
# 执行主函数
main "$@"

View File

@@ -0,0 +1,230 @@
# live_operator_init
CREATE DATABASE IF NOT EXISTS `cmii_live_operator`;
USE `cmii_live_operator`;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for live_gb_catalog
-- ----------------------------
DROP TABLE IF EXISTS `live_gb_catalog`;
CREATE TABLE `live_gb_catalog` (
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT 'id',
`scope_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'scope id',
`create_scope_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'create scope id',
`device_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'wvp device_id',
`type` tinyint(1) NULL DEFAULT NULL COMMENT 'region or group',
`parent_id` bigint(0) NULL DEFAULT NULL COMMENT 'sys parent catalog',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 0 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for live_gb_parent_platform
-- ----------------------------
DROP TABLE IF EXISTS `live_gb_parent_platform`;
CREATE TABLE `live_gb_parent_platform` (
`id` bigint(0) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'id',
`platform_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'parentId',
`scope_id` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'company scope permission id',
`shared` tinyint(1) NULL DEFAULT 0 COMMENT 'is read',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `id`(`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 0 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for live_gb_sub_platform
-- ----------------------------
DROP TABLE IF EXISTS `live_gb_sub_platform`;
CREATE TABLE `live_gb_sub_platform` (
`platform_id` int(0) NOT NULL AUTO_INCREMENT,
`platform_name` varchar(96) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`platform_gb_id` char(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`platform_gb_domain` char(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`platform_ip` varchar(96) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`platform_port_sip` int(0) NOT NULL,
`platform_port_rtmp` int(0) NOT NULL,
`platform_port_rtsp` int(0) NULL DEFAULT NULL,
`platform_port_srt` int(0) NULL DEFAULT NULL,
`platform_port_http` int(0) NULL DEFAULT NULL,
`use_https` tinyint(1) NULL DEFAULT NULL,
`platform_secret` varchar(96) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`company_id` int(0) NOT NULL,
`shared` tinyint(1) NULL DEFAULT 0,
PRIMARY KEY (`platform_id`) USING BTREE,
UNIQUE INDEX `uniq_gb_id`(`platform_gb_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for live_hub
-- ----------------------------
DROP TABLE IF EXISTS `live_hub`;
CREATE TABLE `live_hub` (
`id` int(0) NOT NULL AUTO_INCREMENT,
`hub` varchar(48) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`dvr` int(0) NOT NULL DEFAULT 0 COMMENT 'days for reserve, 0 for disable',
`pub` tinyint(0) NOT NULL DEFAULT 1 COMMENT '0: private; 1: pub play only; 2 pub push only; 3: pub all',
`active` tinyint(0) NOT NULL DEFAULT 1 COMMENT '1 yes, 0 no',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uniq_hub`(`hub`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 0 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for live_platform_proxy
-- ----------------------------
DROP TABLE IF EXISTS `live_platform_proxy`;
CREATE TABLE `live_platform_proxy` (
`platform_id` int(0) NOT NULL AUTO_INCREMENT,
`platform_name` varchar(96) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`platform_gb_id` char(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`platform_gb_domain` char(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`platform_ip` varchar(96) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`platform_port_sip` int(0) NOT NULL,
`platform_port_rtmp` int(0) NOT NULL,
`platform_port_rtsp` int(0) NULL DEFAULT NULL,
`platform_port_srt` int(0) NULL DEFAULT NULL,
`platform_port_http` int(0) NULL DEFAULT NULL,
`use_https` tinyint(1) NULL DEFAULT NULL,
`platform_secret` varchar(96) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`scope_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`shared` tinyint(1) NULL DEFAULT 0,
`type` tinyint(1) NULL DEFAULT NULL,
PRIMARY KEY (`platform_id`) USING BTREE,
UNIQUE INDEX `uniq_gb_id`(`platform_gb_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 0 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for live_record
-- ----------------------------
DROP TABLE IF EXISTS `live_record`;
CREATE TABLE `live_record` (
`id` int(0) NOT NULL AUTO_INCREMENT,
`record_uuid` CHAR(32) NOT NULL COMMENT '业务对外唯一IDUUID32字符串',
`hub` varchar(48) NOT NULL,
`stream` varchar(128) NOT NULL,
`time_begin` datetime(3) NOT NULL,
`time_end` datetime(3) NULL DEFAULT NULL,
`size` bigint(0) NOT NULL,
`status` tinyint(0) NOT NULL COMMENT '0-ok; 1-trash; 2-deleted; 3-live(完成部分上传,本段记录还未结束,仍在直播中); 4-init(上传首个切片)',
`thumbnail_uuid` CHAR(32) NULL DEFAULT NULL,
`thumbnail_bucket` varchar(48) NULL DEFAULT NULL,
`thumbnail_path` varchar(128) NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `uniq_record_uuid` (`record_uuid`),
UNIQUE INDEX `uniq_hub_stream_time` (`hub`, `stream`, `time_begin`),
INDEX `idx_hub_stream_status` (`hub`, `stream`, `status`, `time_begin`),
INDEX `idx_time_begin` (`time_begin`)
) ENGINE = InnoDB AUTO_INCREMENT = 0 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for live_segment
-- ----------------------------
DROP TABLE IF EXISTS `live_segment`;
CREATE TABLE `live_segment` (
`id` bigint(0) NOT NULL AUTO_INCREMENT,
`file_uuid` CHAR(32) NOT NULL,
`size` bigint(0) NOT NULL,
`time_begin` datetime(3) NOT NULL,
`time_end` datetime(3) NOT NULL,
`status` tinyint(0) NOT NULL COMMENT '0-ok; 1-trash; 2-deleted; 3-uploading',
`hub` varchar(48) NOT NULL,
`stream` varchar(128) NOT NULL,
`type` varchar(12) NOT NULL,
`bucket` varchar(32) NOT NULL,
`filename` varchar(128) NOT NULL,
`record_uuid` CHAR(32) NOT NULL COMMENT '推流记录id',
PRIMARY KEY (`id`),
UNIQUE INDEX `uniq_file_uuid` (`file_uuid`),
UNIQUE INDEX `uniq_hub_stream_time` (`hub`, `stream`, `time_begin`),
INDEX `idx_hub_stream_status` (`hub`, `stream`, `status`, `time_begin`),
INDEX `idx_time_begin` (`time_begin`),
INDEX `idx_record_uuid` (`record_uuid`)
) ENGINE = InnoDB AUTO_INCREMENT = 0 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for live_stream
-- ----------------------------
DROP TABLE IF EXISTS `live_stream`;
CREATE TABLE `live_stream` (
`id` char(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '0',
`hub` varchar(48) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`stream` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`dvr` int(0) NULL DEFAULT NULL COMMENT 'days for reserve, 0 for disable, null for inherit',
`pub` tinyint(0) NOT NULL DEFAULT 4 COMMENT '0: private; 1: pub play only; 2 pub push only; 3: pub all; 4: inherit',
`active` tinyint(0) NOT NULL DEFAULT 2 COMMENT '2 for inherit',
`activated_after` bigint(0) NULL DEFAULT NULL COMMENT 'sign effective time',
`metadata` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'business json',
`gb_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'gb_name',
`gb_enabled` tinyint(1) NULL DEFAULT NULL COMMENT '1 enabled ; 0 disabled',
`platform_proxy_id` bigint(0) NULL DEFAULT NULL COMMENT 'proxy id',
`scope_id` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'scope',
`gb_device_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'gb_id',
`stream_push_id` int(0) NULL DEFAULT NULL COMMENT 'stream push id',
`gb_id` int(0) NULL DEFAULT NULL COMMENT 'gb id',
`pushing` tinyint(1) NULL DEFAULT NULL COMMENT '1 true 0 false',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uniq_stream`(`hub`, `stream`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for live_token
-- ----------------------------
DROP TABLE IF EXISTS `live_token`;
CREATE TABLE `live_token` (
`id` int(0) NOT NULL AUTO_INCREMENT COMMENT 'id',
`access_key` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'ak',
`secret_key` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'sk',
`active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1 yes, 0 no',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 0 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for monitor_metric
-- ----------------------------
DROP TABLE IF EXISTS `monitor_metric`;
CREATE TABLE `monitor_metric` (
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '指标数据id',
`metric_type` tinyint(1) NULL DEFAULT NULL COMMENT '指标类型',
`data` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '指标值(存储的是字符串、可能是json)',
`time` datetime(0) NULL DEFAULT NULL COMMENT '对应节点时间',
`create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '新增时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_metric_time`(`metric_type`, `time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 0 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for live_config
-- ----------------------------
DROP TABLE IF EXISTS `live_config`;
CREATE TABLE `live_config` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
`k` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'key',
`v` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT 'value',
`prefix` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'name',
`remark` varchar(30) DEFAULT NULL COMMENT 'remark',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='配置表';
-- ----------------------------
-- live_hub data init
-- ----------------------------
INSERT INTO `live_hub`
VALUES (1, '__default_', 0, 1, 1);
INSERT INTO `live_hub`
VALUES (2, 'live', 60, 1, 1);
INSERT INTO `live_hub`
VALUES (3, 'temp', 0, 1, 1);
INSERT INTO `live_hub`
VALUES (4, 'pub', 0, 3, 1);
-- ----------------------------
-- live_token data init
-- ----------------------------
INSERT INTO `live_token`
VALUES (1, '2a4052005cee', '3d13c615112649e9b2e5f1f1', 1);
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -0,0 +1,135 @@
CREATE DATABASE IF NOT EXISTS cmii_live_proxy;
use cmii_live_proxy;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for proxy_task
-- ----------------------------
DROP TABLE IF EXISTS `proxy_task`;
CREATE TABLE `proxy_task`
(
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '任务id',
`template_id` bigint(0) NOT NULL COMMENT '关联模板',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务名',
`create_at` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`update_at` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '填充参数',
`state` tinyint(1) NOT NULL DEFAULT 1 COMMENT '执行状态\r\n(1、待定 2、执行中 3、异常 4、暂停)',
`uuid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '123456' COMMENT '唯一标识(和process绑定)',
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态',
`execution_time` datetime(0) NULL DEFAULT NULL COMMENT '执行时间',
`sustain_time` bigint(0) NULL DEFAULT NULL COMMENT '持续时间',
`retry_count` int(0) NULL DEFAULT 0 COMMENT '重试次数',
`process_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '进程id最新',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 8
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT = '任务表'
ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for proxy_task_log
-- ----------------------------
DROP TABLE IF EXISTS `proxy_task_log`;
CREATE TABLE `proxy_task_log`
(
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '日志id',
`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '日志',
`task_id` bigint(0) NULL DEFAULT NULL COMMENT '任务id',
`process_id` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '进程id',
`create_at` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`update_at` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`uuid` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '唯一码',
`is_new` tinyint(1) NOT NULL COMMENT '是否最新进程',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 4076
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT = '任务日志表'
ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for proxy_template
-- ----------------------------
DROP TABLE IF EXISTS `proxy_template`;
CREATE TABLE `proxy_template`
(
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '模板id',
`create_at` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`update_at` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`ffmpeg_type` tinyint(1) NOT NULL DEFAULT 1 COMMENT '执行类型1 ffmpeg 2 ffprobe 3 ffplay',
`command` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '模板数组',
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '模板名称',
`status` tinyint(1) NULL DEFAULT 1 COMMENT '状态',
`placeholder_count` bigint(0) NULL DEFAULT NULL COMMENT '占位参数个数',
`operator_type` tinyint(1) NULL DEFAULT 1 COMMENT '执行类型1 任务操作 2 文件操作',
`alias` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '别名',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 10
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT = '模板表'
ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for proxy_video_dest_file
-- ----------------------------
DROP TABLE IF EXISTS `proxy_video_dest_file`;
CREATE TABLE `proxy_video_dest_file`
(
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '转换文件',
`create_at` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`update_at` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`template_id` bigint(0) NULL DEFAULT NULL COMMENT '模板id',
`params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '转换参数',
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '转换地址',
`uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件uri',
`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件url',
`size` bigint(0) NULL DEFAULT NULL COMMENT '文件大小',
`src_file_type` tinyint(1) NULL DEFAULT NULL COMMENT '源文件选择类型(1 本地 2网络)',
`src_file_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '源文件地址(如果为本地文件就是id)',
`mime_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件转换扩展类型',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件名',
`state` tinyint(1) NOT NULL DEFAULT 0 COMMENT '执行状态\r\n(1、待定 2、执行中 3、异常 4、结束)',
`uuid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '唯一码',
`process_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '进程id',
`log` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '执行日志',
`parent_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '父文件目录',
`path_uuid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '父文件目录uuid',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 22
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT = '操作文件表'
ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for proxy_video_src_file
-- ----------------------------
DROP TABLE IF EXISTS `proxy_video_src_file`;
CREATE TABLE `proxy_video_src_file`
(
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '文件id',
`create_at` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`update_at` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件名',
`uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件请求uri',
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件路径',
`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件全路径url',
`mime_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件类型',
`size` bigint(0) NULL DEFAULT NULL COMMENT '文件大小',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 15
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT = '视频源文件表'
ROW_FORMAT = Dynamic;
-- ----------------------------
-- proxy_template init data
-- ----------------------------
INSERT INTO `proxy_template` VALUES (1, '2026-03-30 15:11:59', '2026-03-30 15:12:50', 1, '-re -f lavfi -i testsrc=duration=86400:size=1280x720:rate=30 -c:v libx264 -preset ultrafast -tune zerolatency -profile baseline -g 30 -keyint_min 30 -sc_threshold 0 -pix_fmt yuv420p -f flv %s', '流媒体底座测试推流', 1, 1, 1, 'proxy_live_stream');
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -0,0 +1,576 @@
CREATE DATABASE IF NOT EXISTS `wvp`;
USE `wvp`;
/*建表*/
-- 存储国标设备的基础信息及在线状态
drop table IF EXISTS wvp_device;
create table IF NOT EXISTS wvp_device
(
id serial primary key COMMENT '主键ID',
device_id character varying(50) not null COMMENT '国标设备编号',
name character varying(255) COMMENT '设备名称',
manufacturer character varying(255) COMMENT '设备厂商',
model character varying(255) COMMENT '设备型号',
firmware character varying(255) COMMENT '固件版本号',
transport character varying(50) COMMENT '信令传输协议TCP/UDP',
stream_mode character varying(50) COMMENT '拉流方式(主动/被动)',
on_line bool default false COMMENT '在线状态',
register_time character varying(50) COMMENT '注册时间',
keepalive_time character varying(50) COMMENT '最近心跳时间',
ip character varying(50) COMMENT '设备IP地址',
create_time character varying(50) COMMENT '创建时间',
update_time character varying(50) COMMENT '更新时间',
port integer COMMENT '信令端口',
expires integer COMMENT '注册有效期',
subscribe_cycle_for_catalog integer DEFAULT 0 COMMENT '目录订阅周期',
subscribe_cycle_for_mobile_position integer DEFAULT 0 COMMENT '移动位置订阅周期',
mobile_position_submission_interval integer DEFAULT 5 COMMENT '移动位置上报间隔',
subscribe_cycle_for_alarm integer DEFAULT 0 COMMENT '报警订阅周期',
host_address character varying(50) COMMENT '设备域名/主机地址',
charset character varying(50) COMMENT '信令字符集',
ssrc_check bool default false COMMENT '是否校验SSRC',
geo_coord_sys character varying(50) COMMENT '坐标系类型',
media_server_id character varying(50) default 'auto' COMMENT '绑定的流媒体服务ID',
custom_name character varying(255) COMMENT '自定义显示名称',
sdp_ip character varying(50) COMMENT 'SDP中携带的IP',
local_ip character varying(50) COMMENT '本地局域网IP',
password character varying(255) COMMENT '设备鉴权密码',
as_message_channel bool default false COMMENT '是否作为消息通道',
heart_beat_interval integer COMMENT '心跳间隔',
heart_beat_count integer COMMENT '心跳失败次数',
position_capability integer COMMENT '定位能力标识',
broadcast_push_after_ack bool default false COMMENT 'ACK后是否自动推流',
server_id character varying(50) COMMENT '所属信令服务器ID',
constraint uk_device_device unique (device_id)
);
-- 记录各设备上报的报警信息
drop table IF EXISTS wvp_device_alarm;
create table IF NOT EXISTS wvp_device_alarm
(
id serial primary key COMMENT '主键ID',
device_id character varying(50) not null COMMENT '国标设备ID',
channel_id character varying(50) not null COMMENT '报警关联的通道ID',
alarm_priority character varying(50) COMMENT '报警级别',
alarm_method character varying(50) COMMENT '报警方式(视频/语音等)',
alarm_time character varying(50) COMMENT '报警发生时间',
alarm_description character varying(255) COMMENT '报警描述',
longitude double precision COMMENT '报警经度',
latitude double precision COMMENT '报警纬度',
alarm_type character varying(50) COMMENT '报警类型',
create_time character varying(50) not null COMMENT '数据入库时间'
);
-- 存储移动位置订阅上报的数据
drop table IF EXISTS wvp_device_mobile_position;
create table IF NOT EXISTS wvp_device_mobile_position
(
id serial primary key COMMENT '主键ID',
device_id character varying(50) not null COMMENT '设备ID',
channel_id character varying(50) not null COMMENT '通道ID',
device_name character varying(255) COMMENT '设备名称',
time character varying(50) COMMENT '上报时间',
longitude double precision COMMENT '经度',
latitude double precision COMMENT '纬度',
altitude double precision COMMENT '海拔',
speed double precision COMMENT '速度',
direction double precision COMMENT '方向角',
report_source character varying(50) COMMENT '上报来源',
create_time character varying(50) COMMENT '入库时间'
);
-- 保存设备下的通道信息以及扩展属性
drop table IF EXISTS wvp_device_channel;
create table IF NOT EXISTS wvp_device_channel
(
id serial primary key COMMENT '主键ID',
device_id character varying(50) COMMENT '所属设备ID',
name character varying(255) COMMENT '通道名称',
manufacturer character varying(50) COMMENT '厂商',
model character varying(50) COMMENT '型号',
owner character varying(50) COMMENT '归属单位',
civil_code character varying(50) COMMENT '行政区划代码',
block character varying(50) COMMENT '区域/小区编号',
address character varying(50) COMMENT '安装地址',
parental integer COMMENT '是否有子节点',
parent_id character varying(50) COMMENT '父级通道ID',
safety_way integer COMMENT '安全防范等级',
register_way integer COMMENT '注册方式',
cert_num character varying(50) COMMENT '证书编号',
certifiable integer COMMENT '是否可认证',
err_code integer COMMENT '故障状态码',
end_time character varying(50) COMMENT '服务截止时间',
secrecy integer COMMENT '保密级别',
ip_address character varying(50) COMMENT '设备IP地址',
port integer COMMENT '设备端口',
password character varying(255) COMMENT '访问密码',
status character varying(50) COMMENT '在线状态',
longitude double precision COMMENT '经度',
latitude double precision COMMENT '纬度',
ptz_type integer COMMENT '云台类型',
position_type integer COMMENT '点位类型',
room_type integer COMMENT '房间类型',
use_type integer COMMENT '使用性质',
supply_light_type integer COMMENT '补光方式',
direction_type integer COMMENT '朝向',
resolution character varying(255) COMMENT '分辨率',
business_group_id character varying(255) COMMENT '业务分组ID',
download_speed character varying(255) COMMENT '下载/码流速率',
svc_space_support_mod integer COMMENT '空域SVC能力',
svc_time_support_mode integer COMMENT '时域SVC能力',
create_time character varying(50) not null COMMENT '创建时间',
update_time character varying(50) not null COMMENT '更新时间',
sub_count integer COMMENT '子节点数量',
stream_id character varying(255) COMMENT '绑定的流ID',
has_audio bool default false COMMENT '是否有音频',
gps_time character varying(50) COMMENT 'GPS定位时间',
stream_identification character varying(50) COMMENT '流标识',
channel_type int default 0 not null COMMENT '通道类型',
map_level int default 0 COMMENT '地图层级',
gb_device_id character varying(50) COMMENT 'GB内的设备ID',
gb_name character varying(255) COMMENT 'GB上报的名称',
gb_manufacturer character varying(255) COMMENT 'GB厂商',
gb_model character varying(255) COMMENT 'GB型号',
gb_owner character varying(255) COMMENT 'GB归属',
gb_civil_code character varying(255) COMMENT 'GB行政区划',
gb_block character varying(255) COMMENT 'GB区域',
gb_address character varying(255) COMMENT 'GB地址',
gb_parental integer COMMENT 'GB子节点标识',
gb_parent_id character varying(255) COMMENT 'GB父通道',
gb_safety_way integer COMMENT 'GB安全防范',
gb_register_way integer COMMENT 'GB注册方式',
gb_cert_num character varying(50) COMMENT 'GB证书编号',
gb_certifiable integer COMMENT 'GB认证标志',
gb_err_code integer COMMENT 'GB错误码',
gb_end_time character varying(50) COMMENT 'GB截止时间',
gb_secrecy integer COMMENT 'GB保密级别',
gb_ip_address character varying(50) COMMENT 'GB IP',
gb_port integer COMMENT 'GB端口',
gb_password character varying(50) COMMENT 'GB接入密码',
gb_status character varying(50) COMMENT 'GB状态',
gb_longitude double COMMENT 'GB经度',
gb_latitude double COMMENT 'GB纬度',
gb_business_group_id character varying(50) COMMENT 'GB业务分组',
gb_ptz_type integer COMMENT 'GB云台类型',
gb_position_type integer COMMENT 'GB点位类型',
gb_room_type integer COMMENT 'GB房间类型',
gb_use_type integer COMMENT 'GB用途',
gb_supply_light_type integer COMMENT 'GB补光',
gb_direction_type integer COMMENT 'GB朝向',
gb_resolution character varying(255) COMMENT 'GB分辨率',
gb_download_speed character varying(255) COMMENT 'GB码流速率',
gb_svc_space_support_mod integer COMMENT 'GB空域SVC',
gb_svc_time_support_mode integer COMMENT 'GB时域SVC',
record_plan_id integer COMMENT '绑定的录像计划ID',
data_type integer not null COMMENT '数据类型标识',
data_device_id integer not null COMMENT '数据来源设备主键',
gps_speed double precision COMMENT 'GPS速度',
gps_altitude double precision COMMENT 'GPS海拔',
gps_direction double precision COMMENT 'GPS方向',
enable_broadcast integer default 0 COMMENT '是否支持广播',
index (data_type),
index (data_device_id),
constraint uk_wvp_unique_channel unique (gb_device_id)
);
-- 媒体服务器(如 ZLM节点信息
drop table IF EXISTS wvp_media_server;
create table IF NOT EXISTS wvp_media_server
(
id character varying(255) primary key COMMENT '媒体服务器ID',
ip character varying(50) COMMENT '服务器IP',
hook_ip character varying(50) COMMENT 'hook回调IP',
sdp_ip character varying(50) COMMENT 'SDP中使用的IP',
stream_ip character varying(50) COMMENT '推流使用的IP',
http_port integer COMMENT 'HTTP端口',
http_ssl_port integer COMMENT 'HTTPS端口',
rtmp_port integer COMMENT 'RTMP端口',
rtmp_ssl_port integer COMMENT 'RTMPS端口',
rtp_proxy_port integer COMMENT 'RTP代理端口',
rtsp_port integer COMMENT 'RTSP端口',
rtsp_ssl_port integer COMMENT 'RTSPS端口',
flv_port integer COMMENT 'FLV端口',
flv_ssl_port integer COMMENT 'FLV HTTPS端口',
mp4_port integer COMMENT 'MP4点播端口',
mp4_ssl_port integer COMMENT 'MP4 HTTPS端口',
ws_flv_port integer COMMENT 'WS-FLV端口',
ws_flv_ssl_port integer COMMENT 'WS-FLV HTTPS端口',
jtt_proxy_port integer COMMENT 'JT/T代理端口',
auto_config bool default false COMMENT '是否自动配置',
secret character varying(50) COMMENT 'ZLM校验密钥',
type character varying(50) default 'zlm' COMMENT '节点类型',
rtp_enable bool default false COMMENT '是否开启RTP',
rtp_port_range character varying(50) COMMENT 'RTP端口范围',
send_rtp_port_range character varying(50) COMMENT '发送RTP端口范围',
record_assist_port integer COMMENT '录像辅助端口',
default_server bool default false COMMENT '是否默认节点',
create_time character varying(50) COMMENT '创建时间',
update_time character varying(50) COMMENT '更新时间',
hook_alive_interval integer COMMENT 'hook心跳间隔',
record_path character varying(255) COMMENT '录像目录',
record_day integer default 7 COMMENT '录像保留天数',
transcode_suffix character varying(255) COMMENT '转码指令后缀',
server_id character varying(50) COMMENT '对应信令服务器ID',
constraint uk_media_server_unique_ip_http_port unique (ip, http_port, server_id)
);
-- 上级国标平台注册信息
drop table IF EXISTS wvp_platform;
create table IF NOT EXISTS wvp_platform
(
id serial primary key COMMENT '主键ID',
enable bool default false COMMENT '是否启用该平台注册',
name character varying(255) COMMENT '平台名称',
server_gb_id character varying(50) COMMENT '上级平台国标编码',
server_gb_domain character varying(50) COMMENT '上级平台域编码',
server_ip character varying(50) COMMENT '上级平台IP',
server_port integer COMMENT '上级平台注册端口',
device_gb_id character varying(50) COMMENT '本平台向上注册的国标编码',
device_ip character varying(50) COMMENT '本平台信令IP',
device_port character varying(50) COMMENT '本平台信令端口',
username character varying(255) COMMENT '注册用户名',
password character varying(50) COMMENT '注册密码',
expires character varying(50) COMMENT '注册有效期',
keep_timeout character varying(50) COMMENT '心跳超时时间',
transport character varying(50) COMMENT '传输协议UDP/TCP',
civil_code character varying(50) COMMENT '行政区划代码',
manufacturer character varying(255) COMMENT '厂商',
model character varying(255) COMMENT '型号',
address character varying(255) COMMENT '地址',
character_set character varying(50) COMMENT '字符集',
ptz bool default false COMMENT '是否支持PTZ',
rtcp bool default false COMMENT '是否开启RTCP',
status bool default false COMMENT '注册状态',
catalog_group integer COMMENT '目录分组方式',
register_way integer COMMENT '注册方式',
secrecy integer COMMENT '保密级别',
create_time character varying(50) COMMENT '创建时间',
update_time character varying(50) COMMENT '更新时间',
as_message_channel bool default false COMMENT '是否作为消息通道',
catalog_with_platform integer default 1 COMMENT '是否推送平台目录',
catalog_with_group integer default 1 COMMENT '是否推送分组目录',
catalog_with_region integer default 1 COMMENT '是否推送区域目录',
auto_push_channel bool default true COMMENT '是否自动推送通道',
send_stream_ip character varying(50) COMMENT '推流时使用的IP',
server_id character varying(50) COMMENT '对应信令服务器ID',
constraint uk_platform_unique_server_gb_id unique (server_gb_id)
);
-- 国标平台下发的通道映射关系
drop table IF EXISTS wvp_platform_channel;
create table IF NOT EXISTS wvp_platform_channel
(
id serial primary key COMMENT '主键ID',
platform_id integer COMMENT '平台ID',
device_channel_id integer COMMENT '本地通道表主键',
custom_device_id character varying(50) COMMENT '自定义国标编码',
custom_name character varying(255) COMMENT '自定义名称',
custom_manufacturer character varying(50) COMMENT '自定义厂商',
custom_model character varying(50) COMMENT '自定义型号',
custom_owner character varying(50) COMMENT '自定义归属',
custom_civil_code character varying(50) COMMENT '自定义行政区划',
custom_block character varying(50) COMMENT '自定义区域',
custom_address character varying(50) COMMENT '自定义地址',
custom_parental integer COMMENT '自定义父/子标识',
custom_parent_id character varying(50) COMMENT '自定义父节点',
custom_safety_way integer COMMENT '自定义安全防范',
custom_register_way integer COMMENT '自定义注册方式',
custom_cert_num character varying(50) COMMENT '自定义证书编号',
custom_certifiable integer COMMENT '自定义可认证标志',
custom_err_code integer COMMENT '自定义错误码',
custom_end_time character varying(50) COMMENT '自定义截止时间',
custom_secrecy integer COMMENT '自定义保密级别',
custom_ip_address character varying(50) COMMENT '自定义IP',
custom_port integer COMMENT '自定义端口',
custom_password character varying(255) COMMENT '自定义密码',
custom_status character varying(50) COMMENT '自定义状态',
custom_longitude double precision COMMENT '自定义经度',
custom_latitude double precision COMMENT '自定义纬度',
custom_ptz_type integer COMMENT '自定义云台类型',
custom_position_type integer COMMENT '自定义点位类型',
custom_room_type integer COMMENT '自定义房间类型',
custom_use_type integer COMMENT '自定义用途',
custom_supply_light_type integer COMMENT '自定义补光',
custom_direction_type integer COMMENT '自定义朝向',
custom_resolution character varying(255) COMMENT '自定义分辨率',
custom_business_group_id character varying(255) COMMENT '自定义业务分组',
custom_download_speed character varying(255) COMMENT '自定义码流速率',
custom_svc_space_support_mod integer COMMENT '自定义空域SVC',
custom_svc_time_support_mode integer COMMENT '自定义时域SVC',
constraint uk_platform_gb_channel_platform_id_catalog_id_device_channel_id unique (platform_id, device_channel_id),
constraint uk_platform_gb_channel_device_id unique (custom_device_id)
);
-- 平台与分组(行政区划/组织)关系
drop table IF EXISTS wvp_platform_group;
create table IF NOT EXISTS wvp_platform_group
(
id serial primary key COMMENT '主键ID',
platform_id integer COMMENT '平台ID',
group_id integer COMMENT '分组ID',
constraint uk_wvp_platform_group_platform_id_group_id unique (platform_id, group_id)
);
-- 平台与区域关系
drop table IF EXISTS wvp_platform_region;
create table IF NOT EXISTS wvp_platform_region
(
id serial primary key COMMENT '主键ID',
platform_id integer COMMENT '平台ID',
region_id integer COMMENT '区域ID',
constraint uk_wvp_platform_region_platform_id_group_id unique (platform_id, region_id)
);
-- 拉流代理/转推配置
drop table IF EXISTS wvp_stream_proxy;
create table IF NOT EXISTS wvp_stream_proxy
(
id serial primary key COMMENT '主键ID',
type character varying(50) COMMENT '代理类型(拉流/推流)',
app character varying(255) COMMENT '应用名',
stream character varying(255) COMMENT '流ID',
src_url character varying(255) COMMENT '源地址',
timeout integer COMMENT '拉流超时时间',
ffmpeg_cmd_key character varying(255) COMMENT 'FFmpeg命令模板键',
rtsp_type character varying(50) COMMENT 'RTSP拉流方式',
media_server_id character varying(50) COMMENT '指定媒体服务器ID',
enable_audio bool default false COMMENT '是否启用音频',
enable_mp4 bool default false COMMENT '是否录制MP4',
pulling bool default false COMMENT '当前是否在拉流',
enable bool default false COMMENT '是否启用该代理',
create_time character varying(50) COMMENT '创建时间',
name character varying(255) COMMENT '代理名称',
update_time character varying(50) COMMENT '更新时间',
stream_key character varying(255) COMMENT '唯一流标识',
server_id character varying(50) COMMENT '信令服务器ID',
enable_disable_none_reader bool default false COMMENT '是否无人观看时自动停流',
relates_media_server_id character varying(50) COMMENT '关联的媒体服务器ID',
constraint uk_stream_proxy_app_stream unique (app, stream)
);
-- 推流会话记录
drop table IF EXISTS wvp_stream_push;
create table IF NOT EXISTS wvp_stream_push
(
id serial primary key COMMENT '主键ID',
app character varying(255) COMMENT '应用名',
stream character varying(255) COMMENT '流ID',
create_time character varying(50) COMMENT '创建时间',
media_server_id character varying(50) COMMENT '推流所在媒体服务器',
server_id character varying(50) COMMENT '信令服务器ID',
push_time character varying(50) COMMENT '推流开始时间',
status bool default false COMMENT '推流状态',
update_time character varying(50) COMMENT '更新时间',
pushing bool default false COMMENT '是否正在推流',
self bool default false COMMENT '是否本地发起',
start_offline_push bool default true COMMENT '是否离线后自动重推',
constraint uk_stream_push_app_stream unique (app, stream)
);
-- 云端录像记录
drop table IF EXISTS wvp_cloud_record;
create table IF NOT EXISTS wvp_cloud_record
(
id serial primary key COMMENT '主键ID',
app character varying(255) COMMENT '应用名',
stream character varying(255) COMMENT '流ID',
call_id character varying(255) COMMENT '会话ID',
start_time bigint COMMENT '录像开始时间',
end_time bigint COMMENT '录像结束时间',
media_server_id character varying(50) COMMENT '媒体服务器ID',
server_id character varying(50) COMMENT '信令服务器ID',
file_name character varying(255) COMMENT '文件名',
folder character varying(500) COMMENT '目录',
file_path character varying(500) COMMENT '完整路径',
collect bool default false COMMENT '是否收藏',
file_size bigint COMMENT '文件大小',
time_len double precision COMMENT '时长'
);
-- 平台用户信息
drop table IF EXISTS wvp_user;
create table IF NOT EXISTS wvp_user
(
id serial primary key COMMENT '主键ID',
username character varying(255) COMMENT '用户名',
password character varying(255) COMMENT '密码MD5',
role_id integer COMMENT '角色ID',
create_time character varying(50) COMMENT '创建时间',
update_time character varying(50) COMMENT '更新时间',
push_key character varying(50) COMMENT '推送密钥',
constraint uk_user_username unique (username)
);
-- 用户角色信息
drop table IF EXISTS wvp_user_role;
create table IF NOT EXISTS wvp_user_role
(
id serial primary key COMMENT '主键ID',
name character varying(50) COMMENT '角色名称',
authority character varying(50) COMMENT '权限标识',
create_time character varying(50) COMMENT '创建时间',
update_time character varying(50) COMMENT '更新时间'
);
drop table IF EXISTS wvp_user_api_key;
create table IF NOT EXISTS wvp_user_api_key
(
id serial primary key COMMENT '主键ID',
user_id bigint COMMENT '关联用户ID',
app character varying(255) COMMENT '应用标识',
api_key text COMMENT 'API Key',
expired_at bigint COMMENT '过期时间戳',
remark character varying(255) COMMENT '备注',
enable bool default true COMMENT '是否启用',
create_time character varying(50) COMMENT '创建时间',
update_time character varying(50) COMMENT '更新时间'
);
/*初始数据*/
-- 初始化管理员账号账号admin 密码adminMD5加密后
INSERT INTO wvp_user
VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 1, '2021-04-13 14:14:57', '2021-04-13 14:14:57',
'3e80d1762a324d5b0ff636e0bd16f1e3');
-- 初始化管理员角色
INSERT INTO wvp_user_role
VALUES (1, 'admin', '0', '2021-04-13 14:14:57', '2021-04-13 14:14:57');
-- 通用分组表,存储行业或组织结构
drop table IF EXISTS wvp_common_group;
create table IF NOT EXISTS wvp_common_group
(
id serial primary key COMMENT '主键ID',
device_id varchar(50) NOT NULL COMMENT '分组对应的平台或设备ID',
name varchar(255) NOT NULL COMMENT '分组名称',
parent_id int COMMENT '父级分组ID',
parent_device_id varchar(50) DEFAULT NULL COMMENT '父级分组对应的设备ID',
business_group varchar(50) NOT NULL COMMENT '业务分组编码',
create_time varchar(50) NOT NULL COMMENT '创建时间',
update_time varchar(50) NOT NULL COMMENT '更新时间',
civil_code varchar(50) default null COMMENT '行政区划代码',
alias varchar(255) default null COMMENT '别名',
constraint uk_common_group_device_platform unique (device_id)
);
-- 通用行政区域表
drop table IF EXISTS wvp_common_region;
create table IF NOT EXISTS wvp_common_region
(
id serial primary key COMMENT '主键ID',
device_id varchar(50) NOT NULL COMMENT '区域对应的平台或设备ID',
name varchar(255) NOT NULL COMMENT '区域名称',
parent_id int COMMENT '父级区域ID',
parent_device_id varchar(50) DEFAULT NULL COMMENT '父级区域的设备ID',
create_time varchar(50) NOT NULL COMMENT '创建时间',
update_time varchar(50) NOT NULL COMMENT '更新时间',
constraint uk_common_region_device_id unique (device_id)
);
-- 录像计划基础信息
drop table IF EXISTS wvp_record_plan;
create table IF NOT EXISTS wvp_record_plan
(
id serial primary key COMMENT '主键ID',
snap bool default false COMMENT '是否抓图计划',
name varchar(255) NOT NULL COMMENT '计划名称',
create_time character varying(50) COMMENT '创建时间',
update_time character varying(50) COMMENT '更新时间'
);
-- 录像计划条目表
drop table IF EXISTS wvp_record_plan_item;
create table IF NOT EXISTS wvp_record_plan_item
(
id serial primary key COMMENT '主键ID',
start int COMMENT '开始时间(分钟)',
stop int COMMENT '结束时间(分钟)',
week_day int COMMENT '星期0-6',
plan_id int COMMENT '所属录像计划ID',
create_time character varying(50) COMMENT '创建时间',
update_time character varying(50) COMMENT '更新时间'
);
-- 交通部 JT/T 1076 终端信息
drop table IF EXISTS wvp_jt_terminal;
create table IF NOT EXISTS wvp_jt_terminal (
id serial primary key COMMENT '主键ID',
phone_number character varying(50) COMMENT '终端SIM卡号',
terminal_id character varying(50) COMMENT '终端设备ID',
province_id character varying(50) COMMENT '所在省份ID',
province_text character varying(100) COMMENT '所在省份名称',
city_id character varying(50) COMMENT '所在城市ID',
city_text character varying(100) COMMENT '所在城市名称',
maker_id character varying(50) COMMENT '厂商ID',
model character varying(50) COMMENT '终端型号',
plate_color character varying(50) COMMENT '车牌颜色',
plate_no character varying(50) COMMENT '车牌号码',
longitude double precision COMMENT '经度',
latitude double precision COMMENT '纬度',
status bool default false COMMENT '在线状态',
register_time character varying(50) default null COMMENT '注册时间',
update_time character varying(50) not null COMMENT '更新时间',
create_time character varying(50) not null COMMENT '创建时间',
geo_coord_sys character varying(50) COMMENT '坐标系',
media_server_id character varying(50) default 'auto' COMMENT '媒体服务器ID',
sdp_ip character varying(50) COMMENT 'SDP IP',
constraint uk_jt_device_id_device_id unique (id, phone_number)
);
-- 交通部 JT/T 1076 通道信息
drop table IF EXISTS wvp_jt_channel;
create table IF NOT EXISTS wvp_jt_channel (
id serial primary key COMMENT '主键ID',
terminal_db_id integer COMMENT '所属终端记录ID',
channel_id integer COMMENT '通道号',
has_audio bool default false COMMENT '是否有音频',
name character varying(255) COMMENT '通道名称',
update_time character varying(50) not null COMMENT '更新时间',
create_time character varying(50) not null COMMENT '创建时间',
constraint uk_jt_channel_id_device_id unique (terminal_db_id, channel_id)
);
drop table IF EXISTS wvp_jt_terminal;
create table IF NOT EXISTS wvp_jt_terminal (
id serial primary key,
phone_number character varying(50),
terminal_id character varying(50),
province_id character varying(50),
province_text character varying(100),
city_id character varying(50),
city_text character varying(100),
maker_id character varying(50),
model character varying(50),
plate_color character varying(50),
plate_no character varying(50),
longitude double precision,
latitude double precision,
status bool default false,
register_time character varying(50) default null,
update_time character varying(50) not null,
create_time character varying(50) not null,
geo_coord_sys character varying(50),
media_server_id character varying(50) default 'auto',
sdp_ip character varying(50),
constraint uk_jt_device_id_device_id unique (id, phone_number)
);
drop table IF EXISTS wvp_jt_channel;
create table IF NOT EXISTS wvp_jt_channel (
id serial primary key,
terminal_db_id integer,
channel_id integer,
has_audio bool default false,
name character varying(255),
update_time character varying(50) not null,
create_time character varying(50) not null,
constraint uk_jt_channel_id_device_id unique (terminal_db_id, channel_id)
);

View File

@@ -0,0 +1,41 @@
1. 获取应用的 URL:
NOTE: It may take a few minutes for all pods to be ready.
查看 Pod 状态:
kubectl get pods -n {{ .Release.Namespace }} -l release={{ .Release.Name }}
2. Media Suite (WVP + ZLM + ZLM-OSS) 使用 HostNetwork 模式访问nodeIp+端口:
- WVP HTTP: http://{{.Values.mediaSuite.nodeIP}}:{{ .Values.wvp.ports.http }}
- WVP SIP: {{.Values.mediaSuite.nodeIP}}:{{ .Values.wvp.ports.sip }}/UDP
- ZLM HTTP: http://{{.Values.mediaSuite.nodeIP}}:{{ .Values.zlm.ports.http }}
- ZLM HTTPS: https://{{.Values.mediaSuite.nodeIP}}:{{ .Values.zlm.ports.https }}
- ZLM RTMP: rtmp://{{.Values.mediaSuite.nodeIP}}:{{ .Values.zlm.ports.rtmp }}
- ZLM RTSP: rtsp://{{.Values.mediaSuite.nodeIP}}:{{ .Values.zlm.ports.rtsp }}
- ZLM WebRTC: webrtc://{{.Values.mediaSuite.nodeIP}}:{{ .Values.zlm.ports.webrtc }}
- ZLM SRT: srt://{{.Values.mediaSuite.nodeIP}}:{{ .Values.zlm.ports.srt }}
- ZLM-OSS: http://{{.Values.mediaSuite.nodeIP}}:{{ .Values.zlmOss.port }}
3. Live Operator:
- URL: http://<NODE_IP>:{{ .Values.network.liveOpNodePort }}
4. Live Proxy:
- URL: http://<NODE_IP>:{{ .Values.network.liveProxyNodePort }}
5. Live Helper:
- URL: http://<NODE_IP>:{{ .Values.network.liveHelperNodePort }}
6. 查看日志:
# Media Suite (所有容器)
kubectl logs -f deployment/{{ .Release.Name }}-media-suite -n {{ .Release.Namespace }} -c wvp
kubectl logs -f deployment/{{ .Release.Name }}-media-suite -n {{ .Release.Namespace }} -c zlm
kubectl logs -f deployment/{{ .Release.Name }}-media-suite -n {{ .Release.Namespace }} -c zlm-oss
# Live Operator
kubectl logs -f deployment/{{ .Release.Name }}-live-op -n {{ .Release.Namespace }}
# Live Proxy
kubectl logs -f deployment/{{ .Release.Name }}-live-proxy -n {{ .Release.Namespace }}
# Live Helper
kubectl logs -f deployment/{{ .Release.Name }}-live-helper -n {{ .Release.Namespace }}
7. 卸载:
helm uninstall {{ .Release.Name }} -n {{ .Release.Namespace }}

View File

@@ -0,0 +1,13 @@
{{- if .Values.images.secretName }}
apiVersion: v1
kind: Secret
metadata:
name: {{ .Values.images.secretName }}
namespace: {{ .Release.Namespace }}
labels:
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: {{ .Values.images.dockerConfigJson }}
{{- end }}

View File

@@ -0,0 +1,22 @@
apiVersion: v1
kind: ConfigMap
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-live-helper-config
labels:
app: live-helper
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
data:
config.yaml: |
app:
port: {{ .Values.liveHelper.port }}
workers: 4
log:
level: INFO
client:
zlm: "http://{{ .Release.Name }}-zlm:{{ .Values.zlm.ports.http }}"
downloader:
allow_domains: {{ .Values.liveHelper.allowDownload }}

View File

@@ -0,0 +1,65 @@
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-live-helper
labels:
app: live-helper
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
spec:
replicas: {{ .Values.liveHelper.replicaCount }}
selector:
matchLabels:
app: live-helper
release: {{ .Release.Name }}
template:
metadata:
labels:
app: live-helper
release: {{ .Release.Name }}
spec:
containers:
- name: live-helper
image: "{{ .Values.images.liveHelper.repository }}:{{ .Values.images.liveHelper.tag }}"
imagePullPolicy: {{ .Values.images.liveHelper.pullPolicy }}
ports:
- name: http
containerPort: {{ .Values.liveHelper.port }}
protocol: TCP
env:
- name: ALLOW_DOWNLOAD
value: "{{ .Values.liveHelper.allowDownload }}"
volumeMounts:
- name: config
mountPath: /cmii/live-helper/config.yaml
subPath: config.yaml
resources:
{{- toYaml .Values.liveHelper.resources | nindent 12 }}
volumes:
- name: config
configMap:
name: {{ .Release.Name }}-live-helper-config
imagePullSecrets:
- name: {{ .Values.images.secretName }}
---
apiVersion: v1
kind: Service
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-live-helper
labels:
app: live-helper
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
spec:
type: NodePort
ports:
- name: http
port: {{ .Values.liveHelper.port }}
targetPort: http
nodePort: {{ .Values.network.liveHelperNodePort }}
protocol: TCP
selector:
app: live-helper
release: {{ .Release.Name }}

View File

@@ -0,0 +1,86 @@
apiVersion: v1
kind: ConfigMap
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-live-op-config
labels:
app: live-op
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
data:
application.yaml: |
debug: false
server:
port: {{ .Values.liveOp.port }}
spring:
web:
resources:
static-locations: classpath:/static/
main:
allow-bean-definition-overriding: true
allow-circular-references: true
application:
name: cmii-live-operator
thymeleaf:
check-template-location: false
cache: false
platform:
info:
name: cmii-live-operator
description: cmii-live-operator
version: 5.8.0
scanPackage: com.cmii.live.op
jackson:
time-zone: GMT+8
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://{{ .Values.external.database.host }}:{{ .Values.external.database.port }}/{{ .Values.databases.liveOp }}?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: {{ .Values.external.database.username }}
password: {{ .Values.external.database.password }}
druid:
initial-size: 10
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1
test-while-idle: true
test-on-borrow: false
test-on-return: false
use-ping-method: false
keep-alive: true
redis:
host: {{ .Values.external.redis.host }}
port: {{ .Values.external.redis.port }}
database: {{ .Values.redis.liveOpDb }}
password: {{ .Values.external.redis.password }}
live:
sync:
pool:
monitor:
enabled: false
core: 10
max: 20
queue: 1
keepalive: 20
logging:
config: classpath:logback-operator.xml
level:
root: info
com.cmii.live.op.mapper: info
mybatis-plus:
global-config:
banner: false
knife4j:
enable: true

View File

@@ -0,0 +1,97 @@
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-live-op
labels:
app: live-op
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
spec:
replicas: {{ .Values.liveOp.replicaCount }}
selector:
matchLabels:
app: live-op
release: {{ .Release.Name }}
template:
metadata:
labels:
app: live-op
release: {{ .Release.Name }}
spec:
containers:
- name: live-op
image: "{{ .Values.images.liveOp.repository }}:{{ .Values.images.liveOp.tag }}"
imagePullPolicy: {{ .Values.images.liveOp.pullPolicy }}
ports:
- name: http
containerPort: {{ .Values.liveOp.port }}
protocol: TCP
env:
- name: LIVE_IP_PUBLIC
value: "{{ .Values.mediaSuite.nodeIP }}"
- name: LIVE_IP_PRIVATE
value: "{{ .Values.mediaSuite.nodeIP }}"
- name: LIVE_OP_PORT_HTTP
value: "{{ .Values.liveOp.port }}"
- name: LIVE_WVP_PORT_HTTP
value: "{{ .Values.wvp.ports.http }}"
- name: LIVE_ZLM_PORT_HTTP
value: "{{ .Values.zlm.ports.http }}"
- name: LIVE_ZLM_PORT_HTTPS
value: "{{ .Values.zlm.ports.https }}"
- name: LIVE_ZLM_PORT_RTMP
value: "{{ .Values.zlm.ports.rtmp }}"
- name: LIVE_ZLM_PORT_RTSP
value: "{{ .Values.zlm.ports.rtsp }}"
- name: LIVE_ZLM_PORT_SRT
value: "{{ .Values.zlm.ports.srt }}"
- name: LIVE_ZLM_API_PASSWD
value: "{{ .Values.zlm.apiPasswd }}"
- name: OSS_ENDPOINT
value: "{{ .Values.external.minio.endpoint }}"
- name: OSS_AK
value: "{{ .Values.external.minio.accessKey }}"
- name: OSS_SK
value: "{{ .Values.external.minio.secretKey }}"
- name: RABBITMQ_HOST
value: "{{ .Values.external.rabbitmq.host }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.external.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.external.rabbitmq.password }}"
- name: RABBITMQ_PORT
value: "{{ .Values.external.rabbitmq.port }}"
volumeMounts:
- name: config
mountPath: /cmii/application.yaml
subPath: application.yaml
resources:
{{- toYaml .Values.liveOp.resources | nindent 12 }}
volumes:
- name: config
configMap:
name: {{ .Release.Name }}-live-op-config
imagePullSecrets:
- name: {{ .Values.images.secretName }}
---
apiVersion: v1
kind: Service
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-live-op
labels:
app: live-op
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
spec:
type: NodePort
ports:
- name: http
port: {{ .Values.liveOp.port }}
targetPort: http
nodePort: {{ .Values.network.liveOpNodePort }}
protocol: TCP
selector:
app: live-op
release: {{ .Release.Name }}

View File

@@ -0,0 +1,102 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-live-proxy-config
labels:
app: live-proxy
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
data:
application.yaml: |
server:
port: {{ .Values.liveProxy.port }}
live:
proxy:
ffmpeg:
ffmpeg-path: /usr/bin/ffmpeg
ffprobe-path: /usr/bin/ffprobe
ffplay-path: /usr/bin/ffplay
check-win-pid: tasklist /FI "PID eq %s " /FO LIST
check-unix-pid: ps -p %s
os-name: windows
upload:
path: /proxy/uploads
src-all-size: 4294967296
dest-all-size: 4294967296
ws:
url: "{{ .Values.mediaSuite.nodeIP }}:{{ .Values.network.liveProxyNodePort }}"
minio:
endpoint: {{ .Values.external.minio.endpoint }}
access-key: {{ .Values.external.minio.accessKey }}
secret-key: {{ .Values.external.minio.secretKey }}
bucket-name: ilm-detect
spring:
platform:
info:
name: cmii-live-proxy
description: ffmpeg服务小工具
version: 1.0.3
scanPackage: com.cmii.live.proxy.web.controller
profiles:
active: local
jackson:
time-zone: GMT+8
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER
thymeleaf:
check-template-location: false
cache: false
servlet:
multipart:
max-file-size: 1024MB
max-request-size: 1024MB
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
druid:
url: jdbc:mysql://{{ .Values.external.database.host }}:{{ .Values.external.database.port }}/{{ .Values.databases.proxy }}?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: {{ .Values.external.database.username }}
password: {{ .Values.external.database.password }}
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
max-evictable-idle-time-millis: 600000
validation-query: SELECT 1
test-while-idle: true
test-on-borrow: false
test-on-return: false
filters: stat,wall,slf4j
connection-properties: connectTimeout=10000;socketTimeout=30000
redis:
host: {{ .Values.external.redis.host }}
port: {{ .Values.external.redis.port }}
password: {{ .Values.external.redis.password }}
database: {{ .Values.redis.proxyDb }}
timeout: 10s
lettuce:
pool:
min-idle: 0
max-idle: 10
max-active: 10
max-wait: -1ms
springdoc:
api-docs:
enabled: true
swagger-ui:
enabled: true
mybatis-plus:
global-config:
banner: false
logging:
config: classpath:logback-proxy.xml
level:
com.cmii.live.proxy.web.mapper: info

View File

@@ -0,0 +1,81 @@
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-live-proxy
labels:
app: live-proxy
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
spec:
replicas: {{ .Values.liveProxy.replicaCount }}
selector:
matchLabels:
app: live-proxy
release: {{ .Release.Name }}
template:
metadata:
labels:
app: live-proxy
release: {{ .Release.Name }}
spec:
containers:
- name: live-proxy
image: "{{ .Values.images.liveProxy.repository }}:{{ .Values.images.liveProxy.tag }}"
imagePullPolicy: {{ .Values.images.liveProxy.pullPolicy }}
ports:
- name: http
containerPort: {{ .Values.liveProxy.port }}
protocol: TCP
env:
- name: LIVE_IP_PRIVATE
value: "{{ .Values.mediaSuite.nodeIP }}"
- name: LIVE_ZLM_PORT_HTTP
value: "{{ .Values.zlm.ports.http }}"
- name: LIVE_ZLM_PORT_HTTPS
value: "{{ .Values.zlm.ports.https }}"
- name: LIVE_ZLM_PORT_RTMP
value: "{{ .Values.zlm.ports.rtmp }}"
- name: LIVE_ZLM_PORT_RTSP
value: "{{ .Values.zlm.ports.rtsp }}"
- name: LIVE_OP_PORT_HTTP
value: "{{ .Values.network.liveOpNodePort }}"
volumeMounts:
- name: config
mountPath: /proxy/application.yaml
subPath: application.yaml
- name: shared-data
mountPath: /cmii/uploads
subPath: uploads
resources:
{{- toYaml .Values.liveProxy.resources | nindent 12 }}
volumes:
- name: config
configMap:
name: {{ .Release.Name }}-live-proxy-config
- name: shared-data
persistentVolumeClaim:
claimName: {{ .Release.Name }}-shared-data-pvc
imagePullSecrets:
- name: {{ .Values.images.secretName }}
---
apiVersion: v1
kind: Service
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-live-proxy
labels:
app: live-proxy
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
spec:
type: NodePort
ports:
- name: http
port: {{ .Values.liveProxy.port }}
targetPort: http
nodePort: {{ .Values.network.liveProxyNodePort }}
protocol: TCP
selector:
app: live-proxy
release: {{ .Release.Name }}

View File

@@ -0,0 +1,156 @@
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-media-suite
labels:
app: media-suite
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
spec:
replicas: {{ .Values.mediaSuite.replicaCount }}
selector:
matchLabels:
app: media-suite
release: {{ .Release.Name }}
template:
metadata:
labels:
app: media-suite
release: {{ .Release.Name }}
spec:
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
# 配置到固定node上
nodeSelector:
{{- range $key, $value := .Values.mediaSuite.nodeSelector }}
{{ $key }}: {{ $value | quote }}
{{- end }}
containers:
# WVP Container
- name: wvp
image: "{{ .Values.images.wvp.repository }}:{{ .Values.images.wvp.tag }}"
imagePullPolicy: {{ .Values.images.wvp.pullPolicy }}
ports:
- name: wvp-http
containerPort: {{ .Values.wvp.ports.http }}
hostPort: {{ .Values.wvp.ports.http }}
protocol: TCP
- name: wvp-sip
containerPort: {{ .Values.wvp.ports.sip }}
hostPort: {{ .Values.wvp.ports.sip }}
protocol: UDP
env:
- name: TZ
value: "Asia/Shanghai"
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
volumeMounts:
- name: wvp-config
mountPath: /home/koisi/wvp.yaml
subPath: application.yaml
resources:
{{- toYaml .Values.wvp.resources | nindent 12 }}
# ZLM Container
- name: zlm
image: "{{ .Values.images.zlm.repository }}:{{ .Values.images.zlm.tag }}"
imagePullPolicy: {{ .Values.images.zlm.pullPolicy }}
ports:
- name: zlm-http
containerPort: {{ .Values.zlm.ports.http }}
hostPort: {{ .Values.zlm.ports.http }}
protocol: TCP
- name: zlm-https
containerPort: {{ .Values.zlm.ports.https }}
hostPort: {{ .Values.zlm.ports.https }}
protocol: TCP
- name: zlm-rtmp
containerPort: {{ .Values.zlm.ports.rtmp }}
hostPort: {{ .Values.zlm.ports.rtmp }}
protocol: TCP
- name: zlm-rtsp
containerPort: {{ .Values.zlm.ports.rtsp }}
hostPort: {{ .Values.zlm.ports.rtsp }}
protocol: TCP
- name: zlm-webrtc-tcp
containerPort: {{ .Values.zlm.ports.webrtc }}
hostPort: {{ .Values.zlm.ports.webrtc }}
protocol: TCP
- name: zlm-webrtc-udp
containerPort: {{ .Values.zlm.ports.webrtc }}
hostPort: {{ .Values.zlm.ports.webrtc }}
protocol: UDP
- name: zlm-srt
containerPort: {{ .Values.zlm.ports.srt }}
hostPort: {{ .Values.zlm.ports.srt }}
protocol: TCP
- name: zlm-rtp-proxy
containerPort: {{ .Values.zlm.ports.rtpProxy }}
hostPort: {{ .Values.zlm.ports.rtpProxy }}
protocol: UDP
{{- range $i := untilStep (int .Values.zlm.ports.rtpMin) (int (add1 .Values.zlm.ports.rtpMax)) 1 }}
- name: zlm-rtp-{{ $i }}
containerPort: {{ $i }}
hostPort: {{ $i }}
protocol: UDP
{{- end }}
env:
- name: TZ
value: "Asia/Shanghai"
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
volumeMounts:
- name: zlm-config
mountPath: /home/koisi/zlm.ini
subPath: zlm.ini
- name: shared-data
mountPath: /home/koisi/zlm/www/zlm/hls
subPath: hls
resources:
{{- toYaml .Values.zlm.resources | nindent 12 }}
# ZLM-OSS Container
- name: zlm-oss
image: "{{ .Values.images.zlmOss.repository }}:{{ .Values.images.zlmOss.tag }}"
imagePullPolicy: {{ .Values.images.zlmOss.pullPolicy }}
ports:
- name: zlm-oss-http
containerPort: {{ .Values.zlmOss.port }}
hostPort: {{ .Values.zlmOss.port }}
protocol: TCP
volumeMounts:
- name: zlm-oss-config
mountPath: /cmii/oss-adaptor/boot/config.yaml
subPath: config.yaml
- name: shared-data
mountPath: /cmii/share/hls
subPath: hls
resources:
{{- toYaml .Values.zlmOss.resources | nindent 12 }}
volumes:
- name: wvp-config
configMap:
name: {{ .Release.Name }}-wvp-config
- name: zlm-config
configMap:
name: {{ .Release.Name }}-zlm-config
- name: zlm-oss-config
configMap:
name: {{ .Release.Name }}-zlm-oss-config
- name: shared-data
persistentVolumeClaim:
claimName: {{ .Release.Name }}-shared-data-pvc
imagePullSecrets:
- name: {{ .Values.images.secretName }}

View File

@@ -0,0 +1,19 @@
# 单个共享 PVC通过 subPath 区分不同服务的数据
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-shared-data-pvc
labels:
app: media-suite
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
{{- if .Values.persistence.shared.storageClass }}
storageClassName: {{ .Values.persistence.shared.storageClass }}
{{- end }}

View File

@@ -0,0 +1,96 @@
apiVersion: v1
kind: ConfigMap
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-wvp-config
labels:
app: wvp
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
data:
application.yaml: |
spring:
cache:
type: redis
thymeleaf:
cache: false
mvc:
async:
request-timeout: 20000
servlet:
multipart:
max-file-size: 10MB
max-request-size: 100MB
data:
redis:
host: {{ .Values.external.redis.host }}
port: {{ .Values.external.redis.port }}
database: {{ .Values.redis.wvpDb }}
password: {{ .Values.external.redis.password }}
timeout: 10000
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://{{ .Values.external.database.host }}:{{ .Values.external.database.port }}/{{ .Values.databases.wvp }}?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
username: {{ .Values.external.database.username }}
password: {{ .Values.external.database.password }}
server:
port: {{ .Values.wvp.ports.http }}
ssl:
enabled: false
sip:
ip: ${NODE_IP}
show-ip: ${NODE_IP}
port: {{ .Values.wvp.ports.sip }}
domain: {{ .Values.wvp.sip.domain }}
id: "{{ .Values.wvp.sip.id }}"
password: {{ .Values.zlm.apiPasswd }}
register-time-interval: 60
ptz-speed: 50
keepalliveToOnline: true
alarm: true
timeout: 1000
media:
id: {{ .Values.zlm.nodeId }}
ip: 127.0.0.1
http-port: {{ .Values.zlm.ports.http }}
http-ssl-port: 0
flv-port: {{ .Values.zlm.ports.http }}
flv-ssl-port: {{ .Values.zlm.ports.https }}
ws-flv-port: {{ .Values.zlm.ports.http }}
ws-flv-ssl-port: {{ .Values.zlm.ports.https }}
rtp-proxy-port: {{ .Values.zlm.ports.http }}
rtmp-port: {{ .Values.zlm.ports.https }}
rtmp-ssl-port: 0
rtsp-port: {{ .Values.zlm.ports.rtsp }}
rtsp-ssl-port: 0
auto-config: false
secret: {{ .Values.zlm.apiPasswd }}
rtp:
enable: true
port-range: {{ .Values.zlm.ports.rtpMin }},{{ .Values.zlm.ports.rtpMax }}
send-port-range: 30800,30990
record-path: /opt/media/bin/www/record/
record-day: 7
record-assist-port: 0
user-settings:
auto-apply-play: true
play-timeout: 30000
wait-track: false
record-push-live: false
record-sip: true
stream-on-demand: true
interface-authentication: true
broadcast-for-platform: TCP-PASSIVE
push-stream-after-ack: true
send-to-platforms-when-id-lost: true
interface-authentication-excludes:
- /api/**
push-authority: true
logging:
config: classpath:logback-spring.xml

View File

@@ -0,0 +1,211 @@
apiVersion: v1
kind: ConfigMap
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-zlm-config
labels:
app: zlm
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
data:
zlm.ini: |
[api]
apiDebug = 0
secret = {{ .Values.zlm.apiPasswd }}
snapRoot = ./www/snap/
defaultSnap = ./www/logo.png
downloadRoot = ./www
[ffmpeg]
bin = /usr/bin/ffmpeg
cmd = %s -re -i %s -c:a aac -strict -2 -ar 44100 -ab 48k -c:v libx264 -f flv %s
log = ./ffmpeg/ffmpeg.log
restart_sec = 0
snap = %s -rtsp_transport tcp -i %s -y -f mjpeg -frames:v 1 %s
[protocol]
modify_stamp = 2
enable_audio = 1
add_mute_audio = 0
auto_close = 0
continue_push_ms = 3000
paced_sender_ms = 0
enable_hls = 1
enable_hls_fmp4 = 0
enable_rtmp = 1
enable_ts = 1
enable_fmp4 = 1
enable_rtsp = 1
enable_mp4 = 0
mp4_as_player = 0
mp4_max_second = 3600
mp4_save_path = ./www
hls_save_path = ./www/zlm/hls
hls_demand = 0
rtsp_demand = 0
rtmp_demand = 0
ts_demand = 0
fmp4_demand = 0
[general]
enableVhost = 0
flowThreshold = 1024
enable_ffmpeg_log = 0
listen_ip = ::
maxStreamWaitMS = 0
streamNoneReaderDelayMS = 120000
resetWhenRePlay = 1
mergeWriteMS = 0
mediaServerId = {{ .Values.zlm.nodeId }}
wait_audio_track_data_ms = 1000
wait_track_ready_ms = 8000
wait_add_track_ms = 2000
unready_frame_cache = 96
check_nvidia_dev = 1
broadcast_player_count_changed = 0
[hls]
fileBufSize = 65536
segDur = 10
segNum = 3
segDelay = 0
segRetain = 5
broadcastRecordTs = 1
deleteDelaySec = 10
segKeep = 0
fastRegister = 0
[hook]
enable = 1
on_flow_report =
on_http_access =
# ZLM → Live Operator
on_play = http://{{ .Release.Name }}-live-op:{{ .Values.liveOp.port }}/hooks/on_play
on_publish = http://{{ .Release.Name }}-live-op:{{ .Values.liveOp.port }}/hooks/on_push
on_stream_changed = http://{{ .Release.Name }}-live-op:{{ .Values.liveOp.port }}/hooks/on_stream_changed
# ZLM → WVP
on_stream_none_reader = http://127.0.0.1:{{ .Values.wvp.ports.http }}/index/hook/on_stream_none_reader
on_stream_not_found = http://127.0.0.1:{{ .Values.wvp.ports.http }}/index/hook/on_stream_not_found
on_rtp_server_timeout = http://127.0.0.1:{{ .Values.wvp.ports.http }}/index/hook/on_rtp_server_timeout
on_send_rtp_stopped = http://127.0.0.1:{{ .Values.wvp.ports.http }}/index/hook/on_send_rtp_stopped
on_server_started = http://127.0.0.1:{{ .Values.wvp.ports.http }}/index/hook/on_server_started
on_server_keepalive = http://127.0.0.1:{{ .Values.wvp.ports.http }}/index/hook/on_server_keepalive
on_record_mp4 = http://127.0.0.1:{{ .Values.wvp.ports.http }}/index/hook/on_record_mp4
on_server_exited =
on_rtsp_auth =
on_rtsp_realm =
on_shell_login =
# ZLM → ZLM OSS
on_record_ts = http://127.0.0.1:{{ .Values.zlmOss.port }}/hooks/on_record_ts
stream_changed_schemas = rtsp/rtmp/fmp4/ts/hls/hls.fmp4
timeoutSec = 30
alive_interval = 10.0
retry = 1
retry_delay = 3.0
[cluster]
origin_url =
timeout_sec = 15
retry_count = 3
[http]
port = {{ .Values.zlm.ports.http }}
sslport = {{ .Values.zlm.ports.https }}
charSet = utf-8
keepAliveSecond = 30
maxReqSize = 40960
notFound = <html><head><title>404 Not Found</title></head><body><div>404 Not Found</div></body></html>
rootPath = ./www
sendBufSize = 65536
dirMenu = 1
virtualPath =
forbidCacheSuffix =
allow_cross_domains = 1
allow_ip_range = ::1,127.0.0.1,172.1.0.0-172.31.255.255,192.168.0.0-192.168.255.255,10.0.0.0-10.255.255.255
[multicast]
addrMax = 239.255.255.255
addrMin = 239.0.0.0
udpTTL = 64
[record]
appName = record
fileBufSize = 65536
sampleMS = 500
fastStart = 0
fileRepeat = 0
enableFmp4 = 0
[rtmp]
port = {{ .Values.zlm.ports.rtmp }}
sslport = 0
handshakeSecond = 15
keepAliveSecond = 15
directProxy = 1
enhanced = 0
[rtp]
audioMtuSize = 600
videoMtuSize = 1400
rtpMaxSize = 10
lowLatency = 0
h264_stap_a = 1
[rtp_proxy]
port = {{ .Values.zlm.ports.rtpProxy }}
port_range = {{ .Values.zlm.ports.rtpMin }}-{{ .Values.zlm.ports.rtpMax }}
dumpDir =
timeoutSec = 5
h264_pt = 98
h265_pt = 99
ps_pt = 96
opus_pt = 100
gop_cache = 1
rtp_g711_dur_ms = 100
udp_recv_socket_buffer = 4194304
[rtc]
bfilter=0
datachannel_echo=0
maxRtpCacheMS=5000
maxRtpCacheSize=2048
externIP = $(NODE_IP)
port = {{ .Values.zlm.ports.webrtc }}
tcpPort = {{ .Values.zlm.ports.webrtc }}
timeoutSec = 30
rembBitRate = 0
preferredCodecA = PCMA,PCMU,opus,mpeg4-generic
preferredCodecV = H264,H265,AV1,VP9,VP8
start_bitrate = 0
max_bitrate = 0
min_bitrate = 0
maxNackMS = 4000
rtpCacheCheckInterval = 96
nackMaxSize = 2048
nackMaxMS = 3000
nackMaxCount = 15
nackIntervalRatio = 1.0
nackRtpSize = 8
[srt]
port = {{ .Values.zlm.ports.srt }}
timeoutSec = 5
latencyMul = 4
pktBufSize = 8192
passPhrase=
[rtsp]
port = {{ .Values.zlm.ports.rtsp }}
sslport = 0
authBasic = 0
directProxy = 1
handshakeSecond = 15
keepAliveSecond = 15
lowLatency = 1
rtpTransportType = -1
[shell]
maxReqSize = 1024
port = 0

View File

@@ -0,0 +1,83 @@
apiVersion: v1
kind: ConfigMap
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-zlm-oss-config
labels:
app: media-suite
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
data:
config.yaml: |
app:
env: default
listen:
host: 0.0.0.0
port: {{ .Values.zlmOss.port }}
workers: 4
thread_pool: 8
log:
level: INFO
onfile_logger_interval: 10
backup_on_fails: true
skip_on_initializing_seconds: 4
skip_hubs: "Hangar, ai-5g-a"
file_dir:
shared: "/cmii/share/hls"
backup: "/cmii/backup"
debug:
save_all: false
save_to: "UASMS"
max_duration: 120
minio:
endpoint: "{{ .Values.external.minio.endpoint }}"
access_key: "{{ .Values.external.minio.accessKey }}"
secret_key: "{{ .Values.external.minio.secretKey }}"
mysql:
host: {{ .Values.external.database.host }}
port: {{ .Values.external.database.port }}
username: {{ .Values.external.database.username }}
password: {{ .Values.external.database.password }}
redis:
host: {{ .Values.external.redis.host }}
port: {{ .Values.external.redis.port }}
database: {{ .Values.redis.zlmOssDb }}
password: {{ .Values.external.redis.password }}
rabbitmq:
host: {{ .Values.external.rabbitmq.host }}
port: {{ .Values.external.rabbitmq.port }}
username: {{ .Values.external.rabbitmq.username }}
password: {{ .Values.external.rabbitmq.password }}
platforms:
live_op:
db_schema: "{{ .Values.databases.liveOp }}"
old_cmlc:
cloud_live: "{{ .Values.external.cloudLive }}"
quota: false
oss_bucket: "ilm-detect"
meta:
src_id: "1323096648758464518"
user_id: 0
company_id: 0
uasms:
scope_prefix: "UASMS"
oss_bucket: "ilm-detect"
meta:
src_id: "1323096648758464523"
platform: "REGULATOR"
user_id: 0
lite:
scope_prefix: "LITE"
oss_bucket: "ilm-detect"
routing_key: "sky.live.video"
meta:
src_id: "1111111112222222222"
platform: "LITE"
user_id: 0

Some files were not shown because too many files have changed in this diff Show More