From c057d691d3f6b689398eb611161b632cc9484587 Mon Sep 17 00:00:00 2001 From: zhouqunjie <450705171@qq.com> Date: Tue, 17 May 2022 17:37:15 +0800 Subject: [PATCH 1/3] sdk demo 0517 --- .../pod/server/ali/create_container_group.go | 14 ++- .../pod/server/ali/delete_container_group.go | 2 +- .../pod/server/ali/update_container_group.go | 2 +- examples/ali.go | 79 ++++++++++--- examples/huawei.go | 16 +-- examples/pcm_ali.go | 111 ++++++++++++------ examples/pcm_huawei.go | 45 ++++--- go.mod | 1 - 8 files changed, 184 insertions(+), 86 deletions(-) diff --git a/adaptor/pod/server/ali/create_container_group.go b/adaptor/pod/server/ali/create_container_group.go index 16199791..e782792f 100644 --- a/adaptor/pod/server/ali/create_container_group.go +++ b/adaptor/pod/server/ali/create_container_group.go @@ -19,7 +19,7 @@ func CreateContainerGroup(request *CreateContainerGroupRequest) (response *Creat provider := pbtenant.CloudProvider(request.ProviderId) var configFile string - flag.StringVar(&configFile, "conf", "configs/config.yaml", "config.yaml") + flag.StringVar(&configFile, "confAli", "configs/config.yaml", "config.yaml") flag.Parse() defer glog.Flush() @@ -43,13 +43,17 @@ func CreateContainerGroup(request *CreateContainerGroupRequest) (response *Creat switch request.ProviderId { case 0: regionId, _ = tenanter.GetAliRegionId(request.RegionId) + cpuPod = strconv.FormatFloat(cpuPodFloat, 'f', 0, 64) + memoryPod = strconv.FormatFloat(memoryPodFloat, 'f', 0, 64) case 1: regionId, _ = tenanter.GetTencentRegionId(request.RegionId) + cpuPod = strconv.FormatFloat(cpuPodFloat, 'f', 0, 64) + memoryPod = strconv.FormatFloat(memoryPodFloat, 'f', 0, 64) case 2: //华为的CPU和内存数量要进行转换 regionId, _ = tenanter.GetHuaweiRegionId(request.RegionId) - cpuPod = strconv.FormatFloat(cpuPodFloat*1000, 'f', 0, 64) - memoryPod = strconv.FormatFloat(memoryPodFloat, 'f', 0, 64) + cpuPod = strconv.FormatFloat(cpuPodFloat*1000, 'f', 0, 64) + "m" + memoryPod = strconv.FormatFloat(memoryPodFloat, 'f', 0, 64) + "Gi" case 3: regionId, _ = tenanter.GetK8SRegionId(request.RegionId) } @@ -62,8 +66,8 @@ func CreateContainerGroup(request *CreateContainerGroupRequest) (response *Creat RegionId: regionId, ContainerImage: containerImage, ContainerName: containerName, - CpuPod: cpuPod + "m", - MemoryPod: memoryPod + "Gi", + CpuPod: cpuPod, + MemoryPod: memoryPod, SecurityGroupId: "sg-6qlun7hd", SubnetId: "subnet-mnwfg2fk", VpcId: "vpc-rkwt40g5", diff --git a/adaptor/pod/server/ali/delete_container_group.go b/adaptor/pod/server/ali/delete_container_group.go index a933de87..6c647248 100644 --- a/adaptor/pod/server/ali/delete_container_group.go +++ b/adaptor/pod/server/ali/delete_container_group.go @@ -33,7 +33,7 @@ func DeleteContainerGroup(request *DeleteContainerGroupRequest) (response *Delet provider := pbtenant.CloudProvider(request.ProviderId) var configFile string - flag.StringVar(&configFile, "conf", "configs/config.yaml", "config.yaml") + flag.StringVar(&configFile, "confAli", "configs/config.yaml", "config.yaml") flag.Parse() defer glog.Flush() diff --git a/adaptor/pod/server/ali/update_container_group.go b/adaptor/pod/server/ali/update_container_group.go index dc2f7c49..f58141c9 100644 --- a/adaptor/pod/server/ali/update_container_group.go +++ b/adaptor/pod/server/ali/update_container_group.go @@ -33,7 +33,7 @@ func UpdateContainerGroup(request *UpdateContainerGroupRequest) (response *Updat provider := pbtenant.CloudProvider(request.ProviderId) var configFile string - flag.StringVar(&configFile, "conf", "configs/config.yaml", "config.yaml") + flag.StringVar(&configFile, "confAli", "configs/config.yaml", "config.yaml") flag.Parse() defer glog.Flush() diff --git a/examples/ali.go b/examples/ali.go index fcd90396..25343e58 100644 --- a/examples/ali.go +++ b/examples/ali.go @@ -3,11 +3,12 @@ package main import ( openapi "github.com/alibabacloud-go/darabonba-openapi/client" - eci20180808 "github.com/alibabacloud-go/eci-20180808/v2/client" + "github.com/aliyun/alibaba-cloud-sdk-go/services/eci" + "github.com/alibabacloud-go/tea/tea" ) -func CreateClient(accessKeyId *string, accessKeySecret *string) (_result *eci20180808.Client, _err error) { +func CreateClient(accessKeyId *string, accessKeySecret *string) (_result *eci.Client, _err error) { config := &openapi.Config{ // 您的AccessKey ID AccessKeyId: accessKeyId, @@ -16,32 +17,78 @@ func CreateClient(accessKeyId *string, accessKeySecret *string) (_result *eci201 } // 访问的域名 config.Endpoint = tea.String("eci.aliyuncs.com") - _result = &eci20180808.Client{} - _result, _err = eci20180808.NewClient(config) + _result = &eci.Client{} + _result, _err = eci.NewClientWithAccessKey("cn-hangzhou", *accessKeyId, *accessKeySecret) return _result, _err } -func aliOriginMain() (_err error) { - client, _err := CreateClient(tea.String(""), tea.String("")) - if _err != nil { - return _err - } +func aliCreate(client eci.Client) (_err error) { + + request := eci.CreateCreateContainerGroupRequest() + request.RegionId = "cn-hangzhou" + request.ContainerGroupName = "pcm0517" + requestContainer := make([]eci.CreateContainerGroupContainer, 1) + requestContainer[0].Image = "nginx:latest" + requestContainer[0].Name = "pcm" + requestContainer[0].Cpu = "1" + requestContainer[0].Memory = "2" + request.Container = &requestContainer + + resp, _err := client.CreateContainerGroup(request) + println(resp.ContainerGroupId) + + return _err +} + +func aliDescribe(client eci.Client) (_err error) { + + request := eci.CreateDescribeContainerGroupsRequest() + request.RegionId = "cn-hangzhou" + + resp, _err := client.DescribeContainerGroups(request) + println(resp.ContainerGroups[0].ContainerGroupId) - describeContainerGroupsRequest := &eci20180808.DescribeContainerGroupsRequest{ - RegionId: tea.String("cn-hangzhou"), - } - // 复制代码运行请自行打印 API 的返回值 - resp, _err := client.DescribeContainerGroups(describeContainerGroupsRequest) - println(*resp.Body.ContainerGroups[0].ContainerGroupId) if _err != nil { return _err } return _err } +func aliUpdate(client eci.Client) (_err error) { + + request := eci.CreateUpdateContainerGroupRequest() + request.RegionId = "cn-hangzhou" + request.ContainerGroupId = "eci-bp10k06yd8efj65d4iqg" + request.RestartPolicy = "Never" + + resp, _err := client.UpdateContainerGroup(request) + println(resp.RequestId) + if _err != nil { + return _err + } + return _err +} + +func aliDelete(client eci.Client) (_err error) { + + request := eci.CreateDeleteContainerGroupRequest() + request.RegionId = "cn-hangzhou" + request.ContainerGroupId = "eci-bp10k06yd8efj65d4iqg" + + resp, _err := client.DeleteContainerGroup(request) + println(resp.RequestId) + if _err != nil { + return _err + } + return _err +} func main() { - err := aliOriginMain() + client, _ := CreateClient(tea.String("LTAI5tJbog28gBTVzBmvqCBG"), tea.String("CXTClnd0ZQhxn4C2b5NN1nmra7hl1z")) + + err := aliDelete(*client) + if err != nil { panic(err) } + } diff --git a/examples/huawei.go b/examples/huawei.go index bdce68b5..ee5d3303 100644 --- a/examples/huawei.go +++ b/examples/huawei.go @@ -12,14 +12,14 @@ import ( "k8s.io/client-go/tools/clientcmd/api" ) -const ( - apiVersion = "client.authentication.k8s.io/v1beta1" - cciEndpoint = "https://cci.cn-east-3.myhuaweicloud.com" - iamEndpoint = "https://iam.cn-east-3.myhuaweicloud.com" - projectName = "cn-east-3" - ak = "ATQTIWUT9K66VRMMXKVY" - sk = "Wa0aixDVuhZOfDZGWvgIJQBHnyiDlGdgDn1Ai5Yy" -) +//const ( +// apiVersion = "client.authentication.k8s.io/v1beta1" +// cciEndpoint = "https://cci.cn-east-3.myhuaweicloud.com" +// iamEndpoint = "https://iam.cn-east-3.myhuaweicloud.com" +// projectName = "cn-east-3" +// ak = "ATQTIWUT9K66VRMMXKVY" +// sk = "Wa0aixDVuhZOfDZGWvgIJQBHnyiDlGdgDn1Ai5Yy" +//) // NewClientOrigin 通过AK/SK认证创建ClientSet func NewClientOrigin() (*kubernetes.Clientset, error) { diff --git a/examples/pcm_ali.go b/examples/pcm_ali.go index 9a492395..df1869bf 100644 --- a/examples/pcm_ali.go +++ b/examples/pcm_ali.go @@ -2,51 +2,90 @@ package main import ( pcm_pod_ali "code.gitlink.org.cn/JCCE/PCM.git/adaptor/pod/server/ali" - "github.com/alibabacloud-go/tea/tea" - "os" ) -func _main(args []*string) (_err error) { +func aliCreatePCM() (_err error) { + request := pcm_pod_ali.CreateCreateContainerGroupRequest() - //查询 - //describeContainerGroupsRequest := pcm_pod_ali.DescribeContainerGroupsRequest{ - // RegionId: "cn-hangzhou", - // ProviderId: 1, - //} - // - //// 复制代码运行请自行打印 API 的返回值 - //resp, _err := pcm_pod_ali.DescribeContainerGroups(&describeContainerGroupsRequest) - //println(resp.ContainerGroups[0].ContainerGroupId) - - //创建 - container := pcm_pod_ali.CreateContainerGroupContainer{ - Image: "nginx:latest", - Name: "pcm-sdk-ali", - Cpu: "1", - Memory: "2", - } - containers := make([]pcm_pod_ali.CreateContainerGroupContainer, 0) - containers = append(containers, container) - - createContainerGroupsRequest := pcm_pod_ali.CreateContainerGroupRequest{ - RpcRequest: nil, - //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 - RegionId: "cn-east-3", - ProviderId: 2, - Namespace: "pcm", - ContainerGroupName: "sdk-alitohuawei", - Container: &containers, - } - - // 复制代码运行请自行打印 API 的返回值 - resp, _err := pcm_pod_ali.CreateContainerGroup(&createContainerGroupsRequest) + /****************PCM params******************/ + request.ProviderId = 2 + //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 + request.RegionId = "cn-east-3" + request.Namespace = "pcm" + /****************PCM params******************/ + request.ContainerGroupName = "pcm0517" + requestContainer := make([]pcm_pod_ali.CreateContainerGroupContainer, 1) + requestContainer[0].Image = "nginx:latest" + requestContainer[0].Name = "pcm" + requestContainer[0].Cpu = "1" + requestContainer[0].Memory = "2" + request.Container = &requestContainer + resp, _err := pcm_pod_ali.CreateContainerGroup(request) println(resp.ContainerGroupId) + + return _err +} + +func aliDescribePCM() (_err error) { + request := pcm_pod_ali.CreateDescribeContainerGroupsRequest() + + /****************PCM params******************/ + request.ProviderId = 2 + //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 + request.RegionId = "cn-east-3" + request.Namespace = "pcm" + /****************PCM params******************/ + + resp, _err := pcm_pod_ali.DescribeContainerGroups(request) + println(resp.ContainerGroups[0].ContainerGroupId) + + return _err +} + +func aliUpdatePCM() (_err error) { + request := pcm_pod_ali.CreateUpdateContainerGroupRequest() + + /****************PCM params******************/ + request.ProviderId = 2 + //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 + request.RegionId = "cn-east-3" + request.Namespace = "pcm" + + /****************PCM params******************/ + requestContainer := make([]pcm_pod_ali.UpdateContainerGroupContainer, 1) + requestContainer[0].Cpu = "2" + requestContainer[0].Memory = "4" + request.Container = &requestContainer + + resp, _err := pcm_pod_ali.UpdateContainerGroup(request) + println(resp.RequestId) + + return _err +} + +func aliDeletePCM() (_err error) { + + request := pcm_pod_ali.CreateDeleteContainerGroupRequest() + /****************PCM params******************/ + request.ProviderId = 2 + //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 + request.RegionId = "cn-east-3" + request.Namespace = "pcm" + /****************PCM params******************/ + request.ContainerGroupId = "eksci-hhfpfms6" + + resp, _err := pcm_pod_ali.DeleteContainerGroup(request) + println(resp.RequestId) + if _err != nil { + return _err + } return _err } func main() { - err := _main(tea.StringSlice(os.Args[1:])) + + err := aliUpdatePCM() if err != nil { panic(err) } diff --git a/examples/pcm_huawei.go b/examples/pcm_huawei.go index ca2a9e51..c31aec36 100644 --- a/examples/pcm_huawei.go +++ b/examples/pcm_huawei.go @@ -12,6 +12,15 @@ import ( "k8s.io/client-go/tools/clientcmd/api" ) +const ( + apiVersion = "client.authentication.k8s.io/v1beta1" + cciEndpoint = "https://cci.cn-east-3.myhuaweicloud.com" + iamEndpoint = "https://iam.cn-east-3.myhuaweicloud.com" + projectName = "cn-east-3" + ak = "ATQTIWUT9K66VRMMXKVY" + sk = "Wa0aixDVuhZOfDZGWvgIJQBHnyiDlGdgDn1Ai5Yy" +) + // NewClient 通过AK/SK认证创建ClientSet func NewClient() (*kubernetes.Clientset, error) { config, err := clientcmd.BuildConfigFromFlags(cciEndpoint, "") @@ -161,23 +170,23 @@ func main() { return } fmt.Println("Pod created") - fmt.Println("start to get Pod details") - _, err = ListPod(cs) - if err != nil { - return - } - fmt.Println("Pod details got") - fmt.Println("start to update Pod") - err = UpdatePod(cs) - if err != nil { - return - } - fmt.Println("Pod updated") - fmt.Println("start to delete Pod") - err = DeletePod(cs) - if err != nil { - return - } - fmt.Println("Pod deleted") + //fmt.Println("start to get Pod details") + //_, err = ListPod(cs) + //if err != nil { + // return + //} + //fmt.Println("Pod details got") + //fmt.Println("start to update Pod") + //err = UpdatePod(cs) + //if err != nil { + // return + //} + //fmt.Println("Pod updated") + //fmt.Println("start to delete Pod") + //err = DeletePod(cs) + //if err != nil { + // return + //} + //fmt.Println("Pod deleted") } diff --git a/go.mod b/go.mod index f5bd53cb..7566726f 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,6 @@ go 1.17 require ( github.com/alibabacloud-go/darabonba-openapi v0.1.4 github.com/alibabacloud-go/darabonba-string v1.0.0 - github.com/alibabacloud-go/eci-20180808/v2 v2.0.2 github.com/alibabacloud-go/ecs-20140526/v2 v2.1.0 github.com/alibabacloud-go/tea v1.1.15 github.com/alibabacloud-go/tea-utils v1.3.9 From 8645fa6d28f094bfdabebf69543628bc8878ed84 Mon Sep 17 00:00:00 2001 From: zhouqunjie <450705171@qq.com> Date: Tue, 17 May 2022 23:11:46 +0800 Subject: [PATCH 2/3] ALI SDK test&fix ali crud huawei crud tencent crd Signed-off-by: zhouqunjie <450705171@qq.com> --- .../pod/server/ali/delete_container_group.go | 12 +++----- .../pod/server/ali/update_container_group.go | 2 ++ adaptor/pod/service/huawei_cci.go | 2 +- adaptor/pod/service/tencent_eks.go | 5 ---- examples/pcm_ali.go | 28 +++++++++++-------- 5 files changed, 23 insertions(+), 26 deletions(-) diff --git a/adaptor/pod/server/ali/delete_container_group.go b/adaptor/pod/server/ali/delete_container_group.go index 6c647248..7eca664d 100644 --- a/adaptor/pod/server/ali/delete_container_group.go +++ b/adaptor/pod/server/ali/delete_container_group.go @@ -47,21 +47,18 @@ func DeleteContainerGroup(request *DeleteContainerGroupRequest) (response *Delet glog.Infof("load tenant from file finished") var regionId int32 var pcmId string - podId := request.ContainerGroupId - podName := request.ContainerGroupName + pcmId = request.PcmId + //podId := request.ContainerGroupId + //podName := request.ContainerGroupName switch request.ProviderId { case 0: regionId, _ = tenanter.GetAliRegionId(request.RegionId) - pcmId = podId case 1: regionId, _ = tenanter.GetTencentRegionId(request.RegionId) - pcmId = podId case 2: regionId, _ = tenanter.GetHuaweiRegionId(request.RegionId) - pcmId = podName case 3: regionId, _ = tenanter.GetK8SRegionId(request.RegionId) - pcmId = podName } requestPCM := &pbpod.DeletePodReq{ @@ -69,8 +66,6 @@ func DeleteContainerGroup(request *DeleteContainerGroupRequest) (response *Delet Provider: provider, AccountName: request.AccountName, PcmId: pcmId, - PodId: podId, - PodName: podName, Namespace: request.Namespace, RegionId: regionId, } @@ -94,6 +89,7 @@ type DeleteContainerGroupRequest struct { ProviderId int32 `position:"Query" name:"ProviderId"` AccountName string `position:"Query" name:"AccountName"` Namespace string `position:"Query" name:"Namespace"` + PcmId string `position:"Query" name:"PcmId"` ContainerGroupName string `position:"Query" name:"ContainerGroupName"` /*********PCM param************/ OwnerId requests.Integer `position:"Query" name:"OwnerId"` diff --git a/adaptor/pod/server/ali/update_container_group.go b/adaptor/pod/server/ali/update_container_group.go index f58141c9..340389d1 100644 --- a/adaptor/pod/server/ali/update_container_group.go +++ b/adaptor/pod/server/ali/update_container_group.go @@ -62,6 +62,7 @@ func UpdateContainerGroup(request *UpdateContainerGroupRequest) (response *Updat RequestSource: "ali", Provider: provider, AccountName: request.AccountName, + PcmId: request.PcmId, PodId: request.ContainerGroupId, PodName: request.ContainerGroupName, Namespace: request.Namespace, @@ -92,6 +93,7 @@ type UpdateContainerGroupRequest struct { ProviderId int32 `position:"Query" name:"ProviderId"` AccountName string `position:"Query" name:"AccountName"` Namespace string `position:"Query" name:"Namespace"` + PcmId string `position:"Query" name:"PcmId"` ContainerGroupName string `position:"Query" name:"ContainerGroupName"` /*********PCM param************/ OwnerId requests.Integer `position:"Query" name:"OwnerId"` diff --git a/adaptor/pod/service/huawei_cci.go b/adaptor/pod/service/huawei_cci.go index d959faaf..d72c8b29 100644 --- a/adaptor/pod/service/huawei_cci.go +++ b/adaptor/pod/service/huawei_cci.go @@ -176,7 +176,7 @@ func (cci *HuaweiCci) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (* pod := corev1.Pod{ TypeMeta: qresp.TypeMeta, ObjectMeta: metav1.ObjectMeta{ - Name: req.PodName, + Name: req.PcmId, Namespace: req.Namespace, Labels: map[string]string{"name": req.Labels}, }, diff --git a/adaptor/pod/service/tencent_eks.go b/adaptor/pod/service/tencent_eks.go index 1ca64092..5b0d6fa4 100644 --- a/adaptor/pod/service/tencent_eks.go +++ b/adaptor/pod/service/tencent_eks.go @@ -156,15 +156,10 @@ func (eks *TencentEks) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) ( request := tencenteks.NewUpdateEKSContainerInstanceRequest() request.EksCiId = &req.PcmId request.RestartPolicy = &req.RestartPolicy - request.Name = &req.PodName - cpu, err := strconv.ParseFloat(req.CpuPod, 64) - memory, err := strconv.ParseFloat(req.MemoryPod, 64) request.Containers = make([]*tencenteks.Container, 1) request.Containers[0] = new(tencenteks.Container) request.Containers[0].Name = &req.ContainerName request.Containers[0].Image = &req.ContainerImage - request.Containers[0].Cpu = &cpu - request.Containers[0].Memory = &memory resp, err := eks.cli.UpdateEKSContainerInstance(request) isFinished := true if err != nil { diff --git a/examples/pcm_ali.go b/examples/pcm_ali.go index df1869bf..fd85fba1 100644 --- a/examples/pcm_ali.go +++ b/examples/pcm_ali.go @@ -8,9 +8,9 @@ func aliCreatePCM() (_err error) { request := pcm_pod_ali.CreateCreateContainerGroupRequest() /****************PCM params******************/ - request.ProviderId = 2 + request.ProviderId = 1 //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 - request.RegionId = "cn-east-3" + request.RegionId = "ap-guangzhou" request.Namespace = "pcm" /****************PCM params******************/ request.ContainerGroupName = "pcm0517" @@ -31,9 +31,9 @@ func aliDescribePCM() (_err error) { request := pcm_pod_ali.CreateDescribeContainerGroupsRequest() /****************PCM params******************/ - request.ProviderId = 2 + request.ProviderId = 1 //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 - request.RegionId = "cn-east-3" + request.RegionId = "ap-guangzhou" request.Namespace = "pcm" /****************PCM params******************/ @@ -47,15 +47,18 @@ func aliUpdatePCM() (_err error) { request := pcm_pod_ali.CreateUpdateContainerGroupRequest() /****************PCM params******************/ - request.ProviderId = 2 + request.ProviderId = 1 //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 - request.RegionId = "cn-east-3" + request.RegionId = "ap-guangzhou" request.Namespace = "pcm" - + request.PcmId = "eksci-ofdhm7h0" /****************PCM params******************/ + request.RestartPolicy = "Always" requestContainer := make([]pcm_pod_ali.UpdateContainerGroupContainer, 1) - requestContainer[0].Cpu = "2" - requestContainer[0].Memory = "4" + requestContainer[0].Cpu = "1" + requestContainer[0].Memory = "2" + requestContainer[0].Image = "nginx" + requestContainer[0].Name = "pc-mNew" request.Container = &requestContainer resp, _err := pcm_pod_ali.UpdateContainerGroup(request) @@ -68,10 +71,11 @@ func aliDeletePCM() (_err error) { request := pcm_pod_ali.CreateDeleteContainerGroupRequest() /****************PCM params******************/ - request.ProviderId = 2 + request.ProviderId = 1 //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 - request.RegionId = "cn-east-3" + request.RegionId = "ap-guangzhou" request.Namespace = "pcm" + request.PcmId = "eksci-ofdhm7h0" /****************PCM params******************/ request.ContainerGroupId = "eksci-hhfpfms6" @@ -85,7 +89,7 @@ func aliDeletePCM() (_err error) { func main() { - err := aliUpdatePCM() + err := aliDeletePCM() if err != nil { panic(err) } From f7a9597d2d31db36a0e07f07fdca8f04cd74488d Mon Sep 17 00:00:00 2001 From: zhouqunjie <450705171@qq.com> Date: Wed, 18 May 2022 11:11:31 +0800 Subject: [PATCH 3/3] ali&huawei sdk fix --- .../pod/server/ali/create_container_group.go | 2 + .../pod/server/ali/delete_container_group.go | 3 + .../pod/server/ali/update_container_group.go | 3 +- adaptor/pod/service/ali_eci.go | 6 +- adaptor/pod/service/huawei_cci.go | 9 +- adaptor/pod/service/k8s.go | 9 +- adaptor/pod/service/tencent_eks.go | 1 + examples/ali.go | 2 +- examples/huawei.go | 39 ++++----- examples/pcm_ali.go | 49 ++++++----- examples/pcm_huawei.go | 83 +++++++------------ 11 files changed, 93 insertions(+), 113 deletions(-) diff --git a/adaptor/pod/server/ali/create_container_group.go b/adaptor/pod/server/ali/create_container_group.go index e782792f..947e0fa8 100644 --- a/adaptor/pod/server/ali/create_container_group.go +++ b/adaptor/pod/server/ali/create_container_group.go @@ -56,6 +56,8 @@ func CreateContainerGroup(request *CreateContainerGroupRequest) (response *Creat memoryPod = strconv.FormatFloat(memoryPodFloat, 'f', 0, 64) + "Gi" case 3: regionId, _ = tenanter.GetK8SRegionId(request.RegionId) + cpuPod = strconv.FormatFloat(cpuPodFloat*1000, 'f', 0, 64) + "m" + memoryPod = strconv.FormatFloat(memoryPodFloat, 'f', 0, 64) + "Gi" } requestPCM := &pbpod.CreatePodReq{ diff --git a/adaptor/pod/server/ali/delete_container_group.go b/adaptor/pod/server/ali/delete_container_group.go index 7eca664d..6eb96b49 100644 --- a/adaptor/pod/server/ali/delete_container_group.go +++ b/adaptor/pod/server/ali/delete_container_group.go @@ -72,6 +72,9 @@ func DeleteContainerGroup(request *DeleteContainerGroupRequest) (response *Delet resp, err := server.DeletePod(nil, requestPCM) + if err != nil { + return nil, err + } response = &DeleteContainerGroupResponse{ BaseResponse: nil, RequestId: resp.RequestId, diff --git a/adaptor/pod/server/ali/update_container_group.go b/adaptor/pod/server/ali/update_container_group.go index 340389d1..00234056 100644 --- a/adaptor/pod/server/ali/update_container_group.go +++ b/adaptor/pod/server/ali/update_container_group.go @@ -72,7 +72,7 @@ func UpdateContainerGroup(request *UpdateContainerGroupRequest) (response *Updat CpuPod: string(containers[0].Cpu), MemoryPod: string(containers[0].Memory), RestartPolicy: request.RestartPolicy, - Labels: "", + Labels: "sss", } resp, err := server.UpdatePod(nil, requestPCM) @@ -94,6 +94,7 @@ type UpdateContainerGroupRequest struct { AccountName string `position:"Query" name:"AccountName"` Namespace string `position:"Query" name:"Namespace"` PcmId string `position:"Query" name:"PcmId"` + PodName string `position:"Query" name:"PodName"` ContainerGroupName string `position:"Query" name:"ContainerGroupName"` /*********PCM param************/ OwnerId requests.Integer `position:"Query" name:"OwnerId"` diff --git a/adaptor/pod/service/ali_eci.go b/adaptor/pod/service/ali_eci.go index 6857b5c1..fa67a1a7 100644 --- a/adaptor/pod/service/ali_eci.go +++ b/adaptor/pod/service/ali_eci.go @@ -126,7 +126,7 @@ func (eci *AliEci) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbp isFinished := true if err != nil { isFinished = false - return nil, errors.Wrap(err, "Aliyun DeletePod error") + return nil, err } glog.Infof("--------------------Aliyun ECI Instance deleted--------------------") @@ -157,7 +157,7 @@ func (eci *AliEci) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbp isFinished := true if err != nil { isFinished = false - return nil, errors.Wrap(err, "Aliyun UpdatePod error") + return nil, err } glog.Infof("--------------------Aliyun ECI Instance updated--------------------") @@ -176,7 +176,7 @@ func (eci *AliEci) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetailRe resp, err := eci.cli.DescribeContainerGroups(request) if err != nil { - return nil, errors.Wrap(err, "Aliyun ListDetail error") + return nil, err } var ecies = make([]*pbpod.PodInstance, len(resp.ContainerGroups)) diff --git a/adaptor/pod/service/huawei_cci.go b/adaptor/pod/service/huawei_cci.go index d72c8b29..e6f902e0 100644 --- a/adaptor/pod/service/huawei_cci.go +++ b/adaptor/pod/service/huawei_cci.go @@ -128,7 +128,7 @@ func (cci *HuaweiCci) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (* resp, err := cci.cli.CoreV1().Pods(req.Namespace).Create(context.TODO(), &pod, metav1.CreateOptions{}) if err != nil { - return nil, errors.Wrap(err, "Huaweiyun CreatePod error") + return nil, err } isFinished := false @@ -152,8 +152,7 @@ func (cci *HuaweiCci) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (* isFinished := true if err != nil { - isFinished = false - return nil, errors.Wrap(err, "Huaweiyun DeletePod error") + return nil, err } glog.Infof("--------------------Huawei CCI Instance deleted--------------------") @@ -171,7 +170,7 @@ func (cci *HuaweiCci) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (* qresp, err := cci.cli.CoreV1().Pods(req.GetNamespace()).Get(context.TODO(), req.PcmId, metav1.GetOptions{}) if err != nil { - return nil, errors.Wrap(err, "Huaweiyun UpdatePod error") + return nil, err } pod := corev1.Pod{ TypeMeta: qresp.TypeMeta, @@ -210,7 +209,7 @@ func (cci *HuaweiCci) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetai resp, err := cci.cli.CoreV1().Pods(req.GetNamespace()).List(context.TODO(), metav1.ListOptions{}) if err != nil { - return nil, errors.Wrap(err, "Huaweiyun ListDetail pod error") + return nil, err } glog.Info("Huaweiyun ListDetail pod success", resp.Items) var pods = make([]*pbpod.PodInstance, len(resp.Items)) diff --git a/adaptor/pod/service/k8s.go b/adaptor/pod/service/k8s.go index 4b8ed199..8dc4a1fe 100644 --- a/adaptor/pod/service/k8s.go +++ b/adaptor/pod/service/k8s.go @@ -114,7 +114,7 @@ func (k *K8SPoder) CreatePod(ctx context.Context, req *pbpod.CreatePodReq) (*pbp resp, err := k.cli.CoreV1().Pods(req.Namespace).Create(context.TODO(), &pod, metav1.CreateOptions{}) if err != nil { - return nil, errors.Wrap(err, "K8S CreatePod error") + return nil, err } glog.Infof("--------------------K8S Pod Instance created--------------------") @@ -143,8 +143,7 @@ func (k K8SPoder) DeletePod(ctx context.Context, req *pbpod.DeletePodReq) (*pbpo isFinished := true if err != nil { - isFinished = false - return nil, errors.Wrap(err, "K8S DeletePod error") + return nil, err } return &pbpod.DeletePodResp{ @@ -174,7 +173,7 @@ func (k K8SPoder) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpo pod.Spec.Containers[0].Image = req.ContainerImage resp, err := k.cli.CoreV1().Pods(req.Namespace).Update(context.TODO(), &pod, metav1.UpdateOptions{}) if err != nil { - return nil, errors.Wrap(err, "K8S UpdatePod error") + return nil, err } glog.Infof("--------------------K8S Pod Instance updated--------------------") @@ -196,7 +195,7 @@ func (k K8SPoder) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) (*pbpo func (k K8SPoder) ListPodDetail(ctx context.Context, req *pbpod.ListPodDetailReq) (*pbpod.ListPodDetailResp, error) { resp, err := k.cli.CoreV1().Pods(req.GetNamespace()).List(context.TODO(), metav1.ListOptions{}) if err != nil { - return nil, errors.Wrap(err, "K8S ListDetail pod error") + return nil, err } var pods = make([]*pbpod.PodInstance, len(resp.Items)) diff --git a/adaptor/pod/service/tencent_eks.go b/adaptor/pod/service/tencent_eks.go index 5b0d6fa4..b3b3815e 100644 --- a/adaptor/pod/service/tencent_eks.go +++ b/adaptor/pod/service/tencent_eks.go @@ -155,6 +155,7 @@ func (eks *TencentEks) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) ( //创建更新pod请求 request := tencenteks.NewUpdateEKSContainerInstanceRequest() request.EksCiId = &req.PcmId + request.Name = &req.PodName request.RestartPolicy = &req.RestartPolicy request.Containers = make([]*tencenteks.Container, 1) request.Containers[0] = new(tencenteks.Container) diff --git a/examples/ali.go b/examples/ali.go index 25343e58..421e73ed 100644 --- a/examples/ali.go +++ b/examples/ali.go @@ -83,7 +83,7 @@ func aliDelete(client eci.Client) (_err error) { return _err } func main() { - client, _ := CreateClient(tea.String("LTAI5tJbog28gBTVzBmvqCBG"), tea.String("CXTClnd0ZQhxn4C2b5NN1nmra7hl1z")) + client, _ := CreateClient(tea.String(""), tea.String("")) err := aliDelete(*client) diff --git a/examples/huawei.go b/examples/huawei.go index ee5d3303..ebb4912f 100644 --- a/examples/huawei.go +++ b/examples/huawei.go @@ -12,14 +12,14 @@ import ( "k8s.io/client-go/tools/clientcmd/api" ) -//const ( -// apiVersion = "client.authentication.k8s.io/v1beta1" -// cciEndpoint = "https://cci.cn-east-3.myhuaweicloud.com" -// iamEndpoint = "https://iam.cn-east-3.myhuaweicloud.com" -// projectName = "cn-east-3" -// ak = "ATQTIWUT9K66VRMMXKVY" -// sk = "Wa0aixDVuhZOfDZGWvgIJQBHnyiDlGdgDn1Ai5Yy" -//) +const ( + apiVersion = "client.authentication.k8s.io/v1beta1" + cciEndpoint = "https://cci.cn-east-3.myhuaweicloud.com" + iamEndpoint = "https://iam.cn-east-3.myhuaweicloud.com" + projectName = "cn-east-3" + ak = "" + sk = "" +) // NewClientOrigin 通过AK/SK认证创建ClientSet func NewClientOrigin() (*kubernetes.Clientset, error) { @@ -105,8 +105,8 @@ func UpdatePodOrigin(client *kubernetes.Clientset) error { Image: "library/nginx:stable-alpine-perl", Resources: corev1.ResourceRequirements{ Limits: map[corev1.ResourceName]resource.Quantity{ - corev1.ResourceCPU: resource.MustParse("500m"), - corev1.ResourceMemory: resource.MustParse("1Gi"), + corev1.ResourceCPU: resource.MustParse("1000m"), + corev1.ResourceMemory: resource.MustParse("2Gi"), }, }, }, @@ -121,7 +121,7 @@ func UpdatePodOrigin(client *kubernetes.Clientset) error { // DeletePodOrigin 删除Pod func DeletePodOrigin(client *kubernetes.Clientset) error { - return client.CoreV1().Pods("pcm").Delete(context.TODO(), "podName", metav1.DeleteOptions{}) + return client.CoreV1().Pods("pcm").Delete(context.TODO(), "hw-sdk-test", metav1.DeleteOptions{}) } // ListPodOrigin 查询Pod @@ -135,20 +135,9 @@ func main() { cs, _ := NewClientOrigin() - fmt.Println("start to create Pod") - CreatePodOrigin(cs) - fmt.Println("Pod created") - - fmt.Println("start to get Pod details") - ListPodOrigin(cs) - fmt.Println("Pod details got") - - fmt.Println("start to update Pod") - UpdatePodOrigin(cs) - fmt.Println("Pod updated") - - fmt.Println("start to delete Pod") + //CreatePodOrigin(cs) + //ListPodOrigin(cs) + //UpdatePodOrigin(cs) DeletePodOrigin(cs) - fmt.Println("Pod deleted") } diff --git a/examples/pcm_ali.go b/examples/pcm_ali.go index fd85fba1..c38770fe 100644 --- a/examples/pcm_ali.go +++ b/examples/pcm_ali.go @@ -4,18 +4,23 @@ import ( pcm_pod_ali "code.gitlink.org.cn/JCCE/PCM.git/adaptor/pod/server/ali" ) +/***** +regionId ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 +image: tencent nginx:latest + ali registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx + huawei library/nginx:stable-alpine-perl +*****/ func aliCreatePCM() (_err error) { request := pcm_pod_ali.CreateCreateContainerGroupRequest() /****************PCM params******************/ - request.ProviderId = 1 - //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 - request.RegionId = "ap-guangzhou" + request.ProviderId = 3 + request.RegionId = "cn-east-3" request.Namespace = "pcm" /****************PCM params******************/ - request.ContainerGroupName = "pcm0517" + request.ContainerGroupName = "pcm0518" requestContainer := make([]pcm_pod_ali.CreateContainerGroupContainer, 1) - requestContainer[0].Image = "nginx:latest" + requestContainer[0].Image = "nginx/nginx:latest" requestContainer[0].Name = "pcm" requestContainer[0].Cpu = "1" requestContainer[0].Memory = "2" @@ -31,14 +36,14 @@ func aliDescribePCM() (_err error) { request := pcm_pod_ali.CreateDescribeContainerGroupsRequest() /****************PCM params******************/ - request.ProviderId = 1 + request.ProviderId = 3 //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 - request.RegionId = "ap-guangzhou" + request.RegionId = "cn-east-3" request.Namespace = "pcm" /****************PCM params******************/ resp, _err := pcm_pod_ali.DescribeContainerGroups(request) - println(resp.ContainerGroups[0].ContainerGroupId) + println(resp.ContainerGroups[0].ContainerGroupName) return _err } @@ -47,18 +52,18 @@ func aliUpdatePCM() (_err error) { request := pcm_pod_ali.CreateUpdateContainerGroupRequest() /****************PCM params******************/ - request.ProviderId = 1 - //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 - request.RegionId = "ap-guangzhou" + request.ProviderId = 3 + request.RegionId = "cn-east-3" request.Namespace = "pcm" - request.PcmId = "eksci-ofdhm7h0" + request.PcmId = "pcm0517" /****************PCM params******************/ - request.RestartPolicy = "Always" + request.PodName = "pcm0517" + request.RestartPolicy = "Never" requestContainer := make([]pcm_pod_ali.UpdateContainerGroupContainer, 1) - requestContainer[0].Cpu = "1" - requestContainer[0].Memory = "2" - requestContainer[0].Image = "nginx" - requestContainer[0].Name = "pc-mNew" + requestContainer[0].Cpu = "2" + requestContainer[0].Memory = "4" + requestContainer[0].Image = "nginx:latest" + requestContainer[0].Name = "pcm" request.Container = &requestContainer resp, _err := pcm_pod_ali.UpdateContainerGroup(request) @@ -71,19 +76,19 @@ func aliDeletePCM() (_err error) { request := pcm_pod_ali.CreateDeleteContainerGroupRequest() /****************PCM params******************/ - request.ProviderId = 1 + request.ProviderId = 3 //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 - request.RegionId = "ap-guangzhou" + request.RegionId = "cn-east-3" request.Namespace = "pcm" - request.PcmId = "eksci-ofdhm7h0" + request.PcmId = "hw-sdk-hwk8s" /****************PCM params******************/ - request.ContainerGroupId = "eksci-hhfpfms6" resp, _err := pcm_pod_ali.DeleteContainerGroup(request) - println(resp.RequestId) if _err != nil { return _err } + println(resp.RequestId) + return _err } diff --git a/examples/pcm_huawei.go b/examples/pcm_huawei.go index c31aec36..cd390776 100644 --- a/examples/pcm_huawei.go +++ b/examples/pcm_huawei.go @@ -13,29 +13,29 @@ import ( ) const ( - apiVersion = "client.authentication.k8s.io/v1beta1" - cciEndpoint = "https://cci.cn-east-3.myhuaweicloud.com" - iamEndpoint = "https://iam.cn-east-3.myhuaweicloud.com" - projectName = "cn-east-3" - ak = "ATQTIWUT9K66VRMMXKVY" - sk = "Wa0aixDVuhZOfDZGWvgIJQBHnyiDlGdgDn1Ai5Yy" + apiVersionPCM = "client.authentication.k8s.io/v1beta1" + cciEndpointPCM = "https://cci.cn-east-3.myhuaweicloud.com" + iamEndpointPCM = "https://iam.cn-east-3.myhuaweicloud.com" + projectNamePCM = "cn-east-3" + akPCM = "" + skPCM = "" ) // NewClient 通过AK/SK认证创建ClientSet func NewClient() (*kubernetes.Clientset, error) { - config, err := clientcmd.BuildConfigFromFlags(cciEndpoint, "") + config, err := clientcmd.BuildConfigFromFlags(cciEndpointPCM, "") if err != nil { return nil, err } var optionArgs []string - optionArgs = append(optionArgs, fmt.Sprintf("--iam-endpoint=%s", iamEndpoint)) - optionArgs = append(optionArgs, fmt.Sprintf("--project-name=%s", projectName)) + optionArgs = append(optionArgs, fmt.Sprintf("--iam-endpoint=%s", iamEndpointPCM)) + optionArgs = append(optionArgs, fmt.Sprintf("--project-name=%s", projectNamePCM)) optionArgs = append(optionArgs, fmt.Sprintf("--token-only=false")) - optionArgs = append(optionArgs, fmt.Sprintf("--ak=%s", ak)) - optionArgs = append(optionArgs, fmt.Sprintf("--sk=%s", sk)) + optionArgs = append(optionArgs, fmt.Sprintf("--ak=%s", akPCM)) + optionArgs = append(optionArgs, fmt.Sprintf("--sk=%s", skPCM)) config.ExecProvider = &api.ExecConfig{ Command: "cci-iam-authenticator", - APIVersion: apiVersion, + APIVersion: apiVersionPCM, Args: append([]string{"token"}, optionArgs...), Env: make([]api.ExecEnvVar, 0), } @@ -51,22 +51,22 @@ func CreatePod(client *kubernetes.Clientset) (*corev1.Pod, error) { Kind: "Pod", }, ObjectMeta: metav1.ObjectMeta{ - Name: "hw-sdk-hwk8s01", + Name: "hw-sdk-hwk8s02", Namespace: "pcm", Labels: map[string]string{"name": "test_api"}, }, Spec: corev1.PodSpec{ /****************PCM params******************/ //0: ali, 1: tencent, 2: huawei,3: k8s - ProviderId: 0, + ProviderId: 3, //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 - RegionId: "cn-hangzhou", + RegionId: "cn-east-3", /****************PCM params******************/ RestartPolicy: corev1.RestartPolicyAlways, Containers: []corev1.Container{ { Name: "sdk-hwk8s01-container", - Image: "registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/alpine:3.5", + Image: "library/nginx:stable-alpine-perl", Resources: corev1.ResourceRequirements{ Limits: map[corev1.ResourceName]resource.Quantity{ corev1.ResourceCPU: resource.MustParse("1000m"), @@ -98,14 +98,15 @@ func ListPod(client *kubernetes.Clientset) (*corev1.PodList, error) { Spec: corev1.PodSpec{ /****************PCM params******************/ //0: ali, 1: tencent, 2: huawei,3: k8s - ProviderId: 0, + ProviderId: 3, //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 - //RegionId: "cn-hangzhou", + //RegionId: "cn-east-3", /****************PCM params******************/ }, } podList, _ := client.CoreV1().Pods("pcm").List(context.TODO(), &pod, metav1.ListOptions{}) + println(podList.Items[0].Spec.Containers[0].Name) return podList, nil } @@ -117,26 +118,26 @@ func UpdatePod(client *kubernetes.Clientset) error { Kind: "Pod", }, ObjectMeta: metav1.ObjectMeta{ - Name: "hw-sdk-test002", + Name: "hw-sdk-hwk8s01", Namespace: "pcm", - UID: "eci-bp123wba1qv9xymntd24", + UID: "hw-sdk-hwk8s01", Labels: map[string]string{"name": "test_api222"}, }, Spec: corev1.PodSpec{ /****************PCM params******************/ //0: ali, 1: tencent, 2: huawei,3: k8s - ProviderId: 0, + ProviderId: 2, //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 - RegionId: "cn-hangzhou", + RegionId: "cn-east-3", /****************PCM params******************/ - RestartPolicy: corev1.RestartPolicyAlways, + RestartPolicy: corev1.RestartPolicyNever, Containers: []corev1.Container{ { - Name: "pcm-sdk-huawei-contai", + Name: "pcm-sdk-huawei-conta22i", Image: "nginx:latest", Resources: corev1.ResourceRequirements{ Limits: map[corev1.ResourceName]resource.Quantity{ - corev1.ResourceCPU: resource.MustParse("2000m"), + corev1.ResourceCPU: resource.MustParse("500m"), corev1.ResourceMemory: resource.MustParse("1Gi"), }, }, @@ -156,37 +157,17 @@ func UpdatePod(client *kubernetes.Clientset) error { // DeletePod 删除Pod func DeletePod(client *kubernetes.Clientset) error { //多出5个参数 namespace providerId regionName accountName pcmId - return client.CoreV1().Pods("pcm").Delete(context.TODO(), "pcm", 0, "cn-hangzhou", - "", "eci-bp123wba1qv9xymntd24", metav1.DeleteOptions{}) + return client.CoreV1().Pods("pcm").Delete(context.TODO(), "pcm", 3, "cn-east-3", + "", "hw-sdk-hwk8s02", metav1.DeleteOptions{}) } func main() { cs, _ := NewClient() - fmt.Println("start to create Pod") - _, err := CreatePod(cs) - if err != nil { - return - } - fmt.Println("Pod created") - //fmt.Println("start to get Pod details") - //_, err = ListPod(cs) - //if err != nil { - // return - //} - //fmt.Println("Pod details got") - //fmt.Println("start to update Pod") - //err = UpdatePod(cs) - //if err != nil { - // return - //} - //fmt.Println("Pod updated") - //fmt.Println("start to delete Pod") - //err = DeletePod(cs) - //if err != nil { - // return - //} - //fmt.Println("Pod deleted") + //CreatePod(cs) + //ListPod(cs) + //UpdatePod(cs) + DeletePod(cs) }