跳到主要内容

HAMi AI Platform Chart 0.21.0

发布时间:2026-09-30(UTC)

版本状态:有已知问题

本版将后端升级至 v0.15.0、UI 升级至 v0.12.1,增加资源池管理、原生工作负载 API 和 HCU 监控,并调整计量配置与存量工作负载的操作规则。默认后端仍有工作负载网关路由问题;该问题在 Chart 0.21.2 修复,升级目标建议采用已确认正式可用的 Chart 0.21.3。

版本比较基线本版
Chart0.20.60.21.0
appVersion0.14.20.15.0
API Serverv0.14.2v0.15.0
Controller Managerv0.14.2v0.15.0
数据库迁移组件(启用 SQLite 认证存储时)v0.14.2v0.15.0
UIv0.11.1v0.12.1

比较基线为本版之前最近的正式 Chart 0.20.6。下述软件变化以两端实际默认镜像为准。

HAMi Enterprise 兼容性​

下表按平台实际使用的接口区分最低配套版本。资源池、厂商插件、监控组件分别安装;单项指标或可选功能的门槛不构成整个平台的统一最低版本。

功能或使用场景最低可用 HAMi Enterprise 版本配套要求与适用范围
NVIDIA HAMi-core 单个常规容器的设备分配、调度容量、已分配资源与工作负载使用量监控(不含 init container)v2.9.0-rc0配套 Enterprise 调度器、NVIDIA 设备插件与 vGPU Monitor,并采集调度器和设备插件监控端点。
NVIDIA 显存超卖倍数历史趋势v2.10.0-r0调度器提供 hami_gpu_memory_oversell_factor。这里是倍数指标的最低版本,不是显存超卖运行能力的首次版本。
AMD 已分配工作负载的容器核心百分比v2.10.0-r0已注册并由 HAMi 分配的 AMD 设备,调度器将物理 CU 数转换成 hami_vgpu_core_allocated_ratio 百分比;物理设备使用量仍依赖厂商监控组件。
NVIDIA/Ascend 常规业务容器资源池:设备归属、命名空间绑定、CPU/内存与设备配额、显式或 binpack/spread 选池v2.9.0-rc0CRD Chart 0.4.2、Resource Pool Manager 应用 v0.0.1;默认安装使用 RPM Chart 0.0.5。extender 模式、Kubernetes >=1.30.0-0,设备已注册;最低组合对应 amd64 制品。
NVIDIA 池内 GPU mutex/numa 或逗号组合策略v2.10.0-r0使用上述 CRD 与 RPM 配套;区别于 RPM 的 binpack/spread 选池策略。
Ascend soft vNPU Turbo 与任务优先级v2.9.0-rc0Ascend 插件与 libvnpu 均为 v1.4.2(默认插件 Chart 0.2.2),启用 devices.ascend.hamiVnpuCore=true 或对应节点配置。Turbo 限可信、独占算力任务,每次申请一张 vNPU 和 100% 核心,保留显存限制;切换需重建 Pod。
Ascend soft vNPU 运行时显存自动扩容v2.10.0-r2插件/libvnpu v1.4.2、默认插件 Chart 0.2.2,Kubernetes >=1.30、scheduler.admissionWebhook.enabled=true、关闭 DRA、使用 hami-core,每业务容器一张 vNPU。只扩不缩,Pod 声明不变;审批拒绝或超时可能导致 OOM。
Ascend910C 完整偶数芯片模块对分配v2.10.0-r0Dynamia Ascend 设备插件最低 v1.3.0,匹配机型配置与驱动。此处是模块配对分配下限;软切分高级能力另按上述条件选择配套。
天数智芯单个常规容器、单卡 vGPU 的资源分配与工作负载使用量v2.9.0-rc0厂商 GPU Manager Chart 最低 3.0.7,默认镜像 v3.0.7-vcuda-v4.4.0-3,匹配 CoreX/vCUDA。显存资源单位为 256 MiB;平台启动前处理要求显式 Command、可写 CoreX 目录及厂商注入库。此下限不覆盖多卡切分或混合多容器场景。
天数智芯物理设备完整监控指标不适用(独立 exporter 遥测)默认指标与标签协议需要 ix-exporter 最低 4.3.0,包含节点标签与错误指标;统一的 HAMi 设备清单和分配信息仍依赖对应调度配套。
HCU 注册、分配及资源池v2.10.0-r3HCU 设备插件 v3.0.0,设置 RESOURCE_REGISTER_STRATEGY=hami;资源池另需 CRD Chart 0.4.2、RPM 应用 v0.0.2(默认 RPM Chart 0.0.6)、extender 模式及 Kubernetes >=1.30.0-0。最低组合对应 amd64 制品。
HCU 物理设备与 Deployment 工作负载使用量监控不适用(独立 exporter 遥测)HCU exporter 最低 v3.0.0,配套 HCU DCGM 3.0.0,已确认 amd64 制品。工作负载曲线限 Deployment(含 Flow 生成的 Deployment),要求 CONNECT_K8S=true、kubelet 目录挂载、Pod 归属标签及 Deployment → ReplicaSet → Pod 指标链;启用本版 HCU 采集规则,保留指标名与标签;通过 HAMi 注册、分配 HCU 的条件另见上一行。

