Skip to content

Commit 0f538c6

Browse files
committed
Add resource/limits for temporary pod created to read NIM manifests
Signed-off-by: Shiva Krishna, Merla <smerla@nvidia.com>
1 parent 58f3e77 commit 0f538c6

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

internal/controller/nimcache_controller.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -967,6 +967,16 @@ func constructPodSpec(nimCache *appsv1alpha1.NIMCache, platformType k8sutil.Orch
967967
RunAsGroup: nimCache.GetGroupID(),
968968
RunAsUser: nimCache.GetUserID(),
969969
},
970+
Resources: corev1.ResourceRequirements{
971+
Limits: map[corev1.ResourceName]apiResource.Quantity{
972+
"cpu": nimCache.Spec.Resources.CPU,
973+
"memory": nimCache.Spec.Resources.Memory,
974+
},
975+
Requests: map[corev1.ResourceName]apiResource.Quantity{
976+
"cpu": nimCache.Spec.Resources.CPU,
977+
"memory": nimCache.Spec.Resources.Memory,
978+
},
979+
},
970980
},
971981
},
972982
SecurityContext: &corev1.PodSecurityContext{
@@ -1118,6 +1128,16 @@ func (r *NIMCacheReconciler) constructJob(ctx context.Context, nimCache *appsv1a
11181128
SubPath: nimCache.Spec.Storage.PVC.SubPath,
11191129
},
11201130
},
1131+
Resources: corev1.ResourceRequirements{
1132+
Limits: map[corev1.ResourceName]apiResource.Quantity{
1133+
"cpu": nimCache.Spec.Resources.CPU,
1134+
"memory": nimCache.Spec.Resources.Memory,
1135+
},
1136+
Requests: map[corev1.ResourceName]apiResource.Quantity{
1137+
"cpu": nimCache.Spec.Resources.CPU,
1138+
"memory": nimCache.Spec.Resources.Memory,
1139+
},
1140+
},
11211141
SecurityContext: &corev1.SecurityContext{
11221142
AllowPrivilegeEscalation: ptr.To[bool](false),
11231143
Capabilities: &corev1.Capabilities{

internal/controller/nimcache_controller_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
corev1 "k8s.io/api/core/v1"
2929
rbacv1 "k8s.io/api/rbac/v1"
3030
"k8s.io/apimachinery/pkg/api/errors"
31+
"k8s.io/apimachinery/pkg/api/resource"
3132
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3233
"k8s.io/apimachinery/pkg/runtime"
3334
"k8s.io/apimachinery/pkg/types"
@@ -343,8 +344,13 @@ var _ = Describe("NIMCache Controller", func() {
343344
},
344345
Spec: appsv1alpha1.NIMCacheSpec{
345346
Source: appsv1alpha1.NIMSource{NGC: &appsv1alpha1.NGCSource{ModelPuller: "nvcr.io/nim:test", PullSecret: "my-secret"}},
347+
Resources: appsv1alpha1.Resources{
348+
CPU: resource.MustParse("250m"),
349+
Memory: resource.MustParse("256Mi"),
350+
},
346351
},
347352
}
353+
348354
pod := constructPodSpec(nimCache, k8sutil.K8s)
349355
Expect(pod.Name).To(Equal(getPodName(nimCache)))
350356
Expect(pod.Spec.Containers[0].Image).To(Equal("nvcr.io/nim:test"))
@@ -353,6 +359,12 @@ var _ = Describe("NIMCache Controller", func() {
353359
Expect(*pod.Spec.SecurityContext.FSGroup).To(Equal(int64(2000)))
354360
Expect(*pod.Spec.SecurityContext.RunAsNonRoot).To(Equal(true))
355361
Expect(pod.Spec.NodeSelector["feature.node.kubernetes.io/pci-10de.present"]).To(Equal("true"))
362+
// Add resource checks
363+
resources := pod.Spec.Containers[0].Resources
364+
Expect(resources.Requests.Cpu().String()).To(Equal("250m"))
365+
Expect(resources.Requests.Memory().String()).To(Equal("256Mi"))
366+
Expect(resources.Limits.Cpu().String()).To(Equal("250m"))
367+
Expect(resources.Limits.Memory().String()).To(Equal("256Mi"))
356368
})
357369

358370
It("should construct a pod with runtime class and node selector", func() {

0 commit comments

Comments
 (0)