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"
|
apiv1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
|
"k8s.io/apimachinery/pkg/util/uuid"
|
||||||
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
|
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
|
||||||
"k8s.io/autoscaler/cluster-autoscaler/clusterstate"
|
"k8s.io/autoscaler/cluster-autoscaler/clusterstate"
|
||||||
"k8s.io/autoscaler/cluster-autoscaler/clusterstate/utils"
|
"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)
|
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 {
|
func getUpcomingNodeInfos(registry *clusterstate.ClusterStateRegistry, nodeInfos map[string]*schedulernodeinfo.NodeInfo) []*apiv1.Node {
|
||||||
upcomingNodes := make([]*apiv1.Node, 0)
|
upcomingNodes := make([]*apiv1.Node, 0)
|
||||||
for nodeGroup, numberOfNodes := range registry.GetUpcomingNodes() {
|
for nodeGroup, numberOfNodes := range registry.GetUpcomingNodes() {
|
||||||
|
|
@ -600,7 +608,8 @@ func getUpcomingNodeInfos(registry *clusterstate.ClusterStateRegistry, nodeInfos
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
for i := 0; i < numberOfNodes; i++ {
|
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
|
return upcomingNodes
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue