From f0dd07520bdf2cbf65a8af9fa9c83bdb4f52af99 Mon Sep 17 00:00:00 2001 From: mcll Date: Thu, 12 Oct 2023 17:35:01 +0800 Subject: [PATCH] feature: cluster manager support ctyun creation --- .../cloudprovider/eop/api/constant.go | 7 ++++++ .../eop/tasks/createClusterTask.go | 24 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/eop/api/constant.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/eop/api/constant.go index eb311c4512..278947a484 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/eop/api/constant.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/eop/api/constant.go @@ -21,6 +21,8 @@ const ( // ClusterStatusCreateFailed create failed ClusterStatusCreateFailed = "K8S_CLUSTER_STATE_CREATE_FAILED" + // MasterNodePoolName master node pool name + MasterNodePoolName = "system-nodepool" // NodePoolStatusInitial nodepool initial state NodePoolStatusInitial = "NODE_POOL_STATE_INITIAL" // NodePoolStatusCreateFailed nodepool create failed state @@ -33,6 +35,11 @@ const ( // NodeStatusUnknown node unknown state NodeStatusUnknown = "NODE_STATE_UNKNOWN" + // NodeRoleMaster master node + NodeRoleMaster = "NODE_ROLE_MASTER" + // NodeRoleWorker worker node + NodeRoleWorker = "NODE_ROLE_WORKER" + // DisKIOTypeNormal normal IO disk DisKIOTypeNormal = "DISK_IO_TYPE_NORMAL" // DisKIOTypeHigh high IO disk diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/eop/tasks/createClusterTask.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/eop/tasks/createClusterTask.go index 8a5f2c1f15..cbda04eb22 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/eop/tasks/createClusterTask.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/eop/tasks/createClusterTask.go @@ -839,6 +839,11 @@ func checkClusterNodesStatus(ctx context.Context, info *cloudprovider.CloudDepen nodePoolList = append(nodePoolList, nodeGroup.CloudNodeGroupID) } + // add master node num + totalNodesNum += info.Cluster.Template[0].ApplyNum + // master节点的节点池由ecp自动创建, 有默认名称 + nodePoolList = append(nodePoolList, api.MasterNodePoolName) + // get eopCloud client cli, err := api.NewCTClient(info.CmOption) if err != nil { @@ -861,6 +866,8 @@ func checkClusterNodesStatus(ctx context.Context, info *cloudprovider.CloudDepen return nil } + blog.Infof("checkClusterNodesStatus expected nodes %d , current nodes %d ", totalNodesNum, len(nodes)) + running, failure := make([]string, 0), make([]string, 0) index := 0 for _, node := range nodes { @@ -1022,6 +1029,23 @@ func updateNodeToDB(ctx context.Context, info *cloudprovider.CloudDependBasicInf return nil } + if result[0].Role == api.NodeRoleMaster { + node := &proto.Node{ + NodeID: result[0].InstanceId, + InnerIP: result[0].InnerIp, + InstanceType: info.Cluster.Template[0].InstanceType, + ClusterID: info.Cluster.ClusterID, + VPC: info.Cluster.Template[0].VpcID, + Region: info.Cluster.Template[0].Region, + NodeName: result[0].NodeName, + } + err = cloudprovider.GetStorageModel().CreateNode(context.Background(), node) + if err != nil { + return fmt.Errorf("updateNodeToDB CreateNode[%s] failed, %v", node.NodeName, err) + } + continue + } + for _, ng := range nodeGroups { if result[0].NodePoolId == ng.CloudNodeGroupID { node := &proto.Node{