diff --git a/internal/controller/provisioner/objects.go b/internal/controller/provisioner/objects.go index 26e5effd6b..89a078f166 100644 --- a/internal/controller/provisioner/objects.go +++ b/internal/controller/provisioner/objects.go @@ -1019,6 +1019,7 @@ func (p *NginxProvisioner) buildNginxPodTemplateSpec( }, } + var containerResources corev1.ResourceRequirements if nProxyCfg != nil && nProxyCfg.Kubernetes != nil { var podSpec *ngfAPIv1alpha2.PodSpec var containerSpec *ngfAPIv1alpha2.ContainerSpec @@ -1042,7 +1043,8 @@ func (p *NginxProvisioner) buildNginxPodTemplateSpec( if containerSpec != nil { container := spec.Spec.Containers[0] if containerSpec.Resources != nil { - container.Resources = *containerSpec.Resources + containerResources = *containerSpec.Resources + container.Resources = containerResources } container.Lifecycle = containerSpec.Lifecycle container.VolumeMounts = append(container.VolumeMounts, containerSpec.VolumeMounts...) @@ -1174,6 +1176,7 @@ func (p *NginxProvisioner) buildNginxPodTemplateSpec( Image: p.cfg.GatewayPodConfig.Image, ImagePullPolicy: pullPolicy, Command: command, + Resources: containerResources, SecurityContext: &corev1.SecurityContext{ AllowPrivilegeEscalation: helpers.GetPointer(false), Capabilities: &corev1.Capabilities{ diff --git a/internal/controller/provisioner/objects_test.go b/internal/controller/provisioner/objects_test.go index d19bd6e1e2..e9aaa51fef 100644 --- a/internal/controller/provisioner/objects_test.go +++ b/internal/controller/provisioner/objects_test.go @@ -1883,7 +1883,20 @@ func TestBuildNginxResourceObjects_InferenceExtension(t *testing.T) { }, } - objects, err := provisioner.buildNginxResourceObjects("gw-nginx", gateway, &graph.EffectiveNginxProxy{}) + npCfg := &graph.EffectiveNginxProxy{ + Kubernetes: &ngfAPIv1alpha2.KubernetesSpec{ + Deployment: &ngfAPIv1alpha2.DeploymentSpec{ + Container: ngfAPIv1alpha2.ContainerSpec{ + Resources: &corev1.ResourceRequirements{ + Limits: corev1.ResourceList{ + corev1.ResourceCPU: resource.MustParse("500m"), + }, + }, + }, + }, + }, + } + objects, err := provisioner.buildNginxResourceObjects("gw-nginx", gateway, npCfg) g.Expect(err).ToNot(HaveOccurred()) // Find the deployment object @@ -1907,4 +1920,5 @@ func TestBuildNginxResourceObjects_InferenceExtension(t *testing.T) { g.Expect(containers).To(HaveLen(2)) g.Expect(containers[1].Name).To(Equal("endpoint-picker-shim")) g.Expect(containers[1].Command).To(Equal(expectedCommands)) + g.Expect(containers[1].Resources.Limits).To(HaveKeyWithValue(corev1.ResourceCPU, resource.MustParse("500m"))) }