Skip to main content

HAMi AI Platform Chart 0.21.0

Release date: 2026-09-30 (UTC)

Version status: Known issue

This release upgrades the backend to v0.15.0 and the UI to v0.12.1, adds resource-pool management, a native workload API, and HCU monitoring, and changes metering configuration and operations for existing workloads. The default backend still has a workload gateway-routing issue. It is fixed in Chart 0.21.2; the recommended upgrade target is the confirmed generally available Chart 0.21.3.

ComponentComparison baselineThis release
Chart0.20.60.21.0
appVersion0.14.20.15.0
API Serverv0.14.2v0.15.0
Controller Managerv0.14.2v0.15.0
Database migration component (when SQLite auth storage is enabled)v0.14.2v0.15.0
UIv0.11.1v0.12.1

The comparison baseline is the latest generally available Chart before this release, 0.20.6. The software changes below are based on the actual default images at both versions.

HAMi Enterprise compatibility​

The table distinguishes minimum companion versions by the interfaces used by the platform. Resource pools, vendor plugins, and monitoring components are installed separately; a threshold for one metric or optional feature is not a uniform minimum for the entire platform.

Feature or scenarioMinimum HAMi Enterprise versionCompanion requirements and scope
NVIDIA HAMi-core device allocation, scheduling capacity, allocated resources, and workload usage monitoring for a single regular container (excluding init containers)v2.9.0-rc0Use the Enterprise scheduler, NVIDIA device plugin, and vGPU Monitor; scrape the scheduler and device-plugin monitoring endpoints.
Historical trend for NVIDIA GPU memory oversell factorv2.10.0-r0The scheduler exposes hami_gpu_memory_oversell_factor. This is the minimum for the factor metric, not the first version with GPU memory oversell runtime support.
Container-core percentage for an allocated AMD workloadv2.10.0-r0For registered AMD devices allocated by HAMi, the scheduler converts physical CU count into the hami_vgpu_core_allocated_ratio percentage. Physical-device utilization still depends on the vendor monitoring component.
Resource pools for regular NVIDIA/Ascend workloads: device ownership, namespace binding, CPU/memory and device quotas, explicit or binpack/spread pool selectionv2.9.0-rc0CRD Chart 0.4.2, Resource Pool Manager (RPM) application v0.0.1; use RPM Chart 0.0.5 by default. Requires extender mode, Kubernetes >=1.30.0-0, and registered devices. The minimum combination is confirmed for amd64 artifacts.
GPU mutex/NUMA or comma-combination strategies within an NVIDIA poolv2.10.0-r0Use the CRD and RPM components above. These are within-pool GPU strategies, distinct from RPM binpack/spread pool selection.
Ascend soft-vNPU Turbo and task priorityv2.9.0-rc0Ascend plugin and libvnpu v1.4.2 (default plugin Chart 0.2.2); enable devices.ascend.hamiVnpuCore=true or the corresponding node configuration. Turbo is limited to trusted, exclusive-compute workloads, requests one vNPU and 100% of its cores per allocation, and retains the memory limit. Recreate Pods to switch.
Runtime automatic memory expansion for Ascend soft vNPUv2.10.0-r2Plugin/libvnpu v1.4.2, default plugin Chart 0.2.2, Kubernetes >=1.30, scheduler.admissionWebhook.enabled=true, DRA disabled, HAMi-core enabled, and one vNPU per workload container. Expansion does not shrink and the Pod declaration stays unchanged; admission rejection or timeout may lead to OOM.
Pairing complete even-chip modules for Ascend910C allocationv2.10.0-r0Dynamia Ascend device plugin v1.3.0 or later, with matching model configuration and driver. This is the minimum for module-paired allocation; advanced soft-partitioning capabilities have separate requirements above.
Resource allocation and workload usage for a single regular container using a single Iluvatar vGPUv2.9.0-rc0Vendor GPU Manager Chart 3.0.7 or later, default image v3.0.7-vcuda-v4.4.0-3, and matching CoreX/vCUDA. Memory units are 256 MiB. Pre-start platform processing requires an explicit Command, writable CoreX directory, and vendor-injected library. This does not cover multi-card partitioning or mixed multi-container scenarios.
Full physical-device metrics for IluvatarNot applicable (independent exporter telemetry)Default metrics and label protocol require ix-exporter 4.3.0 or later, including node labels and error metrics. A unified HAMi device inventory and allocation data still depend on the corresponding scheduler integration.
HCU registration, allocation, and resource poolsv2.10.0-r3HCU device plugin v3.0.0, with RESOURCE_REGISTER_STRATEGY=hami. Resource pools also require CRD Chart 0.4.2, RPM application v0.0.2 (default RPM Chart 0.0.6), extender mode, and Kubernetes >=1.30.0-0. The minimum combination is confirmed for amd64 artifacts.
HCU physical-device and Deployment workload-usage monitoringNot applicable (independent exporter telemetry)HCU exporter v3.0.0 or later with HCU DCGM 3.0.0; amd64 artifacts are confirmed. Workload curves are limited to Deployments (including Flow-generated Deployments) and require CONNECT_K8S=true, kubelet-directory mounts, Pod ownership labels, and the Deployment → ReplicaSet → Pod metrics chain. Enable this release's HCU collection rules and retain metric names and labels. HAMi registration/allocation requirements are listed in the preceding row.

