HAMi Enterprise 2.10.0-r1
HAMi Enterprise 2.10 系列完善共享算力资源管理、设备适配和运维集成,引入可选的资源池管理,并延续已有的企业版 GPU 分配管理与显存自动扩容能力。v2.10.0-r1 同时纳入开源 HAMi 的动态 MIG、组合 GPU 调度策略、初始化容器资源计量,以及多设备配额和稳定性修复。
版本信息
| 项目 | 内容 |
|---|---|
| 企业版 | HAMi Enterprise v2.10.0-r1 |
| 发布日期 | 2026-08-28 |
| 企业版升级对照版本 | v2.9.0-r3(2.9 系列最后发布的 Release) |
| 开源对照版本 | HAMi v2.10.0 |
| Helm Chart | hami-enterprise,版本 2.10.0-r1 |
| Chart 声明的 appVersion | 2.10.0-r1 |
| 默认组件镜像标签 | v2.10.0-r1 |
软件变更
相对企业版 v2.9.0-r3 的变化
企业授权管理、NVIDIA GPU 分配管理、显存自动扩容和 Alibaba PPU 接入在企业版 2.9 中已提供,本版本继续保留。
监控信息与采集改进
- 增加工作负载的算力分配方式、显存超配和自动扩容状态信息,便于在平台中展示资源配置及功能启用情况。
- 修复包含初始化容器时的部分指标归属问题。
- 调整容器显存与 MIG 监控指标,已有看板和告警规则需核对所用指标及标签,详见「配置迁移与平台对接」。
设备适配与稳定性修复
- 修复部分 Ascend vNPU 工作负载的模式匹配问题,并改进显存请求处理。
- 修复任务失败等场景下的残留数据清理问题。
- 同步开源的调度、设备适配、配额和并发处理改进,包括动态 MIG、组合 GPU 调度策略等,详见「已同步的开源改动」及对应 PR。
相对开源 HAMi v2.10.0 的企业版扩展
资源池管理(2.10 系列可选能力)
2.10 系列引入可选的资源池管理能力,支持按团队或业务组织设备资源,并配置命名空间的资源使用范围,便于在共享集群中管理不同业务可使用的算力。
资源池默认关闭,不随 v2.10.0-r1 主 Chart 安装自动启用。使用时需按配套部署说明安装并启用相关组件。
企业授权管理
- 支持按设备实例或设备型号数量管理授权,适配不同设备规模的部署需求。
- 提供授权有效期状态、剩余有效期信息和异常事件,便于安排续期和处理异常。
- 不同设备类型的授权支持范围存在差异,部署时需选择对应的授权方案。
GPU 资源使用与显存自动扩容
- 提供企业版 NVIDIA GPU 分配管理,支持容器级设备分配及显存、算力限制配置。
- 支持为启用自动扩容的 NVIDIA GPU 工作负载按需调整显存额度,适用于运行过程中显存需求增长的场景。
- 显存扩容受设备剩余显存约束,当前适用于普通业务容器,不包含初始化容器。
异构设备与平台集成
- 提供 Alibaba PPU 的资源调度、配额管理和授权接入,以及配套部署配置。
- AWS Neuron 的资源计量和 AMD 的设备类型标识与开源基线存在差异,对接已有资源管理平台时需核对相关计量口径和类型映射。
- 提供企业版资源配置、自动扩容状态和授权有效期等监控信息,并扩展 CDI 集成配置,便于对接现有运维平台和容器运行环境。
已同步的开源改动
v2.10.0-r1 已同步以下主要开源功能和修复。变更背景见对应 PR,企业版配置要求和差异见「升级说明」。
调度与资源分配
| 改动 | 对使用和集成的影响 | 对应开源 PR |
|---|---|---|
| 初始化容器资源计量 | 完善初始化容器与业务容器的资源计量及释放处理;后续槽位计数修复尚未纳入,详见「已知的开源基线差异」 | #1773 |
| GPU 互斥调度策略 | 增加 mutex 策略,支持 GPU 互斥分配 | #2011 |
| 组合 GPU 调度策略 | 支持组合多个 GPU 调度策略,并按配置顺序应用 | #2621 |
| PodGroup 支持 | 改进组内任务的调度重试,并适配 Kubernetes SchedulingGroup 识别 | #2066、#2206 |
| 模板节点调度评估 | 支持评估任务能否调度到模板节点,为对接扩容决策提供基础;完整自动扩容方案仍需单独集成 | #2046 |
| NVIDIA NUMA 信息 | 支持按需提供 vGPU NUMA 拓扑信息,默认关闭 | #2065 |
| 动态 MIG | 支持按任务需求动态分配和释放 MIG 实例,完善 MIG 规格管理 | #2378 |
| RTX PRO 6000 Blackwell MIG | 增加该型号的动态 MIG 支持及规格配置 | #2135 |
设备支持
| 改动 | 对使用和集成的影响 | 对应开源 PR |
|---|---|---|
| AMD vGPU | 支持 AMD 虚拟设备的资源请求与分配 | #2290 |
| 壁仞设备 | 增加壁仞设备的资源识别与调度支持 | #1711 |
| Ascend 混合模式调度 | 未显式指定模式的工作负载可在 vNPU-template 与 HAMi-core 节点间匹配 | #2035 |
| Ascend 910C 模板 | 增加 vir05_1c_16g、vir10_3c_32g 等资源规格 | #2005 |
| Ascend 显存请求处理 | 保留用户请求的显存数值,避免解析阶段按模板提前取整 | #2696 |
配额与稳定性
| 改动 | 对使用和集成的影响 | 对应开源 PR |
|---|---|---|
| 零配额与配额更新 | 显式配置为零的配额按零额度执行,完善配额更新后的限制处理 | #2313、#2386 |
| 多设备配额检查 | 完善多设备后端的配额校验,以及寒武纪百分比显存和整卡显存请求的检查 | #2347、#2536 |
| 调度失败后的资源释放 | 修复部分调度失败场景中残留分配记录造成的资源占用问题 | #1927 |
| 并发调度稳定性 | 修复 Pod 和节点信息在并发处理时的数据竞争问题 | #2055、#2472、#2333、#2504 |
| 设备调度恢复 | 修复寒武纪设备的节点锁释放问题,避免影响后续调度 | #2329 |
| 监控数据读取 | 改进异常或未就绪数据的处理,减少无关文件和无效设备信息对监控采集的影响 | #2529、#2503、#2465 |
Chart 变更
部署与运行时集成
- 新增企业版 NVIDIA GPU 分配方式的安装配置项,默认行为保持不变,可按部署方案配置。
- 扩展 CDI 配置,支持自定义设备标识前缀,并完善动态 MIG 设备接入处理。
- 补齐 Alibaba PPU 的调度资源配置,完善已有 PPU 能力的部署集成。
- 改进部署健康检查,避免其他命名空间中的异常任务干扰检查结果。
已同步的开源安装配置改动
| 改动 | 对使用和集成的影响 | 对应开源 PR |
|---|---|---|
| Device Plugin 安全配置 | 支持通过 Helm values 配置 Device Plugin 的安全上下文,便于适配集群安全策略 | #1887 |
| 自定义设备配置 | 支持通过 device-config.content 提供完整设备配置,便于集成方统一管理 | #2277 |
升级说明
安装包与组件选择
通过约定的交付渠道获取本版本配套的 Helm 安装包、组件镜像和组件清单。部署和登记软件版本时,以配套交付清单为准。
引入资源池时,应根据团队或业务划分,规划资源使用范围,并部署配套组件。
配置迁移与平台对接
- 自定义设备配置:
device-config.content会完整替换默认设备配置,不与默认配置逐项合并。使用该参数或 Chart 内自定义设备配置文件时,需一并维护企业版所需的设备选项。 - 监控对接:从企业版 2.9 升级时,
hami_container_device_memory_bytes不再携带context_size、module_size、buffer_size和offset标签;显存分项统计应使用对应的hami_vgpu_memory_*_bytes指标。hami_mig_device_info的标签也有调整,需更新依赖旧标签的看板和告警规则。对接 AMD 或 AWS Neuron 时,另需核对企业版的设备类型映射及计量口径。 - 可选功能:NVIDIA NUMA 拓扑信息默认关闭,可通过
devicePlugin.enableNumaTopology按需启用;显存自动扩容需为对应工作负载启用,并预留实际可用显存。 - Ascend 运行环境:企业版的 HAMi-core 运行时启动要求与开源存在差异,部署时使用企业版配套运行时及配置。对应开源调整见 #2062。
- DRA 集成:企业版仍保留可选 DRA 组件,默认关闭;开源版本已从主 Chart 移除该组件,不能直接照搬其安装结构。对应开源调整见 #2038。
已知的开源基线差异
以下开源 v2.10.0 的功能和修复尚未纳入企业版 v2.10.0-r1,集成时需注意相应限制。
| 场景 | 本版本的限制 | 对应开源 PR |
|---|---|---|
| 初始化容器申请设备 | 已支持初始化容器资源计量,尚未纳入后续设备槽位计数修复 | #2623 |
| 单 GPU 停止接收新任务 | 尚未纳入通过 hami.io/device-cordon 动态禁止单 GPU 新分配的能力 | #2298 |
| 配额监控 | 尚未提供独立的 hami_resource_quota_limit 指标,监控规则不应依赖该指标 | #2715 |
| 设备数量变为零 | 尚未纳入设备报告为零时清理过期设备信息的修复,需关注资源显示与实际设备状态是否一致 | #2550 |
| 调度接口异常请求 | 尚未纳入 Filter 请求缺少 Pod 信息时的校验修复,对接方应确保请求完整 | #2689 |
查看Chart 与 appVersion 对应关系或软件中心。
Values 说明
以下参数说明取自 Chart 2.10.0-r1 发布包随附的 README,保留原文。默认配置以该版本的 values.yaml 为准。
展开参数表
| Key | Type | Default | Description |
|---|---|---|---|
| birenResourceName | string | "birentech.com/gpu" | Biren GPU resource name |
| dcuResourceCores | string | "hygon.com/dcucores" | Hygon DCU cores resource name |
| dcuResourceMem | string | "hygon.com/dcumem" | Hygon DCU memory resource name |
| dcuResourceName | string | "hygon.com/dcunum" | Hygon DCU resource name |
| device-config.content | string | "" | |
| devicePlugin.cdiVendor | string | "" | CDI vendor for generated specs and device annotations (default: k8s.device-plugin.nvidia.com) |
| devicePlugin.createRuntimeClass | bool | false | Whether to create runtime class |
| devicePlugin.deviceCoreScaling | int | 1 | Device core scaling factor |
| devicePlugin.deviceListStrategy | string | "envvar" | Device list strategy. Supported values: envvar, volume-mounts, cdi-annotations |
| devicePlugin.deviceMemoryScaling | int | 1 | Device memory scaling factor |
| devicePlugin.deviceSplitCount | int | 10 | Number of slices to split each GPU into |
| devicePlugin.disablecorelimit | string | "false" | Disable core limit |
| devicePlugin.enableNumaTopology | bool | false | Advertise the physical GPU's NUMA node on each vGPU replica |
| devicePlugin.enabled | bool | true | Enable device plugin |
| devicePlugin.extraArgs | list | ["-v=4"] | Extra arguments for device plugin |
| devicePlugin.extraEnvs | object | {} | Extra environment variables for device plugin |
| devicePlugin.gdrcopyEnabled | bool | false | Enable GDRCopy |
| devicePlugin.gdsEnabled | bool | false | Enable GDS |
| devicePlugin.gpuOperatorToolkitReady.enabled | bool | false | Enable GPU operator toolkit ready check |
| devicePlugin.gpuOperatorToolkitReady.hostPath | string | "/run/nvidia/validations" | Host path for GPU operator toolkit ready check |
| devicePlugin.gpuOperatorToolkitReady.securityContext | object | {"privileged":true,"runAsUser":0} | Security context for the toolkit-ready init container |
| devicePlugin.hostNetwork | bool | false | Share the host network namespace with the device plugin pod |
| devicePlugin.hostPID | bool | true | Share the host PID namespace with the device plugin pod |
| devicePlugin.image.pullPolicy | string | "IfNotPresent" | Device plugin image pull policy |
| devicePlugin.image.pullSecrets | list | [] | Specify docker-registry secret names as an array |
| devicePlugin.image.registry | string | "ghcr.io" | Device plugin image registry |
| devicePlugin.image.repository | string | "dynamia-ai/hami-enterprise" | Device plugin image repository |
| devicePlugin.image.tag | string | "" | Device plugin image tag (immutable tags are recommended) |
| devicePlugin.libPath | string | "/usr/local/vgpu" | Library path for vGPU |
| devicePlugin.migStrategy | string | "none" | MIG strategy. Supported values: none, single, mixed |
| devicePlugin.mofedEnabled | bool | false | Enable Mellanox OFED |
| devicePlugin.monitor.ctrPath | string | "/usr/local/vgpu/containers" | Container path for monitor |
| devicePlugin.monitor.extraArgs | list | ["-v=4"] | Extra arguments for monitor |
| devicePlugin.monitor.extraEnvs | object | {} | Extra environment variables for monitor |
| devicePlugin.monitor.image.pullPolicy | string | "IfNotPresent" | Monitor image pull policy |
| devicePlugin.monitor.image.pullSecrets | list | [] | Specify docker-registry secret names as an array |
| devicePlugin.monitor.image.registry | string | "ghcr.io" | Monitor image registry |
| devicePlugin.monitor.image.repository | string | "dynamia-ai/hami-enterprise" | Monitor image repository |
| devicePlugin.monitor.image.tag | string | "" | Monitor image tag (immutable tags are recommended) |
| devicePlugin.monitor.resources | object | {} | Resources for monitor container |
| devicePlugin.monitor.resyncInterval | string | "5m" | Resync interval for monitor |
| devicePlugin.monitor.securityContext | object | {"allowPrivilegeEscalation":false,"capabilities":{"add":["SYS_ADMIN"],"drop":["ALL"]}} | Security context for the monitor container |
| devicePlugin.nodeConfiguration.config | string | "{\n \"nodeconfig\": [\n {\n \"name\": \"your-node-name\",\n \"operatingmode\": \"hami-core\",\n \"devicememoryscaling\": 1,\n \"devicesplitcount\": 10,\n \"preconfigureddevicememory\": 0,\n \"enablenumatopology\": false,\n \"migstrategy\": \"none\",\n \"filterdevices\": {\n \"uuid\": [],\n \"index\": []\n },\n \"enablegetpreferredallocation\": false\n }\n ]\n}\n" | Node configuration for device plugin. If set, overrides the default config.json |
| devicePlugin.nodeConfiguration.externalConfigName | string | "" | Name of an existing ConfigMap to use for node configuration |
| devicePlugin.nvidiaDriverRoot | string | "" | Root path for NVIDIA driver |
| devicePlugin.nvidiaHookPath | string | "" | Path for NVIDIA hook |
| devicePlugin.nvidiaNodeSelector | object | {"gpu":"on"} | Node selector for NVIDIA device plugin |
| devicePlugin.passDeviceSpecsEnabled | bool | false | Enable passing device specs |
| devicePlugin.pluginPath | string | "/var/lib/kubelet/device-plugins" | Path for device plugin socket |
| devicePlugin.podAnnotations | object | {} | Annotations for device plugin pod |
| devicePlugin.preConfiguredDeviceMemory | int | 0 | Pre-configured device memory in MB for GPUs that don't support memory query. Set to 0 for auto-detection |
| devicePlugin.resources | object | {} | Resources for device plugin container |
| devicePlugin.runtimeClassName | string | "" | Runtime class name to be used by the device plugin |
| devicePlugin.securityContext | object | {"allowPrivilegeEscalation":true,"capabilities":{"add":["SYS_ADMIN"],"drop":["ALL"]},"privileged":true} | Security context for the device plugin container |
| devicePlugin.service.annotations | object | {} | Annotations for device plugin service |
| devicePlugin.service.httpPort | int | 31992 | HTTP port for device plugin service |
| devicePlugin.service.labels | object | {} | Labels for device plugin service |
| devicePlugin.service.type | string | "NodePort" | Service type for device plugin |
| devicePlugin.tolerations | list | [] | Tolerations for device plugin pod |
| devicePlugin.updateStrategy.rollingUpdate.maxUnavailable | int | 1 | Maximum unavailable pods during update |
| devicePlugin.updateStrategy.type | string | "RollingUpdate" | Update strategy for device plugin DaemonSet |
| devices.alibaba.customresources | list | ["alibaba.com/ppu","alibaba.com/ppu-memory","alibaba.com/gpu-core"] | Custom resource definitions for Alibaba devices |
| devices.alibaba.enabled | bool | true | Enable Alibaba PPU device |
| devices.alibaba.ppuCorePolicy | string | "default" | PPU core policy for Alibaba devices |
| devices.amd.customresources | list | ["amd.com/gpu","amd.com/gpumem","amd.com/gpucores"] | Custom resource definitions for AMD devices |
| devices.ascend.customresources | list | ["huawei.com/Ascend910A","huawei.com/Ascend910A-memory","huawei.com/Ascend910A-core","huawei.com/Ascend910B2","huawei.com/Ascend910B2-memory","huawei.com/Ascend910B2-core","huawei.com/Ascend910B3","huawei.com/Ascend910B3-memory","huawei.com/Ascend910B3-core","huawei.com/Ascend910B4","huawei.com/Ascend910B4-memory","huawei.com/Ascend910B4-core","huawei.com/Ascend910B4-1","huawei.com/Ascend910B4-1-memory","huawei.com/Ascend910B4-1-core","huawei.com/Ascend310P","huawei.com/Ascend310P-memory","huawei.com/Ascend310P-core","huawei.com/Ascend910C","huawei.com/Ascend910C-memory","huawei.com/Ascend910C-core"] | Custom resource definitions for Ascend devices |
| devices.ascend.enabled | bool | false | Enable Ascend device plugin |
| devices.ascend.extraArgs | list | [] | Extra arguments for Ascend device plugin |
| devices.ascend.hamiVnpuCore | bool | false | Enable soft-partitioning based on hami-vnpu-core (node-level annotation takes higher priority) |
| devices.ascend.image | string | "" | Ascend device plugin image |
| devices.ascend.imagePullPolicy | string | "IfNotPresent" | Image pull policy for Ascend device plugin |
| devices.ascend.nodeSelector | object | {"ascend":"on"} | Node selector for Ascend device plugin |
| devices.ascend.runtimeClassName | string | "" | Runtime class name for Ascend NPU pods |
| devices.ascend.tolerations | list | [] | Tolerations for Ascend device plugin |
| devices.awsneuron.customresources | list | ["aws.amazon.com/neuron","aws.amazon.com/neuroncore"] | Custom resource definitions for AWS Neuron devices |
| devices.biren.customresources | list | ["birentech.com/gpu"] | Custom resource definitions for Biren devices |
| devices.biren.enabled | bool | true | Enable Biren device plugin |
| devices.enflame.customresources | list | ["enflame.com/drs-gcu","enflame.com/gcu-memory","enflame.com/gcu-core","enflame.com/gcu","enflame.com/vgcu","enflame.com/vgcu-percentage"] | Custom resource definitions for Enflame devices |
| devices.enflame.enabled | bool | true | Enable Enflame device plugin |
| devices.iluvatar.customresources | list | ["iluvatar.ai/BI-V100-vgpu","iluvatar.ai/BI-V100.vCore","iluvatar.ai/BI-V100.vMem","iluvatar.ai/BI-V150-vgpu","iluvatar.ai/BI-V150.vCore","iluvatar.ai/BI-V150.vMem","iluvatar.ai/MR-V100-vgpu","iluvatar.ai/MR-V100.vCore","iluvatar.ai/MR-V100.vMem","iluvatar.ai/MR-V50-vgpu","iluvatar.ai/MR-V50.vCore","iluvatar.ai/MR-V50.vMem"] | Custom resource definitions for Iluvatar devices |
| devices.iluvatar.enabled | bool | false | Enable Iluvatar device plugin |
| devices.kunlun.customresources | list | ["kunlunxin.com/xpu","kunlunxin.com/vxpu","kunlunxin.com/vxpu-memory"] | Custom resource definitions for Kunlun devices |
| devices.kunlun.enabled | bool | true | Enable Kunlun device plugin |
| devices.mthreads.customresources | list | ["mthreads.com/vgpu"] | Custom resource definitions for MThreads devices |
| devices.mthreads.enabled | bool | true | Enable MThreads device plugin |
| devices.nvidia.gpuCorePolicy | string | "default" | GPU core policy for NVIDIA devices |
| devices.nvidia.libCudaLogLevel | int | 2 | libCUDA log level |
| devices.vastai.customresources | list | ["vastaitech.com/va"] | Custom resource definitions for Vastai devices |
| devices.vastai.enabled | bool | true | Enable Vastai device plugin |
| dra.enabled | bool | false | Enable DRA (Dynamic Resource Allocation) |
| enflameResourceNameDRSGCU | string | "enflame.com/drs-gcu" | Enflame DRS GCU resource name |
| enflameResourceNameGCUCore | string | "enflame.com/gcu-core" | Enflame GCU core resource name |
| enflameResourceNameGCUMemory | string | "enflame.com/gcu-memory" | Enflame GCU memory resource name |
| enflameResourceNameVGCU | string | "enflame.com/vgcu" | Enflame VGCU resource name |
| enflameResourceNameVGCUPercentage | string | "enflame.com/vgcu-percentage" | Enflame VGCU percentage resource name |
| fullnameOverride | string | "" | Override the fullname of the chart |
| global.annotations | object | {} | Global annotations to add to all resources |
| global.gpuHookPath | string | "/usr/local" | Path for GPU hook installation on nodes |
| global.imagePullSecrets | list | [] | Global Docker image pull secrets |
| global.imageRegistry | string | "" | Global Docker image registry |
| global.imageTag | string | "v2.10.0-r1" | Global image tag for HAMi Enterprise components |
| global.labels | object | {} | Global labels to add to all resources |
| global.managedNodeSelector | object | {"usage":"gpu"} | Node selector configuration for managed GPU nodes |
| global.managedNodeSelectorEnable | bool | false | Enable managed node selector for GPU nodes |
| hami-dra.drivers.nvidia.containerDriver | bool | true | Enable container driver for NVIDIA DRA |
| hami-dra.drivers.nvidia.enabled | bool | true | Enable NVIDIA DRA driver |
| hami-dra.drivers.nvidia.image.repository | string | "ghcr.io/project-hami/k8s-dra-driver" | NVIDIA DRA driver image repository |
| hami-dra.drivers.nvidia.image.tag | string | "main" | NVIDIA DRA driver image tag |
| hami-dra.monitor.enabled | bool | true | Enable monitor for hami-dra |
| kunlunResourceName | string | "kunlunxin.com/xpu" | Kunlun XPU resource name |
| kunlunResourceVCountName | string | "kunlunxin.com/vxpu" | Kunlun virtual XPU count resource name |
| kunlunResourceVMemoryName | string | "kunlunxin.com/vxpu-memory" | Kunlun virtual XPU memory resource name |
| legacyMetrics | bool | false | Enable legacy metrics |
| metaxResourceCore | string | "metax-tech.com/vcore" | Metax sGPU core resource name |
| metaxResourceMem | string | "metax-tech.com/vmemory" | Metax sGPU memory resource name |
| metaxResourceName | string | "metax-tech.com/sgpu" | Metax sGPU resource name |
| metaxsGPUTopologyAware | string | "false" | Enable Metax sGPU topology awareness |
| mluResourceCores | string | "cambricon.com/mlu.smlu.vcore" | MLU cores resource name |
| mluResourceMem | string | "cambricon.com/mlu.smlu.vmemory" | MLU memory resource name |
| mluResourceName | string | "cambricon.com/vmlu" | MLU resource name |
| mockDevicePlugin.enabled | bool | false | Enable mock device plugin |
| mockDevicePlugin.image.pullPolicy | string | "IfNotPresent" | Mock device plugin image pull policy |
| mockDevicePlugin.image.pullSecrets | list | [] | Specify docker-registry secret names as an array |
| mockDevicePlugin.image.registry | string | "docker.io" | Mock device plugin image registry |
| mockDevicePlugin.image.repository | string | "projecthami/mock-device-plugin" | Mock device plugin image repository |
| mockDevicePlugin.image.tag | string | "1.0.1" | Mock device plugin image tag |
| nameOverride | string | "" | Override the chart name |
| namespaceOverride | string | "" | Override the namespace |
| podSecurityPolicy.enabled | bool | false | Enable PodSecurityPolicy |
| prometheus.enabled | bool | false | Enable Prometheus metrics |
| resourceCores | string | "nvidia.com/gpucores" | NVIDIA GPU cores resource name |
| resourceMem | string | "nvidia.com/gpumem" | NVIDIA GPU memory resource name |
| resourceMemPercentage | string | "nvidia.com/gpumem-percentage" | NVIDIA GPU memory percentage resource name |
| resourceName | string | "nvidia.com/gpu" | NVIDIA GPU resource name |
| resourcePriority | string | "nvidia.com/priority" | NVIDIA GPU priority resource name |
| scheduler.admissionWebhook.customURL.enabled | bool | false | Enable custom webhook URL |
| scheduler.admissionWebhook.customURL.host | string | "127.0.0.1" | Webhook host (must be an endpoint using https) |
| scheduler.admissionWebhook.customURL.path | string | "/webhook" | Webhook path |
| scheduler.admissionWebhook.customURL.port | int | 31998 | Webhook port |
| scheduler.admissionWebhook.enabled | bool | true | Enable admission webhook. If disabled, pods must be configured with correct schedulerName manually |
| scheduler.admissionWebhook.failurePolicy | string | "Ignore" | Failure policy for webhook |
| scheduler.admissionWebhook.manageNamespaceSelector | bool | true | Whether the chart renders and manages the webhook's namespaceSelector field |
| scheduler.admissionWebhook.namespaceSelector | object | {"matchExpressions":[],"matchLabels":{}} | Namespace selector for webhook |
| scheduler.admissionWebhook.objectSelector | object | {"matchExpressions":[]} | Object selector for webhook |
| scheduler.admissionWebhook.reinvocationPolicy | string | "Never" | Reinvocation policy for webhook |
| scheduler.admissionWebhook.whitelistNamespaces | list | [] | Namespaces that the webhook will not be applied to |
| scheduler.certManager.enabled | bool | false | Enable cert-manager for TLS certificate generation |
| scheduler.defaultSchedulerPolicy.gpuSchedulerPolicy | string | "spread" | GPU-level scheduling policy. Supported values: binpack, spread |
| scheduler.defaultSchedulerPolicy.nodeSchedulerPolicy | string | "binpack" | Node-level scheduling policy. Supported values: binpack, spread |
| scheduler.extender.extraArgs | list | ["--debug","-v=4"] | Extra arguments for scheduler extender |
| scheduler.extender.image.pullPolicy | string | "IfNotPresent" | Scheduler extender image pull policy |
| scheduler.extender.image.pullSecrets | list | [] | Specify docker-registry secret names as an array |
| scheduler.extender.image.registry | string | "ghcr.io" | Scheduler extender image registry |
| scheduler.extender.image.repository | string | "dynamia-ai/hami-enterprise" | Scheduler extender image repository |
| scheduler.extender.image.tag | string | "" | Scheduler extender image tag (immutable tags are recommended) |
| scheduler.extender.resources | object | {} | Resources for scheduler extender container |
| scheduler.forceOverwriteDefaultScheduler | bool | true | Force overwrite the default scheduler name in pods when it equals the K8s default scheduler name |
| scheduler.kubeScheduler.enabled | bool | true | Whether to run kube-scheduler container in the scheduler pod |
| scheduler.kubeScheduler.extraArgs | list | ["--policy-config-file=/config/config.json","-v=4"] | Extra arguments for kube-scheduler (legacy config format) |
| scheduler.kubeScheduler.extraNewArgs | list | ["--config=/config/config.yaml","-v=4"] | Extra arguments for kube-scheduler (new config format) |
| scheduler.kubeScheduler.image.pullPolicy | string | "IfNotPresent" | kube-scheduler image pull policy |
| scheduler.kubeScheduler.image.pullSecrets | list | [] | Specify docker-registry secret names as an array |
| scheduler.kubeScheduler.image.registry | string | "registry.cn-hangzhou.aliyuncs.com" | kube-scheduler image registry |
| scheduler.kubeScheduler.image.repository | string | "google_containers/kube-scheduler" | kube-scheduler image repository |
| scheduler.kubeScheduler.image.tag | string | "" | kube-scheduler image tag (immutable tags are recommended) |
| scheduler.kubeScheduler.resources | object | {} | Resources for kube-scheduler container |
| scheduler.leaderElect | bool | true | Enable leader election for scheduler |
| scheduler.livenessProbe | bool | false | Enable liveness probe for scheduler |
| scheduler.metricsBindAddress | string | ":9395" | Address to bind metrics server |
| scheduler.nodeLockExpire | string | "5m" | Node lock expiration time |
| scheduler.nodeName | string | "" | Node name for scheduler pod. If installing as default scheduler, set this to skip the schedule workflow |
| scheduler.overwriteEnv | string | "false" | Overwrite environment variables |
| scheduler.patch.enabled | bool | true | Enable kube-webhook-certgen patch job |
| scheduler.patch.image.pullPolicy | string | "IfNotPresent" | kube-webhook-certgen image pull policy |
| scheduler.patch.image.pullSecrets | list | [] | Specify docker-registry secret names as an array |
| scheduler.patch.image.registry | string | "docker.io" | kube-webhook-certgen image registry |
| scheduler.patch.image.repository | string | "jettech/kube-webhook-certgen" | kube-webhook-certgen image repository |
| scheduler.patch.image.tag | string | "v1.5.2" | kube-webhook-certgen image tag |
| scheduler.patch.imageNew.pullPolicy | string | "IfNotPresent" | New kube-webhook-certgen image pull policy |
| scheduler.patch.imageNew.pullSecrets | list | [] | Specify docker-registry secret names as an array |
| scheduler.patch.imageNew.registry | string | "docker.io" | New kube-webhook-certgen image registry |
| scheduler.patch.imageNew.repository | string | "liangjw/kube-webhook-certgen" | New kube-webhook-certgen image repository |
| scheduler.patch.imageNew.tag | string | "v1.1.1" | New kube-webhook-certgen image tag |
| scheduler.patch.nodeSelector | object | {} | Node selector for patch job |
| scheduler.patch.podAnnotations | object | {} | Annotations for patch job pod |
| scheduler.patch.priorityClassName | string | "" | Priority class name for patch job |
| scheduler.patch.runAsUser | int | 2000 | User ID to run patch job as |
| scheduler.patch.tolerations | list | [] | Tolerations for patch job |
| scheduler.podAnnotations | object | {} | Annotations for scheduler pod |
| scheduler.replicas | int | 1 | Number of scheduler replicas (only effective when leaderElect is true) |
| scheduler.service.annotations | object | {} | Annotations for scheduler service |
| scheduler.service.httpPort | int | 443 | HTTP port for scheduler service |
| scheduler.service.httpTargetPort | int | 443 | Target port for HTTP |
| scheduler.service.labels | object | {} | Labels for scheduler service |
| scheduler.service.monitorPort | int | 31993 | Monitoring port for scheduler service |
| scheduler.service.monitorTargetPort | int | 9395 | Target port for monitoring |
| scheduler.service.schedulerPort | int | 31998 | NodePort for scheduler HTTP |
| scheduler.service.type | string | "NodePort" | Service type for scheduler |
| scheduler.tolerations | list | [] | Tolerations for scheduler pod |
| scheduler.useDownward | bool | true | Whether to enable useDownward in the generated scheduler device config for NVIDIA devices |
| schedulerName | string | "hami-scheduler" | Name of the scheduler |
| vastaiResourceName | string | "vastaitech.com/va" | Vastai resource name |