diff --git a/adaptor/pod/server/ali/create_container_group.go b/adaptor/pod/server/ali/create_container_group.go index 16199791..947e0fa8 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,15 +43,21 @@ 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) + cpuPod = strconv.FormatFloat(cpuPodFloat*1000, 'f', 0, 64) + "m" + memoryPod = strconv.FormatFloat(memoryPodFloat, 'f', 0, 64) + "Gi" } requestPCM := &pbpod.CreatePodReq{ @@ -62,8 +68,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..6eb96b49 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() @@ -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,14 +66,15 @@ func DeleteContainerGroup(request *DeleteContainerGroupRequest) (response *Delet Provider: provider, AccountName: request.AccountName, PcmId: pcmId, - PodId: podId, - PodName: podName, Namespace: request.Namespace, RegionId: regionId, } resp, err := server.DeletePod(nil, requestPCM) + if err != nil { + return nil, err + } response = &DeleteContainerGroupResponse{ BaseResponse: nil, RequestId: resp.RequestId, @@ -94,6 +92,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 dc2f7c49..00234056 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() @@ -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, @@ -71,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) @@ -92,6 +93,8 @@ 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"` + 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 d959faaf..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,12 +170,12 @@ 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, ObjectMeta: metav1.ObjectMeta{ - Name: req.PodName, + Name: req.PcmId, Namespace: req.Namespace, Labels: map[string]string{"name": req.Labels}, }, @@ -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 1ca64092..b3b3815e 100644 --- a/adaptor/pod/service/tencent_eks.go +++ b/adaptor/pod/service/tencent_eks.go @@ -155,16 +155,12 @@ func (eks *TencentEks) UpdatePod(ctx context.Context, req *pbpod.UpdatePodReq) ( //创建更新pod请求 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.RestartPolicy = &req.RestartPolicy 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/ali.go b/examples/ali.go index fcd90396..421e73ed 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(""), tea.String("")) + + err := aliDelete(*client) + if err != nil { panic(err) } + } diff --git a/examples/huawei.go b/examples/huawei.go index bdce68b5..ebb4912f 100644 --- a/examples/huawei.go +++ b/examples/huawei.go @@ -17,8 +17,8 @@ const ( cciEndpoint = "https://cci.cn-east-3.myhuaweicloud.com" iamEndpoint = "https://iam.cn-east-3.myhuaweicloud.com" projectName = "cn-east-3" - ak = "ATQTIWUT9K66VRMMXKVY" - sk = "Wa0aixDVuhZOfDZGWvgIJQBHnyiDlGdgDn1Ai5Yy" + ak = "" + sk = "" ) // NewClientOrigin 通过AK/SK认证创建ClientSet @@ -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 9a492395..c38770fe 100644 --- a/examples/pcm_ali.go +++ b/examples/pcm_ali.go @@ -2,51 +2,99 @@ 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) { +/***** +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() - //查询 - //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 = 3 + request.RegionId = "cn-east-3" + request.Namespace = "pcm" + /****************PCM params******************/ + request.ContainerGroupName = "pcm0518" + requestContainer := make([]pcm_pod_ali.CreateContainerGroupContainer, 1) + requestContainer[0].Image = "nginx/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 = 3 + //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].ContainerGroupName) + + return _err +} + +func aliUpdatePCM() (_err error) { + request := pcm_pod_ali.CreateUpdateContainerGroupRequest() + + /****************PCM params******************/ + request.ProviderId = 3 + request.RegionId = "cn-east-3" + request.Namespace = "pcm" + request.PcmId = "pcm0517" + /****************PCM params******************/ + request.PodName = "pcm0517" + request.RestartPolicy = "Never" + requestContainer := make([]pcm_pod_ali.UpdateContainerGroupContainer, 1) + 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) + println(resp.RequestId) + + return _err +} + +func aliDeletePCM() (_err error) { + + request := pcm_pod_ali.CreateDeleteContainerGroupRequest() + /****************PCM params******************/ + request.ProviderId = 3 + //ali:cn-hangzhou tc:ap-guangzhou hw: cn-east-3 + request.RegionId = "cn-east-3" + request.Namespace = "pcm" + request.PcmId = "hw-sdk-hwk8s" + /****************PCM params******************/ + + resp, _err := pcm_pod_ali.DeleteContainerGroup(request) + if _err != nil { + return _err + } + println(resp.RequestId) + return _err } func main() { - err := _main(tea.StringSlice(os.Args[1:])) + + err := aliDeletePCM() if err != nil { panic(err) } diff --git a/examples/pcm_huawei.go b/examples/pcm_huawei.go index ca2a9e51..cd390776 100644 --- a/examples/pcm_huawei.go +++ b/examples/pcm_huawei.go @@ -12,21 +12,30 @@ import ( "k8s.io/client-go/tools/clientcmd/api" ) +const ( + 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), } @@ -42,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"), @@ -89,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 } @@ -108,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"), }, }, @@ -147,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) } 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