LingxinMeng 7 月之前
父节点
当前提交
bbc99c1019

+ 81 - 0
resource/vtd_pod_template-pjibot.yaml

@@ -0,0 +1,81 @@
+apiVersion: v1
+kind: Pod
+metadata:
+  name: pod-name
+  namespace: namespace-name
+  labels:
+    user: CICV
+spec:
+  nodeName: node-name
+  dnsPolicy: None
+  dnsConfig:
+    nameservers:
+      - 10.16.11.1
+      - 10.16.11.2
+  hostAliases:
+    - ip: 10.14.85.239
+      hostnames:
+        - simulation004
+    - ip: 10.14.85.237
+      hostnames:
+        - gpu001
+  initContainers:
+    - name: init
+      image: algorithm-image
+      imagePullPolicy: Always
+      command: ['sh', '-c', 'echo algorithm image downloaded && sleep 2']
+  containers:
+    - name: vtd-container
+      image: vtd-image
+      imagePullPolicy: Always
+      command: [ "/Controller/VTDController", "vtd-command", "kafka-topic" ]
+      resources:
+        limits:
+          nvidia.com/gpu: 1
+      env:
+        - name: PodName
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.name
+        - name: LM_LICENSE_FILE
+          value: 27500@10.14.85.247
+        - name: SIMULATION_CLOUD_IP
+          value: simulation-cloud-ip
+        - name: PLATFORM_TYPE
+          value: platform-type
+        - name: KAFKA_IP
+          value: kafka-ip
+        - name: OSS_TYPE
+          value: oss-type
+        - name: OSS_IP
+          value: oss-ip
+        - name: OSS_ACCESS_KEY
+          value: oss-access-key
+        - name: OSS_SECRET_KEY
+          value: oss-secret-key
+        - name: OSS_BUCKET_NAME
+          value: oss-bucket
+        - name: KAFKA_PARTITION
+          value: kafka-partition
+        - name: KAFKA_OFFSET
+          value: kafka-offset
+        - name: CPU_ORDER
+          value: cpu-order
+    - name: algorithm-container
+      image: algorithm-image
+      imagePullPolicy: Never
+      command: [ "/bin/sh", "-c", "/run.sh; touch /tmp/hello.txt;while true;do /bin/echo $(date +%T) >> /tmp/hello.txt; sleep 600; done;" ]
+      env: # 从 xosc 解析出来的
+        - name: LANG
+          value: C.UTF-8
+        - name: LC_ALL
+          value: C.UTF-8
+        - name: START_POSITION_X
+          value: start-position-x
+        - name: START_POSITION_Y
+          value: start-position-y
+        - name: END_POSITION_X
+          value: end-position-x
+        - name: END_POSITION_Y
+          value: end-position-y
+  restartPolicy: Never

+ 0 - 0
resource/vtd-pod-template_20240522.yaml → resource/vtd_pod_template-pjisuv.yaml


+ 3 - 2
src/package/infra/application.yaml

@@ -45,14 +45,15 @@ gpu-node-list:
 
 k8s:
   pod-yaml-dir: /mnt/disk001/dcl_dispatch_server/pod-yaml/
-  vtd-pod-template-yaml: /mnt/disk001/dcl_dispatch_server/resource/vtd-pod-template_20240522.yaml
+  vtd-pod-template-yaml-pjisuv: /mnt/disk001/dcl_dispatch_server/resource/vtd_pod_template-pjisuv.yaml
+  vtd-pod-template-yaml-pjibot: /mnt/disk001/dcl_dispatch_server/resource/vtd_pod_template-pjibot.yaml
   algorithm-tar-temp-dir: /mnt/disk001/dcl_dispatch_server/temp/algorithm/
   registry-uri: 10.14.85.237:5000
   namespace-name: cicvdcl
   vtd-image: 10.14.85.237:5000/vtd.run.perception.release:latest
 #  vtd-command: /Controller/config/docker_cloud_algContest.ini
   vtd-command-pjisuv: /Controller/config/docker_cloud.ini
