clusterstate

package
v0.0.0-...-93f75fa Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2016 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// MaxNodeStartupTime is the maximum time from the moment the node is registered to the time the node is ready.
	MaxNodeStartupTime = 3 * time.Minute
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AcceptableRange

type AcceptableRange struct {
	// MinNodes is the minimum number of nodes in the group.
	MinNodes int
	// MaxNodes is the maximum number of nodes in the group.
	MaxNodes int
	// CurrentTarget is the current target size of the group.
	CurrentTarget int
}

AcceptableRange contains information about acceptable size of a node group.

type ClusterStateRegistry

type ClusterStateRegistry struct {
	sync.Mutex
	// contains filtered or unexported fields
}

ClusterStateRegistry is a structure to keep track the current state of the cluster.

func NewClusterStateRegistry

func NewClusterStateRegistry(cloudProvider cloudprovider.CloudProvider, config ClusterStateRegistryConfig) *ClusterStateRegistry

NewClusterStateRegistry creates new ClusterStateRegistry.

func (*ClusterStateRegistry) IsClusterHealthy

func (csr *ClusterStateRegistry) IsClusterHealthy(currentTime time.Time) bool

IsClusterHealthy returns true if the cluster health is within the acceptable limits

func (*ClusterStateRegistry) IsNodeGroupHealthy

func (csr *ClusterStateRegistry) IsNodeGroupHealthy(nodeGroupName string) bool

IsNodeGroupHealthy returns true if the node group health is within the acceptable limits

func (*ClusterStateRegistry) RegisterScaleDown

func (csr *ClusterStateRegistry) RegisterScaleDown(request *ScaleDownRequest)

RegisterScaleDown registers node scale down.

func (*ClusterStateRegistry) RegisterScaleUp

func (csr *ClusterStateRegistry) RegisterScaleUp(request *ScaleUpRequest)

RegisterScaleUp registers scale up.

func (*ClusterStateRegistry) UpdateNodes

func (csr *ClusterStateRegistry) UpdateNodes(nodes []*apiv1.Node, currentTime time.Time) error

UpdateNodes updates the state of the nodes in the ClusterStateRegistry and recalculates the statss

type ClusterStateRegistryConfig

type ClusterStateRegistryConfig struct {
	// Maximum percentage of unready nodes in total in, if the number is higher than OkTotalUnreadyCount
	MaxTotalUnreadyPercentage float64
	// Number of nodes that can be unready in total. If the number is higer than that then MaxTotalUnreadyPercentage applies.
	OkTotalUnreadyCount int
}

ClusterStateRegistryConfig contains configuration information for ClusterStateRegistry.

type Readiness

type Readiness struct {
	// Number of ready nodes.
	Ready int
	// Number of unready nodes that doesn't fall into other categories.
	Unready int
	// Number of nodes that are being currently deleted.
	Deleted int
	// Number of nodes that failed to start within a reasonable limit.
	LongNotStarted int
	// Number of nodes that are not yet fully started.
	NotStarted int
}

Readiness contains readiness information about a group of nodes.

type ScaleDownRequest

type ScaleDownRequest struct {
	// NodeName is the name of the node to be deleted.
	NodeName string
	// NodeGroupName is the node group of the deleted node.
	NodeGroupName string
	// Time is the time when the node deletion was requested.
	Time time.Time
	// ExpectedDeleteTime is the time when the node is excpected to be deleted.
	ExpectedDeleteTime time.Time
}

ScaleDownRequest contains information about the requested node deletion.

type ScaleUpRequest

type ScaleUpRequest struct {
	// NodeGroupName is the node group to be scaled up.
	NodeGroupName string
	// Time is the time when the request was submitted.
	Time time.Time
	// ExpectedAddTime is the time at which the request should be fulfilled.
	ExpectedAddTime time.Time
	// NodeTemplate is the template of the node that will appear due to this request.
	NodeTemplate *schedulercache.NodeInfo
	// How much the node group is increased.
	Increase int
}

ScaleUpRequest contains information about the requested node group scale up.

Jump to

Keyboard shortcuts

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