Documentation
¶
Index ¶
- Constants
- func CalculateUsage(clusterInfo *structs.ClusterCapacity)
- func Deregister(node string, nodeRegistry *structs.NodeRegistry) (err error)
- func MaxAllowedClusterUtilization(capacity *structs.ClusterCapacity, nodeFaultTolerance int, scaleIn bool) (maxAllowedUtilization int)
- func NewConsulClient(addr, token string) (structs.ConsulClient, error)
- func NewNomadClient(addr string) (structs.NomadClient, error)
- func NodeRegistryUpdated(nodeRegistry *structs.NodeRegistry) (updated bool)
- func ProcessNodeConfig(node *nomad.Node, config *structs.Config) (pool *structs.WorkerPool, err error)
- func Register(node *nomad.Node, workerPool *structs.WorkerPool, ...) error
- func RemoveJobScalingPolicy(jobName string, scaling *structs.JobScalingPolicies)
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 computes the percentage of overall worker pool capacity consumed and computes the amount of that capacity consumed by each node.
func Deregister ¶ added in v1.0.0
func Deregister(node string, nodeRegistry *structs.NodeRegistry) (err error)
Deregister is responsible for removing a node from a worker pool record. If after node deregistration, a worker pool has no remaining nodes, the worker pool is removed from the node registry.
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 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 NodeRegistryUpdated ¶ added in v1.0.0
func NodeRegistryUpdated(nodeRegistry *structs.NodeRegistry) (updated bool)
NodeRegistryUpdated determines if the node registry has been updated and manages updating the node hash.
func ProcessNodeConfig ¶ added in v1.0.0
func ProcessNodeConfig(node *nomad.Node, config *structs.Config) (pool *structs.WorkerPool, err error)
ProcessNodeConfig retrieves detailed information about a node and processes configuration details. If the meta configuration parameters required for scaling and identification of the associated worker pool are successfully processed, they are returned.
func Register ¶ added in v1.0.0
func Register(node *nomad.Node, workerPool *structs.WorkerPool, nodeRegistry *structs.NodeRegistry) error
Register is responsible for registering a newly discovered worker pool or registering a node with an previously discovered worker pool.
func RemoveJobScalingPolicy ¶ added in v1.0.0
func RemoveJobScalingPolicy(jobName string, scaling *structs.JobScalingPolicies)
RemoveJobScalingPolicy deletes the job entry within the the policies map.
Types ¶
This section is empty.