-  vtd-command-pjibot: /Controller/config/docker_cloud.ini
+  vtd-command-pjibot: /Controller/config/docker_cloud_robot.ini
   callback-uri: http://10.14.86.127:9081/project/task/callback
   platform-type: 2
 

+ 11 - 10
src/package/infra/i_application.go

@@ -60,16 +60,17 @@ type GpuNode struct {
 }
 
 type K8sStruct struct {
-	PodYamlDir          string `yaml:"pod-yaml-dir"`
-	VtdPodTemplateYaml  string `yaml:"vtd-pod-template-yaml"`
-	AlgorithmTarTempDir string `yaml:"algorithm-tar-temp-dir"`
-	RegistryUri         string `yaml:"registry-uri"`
-	NamespaceName       string `yaml:"namespace-name"`
-	VtdImage            string `yaml:"vtd-image"`
-	VtdCommandPjisuv    string `yaml:"vtd-command-pjisuv"`
-	VtdCommandPjibot    string `yaml:"vtd-command-pjibot"`
-	CallbackUri         string `yaml:"callback-uri"`
-	PlatformType        string `yaml:"platform-type"`
+	PodYamlDir               string `yaml:"pod-yaml-dir"`
+	VtdPodTemplateYamlPjisuv string `yaml:"vtd-pod-template-yaml-pjisuv"`
+	VtdPodTemplateYamlPjibot string `yaml:"vtd-pod-template-yaml-pjibot"`
+	AlgorithmTarTempDir      string `yaml:"algorithm-tar-temp-dir"`
+	RegistryUri              string `yaml:"registry-uri"`
+	NamespaceName            string `yaml:"namespace-name"`
+	VtdImage                 string `yaml:"vtd-image"`
+	VtdCommandPjisuv         string `yaml:"vtd-command-pjisuv"`
+	VtdCommandPjibot         string `yaml:"vtd-command-pjibot"`
+	CallbackUri              string `yaml:"callback-uri"`
+	PlatformType             string `yaml:"platform-type"`
 }
 type DockerStruct struct {
 	Host string `yaml:"host"`

+ 20 - 20
src/package/service/run_task.go

@@ -255,39 +255,39 @@ func RunWaitingCluster() {
 		yamlPathBak := infra.ApplicationYaml.K8s.PodYamlDir + "bak/" + podYaml
 		fmt.Println(yamlPath, yamlPathBak)
 		// 5
-		podString, err := util.ReadFile(infra.ApplicationYaml.K8s.VtdPodTemplateYaml)
-		if err != nil {
-			infra.GlobalLogger.Error(err)
-			continue
-		}
-		podString = strings.Replace(podString, "pod-name", podName, -1)
-		podString = strings.Replace(podString, "namespace-name", namespaceName, -1)
-		podString = strings.Replace(podString, "node-name", nodeName, -1)
-		podString = strings.Replace(podString, "algorithm-image", algorithmImageName, -1)
-		podString = strings.Replace(podString, "vtd-container", vtdContainer, -1)
-		podString = strings.Replace(podString, "vtd-image", vtdImage, -1)
-		if firstTaskCache.EquipmentType == "PU_JIN_DUO_GONG_NENG_CHE" { // 多功能车仿真
+		podString := ""
+		if firstTaskCache.EquipmentType == "JIN_LONG_BA_SHI" || firstTaskCache.EquipmentType == "PU_JIN_DUO_GONG_NENG_CHE" { // 多功能车仿真
+			if podString, err = util.ReadFile(infra.ApplicationYaml.K8s.VtdPodTemplateYamlPjisuv); err != nil {
+				infra.GlobalLogger.Error(err)
+				continue
+			}
 			podString = strings.Replace(podString, "vtd-command", infra.ApplicationYaml.K8s.VtdCommandPjisuv, -1)
-		} else {
-			podString = strings.Replace(podString, "vtd-command", infra.ApplicationYaml.K8s.VtdCommandPjibot, -1)
-		}
-		podString = strings.Replace(podString, "platform-ip", infra.ApplicationYaml.Web.IpPrivate+":"+infra.ApplicationYaml.Web.Port, -1)
-		podString = strings.Replace(podString, "simulation-cloud-ip", infra.ApplicationYaml.Web.IpPrivate+":"+infra.ApplicationYaml.Web.Port, -1)
-		podString = strings.Replace(podString, "platform-type", "\""+infra.ApplicationYaml.K8s.PlatformType+"\"", -1)
-		if firstTaskCache.EquipmentType == "JIN_LONG_BA_SHI" || firstTaskCache.EquipmentType == "PU_JIN_DUO_GONG_NENG_CHE" {
 			podString = strings.Replace(podString, "oss-type", infra.ApplicationYaml.OssCicv.Type, -1)
 			podString = strings.Replace(podString, "oss-ip", infra.ApplicationYaml.OssCicv.Endpoint, -1) // 不带http://前缀
 			podString = strings.Replace(podString, "oss-access-key", infra.ApplicationYaml.OssCicv.AccessKeyId, -1)
 			podString = strings.Replace(podString, "oss-secret-key", infra.ApplicationYaml.OssCicv.AccessKeySecret, -1)
 			podString = strings.Replace(podString, "oss-bucket", infra.ApplicationYaml.OssCicv.BucketName, -1)
 		} else {
+			if podString, err = util.ReadFile(infra.ApplicationYaml.K8s.VtdPodTemplateYamlPjibot); err != nil {
+				infra.GlobalLogger.Error(err)
+				continue
+			}
+			podString = strings.Replace(podString, "vtd-command", infra.ApplicationYaml.K8s.VtdCommandPjibot, -1)
 			podString = strings.Replace(podString, "oss-type", infra.ApplicationYaml.OssPji.Type, -1)
 			podString = strings.Replace(podString, "oss-ip", infra.ApplicationYaml.OssPji.Endpoint, -1) // 不带http://前缀
 			podString = strings.Replace(podString, "oss-access-key", infra.ApplicationYaml.OssPji.AccessKeyId, -1)
 			podString = strings.Replace(podString, "oss-secret-key", infra.ApplicationYaml.OssPji.AccessKeySecret, -1)
 			podString = strings.Replace(podString, "oss-bucket", infra.ApplicationYaml.OssPji.BucketName, -1)
 		}
-
+		podString = strings.Replace(podString, "pod-name", podName, -1)
+		podString = strings.Replace(podString, "namespace-name", namespaceName, -1)
+		podString = strings.Replace(podString, "node-name", nodeName, -1)
+		podString = strings.Replace(podString, "algorithm-image", algorithmImageName, -1)
+		podString = strings.Replace(podString, "vtd-container", vtdContainer, -1)
+		podString = strings.Replace(podString, "vtd-image", vtdImage, -1)
+		podString = strings.Replace(podString, "platform-ip", infra.ApplicationYaml.Web.IpPrivate+":"+infra.ApplicationYaml.Web.Port, -1)
+		podString = strings.Replace(podString, "simulation-cloud-ip", infra.ApplicationYaml.Web.IpPrivate+":"+infra.ApplicationYaml.Web.Port, -1)
+		podString = strings.Replace(podString, "platform-type", "\""+infra.ApplicationYaml.K8s.PlatformType+"\"", -1)
 		podString = strings.Replace(podString, "kafka-ip", infra.ApplicationYaml.Kafka.Broker, -1)
 		podString = strings.Replace(podString, "kafka-topic", projectId, -1)
 		podString = strings.Replace(podString, "kafka-partition", "\""+util.ToString(infra.ApplicationYaml.Kafka.Partition)+"\"", -1)