Documentation
¶
Index ¶
- Constants
- func CalculateUsage(clusterInfo *structs.ClusterCapacity)
- func DescribeAWSRegion() (region string, err error)
- func DescribeScalingGroup(asgName string, svc *autoscaling.AutoScaling) (asg *autoscaling.DescribeAutoScalingGroupsOutput, err error)
- func DetachInstance(asgName, instanceID string, svc *autoscaling.AutoScaling) (err error)
- func GetMostRecentInstance(autoscalingGroup, region string) (node string, err error)
- func MaxAllowedClusterUtilization(capacity *structs.ClusterCapacity, nodeFaultTolerance int, scaleIn bool) (maxAllowedUtilization int)
- func NewAWSAsgService(region string) (Session *autoscaling.AutoScaling)
- func NewConsulClient(addr, token string) (structs.ConsulClient, error)
- func NewNomadClient(addr string) (structs.NomadClient, error)
- func ScaleInCluster(asgName, instanceIP string, svc *autoscaling.AutoScaling) error
- func ScaleOutCluster(asgName string, nodeCount int, svc *autoscaling.AutoScaling) error
- func TerminateInstance(instanceID, region string) error
- func TranslateIptoID(ip, region string) (id string)
Constants ¶
const ( ScalingMetricNone = "None" // All supported allocation resources are unutilized. ScalingMetricDisk = "Disk" ScalingMetricMemory = "Memory" ScalingMetricProcessor = "CPU" )
Scaling metric types indicate the most-utilized resource across the cluster. When evaluating scaling decisions, the most-utilized resource will be prioritized.
const ( ScalingDirectionOut = "Out" ScalingDirectionIn = "In" ScalingDirectionNone = "None" )
Scaling direction types indicate the allowed scaling actions.
Variables ¶
This section is empty.
Functions ¶
func CalculateUsage ¶
func CalculateUsage(clusterInfo *structs.ClusterCapacity)
CalculateUsage determines the percentage of overall cluster resources consumed and calculates the amount of those resources consumed by each worker node.
func DescribeAWSRegion ¶
DescribeAWSRegion uses the EC2 InstanceMetaData endpoint to discover the AWS region in which the instance is running.
func DescribeScalingGroup ¶
func DescribeScalingGroup(asgName string, svc *autoscaling.AutoScaling) (asg *autoscaling.DescribeAutoScalingGroupsOutput, err error)
DescribeScalingGroup returns the AWS ASG information of the specified ASG.
func DetachInstance ¶
func DetachInstance(asgName, instanceID string, svc *autoscaling.AutoScaling) (err error)
DetachInstance will detach a specified instance from a specified ASG and decrements the desired count of the ASG.
func GetMostRecentInstance ¶
GetMostRecentInstance identifies the most recently launched instance in a specified autoscaling group.
func MaxAllowedClusterUtilization ¶
func MaxAllowedClusterUtilization(capacity *structs.ClusterCapacity, nodeFaultTolerance int, scaleIn bool) (maxAllowedUtilization int)
MaxAllowedClusterUtilization calculates the maximum allowed cluster utilization after taking into consideration node fault-tolerance and scaling overhead.
func NewAWSAsgService ¶
func NewAWSAsgService(region string) (Session *autoscaling.AutoScaling)
NewAWSAsgService creates a new AWS API Session and ASG service connection for use across all calls as required.
func NewConsulClient ¶
func NewConsulClient(addr, token string) (structs.ConsulClient, error)
NewConsulClient is used to construct a new Consul client using the default configuration and supporting the ability to specify a Consul API address endpoint in the form of address:port.
func NewNomadClient ¶
func NewNomadClient(addr string) (structs.NomadClient, error)
NewNomadClient is used to create a new client to interact with Nomad. The client implements the NomadClient interface.
func ScaleInCluster ¶
func ScaleInCluster(asgName, instanceIP string, svc *autoscaling.AutoScaling) error
ScaleInCluster scales the cluster size by 1 by using the DetachInstances call to target an instance to remove from the ASG.
func ScaleOutCluster ¶
func ScaleOutCluster(asgName string, nodeCount int, svc *autoscaling.AutoScaling) error
ScaleOutCluster scales the Nomad worker pool by 1 instance, using the current configuration as the basis for undertaking the work.
func TerminateInstance ¶
TerminateInstance will terminate the supplied EC2 instance and confirm successful termination by polling the instance state until the terminated status is reached.
func TranslateIptoID ¶
TranslateIptoID translates the IP address of a node to the EC2 instance ID.
Types ¶
This section is empty.