@@ -910,7 +910,7 @@ var _ = Describe("ResourceReservationService", func() {
910910 gpuGroup := "test-group"
911911 nodeName := "node-test"
912912
913- pod , err := rsc .createResourceReservationPod (nodeName , gpuGroup , podName , resources )
913+ pod , err := rsc .createResourceReservationPod (nil , nodeName , gpuGroup , podName , resources )
914914 Expect (err ).To (BeNil ())
915915 Expect (pod ).NotTo (BeNil ())
916916
@@ -953,6 +953,35 @@ var _ = Describe("ResourceReservationService", func() {
953953 Expect (container .Env ).To (ContainElement (Equal (podNameEnv )))
954954 Expect (container .Env ).To (ContainElement (Equal (podNamespaceEnv )))
955955 })
956+
957+ It ("should copy tolerations from the source pod" , func () {
958+ rsc := & service {
959+ namespace : "kai-resource-reservation" ,
960+ appLabelValue : "kai-reservation" ,
961+ serviceAccountName : "kai-sa" ,
962+ reservationPodImage : "nvidia/kai-reservation:latest" ,
963+ kubeClient : fake .NewClientBuilder ().WithScheme (testScheme ).Build (),
964+ }
965+ sourcePod := & v1.Pod {
966+ Spec : v1.PodSpec {
967+ Tolerations : []v1.Toleration {{
968+ Key : "hpc" ,
969+ Operator : v1 .TolerationOpEqual ,
970+ Value : "true" ,
971+ Effect : v1 .TaintEffectNoExecute ,
972+ }},
973+ },
974+ }
975+
976+ pod , err := rsc .createResourceReservationPod (
977+ sourcePod , "node-test" , "test-group" , "reservation-test" , v1.ResourceRequirements {},
978+ )
979+ Expect (err ).To (Succeed ())
980+ Expect (pod .Spec .Tolerations ).To (Equal (sourcePod .Spec .Tolerations ))
981+
982+ sourcePod .Spec .Tolerations [0 ].Value = "changed"
983+ Expect (pod .Spec .Tolerations [0 ].Value ).To (Equal ("true" ))
984+ })
956985 })
957986
958987 Context ("RemovePodGpuGroupsConnection" , func () {
@@ -1116,7 +1145,7 @@ var _ = Describe("ResourceReservationService", func() {
11161145 scalingPodNamespace : scalingPodsNamespace ,
11171146 }
11181147
1119- pod , err := rsc .createGPUReservationPod (context .TODO (), "test-node" , "test-gpu-group" )
1148+ pod , err := rsc .createGPUReservationPod (context .TODO (), nil , "test-node" , "test-gpu-group" )
11201149 Expect (err ).To (BeNil ())
11211150 Expect (pod ).NotTo (BeNil ())
11221151
@@ -1146,7 +1175,7 @@ var _ = Describe("ResourceReservationService", func() {
11461175 scalingPodNamespace : scalingPodsNamespace ,
11471176 }
11481177
1149- pod , err := rsc .createGPUReservationPod (context .TODO (), "test-node" , "test-gpu-group" )
1178+ pod , err := rsc .createGPUReservationPod (context .TODO (), nil , "test-node" , "test-gpu-group" )
11501179 Expect (err ).To (BeNil ())
11511180 Expect (pod ).NotTo (BeNil ())
11521181
@@ -1188,7 +1217,7 @@ var _ = Describe("ResourceReservationService", func() {
11881217 scalingPodNamespace : scalingPodsNamespace ,
11891218 }
11901219
1191- pod , err := rsc .createGPUReservationPod (context .TODO (), "test-node" , "test-gpu-group" )
1220+ pod , err := rsc .createGPUReservationPod (context .TODO (), nil , "test-node" , "test-gpu-group" )
11921221 Expect (err ).To (BeNil ())
11931222 Expect (pod ).NotTo (BeNil ())
11941223
@@ -1227,7 +1256,7 @@ var _ = Describe("ResourceReservationService", func() {
12271256 scalingPodNamespace : scalingPodsNamespace ,
12281257 }
12291258
1230- pod , err := rsc .createGPUReservationPod (context .TODO (), "test-node" , "test-gpu-group" )
1259+ pod , err := rsc .createGPUReservationPod (context .TODO (), nil , "test-node" , "test-gpu-group" )
12311260 Expect (err ).To (BeNil ())
12321261 Expect (pod ).NotTo (BeNil ())
12331262
@@ -1505,7 +1534,7 @@ var _ = Describe("Race condition: reservation pod deleted during concurrent bind
15051534 nil , podSecCtx , containerSecCtx )
15061535
15071536 pod , err := svc .createResourceReservationPod (
1508- nodeName , gpuGroup , "test-reservation-pod" ,
1537+ nil , nodeName , gpuGroup , "test-reservation-pod" ,
15091538 v1.ResourceRequirements {
15101539 Limits : v1.ResourceList {constants .NvidiaGpuResource : * resource .NewQuantity (1 , resource .DecimalSI )},
15111540 Requests : v1.ResourceList {constants .NvidiaGpuResource : * resource .NewQuantity (1 , resource .DecimalSI )},
@@ -1525,7 +1554,7 @@ var _ = Describe("Race condition: reservation pod deleted during concurrent bind
15251554 nil , nil , nil )
15261555
15271556 pod , err := svc .createResourceReservationPod (
1528- nodeName , gpuGroup , "test-reservation-pod" ,
1557+ nil , nodeName , gpuGroup , "test-reservation-pod" ,
15291558 v1.ResourceRequirements {
15301559 Limits : v1.ResourceList {constants .NvidiaGpuResource : * resource .NewQuantity (1 , resource .DecimalSI )},
15311560 Requests : v1.ResourceList {constants .NvidiaGpuResource : * resource .NewQuantity (1 , resource .DecimalSI )},
0 commit comments