Compare commits

...

10 Commits

Author SHA1 Message Date
zeaslity
22ea4b8359 [cmii][deploy] - cmii-uav-watchdog-test.yaml 2025-09-01 17:01:27 +08:00
zeaslity
32c82b2751 大量更新 2025-03-27 16:02:12 +08:00
zeaslity
ae4bdb7dbc [cmii][deploy] - cmii-uav-watchdog-test.yaml 2025-03-26 16:55:36 +08:00
zeaslity
ae1baa4c38 大量更新 2025-03-26 16:53:31 +08:00
zeaslity
c8d897622d [cmii][deploy] - 优化后端项目结构 2025-03-26 16:17:07 +08:00
zeaslity
86bcbad396 大量更新 2025-03-26 15:22:01 +08:00
zeaslity
ab6a130950 优化Zsh安装脚本执行逻辑
- 移除oh-my-zsh插件列表文件的清理步骤
- 将Zsh安装命令从"/bin/bash"改为"sh -c"
- 针对国内网络环境,使用SingleLineCommandExecutor设置远程仓库地址
- 简化Zsh插件安装命令的执行方式
2025-03-12 14:27:12 +08:00
zeaslity
8e4444a7cc 优化Zsh插件安装流程和命令执行器
- 重构Zsh插件安装逻辑,将硬编码URL拆分为源和目标路径
- 修改RealTimeCommandExecutor,增加实时命令执行日志输出
- 优化SingleLineCommandExecutor日志信息,改进命令日志可读性
- 简化插件安装命令,支持国内外镜像源的插件克隆
2025-03-11 16:14:28 +08:00
zeaslity
34b5f80704 重构命令执行器和防火墙管理逻辑
- 优化Base.go中防火墙清空命令,使用更结构化的命令执行方式
- 修改Proxy.go中Xray安装命令,改用SingleLineCommandExecutor
- 重构Excutor.go,新增RealTimeCommandExecutor方法,支持实时输出命令执行日志
- 简化命令执行日志输出,移除冗余的日志前缀
- 改进管道命令执行的日志记录,增加可读性
2025-03-11 16:07:19 +08:00
zeaslity
35646ff89f 优化Harbor、Docker和Zsh安装流程,改进命令执行和文件操作
- 重构Harbor安装命令,改进容器检查和启动逻辑
- 修改Docker和DockerCompose安装方法,优化文件移动和权限设置
- 更新Zsh插件安装命令,简化git克隆过程
- 调整UnzipFile工具方法,支持更多压缩文件类型
- 修正Docker Daemon配置文件中的安装节标签
- 更新测试脚本,简化文件上传流程
2025-03-11 15:59:21 +08:00
47 changed files with 29852 additions and 24190 deletions

19
.aiexclude Normal file
View File

@@ -0,0 +1,19 @@
.cursorignore
.cursor
.idea
.run
agent
agent-tmp
common
message_pusher
port_forwarding
server-go
socks5_txthinking
source
pom.xml
setting-aliyun.xml

View File

@@ -12,4 +12,17 @@
<pattern value="^\QTestFetchDependencyRepos_Middle\E$" />
<method v="2" />
</configuration>
<configuration default="false" name="Middle镜像-35.70" type="GoTestRunConfiguration" factoryName="Go Test">
<module name="ProjectOctopus" />
<target name="wdd-dev-35.70" />
<working_directory value="$PROJECT_DIR$/agent-operator" />
<kind value="PACKAGE" />
<package value="wdd.io/agent-operator" />
<directory value="$PROJECT_DIR$" />
<filePath value="$PROJECT_DIR$" />
<option name="build_on_remote_target" value="true" />
<framework value="gotest" />
<pattern value="^\QTestFetchDependencyRepos_Middle\E$" />
<method v="2" />
</configuration>
</component>

View File

@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -0,0 +1,21 @@
apiVersion: v2
appVersion: 2.1.7
description: Apache Doris is an easy-to-use, high-performance and real-time analytical
database based on MPP architecture, known for its extreme speed and ease of use.
home: https://doris.apache.org
icon: https://charts.selectdb.com/images/doris.jpg
keywords:
- doris
- database
- olap
- sharding
kubeVersion: '>= 1.19'
maintainers:
- email: hudechao@selectdb.com
name: Dechao Hu
name: doris
sources:
- https://github.com/apache/doris
- https://github.com/apache/doris-operator
type: application
version: 25.2.1

View File

@@ -0,0 +1,61 @@
# Deploy Doris Cluster by Helm
[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/doris)](https://artifacthub.io/packages/search?repo=doris)
This chart for deploying doris on kubernetes use Doris-Operator. Before using this chart, please install doris-operator as [install doc](https://artifacthub.io/packages/helm/doris/doris-operator).
## Install doris
### Add helm-chart repo and install doris-operator
this document and doris-operator installation document are duplicated. you can skip If they have already been executed completely.
1. Add the selectdb repository
```Bash
$ helm repo add selectdb https://charts.selectdb.com
```
2. Update the Helm Chart Repo to the latest version
```Bash
$ helm repo update selectdb
```
3. Check the Helm Chart Repo is the latest version
```Bash
$ helm search repo selectdb
NAME CHART VERSION APP VERSION DESCRIPTION
selectdb/doris-operator 1.3.1 1.3.1 Doris-operator for doris creat ...
selectdb/doris 1.3.1 2.0.3 Apache Doris is an easy-to-use ...
```
4. Install doris-operator (with default config in a namespace named `doris`)
```Bash
$ helm install operator selectdb/doris-operator
```
### Install the doris use doriscluster
- Use default config for deploying doris
This deploy only deploy fe and be components using default storageClass for providing persistent volume.
```bash
$ helm install doriscluster selectdb/doris
```
- Custom doris deploying
when you want to specify resources or different deployment type, please custom the [`values.yaml`](./values.yaml) and use next command for deploying.
```bash
$ helm install -f values.yaml doriscluster selectdb/doris
```
### Validate installation status
After executing the installation command, deployment and distribution, service deployment scheduling and startup will take a certain amount of time. Check the deployment status of Pods through the kubectl get pods command.
Observe that the Pod of `doriscluster` is in the `Running` state and all containers in the Pod are ready, that means, the deployment is successful.
```Bash
$ kubectl get pod --namespace doris
NAME READY STATUS RESTARTS AGE
doriscluster-helm-fe-0 1/1 Running 0 1m39s
doriscluster-helm-fe-1 1/1 Running 0 1m39s
doriscluster-helm-fe-2 1/1 Running 0 1m39s
doriscluster-helm-be-0 1/1 Running 0 16s
doriscluster-helm-be-1 1/1 Running 0 16s
doriscluster-helm-be-2 1/1 Running 0 16s
```
## Uninstall doriscluster
Please confirm the Doris is not used, when using next command to uninstall `doriscluster`.
```bash
$ helm uninstall doriscluster
```

View File

@@ -0,0 +1 @@
Thank you for installing {{ .Chart.Name }}-{{ .Chart.Version }}

View File

@@ -0,0 +1,267 @@
{*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*}
{{- define "doriscluster.name" -}}
{{ default .Chart.Name .Values.dorisCluster.name }}
{{- end }}
{{- define "doriscluster.namespace" -}}
{{ print .Release.Namespace }}
{{- end }}
{{- define "kube-control.name" -}}
{{- print "doris-operator" }}
{{- end }}
{{/*
doris cluster pod default resource.
*/}}
{{- define "doriscluster.default.resource" }}
requests:
cpu: 8
memory: 16Gi
limits:
cpu: 16
memory: 32Gi
{{- end }}
{{/*
doris cluster admin user and password secret name.
*/}}
{{- define "doriscluster.secret.name" -}}
{{ template "doriscluster.name" . }}-secret-base64
{{- end -}}
{{/*
doris cluster fe configMap default name.
*/}}
{{- define "doriscluster.default.feConfigMap.name" -}}
{{ template "doriscluster.name" . }}-fe-configmap
{{- end -}}
{{/*
doris cluster fe pod default configMap resolve file.
*/}}
{{- define "doriscluster.default.feConfig.resolveKey" }}
{{- print "fe.conf" }}
{{- end }}
{{/*
doris cluster be configMap default name.
*/}}
{{- define "doriscluster.default.beConfigMap.name" -}}
{{ template "doriscluster.name" . }}-be-configmap
{{- end -}}
{{/*
doris cluster pod default configMap resolve file.
*/}}
{{- define "doriscluster.default.beConfig.resolveKey" }}
{{- print "be.conf" }}
{{- end }}
{{/*
doris cluster cn configMap default name.
*/}}
{{- define "doriscluster.default.cnConfigMap.name" -}}
{{ template "doriscluster.name" . }}-cn-configmap
{{- end -}}
{{/*
doris cluster cn pod default configMap resolve file.
*/}}
{{- define "doriscluster.default.cnConfig.resolveKey" }}
{{- print "be.conf" }}
{{- end }}
{{/*
doris cluster broker configMap default name.
*/}}
{{- define "doriscluster.default.brokerConfigMap.name" -}}
{{ template "doriscluster.name" . }}-broker-configmap
{{- end -}}
{{/*
doris cluster broker pod default configMap resolve file.
*/}}
{{- define "doriscluster.default.brokerConfig.resolveKey" }}
{{- print "apache_hdfs_broker.conf" }}
{{- end }}
{{/*
doris cluster cn pod autoscaler default version.
*/}}
{{- define "doriscluster.default.autoScalerVersion" -}}
{{- print "v2" }}
{{- end -}}
{{/*
doris cluster fe PVC
*/}}
{{- define "doriscluster.fe.pvc" -}}
{{- if and .Values.feSpec.persistentVolumeClaim.metaPersistentVolume .Values.feSpec.persistentVolumeClaim.metaPersistentVolume.storage}}
- mountPath: /opt/apache-doris/fe/doris-meta
name: fe-meta
persistentVolumeClaimSpec:
{{- if or .Values.feSpec.persistentVolumeClaim.metaPersistentVolume.storageClassName .Values.feSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName }}
storageClassName: {{ default .Values.feSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName .Values.feSpec.persistentVolumeClaim.metaPersistentVolume.storageClassName }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.feSpec.persistentVolumeClaim.metaPersistentVolume.storage}}
{{- end }}
{{- if and .Values.feSpec.persistentVolumeClaim.logsPersistentVolume .Values.feSpec.persistentVolumeClaim.logsPersistentVolume.storage}}
- mountPath: /opt/apache-doris/fe/log
name: fe-log
persistentVolumeClaimSpec:
{{- if or .Values.feSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName .Values.feSpec.persistentVolumeClaim.metaPersistentVolume.storageClassName}}
storageClassName: {{ default .Values.feSpec.persistentVolumeClaim.metaPersistentVolume.storageClassName .Values.feSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.feSpec.persistentVolumeClaim.logsPersistentVolume.storage}}
{{- end }}
{{- end -}}
{{/*
doris cluster be PVC
*/}}
{{- define "doriscluster.be.pvc" -}}
{{- if and .Values.beSpec.persistentVolumeClaim.dataPersistentVolume .Values.beSpec.persistentVolumeClaim.dataPersistentVolume.storage}}
- mountPath: /opt/apache-doris/be/storage
name: be-storage
persistentVolumeClaimSpec:
{{- if or .Values.beSpec.persistentVolumeClaim.dataPersistentVolume.storageClassName .Values.beSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName }}
storageClassName: {{ default .Values.beSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName .Values.beSpec.persistentVolumeClaim.dataPersistentVolume.storageClassName }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.beSpec.persistentVolumeClaim.dataPersistentVolume.storage}}
{{- end }}
{{- if and .Values.beSpec.persistentVolumeClaim.logsPersistentVolume .Values.beSpec.persistentVolumeClaim.logsPersistentVolume.storage}}
- mountPath: /opt/apache-doris/be/log
name: be-log
persistentVolumeClaimSpec:
{{- if or .Values.beSpec.persistentVolumeClaim.dataPersistentVolume.storageClassName .Values.beSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName }}
storageClassName: {{ default .Values.beSpec.persistentVolumeClaim.dataPersistentVolume.storageClassName .Values.beSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.beSpec.persistentVolumeClaim.logsPersistentVolume.storage}}
{{- end }}
{{- end -}}
{{/*
doris cluster cn PVC
*/}}
{{- define "doriscluster.cn.pvc" -}}
{{- if and .Values.cnSpec.persistentVolumeClaim.dataPersistentVolume .Values.cnSpec.persistentVolumeClaim.dataPersistentVolume.storage}}
- mountPath: /opt/apache-doris/be/storage
name: cn-storage
persistentVolumeClaimSpec:
{{- if or .Values.cnSpec.persistentVolumeClaim.dataPersistentVolume.storageClassName .Values.cnSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName }}
storageClassName: {{ default .Values.cnSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName .Values.cnSpec.persistentVolumeClaim.dataPersistentVolume.storageClassName }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.cnSpec.persistentVolumeClaim.dataPersistentVolume.storage}}
{{- end }}
{{- if and .Values.cnSpec.persistentVolumeClaim.logsPersistentVolume .Values.cnSpec.persistentVolumeClaim.logsPersistentVolume.storage}}
- mountPath: /opt/apache-doris/be/log
name: cn-log
persistentVolumeClaimSpec:
{{- if or .Values.cnSpec.persistentVolumeClaim.dataPersistentVolume.storageClassName .Values.cnSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName }}
storageClassName: {{ default .Values.cnSpec.persistentVolumeClaim.dataPersistentVolume.storageClassName .Values.cnSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.cnSpec.persistentVolumeClaim.logsPersistentVolume.storage}}
{{- end }}
{{- end -}}
{{/*
doris cluster broker PVC
*/}}
{{- define "doriscluster.broker.pvc" -}}
{{- if and .Values.brokerSpec.persistentVolumeClaim.logsPersistentVolume .Values.brokerSpec.persistentVolumeClaim.logsPersistentVolume.storage}}
- mountPath: /opt/apache-doris/apache_hdfs_broker/log
name: broker-log
persistentVolumeClaimSpec:
{{- if .Values.brokerSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName}}
storageClassName: {{ .Values.brokerSpec.persistentVolumeClaim.logsPersistentVolume.storageClassName }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.brokerSpec.persistentVolumeClaim.logsPersistentVolume.storage}}
{{- end }}
{{- end -}}
{{- define "doriscluster.feConfig.configMaps" }}
{{- range .Values.feSpec.configMap.mountConfigMaps }}
- configMapName: {{ .configMapName }}
mountPath: {{ .mountPath }}
{{- end }}
{{- end }}
{{- define "doriscluster.beConfig.configMaps" }}
{{- range .Values.beSpec.configMap.mountConfigMaps }}
- configMapName: {{ .configMapName }}
mountPath: {{ .mountPath }}
{{- end }}
{{- end }}
{{- define "doriscluster.cnConfig.configMaps" }}
{{- range .Values.cnSpec.configMap.mountConfigMaps }}
- configMapName: {{ .configMapName }}
mountPath: {{ .mountPath }}
{{- end }}
{{- end }}
{{- define "doriscluster.brokerConfig.configMaps" }}
{{- range .Values.brokerSpec.configMap.mountConfigMaps }}
- configMapName: {{ .configMapName }}
mountPath: {{ .mountPath }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,31 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
{{- $originalMap := omit .Values.beSpec.configMap "mountConfigMaps" }}
{{- if $originalMap }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "doriscluster.default.beConfigMap.name" . }}
namespace: {{ template "doriscluster.namespace" . }}
labels:
app.kubernetes.io/name: doriscluster
app.kubernetes.io/instance: {{ template "doriscluster.name" . }}
app.kubernetes.io/part-of: {{ template "kube-control.name" . }}
data:
{{- toYaml $originalMap | nindent 2}}
{{- end }}

