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 *fed_api.FederatedReplicaSetPreferences) *Planner
func (*Planner) Plan ¶
func (p *Planner) Plan(replicasToDistribute int64, availableClusters []string, currentReplicaCount map[string]int64, estimatedCapacity map[string]int64) (map[string]int64, map[string]int64)
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 prefered number of replicas, however if sum of MinReplicas for all cluster is bigger thant replicasToDistribute 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. 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 scheudled we will be closer to the desired replicas layout.