Documentation
¶
Index ¶
- Constants
- type AcceptableRange
- type ClusterStateRegistry
- func (csr *ClusterStateRegistry) IsClusterHealthy(currentTime time.Time) bool
- func (csr *ClusterStateRegistry) IsNodeGroupHealthy(nodeGroupName string) bool
- func (csr *ClusterStateRegistry) RegisterScaleDown(request *ScaleDownRequest)
- func (csr *ClusterStateRegistry) RegisterScaleUp(request *ScaleUpRequest)
- func (csr *ClusterStateRegistry) UpdateNodes(nodes []*apiv1.Node, currentTime time.Time) error
- type ClusterStateRegistryConfig
- type Readiness
- type ScaleDownRequest
- type ScaleUpRequest
Constants ¶
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 ¶
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 ¶
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.