diff --git a/web/console/src/modules/cluster/WebAPI/ClusterAPI.ts b/web/console/src/modules/cluster/WebAPI/ClusterAPI.ts index 72608bc0c..238f21d80 100644 --- a/web/console/src/modules/cluster/WebAPI/ClusterAPI.ts +++ b/web/console/src/modules/cluster/WebAPI/ClusterAPI.ts @@ -139,7 +139,8 @@ export async function createIC(clusters: CreateIC[]) { cilium, networkMode, asNumber, - switchIp + switchIp, + useBGP } = clusters[0]; const resourceInfo = resourceConfig()['cluster']; @@ -196,7 +197,7 @@ export async function createIC(clusters: CreateIC[]) { networkArgs: { networkMode, - ...(networkMode === 'underlay' + ...(networkMode === 'underlay' && useBGP ? { asn: asNumber, 'switch-ip': switchIp diff --git a/web/console/src/modules/cluster/actions/createICAction.ts b/web/console/src/modules/cluster/actions/createICAction.ts index 366184460..407c0f284 100644 --- a/web/console/src/modules/cluster/actions/createICAction.ts +++ b/web/console/src/modules/cluster/actions/createICAction.ts @@ -109,6 +109,13 @@ export const createICAction = { }; }, + setUseBGP: (useBGP: boolean) => { + return { + type: ActionType.IC_UseBGP, + payload: useBGP + }; + }, + inputGPUType: (type: string): ReduxAction => { return { type: ActionType.v_IC_GpuType, diff --git a/web/console/src/modules/cluster/components/clusterManage/CreateICPanel.tsx b/web/console/src/modules/cluster/components/clusterManage/CreateICPanel.tsx index 336512776..3470a675c 100644 --- a/web/console/src/modules/cluster/components/clusterManage/CreateICPanel.tsx +++ b/web/console/src/modules/cluster/components/clusterManage/CreateICPanel.tsx @@ -114,7 +114,8 @@ export class CreateICPanel extends React.Component { asNumber, switchIp, v_asNumber, - v_switchIp + v_switchIp, + useBGP } = createIC; const hasEditing = computerList.filter(c => c.isEditing).length > 0 || this.state.isAdding; @@ -137,7 +138,7 @@ export class CreateICPanel extends React.Component { showExistVipUnuseTip = nodeNum > 1 ? false : true; } else if (vipType === CreateICVipType.tke) { canSave = canSave && v_vipAddress.status === 1; - } else if (cilium === 'Cilium' && networkMode === 'underlay') { + } else if (cilium === 'Cilium' && networkMode === 'underlay' && useBGP) { canSave = canSave && v_asNumber.status === 1 && v_switchIp.status === 1; } @@ -290,6 +291,12 @@ export class CreateICPanel extends React.Component { )} {cilium === 'Cilium' && networkMode === 'underlay' && ( + + + + )} + + {cilium === 'Cilium' && networkMode === 'underlay' && useBGP && ( <> {