diff --git a/pkg/controller.v1beta1/suggestion/composer/composer.go b/pkg/controller.v1beta1/suggestion/composer/composer.go index 756b3f94610..e77b118eb67 100644 --- a/pkg/controller.v1beta1/suggestion/composer/composer.go +++ b/pkg/controller.v1beta1/suggestion/composer/composer.go @@ -248,6 +248,7 @@ func (g *General) desiredContainers(s *suggestionsv1beta1.Suggestion, ContainerPort: consts.DefaultEarlyStoppingPort, }, }, + Resources: earlyStoppingConfigData.Resource, } containers = append(containers, earlyStoppingContainer) diff --git a/pkg/controller.v1beta1/suggestion/composer/composer_test.go b/pkg/controller.v1beta1/suggestion/composer/composer_test.go index 4c1a24f110a..b9cfdf250e9 100644 --- a/pkg/controller.v1beta1/suggestion/composer/composer_test.go +++ b/pkg/controller.v1beta1/suggestion/composer/composer_test.go @@ -665,9 +665,25 @@ func newFakeSuggestionConfig() katibconfig.SuggestionConfig { } func newFakeEarlyStoppingConfig() katibconfig.EarlyStoppingConfig { + cpuQ, _ := resource.ParseQuantity(cpu) + memoryQ, _ := resource.ParseQuantity(memory) + diskQ, _ := resource.ParseQuantity(disk) + return katibconfig.EarlyStoppingConfig{ Image: image, ImagePullPolicy: imagePullPolicy, + Resource: corev1.ResourceRequirements{ + Limits: corev1.ResourceList{ + corev1.ResourceCPU: cpuQ, + corev1.ResourceMemory: memoryQ, + corev1.ResourceEphemeralStorage: diskQ, + }, + Requests: corev1.ResourceList{ + corev1.ResourceCPU: cpuQ, + corev1.ResourceMemory: memoryQ, + corev1.ResourceEphemeralStorage: diskQ, + }, + }, } } @@ -836,6 +852,18 @@ func newFakeContainers() []corev1.Container { ContainerPort: consts.DefaultEarlyStoppingPort, }, }, + Resources: corev1.ResourceRequirements{ + Limits: corev1.ResourceList{ + corev1.ResourceCPU: cpuQ, + corev1.ResourceMemory: memoryQ, + corev1.ResourceEphemeralStorage: diskQ, + }, + Requests: corev1.ResourceList{ + corev1.ResourceCPU: cpuQ, + corev1.ResourceMemory: memoryQ, + corev1.ResourceEphemeralStorage: diskQ, + }, + }, }, } } diff --git a/pkg/util/v1beta1/katibconfig/config.go b/pkg/util/v1beta1/katibconfig/config.go index cb61494e300..2e3e129cbb0 100644 --- a/pkg/util/v1beta1/katibconfig/config.go +++ b/pkg/util/v1beta1/katibconfig/config.go @@ -46,8 +46,9 @@ type SuggestionConfig struct { // EarlyStoppingConfig is the JSON early stopping structure in Katib config. type EarlyStoppingConfig struct { - Image string `json:"image"` - ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` + Image string `json:"image"` + ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` + Resource corev1.ResourceRequirements `json:"resources,omitempty"` } // MetricsCollectorConfig is the JSON metrics collector structure in Katib config. @@ -177,6 +178,9 @@ func GetEarlyStoppingConfigData(algorithmName string, client client.Client) (Ear // Set Image Pull Policy. earlyStoppingConfigData.ImagePullPolicy = setImagePullPolicy(earlyStoppingConfigData.ImagePullPolicy) + // Set resource requirements + earlyStoppingConfigData.Resource = setResourceRequirements(earlyStoppingConfigData.Resource) + return earlyStoppingConfigData, nil } diff --git a/pkg/util/v1beta1/katibconfig/config_test.go b/pkg/util/v1beta1/katibconfig/config_test.go index 5442caabe38..2cbc245fe96 100644 --- a/pkg/util/v1beta1/katibconfig/config_test.go +++ b/pkg/util/v1beta1/katibconfig/config_test.go @@ -426,6 +426,7 @@ func newFakeEarlyStoppingConfig() *EarlyStoppingConfig { return &EarlyStoppingConfig{ Image: "early-stopping-image", ImagePullPolicy: consts.DefaultImagePullPolicy, + Resource: *setFakeResourceRequirements(), } }