The rc suffix in HAMi Enterprise versions does not indicate a test or prerelease build. The old v2.9.0-rc0 image is currently unavailable. For a new deployment, choose an available version that satisfies the interface requirements; image availability does not change the confirmed minimum interface version.

Ascend plugin/libvnpu v1.4.2 was released on 2026-10-09, after this Chart. This table includes companion versions delivered after the Chart release to specify the minimum combination for those capabilities. It does not mean every companion was available on the release date or is installed automatically by the platform.

Software changes​

Resource pools and resource views​

  • Adds resource-pool pages and management APIs to inspect devices in a pool, bind namespaces, set CPU/memory and device quotas, and select or view a workload's pool. Selection supports explicit choice and binpack/spread; actual admission and allocation require the RPM and Enterprise components listed above.
  • Separates physical device capacity from scheduling capacity and adds allocated, used, and remaining resources and ratios. Node oversubscription and trend displays are updated. NVIDIA oversell trends and AMD core percentages require the corresponding metrics versions.
  • License statistics now include registered devices without a license and distinguish active from inactive status. Adds Pending-reason diagnostics for NVIDIA, Ascend, and HCU workloads to help distinguish insufficient resources from missing companion prerequisites.

Native Workloads API and existing Flow management​

  • Adds a native Workloads API to validate, create, query, and delete Deployments, StatefulSets, Jobs, and LeaderWorkerSets. YAML submissions may include same-namespace Services, PVCs, ConfigMaps, and Secrets. LeaderWorkerSet still requires its CRD and controller in the cluster. The platform manages resources carrying kantaloupe.dynamia.io/observed: "true"; Kubernetes or the relevant controller owns their lifecycle.
  • Native create requests first run a server-side dry-run. Batch creation is not transactional across resources; successfully created objects remain if another object fails. The default UI v0.12.1 still uses KantaloupeFlow forms; native YAML operations are available through the API.
  • Form-created Flows record kantaloupe.dynamia.io/creation-source: form-v1. The platform rejects editing, pausing/resuming, restarting, and memory adjustment for existing Flows without this marker. Review their origin and add the marker as described in Upgrade guidance.
  • Flow updates must include the read object's metadata.uid and metadata.resourceVersion; after a conflict, refresh the object and retry. The controller strictly validates child-resource controller ownerReferences to avoid adopting same-named resources that do not belong to the Flow.
  • Stops automatically converting native Deployments into new Flows. HPA write-back for an existing Flow requires the Flow to be active and its Deployment to reflect the current Flow version. Use the new Workloads API to manage native resources rather than relying on automatic Flow creation.

Metering and value reports​

  • Metering settings use versioned storage with revision-conflict checks on writes. Prices retain their original currency and effective-time information and are displayed in the selected currency, with improved conversion precision and concurrent-update handling. Existing settings are not migrated automatically; back them up and configure them again after upgrading.
  • Investment amounts distinguish “not provided” from an explicit zero: an omitted amount preserves the existing value; explicitly setting 0 clears it. Value reports add the equivalent number of servers saved, calculated at eight GPUs per server.
  • Cluster energy reports can read NVIDIA DCGM exporter's DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION. The UI shows GPU-board energy and the API also returns the gpuEnergyCoverageRatio sampling coverage. The metric must be collected. It is not whole-server or data-center energy use and does not imply equivalent energy data for other vendors.

