aliyun

package
v0.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 6, 2022 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

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 {
				logger.Error("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

func LoadConfig(config *Config) error

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 added in v0.2.0

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 added in v0.5.1

func (a *AliProvider) RetryEcsAction(request requests.AcsRequest, response responses.AcsResponse, tryTimes int) error

func (*AliProvider) RetryEcsInstanceType added in v0.5.1

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) 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 Alifunc

type Alifunc func() error

type Config

type Config struct {
	AccessKey    string
	AccessSecret string
	RegionID     string
}

type EcsManager

type EcsManager struct {
}

type Instance

type Instance struct {
	CPU              int
	Memory           int
	InstanceID       string
	PrimaryIPAddress string
}

type VpcManager

type VpcManager struct {
	Config Config
	Client *vpc.Client
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL