HAMi Enterprise 2.10.0-r1
The HAMi Enterprise 2.10 series improves shared compute-resource management, device support, and operations integrations. It introduces optional resource-pool management while retaining Enterprise GPU allocation management and GPU memory auto-expansion. v2.10.0-r1 also incorporates open-source HAMi dynamic MIG, combined GPU scheduling policies, init-container resource accounting, multi-device quota improvements, and stability fixes.
Version information
| Item | Value |
|---|---|
| Enterprise release | HAMi Enterprise v2.10.0-r1 |
| Release date | 2026-08-28 |
| Enterprise upgrade baseline | v2.9.0-r3 (the last release in the 2.9 series) |
| Open-source baseline | HAMi v2.10.0 |
| Helm Chart | hami-enterprise, version 2.10.0-r1 |
Chart appVersion | 2.10.0-r1 |
| Default component image tag | v2.10.0-r1 |
Software changes
Changes compared with Enterprise v2.9.0-r3
Enterprise license management, NVIDIA GPU allocation management, GPU memory auto-expansion, and Alibaba PPU integration were already available in Enterprise 2.9 and remain available in this release.
Monitoring and collection improvements
- Adds workload information for compute-allocation mode, memory overcommit, and auto-expansion status to help platforms display resource configuration and feature enablement.
- Fixes metric attribution issues in some workloads containing init containers.
- Updates container-memory and MIG monitoring metrics. Review metrics and labels used by existing dashboards and alert rules; see “Configuration migration and platform integration.”
Device support and stability fixes
- Fixes mode matching for some Ascend vNPU workloads and improves memory-request handling.
- Fixes cleanup of residual data in scenarios such as task failures.
- Synchronizes open-source scheduling, device-support, quota, and concurrency improvements, including dynamic MIG and combined GPU scheduling policies. See “Upstream changes included in this release” and the referenced PRs.
Enterprise extensions compared with open-source HAMi v2.10.0
Resource-pool management (optional in the 2.10 series)
The 2.10 series introduces optional resource-pool management. It organizes device resources by team or business unit and configures the namespaces that can use each resource pool, helping manage compute-resource access in shared clusters.
Resource-pool management is disabled by default and is not enabled automatically when the v2.10.0-r1 main Chart is installed. Install and enable the companion components according to their deployment instructions.
Enterprise license management
- Manages licenses by device instance or device-model count to support deployments of different sizes.
- Provides license-validity status, remaining validity, and error events to help plan renewals and investigate issues.
- License coverage varies by device type; select the license plan that matches the deployment.
GPU resource usage and memory auto-expansion
- Provides Enterprise NVIDIA GPU allocation management with container-level device allocation and memory and compute limits.
- Supports adjusting memory limits as needed for NVIDIA GPU workloads with auto-expansion enabled, for example when memory demand grows at runtime.
- Expansion is constrained by remaining device memory and currently applies to regular workload containers, not init containers.
Heterogeneous devices and platform integration
- Provides resource scheduling, quota management, license integration, and deployment configuration for Alibaba PPU.
- AWS Neuron resource accounting and AMD device-type identifiers differ from the open-source baseline. Verify the relevant accounting semantics and type mappings when integrating with an existing resource-management platform.
- Adds Enterprise monitoring information for resource configuration, auto-expansion status, and license validity, and extends CDI integration settings for existing operations platforms and container runtimes.
Upstream changes included in this release
v2.10.0-r1 includes the following major open-source features and fixes. See the referenced PRs for background; Enterprise configuration requirements and differences are described in “Upgrade notes.”
Scheduling and resource allocation
| Change | Impact on usage and integration | Upstream PR |
|---|---|---|
| Init-container resource accounting | Improves resource accounting and release for init and workload containers. The subsequent slot-count fix is not included; see “Known differences from the open-source baseline.” | #1773 |
| GPU mutual-exclusion scheduling policy | Adds the mutex policy for exclusive GPU allocation. | #2011 |
| Combined GPU scheduling policies | Combines multiple GPU scheduling policies and applies them in configured order. | #2621 |
| PodGroup support | Improves scheduling retries for tasks in a group and supports Kubernetes SchedulingGroup recognition. | #2066, #2206 |
| Scheduling evaluation on template nodes | Evaluates whether a task can be scheduled on a template node, providing a basis for integration with scale-up decisions. A complete autoscaling solution still requires separate integration. | #2046 |
| NVIDIA NUMA information | Optionally provides vGPU NUMA topology information; disabled by default. | #2065 |
| Dynamic MIG | Dynamically allocates and releases MIG instances based on task requirements and improves MIG profile management. | #2378 |
| RTX PRO 6000 Blackwell MIG | Adds dynamic MIG support and profile configuration for this model. | #2135 |
Device support
| Change | Impact on usage and integration | Upstream PR |
|---|---|---|
| AMD vGPU | Supports resource requests and allocation for AMD virtual devices. | #2290 |
| Biren devices | Adds device recognition and scheduling support for Biren hardware. | #1711 |
| Ascend hybrid-mode scheduling | Workloads without an explicit mode can match both vNPU-template and HAMi-core nodes. | #2035 |
| Ascend 910C templates | Adds resource profiles such as vir05_1c_16g and vir10_3c_32g. | #2005 |
| Ascend memory requests | Preserves the user-requested memory value instead of rounding it to a template value during parsing. | #2696 |
Quotas and stability
| Change | Impact on usage and integration | Upstream PR |
|---|---|---|
| Zero quotas and quota updates | Treats an explicitly configured zero quota as zero capacity and improves limit handling after quota updates. | #2313, #2386 |
| Multi-device quota checks | Improves quota validation across device backends, including Cambricon percentage-memory and full-card memory requests. | #2347, #2536 |
| Release resources after scheduling failures | Fixes stale allocation records that could leave resources occupied after some scheduling failures. | #1927 |
| Concurrent scheduling stability | Fixes data races when Pods and node information are processed concurrently. | #2055, #2472, #2333, #2504 |
| Recover device scheduling | Fixes release of node locks for Cambricon devices to avoid affecting subsequent scheduling. | #2329 |
| Read monitoring data | Improves handling of abnormal or unready data, reducing interference from unrelated files and invalid device information during collection. | #2529, #2503, #2465 |
Chart changes
Deployment and runtime integration
- Adds an installation setting for the Enterprise NVIDIA GPU allocation mode; the default behavior is unchanged and can be configured for the deployment.
- Extends CDI configuration to support a custom device-identifier prefix and improves dynamic MIG device integration.
- Completes PPU scheduling resource configuration to improve deployment integration for the existing PPU capability.
- Improves deployment health checks so abnormal tasks in other namespaces do not affect the check.
Upstream installation-configuration changes
| Change | Impact on usage and integration | Upstream PR |
|---|---|---|
| Device Plugin security configuration | Configures the Device Plugin security context through Helm values to fit cluster security policies. | #1887 |
| Custom device configuration | Provides a complete device configuration through device-config.content for consistent management by integrators. | #2277 |
Upgrade notes
Packages and component selection
Obtain the Helm package, component images, and component manifest for this release through the agreed delivery channel. Use the companion delivery manifest when deploying and recording software versions.
When introducing resource pools, plan resource access by team or business unit and deploy the companion components.
Configuration migration and platform integration
- Custom device configuration:
device-config.contentreplaces the entire default device configuration; it does not merge individual fields. If you use this setting or a custom device-configuration file in the Chart, maintain the Enterprise device options required by your deployment. - Monitoring integrations: When upgrading from Enterprise 2.9,
hami_container_device_memory_bytesno longer has thecontext_size,module_size,buffer_size, andoffsetlabels. Use the correspondinghami_vgpu_memory_*_bytesmetrics for memory breakdowns. Labels onhami_mig_device_infohave also changed; update dashboards and alert rules that use the old labels. When integrating AMD or AWS Neuron, also verify Enterprise device-type mappings and accounting semantics. - Optional features: NVIDIA NUMA topology information is disabled by default and can be enabled with
devicePlugin.enableNumaTopologyas needed. GPU memory auto-expansion must be enabled for the relevant workload, and sufficient allocatable memory must be available. - Ascend runtime environment: Enterprise HAMi-core runtime startup requirements differ from the open-source version. Use the Enterprise companion runtime and configuration for deployment. See upstream change #2062.
- DRA integration: Enterprise retains an optional DRA component, disabled by default. Open-source HAMi has removed that component from its main Chart, so its installation layout cannot be copied directly. See upstream change #2038.
Known differences from the open-source baseline
The following open-source v2.10.0 features and fixes are not included in Enterprise v2.10.0-r1; account for these limitations when integrating.
| Scenario | Limitation in this release | Upstream PR |
|---|---|---|
| Device requests from init containers | Init-container resource accounting is supported, but the subsequent device-slot-count fix is not included. | #2623 |
| Stop assigning new tasks to one GPU | Does not yet include dynamic blocking of new allocations to an individual GPU through hami.io/device-cordon. | #2298 |
| Quota monitoring | Does not provide a separate hami_resource_quota_limit metric. Monitoring rules should not depend on it. | #2715 |
| Device count becomes zero | Does not yet include the fix that clears stale device information when a device reports zero. Check whether displayed resources match actual device state. | #2550 |
| Invalid scheduling API requests | Does not yet include validation for Filter requests that lack Pod information. Integrators should ensure requests are complete. | #2689 |
See the Chart and appVersion mapping or the software center.
Values reference
The following parameter descriptions are taken from the README bundled with the Chart 2.10.0-r1 release package and are preserved as published. Use this version's values.yaml as the source of default configuration.
Expand values table
| 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 |