Vendor integrations and daily operations​

  • Adds Iluvatar vGPU workload-resource processing and pre-start checks, including model-specific resource keys and memory units. See the compatibility table for prerequisites.
  • Adds Ascend form inputs for Turbo, runtime memory expansion, and task priority, with corresponding backend parameters. Each requires its own plugin and Enterprise companion versions; upgrading only the platform is insufficient. Soft partitioning and static core-share settings already existed in the comparison baseline.
  • Adds HCU resource and monitoring integration for physical devices and workload usage. Workload curves depend on exporter Pod association and the Deployment → ReplicaSet → Pod ownership chain; they cover Deployments and Flow-generated Deployments, not Jobs, StatefulSets, or LeaderWorkerSets. Whole-card usage is not a substitute for workload usage.
  • A member cluster without Gateway API can now be connected and used for workloads that do not require gateway networking. SSH still requires Gateway/TCPRoute; Jupyter and VS Code still require Gateway/HTTPRoute. Control-plane Gateway requirements are unchanged.
  • Adds a timeout budget to live monitoring in the cluster list so basic cluster information can still be returned when monitoring is slow. The vLLM demo preserves user-edited workload fields and improves progress and result displays; the default UI remains limited to NVIDIA clusters.

Chart changes​

  • Updates the default API Server, Controller Manager, and auth database migration images from v0.14.2 to v0.15.0, and the UI from v0.11.1 to v0.12.1.
  • Adds monitoring.vendorServiceMonitor.enableHygonServicemonitor, default false. When enabled, it collects the HCU exporter and converts physical temperature, power, memory, core usage, and vHCU workload metrics into platform monitoring metrics.
  • Expands discovery for multiple vendor ServiceMonitors to include hami-system; the HCU ServiceMonitor selects Services in monitoring or hami-system. The PPU scrape port name changes from monitorport to metrics; existing Services must match.
  • Adds the HCU exporter to Prometheus federation and, when HCU is enabled, Pod/ReplicaSet ownership metrics for workload association. Ascend monitoring rules map exporter model Ascend910-Ascend-V1 to platform model Ascend910C.
  • The Chart package diff adds no CRDs, RBAC, or SQLite migration scripts. The resource-pool and native-workload software changes come from the backend image upgrade; check that external CRDs and companion services are available before enabling those features.

Known issue​

IssueImpactWorkaroundFixed in
Workload routes do not correctly inherit the site domainFlow and CloudShell routes generated by the default backend v0.15.0 lack the site hostname, and the vLLM demo route remains fixed at dashboard.hami.run. With a custom site domain, Jupyter and other workload paths may match the platform page and return 403; the demo may also be inaccessible at the current domain.Use a fixed default backend. Prefer the confirmed generally available Chart 0.21.3; 0.21.1 did not update the backend, and 0.21.2 fixes the gateway issue but has a separate UI GPU-form issue.Chart 0.21.2, default backend v0.15.1

The gateway issue was confirmed from source corresponding to the published default image and the subsequent fix. Whether it occurs also depends on the domain, Gateway, and route configuration. Source confirmation is not equivalent to full cluster acceptance testing. The UI GPU resource-format issue in Chart 0.21.2 does not apply to this release's default UI v0.12.1 and backend v0.15.0 combination.

Upgrade guidance​

Check components and prerequisites before upgrading​

  • Check apiserver.image.tag, controllerManager.image.tag, auth.image.tag, and ui.image.tag so old values do not continue pinning the comparison-baseline images. For a private registry, global.imageRegistry overrides component image.registry; use all component images for the selected release. For a direct upgrade to 0.21.3, use the component combination listed on that release page.
  • Before enabling resource pools, install the required CRDs, prepare the Enterprise scheduler and device plugins, and then install RPM. RPM's hami.existingConfigMap must point to the ConfigMap actually used by the scheduler and containing device-config.yaml; runtime pool-selection configuration must be readable and writable. Update RPM after device configuration changes.
  • For the earliest NVIDIA/Ascend pool combination, prefer RPM Chart 0.0.5. With 0.0.4, set image.repository=ghcr.io/dynamia-ai/resource-pool-manager and image.tag=v0.0.1. Ascend in RPM Chart 0.0.5 uses hami.ascendEnabled=true; from 0.0.6, use devices.ascend.enabled=true. HCU in 0.0.6 uses devices.hygon.enabled=true; set the plugin's RESOURCE_REGISTER_STRATEGY=hami. These minimum combinations do not apply to DRA mode.
  • HCU monitoring requires platform monitoring, the vendor ServiceMonitor, and the HCU switch. The official HCU exporter manifest uses kube-system, which is outside this release's default discovery namespaces; deploy it in or move it to monitoring/hami-system, preserving the Service label app.kubernetes.io/name=hcu-exporter and port name metrics. Confirm member-cluster federation includes HCU and Pod ownership metrics.

