From 074e57e59d81e7608ab28f606ef8d60b38229b51 Mon Sep 17 00:00:00 2001 From: sys_softwarerecipes Date: Tue, 5 Mar 2024 07:22:04 +0530 Subject: [PATCH] adding chart evi-ai-structuring-2.1.0 --- charts/evi-ai-structuring-2.1.0/Chart.yaml | 6 + .../configs/queryPipeline.json | 76 +++++++++++ .../configs/strucPipeline.json | 76 +++++++++++ .../configs/videoStrucPipeline.json | 128 ++++++++++++++++++ .../templates/configmap.yaml | 20 +++ .../templates/deployment.yaml | 89 ++++++++++++ .../templates/service.yaml | 29 ++++ .../templates/serviceaccount.yaml | 20 +++ charts/evi-ai-structuring-2.1.0/values.yaml | 46 +++++++ 9 files changed, 490 insertions(+) create mode 100644 charts/evi-ai-structuring-2.1.0/Chart.yaml create mode 100644 charts/evi-ai-structuring-2.1.0/configs/queryPipeline.json create mode 100644 charts/evi-ai-structuring-2.1.0/configs/strucPipeline.json create mode 100644 charts/evi-ai-structuring-2.1.0/configs/videoStrucPipeline.json create mode 100644 charts/evi-ai-structuring-2.1.0/templates/configmap.yaml create mode 100644 charts/evi-ai-structuring-2.1.0/templates/deployment.yaml create mode 100644 charts/evi-ai-structuring-2.1.0/templates/service.yaml create mode 100644 charts/evi-ai-structuring-2.1.0/templates/serviceaccount.yaml create mode 100644 charts/evi-ai-structuring-2.1.0/values.yaml diff --git a/charts/evi-ai-structuring-2.1.0/Chart.yaml b/charts/evi-ai-structuring-2.1.0/Chart.yaml new file mode 100644 index 0000000..db349d5 --- /dev/null +++ b/charts/evi-ai-structuring-2.1.0/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +appVersion: 1.16.0 +description: A Helm chart for Kubernetes +name: evi-ai-structuring +type: application +version: 2.1.0 diff --git a/charts/evi-ai-structuring-2.1.0/configs/queryPipeline.json b/charts/evi-ai-structuring-2.1.0/configs/queryPipeline.json new file mode 100644 index 0000000..3093658 --- /dev/null +++ b/charts/evi-ai-structuring-2.1.0/configs/queryPipeline.json @@ -0,0 +1,76 @@ +{ + "Nodes": [ + { + "Node Class Name": "RawImageInputNode", + "Node Name": "Input", + "Thread Number": "1", + "Is Source Node": "true" + }, + { + "Node Class Name": "CPUJpegDecoderNode", + "Node Name": "Decoder", + "Thread Number": "1", + "Is Source Node": "false" + }, + { + "Node Class Name": "DetectionNode_CPU", + "Node Name": "Detection", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "InferReqNumber=(INT)6;InferStreams=(INT)6;CPUBindThread=(STRING)NUMA;ModelPath=(STRING)vehicle-detection-evi-0.0.1/FP16-INT8/vehicle-detection-evi-001.xml;ModelProcConfPath=(STRING)vehicle-detection-evi-0.0.1/vehicle-detection-evi-001.model_proc.json;Threshold=(FLOAT)0.8;MaxROI=(INT)0" + }, + { + "Node Class Name": "ClassificationNode_CPU", + "Node Name": "Attribute", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "InferReqNumber=(INT)6;InferStreams=(INT)6;CPUBindThread=(STRING)NUMA;ModelPath=(STRING)vehicle-attributes-recognition-barrier-0039/FP16-INT8/vehicle-attributes-recognition-barrier-0039.xml;LabelFile=(STRING)vehicle-attributes-recognition-barrier-0039/vehicle-attributes-recognition-barrier-0039.model_proc.json" + }, + { + "Node Class Name": "FeatureExtractionNode_CPU", + "Node Name": "FeatureExtraction", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "InferReqNumber=(INT)6;InferStreams=(INT)6;CPUBindThread=(STRING)NUMA;ModelPath=(STRING)fe-pytorch-0.0.1/INT8/fe-pytorch-0.0.1.xml;Threshold=(FLOAT)0.1;Quantization_Scale=(FLOAT)411.317" + }, + { + "Node Class Name": "LLOutputNode", + "Node Name": "Output", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "BufferType=(STRING)String" + } + ], + "Links": [ + { + "Previous Node": "Input", + "Previous Node Port": "0", + "Next Node": "Decoder", + "Next Node Port": "0" + }, + { + "Previous Node": "Decoder", + "Previous Node Port": "0", + "Next Node": "Detection", + "Next Node Port": "0" + }, + { + "Previous Node": "Detection", + "Previous Node Port": "0", + "Next Node": "Attribute", + "Next Node Port": "0" + }, + { + "Previous Node": "Attribute", + "Previous Node Port": "0", + "Next Node": "FeatureExtraction", + "Next Node Port": "0" + }, + { + "Previous Node": "FeatureExtraction", + "Previous Node Port": "0", + "Next Node": "Output", + "Next Node Port": "0" + } + ] +} diff --git a/charts/evi-ai-structuring-2.1.0/configs/strucPipeline.json b/charts/evi-ai-structuring-2.1.0/configs/strucPipeline.json new file mode 100644 index 0000000..e3894ce --- /dev/null +++ b/charts/evi-ai-structuring-2.1.0/configs/strucPipeline.json @@ -0,0 +1,76 @@ +{ + "Nodes": [ + { + "Node Class Name": "StorageImageInputNode", + "Node Name": "Input", + "Thread Number": "1", + "Is Source Node": "true" + }, + { + "Node Class Name": "CPUJpegDecoderNode", + "Node Name": "Decoder", + "Thread Number": "1", + "Is Source Node": "false" + }, + { + "Node Class Name": "DetectionNode_CPU", + "Node Name": "Detection", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "InferReqNumber=(INT)6;InferStreams=(INT)6;CPUBindThread=(STRING)NUMA;ModelPath=(STRING)vehicle-detection-evi-0.0.1/FP16-INT8/vehicle-detection-evi-001.xml;ModelProcConfPath=(STRING)vehicle-detection-evi-0.0.1/vehicle-detection-evi-001.model_proc.json;Threshold=(FLOAT)0.8;MaxROI=(INT)0" + }, + { + "Node Class Name": "ClassificationNode_CPU", + "Node Name": "Attribute", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "InferReqNumber=(INT)6;InferStreams=(INT)6;CPUBindThread=(STRING)NUMA;ModelPath=(STRING)vehicle-attributes-recognition-barrier-0039/FP16-INT8/vehicle-attributes-recognition-barrier-0039.xml;LabelFile=(STRING)vehicle-attributes-recognition-barrier-0039/vehicle-attributes-recognition-barrier-0039.model_proc.json" + }, + { + "Node Class Name": "FeatureExtractionNode_CPU", + "Node Name": "FeatureExtraction", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "InferReqNumber=(INT)6;InferStreams=(INT)6;CPUBindThread=(STRING)NUMA;ModelPath=(STRING)fe-pytorch-0.0.1/INT8/fe-pytorch-0.0.1.xml;Threshold=(FLOAT)0.1;Quantization_Scale=(FLOAT)411.317" + }, + { + "Node Class Name": "LLResultSinkNode", + "Node Name": "Output", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "BufferType=(STRING)String" + } + ], + "Links": [ + { + "Previous Node": "Input", + "Previous Node Port": "0", + "Next Node": "Decoder", + "Next Node Port": "0" + }, + { + "Previous Node": "Decoder", + "Previous Node Port": "0", + "Next Node": "Detection", + "Next Node Port": "0" + }, + { + "Previous Node": "Detection", + "Previous Node Port": "0", + "Next Node": "Attribute", + "Next Node Port": "0" + }, + { + "Previous Node": "Attribute", + "Previous Node Port": "0", + "Next Node": "FeatureExtraction", + "Next Node Port": "0" + }, + { + "Previous Node": "FeatureExtraction", + "Previous Node Port": "0", + "Next Node": "Output", + "Next Node Port": "0" + } + ] +} diff --git a/charts/evi-ai-structuring-2.1.0/configs/videoStrucPipeline.json b/charts/evi-ai-structuring-2.1.0/configs/videoStrucPipeline.json new file mode 100644 index 0000000..e912e41 --- /dev/null +++ b/charts/evi-ai-structuring-2.1.0/configs/videoStrucPipeline.json @@ -0,0 +1,128 @@ +{ + "Nodes": [ + { + "Node Class Name": "StorageVideoInputNode", + "Node Name": "Input", + "Thread Number": "1", + "Is Source Node": "true" + }, + { + "Node Class Name": "VideoDecoderNode", + "Node Name": "Decoder", + "Thread Number": "1", + "Is Source Node": "false" + }, + { + "Node Class Name": "DetectionNode_CPU", + "Node Name": "Detection", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "InferReqNumber=(INT)6;InferStreams=(INT)6;CPUBindThread=(STRING)NUMA;ModelPath=(STRING)vehicle-detection-evi-0.0.1/FP16-INT8/vehicle-detection-evi-001.xml;ModelProcConfPath=(STRING)vehicle-detection-evi-0.0.1/vehicle-detection-evi-001.model_proc.json;Threshold=(FLOAT)0.8;MaxROI=(INT)0" + }, + { + "Node Class Name": "TrackerNode_CPU", + "Node Name": "Tracker", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "TrackerType=(STRING)zero_term_imageless" + }, + { + "Node Class Name": "QualityAssessNode", + "Node Name": "QualityAssess", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "InferReqNumber=(INT)6;InferStreams=(INT)6;CPUBindThread=(STRING)NUMA;QualityMode=(INT)1;ImageSize=(INT)320;ModelPath=(STRING)vehicle-qnet-0.0.1/FP16/quality-assess-001.xml;InferStreams=(INT)0" + }, + { + "Node Class Name": "ObjectSelectNode", + "Node Name": "Select", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "FrameInterval=(INT)30;TopK=(INT)1" + }, + { + "Node Class Name": "StorageImageUploadNode", + "Node Name": "UploadImage", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "MediaType=(STRING)video;DataSource=(STRING)vehicle" + }, + { + "Node Class Name": "ClassificationNode_CPU", + "Node Name": "Attribute", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "InferReqNumber=(INT)6;InferStreams=(INT)6;CPUBindThread=(STRING)NUMA;ModelPath=(STRING)vehicle-attributes-recognition-barrier-0039/FP16-INT8/vehicle-attributes-recognition-barrier-0039.xml;LabelFile=(STRING)vehicle-attributes-recognition-barrier-0039/vehicle-attributes-recognition-barrier-0039.model_proc.json" + }, + { + "Node Class Name": "FeatureExtractionNode_CPU", + "Node Name": "FeatureExtraction", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "InferReqNumber=(INT)6;InferStreams=(INT)6;CPUBindThread=(STRING)NUMA;ModelPath=(STRING)fe-pytorch-0.0.1/INT8/fe-pytorch-0.0.1.xml;Threshold=(FLOAT)0.1;Quantization_Scale=(FLOAT)411.317" + }, + { + "Node Class Name": "LLResultSinkNode", + "Node Name": "Output", + "Thread Number": "1", + "Is Source Node": "false", + "Configure String": "BufferType=(STRING)String" + } + ], + "Links": [ + { + "Previous Node": "Input", + "Previous Node Port": "0", + "Next Node": "Decoder", + "Next Node Port": "0" + }, + { + "Previous Node": "Decoder", + "Previous Node Port": "0", + "Next Node": "Detection", + "Next Node Port": "0" + }, + { + "Previous Node": "Detection", + "Previous Node Port": "0", + "Next Node": "Tracker", + "Next Node Port": "0" + }, + { + "Previous Node": "Tracker", + "Previous Node Port": "0", + "Next Node": "QualityAssess", + "Next Node Port": "0" + }, + { + "Previous Node": "QualityAssess", + "Previous Node Port": "0", + "Next Node": "Select", + "Next Node Port": "0" + }, + { + "Previous Node": "Select", + "Previous Node Port": "0", + "Next Node": "UploadImage", + "Next Node Port": "0" + }, + { + "Previous Node": "UploadImage", + "Previous Node Port": "0", + "Next Node": "Attribute", + "Next Node Port": "0" + }, + { + "Previous Node": "Attribute", + "Previous Node Port": "0", + "Next Node": "FeatureExtraction", + "Next Node Port": "0" + }, + { + "Previous Node": "FeatureExtraction", + "Previous Node Port": "0", + "Next Node": "Output", + "Next Node Port": "0" + } + ] +} diff --git a/charts/evi-ai-structuring-2.1.0/templates/configmap.yaml b/charts/evi-ai-structuring-2.1.0/templates/configmap.yaml new file mode 100644 index 0000000..c56101c --- /dev/null +++ b/charts/evi-ai-structuring-2.1.0/templates/configmap.yaml @@ -0,0 +1,20 @@ +# INTEL CONFIDENTIAL +# +# Copyright (C) 2022 Intel Corporation. +# +# This software and the related documents are Intel copyrighted materials, and your use of +# them is governed by the express license under which they were provided to you (License). +# Unless the License provides otherwise, you may not use, modify, copy, publish, distribute, +# disclose or transmit this software or the related documents without Intel's prior written permission. +# +# This software and the related documents are provided as is, with no express or implied warranties, +# other than those that are expressly stated in the License. + +--- +apiVersion: v1 +kind: ConfigMap +metadata: + namespace: {{ .Values.global.namespace.value }} + name: {{ .Values.configMap.name }} +data: +{{ (.Files.Glob "configs/**.json").AsConfig | indent 2 }} diff --git a/charts/evi-ai-structuring-2.1.0/templates/deployment.yaml b/charts/evi-ai-structuring-2.1.0/templates/deployment.yaml new file mode 100644 index 0000000..b784729 --- /dev/null +++ b/charts/evi-ai-structuring-2.1.0/templates/deployment.yaml @@ -0,0 +1,89 @@ +# INTEL CONFIDENTIAL +# +# Copyright (C) 2022 Intel Corporation. +# +# This software and the related documents are Intel copyrighted materials, and your use of +# them is governed by the express license under which they were provided to you (License). +# Unless the License provides otherwise, you may not use, modify, copy, publish, distribute, +# disclose or transmit this software or the related documents without Intel's prior written permission. +# +# This software and the related documents are provided as is, with no express or implied warranties, +# other than those that are expressly stated in the License. + +--- +{{- if .Values.global.namespace.create -}} +apiVersion: v1 +kind: Namespace +metadata: + name: {{ .Values.global.namespace.value }} +{{ if .Values.global.namespace.istioInjection.create }} + labels: + istio-injection: enabled +{{ end }} +{{- end -}} + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: evi-ai-structuring + namespace: {{ .Values.global.namespace.value }} + annotations: + container.apparmor.security.beta.kubernetes.io/ai-structuring: runtime/default +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: ai-structuring + version: v1 + template: + metadata: + labels: + app: ai-structuring + sidecar.istio.io/inject: "{{ .Values.istioInjection }}" + version: v1 + spec: + nodeSelector: + feature.node.kubernetes.io/cpu-cpuid.AVX512VNNI: 'true' + feature.node.kubernetes.io/cpu-cpuid.AVX2: 'true' + securityContext: + seccompProfile: + type: RuntimeDefault + serviceAccountName: {{ .Chart.Name }} +{{ if .Values.global.nodeAffinity.create }} + affinity: + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.global.nodeAffinity.key }} + operator: In + values: + - {{ .Values.global.nodeAffinity.value }} +{{ end }} + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.Version }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + workingDir: /opt/ai_structuring/build + command: ["./ai_structuring"] + args: ["0.0.0.0", "{{ .Values.image.containerPort }}", "8", "{{ .Values.aiInference.addr }}", "{{ .Values.aiInference.port }}"] + ports: + - containerPort: {{ .Values.image.containerPort }} + volumeMounts: + - name: config-volume + mountPath: /opt/ai_structuring/config + securityContext: + # readOnlyRootFilesystem: true + allowPrivilegeEscalation: false + resources: + limits: + cpu: "1" + memory: 500Mi + requests: + cpu: 5m + memory: 10Mi + volumes: + - name: config-volume + configMap: + name: {{ .Values.configMap.name }} diff --git a/charts/evi-ai-structuring-2.1.0/templates/service.yaml b/charts/evi-ai-structuring-2.1.0/templates/service.yaml new file mode 100644 index 0000000..eb7f21e --- /dev/null +++ b/charts/evi-ai-structuring-2.1.0/templates/service.yaml @@ -0,0 +1,29 @@ +# INTEL CONFIDENTIAL +# +# Copyright (C) 2022 Intel Corporation. +# +# This software and the related documents are Intel copyrighted materials, and your use of +# them is governed by the express license under which they were provided to you (License). +# Unless the License provides otherwise, you may not use, modify, copy, publish, distribute, +# disclose or transmit this software or the related documents without Intel's prior written permission. +# +# This software and the related documents are provided as is, with no express or implied warranties, +# other than those that are expressly stated in the License. + +--- +apiVersion: v1 +kind: Service +metadata: + namespace: {{ .Values.global.namespace.value }} + name: evi-ai-structuring + labels: + app: ai-structuring +spec: + type: NodePort + selector: + app: ai-structuring + version: v1 + ports: + - port: {{ .Values.image.containerPort }} + targetPort: {{ .Values.image.containerPort }} + nodePort: {{ .Values.node.port }} diff --git a/charts/evi-ai-structuring-2.1.0/templates/serviceaccount.yaml b/charts/evi-ai-structuring-2.1.0/templates/serviceaccount.yaml new file mode 100644 index 0000000..1ee08e3 --- /dev/null +++ b/charts/evi-ai-structuring-2.1.0/templates/serviceaccount.yaml @@ -0,0 +1,20 @@ +# INTEL CONFIDENTIAL +# +# Copyright (C) 2022 Intel Corporation. +# +# This software and the related documents are Intel copyrighted materials, and your use of +# them is governed by the express license under which they were provided to you (License). +# Unless the License provides otherwise, you may not use, modify, copy, publish, distribute, +# disclose or transmit this software or the related documents without Intel's prior written permission. +# +# This software and the related documents are provided as is, with no express or implied warranties, +# other than those that are expressly stated in the License. + +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + namespace: {{ .Values.global.namespace.value }} + name: {{ .Chart.Name }} + labels: + account: ai-structuring diff --git a/charts/evi-ai-structuring-2.1.0/values.yaml b/charts/evi-ai-structuring-2.1.0/values.yaml new file mode 100644 index 0000000..ef29ef3 --- /dev/null +++ b/charts/evi-ai-structuring-2.1.0/values.yaml @@ -0,0 +1,46 @@ +# INTEL CONFIDENTIAL +# +# Copyright (C) 2022 Intel Corporation. +# +# This software and the related documents are Intel copyrighted materials, and your use of +# them is governed by the express license under which they were provided to you (License). +# Unless the License provides otherwise, you may not use, modify, copy, publish, distribute, +# disclose or transmit this software or the related documents without Intel's prior written permission. +# +# This software and the related documents are provided as is, with no express or implied warranties, +# other than those that are expressly stated in the License. + +--- +# Default values for ai-structuring. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. +replicaCount: 1 + +global: + namespace: + create: false + value: hce-ai + istioInjection: + create: false + nodeAffinity: + create: false + key: kubernetes.io/hostname + value: nodea + +istioInjection: true + +configMap: + name: ai-structuring-cfg + +image: + repository: ai-structuring + Version: master-20c2c999f53aad4c63c5d671ffe83e53f3e4f1a7 + pullPolicy: IfNotPresent + containerPort: 8080 + +node: + port: 31008 + +aiInference: + addr: ai-inference.hce-ai + port: 50051