HAMi Enterprise 的 rc 后缀不代表测试版或预发布版。v2.9.0-rc0 的旧镜像当前不可取得,新部署需选择满足接口条件且制品可取得的版本;镜像可获取性不改变已确认的最低接口版本。

Ascend 插件/libvnpu v1.4.2 于 2026-10-09 正式发布,晚于本版 Chart。本表包含这类发布后才交付的配套版本,它们说明使用相应能力所需的最低组合,不表示 Chart 0.21.0 发布当天已具备全部配套,也不代表平台会自动安装这些组件。

软件变更​

资源池与资源视图​

  • 增加资源池页面和管理接口,可查看池内设备、绑定命名空间、设置 CPU/内存与设备配额,并在工作负载中选择和查看所属资源池。选池支持显式指定及 binpack/spread;实际准入和资源分配依赖上表中的 RPM 与 Enterprise 配套。
  • 区分设备物理容量与调度容量,补充已分配、已使用、剩余资源及比例,调整节点超卖和趋势图的显示。NVIDIA 超卖倍数趋势、AMD 核心百分比分别受对应指标版本约束。
  • 设备许可统计纳入已注册但未获许可的设备,页面区分激活与未激活状态。补充 NVIDIA、Ascend、HCU 工作负载 Pending 原因诊断,帮助区分资源不足与配套条件问题。

原生工作负载 API 与存量 Flow 管理​

  • 增加原生 Workloads API,可校验、创建、查询和删除 Deployment、StatefulSet、Job、LeaderWorkerSet,并随 YAML 提交同命名空间的 Service、PVC、ConfigMap、Secret。LeaderWorkerSet 仍需集群安装对应 CRD 和控制器。平台通过 kantaloupe.dynamia.io/observed: "true" 标签纳管,资源生命周期由 Kubernetes 或对应控制器负责。
  • 原生创建接口先执行服务端 dry-run;批量创建不提供跨资源事务,部分成功时保留已创建对象。默认 UI v0.12.1 仍使用 KantaloupeFlow 表单,本版原生 YAML 能力通过 API 提供。
  • 新建表单 Flow 自动记录 kantaloupe.dynamia.io/creation-source: form-v1。存量 Flow 缺少该标记时,平台拒绝编辑、暂停/恢复、重启和显存调整,需要按升级说明核对来源后补录。
  • 更新 Flow 必须携带读取到的 metadata.uid 和 metadata.resourceVersion,冲突后需刷新对象重试。控制器严格校验子资源的 controller ownerReference,避免接管同名但不属于该 Flow 的资源。
  • 停止将原生 Deployment 自动转换成新 Flow。已有 Flow 的 HPA 回写要求 Flow 未暂停,且 Deployment 已同步当前 Flow 版本;原生资源通过新的 Workloads API 接入。

计量与价值报告​

  • 计量设置使用新的版本化存储,写入时增加修订号冲突检查。价格保留原始币种和生效信息,按目标币种展示,改进换算精度和并发更新处理。旧设置不会自动迁移,升级前需备份并重新配置。
  • 投资金额支持区分“未提供”与“显式清零”:未提供时保留已有金额,显式设置为 0 时清除。价值报告增加按每台服务器 8 张 GPU 口径计算的等效节省服务器数量。
  • 集群级能耗报告可读取 NVIDIA DCGM exporter 的 DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION,页面展示 GPU 板卡能耗,API 另返回 gpuEnergyCoverageRatio 采样覆盖比例。需要采集对应指标;这不是整机或机房用电量,也不代表其他厂商已提供相同能耗数据。

