image: # @schema required:true;additionalProperties:false
  # image.repository -- Container image repository.
  repository: ghcr.io/dynamia-ai/ascend-device-plugin # @schema required:true;minLength:1

  # image.tag -- Container image tag.
  tag: "v1.3.0"

  # image.digest -- Optional immutable OCI manifest digest. When set, it takes precedence over `image.tag`.
  digest: "" # @schema pattern:^(|sha256:[a-f0-9]{64})$

  # image.pullPolicy -- Kubernetes image pull policy.
  pullPolicy: IfNotPresent # @schema required:true;enum:[Always, IfNotPresent, Never]

# nameOverride -- Override the chart name used in resource names.
nameOverride: ""
# fullnameOverride -- Override the fully qualified resource name.
fullnameOverride: ""

daemonSet: # @schema required:true;additionalProperties:false
  # daemonSet.name -- Device plugin DaemonSet name.
  name: hami-ascend-device-plugin # @schema required:true
  args: # @schema required:true
    - --config_file
    - /device-config.yaml
    - --node_config_file
    - /node-config.yaml

rbac: # @schema required:true;additionalProperties:false
  # rbac.name -- Name shared by the chart-managed RBAC resources.
  name: hami-ascend # @schema required:true

runtimeClass: # @schema required:true;additionalProperties:false
  # runtimeClass.create -- Create the Ascend RuntimeClass.
  create: true # @schema required:true

  # runtimeClass.name -- RuntimeClass resource name.
  name: ascend # @schema required:true

  # runtimeClass.handler -- Container runtime handler used by the RuntimeClass.
  handler: ascend # @schema required:true

serviceAccount: # @schema required:true;additionalProperties:false
  # serviceAccount.create -- Create a ServiceAccount for the device plugin.
  create: true # @schema required:true

  # serviceAccount.name -- ServiceAccount name.
  name: hami-ascend # @schema required:true

nodeSelector: # @schema required:true
  # nodeSelector.ascend -- Node label value used to schedule the device plugin.
  ascend: "on"

resources: # @schema required:true;additionalProperties:false
  requests: # @schema required:true
    memory: 500Mi
    cpu: 500m
  limits: # @schema required:true
    memory: 500Mi
    cpu: 500m

config: # @schema required:true;additionalProperties:false
  # config.create -- Create the bundled device configuration ConfigMap for an installation without HAMi. Leave disabled when HAMi owns the device configuration.
  create: false # @schema required:true

  # config.existingDeviceConfigMapName -- HAMi-managed device configuration ConfigMap to reuse when `config.create=false`. The ConfigMap must be in the release namespace.
  existingDeviceConfigMapName: hami-scheduler-device # @schema required:true;minLength:1

  # config.deviceConfigMapName -- Name of the device configuration ConfigMap created when `config.create=true`.
  deviceConfigMapName: hami-scheduler-device # @schema required:true;minLength:1

nodeConfigMap: # @schema required:true;additionalProperties:false
  # nodeConfigMap.create -- Create the per-node configuration ConfigMap.
  create: true # @schema required:true

  # nodeConfigMap.name -- Per-node configuration ConfigMap name.
  name: hami-device-node-config # @schema required:true;minLength:1

hamiVnpuCore: # @schema required:true;additionalProperties:false
  # hamiVnpuCore.enabled -- Enable hami-vnpu-core in the bundled device configuration when `config.create=true`. This mode requires the HAMi scheduler.
  enabled: false # @schema required:true

# @ignored
deviceConfig: |- # @schema required:true
  vnpus:
    hamiVnpuCore: {{ .Values.hamiVnpuCore.enabled }}
    configs:
    - chipName: 910A
      commonWord: Ascend910A
      resourceName: huawei.com/Ascend910A
      resourceMemoryName: huawei.com/Ascend910A-memory
      memoryAllocatable: 32768
      memoryCapacity: 32768
      aiCore: 30
      templates:
        - name: vir02
          memory: 2184
          aiCore: 2
        - name: vir04
          memory: 4369
          aiCore: 4
        - name: vir08
          memory: 8738
          aiCore: 8
        - name: vir16
          memory: 17476
          aiCore: 16
    - chipName: 910B2
      commonWord: Ascend910B2
      resourceName: huawei.com/Ascend910B2
      resourceMemoryName: huawei.com/Ascend910B2-memory
      memoryAllocatable: 65536
      memoryCapacity: 65536
      aiCore: 24
      aiCPU: 6
      templates:
        - name: vir03_1c_8g
          memory: 8192
          aiCore: 3
          aiCPU: 1
        - name: vir06_1c_16g
          memory: 16384
          aiCore: 6
          aiCPU: 1
        - name: vir12_3c_32g
          memory: 32768
          aiCore: 12
          aiCPU: 3
    - chipName: 910B3
      commonWord: Ascend910B3
      resourceName: huawei.com/Ascend910B3
      resourceMemoryName: huawei.com/Ascend910B3-memory
      resourceCoreName: huawei.com/Ascend910B3-core
      memoryAllocatable: 65536
      memoryCapacity: 65536
      aiCore: 20
      aiCPU: 7
      templates:
        - name: vir05_1c_16g
          memory: 16384
          aiCore: 5
          aiCPU: 1
        - name: vir10_3c_32g
          memory: 32768
          aiCore: 10
          aiCPU: 3
    - chipName: 910B4-1
      commonWord: Ascend910B4-1
      resourceName: huawei.com/Ascend910B4-1
      resourceMemoryName: huawei.com/Ascend910B4-1-memory
      memoryAllocatable: 65536
      memoryCapacity: 65536
      aiCore: 20
      aiCPU: 7
      templates:
        - name: vir05_1c_16g
          memory: 16384
          aiCore: 5
          aiCPU: 1
        - name: vir10_3c_32g
          memory: 32768
          aiCore: 10
          aiCPU: 3
    - chipName: 910B4
      commonWord: Ascend910B4
      resourceName: huawei.com/Ascend910B4
      resourceMemoryName: huawei.com/Ascend910B4-memory
      memoryAllocatable: 32768
      memoryCapacity: 32768
      aiCore: 20
      aiCPU: 7
      templates:
        - name: vir05_1c_8g
          memory: 8192
          aiCore: 5
          aiCPU: 1
        - name: vir10_3c_16g
          memory: 16384
          aiCore: 10
          aiCPU: 3
    - chipName: 310P3
      commonWord: Ascend310P
      resourceName: huawei.com/Ascend310P
      resourceMemoryName: huawei.com/Ascend310P-memory
      memoryAllocatable: 21527
      memoryCapacity: 24576
      aiCore: 8
      aiCPU: 7
      templates:
        - name: vir01
          memory: 3072
          aiCore: 1
          aiCPU: 1
        - name: vir02
          memory: 6144
          aiCore: 2
          aiCPU: 2
        - name: vir04
          memory: 12288
          aiCore: 4
          aiCPU: 4
    - chipName: Ascend910
      commonWord: Ascend910C
      resourceName: huawei.com/Ascend910C
      resourceMemoryName: huawei.com/Ascend910C-memory
      resourceCoreName: huawei.com/Ascend910C-core
      memoryAllocatable: 65536
      memoryCapacity: 65536
      aiCore: 20
      aiCPU: 7

# nodeConfig -- Per-node hami-vnpu-core configuration written to the node ConfigMap.
nodeConfig: |- # @schema required:true
  nodes: []
