diff --git a/pkg/controller.v1alpha3/consts/const.go b/pkg/controller.v1alpha3/consts/const.go index 73019da9587..1d7dc3080b0 100644 --- a/pkg/controller.v1alpha3/consts/const.go +++ b/pkg/controller.v1alpha3/consts/const.go @@ -52,6 +52,14 @@ const ( LabelSuggestionMemRequestTag = "memRequest" // DefaultMemRequest is the default value for mem Request DefaultMemRequest = "10Mi" + // LabelSuggestionDiskLimitTag is the name of suggestion Disk Limit config in configmap. + LabelSuggestionDiskLimitTag = "diskLimit" + // DefaultMemLimit is the default value for mem Limit + DefaultDiskLimit = "5Gi" + // LabelSuggestionDiskRequestTag is the name of suggestion Disk Request config in configmap. + LabelSuggestionDiskRequestTag = "diskRequest" + // DefaultMemRequest is the default value for mem Request + DefaultDiskRequest = "500Mi" // LabelMetricsCollectorSidecar is the name of metrics collector config in configmap. LabelMetricsCollectorSidecar = "metrics-collector-sidecar" // LabelMetricsCollectorSidecarImage is the name of metrics collector image config in configmap. diff --git a/pkg/controller.v1alpha3/suggestion/composer/composer.go b/pkg/controller.v1alpha3/suggestion/composer/composer.go index 0934c5b1b00..184c0a8e212 100644 --- a/pkg/controller.v1alpha3/suggestion/composer/composer.go +++ b/pkg/controller.v1alpha3/suggestion/composer/composer.go @@ -119,6 +119,8 @@ func (g *General) desiredContainer(s *suggestionsv1alpha3.Suggestion) (*corev1.C suggestionCPURequest := suggestionConfigData[consts.LabelSuggestionCPURequestTag] suggestionMemLimit := suggestionConfigData[consts.LabelSuggestionMemLimitTag] suggestionMemRequest := suggestionConfigData[consts.LabelSuggestionMemRequestTag] + suggestionDiskLimit := suggestionConfigData[consts.LabelSuggestionDiskLimitTag] + suggestionDiskRequest := suggestionConfigData[consts.LabelSuggestionDiskRequestTag] c := &corev1.Container{ Name: consts.ContainerSuggestion, } @@ -147,15 +149,25 @@ func (g *General) desiredContainer(s *suggestionsv1alpha3.Suggestion) (*corev1.C if err != nil { return nil, err } + diskLimitQuantity, err := resource.ParseQuantity(suggestionDiskLimit) + if err != nil { + return nil, err + } + diskRequestQuantity, err := resource.ParseQuantity(suggestionDiskRequest) + if err != nil { + return nil, err + } c.Resources = corev1.ResourceRequirements{ Limits: corev1.ResourceList{ - corev1.ResourceCPU: cpuLimitQuantity, - corev1.ResourceMemory: memLimitQuantity, + corev1.ResourceCPU: cpuLimitQuantity, + corev1.ResourceMemory: memLimitQuantity, + corev1.ResourceEphemeralStorage: diskLimitQuantity, }, Requests: corev1.ResourceList{ - corev1.ResourceCPU: cpuRequestQuantity, - corev1.ResourceMemory: memRequestQuantity, + corev1.ResourceCPU: cpuRequestQuantity, + corev1.ResourceMemory: memRequestQuantity, + corev1.ResourceEphemeralStorage: diskRequestQuantity, }, } diff --git a/pkg/util/v1alpha3/katibconfig/config.go b/pkg/util/v1alpha3/katibconfig/config.go index a1e5f0b0829..f4e9f98a812 100644 --- a/pkg/util/v1alpha3/katibconfig/config.go +++ b/pkg/util/v1alpha3/katibconfig/config.go @@ -42,31 +42,41 @@ func GetSuggestionConfigData(algorithmName string, client client.Client) (map[st return map[string]string{}, errors.New("Required value for " + consts.LabelSuggestionImageTag + " configuration of algorithm name " + algorithmName) } - // Set default values for CPU and Memory + // Set default values for CPU, Memory and Disk suggestionConfigData[consts.LabelSuggestionCPURequestTag] = consts.DefaultCPURequest suggestionConfigData[consts.LabelSuggestionMemRequestTag] = consts.DefaultMemRequest + suggestionConfigData[consts.LabelSuggestionDiskRequestTag] = consts.DefaultDiskRequest suggestionConfigData[consts.LabelSuggestionCPULimitTag] = consts.DefaultCPULimit suggestionConfigData[consts.LabelSuggestionMemLimitTag] = consts.DefaultMemLimit + suggestionConfigData[consts.LabelSuggestionDiskLimitTag] = consts.DefaultDiskLimit - // Get CPU and Memory Requests from config + // Get CPU, Memory and Disk Requests from config cpuRequest := suggestionConfig.Resource.Requests[corev1.ResourceCPU] memRequest := suggestionConfig.Resource.Requests[corev1.ResourceMemory] + diskRequest := suggestionConfig.Resource.Requests[corev1.ResourceEphemeralStorage] if !cpuRequest.IsZero() { suggestionConfigData[consts.LabelSuggestionCPURequestTag] = cpuRequest.String() } if !memRequest.IsZero() { suggestionConfigData[consts.LabelSuggestionMemRequestTag] = memRequest.String() } + if !diskRequest.IsZero() { + suggestionConfigData[consts.LabelSuggestionDiskRequestTag] = diskRequest.String() + } - // Get CPU and Memory Limits from config + // Get CPU, Memory and Disk Limits from config cpuLimit := suggestionConfig.Resource.Limits[corev1.ResourceCPU] memLimit := suggestionConfig.Resource.Limits[corev1.ResourceMemory] + diskLimit := suggestionConfig.Resource.Limits[corev1.ResourceEphemeralStorage] if !cpuLimit.IsZero() { suggestionConfigData[consts.LabelSuggestionCPULimitTag] = cpuLimit.String() } if !memLimit.IsZero() { suggestionConfigData[consts.LabelSuggestionMemLimitTag] = memLimit.String() } + if !diskLimit.IsZero() { + suggestionConfigData[consts.LabelSuggestionDiskLimitTag] = diskLimit.String() + } } else { return map[string]string{}, errors.New("Failed to find algorithm " + algorithmName + " config in configmap " + consts.KatibConfigMapName)