厂商接入与日常操作​

  • 增加天数智芯 vGPU 的工作负载资源处理与启动前检查,支持其型号化资源键和显存单位;配套版本见兼容矩阵。
  • Ascend 表单增加 Turbo、显存自动扩容和任务优先级等配置入口,后端传递对应参数;这些入口需满足各自插件与 Enterprise 配套条件,不能只升级平台后直接启用。软切分与静态算力份额配置在比较基线中已存在。
  • 增加 HCU 资源与监控接入,将物理设备及工作负载使用量纳入平台展示。工作负载曲线依赖 exporter 的 Pod 关联信息及 Deployment → ReplicaSet → Pod 归属链,覆盖 Deployment 和 Flow 生成的 Deployment;本版这组曲线不关联 Job、StatefulSet 或 LeaderWorkerSet,也不能用整卡使用量代替。
  • 成员集群未安装 Gateway API 时,可接入并管理不要求网关网络的工作负载。SSH 仍需 Gateway/TCPRoute,Jupyter、VSCode 仍需 Gateway/HTTPRoute;控制面集群的 Gateway 要求不变。
  • 集群列表的实时监控补充设置超时预算,监控响应较慢时仍返回集群基本信息。vLLM 演示保留用户编辑的工作负载字段,并改进执行进度和结果展示;默认界面仍限定 NVIDIA 集群。

Chart 变更​

  • 默认 API Server、Controller Manager、认证数据库迁移镜像由 v0.14.2 更新为 v0.15.0,UI 由 v0.11.1 更新为 v0.12.1。
  • 增加 monitoring.vendorServiceMonitor.enableHygonServicemonitor,默认 false。启用后采集 HCU exporter,并将物理温度、功耗、显存、核心使用量与 vHCU 工作负载指标转换为平台监控指标。
  • 多个厂商 ServiceMonitor 的发现范围增加 hami-system;HCU ServiceMonitor 选择 monitoring 或 hami-system 中的 Service。PPU 采集端口名由 monitorport 调整为 metrics,现有 Service 需匹配。
  • Prometheus 联邦采集加入 HCU exporter,并在启用 HCU 时加入 Pod/ReplicaSet 归属指标,以关联工作负载。Ascend 监控规则将 exporter 的 Ascend910-Ascend-V1 型号映射为平台的 Ascend910C。
  • 本次 Chart 包差异未新增 CRD、RBAC 或 SQLite 数据库迁移脚本。上述资源池和原生工作负载的软件变化来自实际后端镜像升级;启用相关功能时仍需检查外部 CRD 与配套服务是否齐备。

已知问题​

问题影响范围规避方法修复版本
工作负载路由未正确继承站点域名默认后端 v0.15.0 生成的 Flow 和 CloudShell 路由缺少站点主机名,vLLM 演示路由仍固定为 dashboard.hami.run。使用自定义站点域名时,访问 Jupyter 等工作负载路径可能落到平台页面并显示 403,演示路由也可能无法按当前域名访问。采用修复后的默认后端。建议直接评估已确认正式可用的 Chart 0.21.3;0.21.1 未更新后端,0.21.2 虽修复网关但另有 UI GPU 表单问题。Chart 0.21.2,默认后端 v0.15.1

上述网关问题根据已发布默认镜像对应源码和后续修复确认,具体是否触发还取决于域名、Gateway 与路由配置。此处未将源码确认等同于本版完整集群验收。Chart 0.21.2 的 UI GPU 资源格式问题不适用于本版默认的 v0.12.1 UI 与 v0.15.0 后端组合。

升级说明​

