chore: update description for adding worker
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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 ==========
|
||||
|
||||
@@ -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 ==========
|
||||
|
||||
@@ -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 />}
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
export const overviewConfigs = [
|
||||
{
|
||||
key: 'cluster_count',
|
||||
label: 'dashboard.clusters',
|
||||
backgroundColor: 'var(--color-white-1)'
|
||||
},
|
||||
{
|
||||
key: 'worker_count',
|
||||
label: 'dashboard.workers',
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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'
|
||||
]
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user