Skip to content

Commit 87dda33

Browse files
Delete in-tree support for NVIDIA GPUs.
This removes the alpha Accelerators feature gate which was deprecated in 1.10. The alternative feature DevicePlugins went beta in 1.10.
1 parent 1f69c34 commit 87dda33

38 files changed

+42
-1315
lines changed

hack/.golint_failures

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ pkg/kubelet/dockershim/cm
173173
pkg/kubelet/dockershim/libdocker
174174
pkg/kubelet/dockershim/testing
175175
pkg/kubelet/events
176-
pkg/kubelet/gpu
177176
pkg/kubelet/images
178177
pkg/kubelet/kuberuntime
179178
pkg/kubelet/leaky

pkg/apis/core/helper/helpers.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,14 +172,11 @@ func IsNativeResource(name core.ResourceName) bool {
172172
strings.Contains(string(name), core.ResourceDefaultNamespacePrefix)
173173
}
174174

175-
var overcommitBlacklist = sets.NewString(string(core.ResourceNvidiaGPU))
176-
177175
// IsOvercommitAllowed returns true if the resource is in the default
178-
// namespace and not blacklisted.
176+
// namespace and is not hugepages.
179177
func IsOvercommitAllowed(name core.ResourceName) bool {
180178
return IsNativeResource(name) &&
181-
!IsHugePageResourceName(name) &&
182-
!overcommitBlacklist.Has(string(name))
179+
!IsHugePageResourceName(name)
183180
}
184181

