Cluster management
Updated at:2025-10-27
Create cluster
Plain Text
1func CreateCluster() {
2 // User’s Access Key ID and Secret Access Key
3 AK, SK := "", ""
4 // User-specified endpoint
5 ENDPOINT := ""
6 // Initialize a CCEClient
7 ccev2Client, err := v2.NewClient(AK, SK, ENDPOINT)
8 if err != nil {
9 panic(err)
10 }
11 args := &v2.CreateClusterArgs{
12 CreateClusterRequest: &v2.CreateClusterRequest{
13 ClusterSpec: &types.ClusterSpec{
14 ClusterName: "your-cluster-name",
15 K8SVersion: "1.21.14",
16 RuntimeType: types.RuntimeTypeDocker,
17 VPCID: "vpc-id",
18 MasterConfig: types.MasterConfig{
19 MasterType: types.MasterTypeManaged,
20 ClusterHA: 1,
21 ExposedPublic: false,
22 ClusterBLBVPCSubnetID: "cluster-blb-vpc-subnet-id",
23 ManagedClusterMasterOption: types.ManagedClusterMasterOption{
24 MasterVPCSubnetZone: types.AvailableZoneA,
25 },
26 },
27 ContainerNetworkConfig: types.ContainerNetworkConfig{
28 Mode: types.ContainerNetworkModeKubenet,
29 LBServiceVPCSubnetID: "lb-service-vpc-subnet-id",
30 ClusterPodCIDR: "172.28.0.0/16",
31 ClusterIPServiceCIDR: "172.31.0.0/16",
32 },
33 Tags: types.TagList{
34 {
35 TagKey: "tagkey",
36 TagValue: "tagvalue",
37 },
38 },
39 },
40 NodeSpecs: []*v2.InstanceSet{
41 {
42 Count: 1,
43 InstanceSpec: types.InstanceSpec{
44 InstanceName: "",
45 ClusterRole: types.ClusterRoleNode,
46 Existed: false,
47 MachineType: types.MachineTypeBCC,
48 InstanceType: api.InstanceTypeN3,
49 VPCConfig: types.VPCConfig{
50 VPCID: "",
51 VPCSubnetID: "vpc-subnet-id",
52 SecurityGroupID: "security-group-id",
53 AvailableZone: types.AvailableZoneA,
54 },
55 InstanceResource: types.InstanceResource{
56 CPU: 4,
57 MEM: 8,
58 RootDiskSize: 40,
59 LocalDiskSize: 0,
60 CDSList: []types.CDSConfig{},
61 },
62 ImageID: "image-id",
63 InstanceOS: types.InstanceOS{
64 ImageType: api.ImageTypeSystem,
65 },
66 NeedEIP: false,
67 AdminPassword: "admin-password",
68 SSHKeyID: "ssh-key-id",
69 InstanceChargingType: api.PaymentTimingPostPaid,
70 RuntimeType: types.RuntimeTypeDocker,
71 RelationTag: true,
72 },
73 },
74 },
75 },
76 }
77 resp, err := ccev2Client.CreateCluster(args)
78 if err != nil {
79 fmt.Println(err.Error())
80 return
81 }
82 s, _ := json.MarshalIndent(resp, "", "\t")
83 fmt.Println("Response:" + string(s))
84}
Create a cluster and associate tags
Plain Text
1 args := &v2.CreateClusterArgs{
2 CreateClusterRequest: &v2.CreateClusterRequest{
3 ClusterSpec: &types.ClusterSpec{
4 // Other configurations for creating the cluster
5
6 // Tags associated with the cluster
7 Tags: types.TagList{
8 {
9 TagKey: "tagkey",
10 TagValue: "tagvalue",
11 },
12 },
13 },
14 NodeSpecs: []*v2.InstanceSet{
15 {
16 // Other configurations for creating node instances
17
18 // Nodes are simultaneously associated with the above tags
19 InstanceSpec: types.InstanceSpec{
20 RelationTag: true,
21 },
22 },
23 },
24 },
25 }
26
Query clusters
Plain Text
1func GetCluster() {
2 // User’s Access Key ID and Secret Access Key
3 AK, SK := "", ""
4 // User-specified endpoint
5 ENDPOINT := ""
6 // Initialize a CCEClient
7 ccev2Client, err := v2.NewClient(AK, SK, ENDPOINT)
8 if err != nil {
9 panic(err)
10 }
11 clusterID := ""
12 resp, err := ccev2Client.GetCluster(clusterID)
13 if err != nil {
14 fmt.Println(err.Error())
15 return
16 }
17 s, _ := json.MarshalIndent(resp, "", "\t")
18 fmt.Println("Response:" + string(s))
19}
Query cluster tags
Plain Text
1 resp, err := ccev2Client.GetCluster(clusterID)
2 if err != nil {
3 fmt.Println(err.Error())
4 return
5 }
6
7 tags, _ := json.MarshalIndent(resp.Cluster.Spec.Tags, "", "\t")
8 fmt.Println("Response:" + string(tags))
Query cluster list
Plain Text
1func ListClusters() {
2 // User’s Access Key ID and Secret Access Key
3 AK, SK := "", ""
4 // User-specified endpoint
5 ENDPOINT := ""
6 // Initialize a CCEClient
7 ccev2Client, err := ccev2.NewClient(AK, SK, ENDPOINT)
8 if err != nil {
9 panic(err)
10 }
11 args := &ccev2.ListClustersArgs{
12 KeywordType: "clusterName",
13 Keyword: "",
14 OrderBy: "clusterID",
15 Order: ccev2.OrderASC,
16 PageSize: 10,
17 PageNum: 1,
18 }
19 resp, err := ccev2Client.ListClusters(args)
20 if err != nil {
21 fmt.Println(err.Error())
22 return
23 }
24 s, _ := json.MarshalIndent(resp, "", "\t")
25 fmt.Println("Response:" + string(s))
26}
Delete cluster
Plain Text
1func DeleteCluster() {
2 // User’s Access Key ID and Secret Access Key
3 AK, SK := "", ""
4 // User-specified endpoint
5 ENDPOINT := ""
6 // Initialize a CCEClient
7 ccev2Client, err := ccev2.NewClient(AK, SK, ENDPOINT)
8 if err != nil {
9 panic(err)
10 }
11 clusterID := ""
12 args := &ccev2.DeleteClusterArgs{
13 ClusterID: clusterID,
14 DeleteResource: true,
15 DeleteCDSSnapshot: true,
16 }
17 resp, err := ccev2Client.DeleteCluster(args)
18 if err != nil {
19 fmt.Println(err.Error())
20 return
21 }
22 s, _ := json.MarshalIndent(resp, "", "\t")
23 fmt.Println("Response:" + string(s))
24}
Update cluster deletion protection
Plain Text
1func UpdateClusterForbidDelete() {
2 // User’s Access Key ID and Secret Access Key
3 AK, SK := "", ""
4 // User-specified endpoint
5 ENDPOINT := ""
6 // Initialize a CCEClient
7 ccev2Client, err := ccev2.NewClient(AK, SK, ENDPOINT)
8 if err != nil {
9 panic(err)
10 }
11 clusterID := ""
12 args := &ccev2.UpdateClusterForbidDeleteArgs{
13 ClusterID: clusterID,
14 UpdateClusterForbidDeleteRequest: ccev2.UpdateClusterForbidDeleteRequest{
15 ForbidDelete: true,
16 },
17 }
18 resp, err := ccev2Client.UpdateClusterForbidDelete(args)
19 if err != nil {
20 fmt.Println(err.Error())
21 return
22 }
23 s, _ := json.MarshalIndent(resp, "", "\t")
24 fmt.Println("Response:" + string(s))
25}
Retrieve cluster event steps
Plain Text
1func GetClusterEventSteps() {
2 // User’s Access Key ID and Secret Access Key
3 AK, SK := "", ""
4 // User-specified endpoint
5 ENDPOINT := ""
6 // Initialize a CCEClient
7 ccev2Client, err := v2.NewClient(AK, SK, ENDPOINT)
8 if err != nil {
9 panic(err)
10 }
11 clusterID := "cluster-id"
12 resp, err := ccev2Client.GetClusterEventSteps(clusterID)
13 if err != nil {
14 fmt.Println(err.Error())
15 return
16 }
17 s, _ := json.MarshalIndent(resp, "", "\t")
18 fmt.Println("Response:" + string(s))
19}
