planner

package
v0.1.0-rc5 Latest Latest
Warning

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

Go to latest
Published: Aug 1, 2019 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Planner

type Planner struct {
	// contains filtered or unexported fields
}

Planner decides how many out of the given replicas should be placed in each of the federated clusters.

func NewPlanner

func NewPlanner(preferences *fedschedulingv1a1.ReplicaSchedulingPreference) *Planner

func (*Planner) Plan

func (p *Planner) Plan(availableClusters []string, currentReplicaCount map[string]int64,
	estimatedCapacity map[string]int64, replicaSetKey string) (map[string]int64, map[string]int64, error)

Distribute the desired number of replicas among the given cluster according to the planner preferences. The function tries its best to assign each cluster the preferred number of replicas, however if sum of MinReplicas for all cluster is bigger than replicasToDistribute (TotalReplicas) then some cluster will not have all of the replicas assigned. In such case a cluster with higher weight has priority over cluster with lower weight (or with lexicographically smaller name in case of draw). It can also use the current replica count and estimated capacity to provide better planning and adhere to rebalance policy. To avoid prioritization of clusters with smaller lexicographical names a semi-random string (like replica set name) can be provided. Two maps are returned:

  • a map that contains information how many replicas will be possible to run in a cluster.
  • a map that contains information how many extra replicas would be nice to schedule in a cluster so, if by chance, they are scheduled we will be closer to the desired replicas layout.

Jump to

Keyboard shortcuts

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