@@ -159,11 +159,16 @@ func (e *NodeExpander) ProcessExpansion(ctx context.Context, pod *corev1.Pod) er
159159	// Step 4: Caused by insufficient GPU resources, try find node util it satisfies the pod 
160160	preScheduled  :=  false 
161161	for  _ , gpuNode  :=  range  gpuNodes  {
162+ 		// when node is not owned by any known provisioner, skip check, util find a node can be expanded 
163+ 		if  len (gpuNode .OwnerReferences ) ==  0  {
164+ 			continue 
165+ 		}
162166		preparedNode , preparedGPUs  :=  e .prepareNewNodesForScheduleAttempt (gpuNode , nodeGPUs [gpuNode .Name ])
163167		if  ! e .checkGPUFitForNewNode (pod , preparedGPUs ) {
164168			continue 
165169		}
166170
171+ 		e .logger .Info ("prepare new node for schedule attempt from existing node" , "existingNode" , gpuNode .Name , "newNode" , preparedNode .Name )
167172		err  =  e .createGPUNodeClaim (ctx , pod , preparedNode )
168173		if  err  !=  nil  {
169174			return  err 
@@ -402,7 +407,7 @@ func (e *NodeExpander) createGPUNodeClaim(ctx context.Context, pod *corev1.Pod,
402407	}
403408	if  ! isKarpenterNodeClaim  &&  ! isGPUNodeClaim  {
404409		e .logger .Info ("node is not owned by any known provisioner, skip expansion" , "node" , preparedNode .Name )
405- 		return  nil 
410+ 		return  fmt . Errorf ( "node is not owned by any known provisioner, skip expansion" ) 
406411	}
407412	e .logger .Info ("start expanding node from existing template node" , "tmplNode" , preparedNode .Name )
408413	if  isKarpenterNodeClaim  {
0 commit comments