Migrate existing Flows and clients​

Before upgrading, export existing Flows by member cluster and check their source and Deployment ownership. Use the matching hack/migrate_kantaloupeflow.py script with its plan, apply, and verify workflow: generate and review the manifest, run the default server-side dry-run, then use --execute to add source markers only after confirmation, and finally verify each object. Requires Python 3.9+, kubectl, and corresponding read/write permissions in target clusters. Obtain the script and instructions matching this release from the delivery team.

  • A same-named Deployment created before the Flow and with a controller ownerReference exactly pointing to that Flow is treated as a historical automatically converted object and is not marked as form-created. Other unmarked objects are listed as legacy form candidates for review. Kubernetes metadata alone cannot fully reconstruct historical origin; do not mark all Flows in bulk.
  • The migration script adds only the top-level source annotation; it does not modify specs or child-resource ownership. Retain each object's UID, cluster identity, and execution result. Partial failures do not roll back successful items; review and retry only unfinished items.
  • Custom Flow clients must preserve UID and resourceVersion during updates and keep the namespace consistent. On Aborted, read the object again before editing; do not bypass concurrency checks.
  • Check ownerReferences on historical Deployments, Services, Routes, and ConfigMaps. Missing or incorrect ownership can block reconciliation; source migration does not adopt these resources automatically. Manage native workloads through the Workloads API rather than relying on automatic Flow generation.

Migrate metering settings and retain rollback data​

This release switches the metering ConfigMap from kantaloupe-metering to kantaloupe-metering-v2. The new store uses schemaVersion 2 and does not automatically read or migrate old settings and prices. Back up the old ConfigMap, currency, investment amount, unit prices, and effective times before upgrading. After upgrading, restore global metering settings and per-model prices separately, and verify currency, exchange rates, and investment amounts. Custom clients that call the settings API must first read the revision and submit expected_revision, handling concurrent-update conflicts.

When saved from the price page, a price uses the current time as its effective time; re-entering the current unit price does not restore its historical effective time. Billing windows before the first price in the new store may not be priced. To preserve historical billing continuity, use the price-update API to pass each original effective_at from the backup, rebuild each model's price revisions, and verify currency, exchange rates, amounts, and historical bills. The API accepts original effective times, but this release provides no automatic migration. Do not treat re-entering prices in the UI as completing historical price migration; finish backfill and verification first.

Keep the old ConfigMap, Helm values, and Flow migration manifest for rollback. Helm rollback does not convert new metering configuration back to the old format or automatically remove Flow source markers. Although the auth database migration image is upgraded with the application, no SQLite migration script was added between these two backend versions. Metering migration and auth-database migration are separate concerns.

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

