feat(cluster): update K8s cluster form for new k8s_options API
Align the Kubernetes cluster create/edit page with the backend's promotion of operator/K8s knobs out of worker_config and the removal of gpuVendorOverrides. - k8s_options: drop gpuVendorOverrides; add operatorImage, namespace, and gpuInstanceOptions (presence = GPU instances enabled, carrying an optional gpuInstancesAccessStaticAddress). - Add a top-level system_default_container_registry to the cluster type (promoted out of worker_config on the backend). - Group all k8s_options fields into a new top-level "K8s Deployment Options" collapsible section (sibling of Advanced, rendered above it), with namespace first followed by volume mounts, image credentials, node selector, operator image, and GPU instances. - Drive the GPU instances toggle from local state instead of Form.useWatch (an unregistered nested path never re-rendered, leaving the switch unresponsive); use antd's borderless Switch and keep the label/switch grouped together. Namespace gains a gpustack-system placeholder. - Remove the gpuVendorOverrides validation from the form and the stale operator_image / namespace / gpu_instances_access_static_address hints from the worker_config YAML template and JSON schema. - Add-worker GPU picker: always allow multi-select for K8s clusters (runtime node selectors are now auto-derived), dropping the override-gating, cluster fetch, and single-only hint. - Update locales (en/zh/ja/ru/tr) for the removed and added keys.
This commit is contained in:
@@ -68,8 +68,6 @@ export default {
|
||||
'<span class="bold-text">非 Docker</span> 集群请前往集群页面注册集群或管理节点池。',
|
||||
'clusters.addworker.selectGPU': '选择 GPU 厂商',
|
||||
'clusters.addworker.selectGPU.multiTag': '可多选',
|
||||
'clusters.addworker.selectGPU.singleOnly':
|
||||
'当前所选厂商未在集群的 GPU 厂商覆盖(override node selector)中配置,仅支持单选。如需多选,请先选择 override 中已配置的厂商。',
|
||||
'clusters.addworker.checkEnv': '检查环境',
|
||||
'clusters.addworker.specifyArgs': '指定参数',
|
||||
'clusters.addworker.runCommand': '运行指令',
|
||||
@@ -157,6 +155,7 @@ export default {
|
||||
'clusters.volume.configMap.name': '配置名称',
|
||||
'clusters.volume.configMap.optional': '可选',
|
||||
'clusters.volume.add': '添加卷挂载',
|
||||
'clusters.k8sOptions.title': 'K8s 部署选项',
|
||||
'clusters.imageCredentials.title': '镜像仓库凭证',
|
||||
'clusters.imageCredentials.add': '添加凭证',
|
||||
'clusters.imageCredentials.registry': '镜像仓库地址',
|
||||
@@ -165,16 +164,15 @@ export default {
|
||||
'clusters.nodeSelector.title': '节点选择器',
|
||||
'clusters.nodeSelector.tip':
|
||||
'应用到每个 worker DaemonSet 的 Pod nodeSelector,只有标签匹配的节点才会被调度运行 worker。',
|
||||
'clusters.gpuVendorOverrides.title': 'GPU 厂商覆盖配置',
|
||||
'clusters.gpuVendorOverrides.validate.emptySelector':
|
||||
'{vendor} 的覆盖配置至少需要一项 nodeSelector —— 空覆盖会让多 vendor manifest 无法定位该 runtime 的节点。',
|
||||
'clusters.gpuVendorOverrides.validate.duplicate':
|
||||
'{v1} 与 {v2} 的覆盖配置使用了完全相同的 nodeSelector。每个 vendor 必须对应不同的节点集,否则它们的 worker DaemonSet 会相互争抢同一批节点。',
|
||||
'clusters.gpuVendorOverrides.validate.keyConflict':
|
||||
'{vendor} 的覆盖配置重用了基础节点选择器中已有的 key({keys})—— 这会让 CPU worker 同时"要求"和"禁止"这些 key,永远无法被调度。',
|
||||
'clusters.gpuVendorOverrides.tip':
|
||||
'集群中存在多个 GPU 厂商时必填。每项的 nodeSelector 将该厂商的 worker DaemonSet 固定到匹配的节点,同时 CPU worker 通过 DoesNotExist 节点亲和性避开这些节点。',
|
||||
'clusters.gpuVendorOverrides.add': '添加覆盖配置',
|
||||
'clusters.gpuVendorOverrides.vendor': 'GPU 厂商',
|
||||
'clusters.gpuVendorOverrides.nodeSelector': '节点选择器'
|
||||
'clusters.operatorImage.title': 'Operator 镜像',
|
||||
'clusters.operatorImage.tip':
|
||||
'GPUStack Operator 容器镜像的覆盖值。留空则使用服务端默认值。',
|
||||
'clusters.namespace.title': '命名空间',
|
||||
'clusters.namespace.tip':
|
||||
'集群清单渲染所使用的 Kubernetes 命名空间。留空则使用 gpustack-system。',
|
||||
'clusters.gpuInstances.title': 'GPU 实例',
|
||||
'clusters.gpuInstances.tip': '为该集群启用 GPU 实例支持。',
|
||||
'clusters.gpuInstances.staticAddress': '静态访问地址',
|
||||
'clusters.gpuInstances.staticAddress.tip':
|
||||
'Operator 访问该集群 GPU 实例所使用的静态地址(例如 LoadBalancer VIP)。可选。'
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user