Skip to main content

Dynamia ppu-vgpu-device-plugin Chart 0.0.4

Release date: 2026-09-30

VersionPreviousThis release
Chart0.0.30.0.4
appVersion1.0.51.0.5

This release changes only the Chart's default resource names and monitoring Service labels. The default images for both the plugin and monitor remain ghcr.io/dynamia-ai/ppu-device-plugin:v1.0.5, and the bundled PPU-HAMi-core is unchanged. During an upgrade of an existing deployment, preserve both resource names and DaemonSet selectors; adopting the new defaults changes both.

HAMi Enterprise compatibility​

If PPU scheduling, memory/compute partitioning, and authorization already work with Chart 0.0.3, upgrading to 0.0.4 does not require upgrading HAMi Enterprise. The following are existing compatibility requirements for default application 1.0.5; this release does not raise the version floor.

Feature or use caseMinimum usable HAMi Enterprise versionCompatibility requirements and upgrade conclusion
PPU scheduling, memory/compute partitioning, and authorization delivery and renewal with legacy UUID- or model-based licensesv2.9.0-rc2Retain a scheduler that recognizes the existing authorization and publishes a valid hami.io/alibaba-license; this Chart upgrade does not require changing authorization or upgrading Enterprise.
Instance authorization using the deviceInstances formatv2.10.0-r0The existing version requirement for this format is unchanged. If the current authorization works, retain the existing Enterprise and authorization.

The new monitoring Service labels do not require an Enterprise upgrade and do not automatically configure Prometheus scraping. The scraper still needs a matching Service-discovery rule. 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 defaults for nameOverride and fullnameOverride both change from an empty string to ppu-device-plugin. Unless explicitly overridden, this renames the plugin, monitor, bundled ConfigMap, ServiceAccounts, and RBAC resources. The app.kubernetes.io/name label and related selectors also change to ppu-device-plugin. Existing resource names and selectors are not migrated automatically.
  • The monitoring Service adds app: ppu-vgpu-monitor and component: vgpu-monitor labels for scrapers that discover Services using these labels. The new labels are Service metadata, not Pod labels or Service selectors. The port name remains metrics, the Service port and NodePort remain 31992, and the target container port remains 9394. Metric contents and listening ports do not change, and no ServiceMonitor is added.

The main name changes when each Chart uses its respective defaults are:

Object or settingChart 0.0.3Chart 0.0.4
Plugin DaemonSetppu-vgpu-device-pluginppu-device-plugin
Monitor DaemonSet and Serviceppu-vgpu-device-plugin-monitorppu-device-plugin-monitor
Bundled ConfigMapppu-vgpu-device-plugin-configppu-device-plugin-config
Plugin ServiceAccount, ClusterRole, and ClusterRoleBindingppu-vgpu-device-pluginppu-device-plugin
Monitor ServiceAccount, ClusterRole, and ClusterRoleBindingppu-vgpu-device-plugin-monitorppu-device-plugin-monitor
app.kubernetes.io/name label and selector valueppu-vgpu-device-pluginppu-device-plugin

fullnameOverride controls resource names and takes precedence over nameOverride; nameOverride independently affects app.kubernetes.io/name. For a deployment using the previous default names, fixing only one value does not preserve both names and selectors.

Upgrade guidance​

Preserve existing names during upgrade​

For an existing deployment, we recommend retaining its resource names and selectors. If Chart 0.0.3 used the defaults, add the following to the existing upgrade values and retain the Helm release name and namespace:

nameOverride: ppu-vgpu-device-plugin
fullnameOverride: ppu-vgpu-device-plugin

In Chart 0.0.4, these settings preserve the previous resource names, DaemonSet selectors, monitor Service name, and ports while applying the new Service labels. If the previous release used custom names, supply the actual deployed names: nameOverride must match the existing app.kubernetes.io/name, and fullnameOverride must match the existing full resource-name prefix. Do not blindly use the default example.

Compare manifests rendered from the old and new values before upgrading. Confirm both DaemonSet names and spec.selector.matchLabels, Service names, ConfigMap references, and ServiceAccount references remain consistent. Do not set only fullnameOverride to the old name while leaving the new default nameOverride: the selector on the same-named DaemonSet would change and prevent an in-place update. Kubernetes does not allow DaemonSet selectors to be changed after creation.

Deployments adopting the new default names should plan for resource recreation and monitoring cutover rather than treating this as an in-place update of the same resources. Update external references to the old Service DNS name, ConfigMap, ServiceAccount, or labels as needed, and avoid having old and new plugins manage the same nodes simultaneously. The default monitoring NodePort is 31992; if the old Service still occupies it, the newly named Service cannot claim the same port. Schedule its release or use an unoccupied port. See Kubernetes NodePort allocation constraints.

Check monitoring discovery and upgrade results​

  • If the scraper discovers targets by Service labels, it can match app=ppu-vgpu-monitor and component=vgpu-monitor; the port name remains metrics. If it uses a Pod label selector, do not use these new Service labels as Pod match criteria.
  • If the scraper relies on a fixed Service name or app.kubernetes.io/name, retain or update the rules to match the final naming plan. Check that the Service has the new labels, Endpoints or EndpointSlices point to monitor Pods, and the scraper target is healthy. Seeing Service labels alone does not prove that metrics are being scraped.
  • The default application version is unchanged; this Chart upgrade alone does not require replacing the runtime library, migrating authorization files, or recreating all workload Pods. Still check plugin and monitor DaemonSet rollouts, node resource registration, and existing monitoring targets. A Chart metadata update may roll Pods; it is not an application upgrade.
  • Retain the existing image.repository, image.tag, resource names, and device-split configuration. Custom images remain controlled by their existing overrides. This release adds no topology-scoring switch and does not require changing the scheduling policy.

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.4 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.deviceSplitCountint10
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"ppu-device-plugin"
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"ppu-device-plugin"
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"