View File

@@ -0,0 +1,31 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
{{- $originalMap := omit .Values.brokerSpec.configMap "mountConfigMaps" }}
{{- if $originalMap }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "doriscluster.default.brokerConfigMap.name" . }}
namespace: {{ template "doriscluster.namespace" . }}
labels:
app.kubernetes.io/name: doriscluster
app.kubernetes.io/instance: {{ template "doriscluster.name" . }}
app.kubernetes.io/part-of: {{ template "kube-control.name" . }}
data:
{{- toYaml $originalMap | nindent 2}}
{{- end }}

View File

@@ -0,0 +1,31 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
{{- $originalMap := omit .Values.cnSpec.configMap "mountConfigMaps" }}
{{- if $originalMap }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "doriscluster.default.cnConfigMap.name" . }}
namespace: {{ template "doriscluster.namespace" . }}
labels:
app.kubernetes.io/name: doriscluster
app.kubernetes.io/instance: {{ template "doriscluster.name" . }}
app.kubernetes.io/part-of: {{ template "kube-control.name" . }}
data:
{{- toYaml $originalMap | nindent 2}}
{{- end }}

View File

@@ -0,0 +1,31 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
{{- $originalMap := omit .Values.feSpec.configMap "mountConfigMaps" }}
{{- if $originalMap }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "doriscluster.default.feConfigMap.name" . }}
namespace: {{ template "doriscluster.namespace" . }}
labels:
app.kubernetes.io/name: doriscluster
app.kubernetes.io/instance: {{ template "doriscluster.name" . }}
app.kubernetes.io/part-of: {{ template "kube-control.name" . }}
data:
{{- toYaml $originalMap | nindent 2}}
{{- end }}

View File

@@ -0,0 +1,56 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
{{$cmDatas := list }}
{{- range $cp := .Values.feSpec.configMap.mountConfigMaps }}
{{- if $cp.data }}
{{- $cmDatas = append $cmDatas $cp }}
{{- end }}
{{- end }}
{{- range $index, $cp := .Values.beSpec.configMap.mountConfigMaps }}
{{- if $cp.data }}
{{- $cmDatas = append $cmDatas $cp }}
{{- end }}
{{- end }}
{{- range $index, $cp := .Values.brokerSpec.configMap.mountConfigMaps }}
{{- if $cp.data }}
{{- $cmDatas = append $cmDatas $cp }}
{{- end }}
{{- end }}
{{- range $index, $cp := .Values.cnSpec.configMap.mountConfigMaps }}
{{- if $cp.data }}
{{- $cmDatas = append $cmDatas $cp }}
{{- end }}
{{- end }}
{{- range $cp := $cmDatas }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $cp.configMapName }}
namespace: {{ template "doriscluster.namespace" $ }}
labels:
app.kubernetes.io/name: doriscluster
app.kubernetes.io/instance: {{ template "doriscluster.name" $ }}
app.kubernetes.io/part-of: {{ template "kube-control.name" $ }}
data:
{{- toYaml $cp.data | nindent 2 }}
---
{{- end }}

View File