Expand values table
KeyTypeDefaultDescription
apiserver.affinityobject{}apiserver affinity settings
apiserver.clusterAPIBurstint100Burst to use while talking with cluster kube-apiserver
apiserver.clusterAPIQPSint50QPS to use while talking with cluster kube-apiserver
apiserver.image.pullPolicystring"IfNotPresent"kantaloupe image pull policy
apiserver.image.pullSecretslist[]Specify docker-registry secret names as an array
apiserver.image.registrystring"ghcr.io"kantaloupe image registry
apiserver.image.repositorystring"dynamia-ai/kantaloupe-apiserver"kantaloupe image repository
apiserver.image.tagstring"v0.15.0"kantaloupe image tag (immutable tags are recommended)
apiserver.labelsobject{}apiserver labels
apiserver.leaderElection.enabledbooltrueEnable apiserver leader election for auth singleton bootstrap when auth.storeBackend=crd
apiserver.leaderElection.leaseDurationstring"15s"Lease duration for apiserver leader election
apiserver.leaderElection.renewDeadlinestring"10s"Renew deadline for apiserver leader election
apiserver.leaderElection.resourceNamespacestring""Namespace of the Lease object; empty means use the release namespace
apiserver.leaderElection.retryPeriodstring"2s"Retry period for apiserver leader election
apiserver.livenessProbe.enabledboolfalseEnable livenessProbe on apiserver containers
apiserver.logLevelint4apiserver glog verbosity level (0=minimal, 4=info, 5=debug)
apiserver.meteringGRPCAddressstring""Optional upstream metering gRPC service address. Leave empty to disable metering APIs
apiserver.nodeSelectorobject{}apiserver node labels for pod assignment
apiserver.podAnnotationsobject{}apiserver pod annotations
apiserver.podLabelsobject{}apiserver pod labels
apiserver.prometheusAddrstring""Prometheus server address for apiserver metrics querying
apiserver.readinessProbe.enabledboolfalseEnable readinessProbe on ui containers
apiserver.replicaCountint1apiserver target replica count
apiserver.resourcesobject{}apiserver resource requests and limits
apiserver.service.nodePortint31800
apiserver.service.portint8000
apiserver.service.typestring"ClusterIP"
apiserver.tolerationsobject{}apiserver tolerations for pod assignment
auth.apiserverServiceAccountNamestring""ServiceAccount name of the kantaloupe-apiserver, used by the auth assignment admission webhook to validate the requester identity. Defaults to the release fullname.
auth.bootstrapAdminEmailstring"[email protected]"Bootstrap PlatformAdmin email address
auth.bootstrapAdminFullNamestring"Platform Administrator"Bootstrap PlatformAdmin full name (display name)
auth.bootstrapAdminPasswordstring"admin12345"Bootstrap admin password (plain text, dev only)
auth.bootstrapAdminUsernamestring"bootstrap-platform-admin"Bootstrap PlatformAdmin username
auth.crdAuditWindowSizeint1000Max number of audit CRDs retained by the apiserver write path
auth.dbPathstring"/data/kantaloupe/auth.db"SQLite database path for auth data when auth.storeBackend=sqlite
auth.dryRunboolfalseAllow requests without enforcing auth; inject bootstrap admin when no valid token is provided
auth.enabledbooltrueEnable kantaloupe auth (JWT login, RBAC, audit)
auth.existingAuthSecretstring""Name of an existing K8s Secret with keys "jwt-secret" and "bootstrap-admin-password" (use instead of plain-text values for production)
auth.image.pullPolicystring"IfNotPresent"db-migrate image pull policy for sqlite backend
auth.image.registrystring"ghcr.io"db-migrate image registry for sqlite backend
auth.image.repositorystring"dynamia-ai/kantaloupe-db-migrate"db-migrate image repository for sqlite backend
auth.image.tagstring"v0.15.0"db-migrate image tag for sqlite backend
auth.jwtSecretstring"your-own-jwt-secret"JWT signing secret (plain text, dev only)
auth.persistence.enabledboolfalseEnable persistence using PVC for sqlite backend (PV is dynamically provisioned via cluster default StorageClass)
auth.persistence.existingClaimstring""Name of an existing PVC to use for sqlite backend (if set, a new PVC will not be created)
auth.persistence.sizestring"1Gi"PVC storage size for sqlite backend
auth.persistence.storageClassstring""PVC storage class for sqlite backend (empty = use cluster default StorageClass for dynamic PV provisioning)
auth.storeBackendstring"crd"Auth store backend. Supported values: crd, sqlite
cloudtty.enabledbooltrue
controlPlaneNamestring"control-plane"
controllerManager.affinityobject{}controllerManager affinity settings
controllerManager.enablePromoteKantaloupeflowControllerboolfalseAutomatically create KantaloupeFlow CRs for existing GPU deployments in member clusters.
controllerManager.image.pullPolicystring"IfNotPresent"kantaloupe image pull policy
controllerManager.image.pullSecretslist[]Specify docker-registry secret names as an array
controllerManager.image.registrystring"ghcr.io"kantaloupe image registry
controllerManager.image.repositorystring"dynamia-ai/kantaloupe-controller-manager"kantaloupe image repository
controllerManager.image.tagstring"v0.15.0"kantaloupe image tag (immutable tags are recommended)
controllerManager.labelsobject{}controllerManager labels
controllerManager.livenessProbe.enabledboolfalseEnable livenessProbe on controllerManager containers
controllerManager.metricsPortint31001
controllerManager.nodeSelectorobject{}controllerManager node labels for pod assignment
controllerManager.podAnnotationsobject{}controllerManager pod annotations
controllerManager.podLabelsobject{}controllerManager pod labels
controllerManager.prometheusAddrstring""The Prometheus-compatible query endpoint for controller-manager. If empty, uses the default value from Go code.
controllerManager.readinessProbe.enabledboolfalseEnable readinessProbe on controllerManager containers
controllerManager.replicaCountint1controllerManager target replica count
controllerManager.resourcesobject{}controllerManager resource requests and limits
controllerManager.tolerationsobject{}controllerManager tolerations for pod assignment
controllerManager.webhook.certDirstring"/var/run/kantaloupe/webhook-certs"
controllerManager.webhook.certNamestring"tls.crt"
controllerManager.webhook.enabledbooltrue
controllerManager.webhook.keyNamestring"tls.key"
controllerManager.webhook.portint9443
controllerManager.webhook.servicePortint443
fullnameOverridestring"kantaloupe"String to fully override the fullname template
gateway.apiserverCorsobject{"allowCredentials":false,"allowHeaders":["authorization","content-type","accept","origin"],"allowMethods":["GET","POST","PUT","PATCH","DELETE","OPTIONS"],"allowOrigins":[],"enabled":false,"exposeHeaders":[],"maxAge":null}Optional CORS policy attached only to the apiserver HTTPRoute (/apis)
gateway.apiserverCors.allowCredentialsboolfalseWhether credentialed cross-origin requests are allowed
gateway.apiserverCors.allowHeaderslist["authorization","content-type","accept","origin"]Allowed request headers returned on CORS preflight responses
gateway.apiserverCors.allowMethodslist["GET","POST","PUT","PATCH","DELETE","OPTIONS"]Allowed methods returned on CORS preflight responses
gateway.apiserverCors.allowOriginslist[]Allowed browser origins for apiserver CORS; required when enabled
gateway.apiserverCors.enabledboolfalseEnable Envoy Gateway SecurityPolicy-based CORS on the apiserver route
gateway.apiserverCors.exposeHeaderslist[]Response headers exposed to browser JavaScript
gateway.apiserverCors.maxAgestringnilOptional browser preflight cache max age in seconds
gateway.apiserverHostnameslist[]Dedicated external hostnames for direct apiserver access, separate from gateway.hostnames (the UI/site domain). When non-empty, a dedicated HTTPRoute routes these hosts to the apiserver; they must be covered by the HTTPS listener's TLS certificate.
gateway.classNamestring"kantaloupe"GatewayClass name
gateway.enabledbooltrueEnable Gateway API resources
gateway.envoyobject{"proxy":{"image":{"pullSecrets":[],"registry":"","repository":"","tag":""}},"service":{"ports":{"http":{"nodePort":30080},"https":{"nodePort":30443}},"type":"NodePort"}}Envoy Gateway implementation details
gateway.envoy.proxy.image.pullSecretslist[]Image pull secrets for Envoy proxy pods
gateway.envoy.proxy.image.registrystring""Envoy proxy image registry
gateway.envoy.proxy.image.repositorystring""Envoy proxy image repository. When set without a tag, renders the EnvoyProxy imageRepository field.
gateway.envoy.proxy.image.tagstring""Envoy proxy image tag. When set, renders a complete EnvoyProxy image reference.
gateway.envoy.serviceobject{"ports":{"http":{"nodePort":30080},"https":{"nodePort":30443}},"type":"NodePort"}Envoy service configuration
gateway.envoy.service.ports.httpobject{"nodePort":30080}HTTP port configuration
gateway.envoy.service.ports.http.nodePortint30080HTTP NodePort
gateway.envoy.service.ports.httpsobject{"nodePort":30443}HTTPS port configuration
gateway.envoy.service.ports.https.nodePortint30443HTTPS NodePort
gateway.envoy.service.typestring"NodePort"Envoy service type (LoadBalancer or NodePort)
gateway.hostnameslist[]External hostnames for the Gateway
gateway.ipAddressstring""Gateway IP address
gateway.listenerslist[{"name":"http","port":80,"protocol":"HTTP"}]Gateway listeners configuration
global.imagePullSecretslist[]Global Docker image pull secrets
global.imageRegistrystring""Global Docker image registry
hamiNamespacestring"hami-system"
hook.image.pullPolicystring"IfNotPresent"CRD hook image pull policy
hook.image.pullSecretslist[]Specify docker-registry secret names as an array
hook.image.registrystring"ghcr.io"CRD hook image registry
hook.image.repositorystring"cloudtty/cloudshell"CRD hook image repository
hook.image.tagstring"v0.8.9"CRD hook image tag (immutable tags are recommended)
installCRDsbooltruedefine flag whether to install CRD resources
monitoring.enabledbooltrue
monitoring.hamiServiceMonitor.enabledbooltrue
monitoring.serviceMonitorLabelsobject{}Labels added to ServiceMonitor and PrometheusRule resources for discovery by Prometheus-compatible operators. When empty, defaults to release: prometheus; providing any labels replaces that fallback. The built-in app, role, and control-plane labels cannot be overridden.
monitoring.vendorServiceMonitor.enableAMDServiceMonitorboolfalseEnable AMD GPU Operator exporter discovery and AMD recording rules in the control plane. Required for monitoring AMD devices in local or member clusters.
monitoring.vendorServiceMonitor.enableAlibabaPPUServicemonitorboolfalseEnable Alibaba PPU exporter discovery and Alibaba PPU recording rules in the control plane. Required for monitoring Alibaba PPU devices in local or member clusters.
monitoring.vendorServiceMonitor.enableAscendServicemonitorboolfalseEnable Ascend exporter discovery and Ascend recording rules in the control plane. Required for monitoring Ascend devices in local or member clusters.
monitoring.vendorServiceMonitor.enableEnflameServicemonitorboolfalseEnable Enflame GCU exporter discovery and Enflame recording rules in the control plane. Required for monitoring Enflame devices in local or member clusters.
monitoring.vendorServiceMonitor.enableHygonServicemonitorboolfalseEnable HCU exporter discovery and Hygon device recording rules in the control plane. Required for monitoring Hygon devices in local or member clusters. Discovers hcu-exporter in the monitoring namespace.
monitoring.vendorServiceMonitor.enableIluvatarServicemonitorboolfalseEnable Iluvatar ix-exporter and vgpu-manager discovery and Iluvatar recording rules in the control plane. Required for monitoring Iluvatar devices in local or member clusters.
monitoring.vendorServiceMonitor.enableMetaxServicemonitorboolfalseEnable MetaX exporter discovery and MetaX recording rules in the control plane. Required for monitoring MetaX devices in local or member clusters.
monitoring.vendorServiceMonitor.enableNvidiaServicemonitorbooltrueEnable NVIDIA exporter discovery and NVIDIA recording rules in the control plane. Required for monitoring NVIDIA devices in local or member clusters.
monitoring.vendorServiceMonitor.enabledbooltrueCreate vendor ServiceMonitor templates and recording rules for enabled vendors.
mpu.enabledboolfalse
mpu.image.pullPolicystring"IfNotPresent"MPU image pull policy
mpu.image.pullSecretslist[]
mpu.image.registrystring"ghcr.io"
mpu.image.repositorystring"dynamia-ai/mpu"
mpu.image.tagstring"dev-ubuntu24.04"
nameOverridestring""String to partially override the fullname template (will maintain the release name)
ui.affinityobject{}ui affinity settings
ui.apiBackendURLstring""Optional backend address for UI API requests. Leave empty to use same-origin requests
ui.forceChineseboolfalseForce UI to display Chinese language
ui.image.pullPolicystring"IfNotPresent"kantaloupe image pull policy
ui.image.pullSecretslist[]Specify docker-registry secret names as an array
ui.image.registrystring"ghcr.io"kantaloupe image registry
ui.image.repositorystring"dynamia-ai/kantaloupe-ui"kantaloupe image repository
ui.image.tagstring"v0.12.1"kantaloupe image tag (immutable tags are recommended)
ui.labelsobject{}ui labels
ui.livenessProbe.enabledboolfalseEnable livenessProbe on ui containers
ui.nodeSelectorobject{}ui node labels for pod assignment
ui.podAnnotationsobject{}ui pod annotations
ui.podLabelsobject{}ui pod labels
ui.readinessProbe.enabledboolfalseEnable readinessProbe on ui containers
ui.replicaCountint1ui target replica count
ui.resourcesobject{}ui resource requests and limits
ui.service.nodePortint31300
ui.service.portint80
ui.service.typestring"ClusterIP"
ui.tolerationsobject{}ui tolerations for pod assignment