Ensure upcoming nodes are different
This commit is contained in:
parent
bf0a9902e6
commit
d45fee06da
|
|
@ -22,6 +22,7 @@ import (
|
|||
|
||||
apiv1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/apimachinery/pkg/util/uuid"
|
||||
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
|
||||
"k8s.io/autoscaler/cluster-autoscaler/clusterstate"
|
||||
"k8s.io/autoscaler/cluster-autoscaler/clusterstate/utils"
|
||||
|
|
@ -591,6 +592,13 @@ func allPodsAreNew(pods []*apiv1.Pod, currentTime time.Time) bool {
|
|||
return found && oldest.Add(unschedulablePodWithGpuTimeBuffer).After(currentTime)
|
||||
}
|
||||
|
||||
func buildNodeForNodeTemplate(nodeTemplate *schedulernodeinfo.NodeInfo, index int) *apiv1.Node {
|
||||
node := nodeTemplate.Node().DeepCopy()
|
||||
node.Name = fmt.Sprintf("%s-%d", node.Name, index)
|
||||
node.UID = uuid.NewUUID()
|
||||
return node
|
||||
}
|
||||
|
||||
func getUpcomingNodeInfos(registry *clusterstate.ClusterStateRegistry, nodeInfos map[string]*schedulernodeinfo.NodeInfo) []*apiv1.Node {
|
||||
upcomingNodes := make([]*apiv1.Node, 0)
|
||||
for nodeGroup, numberOfNodes := range registry.GetUpcomingNodes() {
|
||||
|
|
@ -600,7 +608,8 @@ func getUpcomingNodeInfos(registry *clusterstate.ClusterStateRegistry, nodeInfos
|
|||
continue
|
||||
}
|
||||
for i := 0; i < numberOfNodes; i++ {
|
||||
upcomingNodes = append(upcomingNodes, nodeTemplate.Node())
|
||||
// Ensure new nodes having different names because nodeName would used as a map key.
|
||||
upcomingNodes = append(upcomingNodes, buildNodeForNodeTemplate(nodeTemplate, i))
|
||||
}
|
||||
}
|
||||
return upcomingNodes
|
||||
|
|
|
|||
Loading…
Reference in New Issue