@@ -0,0 +1,368 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# This yaml have dorisCluster CRD all fields. The yaml only for reference how to config, not for deploy on kubernetes.
apiVersion: doris.selectdb.com/v1
kind: DorisCluster
metadata:
name: {{ template "doriscluster.name" . }}
namespace: {{ template "doriscluster.namespace" . }}
labels:
app.kubernetes.io/name: doriscluster
app.kubernetes.io/instance: {{ template "doriscluster.name" . }}
app.kubernetes.io/part-of: {{ template "kube-control.name" . }}
{{- if .Values.dorisCluster.annotations }}
annotations:
{{- toYaml .Values.dorisCluster.annotations | nindent 4 }}
{{- end }}
spec:
{{- if .Values.dorisCluster.adminUser }}
adminUser:
{{- toYaml .Values.dorisCluster.adminUser | nindent 4 }}
{{- else if .Values.dorisCluster.authSecret }}
authSecret: {{ template "doriscluster.secret.name" . }}
{{- end }}
feSpec:
replicas: {{ .Values.feSpec.replicas }}
{{- if .Values.feSpec.electionNumber }}
electionNumber: {{ .Values.feSpec.electionNumber }}
{{- end }}
{{- if .Values.feSpec.labels }}
podLabels:
{{- toYaml .Values.feSpec.labels | nindent 6 }}
{{- end }}
image: {{ .Values.feSpec.image.repository }}:{{ .Values.feSpec.image.tag }}
{{- if .Values.feSpec.image.imagePullSecrets }}
imagePullSecrets:
{{- toYaml .Values.feSpec.image.imagePullSecrets | nindent 4 }}
{{- end }}
{{- if .Values.feSpec.service }}
service:
type: {{ .Values.feSpec.service.type }}
{{- if and (eq "LoadBalancer" .Values.feSpec.service.type) .Values.feSpec.service.loadbalancerIP }}
loadBalancerIP: {{ .Values.feSpec.service.loadbalancerIP }}
{{- end }}
{{- if .Values.feSpec.service.servicePorts }}
servicePorts:
{{- toYaml .Values.feSpec.service.servicePorts | nindent 6 }}
{{- end }}
{{- if .Values.feSpec.service.annotations }}
annotations:
{{- toYaml .Values.feSpec.service.annotations | nindent 8 }}
{{- end }}
{{- end }}
{{- if .Values.feSpec.configMap }}
configMapInfo:
{{- $originalMap := .Values.feSpec.configMap }}
{{- $defaultMap := omit $originalMap "mountConfigMaps" }}
{{- if $defaultMap }}
configMapName: {{ template "doriscluster.default.feConfigMap.name" . }}
resolveKey: {{ template "doriscluster.default.feConfig.resolveKey" . }}
{{- end }}
{{- if .Values.feSpec.configMap.mountConfigMaps }}
configMaps:
{{- template "doriscluster.feConfig.configMaps" . }}
{{- end }}
{{- end }}
{{- if .Values.feSpec.resource }}
{{- toYaml .Values.feSpec.resource | nindent 4 }}
{{- else }}
{{- include "doriscluster.default.resource" .}}
{{- end }}
{{- if .Values.feSpec.nodeSelector }}
nodeSelector:
{{- toYaml .Values.feSpec.nodeSelector | nindent 6 }}
{{- end }}
{{- if .Values.feSpec.env }}
envVars:
{{- toYaml .Values.feSpec.env | nindent 4 }}
{{- end }}
{{- if .Values.feSpec.affinity }}
affinity:
{{- toYaml .Values.feSpec.affinity | nindent 6 }}
{{- end }}
{{- if .Values.feSpec.tolerations }}
tolerations:
{{- toYaml .Values.feSpec.tolerations | nindent 4 }}
{{- end }}
{{- if .Values.feSpec.hostAliases }}
hostAliases:
{{- toYaml .Values.feSpec.hostAliases | nindent 4 }}
{{- end }}
{{- if .Values.feSpec.persistentVolumeClaim }}
persistentVolumes:
{{- template "doriscluster.fe.pvc" . }}
{{- end }}
{{- if .Values.feSpec.systemInitialization }}
systemInitialization:
{{- if .Values.feSpec.systemInitialization.initImage }}
initImage: {{ .Values.feSpec.systemInitialization.initImage }}
{{- end }}
{{- if .Values.feSpec.systemInitialization.command }}
command: {{ .Values.feSpec.systemInitialization.command }}
{{- end }}
{{- end }}
beSpec:
replicas: {{ .Values.beSpec.replicas }}
{{- if .Values.beSpec.labels }}
podLabels:
{{- toYaml .Values.beSpec.labels | nindent 6 }}
{{- end }}
image: {{ .Values.beSpec.image.repository }}:{{ .Values.beSpec.image.tag }}
{{- if .Values.beSpec.image.imagePullSecrets }}
imagePullSecrets:
{{- toYaml .Values.beSpec.image.imagePullSecrets | nindent 4 }}
{{- end }}
{{- if .Values.beSpec.service }}
service:
type: {{ .Values.beSpec.service.type }}
{{- if and (eq "LoadBalancer" .Values.beSpec.service.type) .Values.beSpec.service.loadbalancerIP }}
loadBalancerIP: {{ .Values.beSpec.service.loadbalancerIP }}
{{- end }}
{{- if .Values.beSpec.service.servicePorts }}
servicePorts:
{{- toYaml .Values.beSpec.service.servicePorts | nindent 6 }}
{{- end }}
{{- if .Values.beSpec.service.annotations }}
annotations:
{{- toYaml .Values.beSpec.service.annotations | nindent 8 }}
{{- end }}
{{- end }}
{{- if .Values.beSpec.configMap }}
configMapInfo:
{{- $originalMap := .Values.beSpec.configMap }}
{{- $defaultMap := omit $originalMap "mountConfigMaps" }}
{{- if $defaultMap }}
configMapName: {{ template "doriscluster.default.beConfigMap.name" . }}
resolveKey: {{ template "doriscluster.default.beConfig.resolveKey" . }}
{{- end }}
{{- if .Values.beSpec.configMap.mountConfigMaps }}
configMaps:
{{- template "doriscluster.beConfig.configMaps" . }}
{{- end }}
{{- end }}
{{- if .Values.beSpec.resource }}
{{- toYaml .Values.beSpec.resource | nindent 4 }}
{{- else }}
{{- include "doriscluster.default.resource" .}}
{{- end }}
{{- if .Values.beSpec.nodeSelector }}
nodeSelector:
{{- toYaml .Values.beSpec.nodeSelector | nindent 6 }}
{{- end }}
{{- if .Values.beSpec.env }}
envVars:
{{- toYaml .Values.beSpec.env | nindent 4 }}
{{- end }}
{{- if .Values.beSpec.affinity }}
affinity:
{{- toYaml .Values.beSpec.affinity | nindent 6 }}
{{- end }}
{{- if .Values.beSpec.tolerations }}
tolerations:
{{- toYaml .Values.beSpec.tolerations | nindent 4 }}
{{- end }}
{{- if .Values.beSpec.hostAliases }}
hostAliases:
{{- toYaml .Values.beSpec.hostAliases | nindent 4 }}
{{- end }}
{{- if .Values.beSpec.persistentVolumeClaim }}
persistentVolumes:
{{- template "doriscluster.be.pvc" . }}
{{- end }}
{{- if .Values.beSpec.systemInitialization }}
systemInitialization:
{{- if .Values.beSpec.systemInitialization.initImage }}
initImage: {{ .Values.beSpec.systemInitialization.initImage }}
{{- end }}
{{- if .Values.beSpec.systemInitialization.command }}
command: {{ .Values.beSpec.systemInitialization.command }}
{{- end }}
{{- end }}
{{- if .Values.dorisCluster.enabledCn }}
cnSpec:
replicas: {{ .Values.cnSpec.replicas }}
{{- if .Values.cnSpec.labels }}
podLabels:
{{- toYaml .Values.cnSpec.labels | nindent 6 }}
{{- end }}
image: {{ .Values.cnSpec.image.repository }}:{{ .Values.cnSpec.image.tag }}
{{- if .Values.cnSpec.image.imagePullSecrets }}
imagePullSecrets:
{{- toYaml .Values.cnSpec.image.imagePullSecrets | nindent 4 }}
{{- end }}
{{- if .Values.cnSpec.service }}
service:
type: {{ .Values.cnSpec.service.type }}
{{- if and (eq "LoadBalancer" .Values.cnSpec.service.type) .Values.cnSpec.service.loadbalancerIP }}
loadBalancerIP: {{ .Values.cnSpec.service.loadbalancerIP }}
{{- end }}
{{- if .Values.cnSpec.service.servicePorts }}
servicePorts:
{{- toYaml .Values.cnSpec.service.servicePorts | nindent 6 }}
{{- end }}
{{- if .Values.cnSpec.service.annotations }}
annotations:
{{- toYaml .Values.cnSpec.service.annotations | nindent 8 }}
{{- end }}
{{- end }}
{{- if .Values.cnSpec.configMap }}
configMapInfo:
{{- $originalMap := .Values.cnSpec.configMap }}
{{- $defaultMap := omit $originalMap "mountConfigMaps" }}
{{- if $defaultMap }}
configMapName: {{ template "doriscluster.default.cnConfigMap.name" . }}
resolveKey: {{ template "doriscluster.default.cnConfig.resolveKey" . }}
{{- end }}
{{- if .Values.cnSpec.configMap.mountConfigMaps }}
configMaps:
{{- template "doriscluster.cnConfig.configMaps" . }}
{{- end }}
{{- end }}
{{- if .Values.cnSpec.resource }}
{{- toYaml .Values.cnSpec.resource | nindent 4 }}
{{- else }}
{{- include "doriscluster.default.resource" .}}
{{- end }}
{{- if .Values.cnSpec.nodeSelector }}
nodeSelector:
{{- toYaml .Values.cnSpec.nodeSelector | nindent 6 }}
{{- end }}
{{- if .Values.cnSpec.env }}
envVars:
{{- toYaml .Values.cnSpec.env | nindent 4 }}
{{- end }}
{{- if .Values.cnSpec.affinity }}
affinity:
{{- toYaml .Values.cnSpec.affinity | nindent 6 }}
{{- end }}
{{- if .Values.cnSpec.tolerations }}
tolerations:
{{- toYaml .Values.cnSpec.tolerations | nindent 4 }}
{{- end }}
{{- if .Values.cnSpec.hostAliases }}
hostAliases:
{{- toYaml .Values.cnSpec.hostAliases | nindent 4 }}
{{- end }}
{{- if .Values.cnSpec.persistentVolumeClaim }}
persistentVolumes:
{{- template "doriscluster.cn.pvc" . }}
{{- end }}
{{- if .Values.cnSpec.systemInitialization }}
systemInitialization:
{{- if .Values.cnSpec.systemInitialization.initImage }}
initImage: {{ .Values.cnSpec.systemInitialization.initImage }}
{{- end }}
{{- if .Values.cnSpec.systemInitialization.command }}
command: {{ .Values.cnSpec.systemInitialization.command }}
{{- end }}
{{- end }}
{{- if .Values.cnSpec.autoScalingPolicy.enable }}
autoScalingPolicy:
version: {{default ( include "doriscluster.default.autoScalerVersion" . ) .Values.cnSpec.autoScalingPolicy.version }}
minReplicas: {{ .Values.cnSpec.autoScalingPolicy.minReplicas}}
maxReplicas: {{ .Values.cnSpec.autoScalingPolicy.maxReplicas}}
hpaPolicy:
{{- toYaml .Values.cnSpec.autoScalingPolicy.hpaPolicy | nindent 8 }}
{{- end }}
{{- end }}
{{- if .Values.dorisCluster.enabledBroker }}
brokerSpec:
replicas: {{ .Values.brokerSpec.replicas }}
{{- if .Values.brokerSpec.labels }}
podLabels:
{{- toYaml .Values.brokerSpec.labels | nindent 6 }}
{{- end }}
image: {{ .Values.brokerSpec.image.repository }}:{{ .Values.brokerSpec.image.tag }}
{{- if .Values.brokerSpec.image.imagePullSecrets }}
imagePullSecrets:
{{- toYaml .Values.brokerSpec.image.imagePullSecrets | nindent 4 }}
{{- end }}
{{- if .Values.brokerSpec.configMap }}
configMapInfo:
{{- $originalMap := .Values.brokerSpec.configMap }}
{{- $defaultMap := omit $originalMap "mountConfigMaps" }}
{{- if $defaultMap }}
configMapName: {{ template "doriscluster.default.brokerConfigMap.name" . }}
resolveKey: {{ template "doriscluster.default.brokerConfig.resolveKey" . }}
{{- end }}
{{- if .Values.brokerSpec.configMap.mountConfigMaps }}
configMaps:
{{- template "doriscluster.brokerConfig.configMaps" . }}
{{- end }}
{{- end }}
{{- if .Values.brokerSpec.resource }}
{{- toYaml .Values.brokerSpec.resource | nindent 4 }}
{{- else }}
{{- include "doriscluster.default.resource" .}}
{{- end }}
{{- if .Values.brokerSpec.nodeSelector }}
nodeSelector:
{{- toYaml .Values.brokerSpec.nodeSelector | nindent 6 }}
{{- end }}
{{- if .Values.brokerSpec.env }}
envVars:
{{- toYaml .Values.brokerSpec.env | nindent 4 }}
{{- end }}
{{- if .Values.brokerSpec.affinity }}
affinity:
{{- toYaml .Values.brokerSpec.affinity | nindent 6 }}
{{- end }}
{{- if .Values.brokerSpec.tolerations }}
tolerations:
{{- toYaml .Values.brokerSpec.tolerations | nindent 4 }}
{{- end }}
{{- if .Values.brokerSpec.hostAliases }}
hostAliases:
{{- toYaml .Values.brokerSpec.hostAliases | nindent 4 }}
{{- end }}
{{- if .Values.brokerSpec.persistentVolumeClaim }}
persistentVolumes:
{{- template "doriscluster.broker.pvc" . }}
{{- end }}
{{- if .Values.brokerSpec.systemInitialization }}
systemInitialization:
{{- if .Values.brokerSpec.systemInitialization.initImage }}
initImage: {{ .Values.brokerSpec.systemInitialization.initImage }}
{{- end }}
{{- if .Values.brokerSpec.systemInitialization.command }}
command: {{ .Values.brokerSpec.systemInitialization.command }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,31 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
{{- if .Values.dorisCluster.authSecret }}
apiVersion: v1
kind: Secret
metadata:
name: {{ template "doriscluster.secret.name" . }}
namespace: {{ template "doriscluster.namespace" . }}
labels:
app.kubernetes.io/name: doriscluster
app.kubernetes.io/instance: {{ template "doriscluster.name" . }}
app.kubernetes.io/part-of: {{ template "kube-control.name" . }}
type: kubernetes.io/basic-auth
data:
{{- toYaml .Values.dorisCluster.authSecret | nindent 2}}
{{- end }}

View File

@@ -0,0 +1,697 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# deploy a doris cluster
dorisCluster:
# the name of doriscluster, if not set, the chart name will be used.
name: "doriscluster-helm"
# annotations for doris cluster.
annotations: {}
# specify the cn deploy or not.
enabledCn: false
# specify the broker deploy or not.
enabledBroker: false
# specify the doriscluster adminuser or not.
# set adminUser will record the password in clear text. This method has been abandoned and is not recommended.
# When adding adminuser. should follow the steps:
# 1. Start dorisclusert without adminUser
# 2. Run 'CREATE USER ...' or 'SET PASSWORD ...' in mysql client
# 3. Add the name and password added in the previous step to adminUser and execute helm
adminUser: {}
# name: root
# password: "12345"
# use authSecret can encrypt and save passwords, recommend this method
# 1. run shell: echo -n '{your_password}' | base64 to get password base64 string
# 2. run shell: echo -n '{your_user}' | base64 to get user base64 string
# 3. Fill the encrypted string into the corresponding position
# as follow, username is 'root' , password is 't0p-Secret'
authSecret: {}
# username: cm9vdA==
# password: dDBwLVNlY3JldA==
feSpec:
replicas: 3
# electionNumber represents `FOLLOWER` number, replicas - electionNumber as `OBSERVER`
# electionNumber: 3
# the pod labels for user select or classify pods.
labels: {}
# selectdb.app.classify: "classify-1"
image:
repository: apache/doris
tag: fe-2.1.7
# imagePullSecrets:
# - name: imagePullSecret
# config the service port for fe service.
# if you want to use a dedicated port for fe service, you can config the port.
# see https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports for more details.
service:
# the fe service type, only supported ClusterIP, NodePort, LoadBalancer
type: ClusterIP
# type: NodePort
# servicePorts:
# - nodePort: 30001
# targetPort: 9030
# - nodePort: 30002
# targetPort: 8030
# the loadBalancerIP for static ip config when the type=LoadBalancer and loadbalancerIp is not empty.
# type: "LoadBalancer"
# loadbalancerIP: "127.0.0.1"
# use LoadBalancer on cloud platform, try to configure it using annotations:
annotations: {}
# service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
# specify the configMap, as a dictionary.
# Its 'key' is the config file name in the doris 'doris_root_path/fe/conf/' file path,
# Its 'value' is the text content of the corresponding file (it should be relatively long, actually).
configMap: {}
# 'fe.conf' is the startup config file of fe, and the name must be 'fe.conf'.
# fe.conf: |
# http_port = 8030
# rpc_port = 9020
# query_port = 9030
# edit_log_port = 9010
# Other config files can also be specified here
# hdfs-site.xml: |
# <?xml version="1.0" encoding="UTF-8"?>
#
# <configuration>
# <property>
# <name>dfs.nameservices</name>
# <value>ns</value>
# </property>
#
# mountConfigMaps supports configmap mounting in the form of specifying the mounting directory
# but please note that the mounting path cannot be repeated.
# if the elements within mountConfigMaps contain data, it means that the configmap does not need to be created manually by the user, and vice versa.
# in the following example, the user needs to manually create configmap 'cm-1'
# mountConfigMaps: {}
# - configMapName: cm-1
# mountPath: /etc/cm1
# - configMapName: cm-2
# mountPath: /etc/cm2
# data:
# copy_file1: |
# text *** content
# copy_file2: |
# text *** content
# If configured separately here, it will overwrite the total resources configuration default.
# but the default configuration of other types will still take effect.
resource: {}
# requests:
# cpu: 8
# memory: 16Gi
# limits:
# cpu: 16
# memory: 32Gi
# If specified, the pod's nodeSelectordisplayName="Map of nodeSelectors to match when scheduling pods on nodes"
nodeSelector: {}
# kubernetes.io/arch: amd64
# kubernetes.io/os: linux
# app.kubernetes.node.name: "k8s-node1"
# env represents an environment variable present in a Container.
# 'name' of the environment variable. Must be a C_IDENTIFIER.
# no more than one of the following may be specified: 'value' or 'valueFrom',
# 'value' is the value of environment.
# 'valueFrom' is source for the environment variable's value. Cannot be used if 'value' is not empty.
env: []
# - name: "HOME"
# value: "/opt/selectdb"
# - name: HOST_IP
# valueFrom:
# fieldRef:
# apiVersion: v1
# fieldPath: status.hostIP
# affinity is the constraints of pod scheduling
# nodeAffinity: Describes node affinity scheduling rules for the pod.
# podAffinity: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
# PodAntiAffinity: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
# reference: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
affinity: {}
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# key: "app.kubernetes.node.name"
# operator: "In"
# values:
# - "k8s-node1"
# "k8s-node2"
# podAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# key: "app.kubernetes.node.name"
# operator: "In"
# values:
# - "fe1"
# "fe2"
# podAntiAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# key: "app.kubernetes.node.name"
# operator: "NotIn"
# values:
# - "fe1"
# "fe2"
# the pod this Toleration is attached to tolerates any taint that matches. Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
# the triple <key,value,effect> using the matching operator <operator>.
# 'key' is the taint key that the toleration applies to. Empty means match all taint keys. if the 'key' is empty, 'operator' must be Exists; this combination means to match all values and all keys.
# 'operator' represents a key's relationship to the 'value'. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
# 'value' is the taint value the toleration matches to. If the 'operator' is Exists, the 'value' should be empty, otherwise just a regular string.
# 'effect' indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
tolerations: []
# - key: "toleration"
# operator: "Equal"
# value: "master"
# - key: "node-role.kubernetes.io/master"
# operator: "Exists"
# effect: "NoSchedule"
# - operator: "Exists"
# hostAliases allows adding entries to /etc/hosts inside the containers
hostAliases: []
# If doris use hdfs or catalog, config the map of namenode host here is beneficial
# - ip: "127.0.0.1"
# hostnames:
# - "hostname1"
# - ip: "127.0.0.2"
# hostnames:
# - "hostname2"
persistentVolumeClaim: {}
# meta volume, mountPath is /opt/apache-doris/fe/doris-meta
# metaPersistentVolume:
# storage: 200Gi
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
# storageClassName: ""
# logs volume, mountPath is /opt/apache-doris/fe/log
# logsPersistentVolume:
# storage: 100Gi
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
# storageClassName: ""
systemInitialization: {}
# initImage: "selectdb/alpine:latest"
# command: [ "/sbin/sysctl", "-w", "vm.max_map_count=2000000" ]
beSpec:
replicas: 3
# the pod labels for user select or classify pods.
labels: {}
# selectdb.app.classify: "classify-1"
image:
repository: apache/doris
tag: be-2.1.7
# imagePullSecrets:
# - name: imagePullSecret
# config the service port for be service.
# if you want to use a dedicated port for be service, you can config the port.
# see https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports for more details.
service:
# the be service type, only supported ClusterIP, NodePort, LoadBalancer
type: ClusterIP
# type: NodePort
# servicePorts:
# - nodePort: 30003
# targetPort: 9040
# - nodePort: 30004
# targetPort: 8040
# the loadBalancerIP for static ip config when the type=LoadBalancer and loadbalancerIp is not empty.
# type: "LoadBalancer"
# loadbalancerIP: "127.0.0.1"
# use LoadBalancer on cloud platform, try to configure it using annotations
annotations: {}
# service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
# specify the configMap, as a dictionary.
# Its 'key' is the config file name in the doris 'doris_root_path/fe/conf/' file path,
# Its 'value' is the text content of the corresponding file (it should be relatively long, actually).
configMap: {}
# 'be.conf' is the startup config file of be, and the name must be 'be.conf'.
# be.conf: |
# be_port = 9060
# webserver_port = 8040
# heartbeat_service_port = 9050
# brpc_port = 8060
# storage_root_path = /data/doris/be/storage
# Other config files can also be specified here
# hdfs-site.xml: |
# <?xml version="1.0" encoding="UTF-8"?>
#
# <configuration>
# <property>
# <name>dfs.nameservices</name>
# <value>ns</value>
# </property>
#
# mountConfigMaps supports configmap mounting in the form of specifying the mounting directory
# but please note that the mounting path cannot be repeated.
# if the elements within mountConfigMaps contain data, it means that the configmap does not need to be created manually by the user, and vice versa.
# in the following example, the user needs to manually create configmap 'cm-1'
# mountConfigMaps: {}
# - configMapName: cm-1
# mountPath: /etc/cm1
# - configMapName: cm-2
# mountPath: /etc/cm2
# data:
# copy_file1: |
# text *** content
# copy_file2: |
# text *** content
# If configured separately here, it will overwrite the total resources configuration default.
# but the default configuration of other types will still take effect.
resource: {}
# requests:
# cpu: 8
# memory: 16Gi
# limits:
# cpu: 16
# memory: 32Gi
# If specified, the pod's nodeSelectordisplayName="Map of nodeSelectors to match when scheduling pods on nodes"
nodeSelector: {}
# kubernetes.io/arch: amd64
# kubernetes.io/os: linux
# app.kubernetes.node.name: "k8s-node1"
# env represents an environment variable present in a Container.
# 'name' of the environment variable. Must be a C_IDENTIFIER.
# no more than one of the following may be specified: 'value' or 'valueFrom',
# 'value' is the value of environment.
# 'valueFrom' is source for the environment variable's value. Cannot be used if 'value' is not empty.
env: []
# - name: "HOME"
# value: "/opt/selectdb"
# - name: HOST_IP
# valueFrom:
# fieldRef:
# apiVersion: v1
# fieldPath: status.hostIP
# affinity is the constraints of pod scheduling
# nodeAffinity: Describes node affinity scheduling rules for the pod.
# podAffinity: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
# PodAntiAffinity: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
# reference: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
affinity: {}
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# key: "app.kubernetes.node.name"
# operator: "In"
# values:
# - "k8s-node1"
# "k8s-node2"
# podAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# key: "app.kubernetes.node.name"
# operator: "In"
# values:
# - "fe1"
# "fe2"
# podAntiAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# key: "app.kubernetes.node.name"
# operator: "NotIn"
# values:
# - "fe1"
# "fe2"
# the pod this Toleration is attached to tolerates any taint that matches. Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
# the triple <key,value,effect> using the matching operator <operator>.
# 'key' is the taint key that the toleration applies to. Empty means match all taint keys. if the 'key' is empty, 'operator' must be Exists; this combination means to match all values and all keys.
# 'operator' represents a key's relationship to the 'value'. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
# 'value' is the taint value the toleration matches to. If the 'operator' is Exists, the 'value' should be empty, otherwise just a regular string.
# 'effect' indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
tolerations: []
# - key: "toleration"
# operator: "Equal"
# value: "master"
# - key: "node-role.kubernetes.io/master"
# operator: "Exists"
# effect: "NoSchedule"
# - operator: "Exists"
# hostAliases allows adding entries to /etc/hosts inside the containers
hostAliases: []
# If doris use hdfs or catalog, config the map of namenode host here is beneficial
# - ip: "127.0.0.1"
# hostnames:
# - "hostname1"
# - ip: "127.0.0.2"
# hostnames:
# - "hostname2"
persistentVolumeClaim: {}
# data volume, mountPath is /opt/apache-doris/be/storage
# dataPersistentVolume:
# storage: 200Gi
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
# storageClassName: ""
# logs volume, mountPath is /opt/apache-doris/be/log
# logsPersistentVolume:
# storage: 100Gi
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
# storageClassName: ""
systemInitialization: {}
# initImage: "selectdb/alpine:latest"
# command: [ "/sbin/sysctl", "-w", "vm.max_map_count=2000000" ]
cnSpec:
replicas: 3
# the pod labels for user select or classify pods.
labels: {}
# selectdb.app.classify: "classify-1"
image:
repository: apache/doris
tag: be-2.1.7
# imagePullSecrets:
# - name: imagePullSecret
# config the service port for cn service.
# if you want to use a dedicated port for cn service, you can config the port.
# see https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports for more details.
service:
# the cn service type, only supported ClusterIP, NodePort, LoadBalancer
type: ClusterIP
# type: NodePort
# servicePorts:
# - nodePort: 30005
# targetPort: 9040
# - nodePort: 30006
# targetPort: 8040
# type: "LoadBalancer"
# the loadBalancerIP for static ip config when the type=LoadBalancer and loadbalancerIp is not empty.
# loadbalancerIP: "127.0.0.1"
# use LoadBalancer on cloud platform, try to configure it using annotations
annotations: {}
# service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
# specify the configMap, as a dictionary.
# Its 'key' is the config file name in the doris 'doris_root_path/fe/conf/' file path,
# Its 'value' is the text content of the corresponding file (it should be relatively long, actually).
configMap: {}
# 'be.conf' is the startup config file of cn, and the name must be 'be.conf'.
# be.conf: |
# be_port = 9060
# webserver_port = 8040
# heartbeat_service_port = 9050
# brpc_port = 8060
# storage_root_path = /data/doris/be/storage
# be_node_role=computation
# Other config files can also be specified here
# hdfs-site.xml: |
# <?xml version="1.0" encoding="UTF-8"?>
#
# <configuration>
# <property>
# <name>dfs.nameservices</name>
# <value>ns</value>
# </property>
#
# mountConfigMaps supports configmap mounting in the form of specifying the mounting directory
# but please note that the mounting path cannot be repeated.
# if the elements within mountConfigMaps contain data, it means that the configmap does not need to be created manually by the user, and vice versa.
# in the following example, the user needs to manually create configmap 'cm-1'
# mountConfigMaps: {}
# - configMapName: cm-1
# mountPath: /etc/cm1
# - configMapName: cm-2
# mountPath: /etc/cm2
# data:
# copy_file1: |
# text *** content
# copy_file2: |
# text *** content
# If configured separately here, it will overwrite the total resources configuration default.
# but the default configuration of other types will still take effect.
resource: {}
# requests:
# cpu: 8
# memory: 16Gi
# limits:
# cpu: 16
# memory: 32Gi
# If specified, the pod's nodeSelectordisplayName="Map of nodeSelectors to match when scheduling pods on nodes"
nodeSelector: {}
# kubernetes.io/arch: amd64
# kubernetes.io/os: linux
# app.kubernetes.node.name: "k8s-node1"
# env represents an environment variable present in a Container.
# 'name' of the environment variable. Must be a C_IDENTIFIER.
# no more than one of the following may be specified: 'value' or 'valueFrom',
# 'value' is the value of environment.
# 'valueFrom' is source for the environment variable's value. Cannot be used if 'value' is not empty.
env: []
# - name: "HOME"
# value: "/opt/selectdb"
# - name: HOST_IP
# valueFrom:
# fieldRef:
# apiVersion: v1
# fieldPath: status.hostIP
# affinity is the constraints of pod scheduling
# nodeAffinity: Describes node affinity scheduling rules for the pod.
# podAffinity: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
# PodAntiAffinity: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
# reference: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
affinity: {}
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# key: "app.kubernetes.node.name"
# operator: "In"
# values:
# - "k8s-node1"
# "k8s-node2"
# podAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# key: "app.kubernetes.node.name"
# operator: "In"
# values:
# - "fe1"
# "fe2"
# podAntiAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# key: "app.kubernetes.node.name"
# operator: "NotIn"
# values:
# - "fe1"
# "fe2"
# the pod this Toleration is attached to tolerates any taint that matches. Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
# the triple <key,value,effect> using the matching operator <operator>.
# 'key' is the taint key that the toleration applies to. Empty means match all taint keys. if the 'key' is empty, 'operator' must be Exists; this combination means to match all values and all keys.
# 'operator' represents a key's relationship to the 'value'. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
# 'value' is the taint value the toleration matches to. If the 'operator' is Exists, the 'value' should be empty, otherwise just a regular string.
# 'effect' indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
tolerations: []
# - key: "toleration"
# operator: "Equal"
# value: "master"
# - key: "node-role.kubernetes.io/master"
# operator: "Exists"
# effect: "NoSchedule"
# - operator: "Exists"
# hostAliases allows adding entries to /etc/hosts inside the containers
hostAliases: []
# If doris use hdfs or catalog, config the map of namenode host here is beneficial
# - ip: "127.0.0.1"
# hostnames:
# - "hostname1"
# - ip: "127.0.0.2"
# hostnames:
# - "hostname2"
persistentVolumeClaim: {}
# data volume, mountPath is /opt/apache-doris/be/storage
# dataPersistentVolume:
# storage: 200Gi
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
# storageClassName: ""
# logs volume, mountPath is /opt/apache-doris/be/log
# logsPersistentVolume:
# storage: 100Gi
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
# storageClassName: ""
systemInitialization: {}
# initImage: "selectdb/alpine:latest"
# command: [ "/sbin/sysctl", "-w", "vm.max_map_count=2000000" ]
# specific cn auto scale policy
autoScalingPolicy:
enable: true
# version: v2
minReplicas: 1
maxReplicas: 4
# hpaPolicy response to horizontlaPodAutoscaler's HorizontalPodAutoscalerSpec
hpaPolicy: {}
# metrics:
# - type: Resource
# resource:
# name: cpu
# target:
# type: Utilization
# averageUtilization: 30
brokerSpec:
replicas: 3
# the pod labels for user select or classify pods.
labels: {}
# selectdb.app.classify: "classify-1"
image:
repository: apache/doris
tag: broker-2.1.7
# imagePullSecrets:
# - name: imagePullSecret
# specify the configMap, as a dictionary.
# Its 'key' is the config file name in the doris 'doris_root_path/fe/conf/' file path,
# Its 'value' is the text content of the corresponding file (it should be relatively long, actually).
configMap: {}
# 'apache_hdfs_broker.conf' is the startup config file of broker, and the name must be 'apache_hdfs_broker.conf'.
# apache_hdfs_broker.conf: |
# broker_ipc_port: 8000
# client_expire_seconds: 3600
# Other config files can also be specified here
# hdfs-site.xml: |
# <?xml version="1.0" encoding="UTF-8"?>
#
# <configuration>
# <property>
# <name>dfs.nameservices</name>
# <value>ns</value>
# </property>
#
# mountConfigMaps supports configmap mounting in the form of specifying the mounting directory
# but please note that the mounting path cannot be repeated.
# if the elements within mountConfigMaps contain data, it means that the configmap does not need to be created manually by the user, and vice versa.
# in the following example, the user needs to manually create configmap 'cm-1'
# mountConfigMaps: {}
# - configMapName: cm-1
# mountPath: /etc/cm1
# - configMapName: cm-2
# mountPath: /etc/cm2
# data:
# copy_file1: |
# text *** content
# copy_file2: |
# text *** content
# If configured separately here, it will overwrite the total resources configuration default.
# but the default configuration of other types will still take effect.
resource: {}
# requests:
# cpu: 8
# memory: 16Gi
# limits:
# cpu: 16
# memory: 32Gi
# If specified, the pod's nodeSelectordisplayName="Map of nodeSelectors to match when scheduling pods on nodes"
nodeSelector: {}
# kubernetes.io/arch: amd64
# kubernetes.io/os: linux
# app.kubernetes.node.name: "k8s-node1"
# env represents an environment variable present in a Container.
# 'name' of the environment variable. Must be a C_IDENTIFIER.
# no more than one of the following may be specified: 'value' or 'valueFrom',
# 'value' is the value of environment.
# 'valueFrom' is source for the environment variable's value. Cannot be used if 'value' is not empty.
env: []
# - name: "HOME"
# value: "/opt/selectdb"
# - name: HOST_IP
# valueFrom:
# fieldRef:
# apiVersion: v1
# fieldPath: status.hostIP
# affinity is the constraints of pod scheduling
# nodeAffinity: Describes node affinity scheduling rules for the pod.
# podAffinity: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
# PodAntiAffinity: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
# reference: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
affinity: {}
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# key: "app.kubernetes.node.name"
# operator: "In"
# values:
# - "k8s-node1"
# "k8s-node2"
# podAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# key: "app.kubernetes.node.name"
# operator: "In"
# values:
# - "fe1"
# "fe2"
# podAntiAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# key: "app.kubernetes.node.name"
# operator: "NotIn"
# values:
# - "fe1"
# "fe2"
# the pod this Toleration is attached to tolerates any taint that matches. Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
# the triple <key,value,effect> using the matching operator <operator>.
# 'key' is the taint key that the toleration applies to. Empty means match all taint keys. if the 'key' is empty, 'operator' must be Exists; this combination means to match all values and all keys.
# 'operator' represents a key's relationship to the 'value'. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
# 'value' is the taint value the toleration matches to. If the 'operator' is Exists, the 'value' should be empty, otherwise just a regular string.
# 'effect' indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
tolerations: []
# - key: "toleration"
# operator: "Equal"
# value: "master"
# - key: "node-role.kubernetes.io/master"
# operator: "Exists"
# effect: "NoSchedule"
# - operator: "Exists"
# hostAliases allows adding entries to /etc/hosts inside the containers
hostAliases: []
# If doris use hdfs or catalog, config the map of namenode host here is beneficial
# - ip: "127.0.0.1"
# hostnames:
# - "hostname1"
# - ip: "127.0.0.2"
# hostnames:
# - "hostname2"
persistentVolumeClaim: {}
# logs volume, mountPath is /opt/apache-doris/apache_hdfs_broker/log
# logsPersistentVolume:
# storage: 100Gi
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
# storageClassName: ""
systemInitialization: {}
# initImage: "selectdb/alpine:latest"
# command: [ "/sbin/sysctl", "-w", "vm.max_map_count=2000000" ]

View File

@@ -0,0 +1,94 @@
apiVersion: doris.selectdb.com/v1
kind: DorisCluster
metadata:
labels:
app.kubernetes.io/name: doriscluster
name: doriscluster-helm
namespace: doriscluster
spec:
feSpec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- doris
replicas: 3
image: 172.16.100.55:8033/cmii/doris.fe-ubuntu:2.1.6
limits:
cpu: 8
memory: 16Gi
requests:
cpu: 2
memory: 6Gi
configMapInfo:
# use kubectl create configmap fe-configmap --from-file=fe.conf
configMapName: fe-configmap
resolveKey: fe.conf
persistentVolumes:
- mountPath: /opt/apache-doris/fe/doris-meta
name: doris-fe-2000g
persistentVolumeClaimSpec:
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
storageClassName: doris-nfs-sc-56
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2000Gi
- mountPath: /opt/apache-doris/fe/jdbc_drivers
name: doriscluster-storage-fe-jdbc-drivers
persistentVolumeClaimSpec:
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
storageClassName: doris-nfs-sc-58
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
beSpec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- doris
replicas: 3
image: 172.16.100.55:8033/cmii/doris.be-ubuntu:2.1.6
limits:
cpu: 8
memory: 24Gi
requests:
cpu: 2
memory: 6Gi
configMapInfo:
# use kubectl create configmap be-configmap --from-file=be.conf
configMapName: be-configmap
resolveKey: be.conf
persistentVolumes:
- mountPath: /opt/apache-doris/be/storage
name: doris-1-9000g-pvc
persistentVolumeClaimSpec:
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
storageClassName: doris-nfs-sc-57
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 9000Gi
- mountPath: /opt/apache-doris/be/jdbc_drivers
name: doriscluster-storage-be-jdbc-drivers
persistentVolumeClaimSpec:
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
storageClassName: doris-nfs-sc-58
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1000Gi

View File

@@ -7,8 +7,17 @@ metadata:
namespace: doriscluster
spec:
feSpec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: doris-deploy
operator: In
values:
- "true"
replicas: 1
image: harbor.cdcyy.com.cn/cmii/doris.fe-ubuntu:2.1.6
image: 172.16.100.55:8033/cmii/doris.fe-ubuntu:2.1.6
limits:
cpu: 8
memory: 16Gi
@@ -26,36 +35,35 @@ spec:
name: doriscluster-storage0
persistentVolumeClaimSpec:
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
storageClassName: nfs-prod-distribute
storageClassName: doris-static-storage
accessModes:
- ReadWriteOnce
resources:
# notice: if the storage size less 5G, fe will not start normal.
requests:
storage: 300Gi
- mountPath: /opt/apache-doris/fe/log
name: doriscluster-storage1
persistentVolumeClaimSpec:
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
storageClassName: nfs-prod-distribute
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
storage: 500Gi
- mountPath: /opt/apache-doris/fe/jdbc_drivers
name: doriscluster-storage-fe-jdbc-drivers
persistentVolumeClaimSpec:
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
storageClassName: nfs-prod-distribute
storageClassName: cmlc-nfs-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
storage: 10Gi
beSpec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: doris-deploy
operator: In
values:
- "true"
replicas: 3
image: harbor.cdcyy.com.cn/cmii/doris.be-ubuntu:2.1.6
image: 172.16.100.55:8033/cmii/doris.be-ubuntu:2.1.6
limits:
cpu: 8
memory: 24Gi
@@ -70,32 +78,42 @@ spec:
uavcloud.env: demo
persistentVolumes:
- mountPath: /opt/apache-doris/be/storage
name: doriscluster-storage2
name: doriscluster-storage1
persistentVolumeClaimSpec:
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
storageClassName: nfs-prod-distribute
storageClassName: doris-static-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 300Gi
storage: 9000Gi
- mountPath: /opt/apache-doris/be/storage
name: doriscluster-storage2
persistentVolumeClaimSpec:
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
storageClassName: doris-static-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 9000Gi
- mountPath: /opt/apache-doris/be/log
name: doriscluster-storage3
persistentVolumeClaimSpec:
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
storageClassName: nfs-prod-distribute
storageClassName: doris-static-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
storage: 9000Gi
- mountPath: /opt/apache-doris/be/jdbc_drivers
name: doriscluster-storage-be-jdbc-drivers
persistentVolumeClaimSpec:
# when use specific storageclass, the storageClassName should reConfig, example as annotation.
storageClassName: nfs-prod-distribute
storageClassName: cmlc-nfs-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
storage: 10Gi

View File

@@ -284,22 +284,15 @@ spec:
# according to the platforms which are supported by your solution.
# It is considered best practice to support multiple architectures. You can
# build your manager image using the makefile target docker-buildx.
# affinity:
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# - key: kubernetes.io/arch
# operator: In
# values:
# - amd64
# - arm64
# - ppc64le
# - s390x
# - key: kubernetes.io/os
# operator: In
# values:
# - linux
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: doris-deploy
operator: In
values:
- "true"
securityContext:
runAsNonRoot: true
# TODO(user): For common cases that do not require escalating privileges
@@ -314,7 +307,7 @@ spec:
- /dorisoperator
args:
- --leader-elect
image: harbor.cdcyy.com.cn/cmii/doris.k8s-operator:1.3.1
image: 172.16.100.55:8033/cmii/doris.k8s-operator:1.3.1
name: dorisoperator
securityContext:
allowPrivilegeEscalation: false

View File

@@ -0,0 +1,148 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: cmii-uav-watchdog-agent
namespace: uavcloud-devflight
labels:
cmii.type: backend
cmii.app: cmii-uav-watchdog-agent
octopus/control: backend-app-1.0.0
app.kubernetes.io/managed-by: octopus
app.kubernetes.io/app-version: 6.2.0
spec:
replicas: 1
strategy:
rollingUpdate:
maxUnavailable: 1
selector:
matchLabels:
cmii.type: backend
cmii.app: cmii-uav-watchdog-agent
template:
metadata:
labels:
cmii.type: backend
cmii.app: cmii-uav-watchdog-agent
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- devflight
imagePullSecrets:
- name: harborsecret
containers:
- name: cmii-uav-watchdog-agent
image: harbor.cdcyy.com.cn/cmii/cmii-uav-watchdog-agent-java:2025-03-26-17-09-09
imagePullPolicy: Always
env:
- name: K8S_NAMESPACE
value: uavcloud-devflight
- name: APPLICATION_NAME
value: cmii-uav-watchdog-agent
- name: CUST_JAVA_OPTS
value: "-Xms200m -Xmx1500m -Dlog4j2.formatMsgNoLookups=true"
- name: NACOS_REGISTRY
value: "helm-nacos:8848"
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
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:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-watchdog-agent
resource: limits.cpu
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-watchdog-agent
resource: limits.memory
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-watchdog-agent
resource: requests.cpu
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-watchdog-agent
resource: requests.memory
- name: WATCHDOG_HEARTBEAT_URL
value: http://cmii-uav-watchdog:8080/api/heartbeat
ports:
- name: pod-port
containerPort: 8080
protocol: TCP
resources:
limits:
memory: 2Gi
cpu: "2"
requests:
memory: 200Mi
cpu: 200m
volumeMounts:
- name: nfs-backend-log-volume
mountPath: /cmii/logs
readOnly: false
subPath: uavcloud-devflight/cmii-uav-watchdog-agent
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
---
apiVersion: v1
kind: Service
metadata:
name: cmii-uav-watchdog-agent
namespace: uavcloud-devflight
labels:
cmii.type: backend
cmii.app: cmii-uav-watchdog-agent
octopus/control: backend-app-1.0.0
app.kubernetes.io/managed-by: octopus
app.kubernetes.io/app-version: 6.2.0
spec:
type: ClusterIP
selector:
cmii.type: backend
cmii.app: cmii-uav-watchdog-agent
ports:
- name: backend-tcp
port: 8080
protocol: TCP
targetPort: 8080
---

View File

@@ -0,0 +1,178 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: cmii-uav-watchdog
namespace: uavcloud-devflight
labels:
cmii.type: backend
cmii.app: cmii-uav-watchdog
octopus/control: backend-app-1.0.0
app.kubernetes.io/managed-by: octopus
app.kubernetes.io/app-version: 6.2.0
spec:
replicas: 1
strategy:
rollingUpdate:
maxUnavailable: 1
selector:
matchLabels:
cmii.type: backend
cmii.app: cmii-uav-watchdog
template:
metadata:
labels:
cmii.type: backend
cmii.app: cmii-uav-watchdog
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: uavcloud.env
operator: In
values:
- devflight
imagePullSecrets:
- name: harborsecret
containers:
- name: cmii-uav-watchdog
image: harbor.cdcyy.com.cn/cmii/cmii-uav-watchdog:2025-03-26-17-33-09
imagePullPolicy: Always
env:
- name: K8S_NAMESPACE
value: uavcloud-devflight
- name: APPLICATION_NAME
value: cmii-uav-watchdog
- name: CUST_JAVA_OPTS
value: "-Xms200m -Xmx1500m -Dlog4j2.formatMsgNoLookups=true"
- name: NACOS_REGISTRY
value: "helm-nacos:8848"
- name: NACOS_DISCOVERY_IP
valueFrom:
fieldRef:
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:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-watchdog
resource: limits.cpu
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-watchdog
resource: limits.memory
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: cmii-uav-watchdog
resource: requests.cpu
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: cmii-uav-watchdog
resource: requests.memory
ports:
- name: pod-port
containerPort: 8080
protocol: TCP
resources:
limits:
memory: 2Gi
cpu: "2"
requests:
memory: 200Mi
cpu: 200m
volumeMounts:
- name: nfs-backend-log-volume
mountPath: /cmii/cmii-uav-watchdog/
readOnly: false
subPath: uavcloud-devflight/cmii-uav-watchdog
- name: cmii-uav-watchdog-conf
mountPath: /cmii/cmii-uav-watchdog/config.yaml
subPath: config.yaml
volumes:
- name: nfs-backend-log-volume
persistentVolumeClaim:
claimName: nfs-backend-log-pvc
- name: cmii-uav-watchdog-conf
configMap:
name: cmii-uav-watchdog-configmap
items:
- key: config.yaml
path: config.yaml
---
apiVersion: v1
kind: Service
metadata:
name: cmii-uav-watchdog
namespace: uavcloud-devflight
labels:
cmii.type: backend
cmii.app: cmii-uav-watchdog
octopus/control: backend-app-1.0.0
app.kubernetes.io/managed-by: octopus
app.kubernetes.io/app-version: 6.2.0
spec:
type: NodePort
selector:
cmii.type: backend
cmii.app: cmii-uav-watchdog
ports:
- name: backend-tcp
port: 8080
protocol: TCP
targetPort: 8080
nodePort: 34567
---
kind: ConfigMap
apiVersion: v1
metadata:
name: cmii-uav-watchdog-configmap
namespace: uavcloud-devflight
data:
config.yaml: |-
server:
port: "8080" # 服务器端口
tier_one_auth:
tier_one_secret: "NK537TIWSUOFIS7SYCUJ6A7FPOGFVM3UH67TJRX3IYQAHKZXK2X7SBAA6JOXZVSV3U6K5YZUX7Q6TWOPK6YCRU6MIML33ZJFBN55I2Q" # TOTP密钥
time_offset_allowed: 30 # 允许的时间偏移(秒)
watchdog_center:
url: "https://watchdog-center.example.com" # 一级授权中心地址
project:
project_namespace: "uavcloud-devflight" # 项目命名空间
tier_two_auth:
tier_two_secret: "your_tier_two_secret_here" # 二级授权密钥

View File

@@ -8,6 +8,7 @@ metadata:
cmii.app: live-srs
cmii.type: live
octopus.control: wdd
app.kubernetes.io/managed-by: octopus
helm.sh/chart: cmlc-live-srs-rtc-2.0.0
data:
@@ -230,7 +231,7 @@ spec:
protocol: UDP
env:
- name: CANDIDATE
value: 36.135.17.162
value: lingyun.jlsxwkj.com:8888
resources:
limits:
cpu: 2000m

File diff suppressed because it is too large Load Diff

View File

@@ -2,15 +2,43 @@
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-splice
name: tenant-prefix-supervisionh5
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "splice",
AppClientId: "APP_zE0M3sTRXrCIJS8Y"
ApplicationShortName: "supervisionh5",
AppClientId: "APP_qqSu82THfexI8PLM"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-pangu
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-flight-control
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "flight-control",
AppClientId: "empty"
}
---
kind: ConfigMap
@@ -30,28 +58,14 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-hljtt
name: tenant-prefix-pilot2cloud
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "hljtt",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-uasms
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "uasms",
ApplicationShortName: "pilot2cloud",
AppClientId: "empty"
}
---
@@ -72,42 +86,224 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-secenter
name: tenant-prefix-base
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "secenter",
ApplicationShortName: "base",
AppClientId: "APP_9LY41OaKSqk2btY0"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-multiterminal
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "multiterminal",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-oms
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "oms",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-pangu
name: tenant-prefix-open
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "",
ApplicationShortName: "open",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-cmsportal
name: tenant-prefix-seniclive
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "cmsportal",
ApplicationShortName: "seniclive",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-share
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "share",
AppClientId: "APP_4lVSVI0ZGxTssir8"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-smsecret
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "smsecret",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-mianyangbackend
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "mianyangbackend",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-supervision
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "supervision",
AppClientId: "APP_qqSu82THfexI8PLM"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-logistics
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "logistics",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-mws
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "mws",
AppClientId: "APP_uKniXPELlRERBBwK"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-splice
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "splice",
AppClientId: "APP_zE0M3sTRXrCIJS8Y"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-threedsimulation
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "threedsimulation",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-uasms
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "uasms",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-classification
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "classification",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-eventsh5
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "eventsh5",
AppClientId: "empty"
}
---
@@ -142,33 +338,159 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-oms
name: tenant-prefix-media
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "oms",
ApplicationShortName: "media",
AppClientId: "APP_4AU8lbifESQO4FD6"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-securityh5
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "securityh5",
AppClientId: "APP_N3ImO0Ubfu9peRHD"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-qingdao
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "qingdao",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-open
name: tenant-prefix-blockchain
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "open",
ApplicationShortName: "blockchain",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-ai-brain
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "ai-brain",
AppClientId: "APP_rafnuCAmBESIVYMH"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-cmsportal
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "cmsportal",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-security
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "security",
AppClientId: "APP_JUSEMc7afyWXxvE7"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-traffic
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "traffic",
AppClientId: "APP_Jc8i2wOQ1t73QEJS"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-dikongzhixingh5
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "dikongzhixingh5",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-renyike
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "renyike",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-armypeople
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "armypeople",
AppClientId: "APP_UIegse6Lfou9pO1U"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-qinghaitourism
namespace: uavcloud-devflight
@@ -183,6 +505,20 @@ data:
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-hljtt
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "hljtt",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-visualization
namespace: uavcloud-devflight
@@ -211,202 +547,6 @@ data:
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-pilot2cloud
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "pilot2cloud",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-classification
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "classification",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-ai-brain
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "ai-brain",
AppClientId: "APP_rafnuCAmBESIVYMH"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-smsecret
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "smsecret",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-mianyangbackend
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "mianyangbackend",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-dikongzhixingh5
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "dikongzhixingh5",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-renyike
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "renyike",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-seniclive
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "seniclive",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-traffic
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "traffic",
AppClientId: "APP_Jc8i2wOQ1t73QEJS"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-hyper
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "hyper",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-blockchain
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "blockchain",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-supervision
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "supervision",
AppClientId: "APP_qqSu82THfexI8PLM"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-multiterminal
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "multiterminal",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-mws
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "mws",
AppClientId: "APP_uKniXPELlRERBBwK"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-dispatchh5
namespace: uavcloud-devflight
@@ -422,42 +562,14 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-logistics
name: tenant-prefix-hyper
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "logistics",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-threedsimulation
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "threedsimulation",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-qingdao
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "qingdao",
ApplicationShortName: "hyper",
AppClientId: "empty"
}
---
@@ -478,131 +590,19 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-eventsh5
name: tenant-prefix-secenter
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "eventsh5",
ApplicationShortName: "secenter",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-flight-control
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "flight-control",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-security
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "security",
AppClientId: "APP_JUSEMc7afyWXxvE7"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-securityh5
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "securityh5",
AppClientId: "APP_N3ImO0Ubfu9peRHD"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-supervisionh5
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "supervisionh5",
AppClientId: "APP_qqSu82THfexI8PLM"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-armypeople
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "armypeople",
AppClientId: "APP_UIegse6Lfou9pO1U"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-base
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "base",
AppClientId: "APP_9LY41OaKSqk2btY0"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-media
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "media",
AppClientId: "APP_4AU8lbifESQO4FD6"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-share
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "share",
AppClientId: "APP_4lVSVI0ZGxTssir8"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-uavmsmanager
namespace: uavcloud-devflight

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@ metadata:
type: frontend
octopus.control: all-ingress-config-wdd
app.kubernetes.io/managed-by: octopus-control
app.kubernetes.io/version: 6.0.0
app.kubernetes.io/version: 6.2.0
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/enable-cors: "true"
@@ -304,7 +304,7 @@ metadata:
type: backend
octopus.control: all-ingress-config-wdd
app.kubernetes.io/managed-by: octopus-control
app.kubernetes.io/version: 6.0.0
app.kubernetes.io/version: 6.2.0
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/enable-cors: "true"
@@ -366,6 +366,14 @@ spec:
backend:
serviceName: cmii-suav-supervision
servicePort: 8080
- host: cmii-uas-datahub.uavcloud-devflight.io
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
serviceName: cmii-uas-datahub
servicePort: 8080
- host: cmii-uas-gateway.uavcloud-devflight.io
http:
paths:
@@ -566,6 +574,14 @@ spec:
backend:
serviceName: cmii-uav-iot-dispatcher
servicePort: 8080
- host: cmii-uav-iot-manager.uavcloud-devflight.io
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-iot-manager
servicePort: 8080
- host: cmii-uav-kpi-monitor.uavcloud-devflight.io
http:
paths:
@@ -702,6 +718,14 @@ spec:
backend:
serviceName: cmii-uav-user
servicePort: 8080
- host: cmii-uav-watchdog.uavcloud-devflight.io
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-watchdog
servicePort: 8080
- host: cmii-uav-waypoint.uavcloud-devflight.io
http:
paths:
@@ -710,6 +734,14 @@ spec:
backend:
serviceName: cmii-uav-waypoint
servicePort: 8080
- host: cmii-uavms-pyfusion.uavcloud-devflight.io
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
serviceName: cmii-uavms-pyfusion
servicePort: 8080
- host: cmii-uavms-security-center.uavcloud-devflight.io
http:
paths:
@@ -728,7 +760,7 @@ metadata:
type: api-gateway
octopus.control: all-ingress-config-1.1.0
app.kubernetes.io/managed-by: octopus-control
app.kubernetes.io/version: 6.0.0
app.kubernetes.io/version: 6.2.0
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/enable-cors: "true"
@@ -756,3 +788,8 @@ spec:
backend:
serviceName: cmii-uav-gateway
servicePort: 8080
- path: /devflight/uas/api/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uas-gateway
servicePort: 8080

