autoscaling

package
v0.0.0-...-24d954f Latest Latest
Warning

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

Go to latest
Published: May 18, 2020 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNotRunningEC2 = errors.New("not running within Amazon EC2")

ErrNotRunningEC2 represents error for not running within Amazon EC2 when daemon mode

Functions

func AliasToIP

func AliasToIP(alias string) (string, error)

AliasToIP resolve autoscaling instance private ip address

func AutoScaling

func AutoScaling(configPath string) ([]halib.AutoScalingData, error)

AutoScaling list autoscaling instances

func CompareInstances

func CompareInstances(client *AWSClient, name, prefix string) ([]string, error)

CompareInstances returns instance ids of difference between dbms and result of AWS API. It return contains instance id which found in result of AWS API but not in dbms.

In following case, return `[]string{"i-dddddd", "i-eeeeee"}`.

dbms   : i-aaaaaa, i-bbbbbb, i-cccccc
AWS API: i-aaaaaa, i-bbbbbb, i-dddddd, i-eeeeee

func DeleteAutoScaling

func DeleteAutoScaling(autoScalingGroupName string) error

DeleteAutoScaling delete autoscaling instances data

func DeregisterAutoScalingInstance

func DeregisterAutoScalingInstance(instanceID string) error

DeregisterAutoScalingInstance deregister autoscaling instance from dbms

func GetAssignedInstance

func GetAssignedInstance(autoScalingGroupName string) (string, error)

GetAssignedInstance return ip assigned instance

func GetAutoScalingConfig

func GetAutoScalingConfig(configFile string) (halib.AutoScalingConfig, error)

GetAutoScalingConfig returns autoscaling config file

func JoinAutoScalingGroup

func JoinAutoScalingGroup(client *NodeAWSClient, endpoint string) (halib.MetricConfig, error)

JoinAutoScalingGroup register request to auto scaling bastion

func LeaveAutoScalingGroup

func LeaveAutoScalingGroup(client *NodeAWSClient, endpoint string) error

LeaveAutoScalingGroup deregister request to auto scaling bastion

func RefreshAutoScalingInstances

func RefreshAutoScalingInstances(client *AWSClient, autoScalingGroupName, hostPrefix string, autoscalingCount int) error

RefreshAutoScalingInstances refresh alias maps

func RegisterAutoScalingInstance

func RegisterAutoScalingInstance(autoScalingGroupName, hostPrefix, instanceID, ip string) (string, halib.InstanceData, error)

RegisterAutoScalingInstance register autoscaling instance to dbms

func SaveAutoScalingConfig

func SaveAutoScalingConfig(config halib.AutoScalingConfig, configFile string) error

SaveAutoScalingConfig save autoscaling config to config file

func SaveAutoScalingMetricConfig

func SaveAutoScalingMetricConfig(autoScalingGroupName string, metricConfig halib.MetricConfig) error

SaveAutoScalingMetricConfig save metric config of autoscaling instance to dbms

Types

type AWSClient

type AWSClient struct {
	SvcEC2         ec2iface.EC2API
	SvcAutoscaling autoscalingiface.AutoScalingAPI
}

AWSClient allows you to get the list of IP addresses of instanes of an Auto Scaling group

func NewAWSClient

func NewAWSClient() (*AWSClient, error)

NewAWSClient returns AWSClient when running within Amazon EC2. If running in not Amazon EC2, returns ErrNotRunningEC2 as an error.

type EC2MetadataAPI

type EC2MetadataAPI interface {
	Available() bool
	GetInstanceIdentityDocument() (ec2metadata.EC2InstanceIdentityDocument, error)
}

EC2MetadataAPI interface of ec2metadata.EC2Metadata

type NodeAWSClient

type NodeAWSClient struct {
	SvcSSM         ssmiface.SSMAPI
	SvcAutoScaling autoscalingiface.AutoScalingAPI
	SvcEC2Metadata EC2MetadataAPI
}

NodeAWSClient provides interface to SSM Parameter Store

func NewNodeAWSClient

func NewNodeAWSClient() (*NodeAWSClient, error)

NewNodeAWSClient returns NodeAWSClient when running within Amazon EC2. If running in not Amazon EC2, returns ErrNotRunningEC2 as an error.

func (*NodeAWSClient) GetAutoScalingGroupName

func (client *NodeAWSClient) GetAutoScalingGroupName(instanceID string) (string, error)

GetAutoScalingGroupName return autoscaling group name

func (*NodeAWSClient) GetAutoScalingNodeConfigParameters

func (client *NodeAWSClient) GetAutoScalingNodeConfigParameters(path string) (halib.AutoScalingNodeConfigParameters, error)

GetAutoScalingNodeConfigParameters returns parameters of autoscaling node config from AWS SSM Parameter Store

func (*NodeAWSClient) GetInstanceMetadata

func (client *NodeAWSClient) GetInstanceMetadata() (string, string, error)

GetInstanceMetadata return instance meta data

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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