Skip to main content

Dynamia ppu-vgpu-device-plugin Chart 0.0.1

Release date: 2026-07-14

VersionPreviousThis release
Chart— (first Chart release)0.0.1
appVersion—1.0.2

This is the first PPU device-plugin Chart release. It brings the plugin, monitor, device configuration, and access permissions under Helm management. Plugin and monitor default to ghcr.io/dynamia-ai/ppu-device-plugin:v1.0.2. The application capabilities below are included in this first Chart; this does not mean that all of them were first introduced in application 1.0.2.

HAMi Enterprise compatibility​

Feature or use caseMinimum usable HAMi Enterprise versionCompatibility requirements and deployment conclusion
PPU scheduling and memory/compute partitioningv2.9.0-rc2The first HAMi Enterprise release that supports this PPU plugin. Existing deployments with working compatibility can adopt this Chart without upgrading Enterprise.

This release does not include per-container authorization delivery, monitor renewal, or runtime-library authorization checks. When upgrading to Chart 0.0.2, follow that release's authorization-migration requirements.

Changes​

Chart changes​

The first Helm Chart release manages the following components:

  • Device-plugin DaemonSet to register PPU resources with kubelet, read scheduler allocation results, and prepare device and runtime-library mounts for containers.
  • Monitor DaemonSet and metrics Service, enabled by default; plugin and monitor share the same image configuration.
  • Device ConfigMap, two ServiceAccounts, ClusterRole, and ClusterRoleBinding. The Chart can create the device configuration or refer to an existing ConfigMap.

Key defaults are listed below; verify them against the target deployment before installation.

Setting or objectInitial default and meaning
Kubernetes version declaration>=1.20.0-0; installation constraint declared by the Chart
NamespacenamespaceOverride: hami-system; this value determines the default resource namespace
Deployment nodesnodeSelector.alibabappu: "on"
Plugin and monitorplugin.enabled: true, monitor.enabled: true
Device configurationconfig.create: true; creates ppu-vgpu-device-plugin-config by default
Resource count, memory, and compute namesalibaba.com/ppu, alibaba.com/ppu-memory, alibaba.com/gpu-core
Virtual devices per cardconfig.data.alibaba.deviceSplitCount: 2
Memory and compute scaling factorsdeviceMemoryScaling: 1.0, deviceCoreScaling: 1.0, under config.data.alibaba
Monitor ServiceNodePort; Service port and NodePort are both 31992, target container port is 9394
Default resource namesPlugin: ppu-vgpu-device-plugin; monitor and Service: ppu-vgpu-device-plugin-monitor

When image.tag is empty, templates select v1.0.2 from appVersion; explicit image.repository and image.tag values override the defaults. The monitor Service provides a metrics endpoint, but the Chart does not create a Prometheus ServiceMonitor; configure the scraper separately.

Bundled application capabilities​

  • Discovers PPUs on nodes and reports device count, memory, compute, and device identity. Registers virtual devices per physical card according to configuration so multiple workloads can request shared resources.
  • Works with HAMi Enterprise allocation results to prepare PPU device files, PPU-HAMi-core, and resource-limit environment variables for workload containers, enforcing memory and compute limits from requested values. Resource names use the fields above, including alibaba.com/gpu-core for compute.
  • The monitor reads device and container shared state and exposes metrics. The initial monitor does not renew the container authorization files introduced in later releases.

These capabilities require a working PPU driver, corresponding device files, and a compatible scheduler on the nodes. Virtual devices per card control sharing and do not add physical capacity.

Upgrade guidance​

There is no previous Chart. This section applies to first-time installation or adopting the Chart when a plugin or monitor is already running from manual manifests.

Fix numeric argument quoting before first installation​

The original Chart renders numeric plugin arguments with extra quotation marks, which are passed as part of the argument. For example:

--device-split-count="2"
--device-memory-scaling="1"

