Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move pkg/apis/core/v1.IsScalarResourceName under pkg/scheduler/util #96109

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 0 additions & 6 deletions pkg/apis/core/v1/helper/helpers.go
Expand Up @@ -136,12 +136,6 @@ func IsAttachableVolumeResourceName(name v1.ResourceName) bool {
return strings.HasPrefix(string(name), v1.ResourceAttachableVolumesPrefix)
}

// IsScalarResourceName validates the resource for Extended, Hugepages, Native and AttachableVolume resources
func IsScalarResourceName(name v1.ResourceName) bool {
return IsExtendedResourceName(name) || IsHugePageResourceName(name) ||
IsPrefixedNativeResource(name) || IsAttachableVolumeResourceName(name)
}

// IsServiceIPSet aims to check if the service's ClusterIP is set or not
// the objective is not to perform validation here
func IsServiceIPSet(service *v1.Service) bool {
Expand Down
Expand Up @@ -20,7 +20,6 @@ import (
v1 "k8s.io/api/core/v1"
utilfeature "k8s.io/apiserver/pkg/util/feature"
"k8s.io/klog/v2"
v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper"
"k8s.io/kubernetes/pkg/features"
"k8s.io/kubernetes/pkg/scheduler/framework"
schedutil "k8s.io/kubernetes/pkg/scheduler/util"
Expand Down Expand Up @@ -100,7 +99,7 @@ func calculateResourceAllocatableRequest(nodeInfo *framework.NodeInfo, pod *v1.P
case v1.ResourceEphemeralStorage:
return nodeInfo.Allocatable.EphemeralStorage, (nodeInfo.Requested.EphemeralStorage + podRequest)
default:
if v1helper.IsScalarResourceName(resource) {
if schedutil.IsScalarResourceName(resource) {
return nodeInfo.Allocatable.ScalarResources[resource], (nodeInfo.Requested.ScalarResources[resource] + podRequest)
}
}
Expand Down
13 changes: 7 additions & 6 deletions pkg/scheduler/framework/types.go
Expand Up @@ -19,7 +19,11 @@ package framework
import (
"errors"
"fmt"
"k8s.io/api/core/v1"
"sync"
"sync/atomic"
"time"

v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
Expand All @@ -29,9 +33,6 @@ import (
v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper"
"k8s.io/kubernetes/pkg/features"
schedutil "k8s.io/kubernetes/pkg/scheduler/util"
"sync"
"sync/atomic"
"time"
)

var generation int64
Expand Down Expand Up @@ -317,7 +318,7 @@ func (r *Resource) Add(rl v1.ResourceList) {
r.EphemeralStorage += rQuant.Value()
}
default:
if v1helper.IsScalarResourceName(rName) {
if schedutil.IsScalarResourceName(rName) {
r.AddScalar(rName, rQuant.Value())
}
}
Expand Down Expand Up @@ -394,7 +395,7 @@ func (r *Resource) SetMaxResource(rl v1.ResourceList) {
r.EphemeralStorage = ephemeralStorage
}
default:
if v1helper.IsScalarResourceName(rName) {
if schedutil.IsScalarResourceName(rName) {
value := rQuantity.Value()
if value > r.ScalarResources[rName] {
r.SetScalar(rName, value)
Expand Down
3 changes: 1 addition & 2 deletions pkg/scheduler/util/non_zero.go
Expand Up @@ -19,7 +19,6 @@ package util
import (
v1 "k8s.io/api/core/v1"
utilfeature "k8s.io/apiserver/pkg/util/feature"
v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper"
"k8s.io/kubernetes/pkg/features"
)

Expand Down Expand Up @@ -73,7 +72,7 @@ func GetNonzeroRequestForResource(resource v1.ResourceName, requests *v1.Resourc
}
return quantity.Value()
default:
if v1helper.IsScalarResourceName(resource) {
if IsScalarResourceName(resource) {
quantity, found := (*requests)[resource]
if !found {
return 0
Expand Down
7 changes: 7 additions & 0 deletions pkg/scheduler/util/utils.go
Expand Up @@ -31,6 +31,7 @@ import (
corev1helpers "k8s.io/component-helpers/scheduling/corev1"
"k8s.io/klog/v2"
extenderv1 "k8s.io/kube-scheduler/extender/v1"
v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper"
)

// GetPodFullName returns a name that uniquely identifies a pod.
Expand Down Expand Up @@ -163,3 +164,9 @@ func ClearNominatedNodeName(cs kubernetes.Interface, pods ...*v1.Pod) utilerrors
}
return utilerrors.NewAggregate(errs)
}

// IsScalarResourceName validates the resource for Extended, Hugepages, Native and AttachableVolume resources
func IsScalarResourceName(name v1.ResourceName) bool {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm starting to wonder if we really need this check. Which resources would fail it, other than the ones we already pre-fetch early in Resource.Add or Resource.Max?

return v1helper.IsExtendedResourceName(name) || v1helper.IsHugePageResourceName(name) ||
v1helper.IsPrefixedNativeResource(name) || v1helper.IsAttachableVolumeResourceName(name)
}