185182
var standardLimitRangeTypes = sets.NewString(

pkg/apis/core/helper/helpers_test.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -387,10 +387,6 @@ func TestIsOvercommitAllowed(t *testing.T) {
387387
name: core.ResourceMemory,
388388
allowed: true,
389389
},
390-
{
391-
name: core.ResourceNvidiaGPU,
392-
allowed: false,
393-
},
394390
{
395391
name: HugePageResourceName(resource.MustParse("2Mi")),
396392
allowed: false,

pkg/apis/core/resource.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,6 @@ func (self *ResourceList) Pods() *resource.Quantity {
4747
return &resource.Quantity{}
4848
}
4949

50-
func (self *ResourceList) NvidiaGPU() *resource.Quantity {
51-
if val, ok := (*self)[ResourceNvidiaGPU]; ok {
52-
return &val
53-
}
54-
return &resource.Quantity{}
55-
}
56-
5750
func (self *ResourceList) StorageEphemeral() *resource.Quantity {
5851
if val, ok := (*self)[ResourceEphemeralStorage]; ok {
5952
return &val

pkg/apis/core/types.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3641,8 +3641,6 @@ const (
36413641
// Local ephemeral storage, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
36423642
// The resource name for ResourceEphemeralStorage is alpha and it can change across releases.
36433643
ResourceEphemeralStorage ResourceName = "ephemeral-storage"
3644-
// NVIDIA GPU, in devices. Alpha, might change: although fractional and allowing values >1, only one whole device per node is assigned.
3645-
ResourceNvidiaGPU ResourceName = "alpha.kubernetes.io/nvidia-gpu"
36463644
)
36473645

36483646
const (

pkg/apis/core/v1/helper/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ go_library(
2929
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
3030
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
3131
"//vendor/k8s.io/apimachinery/pkg/selection:go_default_library",
32-
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
3332
"//vendor/k8s.io/apimachinery/pkg/util/validation:go_default_library",
3433
],
3534
)

pkg/apis/core/v1/helper/helpers.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"k8s.io/apimachinery/pkg/api/resource"
2626
"k8s.io/apimachinery/pkg/labels"
2727
"k8s.io/apimachinery/pkg/selection"
28-
"k8s.io/apimachinery/pkg/util/sets"
2928
"k8s.io/apimachinery/pkg/util/validation"
3029
"k8s.io/kubernetes/pkg/apis/core/helper"
3130
)
@@ -85,14 +84,11 @@ func HugePageSizeFromResourceName(name v1.ResourceName) (resource.Quantity, erro
8584
return resource.ParseQuantity(pageSize)
8685
}
8786

88-
var overcommitBlacklist = sets.NewString(string(v1.ResourceNvidiaGPU))
89-
9087
// IsOvercommitAllowed returns true if the resource is in the default
91-
// namespace and not blacklisted and is not hugepages.
88+
// namespace and is not hugepages.
9289
func IsOvercommitAllowed(name v1.ResourceName) bool {
9390
return IsNativeResource(name) &&
94-
!IsHugePageResourceName(name) &&
95-
!overcommitBlacklist.Has(string(name))
91+
!IsHugePageResourceName(name)
9692
}
9793

9894
// Extended and Hugepages resources

pkg/apis/core/v1/helper/helpers_test.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,6 @@ func TestIsOvercommitAllowed(t *testing.T) {
125125
resourceName: "kubernetes.io/resource-foo",
126126
expectVal: true,
127127
},
128-
{
129-
resourceName: "alpha.kubernetes.io/nvidia-gpu",
130-
expectVal: false,
131-
},
132128
{
133129
resourceName: "hugepages-100m",
134130
expectVal: false,

pkg/apis/core/v1/helper/qos/qos_test.go

Lines changed: 3 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -38,26 +38,13 @@ func TestGetPodQOS(t *testing.T) {
3838
}),
3939
expected: v1.PodQOSGuaranteed,
4040
},
41-
{
42-
pod: newPod("guaranteed-with-gpu", []v1.Container{
43-
newContainer("guaranteed", getResourceList("100m", "100Mi"), addResource("nvidia-gpu", "2", getResourceList("100m", "100Mi"))),
44-
}),
45-
expected: v1.PodQOSGuaranteed,
46-
},
4741
{
4842
pod: newPod("guaranteed-guaranteed", []v1.Container{
4943
newContainer("guaranteed", getResourceList("100m", "100Mi"), getResourceList("100m", "100Mi")),
5044
newContainer("guaranteed", getResourceList("100m", "100Mi"), getResourceList("100m", "100Mi")),
5145
}),
5246
expected: v1.PodQOSGuaranteed,
5347
},
54-
{
55-
pod: newPod("guaranteed-guaranteed-with-gpu", []v1.Container{
56-
newContainer("guaranteed", getResourceList("100m", "100Mi"), addResource("nvidia-gpu", "2", getResourceList("100m", "100Mi"))),
57-
newContainer("guaranteed", getResourceList("100m", "100Mi"), getResourceList("100m", "100Mi")),
58-
}),
59-
expected: v1.PodQOSGuaranteed,
60-
},
6148
{
6249
pod: newPod("best-effort-best-effort", []v1.Container{
6350
newContainer("best-effort", getResourceList("", ""), getResourceList("", "")),
@@ -71,29 +58,16 @@ func TestGetPodQOS(t *testing.T) {
7158
}),
7259
expected: v1.PodQOSBestEffort,
7360
},
74-
{
75-
pod: newPod("best-effort-best-effort-with-gpu", []v1.Container{
76-
newContainer("best-effort", getResourceList("", ""), addResource("nvidia-gpu", "2", getResourceList("", ""))),
77-
newContainer("best-effort", getResourceList("", ""), getResourceList("", "")),
78-
}),
79-
expected: v1.PodQOSBestEffort,
80-
},
81-
{
82-
pod: newPod("best-effort-with-gpu", []v1.Container{
83-
newContainer("best-effort", getResourceList("", ""), addResource("nvidia-gpu", "2", getResourceList("", ""))),
84-
}),
85-
expected: v1.PodQOSBestEffort,
86-
},
8761
{
8862
pod: newPod("best-effort-burstable", []v1.Container{
89-
newContainer("best-effort", getResourceList("", ""), addResource("nvidia-gpu", "2", getResourceList("", ""))),
63+
newContainer("best-effort", getResourceList("", ""), getResourceList("", "")),
9064
newContainer("burstable", getResourceList("1", ""), getResourceList("2", "")),
9165
}),
9266
expected: v1.PodQOSBurstable,
9367
},
9468
{
9569
pod: newPod("best-effort-guaranteed", []v1.Container{
96-
newContainer("best-effort", getResourceList("", ""), addResource("nvidia-gpu", "2", getResourceList("", ""))),
70+
newContainer("best-effort", getResourceList("", ""), getResourceList("", "")),
9771
newContainer("guaranteed", getResourceList("10m", "100Mi"), getResourceList("10m", "100Mi")),
9872
}),
9973
expected: v1.PodQOSBurstable,
@@ -132,7 +106,7 @@ func TestGetPodQOS(t *testing.T) {
132106
},
133107
{
134108
pod: newPod("burstable-2", []v1.Container{
135-
newContainer("burstable", getResourceList("0", "0"), addResource("nvidia-gpu", "2", getResourceList("100m", "200Mi"))),
109+
newContainer("burstable", getResourceList("0", "0"), getResourceList("100m", "200Mi")),
136110
}),
137111
expected: v1.PodQOSBurstable,
138112
},

pkg/apis/core/v1/validation/validation.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@ func ValidateResourceRequirements(requirements *v1.ResourceRequirements, fldPath
6161
} else if quantity.Cmp(limitQuantity) > 0 {
6262
allErrs = append(allErrs, field.Invalid(reqPath, quantity.String(), fmt.Sprintf("must be less than or equal to %s limit", resourceName)))
6363
}
64-
} else if resourceName == v1.ResourceNvidiaGPU {
65-
allErrs = append(allErrs, field.Invalid(reqPath, quantity.String(), fmt.Sprintf("must be equal to %s request", v1.ResourceNvidiaGPU)))
6664
}
6765
}
6866

0 commit comments

Comments
 (0)