View File

@@ -458,7 +458,7 @@ data:
info:
name: cmii-live-operator
description: cmii-live-operator
version: 6.0.0
version: 6.2.0
scanPackage: com.cmii.live.op
cloud:
nacos:
@@ -468,11 +468,11 @@ data:
server-addr: helm-nacos:8848
extension-configs:
- data-id: cmii-live-operator.yml
group: 6.0.0
group: 6.2.0
refresh: true
shared-configs:
- data-id: cmii-backend-system.yml
group: 6.0.0
group: 6.2.0
refresh: true
discovery:
enabled: false

View File

@@ -2,187 +2,19 @@
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-traffic
name: tenant-prefix-seniclive
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "traffic",
AppClientId: "APP_Jc8i2wOQ1t73QEJS"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-smsecret
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "smsecret",
ApplicationShortName: "seniclive",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-armypeople
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "armypeople",
AppClientId: "APP_UIegse6Lfou9pO1U"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-multiterminal
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "multiterminal",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-share
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "share",
AppClientId: "APP_4lVSVI0ZGxTssir8"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-qingdao
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "qingdao",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-hyper
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "hyper",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-blockchain
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "blockchain",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-secenter
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "secenter",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-cmsportal
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "cmsportal",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-logistics
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "logistics",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-qinghaitourism
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "qinghaitourism",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-securityh5
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "securityh5",
AppClientId: "APP_N3ImO0Ubfu9peRHD"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-threedsimulation
namespace: uavcloud-devflight
@@ -198,154 +30,42 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-uas
name: tenant-prefix-qinghaitourism
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "uas",
ApplicationShortName: "qinghaitourism",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-dispatchh5
name: tenant-prefix-qingdao
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "dispatchh5",
ApplicationShortName: "qingdao",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-base
name: tenant-prefix-scanner
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "base",
AppClientId: "APP_9LY41OaKSqk2btY0"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-media
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "media",
AppClientId: "APP_4AU8lbifESQO4FD6"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-open
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "open",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-pilot2cloud
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "pilot2cloud",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-awareness
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "awareness",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-pangu
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-oms
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "oms",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-jiangsuwenlv
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "jiangsuwenlv",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-uavmsmanager
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "uavmsmanager",
ApplicationShortName: "scanner",
AppClientId: "empty"
}
---
@@ -379,6 +99,104 @@ data:
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-multiterminal
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "multiterminal",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-jiangsuwenlv
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "jiangsuwenlv",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-uas
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "uas",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-classification
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "classification",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-dikongzhixingh5
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "dikongzhixingh5",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-cmsportal
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "cmsportal",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-oms
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "oms",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-splice
namespace: uavcloud-devflight
@@ -394,14 +212,70 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-smauth
name: tenant-prefix-blockchain
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "smauth",
ApplicationShortName: "blockchain",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-flight-control
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "flight-control",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-logistics
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "logistics",
AppClientId: "APP_PvdfRRRBPL8xbIwl"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-media
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "media",
AppClientId: "APP_4AU8lbifESQO4FD6"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-open
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "open",
AppClientId: "empty"
}
---
@@ -436,14 +310,70 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-classification
name: tenant-prefix-pilot2cloud
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "classification",
ApplicationShortName: "pilot2cloud",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-smauth
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "smauth",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-armypeople
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "armypeople",
AppClientId: "APP_UIegse6Lfou9pO1U"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-hljtt
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "hljtt",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-secenter
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "secenter",
AppClientId: "empty"
}
---
@@ -464,14 +394,112 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-dikongzhixingh5
name: tenant-prefix-pangu
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "dikongzhixingh5",
ApplicationShortName: "",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-emergency
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "emergency",
AppClientId: "APP_aGsTAY1uMZrpKdfk"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-security
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "security",
AppClientId: "APP_JUSEMc7afyWXxvE7"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-traffic
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "traffic",
AppClientId: "APP_Jc8i2wOQ1t73QEJS"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-smsecret
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "smsecret",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-awareness
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "awareness",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-securityh5
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "securityh5",
AppClientId: "APP_N3ImO0Ubfu9peRHD"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-uavmsmanager
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "uavmsmanager",
AppClientId: "empty"
}
---
@@ -492,42 +520,70 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-mws
name: tenant-prefix-supervisionh5
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "mws",
AppClientId: "APP_uKniXPELlRERBBwK"
ApplicationShortName: "supervisionh5",
AppClientId: "APP_qqSu82THfexI8PLM"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-security
name: tenant-prefix-base
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "security",
AppClientId: "APP_JUSEMc7afyWXxvE7"
ApplicationShortName: "base",
AppClientId: "APP_9LY41OaKSqk2btY0"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-scanner
name: tenant-prefix-share
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "scanner",
ApplicationShortName: "share",
AppClientId: "APP_4lVSVI0ZGxTssir8"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-dispatchh5
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "dispatchh5",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-hyper
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "hyper",
AppClientId: "empty"
}
---
@@ -562,55 +618,13 @@ data:
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-emergency
name: tenant-prefix-mws
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "emergency",
AppClientId: "APP_aGsTAY1uMZrpKdfk"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-seniclive
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "seniclive",
AppClientId: "empty"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-supervisionh5
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "supervisionh5",
AppClientId: "APP_qqSu82THfexI8PLM"
}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: tenant-prefix-hljtt
namespace: uavcloud-devflight
data:
ingress-config.js: |-
var __GlobalIngressConfig = {
TenantEnvironment: "devflight",
CloudHOST: "lab.uavcmlc.com",
ApplicationShortName: "hljtt",
AppClientId: "empty"
ApplicationShortName: "mws",
AppClientId: "APP_uKniXPELlRERBBwK"
}

