mirror of https://github.com/kubernetes/kops.git
				
				
				
			Add new SLB() for ALICloud with official SDK
This commit is contained in:
		
							parent
							
								
									98c35cd220
								
							
						
					
					
						commit
						074af1c962
					
				|  | @ -24,6 +24,9 @@ import ( | |||
| 
 | ||||
| 	"k8s.io/klog" | ||||
| 
 | ||||
| 	alicloud "github.com/aliyun/alibaba-cloud-sdk-go/sdk" | ||||
| 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials" | ||||
| 	slbnew "github.com/aliyun/alibaba-cloud-sdk-go/services/slb" | ||||
| 	"github.com/denverdino/aliyungo/common" | ||||
| 	"github.com/denverdino/aliyungo/ecs" | ||||
| 	"github.com/denverdino/aliyungo/ess" | ||||
|  | @ -50,6 +53,12 @@ var KubernetesKopsIdentity = fmt.Sprintf("Kubernetes.Kops/%s", prj.Version) | |||
| type ALICloud interface { | ||||
| 	fi.Cloud | ||||
| 
 | ||||
| 	// Clients that use official Alicloud go sdk
 | ||||
| 	SLB() *slbnew.Client | ||||
| 
 | ||||
| 	// Since package github.com/denverdino/aliyungo is not actively maintained,
 | ||||
| 	// clients that use github.com/denverdino/aliyungo, will be deprecated after
 | ||||
| 	// the above official SDK clients covers all of them
 | ||||
| 	EcsClient() *ecs.Client | ||||
| 	SlbClient() *slb.Client | ||||
| 	RamClient() *ram.RamClient | ||||
|  | @ -66,6 +75,8 @@ type ALICloud interface { | |||
| } | ||||
| 
 | ||||
| type aliCloudImplementation struct { | ||||
| 	slb *slbnew.Client | ||||
| 
 | ||||
| 	ecsClient *ecs.Client | ||||
| 	slbClient *slb.Client | ||||
| 	ramClient *ram.RamClient | ||||
|  | @ -100,12 +111,27 @@ func NewALICloud(region string, tags map[string]string) (ALICloud, error) { | |||
| 	c.ramClient = ramclient.(*ram.RamClient) | ||||
| 	c.essClient = ess.NewClient(accessKeyID, accessKeySecret) | ||||
| 	c.vpcClient = ecs.NewVPCClient(accessKeyID, accessKeySecret, common.Region(region)) | ||||
| 
 | ||||
| 	c.tags = tags | ||||
| 
 | ||||
| 	// With Alicloud official go SDK
 | ||||
| 	var err error | ||||
| 
 | ||||
| 	config := alicloud.NewConfig() | ||||
| 	credential := credentials.NewAccessKeyCredential(accessKeyID, accessKeySecret) | ||||
| 
 | ||||
| 	c.slb, err = slbnew.NewClientWithOptions(region, config, credential) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("error creating slb sdk client: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	return c, nil | ||||
| } | ||||
| 
 | ||||
| func (c *aliCloudImplementation) SLB() *slbnew.Client { | ||||
| 	return c.slb | ||||
| } | ||||
| 
 | ||||
| // Clients as below are with github.com/denverdino/aliyungo
 | ||||
| func (c *aliCloudImplementation) EcsClient() *ecs.Client { | ||||
| 	return c.ecsClient | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue