diff --git a/k8s/jobs/task_to_job.go b/k8s/jobs/task_to_job.go index 8212b7983..9da6c1abf 100644 --- a/k8s/jobs/task_to_job.go +++ b/k8s/jobs/task_to_job.go @@ -6,6 +6,7 @@ import ( eiriniv1 "code.cloudfoundry.org/eirini-controller/pkg/apis/eirini/v1" batch "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" ) const ( @@ -49,6 +50,16 @@ func (m *Converter) Convert(task *eiriniv1.Task, privateRegistrySecret *corev1.S ImagePullPolicy: corev1.PullAlways, Env: envs, Command: task.Spec.Command, + Resources: corev1.ResourceRequirements{ + Limits: map[corev1.ResourceName]resource.Quantity{ + corev1.ResourceMemory: *resource.NewScaledQuantity(task.Spec.MemoryMB, resource.Mega), + corev1.ResourceEphemeralStorage: *resource.NewScaledQuantity(task.Spec.DiskMB, resource.Mega), + }, + Requests: map[corev1.ResourceName]resource.Quantity{ + corev1.ResourceMemory: *resource.NewScaledQuantity(task.Spec.MemoryMB, resource.Mega), + corev1.ResourceEphemeralStorage: *resource.NewScaledQuantity(task.Spec.DiskMB, resource.Mega), + }, + }, }, } diff --git a/k8s/jobs/task_to_job_test.go b/k8s/jobs/task_to_job_test.go index 8a1272b37..31351ecd7 100644 --- a/k8s/jobs/task_to_job_test.go +++ b/k8s/jobs/task_to_job_test.go @@ -11,6 +11,7 @@ import ( . "github.com/onsi/gomega/gstruct" batch "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -143,6 +144,14 @@ var _ = Describe("TaskToJob", func() { corev1.LocalObjectReference{Name: "registry-secret"}, )) }) + + By("setting limits and request", func() { + resources := job.Spec.Template.Spec.Containers[0].Resources + Expect(resources.Limits.Memory().ScaledValue(resource.Mega)).To(BeNumerically("==", 1)) + Expect(resources.Requests.Memory().ScaledValue(resource.Mega)).To(BeNumerically("==", 1)) + Expect(resources.Limits.StorageEphemeral().ScaledValue(resource.Mega)).To(BeNumerically("==", 3)) + Expect(resources.Requests.StorageEphemeral().ScaledValue(resource.Mega)).To(BeNumerically("==", 3)) + }) }) When("the task has environment set", func() {