View File

@@ -8,7 +8,7 @@ metadata:
type: frontend
octopus.control: all-ingress-config-wdd
app.kubernetes.io/managed-by: octopus-control
app.kubernetes.io/version: 6.0.0
app.kubernetes.io/version: 6.2.0
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/enable-cors: "true"
@@ -29,6 +29,7 @@ metadata:
rewrite ^(/dispatchh5)$ $1/ redirect;
rewrite ^(/emergency)$ $1/ redirect;
rewrite ^(/eventsh5)$ $1/ redirect;
rewrite ^(/flight-control)$ $1/ redirect;
rewrite ^(/hljtt)$ $1/ redirect;
rewrite ^(/hyper)$ $1/ redirect;
rewrite ^(/jiangsuwenlv)$ $1/ redirect;
@@ -143,6 +144,11 @@ spec:
backend:
serviceName: cmii-uav-platform-eventsh5
servicePort: 9528
- path: /devflight/flight-control/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-platform-flight-control
servicePort: 9528
- path: /devflight/hljtt/?(.*)
pathType: ImplementationSpecific
backend:
@@ -298,7 +304,7 @@ metadata:
type: backend
octopus.control: all-ingress-config-wdd
app.kubernetes.io/managed-by: octopus-control
app.kubernetes.io/version: 6.0.0
app.kubernetes.io/version: 6.2.0
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/enable-cors: "true"
@@ -360,6 +366,14 @@ spec:
backend:
serviceName: cmii-suav-supervision
servicePort: 8080
- host: cmii-uas-datahub.uavcloud-devflight.io
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
serviceName: cmii-uas-datahub
servicePort: 8080
- host: cmii-uas-gateway.uavcloud-devflight.io
http:
paths:
@@ -560,6 +574,14 @@ spec:
backend:
serviceName: cmii-uav-iot-dispatcher
servicePort: 8080
- host: cmii-uav-iot-manager.uavcloud-devflight.io
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-iot-manager
servicePort: 8080
- host: cmii-uav-kpi-monitor.uavcloud-devflight.io
http:
paths:
@@ -696,6 +718,14 @@ spec:
backend:
serviceName: cmii-uav-user
servicePort: 8080
- host: cmii-uav-watchdog.uavcloud-devflight.io
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
serviceName: cmii-uav-watchdog
servicePort: 8080
- host: cmii-uav-waypoint.uavcloud-devflight.io
http:
paths:
@@ -704,6 +734,14 @@ spec:
backend:
serviceName: cmii-uav-waypoint
servicePort: 8080
- host: cmii-uavms-pyfusion.uavcloud-devflight.io
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
serviceName: cmii-uavms-pyfusion
servicePort: 8080
- host: cmii-uavms-security-center.uavcloud-devflight.io
http:
paths:
@@ -722,7 +760,7 @@ metadata:
type: api-gateway
octopus.control: all-ingress-config-1.1.0
app.kubernetes.io/managed-by: octopus-control
app.kubernetes.io/version: 6.0.0
app.kubernetes.io/version: 6.2.0
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/enable-cors: "true"
@@ -750,3 +788,8 @@ spec:
backend:
serviceName: cmii-uav-gateway
servicePort: 8080
- path: /devflight/uas/api/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uas-gateway
servicePort: 8080

