Dynamia ppu-vgpu-device-plugin Chart 0.0.3
Release date: 2026-09-22
| Version | Previous | This release |
|---|---|---|
| Chart | 0.0.2 | 0.0.3 |
| appVersion | 1.0.4 | 1.0.5 |
This release changes the default number of virtual devices per physical PPU from 2 to 10 and standardizes reading resource names and split configuration from the device-configuration file. The default images for both plugin and monitor are updated to ghcr.io/dynamia-ai/ppu-device-plugin:v1.0.5; the bundled PPU-HAMi-core is unchanged from application 1.0.4.
HAMi Enterprise compatibility
If scheduling, resource partitioning, and authorization work with Chart 0.0.2, upgrading to 0.0.3 does not require an Enterprise upgrade. This release does not change scheduling or authorization protocols. Before changing the split count, confirm that existing workloads, quotas, and capacity plans can accommodate the increased number of shares.
| Feature or use case | Minimum usable HAMi Enterprise version | Compatibility requirements and upgrade conclusion |
|---|---|---|
| PPU scheduling, memory/compute partitioning, and authorization delivery and renewal with legacy UUID- or model-based licenses | v2.9.0-rc2 | A scheduler that already publishes a valid hami.io/alibaba-license can be retained. The default split-count change does not require an Enterprise upgrade. |
Instance authorization using the deviceInstances format | v2.10.0-r0 | If the authorization works with application 1.0.4, retain the existing Enterprise and authorization. |
These version floors are based on checks of released artifacts and interface implementations; they do not mean that physical PPU hardware was tested with every compatible version.
Changes
Chart changes
- The default for
config.data.alibaba.deviceSplitCountchanges from2to10. When using the ConfigMap created by this Chart without overriding the value, each physical PPU reports10virtual devices. This controls the number of allocatable shares and does not increase physical memory or compute capacity. Memory and compute scaling still default to1.0. - The plugin DaemonSet removes the
--resource-name,--device-split-count, and--device-memory-scalingstartup arguments and retains only--config-file=/device-config.yaml. Resource names, split count, and scaling factors come from the mounted configuration file.
Application changes
Application 1.0.5 removes the PPU-specific command-line arguments and their environment-variable entry points. Update manual manifests, Helm post-processing scripts, or image startup scripts that still append these arguments; passing a removed argument causes command-line parsing to fail.
| Removed argument | Configuration key in this release |
|---|---|
--resource-name | alibaba.resourceCountName |
--device-split-count | alibaba.deviceSplitCount |
--device-memory-scaling | alibaba.deviceMemoryScaling |
--device-cores-scaling | alibaba.deviceCoreScaling |
--disable-core-limit | alibaba.disableCoreLimit |
--node-name | Pass the node name with the NODE_NAME environment variable; the Chart already sets it through the Downward API |
The alibaba.* names in the table are keys in the effective device-configuration file. When the Chart creates that configuration, set them under config.data.alibaba.* in values. The old DEVICE_SPLIT_COUNT, DEVICE_MEMORY_SCALING, DEVICE_CORES_SCALING, DISABLE_CORE_LIMIT, and NodeName environment variables are no longer entry points for these command-line arguments. The existing configuration file was already the source of resource and split configuration; this release removes duplicate inputs without changing authorization delivery, renewal, or runtime behavior.
Upgrade guidance
Retain or change the split count explicitly
To retain two shares per card, explicitly pin the value in upgrade values:
config:
data:
alibaba:
deviceSplitCount: 2
To use ten shares per card, set the value to 10 and inspect the rendered ConfigMap. Retained old values may continue to override the new default, so do not infer the effective count from the Chart version alone. Preserve any custom split count, resource names, and scaling factors as appropriate.
For deployments using config.create: false and config.existingConfigMapName, update alibaba.deviceSplitCount and related fields in the external ConfigMap; changing config.data does not update that object. The plugin must reload the configuration before it registers the new count. Changes to an external ConfigMap do not trigger this Chart's validation or rolling update, so schedule a plugin restart and verify the result.
The device plugin reports the split capacity. The scheduler consumes the capacity reported by nodes; changing only Enterprise scheduler defaults does not replace the plugin configuration update. Resource names must match on both sides. Before reducing the count, confirm existing allocations do not exceed the new capacity and schedule maintenance as needed.
Update images and deployment manifests
- Retain the existing Helm release, namespace, resource names, and node selection. Plugin and monitor share
image.repositoryandimage.tag; whenimage.tagis empty, the default isv1.0.5. Update pinned old tags to receive the application changes. - Remove the deleted arguments from custom manifests and startup scripts, and move settings that must remain into the device-configuration file. Do not only replace the image in Chart
0.0.2withv1.0.5: the old Chart still passes the three arguments removed in this release. Upgrade the Chart too or correct the manifests. - Check the actual plugin and monitor DaemonSet images, plugin startup logs, node PPU registration, and
alibaba.com/ppucapacity. On nodes where every physical PPU is healthy, registrable, and uses the same configuration, the total virtual-device count should equal physical card count multiplied by the split count. Check the corresponding resource if using a custom resource name. - Runtime libraries and per-container authorization formats are unchanged; a universal authorization-file migration or recreation of all workload Pods is not required for the application upgrade. If the split count also changes, separately validate scheduling, allocation, and resource limits for new workloads.
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 0.0.3 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 |
|---|---|---|---|
| commonAnnotations | object | {} | |
| commonLabels | object | {} | |
| config.create | bool | true | |
| config.data.alibaba.defaultCores | int | 0 | |
| config.data.alibaba.defaultGPUNum | int | 1 | |
| config.data.alibaba.defaultMemory | int | 0 | |
| config.data.alibaba.deviceCoreScaling | float | 1 | |
| config.data.alibaba.deviceMemoryScaling | float | 1 | |
| config.data.alibaba.deviceSplitCount | int | 10 | |
| config.data.alibaba.gpuCorePolicy | string | "default" | |
| config.data.alibaba.memoryFactor | int | 1 | |
| config.data.alibaba.overwriteEnv | bool | false | |
| config.data.alibaba.resourceCoreName | string | "alibaba.com/gpu-core" | |
| config.data.alibaba.resourceCountName | string | "alibaba.com/ppu" | |
| config.data.alibaba.resourceMemoryName | string | "alibaba.com/ppu-memory" | |
| config.data.alibaba.resourceMemoryPercentageName | string | "alibaba.com/ppu-memory-percentage" | |
| config.data.alibaba.runtimeClassName | string | "" | |
| config.existingConfigMapName | string | "" | |
| fullnameOverride | string | "" | |
| image.pullPolicy | string | "IfNotPresent" | |
| image.pullSecrets | list | [] | |
| image.repository | string | "ghcr.io/dynamia-ai/ppu-device-plugin" | |
| image.tag | string | "" | |
| monitor.enabled | bool | true | |
| monitor.resources | object | {} | |
| monitor.service.enabled | bool | true | |
| monitor.service.nodePort | int | 31992 | |
| monitor.service.port | int | 31992 | |
| monitor.service.type | string | "NodePort" | |
| nameOverride | string | "" | |
| namespaceOverride | string | "hami-system" | |
| nodeSelector.alibabappu | string | "on" | |
| plugin.enabled | bool | true | |
| plugin.resources.limits.cpu | string | "500m" | |
| plugin.resources.limits.memory | string | "512Mi" | |
| plugin.resources.requests.cpu | string | "100m" | |
| plugin.resources.requests.memory | string | "128Mi" | |
| priorityClassName | string | "system-node-critical" | |
| tolerations[0].key | string | "CriticalAddonsOnly" | |
| tolerations[0].operator | string | "Exists" | |
| tolerations[1].effect | string | "NoSchedule" | |
| tolerations[1].operator | string | "Exists" |