chore: update description for adding worker

This commit is contained in:
jialin
2025-11-06 19:38:01 +08:00
parent 7334bcdf83
commit fadff34f5f
9 changed files with 79 additions and 26 deletions
+1
View File
@@ -2,6 +2,7 @@ export default {
'dashboard.title': 'Dashboard',
'dashboard.workers': 'Workers',
'dashboard.models': 'Models',
'dashboard.clusters': 'Clusters',
'dashboard.totalgpus': 'GPUs',
'dashboard.allocategpus': 'Allocated GPUs',
'dashboard.instances': 'Instances',
+4 -2
View File
@@ -30,7 +30,8 @@ export default {
'dashboard.usage.export.date': 'Date',
'dashboard.usage.datePicker.last7days': 'Last 7 Days',
'dashboard.usage.datePicker.last30days': 'Last 30 Days',
'dashboard.usage.datePicker.last60days': 'Last 60 Days'
'dashboard.usage.datePicker.last60days': 'Last 60 Days',
'dashboard.clusters': 'Clusters'
};
// ========== To-Do: Translate Keys (Remove After Translation) ==========
@@ -42,5 +43,6 @@ export default {
// 6. 'dashboard.usage.export.date': 'Date',
// 7. 'dashboard.usage.datePicker.last7days': 'Last 7 Days',
// 8.'dashboard.usage.datePicker.last30days': 'Last 30 Days',
// 9. 'dashboard.usage.datePicker.last60days': 'Last 60 Days'
// 9. 'dashboard.usage.datePicker.last60days': 'Last 60 Days',
// 10. 'dashboard.clusters': 'Clusters',
// ========== End of To-Do List ==========
+3 -2
View File
@@ -30,9 +30,10 @@ export default {
'dashboard.usage.export.date': 'Дата',
'dashboard.usage.datePicker.last7days': 'Последние 7 Days',
'dashboard.usage.datePicker.last30days': 'Последние 30 Days',
'dashboard.usage.datePicker.last60days': 'Последние 60 Days'
'dashboard.usage.datePicker.last60days': 'Последние 60 Days',
'dashboard.clusters': 'Clusters'
};
// ========== To-Do: Translate Keys (Remove After Translation) ==========
// 1. 'dashboard.clusters': 'Clusters',
// ========== End of To-Do List ==========
+1
View File
@@ -2,6 +2,7 @@ export default {
'dashboard.title': '概览',
'dashboard.workers': '节点',
'dashboard.models': '模型',
'dashboard.clusters': '集群',
'dashboard.totalgpus': 'GPUs',
'dashboard.allocategpus': '已分配 GPU 数量',
'dashboard.instances': '实例',
@@ -28,7 +28,7 @@ const NotesWrapper = styled.ol`
font-weight: 400;
margin: 0 !important;
padding: 0 !important;
line-height: 1.2;
line-height: 1.25;
li {
margin-left: 12px !important;
}
@@ -156,6 +156,7 @@ const AddWorkerStep: React.FC<AddModalProps> = ({
{intl.formatMessage({ id: 'clusters.create.addCommand.tips' })}
</div>
<AlertInfoBlock
maxHeight={200}
style={{ marginBottom: 8 }}
type="warning"
icon={<ExclamationCircleFilled />}
+2 -2
View File
@@ -58,8 +58,8 @@ const Overview: React.FC = () => {
xs={{ flex: '100%' }}
sm={{ flex: '50%' }}
md={{ flex: '50%' }}
lg={{ flex: '25%' }}
xl={{ flex: '25%' }}
lg={{ flex: '20%' }}
xl={{ flex: '20%' }}
key={config.key}
>
{renderCardItem({
+5
View File
@@ -1,4 +1,9 @@
export const overviewConfigs = [
{
key: 'cluster_count',
label: 'dashboard.clusters',
backgroundColor: 'var(--color-white-1)'
},
{
key: 'worker_count',
label: 'dashboard.workers',
+13 -2
View File
@@ -15,7 +15,7 @@ const KVCacheForm = () => {
const backend = Form.useWatch('backend', form);
const configCacheRef = useRef<any>({});
const handleOnChange = async (e: any) => {
const handleEnableOnChange = async (e: any) => {
if (e.target.checked) {
form.setFieldsValue({
extended_kv_cache: {
@@ -28,6 +28,17 @@ const KVCacheForm = () => {
} else {
configCacheRef.current = form.getFieldValue('extended_kv_cache');
}
await new Promise((resolve) => {
setTimeout(resolve, 100);
});
onValuesChange?.(
{
extended_kv_cache: {
enabled: e.target.checked
}
},
form.getFieldsValue()
);
};
const builtInBackend = useMemo(() => {
@@ -56,7 +67,7 @@ const KVCacheForm = () => {
id: 'models.form.kvCache.tips2'
})}
disabled={!builtInBackend}
onChange={handleOnChange}
onChange={handleEnableOnChange}
label={intl.formatMessage({ id: 'models.form.extendedkvcache' })}
></CheckboxField>
</Form.Item>
+48 -17
View File
@@ -137,11 +137,12 @@ const registerWorker = (params: {
}) => {
const config = GPUsConfigs[params.gpu];
return `WORKER_NAME="gpustack-worker" \\
WORKER_PORT="80" \\
WORKER_IP="" \\
docker run -d --name \${WORKER_NAME} \\
--restart=unless-stopped \\
--privileged \\
--net=host \\
--publish \${WORKER_PORT}:\${WORKER_PORT} \\
--env "GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT=true" \\
--env "GPUSTACK_RUNTIME_DEPLOY_MIRRORED_NAME=\${WORKER_NAME}" \\
--volume /var/run/docker.sock:/var/run/docker.sock \\
@@ -150,7 +151,8 @@ docker run -d --name \${WORKER_NAME} \\
${params.image} \\
--server-url ${params.server} \\
--token ${params.token} \\
--worker-ip \${WORKER_IP}`;
--worker-port \${WORKER_PORT} \\
--advertise-address \${WORKER_IP}`;
};
// avaliable for Ascend
@@ -163,11 +165,12 @@ const registerAscendWorker = (params: {
}) => {
const config = GPUsConfigs[params.gpu];
return `WORKER_NAME="gpustack-worker" \\
WORKER_PORT="80" \\
WORKER_IP="" \\
docker run -d --name \${WORKER_NAME} \\
--restart=unless-stopped \\
--privileged \\
--net=host \\
--publish \${WORKER_PORT}:\${WORKER_PORT} \\
--env "GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT=true" \\
--env "GPUSTACK_RUNTIME_DEPLOY_MIRRORED_NAME=\${WORKER_NAME}" \\
--volume /var/run/docker.sock:/var/run/docker.sock \\
@@ -177,7 +180,8 @@ docker run -d --name \${WORKER_NAME} \\
${params.image} \\
--server-url ${params.server} \\
--token ${params.token} \\
--worker-ip \${WORKER_IP}`;
--worker-port \${WORKER_PORT} \\
--advertise-address \${WORKER_IP}`;
};
const registerHygonWorker = (params: {
@@ -189,11 +193,12 @@ const registerHygonWorker = (params: {
}) => {
const config = GPUsConfigs[params.gpu];
return `WORKER_NAME="gpustack-worker" \\
WORKER_PORT="80" \\
WORKER_IP="" \\
docker run -d --name \${WORKER_NAME} \\
--restart=unless-stopped \\
--privileged \\
--net=host \\
--publish \${WORKER_PORT}:\${WORKER_PORT} \\
--env "GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT=true" \\
--env "GPUSTACK_RUNTIME_DEPLOY_MIRRORED_NAME=\${WORKER_NAME}" \\
--volume /var/run/docker.sock:/var/run/docker.sock \\
@@ -205,7 +210,8 @@ docker run -d --name \${WORKER_NAME} \\
${params.image} \\
--server-url ${params.server} \\
--token ${params.token} \\
--worker-ip \${WORKER_IP}`;
--worker-port \${WORKER_PORT} \\
--advertise-address \${WORKER_IP}`;
};
const registerIluvatarWorker = (params: {
@@ -217,11 +223,12 @@ const registerIluvatarWorker = (params: {
}) => {
const config = GPUsConfigs[params.gpu];
return `WORKER_NAME="gpustack-worker" \\
WORKER_PORT="80" \\
WORKER_IP="" \\
docker run -d --name \${WORKER_NAME} \\
--restart=unless-stopped \\
--privileged \\
--net=host \\
--publish \${WORKER_PORT}:\${WORKER_PORT} \\
--env "GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT=true" \\
--env "GPUSTACK_RUNTIME_DEPLOY_MIRRORED_NAME=\${WORKER_NAME}" \\
--volume /var/run/docker.sock:/var/run/docker.sock \\
@@ -232,7 +239,8 @@ docker run -d --name \${WORKER_NAME} \\
${params.image} \\
--server-url ${params.server} \\
--token ${params.token} \\
--worker-ip \${WORKER_IP}`;
--worker-port \${WORKER_PORT} \\
--advertise-address \${WORKER_IP}`;
};
const registerMetaXWorker = (params: {
@@ -244,11 +252,12 @@ const registerMetaXWorker = (params: {
}) => {
const config = GPUsConfigs[params.gpu];
return `WORKER_NAME="gpustack-worker" \\
WORKER_PORT="80" \\
WORKER_IP="" \\
docker run -d --name \${WORKER_NAME} \\
--restart=unless-stopped \\
--privileged \\
--net=host \\
--publish \${WORKER_PORT}:\${WORKER_PORT} \\
--env "GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT=true" \\
--env "GPUSTACK_RUNTIME_DEPLOY_MIRRORED_NAME=\${WORKER_NAME}" \\
--volume /var/run/docker.sock:/var/run/docker.sock \\
@@ -258,7 +267,8 @@ docker run -d --name \${WORKER_NAME} \\
${params.image} \\
--server-url ${params.server} \\
--token ${params.token} \\
--worker-ip \${WORKER_IP}`;
--worker-port \${WORKER_PORT} \\
--advertise-address \${WORKER_IP}`;
};
const registerCambriconWorker = (params: {
@@ -270,11 +280,12 @@ const registerCambriconWorker = (params: {
}) => {
const config = GPUsConfigs[params.gpu];
return `WORKER_NAME="gpustack-worker" \\
WORKER_PORT="80" \\
WORKER_IP="" \\
docker run -d --name \${WORKER_NAME} \\
--restart=unless-stopped \\
--privileged \\
--net=host \\
--publish \${WORKER_PORT}:\${WORKER_PORT} \\
--env "GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT=true" \\
--env "GPUSTACK_RUNTIME_DEPLOY_MIRRORED_NAME=\${WORKER_NAME}" \\
--volume /var/run/docker.sock:/var/run/docker.sock \\
@@ -284,7 +295,8 @@ docker run -d --name \${WORKER_NAME} \\
${params.image} \\
--server-url ${params.server} \\
--token ${params.token} \\
--worker-ip \${WORKER_IP}`;
--worker-port \${WORKER_PORT} \\
--advertise-address \${WORKER_IP}`;
};
export const registerAddWokerCommandMap = {
@@ -311,9 +323,28 @@ export const AddWorkerDockerNotes: Record<string, string[]> = {
'clusters.addworker.nvidiaNotes-01',
'clusters.addworker.nvidiaNotes-02'
],
[GPUDriverMap.ASCEND]: [],
[GPUDriverMap.HYGON]: ['clusters.addworker.hygonNotes'],
[GPUDriverMap.ILUVATAR]: ['clusters.addworker.corexNotes'],
[GPUDriverMap.CAMBRICON]: ['clusters.addworker.cambriconNotes'],
[GPUDriverMap.METAX]: ['clusters.addworker.metaxNotes']
[GPUDriverMap.ASCEND]: [
'clusters.addworker.nvidiaNotes-01',
'clusters.addworker.nvidiaNotes-02'
],
[GPUDriverMap.HYGON]: [
'clusters.addworker.nvidiaNotes-01',
'clusters.addworker.nvidiaNotes-02',
'clusters.addworker.hygonNotes'
],
[GPUDriverMap.ILUVATAR]: [
'clusters.addworker.nvidiaNotes-01',
'clusters.addworker.nvidiaNotes-02',
'clusters.addworker.corexNotes'
],
[GPUDriverMap.CAMBRICON]: [
'clusters.addworker.nvidiaNotes-01',
'clusters.addworker.nvidiaNotes-02',
'clusters.addworker.cambriconNotes'
],
[GPUDriverMap.METAX]: [
'clusters.addworker.nvidiaNotes-01',
'clusters.addworker.nvidiaNotes-02',
'clusters.addworker.metaxNotes'
]
};