View File

@@ -458,7 +458,7 @@ data:
info:
name: cmii-live-operator
description: cmii-live-operator
version: 6.0.0
version: 6.2.0
scanPackage: com.cmii.live.op
cloud:
nacos:
@@ -468,11 +468,11 @@ data:
server-addr: helm-nacos:8848
extension-configs:
- data-id: cmii-live-operator.yml
group: 6.0.0
group: 6.2.0
refresh: true
shared-configs:
- data-id: cmii-backend-system.yml
group: 6.0.0
group: 6.2.0
refresh: true
discovery:
enabled: false

View File

@@ -53,6 +53,9 @@ var CmiiBackendAppMap = map[string]string{
"cmii-uav-sec-awareness": "5.7.0",
"cmii-uav-security-trace": "5.7.0",
"cmii-uavms-pyfusion": "5.7.0",
"cmii-uav-iot-manager": "5.7.0",
"cmii-uas-datahub": "5.7.0",
"cmii-uav-watchdog": "5.7.0",
}
var CmiiFrontendAppMap = map[string]string{
@@ -115,6 +118,8 @@ var IgnoreCmiiBackendAppName = map[string]string{
"cmii-uav-fwdd": "0",
"cmii-uav-sync": "0",
"cmii-uavms-security-center": "0",
"cmii-uav-iot-manager": "0",
"cmii-uas-datahub": "0",
}
var IgnoreCmiiFrontendAppName = map[string]string{
@@ -149,102 +154,104 @@ var CmiiGISAppMap = map[string]string{
}
var MiddlewareAmd64 = []string{
"docker.107421.xyz/bitnami/redis:6.2.6-debian-10-r0",
"docker.107421.xyz/bitnami/redis:6.2.14-debian-11-r1",
"docker.107421.xyz/bitnami/mysql:8.0.35-debian-11-r1",
"docker.107421.xyz/bitnami/mysql:8.1.0-debian-11-r42",
"docker.107421.xyz/simonrupf/chronyd:0.4.3",
"docker.107421.xyz/bitnami/bitnami-shell:10-debian-10-r140",
"docker.107421.xyz/bitnami/bitnami-shell:11-debian-11-r136",
"docker.107421.xyz/bitnami/rabbitmq:3.9.12-debian-10-r3",
"docker.107421.xyz/bitnami/rabbitmq:3.11.26-debian-11-r2",
"docker.107421.xyz/ossrs/srs:v4.0.136",
"docker.107421.xyz/ossrs/srs:v5.0.195",
"docker.107421.xyz/ossrs/srs:v4.0-r3",
"docker.107421.xyz/emqx/emqx:4.4.19",
"docker.107421.xyz/emqx/emqx:5.5.1",
"docker.107421.xyz/nacos/nacos-server:v2.1.2",
"docker.107421.xyz/nacos/nacos-server:v2.1.2-slim",
"docker.107421.xyz/library/mongo:5.0",
"docker.107421.xyz/library/rabbitmq:3.9-management",
"docker.107421.xyz/bitnami/minio:2022.5.4",
"docker.107421.xyz/bitnami/minio:2023.5.4",
"docker.107421.xyz/kubernetesui/dashboard:v2.0.1",
"docker.107421.xyz/kubernetesui/metrics-scraper:v1.0.4",
"docker.107421.xyz/library/nginx:1.21.3",
"docker.107421.xyz/library/redis:6.0.20-alpine",
"docker.107421.xyz/dyrnq/nfs-subdir-external-provisioner:v4.0.2",
"docker.107421.xyz/jerrychina2020/rke-tools:v0.175-linux",
"docker.107421.xyz/jerrychina2020/rke-tools:v0.175",
"docker.107421.xyz/library/busybox:latest",
"harbor.cdcyy.com.cn/cmii/doris.be-ubuntu:2.1.6",
"bitnami/redis:6.2.6-debian-10-r0",
"bitnami/redis:6.2.14-debian-11-r1",
"bitnami/mysql:8.0.35-debian-11-r1",
"bitnami/mysql:8.1.0-debian-11-r42",
"simonrupf/chronyd:0.4.3",
"bitnami/bitnami-shell:10-debian-10-r140",
"bitnami/bitnami-shell:11-debian-11-r136",
"bitnami/rabbitmq:3.9.12-debian-10-r3",
"bitnami/rabbitmq:3.11.26-debian-11-r2",
"ossrs/srs:v4.0.136",
"ossrs/srs:v5.0.195",
"ossrs/srs:v4.0-r3",
"emqx/emqx:4.4.19",
"emqx/emqx:5.5.1",
"nacos/nacos-server:v2.1.2",
"nacos/nacos-server:v2.1.2-slim",
"library/mongo:5.0",
"library/rabbitmq:3.9-management",
"bitnami/minio:2022.5.4",
"bitnami/minio:2023.5.4",
"minio/minio:RELEASE.2023-06-02T23-17-26Z",
"kubernetesui/dashboard:v2.0.1",
"kubernetesui/metrics-scraper:v1.0.4",
"library/nginx:1.21.3",
"library/redis:6.0.20-alpine",
"dyrnq/nfs-subdir-external-provisioner:v4.0.2",
"jerrychina2020/rke-tools:v0.175-linux",
"jerrychina2020/rke-tools:v0.175",
"library/busybox:latest",
"harbor.cdcyy.com.cn/cmii/doris.be-ubuntu:2.1.6",
"harbor.cdcyy.com.cn/cmii/doris.fe-ubuntu:2.1.6",
"harbor.cdcyy.com.cn/cmii/doris.k8s-operator:1.3.1",
"harbor.cdcyy.com.cn/cmii/alpine:latest",
"harbor.cdcyy.com.cn/cmii/nginx:1.27.0",
}
var Rancher1204Amd64 = []string{
"docker.107421.xyz/rancher/backup-restore-operator:v1.0.3",
"docker.107421.xyz/rancher/calico-cni:v3.17.2",
"docker.107421.xyz/rancher/calico-ctl:v3.17.2",
"docker.107421.xyz/rancher/calico-kube-controllers:v3.17.2",
"docker.107421.xyz/rancher/calico-node:v3.17.2",
"docker.107421.xyz/rancher/calico-pod2daemon-flexvol:v3.17.2",
"docker.107421.xyz/rancher/cis-operator:v1.0.3",
"docker.107421.xyz/rancher/cluster-proportional-autoscaler:1.7.1",
"docker.107421.xyz/rancher/coredns-coredns:1.8.0",
"docker.107421.xyz/rancher/coreos-etcd:v3.4.14-rancher1",
"docker.107421.xyz/rancher/coreos-kube-state-metrics:v1.9.7",
"docker.107421.xyz/rancher/coreos-prometheus-config-reloader:v0.39.0",
"docker.107421.xyz/rancher/coreos-prometheus-operator:v0.39.0",
"docker.107421.xyz/rancher/externalip-webhook:v0.1.6",
"docker.107421.xyz/rancher/flannel-cni:v0.3.0-rancher6",
"docker.107421.xyz/rancher/coreos-flannel:v0.13.0-rancher1",
"docker.107421.xyz/rancher/fleet-agent:v0.3.4",
"docker.107421.xyz/rancher/fleet:v0.3.4",
"docker.107421.xyz/rancher/fluentd:v0.1.24",
"docker.107421.xyz/rancher/grafana-grafana:7.1.5",
"docker.107421.xyz/rancher/hyperkube:v1.20.4-rancher1",
"docker.107421.xyz/rancher/jimmidyson-configmap-reload:v0.3.0",
"docker.107421.xyz/rancher/k8s-dns-dnsmasq-nanny:1.15.2",
"docker.107421.xyz/rancher/k8s-dns-kube-dns:1.15.2",
"docker.107421.xyz/rancher/k8s-dns-node-cache:1.15.13",
"docker.107421.xyz/rancher/k8s-dns-sidecar:1.15.2",
"docker.107421.xyz/rancher/klipper-lb:v0.1.2",
"docker.107421.xyz/rancher/kube-api-auth:v0.1.4",
"docker.107421.xyz/rancher/kubectl:v1.20.4",
"docker.107421.xyz/rancher/kubernetes-external-dns:v0.7.3",
"docker.107421.xyz/rancher/cluster-proportional-autoscaler:1.8.1",
"docker.107421.xyz/rancher/library-busybox:1.31.1",
"docker.107421.xyz/rancher/library-busybox:1.32.1",
"docker.107421.xyz/rancher/library-nginx:1.19.2-alpine",
"docker.107421.xyz/rancher/library-traefik:1.7.19",
"docker.107421.xyz/rancher/local-path-provisioner:v0.0.11",
"docker.107421.xyz/rancher/local-path-provisioner:v0.0.14",
"docker.107421.xyz/rancher/local-path-provisioner:v0.0.19",
"docker.107421.xyz/rancher/log-aggregator:v0.1.7",
"docker.107421.xyz/rancher/istio-kubectl:1.5.10",
"docker.107421.xyz/rancher/metrics-server:v0.4.1",
"docker.107421.xyz/rancher/configmap-reload:v0.3.0-rancher4",
"docker.107421.xyz/rancher/nginx-ingress-controller-defaultbackend:1.5-rancher1",
"docker.107421.xyz/rancher/nginx-ingress-controller:nginx-0.43.0-rancher1",
"docker.107421.xyz/rancher/opa-gatekeeper:v3.1.0-beta.7",
"docker.107421.xyz/rancher/openzipkin-zipkin:2.14.2",
"docker.107421.xyz/rancher/pause:3.2",
"docker.107421.xyz/rancher/plugins-docker:18.09",
"docker.107421.xyz/rancher/prom-alertmanager:v0.21.0",
"docker.107421.xyz/rancher/prom-node-exporter:v1.0.1",
"docker.107421.xyz/rancher/prom-prometheus:v2.18.2",
"docker.107421.xyz/rancher/prometheus-auth:v0.2.1",
"docker.107421.xyz/rancher/rancher-agent:v2.5.7",
"docker.107421.xyz/rancher/rancher-webhook:v0.1.0-beta9",
"docker.107421.xyz/rancher/rancher:v2.5.7",
"docker.107421.xyz/rancher/rke-tools:v0.1.72",
"docker.107421.xyz/rancher/security-scan:v0.1.14",
"docker.107421.xyz/rancher/security-scan:v0.2.2",
"docker.107421.xyz/rancher/shell:v0.1.6",
"docker.107421.xyz/rancher/sonobuoy-sonobuoy:v0.16.3",
"docker.107421.xyz/rancher/system-upgrade-controller:v0.6.2",
"rancher/backup-restore-operator:v1.0.3",
"rancher/calico-cni:v3.17.2",
"rancher/calico-ctl:v3.17.2",
"rancher/calico-kube-controllers:v3.17.2",
"rancher/calico-node:v3.17.2",
"rancher/calico-pod2daemon-flexvol:v3.17.2",
"rancher/cis-operator:v1.0.3",
"rancher/cluster-proportional-autoscaler:1.7.1",
"rancher/coredns-coredns:1.8.0",
"rancher/coreos-etcd:v3.4.14-rancher1",
"rancher/coreos-kube-state-metrics:v1.9.7",
"rancher/coreos-prometheus-config-reloader:v0.39.0",
"rancher/coreos-prometheus-operator:v0.39.0",
"rancher/externalip-webhook:v0.1.6",
"rancher/flannel-cni:v0.3.0-rancher6",
"rancher/coreos-flannel:v0.13.0-rancher1",
"rancher/fleet-agent:v0.3.4",
"rancher/fleet:v0.3.4",
"rancher/fluentd:v0.1.24",
"rancher/grafana-grafana:7.1.5",
"rancher/hyperkube:v1.20.4-rancher1",
"rancher/jimmidyson-configmap-reload:v0.3.0",
"rancher/k8s-dns-dnsmasq-nanny:1.15.2",
"rancher/k8s-dns-kube-dns:1.15.2",
"rancher/k8s-dns-node-cache:1.15.13",
"rancher/k8s-dns-sidecar:1.15.2",
"rancher/klipper-lb:v0.1.2",
"rancher/kube-api-auth:v0.1.4",
"rancher/kubectl:v1.20.4",
"rancher/kubernetes-external-dns:v0.7.3",
"rancher/cluster-proportional-autoscaler:1.8.1",
"rancher/library-busybox:1.31.1",
"rancher/library-busybox:1.32.1",
"rancher/library-nginx:1.19.2-alpine",
"rancher/library-traefik:1.7.19",
"rancher/local-path-provisioner:v0.0.11",
"rancher/local-path-provisioner:v0.0.14",
"rancher/local-path-provisioner:v0.0.19",
"rancher/log-aggregator:v0.1.7",
"rancher/istio-kubectl:1.5.10",
"rancher/metrics-server:v0.4.1",
"rancher/configmap-reload:v0.3.0-rancher4",
"rancher/nginx-ingress-controller-defaultbackend:1.5-rancher1",
"rancher/nginx-ingress-controller:nginx-0.43.0-rancher1",
"rancher/opa-gatekeeper:v3.1.0-beta.7",
"rancher/openzipkin-zipkin:2.14.2",
"rancher/pause:3.2",
"rancher/plugins-docker:18.09",
"rancher/prom-alertmanager:v0.21.0",
"rancher/prom-node-exporter:v1.0.1",
"rancher/prom-prometheus:v2.18.2",
"rancher/prometheus-auth:v0.2.1",
"rancher/rancher-agent:v2.5.7",
"rancher/rancher-webhook:v0.1.0-beta9",
"rancher/rancher:v2.5.7",
"rancher/rke-tools:v0.1.72",
"rancher/security-scan:v0.1.14",
"rancher/security-scan:v0.2.2",
"rancher/shell:v0.1.6",
"rancher/sonobuoy-sonobuoy:v0.16.3",
"rancher/system-upgrade-controller:v0.6.2",
}
var CmiiSRSImageList = []string{

View File

@@ -75,6 +75,42 @@ spec:
value: "developer"
- name: NACOS_PASSWORD
value: "Deve@9128201"
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: LIMIT_CPU
valueFrom:
resourceFieldRef:
containerName: {{ .AppName }}
resource: limits.cpu
- name: LIMIT_MEMORY
valueFrom:
resourceFieldRef:
containerName: {{ .AppName }}
resource: limits.memory
- name: REQUEST_CPU
valueFrom:
resourceFieldRef:
containerName: {{ .AppName }}
resource: requests.cpu
- name: REQUEST_MEMORY
valueFrom:
resourceFieldRef:
containerName: {{ .AppName }}
resource: requests.memory
ports:
- name: pod-port
containerPort: 8080

View File

@@ -188,6 +188,11 @@ spec:
backend:
serviceName: cmii-uav-gateway
servicePort: 8080
- path: /{{ $tenantEnv }}/uas/api/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uas-gateway
servicePort: 8080
{{- else }}
- path: /oms/api/?(.*)
pathType: ImplementationSpecific
@@ -204,5 +209,10 @@ spec:
backend:
serviceName: cmii-uav-gateway
servicePort: 8080
- path: /uas/api/?(.*)
pathType: ImplementationSpecific
backend:
serviceName: cmii-uas-gateway
servicePort: 8080
{{- end }}
`

View File

@@ -24,7 +24,7 @@ func init() {
case "linux":
DeployFilePrefix = "/root/wddproject/ProjectOctopus/agent-common/real_project/"
case "windows":
DeployFilePrefix = "C:\\Users\\wdd\\IdeaProjects\\ProjectOctopus\\agent-common\\real_project\\"
DeployFilePrefix = "C:\\Users\\wdd\\Documents\\IdeaProjects\\ProjectOctopus\\agent-common\\real_project\\"
//DeployFilePrefix = "C:\\Users\\wddsh\\Documents\\IdeaProjects\\ProjectOctopus\\agent-common\\real_project\\"
}

View File

@@ -25,7 +25,7 @@ func TestCmiiEnvDeploy(t *testing.T) {
HarborIPOrCustomImagePrefix: image2.CmiiHarborPrefix,
HarborPort: "",
Namespace: deployNamespace,
TagVersion: "6.0.0",
TagVersion: "6.2.0",
TenantEnv: "devflight",
MinioPublicIP: "",
MinioInnerIP: "127.0.0.1",
@@ -341,6 +341,27 @@ func TestCmiiEnvDeploy_LiaoNingYingJiPingTai(t *testing.T) {
}
func TestCmiiEnvDeploy_NeiMengGuEErDuoSiJiChang(t *testing.T) {
// 内蒙古鄂尔多斯
commonEnv := &z_dep.CommonEnvironmentConfig{
WebIP: "172.16.100.55",
WebPort: "8088",
HarborIPOrCustomImagePrefix: "172.16.100.55",
HarborPort: "8033",
Namespace: "eedsjc-uavms",
TagVersion: "6.2.0",
TenantEnv: "",
MinioPublicIP: "",
MinioInnerIP: "172.16.100.61",
NFSServerIP: "172.16.100.61",
ApplyFilePrefix: "",
}
CmiiEnvDeployOffline(commonEnv, true, real_project.Cmii620ImageList)
}
func TestCmiiEnvDeploy_ZhuHaiHengQing(t *testing.T) {
// 珠海横琴

View File

@@ -146,8 +146,57 @@ func addBaseSubcommands(cmd *cobra.Command) {
// 清空路由表
log.Info("清空路由表...")
op.HardCodeCommandExecutor("iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -t raw -F")
op.HardCodeCommandExecutor("ip6tables -F && ip6tables -t nat -F && ip6tables -t mangle -F && ip6tables -t raw -F")
commandExecutor := [][]string{
{
"iptables",
"-F",
},
{
"iptables",
"-t",
"nat",
"-F",
},
{
"iptables",
"-t",
"mangle",
"-F",
},
{
"iptables",
"-t",
"raw",
"-F",
},
{
"ip6tables",
"-F",
},
{
"ip6tables",
"-t",
"nat",
"-F",
},
{
"ip6tables",
"-t",
"mangle",
"-F",
},
{
"ip6tables",
"-t",
"raw",
"-F",
},
}
for _, command := range commandExecutor {
op.SingleLineCommandExecutor(command)
}
log.Info("Firewall 关闭成功!")
},
@@ -220,6 +269,7 @@ func addBaseSubcommands(cmd *cobra.Command) {
cmd.AddCommand(
dockerCmd,
dockerComposeCmd,
harborCmd,
swapCmd,
commonToolsInstall,
selinuxCmd,
@@ -246,10 +296,13 @@ func addHarborSubcommands(harborCmd *cobra.Command) {
}
// 解压harbor
utils.UnzipFile(harborLocalInstallPath, "/root/wdd/harbor")
utils.UnzipFile(harborLocalInstallPath, "/root/wdd/")
// 获取本机的内网IPv4地址
configCache := config.ConfigCache
if len(configCache.Agent.Network.Interfaces) == 0 {
log.Error("没有获取到本机的ipv4地址无法安装harbor! 请执行 info all !")
}
ip := configCache.Agent.Network.Interfaces[0].IPv4
if ip == "" {
@@ -266,11 +319,9 @@ func addHarborSubcommands(harborCmd *cobra.Command) {
return
}
// 进入harbor目录
os.Chdir("/root/wdd/harbor")
// 运行install.sh
ok, log1 := op.HardCodeCommandExecutor("bash install.sh")
op.SingleLineCommandExecutor([]string{"cd", "/root/wdd/harbor"})
ok, log1 := op.RealTimeCommandExecutor([]string{"/bin/bash", "/root/wdd/harbor/install.sh"})
if !ok {
log.Error("安装harbor失败: %s", log1)
return
@@ -314,18 +365,16 @@ func addHarborSubcommands(harborCmd *cobra.Command) {
return
}
// 进入harbor目录
os.Chdir("/root/wdd/harbor")
// 启动harbor
ok, log1 := op.HardCodeCommandExecutor("docker-compose up -d")
op.SingleLineCommandExecutor([]string{"cd", "/root/wdd/harbor"})
ok, log1 := op.SingleLineCommandExecutor([]string{"docker-compose", "up", "-d"})
if !ok {
log.Error("启动harbor失败: %s", log1)
return
}
// 等待5
time.Sleep(5 * time.Second)
// 等待10
time.Sleep(10 * time.Second)
// 检查harbor是否启动成功
if !checkHarborIsRunning() {
@@ -357,7 +406,7 @@ func addHarborSubcommands(harborCmd *cobra.Command) {
os.Chdir("/root/wdd/harbor")
// 停止harbor
ok, log1 := op.HardCodeCommandExecutor("docker-compose down")
ok, log1 := op.SingleLineCommandExecutor([]string{"docker-compose", "down"})
if !ok {
log.Error("停止harbor失败: %s", log1)
return
@@ -372,14 +421,30 @@ func addHarborSubcommands(harborCmd *cobra.Command) {
harborCmd.AddCommand(harborInstallCmd, harborUninstallCmd, harborStartCmd, harborStopCmd)
}
// checkHarborIsRunning 检查harbor是否运行
// checkHarborIsRunning 检查harbor是否运行 如果存在Exit 或者 Restarting 则表示有错误!
func checkHarborIsRunning() bool {
ok, log2 := op.HardCodeCommandExecutor("docker ps -a | grep goharbor/ | grep -E 'Exit|Restarting' | wc -l")
if !ok {
log.Error("查看harbor容器是否存在失败: %s", log2)
return false
}
if strings.TrimSpace(log2[0]) != "0" {
_, resultLog := op.PipeLineCommandExecutor([][]string{
{
"docker",
"ps",
"-a",
},
{
"grep",
"goharbor/",
},
{
"grep",
"-E",
"'Exit|Restarting'",
},
{
"wc",
"-l",
},
})
if strings.TrimSpace(resultLog[0]) != "0" {
log.Error("harbor启动失败! 请检查日志!")
return false
}
@@ -605,7 +670,21 @@ func addDockerSubcommands(cmd *cobra.Command) {
// apt-cache madison docker-ce | grep 20.10.20 | awk '{print$3}'
// get by method
ok, log4 := op.HardCodeCommandExecutor("apt-cache madison docker-ce | grep 20.10.20 | awk '{print$3}'")
ok, log4 := op.PipeLineCommandExecutor([][]string{
{
"apt-cache",
"madison",
"docker-ce",
},
{
"grep",
"20.10.20",
},
{
"awk",
"'{print$3}'",
},
})
if ok && log4 != nil && len(log4) > 0 {
specificDockerVersion = strings.TrimSpace(log4[0])
fmt.Println("get docker version from online => " + specificDockerVersion)
@@ -706,14 +785,7 @@ func addDockerSubcommands(cmd *cobra.Command) {
}
// 解压文件
utils.UnzipFile(dockerLocalInstallPath, "/root/wdd")
// 安装docker
err := utils.MoveFolerToAnother("/root/wdd/docker", "/usr/bin")
if err != nil {
log.Error("Failed to move Docker binaries: %s", err.Error())
return
}
utils.UnzipFile(dockerLocalInstallPath, "/root/wdd/")
// 设置权限
dockerBinList := []string{
@@ -728,11 +800,22 @@ func addDockerSubcommands(cmd *cobra.Command) {
"containerd-shim-runc-v2",
}
// 删除旧的docker 二进制文件
for _, bin := range dockerBinList {
ok, resultLog := op.HardCodeCommandExecutor("chmod 777 /usr/bin/" + bin)
utils.RemoveFile("/usr/bin/" + bin)
}
// 安装docker
err := utils.MoveFolerToAnother("/root/wdd/docker/", "/usr/bin")
if err != nil {
log.Error("Failed to move Docker binaries: %s", err.Error())
return
}
for _, bin := range dockerBinList {
ok, resultLog := op.SingleLineCommandExecutor([]string{"chmod", "777", "/usr/bin/" + bin})
if !ok {
log.Error("Failed to set permissions for Docker binaries: %s", resultLog)
return
}
}
@@ -910,7 +993,7 @@ func addDockerComposeSubcommands(cmd *cobra.Command) {
op.SingleLineCommandExecutor(linkCmd)
// 验证安装
verifyCmd := []string{"docker-compose", "--version"}
verifyCmd := []string{"/usr/local/bin/docker-compose", "version"}
ok, resultLog = op.SingleLineCommandExecutor(verifyCmd)
if !ok {
log.Error("Docker Compose 安装验证失败: %s", resultLog)
@@ -950,7 +1033,7 @@ func addDockerComposeSubcommands(cmd *cobra.Command) {
}
// move file to /usr/local/bin
err := utils.MoveFileToAnother(dockerComposeLocalInstallPath, "/usr/local/bin")
err := utils.MoveFileToAnother(dockerComposeLocalInstallPath, "/usr/local/bin/docker-compose")
if err != nil {
log.Error("Failed to move Docker Compose binaries: %s", err.Error())
return
@@ -964,6 +1047,18 @@ func addDockerComposeSubcommands(cmd *cobra.Command) {
return
}
// 创建软链接
linkCmd := []string{"ln", "-sf", "/usr/local/bin/docker-compose", "/usr/bin/docker-compose"}
op.SingleLineCommandExecutor(linkCmd)
// 验证安装
verifyCmd := []string{"/usr/local/bin/docker-compose", "version"}
ok, resultLog = op.SingleLineCommandExecutor(verifyCmd)
if !ok {
log.Error("Docker Compose 安装验证失败: %s", resultLog)
return
}
log.Info("Docker Compose installed successfully from local file!")
},
}

View File

@@ -288,7 +288,7 @@ func installXray() {
os.Chmod("/tmp/install-release.sh", 0777)
// 执行安装脚本
ok, resultLog := op.HardCodeCommandExecutor("/bin/bash /tmp/install-release.sh -u root install")
ok, resultLog := op.SingleLineCommandExecutor([]string{"/bin/bash", "/tmp/install-release.sh", "-u", "root", "install"})
if !ok {
log.Error("Install Xray failed ! error is %s", resultLog)
return

View File

@@ -38,7 +38,6 @@ func addZshSubcommands(cmd *cobra.Command) {
// 清理残留
utils.RemoveFolderComplete("/root/.oh-my-zsh")
utils.RemoveFolderComplete("/root/wdd/zsh-install.sh")
utils.RemoveFolderComplete("/root/wdd/oh-my-zsh-plugins-list.txt")
ohMyZshInstallUrl := ""
@@ -61,28 +60,43 @@ func addZshSubcommands(cmd *cobra.Command) {
})
installZshCommand := []string{
"/bin/bash",
"sh",
"-c",
"/root/wdd/zsh-install.sh",
}
if config.ConfigCache.Agent.Network.Internet == 7 {
installZshCommand = append(installZshCommand,
op.SingleLineCommandExecutor([]string{
"export",
"REMOTE=https://gitea.107421.xyz/zeaslity/ohmyzsh.git",
)
})
}
op.SingleLineCommandExecutor(installZshCommand)
// 执行 oh-my-zsh 安装命令
op.RealTimeCommandExecutor(installZshCommand)
log.Info("安装zsh完成, 开始安装插件!")
pluginsHardCodeUrl := []string{
"/usr/bin/git clone https://gitee.com/wangl-cc/zsh-autosuggestions.git /root/.oh-my-zsh/plugins/zsh-autosuggestions",
"/usr/bin/git clone https://gitee.com/xiaoqqya/zsh-syntax-highlighting.git /root/.oh-my-zsh/plugins/zsh-syntax-highlighting",
pluginsHardCodeUrl := [][]string{
{
"https://gitee.com/wangl-cc/zsh-autosuggestions.git",
"/root/.oh-my-zsh/plugins/zsh-autosuggestions",
},
{
"https://gitee.com/xiaoqqya/zsh-syntax-highlighting.git",
"/root/.oh-my-zsh/plugins/zsh-syntax-highlighting",
},
}
pluginsHardCodeOutsideUrl := []string{
"/usr/bin/git clone https://github.com/zsh-users/zsh-autosuggestions /root/.oh-my-zsh/plugins/zsh-autosuggestions",
"/usr/bin/git clone https://github.com/zsh-users/zsh-syntax-highlighting.git /root/.oh-my-zsh/plugins/zsh-syntax-highlighting",
pluginsHardCodeOutsideUrl := [][]string{
{
"https://github.com/zsh-users/zsh-autosuggestions",
"/root/.oh-my-zsh/plugins/zsh-autosuggestions",
},
{
"https://github.com/zsh-users/zsh-syntax-highlighting.git",
"/root/.oh-my-zsh/plugins/zsh-syntax-highlighting",
},
}
pluginsListUrl := []string{
@@ -91,26 +105,17 @@ func addZshSubcommands(cmd *cobra.Command) {
"https://gitea.107421.xyz/zeaslity/ohmyzsh/src/branch/master/plugins/themes/themes.plugin.zsh",
}
if config.ConfigCache.Agent.Network.Internet == 7 {
log.Info("使用gitea镜像安装插件!")
pluginsHardCodeUrl = append(pluginsHardCodeUrl,
"wget -c -i https://b2.107421.xyz/oh-my-zsh-plugins-list.txt -P /root/.oh-my-zsh/plugins/",
)
} else {
log.Info("使用github安装插件!")
}
// 下载插件
if config.ConfigCache.Agent.Network.Internet == 7 {
// 执行硬编码命令, 安装插件
for _, command := range pluginsHardCodeUrl {
op.HardCodeCommandExecutor(command)
op.SingleLineCommandExecutor([]string{"git", "clone", command[0], command[1]})
}
} else {
// 执行硬编码命令, 安装插件 国外
for _, command := range pluginsHardCodeOutsideUrl {
op.HardCodeCommandExecutor(command)
op.SingleLineCommandExecutor([]string{"git", "clone", command[0], command[1]})
}
}
// 下载插件

View File

@@ -43,7 +43,7 @@ LimitNOFILE=infinity
TasksMax=infinity
OOMScoreAdjust=-999
[installPrefix]
[Install]
WantedBy=multi-user.target
`
@@ -57,7 +57,7 @@ SocketMode=0660
SocketUser=root
SocketGroup=docker
[installPrefix]
[Install]
WantedBy=sockets.target
`
@@ -107,7 +107,7 @@ Delegate=yes
KillMode=process
OOMScoreAdjust=-500
[installPrefix]
[Install]
WantedBy=multi-user.target
`

View File

@@ -155,6 +155,7 @@ func judgeCanConnectInternet() int {
func (p PublicInfo) GetPublicInfo() PublicInfo {
// 无法联网, 假信息
fakePublicInfo := PublicInfo{
IPv4: "1.1.1.1",
IPv6: "2400::1",

View File

@@ -15,6 +15,7 @@ try {
Write-Host "4. Exec the command ..." -ForegroundColor Blue
Write-Host ""
Write-Host ""
ssh root@192.168.35.71 "chmod +x agent-wdd_linux_amd64 && ./agent-wdd_linux_amd64 help"
Write-Host ""

View File

@@ -5,6 +5,7 @@ import (
"bufio"
"bytes"
"fmt"
"io"
"os/exec"
"strings"
)
@@ -17,12 +18,12 @@ import (
// []string - 合并后的标准输出和标准错误内容(按行分割)
func SingleLineCommandExecutor(singleLineCommand []string) (ok bool, resultLog []string) {
log.Info("[Excutor] - start => %v", singleLineCommand)
if len(singleLineCommand) == 0 {
return false, nil
}
log.Info("start => %v", strings.Join(singleLineCommand, " "))
// 创建命令实例
cmd := exec.Command(singleLineCommand[0], singleLineCommand[1:]...)
@@ -79,13 +80,21 @@ func PipeLineCommandExecutor(pipeLineCommand [][]string) (ok bool, resultLog []s
return false, nil
}
// 转换为 管道命令的字符串格式
// [][]string{{"ps", "aux"}, {"grep", "nginx"}, {"wc", "-l"}} 转换为 ps aux | grep nginx | wc -l
pipeLineCommandStr := ""
// 预检所有子命令
for _, cmd := range pipeLineCommand {
if len(cmd) == 0 {
return false, nil
}
pipeLineCommandStr += fmt.Sprintf("%s | ", strings.Join(cmd, " "))
}
pipeLineCommandStr = strings.TrimSuffix(pipeLineCommandStr, " | ")
log.Info("start => %v", pipeLineCommandStr)
// 创建命令组
cmds := make([]*exec.Cmd, len(pipeLineCommand))
for i, args := range pipeLineCommand {
@@ -161,37 +170,46 @@ func PipeLineCommandExecutor(pipeLineCommand [][]string) (ok bool, resultLog []s
return success, output
}
// HardCodeCommandExecutor 执行硬编码命令,返回执行结果和输出内容
// hardCodeCommand: 硬编码命令,如 "echo hello"
// RealTimeCommandExecutor 执行命令,需要实时打印输出执行命令的日志,并返回执行结果和输出内容
// realTimeCommand: 实时命令,如 "docker load -i /root/wdd/harbor/harbor-offline-installer-v2.10.1.tgz"
// 返回值:
//
// bool - 命令是否执行成功true为成功false为失败
// []string - 合并后的标准输出和标准错误内容(按行分割)
func HardCodeCommandExecutor(hardCodeCommand string) (ok bool, resultLog []string) {
log.Info("[HardCodeCommandExecutor] - start => %v", hardCodeCommand)
if hardCodeCommand == "" {
func RealTimeCommandExecutor(realTimeCommand []string) (ok bool, resultLog []string) {
if len(realTimeCommand) == 0 {
return false, nil
}
// 执行命令
cmd := exec.Command(hardCodeCommand)
log.Info("start real time command => %v", strings.Join(realTimeCommand, " "))
// 执行命令并获取错误信息
err := cmd.Run()
cmd := exec.Command(realTimeCommand[0], realTimeCommand[1:]...)
stdout, err := cmd.StdoutPipe()
if err != nil {
return false, []string{"HardCodeCommandExecutor " + hardCodeCommand + " 执行命令失败", err.Error()}
return false, []string{err.Error()}
}
// 合并输出结果
stdoutBuf := bytes.Buffer{}
stderrBuf := bytes.Buffer{}
cmd.Stdout = &stdoutBuf
cmd.Stderr = &stderrBuf
stderr, err := cmd.StderrPipe()
if err != nil {
return false, []string{err.Error()}
}
output := mergeOutput(&stdoutBuf, &stderrBuf)
if err := cmd.Start(); err != nil {
return false, []string{err.Error()}
}
output := make([]string, 0)
scanner := bufio.NewScanner(io.MultiReader(stdout, stderr))
for scanner.Scan() {
line := scanner.Text()
fmt.Println(line)
output = append(output, line)
}
if err := cmd.Wait(); err != nil {
return false, append(output, err.Error())
}
return true, output
}

View File

@@ -21,12 +21,12 @@ Set-Location "C:\Users\wddsh\Documents\IdeaProjects\ProjectOctopus\agent-wdd\tes
# 删除上面存在的旧的内容
mc.exe rm oracle-seoul-2/seoul-2/agent-wdd_linux_amd64
mc.exe rm oracle-seoul-2/seoul-2/test-shell.sh
# mc.exe rm oracle-seoul-2/seoul-2/test-shell.sh
# 上传文件
mc.exe cp C:\Users\wddsh\Documents\IdeaProjects\ProjectOctopus\agent-wdd\build\agent-wdd_linux_amd64 oracle-seoul-2/seoul-2/
mc.exe cp C:\Users\wddsh\Documents\IdeaProjects\ProjectOctopus\agent-wdd\test\test-shell.sh oracle-seoul-2/seoul-2/
# mc.exe cp C:\Users\wddsh\Documents\IdeaProjects\ProjectOctopus\agent-wdd\test\test-shell.sh oracle-seoul-2/seoul-2/

View File

@@ -8,17 +8,15 @@ wget https://pan.107421.xyz/d/oracle-seoul-2/agent-wdd_linux_amd64 -qO /usr/loca
chmod +x /usr/local/bin/agent-wdd
wget https://pan.107421.xyz/d/oracle-seoul-2/test-shell.sh -qO /usr/local/bin/test-shell.sh
chmod +x /usr/local/bin/test-shell.sh
/usr/local/bin/agent-wdd info all
cat /usr/local/etc/wdd/agent-wdd-config.yaml
/usr/local/bin/agent-wdd base firewall
/usr/local/bin/agent-wdd base ssh config
/usr/local/bin/agent-wdd base ssh key
/usr/local/bin/agent-wdd proxy xray install
/usr/local/bin/agent-wdd proxy vmess 22443
@@ -26,8 +24,6 @@ cat /usr/local/etc/wdd/agent-wdd-config.yaml
#bash /usr/local/bin/test-shell.sh
/usr/local/bin/agent-wdd info network
/usr/local/bin/agent-wdd info cpu
/usr/local/bin/agent-wdd info mem
@@ -36,14 +32,14 @@ cat /usr/local/etc/wdd/agent-wdd-config.yaml
/usr/local/bin/agent-wdd base docker local
/usr/local/bin/agent-wdd info os
/usr/local/bin/agent-wdd base docker online
/usr/local/bin/agent-wdd info os
/usr/local/bin/agent-wdd zsh
/usr/local/bin/agent-wdd base tools
@@ -64,3 +60,8 @@ cat /usr/local/etc/wdd/agent-wdd-config.yaml
/usr/local/bin/agent-wdd proxy vmess 22443
wget https://pan.107421.xyz/d/oracle-seoul-2/test-shell.sh -qO /usr/local/bin/test-shell.sh
chmod +x /usr/local/bin/test-shell.sh

View File

@@ -10,8 +10,10 @@ import (
"path/filepath"
)
// UnzipFile 解压文件, 支持ziptar.gz
// UnzipFile 解压文件, 支持zip tgz tar.gz tar
func UnzipFile(zipFile string, targetFolder string) {
log.Info("解压文件: %s, 到: %s", zipFile, targetFolder)
// 检查文件扩展名以确定解压缩方法
fileExt := filepath.Ext(zipFile)
switch fileExt {