Documentation
¶
Index ¶
- Constants
- Variables
- func CreateDescribeInstancesTag(tags map[string]string) (instanceTags []ecs.DescribeInstancesTag)
- func CreateInstanceDataDisk(dataDisks []string) (instanceDisks []ecs.RunInstancesDataDisk)
- func CreateInstanceTag(tags map[string]string) (instanceTags []ecs.RunInstancesTag)
- func LoadConfig(config *Config) error
- type ActionName
- type AliProvider
- func (a *AliProvider) AllocateEipAddress() (eIP, eIPID string, err error)
- func (a *AliProvider) Apply() error
- func (a *AliProvider) AssociateEipAddress(instanceID, eipID string) error
- func (a *AliProvider) AuthorizeSecurityGroup(securityGroupID, portRange string) bool
- func (a *AliProvider) BindEipForMaster0() error
- func (a *AliProvider) ChangeInstanceType(instanceID, cpu, memory string) error
- func (a *AliProvider) ClearCluster()
- func (a *AliProvider) CreatePassword()
- func (a *AliProvider) CreateSecurityGroup() error
- func (a *AliProvider) CreateVPC() error
- func (a *AliProvider) CreateVSwitch() error
- func (a *AliProvider) DeleteInstances() error
- func (a *AliProvider) DeleteResource(resourceKey string, action Alifunc)
- func (a *AliProvider) DeleteSecurityGroup() error
- func (a *AliProvider) DeleteVPC() error
- func (a *AliProvider) DeleteVSwitch() error
- func (a *AliProvider) GetAvailableResource(cores int, memory float64) (instanceType []string, err error)
- func (a *AliProvider) GetInstanceStatus(instanceID string) (instanceStatus string, err error)
- func (a *AliProvider) GetInstancesInfo(instancesRole, expectCount string) (instances []Instance, err error)
- func (a *AliProvider) GetZoneID() error
- func (a *AliProvider) InputIPlist(instanceRole string) (ipList []string, err error)
- func (a *AliProvider) NewClient() error
- func (a *AliProvider) PoweroffInstance(instanceID string) error
- func (a *AliProvider) Reconcile() error
- func (a *AliProvider) ReconcileInstances(instanceRole string) error
- func (a *AliProvider) ReconcileResource(resourceKey string, action Alifunc) error
- func (a *AliProvider) ReleaseEipAddress() error
- func (a *AliProvider) RetryEcsAction(request requests.AcsRequest, response responses.AcsResponse, tryTimes int) error
- func (a *AliProvider) RetryEcsInstanceType(request requests.AcsRequest, response responses.AcsResponse, ...) error
- func (a *AliProvider) RetryEcsRequest(request requests.AcsRequest, response responses.AcsResponse) error
- func (a *AliProvider) RetryVpcRequest(request requests.AcsRequest, response responses.AcsResponse) error
- func (a *AliProvider) RunInstances(instanceRole string, count int) error
- func (a *AliProvider) SaveToDisk() error
- func (a *AliProvider) StartInstance(instanceID string) error
- func (a *AliProvider) TryGetInstance(request *ecs.DescribeInstancesRequest, response *ecs.DescribeInstancesResponse, ...) error
- func (a *AliProvider) UnassociateEipAddress() error
- type Alifunc
- type Config
- type EcsManager
- type Instance
- type VpcManager
Constants ¶
View Source
const ( Scheme = "https" IPProtocol = "tcp" APIServerPortRange = "6443/6443" SSHPortRange = "22/22" SourceCidrIP = "0.0.0.0/0" CidrBlock = "172.16.0.0/24" Policy = "accept" DestinationResource = "InstanceType" InstanceChargeType = "PostPaid" InternetChargeType = "PayByTraffic" ImageID = "centos_7_9_x64_20G_alibase_20210927.vhd" AccessKey = "ACCESSKEYID" AccessSecret = "ACCESSKEYSECRET" Product = "product" Role = "role" Master = "master" Node = "node" Stopped = "Stopped" AvailableTypeStatus = "WithStock" Bandwidth = "100" Digits = "0123456789" Specials = "~=+%^*/()[]{}/!@#$?|" Letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" PasswordLength = 16 DataCategory = "cloud_ssd" AliDomain = "sea.aliyun.com/" AliCloud = "ALI_CLOUD" EipID = AliDomain + "EipID" Master0ID = AliDomain + "Master0ID" Master0InternalIP = AliDomain + "Master0InternalIP" VpcID = AliDomain + "VpcID" VSwitchID = AliDomain + "VSwitchID" SecurityGroupID = AliDomain + "SecurityGroupID" Eip = AliDomain + "ClusterEIP" ZoneID = AliDomain + "ZoneID" RegionID = "RegionID" AliRegionID = AliDomain + RegionID AliMasterIDs = AliDomain + "MasterIDs" AliNodeIDs = AliDomain + "NodeIDs" DefaultRegionID = "cn-chengdu" AliCloudEssd = "cloud_essd" TryTimes = 10 TrySleepTime = time.Second JustGetInstanceInfo = "" ShouldBeDeleteInstancesIDs = "ShouldBeDeleteInstancesIDs" )
Variables ¶
View Source
var DeleteFuncMap = map[ActionName]func(provider *AliProvider){ ReleaseEIP: func(aliProvider *AliProvider) { aliProvider.DeleteResource(EipID, aliProvider.ReleaseEipAddress) }, ClearInstances: func(aliProvider *AliProvider) { var instanceIDs []string roles := []string{Master, Node} for _, role := range roles { instances, err := aliProvider.GetInstancesInfo(role, JustGetInstanceInfo) if err != nil { logrus.Errorf("get %s instanceinfo failed %v", role, err) } for _, instance := range instances { instanceIDs = append(instanceIDs, instance.InstanceID) } } if len(instanceIDs) != 0 { aliProvider.Cluster.Annotations[ShouldBeDeleteInstancesIDs] = strings.Join(instanceIDs, ",") } aliProvider.DeleteResource(ShouldBeDeleteInstancesIDs, aliProvider.DeleteInstances) }, DeleteVSwitch: func(aliProvider *AliProvider) { aliProvider.DeleteResource(VSwitchID, aliProvider.DeleteVSwitch) }, DeleteSecurityGroup: func(aliProvider *AliProvider) { aliProvider.DeleteResource(SecurityGroupID, aliProvider.DeleteSecurityGroup) }, DeleteVPC: func(aliProvider *AliProvider) { aliProvider.DeleteResource(VpcID, aliProvider.DeleteVPC) }, }
View Source
var RecocileFuncMap = map[ActionName]func(provider *AliProvider) error{ CreateVPC: func(aliProvider *AliProvider) error { return aliProvider.ReconcileResource(VpcID, aliProvider.CreateVPC) }, CreateVSwitch: func(aliProvider *AliProvider) error { return aliProvider.ReconcileResource(VSwitchID, aliProvider.CreateVSwitch) }, CreateSecurityGroup: func(aliProvider *AliProvider) error { return aliProvider.ReconcileResource(SecurityGroupID, aliProvider.CreateSecurityGroup) }, ReconcileInstance: func(aliProvider *AliProvider) error { err := aliProvider.ReconcileInstances(Master) if err != nil { return err } err = aliProvider.ReconcileInstances(Node) if err != nil { return err } return nil }, GetZoneID: func(aliProvider *AliProvider) error { return aliProvider.ReconcileResource(ZoneID, aliProvider.GetZoneID) }, BindEIP: func(aliProvider *AliProvider) error { return aliProvider.ReconcileResource(EipID, aliProvider.BindEipForMaster0) }, }
Functions ¶
func CreateDescribeInstancesTag ¶
func CreateDescribeInstancesTag(tags map[string]string) (instanceTags []ecs.DescribeInstancesTag)
func CreateInstanceDataDisk ¶
func CreateInstanceDataDisk(dataDisks []string) (instanceDisks []ecs.RunInstancesDataDisk)
func CreateInstanceTag ¶
func CreateInstanceTag(tags map[string]string) (instanceTags []ecs.RunInstancesTag)
func LoadConfig ¶
Types ¶
type ActionName ¶
type ActionName string
const ( CreateVPC ActionName = "CreateVPC" CreateVSwitch ActionName = "CreateVSwitch" CreateSecurityGroup ActionName = "CreateSecurityGroup" ReconcileInstance ActionName = "ReconcileInstance" BindEIP ActionName = "BindEIP" ReleaseEIP ActionName = "ReleaseEIP" ClearInstances ActionName = "ClearInstances" DeleteVSwitch ActionName = "DeleteVSwitch" DeleteSecurityGroup ActionName = "DeleteSecurityGroup" DeleteVPC ActionName = "DeleteVPC" GetZoneID ActionName = "GetZoneID" )
type AliProvider ¶
type AliProvider struct { Config Config EcsClient ecs.Client VpcClient vpc.Client Cluster *v1.Cluster }
func (*AliProvider) AllocateEipAddress ¶
func (a *AliProvider) AllocateEipAddress() (eIP, eIPID string, err error)
func (*AliProvider) Apply ¶
func (a *AliProvider) Apply() error
func (*AliProvider) AssociateEipAddress ¶
func (a *AliProvider) AssociateEipAddress(instanceID, eipID string) error
func (*AliProvider) AuthorizeSecurityGroup ¶
func (a *AliProvider) AuthorizeSecurityGroup(securityGroupID, portRange string) bool
func (*AliProvider) BindEipForMaster0 ¶
func (a *AliProvider) BindEipForMaster0() error
func (*AliProvider) ChangeInstanceType ¶
func (a *AliProvider) ChangeInstanceType(instanceID, cpu, memory string) error
func (*AliProvider) ClearCluster ¶
func (a *AliProvider) ClearCluster()
func (*AliProvider) CreatePassword ¶
func (a *AliProvider) CreatePassword()
func (*AliProvider) CreateSecurityGroup ¶
func (a *AliProvider) CreateSecurityGroup() error
func (*AliProvider) CreateVPC ¶
func (a *AliProvider) CreateVPC() error
func (*AliProvider) CreateVSwitch ¶
func (a *AliProvider) CreateVSwitch() error
func (*AliProvider) DeleteInstances ¶
func (a *AliProvider) DeleteInstances() error
func (*AliProvider) DeleteResource ¶
func (a *AliProvider) DeleteResource(resourceKey string, action Alifunc)
func (*AliProvider) DeleteSecurityGroup ¶
func (a *AliProvider) DeleteSecurityGroup() error
func (*AliProvider) DeleteVPC ¶
func (a *AliProvider) DeleteVPC() error
func (*AliProvider) DeleteVSwitch ¶
func (a *AliProvider) DeleteVSwitch() error
func (*AliProvider) GetAvailableResource ¶
func (a *AliProvider) GetAvailableResource(cores int, memory float64) (instanceType []string, err error)
func (*AliProvider) GetInstanceStatus ¶
func (a *AliProvider) GetInstanceStatus(instanceID string) (instanceStatus string, err error)
func (*AliProvider) GetInstancesInfo ¶
func (a *AliProvider) GetInstancesInfo(instancesRole, expectCount string) (instances []Instance, err error)
func (*AliProvider) GetZoneID ¶
func (a *AliProvider) GetZoneID() error
func (*AliProvider) InputIPlist ¶
func (a *AliProvider) InputIPlist(instanceRole string) (ipList []string, err error)
func (*AliProvider) NewClient ¶
func (a *AliProvider) NewClient() error
func (*AliProvider) PoweroffInstance ¶
func (a *AliProvider) PoweroffInstance(instanceID string) error
func (*AliProvider) Reconcile ¶
func (a *AliProvider) Reconcile() error
func (*AliProvider) ReconcileInstances ¶
func (a *AliProvider) ReconcileInstances(instanceRole string) error
func (*AliProvider) ReconcileResource ¶
func (a *AliProvider) ReconcileResource(resourceKey string, action Alifunc) error
func (*AliProvider) ReleaseEipAddress ¶
func (a *AliProvider) ReleaseEipAddress() error
func (*AliProvider) RetryEcsAction ¶
func (a *AliProvider) RetryEcsAction(request requests.AcsRequest, response responses.AcsResponse, tryTimes int) error
func (*AliProvider) RetryEcsInstanceType ¶
func (a *AliProvider) RetryEcsInstanceType(request requests.AcsRequest, response responses.AcsResponse, instances []string) error
func (*AliProvider) RetryEcsRequest ¶
func (a *AliProvider) RetryEcsRequest(request requests.AcsRequest, response responses.AcsResponse) error
func (*AliProvider) RetryVpcRequest ¶
func (a *AliProvider) RetryVpcRequest(request requests.AcsRequest, response responses.AcsResponse) error
func (*AliProvider) RunInstances ¶
func (a *AliProvider) RunInstances(instanceRole string, count int) error
func (*AliProvider) SaveToDisk ¶
func (a *AliProvider) SaveToDisk() error
func (*AliProvider) StartInstance ¶
func (a *AliProvider) StartInstance(instanceID string) error
func (*AliProvider) TryGetInstance ¶
func (a *AliProvider) TryGetInstance(request *ecs.DescribeInstancesRequest, response *ecs.DescribeInstancesResponse, expectCount int) error
func (*AliProvider) UnassociateEipAddress ¶
func (a *AliProvider) UnassociateEipAddress() error
type EcsManager ¶
type EcsManager struct { }
type VpcManager ¶
Click to show internal directories.
Click to hide internal directories.