升级前核对组件与配套​

  • 核对 apiserver.image.tag、controllerManager.image.tag、auth.image.tag、ui.image.tag,避免旧 values 继续固定比较基线镜像。使用私有仓库时,global.imageRegistry 覆盖组件的 image.registry,应同步选定版本的所有组件镜像。若直接升级到 0.21.3,应采用该版本页列出的组件组合。
  • 启用资源池前,先安装对应 CRD,准备 Enterprise 调度器和设备插件,再安装 RPM。RPM 的 hami.existingConfigMap 必须指向调度器实际使用且包含 device-config.yaml 的 ConfigMap,运行时选池配置须可读写;设备配置变化后更新 RPM。
  • 最早 NVIDIA/Ascend 资源池组合优先使用 RPM Chart 0.0.5。若使用 0.0.4,需将 image.repository 改为 ghcr.io/dynamia-ai/resource-pool-manager、image.tag 改为 v0.0.1。Ascend 在 RPM Chart 0.0.5 使用 hami.ascendEnabled=true,在 0.0.6 使用 devices.ascend.enabled=true。HCU 在 0.0.6 使用 devices.hygon.enabled=true,并配置插件的 RESOURCE_REGISTER_STRATEGY=hami。这些最低组合不适用于 DRA 模式。
  • HCU 监控需同时启用平台监控、厂商 ServiceMonitor 及 HCU 开关。HCU exporter 官方部署清单使用 kube-system,本版默认发现范围不包含该命名空间;需部署或调整至 monitoring/hami-system,保留 Service 的 app.kubernetes.io/name=hcu-exporter 标签和 metrics 端口名。确认成员集群的联邦采集包含 HCU 与 Pod 归属指标。

迁移存量 Flow 与客户端​

升级前按成员集群导出存量 Flow,检查来源及其 Deployment 归属。使用本版配套迁移脚本 hack/migrate_kantaloupeflow.py 的 plan、apply、verify 流程:先生成并审核清单,执行默认的服务端 dry-run,确认后才以 --execute 补录来源标记,最后逐对象验证。需要 Python 3.9+、kubectl 和目标集群相应读写权限;从交付方取得与本版匹配的脚本及使用说明。

  • 同名 Deployment 创建早于 Flow,且 controller ownerReference 精确指向该 Flow 的对象按历史自动转换对象处理,不补录为表单来源;其他无标记对象按迁移规则列为旧表单候选,仍需审核清单。仅凭 Kubernetes 元数据无法完整还原历史来源,不要给所有 Flow 批量添加标记。
  • 迁移脚本只补录顶层来源 annotation,不修改 spec 或子资源归属。保留每个对象的 UID、集群身份和执行结果;部分失败时已成功项不会自动回滚,核对后重试未完成项。
  • 自定义 Flow 客户端需在更新时保留 UID、resourceVersion,并保证 namespace 一致。遇到 Aborted 应重新读取后再编辑,不要绕过并发检查。
  • 检查历史 Deployment、Service、Route、ConfigMap 的 ownerReference;缺少或错误的归属可能阻断同步,来源迁移不会自动接管它们。原生工作负载应改用 Workloads API,不依赖自动生成 Flow。

迁移计量设置与保留回退资料​

本版将计量 ConfigMap 从 kantaloupe-metering 切换为 kantaloupe-metering-v2,新存储使用 schemaVersion 2,不会自动读取或迁移旧设置和价格。升级前备份旧 ConfigMap 及币种、投资金额、单价和生效时间;升级后分别恢复全局计量设置和各型号价格,核对币种、汇率及投资金额。调用设置 API 的自定义客户端需先读取修订号,再提交 expected_revision,处理并发冲突。

价格页面保存时使用当前时间作为生效时间,因此在页面重填当前单价不会恢复历史价格;早于新存储首条价格的计费窗口可能无法定价。需要保留历史计费连续性时,通过价格更新 API 按备份逐条传入原 effective_at,重建各型号的价格修订,并核对币种、汇率、金额和历史账单。该 API 接受原生效时间,但本版未提供自动迁移流程;完成回填和核验前,不应将页面重填视为历史价格迁移完成。

保留旧 ConfigMap、原 Helm values 和来源迁移清单,以便回退时核对。Helm 回退不会把新版计量配置转换回旧版,也不会自动撤销已补录的 Flow 来源标记。认证数据库迁移镜像虽随应用升级,本次两个后端版本之间未增加 SQLite 迁移脚本;计量配置迁移与认证数据库迁移是不同事项。

查看Chart 与 appVersion 对应关系或软件中心。

Values 说明​

以下参数说明取自 Chart 0.21.0 发布包随附的 README,保留原文。默认配置以该版本的 values.yaml 为准。

展开参数表
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