This causes the corresponding numeric arguments to fail parsing. If you must deploy this release, use a controlled Chart copy or Helm post-processing manifest to remove the quotes around the numeric values, yielding --device-split-count=2 and --device-memory-scaling=1; apply the same correction to custom values. Changing the values' data types alone does not remove the quotes added by the template. This issue is fixed in Chart 0.0.2, which also has authorization-migration requirements to follow if you upgrade.

Verify deployment configuration​

  • Before installation, confirm the target namespace matches namespaceOverride, target nodes have label alibabappu=on, and the PPU driver and device files are ready. The Chart creates RuntimeClass using node.k8s.io/v1; the cluster must serve this API. The plugin uses privileged containers, host networking, and hostPath mounts, so node policies must permit them.
  • With external device configuration, set config.create: false and config.existingConfigMapName, and prepare a ConfigMap in the same namespace with data key device-config.yaml. The plugin reads its alibaba settings; config.data does not update an external object. Resource names must match the scheduler.
  • This release's templates also derive some startup arguments from config.data.alibaba. Keep these values consistent with an external ConfigMap even when referencing it, and correct the argument quoting described above. The plugin reports device split and scaling; Enterprise configuration controls the scheduler's default requests and policy.
  • Configure the monitor Service according to the collection method and confirm NodePort 31992 is unused. Check the actual scrape target; a Ready monitor Pod alone does not show that metrics are integrated.

Migrate from manual manifests​

This is the first Chart, so it can be used for a first Helm-managed deployment. If the plugin or monitor currently runs from manual YAML, first check resource names, namespace, RBAC, device configuration, and host directories. Then plan for the old deployment to exit and Helm to take over, avoiding two plugins registering the same resource on a node at the same time. Do not directly overwrite or delete host runtime libraries or shared state still used by workloads.

After migration, check the actual plugin and monitor images and logs, node resource registration, and allocation, device visibility, memory limits, and compute limits for a new workload. If changing images, mounts, or runtime libraries as well, separately schedule workload recreation and validation; do not treat those changes as merely switching Helm management.

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.1 release package and are preserved as published. Use this version's values.yaml as the source of default configuration.

Expand values table
KeyTypeDefaultDescription
commonAnnotationsobject{}
commonLabelsobject{}
config.createbooltrue
config.data.alibaba.defaultCoresint0
config.data.alibaba.defaultGPUNumint1
config.data.alibaba.defaultMemoryint0
config.data.alibaba.deviceCoreScalingfloat1
config.data.alibaba.deviceMemoryScalingfloat1
config.data.alibaba.deviceSplitCountint2
config.data.alibaba.gpuCorePolicystring"default"
config.data.alibaba.memoryFactorint1
config.data.alibaba.overwriteEnvboolfalse
config.data.alibaba.resourceCoreNamestring"alibaba.com/gpu-core"
config.data.alibaba.resourceCountNamestring"alibaba.com/ppu"
config.data.alibaba.resourceMemoryNamestring"alibaba.com/ppu-memory"
config.data.alibaba.resourceMemoryPercentageNamestring"alibaba.com/ppu-memory-percentage"
config.data.alibaba.runtimeClassNamestring""
config.existingConfigMapNamestring""
fullnameOverridestring""
image.pullPolicystring"IfNotPresent"
image.pullSecretslist[]
image.repositorystring"ghcr.io/dynamia-ai/ppu-device-plugin"
image.tagstring""
monitor.enabledbooltrue
monitor.resourcesobject{}
monitor.service.enabledbooltrue
monitor.service.nodePortint31992
monitor.service.portint31992
monitor.service.typestring"NodePort"
nameOverridestring""
namespaceOverridestring"hami-system"
nodeSelector.alibabappustring"on"
plugin.enabledbooltrue
plugin.resources.limits.cpustring"500m"
plugin.resources.limits.memorystring"512Mi"
plugin.resources.requests.cpustring"100m"
plugin.resources.requests.memorystring"128Mi"
priorityClassNamestring"system-node-critical"
tolerations[0].keystring"CriticalAddonsOnly"
tolerations[0].operatorstring"Exists"
tolerations[1].effectstring"NoSchedule"
tolerations[1].operatorstring"Exists"