diff --git a/pkg/api/persistentvolumeclaim/util.go b/pkg/api/persistentvolumeclaim/util.go index b847a87161c..ee7f0f02957 100644 --- a/pkg/api/persistentvolumeclaim/util.go +++ b/pkg/api/persistentvolumeclaim/util.go @@ -51,10 +51,6 @@ func DropDisabledFields(pvcSpec, oldPVCSpec *core.PersistentVolumeClaimSpec) { pvcSpec.DataSourceRef = nil } } - - // Setting VolumeClaimTemplate.Resources.Claims should have been caught by validation when - // extending ResourceRequirements in 1.26. Now we can only accept it and drop the field. - pvcSpec.Resources.Claims = nil } // EnforceDataSourceBackwardsCompatibility drops the data source field under certain conditions diff --git a/pkg/api/persistentvolumeclaim/util_test.go b/pkg/api/persistentvolumeclaim/util_test.go index 4ceec00b9b3..60574eb10d3 100644 --- a/pkg/api/persistentvolumeclaim/util_test.go +++ b/pkg/api/persistentvolumeclaim/util_test.go @@ -262,10 +262,7 @@ func TestDataSourceFilter(t *testing.T) { spec: core.PersistentVolumeClaimSpec{DataSourceRef: xnsVolumeDataSourceRef}, oldSpec: core.PersistentVolumeClaimSpec{DataSourceRef: volumeDataSourceRef}, anyEnabled: true, - wantRef: xnsVolumeDataSourceRef, // existing field isn't dropped. - }, - "clear Resources.Claims": { - spec: core.PersistentVolumeClaimSpec{Resources: core.ResourceRequirements{Claims: []core.ResourceClaim{{Name: "dra"}}}}, + wantRef: xnsVolumeDataSourceRef, // existing field isn't dropped.8 }, } @@ -282,9 +279,6 @@ func TestDataSourceFilter(t *testing.T) { t.Errorf("expected condition was not met, test: %s, anyEnabled: %v, xnsEnabled: %v, spec: %+v, expected DataSourceRef: %+v", testName, test.anyEnabled, test.xnsEnabled, test.spec, test.wantRef) } - if test.spec.Resources.Claims != nil { - t.Errorf("expected Resources.Claims to be cleared") - } }) } } @@ -515,7 +509,7 @@ func TestWarnings(t *testing.T) { name: "200Mi requests no warning", template: &core.PersistentVolumeClaim{ Spec: core.PersistentVolumeClaimSpec{ - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceStorage: resource.MustParse("200Mi"), }, @@ -531,7 +525,7 @@ func TestWarnings(t *testing.T) { name: "200m warning", template: &core.PersistentVolumeClaim{ Spec: core.PersistentVolumeClaimSpec{ - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceStorage: resource.MustParse("200m"), }, @@ -550,7 +544,7 @@ func TestWarnings(t *testing.T) { name: "integer no warning", template: &core.PersistentVolumeClaim{ Spec: core.PersistentVolumeClaimSpec{ - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceStorage: resource.MustParse("200"), }, diff --git a/pkg/api/pod/util.go b/pkg/api/pod/util.go index ebc0a6b3d9c..6b7394fe8eb 100644 --- a/pkg/api/pod/util.go +++ b/pkg/api/pod/util.go @@ -608,16 +608,6 @@ func dropDisabledDynamicResourceAllocationFields(podSpec, oldPodSpec *api.PodSpe dropEphemeralResourceClaimRequests(podSpec.EphemeralContainers) podSpec.ResourceClaims = nil } - - // Setting VolumeClaimTemplate.Resources.Claims should have been - // treated as an error by validation when extending - // ResourceRequirements in 1.26. Now we can only accept it and drop the - // field. - for i := range podSpec.Volumes { - if podSpec.Volumes[i].Ephemeral != nil && podSpec.Volumes[i].Ephemeral.VolumeClaimTemplate != nil { - podSpec.Volumes[i].Ephemeral.VolumeClaimTemplate.Spec.Resources.Claims = nil - } - } } func dynamicResourceAllocationInUse(podSpec *api.PodSpec) bool { diff --git a/pkg/api/pod/util_test.go b/pkg/api/pod/util_test.go index 725a23d7d90..b43e52e1595 100644 --- a/pkg/api/pod/util_test.go +++ b/pkg/api/pod/util_test.go @@ -1889,44 +1889,6 @@ func TestValidateTopologySpreadConstraintLabelSelectorOption(t *testing.T) { } } -func TestDropVolumesClaimField(t *testing.T) { - pod := &api.Pod{ - Spec: api.PodSpec{ - Volumes: []api.Volume{ - {}, - { - VolumeSource: api.VolumeSource{ - Ephemeral: &api.EphemeralVolumeSource{}, - }, - }, - { - VolumeSource: api.VolumeSource{ - Ephemeral: &api.EphemeralVolumeSource{ - VolumeClaimTemplate: &api.PersistentVolumeClaimTemplate{ - Spec: api.PersistentVolumeClaimSpec{ - Resources: api.ResourceRequirements{ - Claims: []api.ResourceClaim{ - {Name: "dra"}, - }, - }, - }, - }, - }, - }, - }, - }, - }, - } - - DropDisabledPodFields(pod, nil) - - for i, volume := range pod.Spec.Volumes { - if volume.Ephemeral != nil && volume.Ephemeral.VolumeClaimTemplate != nil && volume.Ephemeral.VolumeClaimTemplate.Spec.Resources.Claims != nil { - t.Errorf("volume #%d: Resources.Claim should be nil", i) - } - } -} - func TestDropInPlacePodVerticalScaling(t *testing.T) { podWithInPlaceVerticalScaling := func() *api.Pod { return &api.Pod{ diff --git a/pkg/api/pod/warnings_test.go b/pkg/api/pod/warnings_test.go index 72241ce4ade..d94fc40f745 100644 --- a/pkg/api/pod/warnings_test.go +++ b/pkg/api/pod/warnings_test.go @@ -504,7 +504,7 @@ func TestWarnings(t *testing.T) { Spec: api.PodSpec{Volumes: []api.Volume{ {Name: "ephemeral-volume", VolumeSource: api.VolumeSource{Ephemeral: &api.EphemeralVolumeSource{ VolumeClaimTemplate: &api.PersistentVolumeClaimTemplate{ - Spec: api.PersistentVolumeClaimSpec{Resources: api.ResourceRequirements{ + Spec: api.PersistentVolumeClaimSpec{Resources: api.VolumeResourceRequirements{ Requests: api.ResourceList{api.ResourceStorage: resource.MustParse("200Mi")}}}, }, }}}}}, @@ -518,7 +518,7 @@ func TestWarnings(t *testing.T) { Spec: api.PodSpec{Volumes: []api.Volume{ {Name: "ephemeral-volume", VolumeSource: api.VolumeSource{Ephemeral: &api.EphemeralVolumeSource{ VolumeClaimTemplate: &api.PersistentVolumeClaimTemplate{ - Spec: api.PersistentVolumeClaimSpec{Resources: api.ResourceRequirements{ + Spec: api.PersistentVolumeClaimSpec{Resources: api.VolumeResourceRequirements{ Requests: api.ResourceList{api.ResourceStorage: resource.MustParse("200m")}}}, }, }}}}}, diff --git a/pkg/apis/apps/validation/validation_test.go b/pkg/apis/apps/validation/validation_test.go index 07d2dc8c773..4ac9a8181b8 100644 --- a/pkg/apis/apps/validation/validation_test.go +++ b/pkg/apis/apps/validation/validation_test.go @@ -781,7 +781,7 @@ func TestValidateStatefulSetUpdate(t *testing.T) { }, Spec: api.PersistentVolumeClaimSpec{ StorageClassName: &storageClass, - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: api.ResourceList{ api.ResourceStorage: resource.MustParse("1Gi"), }, @@ -800,7 +800,7 @@ func TestValidateStatefulSetUpdate(t *testing.T) { }, Spec: api.PersistentVolumeClaimSpec{ StorageClassName: &storageClass2, - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: api.ResourceList{ api.ResourceStorage: resource.MustParse("2Gi"), }, diff --git a/pkg/apis/core/types.go b/pkg/apis/core/types.go index 60e47b1632f..51423b4109c 100644 --- a/pkg/apis/core/types.go +++ b/pkg/apis/core/types.go @@ -440,7 +440,7 @@ type PersistentVolumeClaimSpec struct { // that are lower than previous value but must still be higher than capacity recorded in the // status field of the claim. // +optional - Resources ResourceRequirements + Resources VolumeResourceRequirements // VolumeName is the binding reference to the PersistentVolume backing this // claim. When set to non-empty value Selector is not evaluated // +optional @@ -2282,6 +2282,18 @@ type ResourceRequirements struct { Claims []ResourceClaim } +// VolumeResourceRequirements describes the storage resource requirements for a volume. +type VolumeResourceRequirements struct { + // Limits describes the maximum amount of compute resources allowed. + // +optional + Limits ResourceList + // Requests describes the minimum amount of compute resources required. + // If Request is omitted for a container, it defaults to Limits if that is explicitly specified, + // otherwise to an implementation-defined value + // +optional + Requests ResourceList +} + // ResourceClaim references one entry in PodSpec.ResourceClaims. type ResourceClaim struct { // Name must match the name of one entry in pod.spec.resourceClaims of diff --git a/pkg/apis/core/validation/validation_test.go b/pkg/apis/core/validation/validation_test.go index 55a83faa8f2..cc366cb57fa 100644 --- a/pkg/apis/core/validation/validation_test.go +++ b/pkg/apis/core/validation/validation_test.go @@ -1479,7 +1479,7 @@ func testVolumeSnapshotDataSourceInSpec(name string, kind string, apiGroup strin AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -1565,7 +1565,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -1722,7 +1722,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { enableReadWriteOncePod: true, claim: testVolumeClaim(goodName, goodNS, core.PersistentVolumeClaimSpec{ AccessModes: []core.PersistentVolumeAccessMode{"ReadWriteOncePod"}, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -1734,7 +1734,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { enableReadWriteOncePod: false, claim: testVolumeClaim(goodName, goodNS, core.PersistentVolumeClaimSpec{ AccessModes: []core.PersistentVolumeAccessMode{"ReadWriteOncePod"}, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -1746,7 +1746,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { enableReadWriteOncePod: true, claim: testVolumeClaim(goodName, goodNS, core.PersistentVolumeClaimSpec{ AccessModes: []core.PersistentVolumeAccessMode{"ReadWriteOncePod", "ReadWriteMany"}, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -1766,7 +1766,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("0G"), }, @@ -1788,7 +1788,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -1799,7 +1799,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { isExpectedFailure: true, claim: testVolumeClaim(goodName, goodNS, core.PersistentVolumeClaimSpec{ AccessModes: []core.PersistentVolumeAccessMode{"fakemode"}, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -1809,7 +1809,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { "no-access-modes": { isExpectedFailure: true, claim: testVolumeClaim(goodName, goodNS, core.PersistentVolumeClaimSpec{ - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -1830,7 +1830,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadWriteOnce, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), }, @@ -1850,7 +1850,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("-10G"), }, @@ -1870,7 +1870,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("0G"), }, @@ -1890,7 +1890,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -1905,7 +1905,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -1919,7 +1919,7 @@ func testValidatePVC(t *testing.T, ephemeral bool) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadWriteOnce, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2063,7 +2063,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2076,7 +2076,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2086,7 +2086,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2097,7 +2097,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2109,7 +2109,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("20G"), }, @@ -2120,7 +2120,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadWriteOnce, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2132,7 +2132,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, }, VolumeMode: &file, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2144,7 +2144,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, }, VolumeMode: &block, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2156,7 +2156,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, }, VolumeMode: nil, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2167,7 +2167,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2178,7 +2178,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2190,7 +2190,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2202,7 +2202,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("15G"), }, @@ -2216,7 +2216,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("5G"), }, @@ -2230,7 +2230,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("12G"), }, @@ -2243,7 +2243,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2254,7 +2254,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2265,7 +2265,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2276,7 +2276,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2288,7 +2288,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2300,7 +2300,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2312,7 +2312,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2323,7 +2323,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadWriteOncePod, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2335,7 +2335,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadWriteOncePod, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -2347,7 +2347,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("15G"), }, @@ -2364,7 +2364,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("12G"), }, @@ -2381,7 +2381,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceStorage: resource.MustParse("13G"), }, @@ -2398,7 +2398,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceStorage: resource.MustParse("10G"), }, @@ -2415,7 +2415,7 @@ func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceStorage: resource.MustParse("3G"), }, @@ -5346,7 +5346,7 @@ func createTestVolModePVC(vmode *core.PersistentVolumeMode) *core.PersistentVolu Namespace: "default", }, Spec: core.PersistentVolumeClaimSpec{ - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -6125,7 +6125,7 @@ func TestValidateVolumeMounts(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadWriteOnce, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -6433,7 +6433,7 @@ func TestAlphaValidateVolumeDevices(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadWriteOnce, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -9418,7 +9418,7 @@ func TestValidatePod(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadWriteOnce, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -18416,7 +18416,7 @@ func TestValidatePersistentVolumeClaimStatusUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -18427,7 +18427,7 @@ func TestValidatePersistentVolumeClaimStatusUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -18443,7 +18443,7 @@ func TestValidatePersistentVolumeClaimStatusUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -18463,7 +18463,7 @@ func TestValidatePersistentVolumeClaimStatusUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -18482,7 +18482,7 @@ func TestValidatePersistentVolumeClaimStatusUpdate(t *testing.T) { AccessModes: []core.PersistentVolumeAccessMode{ core.ReadWriteOnce, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -18599,7 +18599,7 @@ func TestValidatePersistentVolumeClaimStatusUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -18619,7 +18619,7 @@ func TestValidatePersistentVolumeClaimStatusUpdate(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -21147,7 +21147,7 @@ func testDataSourceInSpec(name, kind, apiGroup string) *core.PersistentVolumeCla AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, @@ -21272,7 +21272,7 @@ func pvcSpecWithCrossNamespaceSource(apiGroup *string, kind string, namespace *s AccessModes: []core.PersistentVolumeAccessMode{ core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, diff --git a/pkg/controller/history/controller_history_test.go b/pkg/controller/history/controller_history_test.go index be24d18c1d5..c0d376f5cb5 100644 --- a/pkg/controller/history/controller_history_test.go +++ b/pkg/controller/history/controller_history_test.go @@ -26,7 +26,7 @@ import ( "time" apps "k8s.io/api/apps/v1" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes/fake" clientscheme "k8s.io/client-go/kubernetes/scheme" @@ -1679,7 +1679,7 @@ func newStatefulSet(replicas int, name string, uid types.UID, labels map[string] { ObjectMeta: metav1.ObjectMeta{Name: "datadir"}, Spec: v1.PersistentVolumeClaimSpec{ - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceStorage: *resource.NewQuantity(1, resource.BinarySI), }, diff --git a/pkg/controller/statefulset/stateful_set_utils_test.go b/pkg/controller/statefulset/stateful_set_utils_test.go index 82dd4749a48..a284896574f 100644 --- a/pkg/controller/statefulset/stateful_set_utils_test.go +++ b/pkg/controller/statefulset/stateful_set_utils_test.go @@ -788,7 +788,7 @@ func newPVC(name string) v1.PersistentVolumeClaim { Name: name, }, Spec: v1.PersistentVolumeClaimSpec{ - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceStorage: *resource.NewQuantity(1, resource.BinarySI), }, @@ -933,7 +933,7 @@ func newStatefulSetWithLabels(replicas int, name string, uid types.UID, labels m { ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "datadir"}, Spec: v1.PersistentVolumeClaimSpec{ - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceStorage: *resource.NewQuantity(1, resource.BinarySI), }, diff --git a/pkg/controller/volume/attachdetach/metrics/metrics_test.go b/pkg/controller/volume/attachdetach/metrics/metrics_test.go index 272b24372f2..c0beae37810 100644 --- a/pkg/controller/volume/attachdetach/metrics/metrics_test.go +++ b/pkg/controller/volume/attachdetach/metrics/metrics_test.go @@ -78,7 +78,7 @@ func TestVolumesInUseMetricCollection(t *testing.T) { }, Spec: v1.PersistentVolumeClaimSpec{ AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadOnlyMany, v1.ReadWriteOnce}, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse("2G"), }, diff --git a/pkg/controller/volume/expand/expand_controller_test.go b/pkg/controller/volume/expand/expand_controller_test.go index 180923dd9e4..af7835ee44f 100644 --- a/pkg/controller/volume/expand/expand_controller_test.go +++ b/pkg/controller/volume/expand/expand_controller_test.go @@ -205,7 +205,7 @@ func getFakePersistentVolumeClaim(pvcName, volumeName, statusSize, requestSize s pvc := &v1.PersistentVolumeClaim{ ObjectMeta: metav1.ObjectMeta{Name: pvcName, Namespace: "default", UID: uid}, Spec: v1.PersistentVolumeClaimSpec{ - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: map[v1.ResourceName]resource.Quantity{ v1.ResourceStorage: resource.MustParse(requestSize), }, diff --git a/pkg/controller/volume/persistentvolume/framework_test.go b/pkg/controller/volume/persistentvolume/framework_test.go index b50adabb96f..b16f5668338 100644 --- a/pkg/controller/volume/persistentvolume/framework_test.go +++ b/pkg/controller/volume/persistentvolume/framework_test.go @@ -457,7 +457,7 @@ func newClaim(name, claimUID, capacity, boundToVolume string, phase v1.Persisten }, Spec: v1.PersistentVolumeClaimSpec{ AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce, v1.ReadOnlyMany}, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse(capacity), }, diff --git a/pkg/controller/volume/persistentvolume/index_test.go b/pkg/controller/volume/persistentvolume/index_test.go index a4b72acee36..46b9746d413 100644 --- a/pkg/controller/volume/persistentvolume/index_test.go +++ b/pkg/controller/volume/persistentvolume/index_test.go @@ -38,7 +38,7 @@ func makePVC(size string, modfn func(*v1.PersistentVolumeClaim)) *v1.PersistentV }, Spec: v1.PersistentVolumeClaimSpec{ AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadOnlyMany, v1.ReadWriteOnce}, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse(size), }, @@ -61,7 +61,7 @@ func makeVolumeModePVC(size string, mode *v1.PersistentVolumeMode, modfn func(*v Spec: v1.PersistentVolumeClaimSpec{ VolumeMode: mode, AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce}, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse(size), }, @@ -251,7 +251,7 @@ func TestMatchingWithBoundVolumes(t *testing.T) { }, Spec: v1.PersistentVolumeClaimSpec{ AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadOnlyMany, v1.ReadWriteOnce}, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse("1G"), }, @@ -387,7 +387,7 @@ func TestFindingVolumeWithDifferentAccessModes(t *testing.T) { }, Spec: v1.PersistentVolumeClaimSpec{ AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce}, - Resources: v1.ResourceRequirements{Requests: v1.ResourceList{v1.ResourceName(v1.ResourceStorage): resource.MustParse("1G")}}, + Resources: v1.VolumeResourceRequirements{Requests: v1.ResourceList{v1.ResourceName(v1.ResourceStorage): resource.MustParse("1G")}}, VolumeMode: &fs, }, } @@ -1236,7 +1236,7 @@ func TestStorageObjectInUseProtectionFiltering(t *testing.T) { }, Spec: v1.PersistentVolumeClaimSpec{ AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce}, - Resources: v1.ResourceRequirements{Requests: v1.ResourceList{v1.ResourceName(v1.ResourceStorage): resource.MustParse("1G")}}, + Resources: v1.VolumeResourceRequirements{Requests: v1.ResourceList{v1.ResourceName(v1.ResourceStorage): resource.MustParse("1G")}}, VolumeMode: &fs, }, } @@ -1318,7 +1318,7 @@ func TestFindingPreboundVolumes(t *testing.T) { }, Spec: v1.PersistentVolumeClaimSpec{ AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce}, - Resources: v1.ResourceRequirements{Requests: v1.ResourceList{v1.ResourceName(v1.ResourceStorage): resource.MustParse("1Gi")}}, + Resources: v1.VolumeResourceRequirements{Requests: v1.ResourceList{v1.ResourceName(v1.ResourceStorage): resource.MustParse("1Gi")}}, VolumeMode: &fs, }, } diff --git a/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator_test.go b/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator_test.go index 2b4d8f812d6..a16adb55dc2 100644 --- a/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator_test.go +++ b/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator_test.go @@ -1295,7 +1295,7 @@ func TestCheckVolumeSELinux(t *testing.T) { pvc := &v1.PersistentVolumeClaim{ Spec: v1.PersistentVolumeClaimSpec{ VolumeName: pv.Name, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: pv.Spec.Capacity, }, AccessModes: tc.accessModes, @@ -1392,7 +1392,7 @@ func createResizeRelatedVolumes(volumeMode *v1.PersistentVolumeMode) (pv *v1.Per pvc = &v1.PersistentVolumeClaim{ Spec: v1.PersistentVolumeClaimSpec{ VolumeName: pv.Name, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: pv.Spec.Capacity, }, }, @@ -1561,7 +1561,7 @@ func createEphemeralVolumeObjects(podName, volumeName string, owned bool, volume }, Spec: v1.PersistentVolumeClaimSpec{ VolumeName: volumeName, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: pv.Spec.Capacity, }, }, diff --git a/pkg/kubelet/volumemanager/reconciler/reconciler_test.go b/pkg/kubelet/volumemanager/reconciler/reconciler_test.go index 7e69ace560d..0aa8456a23a 100644 --- a/pkg/kubelet/volumemanager/reconciler/reconciler_test.go +++ b/pkg/kubelet/volumemanager/reconciler/reconciler_test.go @@ -1395,7 +1395,7 @@ func getTestPVC(pvName string, volumeMode *v1.PersistentVolumeMode, specSize, st UID: "pvcuid", }, Spec: v1.PersistentVolumeClaimSpec{ - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceStorage: specSize, }, diff --git a/pkg/quota/v1/evaluator/core/persistent_volume_claims_test.go b/pkg/quota/v1/evaluator/core/persistent_volume_claims_test.go index afa9c764589..187c1c78660 100644 --- a/pkg/quota/v1/evaluator/core/persistent_volume_claims_test.go +++ b/pkg/quota/v1/evaluator/core/persistent_volume_claims_test.go @@ -54,7 +54,7 @@ func TestPersistentVolumeClaimEvaluatorUsage(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10Gi"), }, @@ -73,7 +73,7 @@ func TestPersistentVolumeClaimEvaluatorUsage(t *testing.T) { core.ReadWriteOnce, core.ReadOnlyMany, }, - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("10Gi"), }, @@ -170,7 +170,7 @@ func TestPersistentVolumeClaimEvaluatorUsage(t *testing.T) { func getPVCWithAllocatedResource(pvcSize, allocatedSize string) *core.PersistentVolumeClaim { validPVCWithAllocatedResources := testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ - Resources: core.ResourceRequirements{ + Resources: core.VolumeResourceRequirements{ Requests: core.ResourceList{ core.ResourceStorage: resource.MustParse(pvcSize), }, diff --git a/pkg/registry/core/persistentvolumeclaim/storage/storage_test.go b/pkg/registry/core/persistentvolumeclaim/storage/storage_test.go index 21b2d4fd55b..b3df789a590 100644 --- a/pkg/registry/core/persistentvolumeclaim/storage/storage_test.go +++ b/pkg/registry/core/persistentvolumeclaim/storage/storage_test.go @@ -62,7 +62,7 @@ func validNewPersistentVolumeClaim(name, ns string) *api.PersistentVolumeClaim { }, Spec: api.PersistentVolumeClaimSpec{ AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: api.ResourceList{ api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), }, @@ -178,7 +178,7 @@ func TestUpdateStatus(t *testing.T) { }, Spec: api.PersistentVolumeClaimSpec{ AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: api.ResourceList{ api.ResourceName(api.ResourceStorage): resource.MustParse("3Gi"), }, diff --git a/pkg/scheduler/framework/plugins/volumebinding/binder_test.go b/pkg/scheduler/framework/plugins/volumebinding/binder_test.go index 5d7fdca1a1b..f053900c75b 100644 --- a/pkg/scheduler/framework/plugins/volumebinding/binder_test.go +++ b/pkg/scheduler/framework/plugins/volumebinding/binder_test.go @@ -627,7 +627,7 @@ func makeTestPVC(name, size, node string, pvcBoundState int, pvName, resourceVer ResourceVersion: resourceVersion, }, Spec: v1.PersistentVolumeClaimSpec{ - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse(size), }, diff --git a/pkg/scheduler/framework/plugins/volumebinding/test_utils.go b/pkg/scheduler/framework/plugins/volumebinding/test_utils.go index d58e3667999..4ec84825b7e 100644 --- a/pkg/scheduler/framework/plugins/volumebinding/test_utils.go +++ b/pkg/scheduler/framework/plugins/volumebinding/test_utils.go @@ -127,7 +127,7 @@ func (pvcb pvcBuilder) withBoundPV(pvName string) pvcBuilder { } func (pvcb pvcBuilder) withRequestStorage(request resource.Quantity) pvcBuilder { - pvcb.PersistentVolumeClaim.Spec.Resources = v1.ResourceRequirements{ + pvcb.PersistentVolumeClaim.Spec.Resources = v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): request, }, diff --git a/pkg/scheduler/testing/wrappers.go b/pkg/scheduler/testing/wrappers.go index bb0dc78f131..a3ebfbcaeba 100644 --- a/pkg/scheduler/testing/wrappers.go +++ b/pkg/scheduler/testing/wrappers.go @@ -801,7 +801,7 @@ func (p *PersistentVolumeClaimWrapper) AccessModes(accessModes []v1.PersistentVo // Resources sets `resources` as the resource requirements of the inner // PersistentVolumeClaim. -func (p *PersistentVolumeClaimWrapper) Resources(resources v1.ResourceRequirements) *PersistentVolumeClaimWrapper { +func (p *PersistentVolumeClaimWrapper) Resources(resources v1.VolumeResourceRequirements) *PersistentVolumeClaimWrapper { p.PersistentVolumeClaim.Spec.Resources = resources return p } diff --git a/pkg/volume/testing/testing.go b/pkg/volume/testing/testing.go index ae597e26573..5eb82b68ea6 100644 --- a/pkg/volume/testing/testing.go +++ b/pkg/volume/testing/testing.go @@ -18,7 +18,6 @@ package testing import ( "fmt" - "k8s.io/klog/v2" "os" "path/filepath" goruntime "runtime" @@ -27,6 +26,8 @@ import ( "testing" "time" + "k8s.io/klog/v2" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/utils/exec" testingexec "k8s.io/utils/exec/testing" @@ -1706,7 +1707,7 @@ func CreateTestPVC(capacity string, accessModes []v1.PersistentVolumeAccessMode) }, Spec: v1.PersistentVolumeClaimSpec{ AccessModes: accessModes, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse(capacity), }, diff --git a/pkg/volume/util/operationexecutor/operation_generator_test.go b/pkg/volume/util/operationexecutor/operation_generator_test.go index 281e1db3059..f44c58fdc57 100644 --- a/pkg/volume/util/operationexecutor/operation_generator_test.go +++ b/pkg/volume/util/operationexecutor/operation_generator_test.go @@ -350,7 +350,7 @@ func getTestPVC(volumeName string, specSize, statusSize, allocatedSize string, r }, Spec: v1.PersistentVolumeClaimSpec{ AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce}, - Resources: v1.ResourceRequirements{Requests: v1.ResourceList{v1.ResourceStorage: resource.MustParse(specSize)}}, + Resources: v1.VolumeResourceRequirements{Requests: v1.ResourceList{v1.ResourceStorage: resource.MustParse(specSize)}}, VolumeName: volumeName, }, Status: v1.PersistentVolumeClaimStatus{ diff --git a/pkg/volume/util/resize_util_test.go b/pkg/volume/util/resize_util_test.go index f49b93fdc7b..ac78de1b996 100644 --- a/pkg/volume/util/resize_util_test.go +++ b/pkg/volume/util/resize_util_test.go @@ -264,7 +264,7 @@ func makePVC(conditions []v1.PersistentVolumeClaimCondition) pvcModifier { v1.ReadWriteOnce, v1.ReadOnlyMany, }, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse("2Gi"), }, diff --git a/plugin/pkg/admission/limitranger/admission_test.go b/plugin/pkg/admission/limitranger/admission_test.go index fd850048b9b..cec598e788b 100644 --- a/plugin/pkg/admission/limitranger/admission_test.go +++ b/plugin/pkg/admission/limitranger/admission_test.go @@ -69,6 +69,13 @@ func getResourceRequirements(requests, limits api.ResourceList) api.ResourceRequ return res } +func getVolumeResourceRequirements(requests, limits api.ResourceList) api.VolumeResourceRequirements { + res := api.VolumeResourceRequirements{} + res.Requests = requests + res.Limits = limits + return res +} + // createLimitRange creates a limit range with the specified data func createLimitRange(limitType api.LimitType, min, max, defaultLimit, defaultRequest, maxLimitRequestRatio api.ResourceList) corev1.LimitRange { internalLimitRage := api.LimitRange{ @@ -816,7 +823,7 @@ func newHandlerForTest(c clientset.Interface) (*LimitRanger, informers.SharedInf return handler, f, err } -func validPersistentVolumeClaim(name string, resources api.ResourceRequirements) api.PersistentVolumeClaim { +func validPersistentVolumeClaim(name string, resources api.VolumeResourceRequirements) api.PersistentVolumeClaim { pvc := api.PersistentVolumeClaim{ ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: "test"}, Spec: api.PersistentVolumeClaimSpec{ @@ -834,19 +841,19 @@ func TestPersistentVolumeClaimLimitFunc(t *testing.T) { successCases := []testCase{ { - pvc: validPersistentVolumeClaim("pvc-is-min-storage-request", getResourceRequirements(getStorageResourceList("1Gi"), getStorageResourceList(""))), + pvc: validPersistentVolumeClaim("pvc-is-min-storage-request", getVolumeResourceRequirements(getStorageResourceList("1Gi"), getStorageResourceList(""))), limitRange: createLimitRange(api.LimitTypePersistentVolumeClaim, getStorageResourceList("1Gi"), api.ResourceList{}, api.ResourceList{}, api.ResourceList{}, api.ResourceList{}), }, { - pvc: validPersistentVolumeClaim("pvc-is-max-storage-request", getResourceRequirements(getStorageResourceList("1Gi"), getStorageResourceList(""))), + pvc: validPersistentVolumeClaim("pvc-is-max-storage-request", getVolumeResourceRequirements(getStorageResourceList("1Gi"), getStorageResourceList(""))), limitRange: createLimitRange(api.LimitTypePersistentVolumeClaim, api.ResourceList{}, getStorageResourceList("1Gi"), api.ResourceList{}, api.ResourceList{}, api.ResourceList{}), }, { - pvc: validPersistentVolumeClaim("pvc-no-minmax-storage-request", getResourceRequirements(getStorageResourceList("100Gi"), getStorageResourceList(""))), + pvc: validPersistentVolumeClaim("pvc-no-minmax-storage-request", getVolumeResourceRequirements(getStorageResourceList("100Gi"), getStorageResourceList(""))), limitRange: createLimitRange(api.LimitTypePersistentVolumeClaim, getStorageResourceList(""), getStorageResourceList(""), api.ResourceList{}, api.ResourceList{}, api.ResourceList{}), }, { - pvc: validPersistentVolumeClaim("pvc-within-minmax-storage-request", getResourceRequirements(getStorageResourceList("5Gi"), getStorageResourceList(""))), + pvc: validPersistentVolumeClaim("pvc-within-minmax-storage-request", getVolumeResourceRequirements(getStorageResourceList("5Gi"), getStorageResourceList(""))), limitRange: createLimitRange(api.LimitTypePersistentVolumeClaim, getStorageResourceList("1Gi"), getStorageResourceList("10Gi"), api.ResourceList{}, api.ResourceList{}, api.ResourceList{}), }, } @@ -860,11 +867,11 @@ func TestPersistentVolumeClaimLimitFunc(t *testing.T) { errorCases := []testCase{ { - pvc: validPersistentVolumeClaim("pvc-below-min-storage-request", getResourceRequirements(getStorageResourceList("500Mi"), getStorageResourceList(""))), + pvc: validPersistentVolumeClaim("pvc-below-min-storage-request", getVolumeResourceRequirements(getStorageResourceList("500Mi"), getStorageResourceList(""))), limitRange: createLimitRange(api.LimitTypePersistentVolumeClaim, getStorageResourceList("1Gi"), api.ResourceList{}, api.ResourceList{}, api.ResourceList{}, api.ResourceList{}), }, { - pvc: validPersistentVolumeClaim("pvc-exceeds-max-storage-request", getResourceRequirements(getStorageResourceList("100Gi"), getStorageResourceList(""))), + pvc: validPersistentVolumeClaim("pvc-exceeds-max-storage-request", getVolumeResourceRequirements(getStorageResourceList("100Gi"), getStorageResourceList(""))), limitRange: createLimitRange(api.LimitTypePersistentVolumeClaim, getStorageResourceList("1Gi"), getStorageResourceList("1Gi"), api.ResourceList{}, api.ResourceList{}, api.ResourceList{}), }, } diff --git a/plugin/pkg/admission/noderestriction/admission_test.go b/plugin/pkg/admission/noderestriction/admission_test.go index 412634d685b..2d9a0824089 100644 --- a/plugin/pkg/admission/noderestriction/admission_test.go +++ b/plugin/pkg/admission/noderestriction/admission_test.go @@ -1552,7 +1552,7 @@ func makeTestPVC( pvc := &api.PersistentVolumeClaim{ Spec: api.PersistentVolumeClaimSpec{ VolumeName: "volume1", - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: api.ResourceList{ api.ResourceStorage: resource.MustParse("10G"), }, diff --git a/plugin/pkg/admission/resourcequota/admission_test.go b/plugin/pkg/admission/resourcequota/admission_test.go index a1114331e3c..51ee0872b54 100644 --- a/plugin/pkg/admission/resourcequota/admission_test.go +++ b/plugin/pkg/admission/resourcequota/admission_test.go @@ -62,6 +62,13 @@ func getResourceRequirements(requests, limits api.ResourceList) api.ResourceRequ return res } +func getVolumeResourceRequirements(requests, limits api.ResourceList) api.VolumeResourceRequirements { + res := api.VolumeResourceRequirements{} + res.Requests = requests + res.Limits = limits + return res +} + func validPod(name string, numContainers int, resources api.ResourceRequirements) *api.Pod { pod := &api.Pod{ ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: "test"}, @@ -85,7 +92,7 @@ func validPodWithPriority(name string, numContainers int, resources api.Resource return pod } -func validPersistentVolumeClaim(name string, resources api.ResourceRequirements) *api.PersistentVolumeClaim { +func validPersistentVolumeClaim(name string, resources api.VolumeResourceRequirements) *api.PersistentVolumeClaim { return &api.PersistentVolumeClaim{ ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: "test"}, Spec: api.PersistentVolumeClaimSpec{ @@ -426,14 +433,14 @@ func TestAdmitHandlesNegativePVCUpdates(t *testing.T) { oldPVC := &api.PersistentVolumeClaim{ ObjectMeta: metav1.ObjectMeta{Name: "pvc-to-update", Namespace: "test", ResourceVersion: "1"}, Spec: api.PersistentVolumeClaimSpec{ - Resources: getResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("10Gi")}, api.ResourceList{}), + Resources: getVolumeResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("10Gi")}, api.ResourceList{}), }, } newPVC := &api.PersistentVolumeClaim{ ObjectMeta: metav1.ObjectMeta{Name: "pvc-to-update", Namespace: "test"}, Spec: api.PersistentVolumeClaimSpec{ - Resources: getResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("5Gi")}, api.ResourceList{}), + Resources: getVolumeResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("5Gi")}, api.ResourceList{}), }, } @@ -478,14 +485,14 @@ func TestAdmitHandlesPVCUpdates(t *testing.T) { oldPVC := &api.PersistentVolumeClaim{ ObjectMeta: metav1.ObjectMeta{Name: "pvc-to-update", Namespace: "test", ResourceVersion: "1"}, Spec: api.PersistentVolumeClaimSpec{ - Resources: getResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("10Gi")}, api.ResourceList{}), + Resources: getVolumeResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("10Gi")}, api.ResourceList{}), }, } newPVC := &api.PersistentVolumeClaim{ ObjectMeta: metav1.ObjectMeta{Name: "pvc-to-update", Namespace: "test"}, Spec: api.PersistentVolumeClaimSpec{ - Resources: getResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("15Gi")}, api.ResourceList{}), + Resources: getVolumeResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("15Gi")}, api.ResourceList{}), }, } @@ -1069,14 +1076,14 @@ func TestAdmitRejectsNegativeUsage(t *testing.T) { informerFactory.Core().V1().ResourceQuotas().Informer().GetIndexer().Add(resourceQuota) // verify quota rejects negative pvc storage requests - newPvc := validPersistentVolumeClaim("not-allowed-pvc", getResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("-1Gi")}, api.ResourceList{})) + newPvc := validPersistentVolumeClaim("not-allowed-pvc", getVolumeResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("-1Gi")}, api.ResourceList{})) err = handler.Validate(context.TODO(), admission.NewAttributesRecord(newPvc, nil, api.Kind("PersistentVolumeClaim").WithVersion("version"), newPvc.Namespace, newPvc.Name, corev1.Resource("persistentvolumeclaims").WithVersion("version"), "", admission.Create, &metav1.CreateOptions{}, false, nil), nil) if err == nil { t.Errorf("Expected an error because the pvc has negative storage usage") } // verify quota accepts non-negative pvc storage requests - newPvc = validPersistentVolumeClaim("not-allowed-pvc", getResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("1Gi")}, api.ResourceList{})) + newPvc = validPersistentVolumeClaim("not-allowed-pvc", getVolumeResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("1Gi")}, api.ResourceList{})) err = handler.Validate(context.TODO(), admission.NewAttributesRecord(newPvc, nil, api.Kind("PersistentVolumeClaim").WithVersion("version"), newPvc.Namespace, newPvc.Name, corev1.Resource("persistentvolumeclaims").WithVersion("version"), "", admission.Create, &metav1.CreateOptions{}, false, nil), nil) if err != nil { t.Errorf("Unexpected error: %v", err) diff --git a/plugin/pkg/admission/storage/persistentvolume/resize/admission_test.go b/plugin/pkg/admission/storage/persistentvolume/resize/admission_test.go index 01089b97db3..a77ca00863f 100644 --- a/plugin/pkg/admission/storage/persistentvolume/resize/admission_test.go +++ b/plugin/pkg/admission/storage/persistentvolume/resize/admission_test.go @@ -88,7 +88,7 @@ func TestPVCResizeAdmission(t *testing.T) { oldObj: &api.PersistentVolumeClaim{ Spec: api.PersistentVolumeClaimSpec{ VolumeName: "volume1", - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: getResourceList("1Gi"), }, StorageClassName: &goldClassName, @@ -101,7 +101,7 @@ func TestPVCResizeAdmission(t *testing.T) { newObj: &api.PersistentVolumeClaim{ Spec: api.PersistentVolumeClaimSpec{ VolumeName: "volume1", - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: getResourceList("2Gi"), }, StorageClassName: &goldClassName, @@ -119,7 +119,7 @@ func TestPVCResizeAdmission(t *testing.T) { oldObj: &api.PersistentVolumeClaim{ Spec: api.PersistentVolumeClaimSpec{ VolumeName: "volume3", - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: getResourceList("1Gi"), }, }, @@ -131,7 +131,7 @@ func TestPVCResizeAdmission(t *testing.T) { newObj: &api.PersistentVolumeClaim{ Spec: api.PersistentVolumeClaimSpec{ VolumeName: "volume3", - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: getResourceList("2Gi"), }, }, @@ -148,7 +148,7 @@ func TestPVCResizeAdmission(t *testing.T) { oldObj: &api.PersistentVolumeClaim{ Spec: api.PersistentVolumeClaimSpec{ VolumeName: "volume4", - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: getResourceList("1Gi"), }, StorageClassName: &silverClassName, @@ -161,7 +161,7 @@ func TestPVCResizeAdmission(t *testing.T) { newObj: &api.PersistentVolumeClaim{ Spec: api.PersistentVolumeClaimSpec{ VolumeName: "volume4", - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: getResourceList("2Gi"), }, StorageClassName: &silverClassName, @@ -178,7 +178,7 @@ func TestPVCResizeAdmission(t *testing.T) { resource: api.SchemeGroupVersion.WithResource("persistentvolumeclaims"), oldObj: &api.PersistentVolumeClaim{ Spec: api.PersistentVolumeClaimSpec{ - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: getResourceList("1Gi"), }, StorageClassName: &silverClassName, @@ -191,7 +191,7 @@ func TestPVCResizeAdmission(t *testing.T) { newObj: &api.PersistentVolumeClaim{ Spec: api.PersistentVolumeClaimSpec{ VolumeName: "volume4", - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: getResourceList("1Gi"), }, StorageClassName: &silverClassName, @@ -208,7 +208,7 @@ func TestPVCResizeAdmission(t *testing.T) { resource: api.SchemeGroupVersion.WithResource("persistentvolumeclaims"), oldObj: &api.PersistentVolumeClaim{ Spec: api.PersistentVolumeClaimSpec{ - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: getResourceList("1Gi"), }, StorageClassName: &silverClassName, @@ -220,7 +220,7 @@ func TestPVCResizeAdmission(t *testing.T) { }, newObj: &api.PersistentVolumeClaim{ Spec: api.PersistentVolumeClaimSpec{ - Resources: api.ResourceRequirements{ + Resources: api.VolumeResourceRequirements{ Requests: getResourceList("2Gi"), }, StorageClassName: &silverClassName, diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go index 8c55d07c1b4..13bdb6da752 100644 --- a/staging/src/k8s.io/api/core/v1/types.go +++ b/staging/src/k8s.io/api/core/v1/types.go @@ -486,7 +486,7 @@ type PersistentVolumeClaimSpec struct { // status field of the claim. // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources // +optional - Resources ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,2,opt,name=resources"` + Resources VolumeResourceRequirements `json:"resources,omitempty" protobuf:"bytes,2,opt,name=resources"` // volumeName is the binding reference to the PersistentVolume backing this claim. // +optional VolumeName string `json:"volumeName,omitempty" protobuf:"bytes,3,opt,name=volumeName"` @@ -2417,6 +2417,27 @@ type ResourceRequirements struct { Claims []ResourceClaim `json:"claims,omitempty" protobuf:"bytes,3,opt,name=claims"` } +// VolumeResourceRequirements describes the storage resource requirements for a volume. +type VolumeResourceRequirements struct { + // Limits describes the maximum amount of compute resources allowed. + // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + // +optional + Limits ResourceList `json:"limits,omitempty" protobuf:"bytes,1,rep,name=limits,casttype=ResourceList,castkey=ResourceName"` + // Requests describes the minimum amount of compute resources required. + // If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + // otherwise to an implementation-defined value. Requests cannot exceed Limits. + // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + // +optional + Requests ResourceList `json:"requests,omitempty" protobuf:"bytes,2,rep,name=requests,casttype=ResourceList,castkey=ResourceName"` + + // Claims got added by accident when volumes shared the ResourceRequirements struct + // with containers. Stripping the field got added in 1.27 and was backported to 1.26. + // Starting with Kubernetes 1.28, this field is not part of the volume API anymore. + // + // Future extensions must not use "claims" or field number 3. + // Claims []ResourceClaim `json:"claims,omitempty" protobuf:"bytes,3,opt,name=claims"` +} + // ResourceClaim references one entry in PodSpec.ResourceClaims. type ResourceClaim struct { // Name must match the name of one entry in pod.spec.resourceClaims of diff --git a/staging/src/k8s.io/component-helpers/storage/volume/pv_helpers_test.go b/staging/src/k8s.io/component-helpers/storage/volume/pv_helpers_test.go index 6482ecfa6fc..4d73bd6f048 100644 --- a/staging/src/k8s.io/component-helpers/storage/volume/pv_helpers_test.go +++ b/staging/src/k8s.io/component-helpers/storage/volume/pv_helpers_test.go @@ -270,7 +270,7 @@ func makeTestPersistentVolumeClaim(name string, size string, accessMode []v1.Per }, Spec: v1.PersistentVolumeClaimSpec{ AccessModes: accessMode, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse(size), }, diff --git a/test/e2e/apimachinery/resource_quota.go b/test/e2e/apimachinery/resource_quota.go index c69cbcf8088..50dde001437 100644 --- a/test/e2e/apimachinery/resource_quota.go +++ b/test/e2e/apimachinery/resource_quota.go @@ -1977,7 +1977,7 @@ func newTestPersistentVolumeClaimForQuota(name string) *v1.PersistentVolumeClaim v1.ReadWriteOnce, v1.ReadOnlyMany, }, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse("1Gi"), }, diff --git a/test/e2e/framework/pv/pv.go b/test/e2e/framework/pv/pv.go index 006091870e5..469688d3496 100644 --- a/test/e2e/framework/pv/pv.go +++ b/test/e2e/framework/pv/pv.go @@ -648,7 +648,7 @@ func MakePersistentVolumeClaim(cfg PersistentVolumeClaimConfig, ns string) *v1.P Spec: v1.PersistentVolumeClaimSpec{ Selector: cfg.Selector, AccessModes: cfg.AccessModes, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceStorage: resource.MustParse(cfg.ClaimSize), }, diff --git a/test/e2e/framework/statefulset/fixtures.go b/test/e2e/framework/statefulset/fixtures.go index 1ebac43ba79..bde1693df60 100644 --- a/test/e2e/framework/statefulset/fixtures.go +++ b/test/e2e/framework/statefulset/fixtures.go @@ -105,7 +105,7 @@ func NewStatefulSetPVC(name string) v1.PersistentVolumeClaim { AccessModes: []v1.PersistentVolumeAccessMode{ v1.ReadWriteOnce, }, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceStorage: *resource.NewQuantity(1, resource.BinarySI), }, diff --git a/test/e2e/storage/framework/volume_resource.go b/test/e2e/storage/framework/volume_resource.go index 12ce1872e7c..8f0a428fe1a 100644 --- a/test/e2e/storage/framework/volume_resource.go +++ b/test/e2e/storage/framework/volume_resource.go @@ -155,7 +155,7 @@ func createEphemeralVolumeSource(scName string, volMode v1.PersistentVolumeMode, StorageClassName: &scName, AccessModes: accessModes, VolumeMode: &volMode, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceStorage: resource.MustParse(claimSize), }, diff --git a/test/e2e/storage/persistent_volumes-local.go b/test/e2e/storage/persistent_volumes-local.go index 61106626375..fc4f700b335 100644 --- a/test/e2e/storage/persistent_volumes-local.go +++ b/test/e2e/storage/persistent_volumes-local.go @@ -1069,7 +1069,7 @@ func newLocalClaimWithName(config *localTestConfig, name string) *v1.PersistentV AccessModes: []v1.PersistentVolumeAccessMode{ v1.ReadWriteOnce, }, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse(testRequestSize), }, diff --git a/test/e2e/storage/testsuites/ephemeral.go b/test/e2e/storage/testsuites/ephemeral.go index eaa7c19895e..85c260b9d02 100644 --- a/test/e2e/storage/testsuites/ephemeral.go +++ b/test/e2e/storage/testsuites/ephemeral.go @@ -523,7 +523,7 @@ func GenericEphemeralVolumesEnabled(ctx context.Context, c clientset.Interface, Spec: v1.PersistentVolumeClaimSpec{ StorageClassName: &storageClassName, AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce}, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceStorage: resource.MustParse("1Gi"), }, diff --git a/test/e2e/storage/vsphere/vsphere_utils.go b/test/e2e/storage/vsphere/vsphere_utils.go index 45a9e4e232b..1e70e712d8b 100644 --- a/test/e2e/storage/vsphere/vsphere_utils.go +++ b/test/e2e/storage/vsphere/vsphere_utils.go @@ -183,7 +183,7 @@ func getVSpherePersistentVolumeClaimSpec(namespace string, labels map[string]str AccessModes: []v1.PersistentVolumeAccessMode{ v1.ReadWriteOnce, }, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse("2Gi"), }, @@ -252,7 +252,7 @@ func getVSphereClaimSpecWithStorageClass(ns string, diskSize string, storageclas AccessModes: []v1.PersistentVolumeAccessMode{ v1.ReadWriteOnce, }, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse(diskSize), }, diff --git a/test/integration/auth/node_test.go b/test/integration/auth/node_test.go index 9021d263181..8481b3d6db4 100644 --- a/test/integration/auth/node_test.go +++ b/test/integration/auth/node_test.go @@ -129,7 +129,7 @@ func TestNodeAuthorizer(t *testing.T) { ObjectMeta: metav1.ObjectMeta{Name: "mypvc"}, Spec: corev1.PersistentVolumeClaimSpec{ AccessModes: []corev1.PersistentVolumeAccessMode{corev1.ReadOnlyMany}, - Resources: corev1.ResourceRequirements{Requests: corev1.ResourceList{corev1.ResourceStorage: resource.MustParse("1")}}, + Resources: corev1.VolumeResourceRequirements{Requests: corev1.ResourceList{corev1.ResourceStorage: resource.MustParse("1")}}, }, }, metav1.CreateOptions{}); err != nil { t.Fatal(err) diff --git a/test/integration/pvc/upgrade_test.go b/test/integration/pvc/upgrade_test.go index 7482133c1ed..7ccc3a5489b 100644 --- a/test/integration/pvc/upgrade_test.go +++ b/test/integration/pvc/upgrade_test.go @@ -67,7 +67,7 @@ func test_UpgradePVC(t *testing.T, featureEnabled bool) { UID: "08675309-9376-9376-9376-086753099999", }, Spec: v1.PersistentVolumeClaimSpec{ - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse("10G"), }, diff --git a/test/integration/scheduler/filters/filters_test.go b/test/integration/scheduler/filters/filters_test.go index 6ca67b99b64..9af24fbc9cc 100644 --- a/test/integration/scheduler/filters/filters_test.go +++ b/test/integration/scheduler/filters/filters_test.go @@ -1710,7 +1710,7 @@ func TestUnschedulablePodBecomesSchedulable(t *testing.T) { return fmt.Errorf("cannot create node: %v", err) } - storage := v1.ResourceRequirements{Requests: v1.ResourceList{v1.ResourceStorage: resource.MustParse("1Mi")}} + storage := v1.VolumeResourceRequirements{Requests: v1.ResourceList{v1.ResourceStorage: resource.MustParse("1Mi")}} volType := v1.HostPathDirectoryOrCreate pv, err := testutils.CreatePV(cs, st.MakePersistentVolume(). Name("pv-with-read-write-once-pod"). diff --git a/test/integration/scheduler/preemption/preemption_test.go b/test/integration/scheduler/preemption/preemption_test.go index c13cbdd6b95..6b47548f686 100644 --- a/test/integration/scheduler/preemption/preemption_test.go +++ b/test/integration/scheduler/preemption/preemption_test.go @@ -1677,7 +1677,7 @@ func TestReadWriteOncePodPreemption(t *testing.T) { cs := testCtx.ClientSet - storage := v1.ResourceRequirements{Requests: v1.ResourceList{v1.ResourceStorage: resource.MustParse("1Mi")}} + storage := v1.VolumeResourceRequirements{Requests: v1.ResourceList{v1.ResourceStorage: resource.MustParse("1Mi")}} volType := v1.HostPathDirectoryOrCreate pv1 := st.MakePersistentVolume(). Name("pv-with-read-write-once-pod-1"). diff --git a/test/integration/statefulset/util.go b/test/integration/statefulset/util.go index 896994b042c..4ca4fc6d7c3 100644 --- a/test/integration/statefulset/util.go +++ b/test/integration/statefulset/util.go @@ -151,7 +151,7 @@ func newStatefulSetPVC(name string) v1.PersistentVolumeClaim { AccessModes: []v1.PersistentVolumeAccessMode{ v1.ReadWriteOnce, }, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceStorage: *resource.NewQuantity(1, resource.BinarySI), }, diff --git a/test/integration/storageclasses/storage_classes_test.go b/test/integration/storageclasses/storage_classes_test.go index 6556284f170..ee39c091efb 100644 --- a/test/integration/storageclasses/storage_classes_test.go +++ b/test/integration/storageclasses/storage_classes_test.go @@ -22,7 +22,7 @@ import ( "context" "testing" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" storage "k8s.io/api/storage/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -72,7 +72,7 @@ func DoTestStorageClasses(t *testing.T, client clientset.Interface, ns *v1.Names Namespace: ns.Name, }, Spec: v1.PersistentVolumeClaimSpec{ - Resources: v1.ResourceRequirements{Requests: v1.ResourceList{v1.ResourceName(v1.ResourceStorage): resource.MustParse("1G")}}, + Resources: v1.VolumeResourceRequirements{Requests: v1.ResourceList{v1.ResourceName(v1.ResourceStorage): resource.MustParse("1G")}}, AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce}, StorageClassName: &classGold, }, diff --git a/test/integration/volume/attach_detach_test.go b/test/integration/volume/attach_detach_test.go index a974ef64562..c7d4164ce09 100644 --- a/test/integration/volume/attach_detach_test.go +++ b/test/integration/volume/attach_detach_test.go @@ -120,7 +120,7 @@ func fakePodWithPVC(name, pvcName, namespace string) (*v1.Pod, *v1.PersistentVol AccessModes: []v1.PersistentVolumeAccessMode{ v1.ReadWriteOnce, }, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse("5Gi"), }, diff --git a/test/integration/volume/persistent_volumes_test.go b/test/integration/volume/persistent_volumes_test.go index ce597dc0cb8..7c038468f6b 100644 --- a/test/integration/volume/persistent_volumes_test.go +++ b/test/integration/volume/persistent_volumes_test.go @@ -25,7 +25,7 @@ import ( "testing" "time" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" storage "k8s.io/api/storage/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -1417,7 +1417,7 @@ func createPVC(name, namespace, cap string, mode []v1.PersistentVolumeAccessMode Namespace: namespace, }, Spec: v1.PersistentVolumeClaimSpec{ - Resources: v1.ResourceRequirements{Requests: v1.ResourceList{v1.ResourceName(v1.ResourceStorage): resource.MustParse(cap)}}, + Resources: v1.VolumeResourceRequirements{Requests: v1.ResourceList{v1.ResourceName(v1.ResourceStorage): resource.MustParse(cap)}}, AccessModes: mode, StorageClassName: &class, }, @@ -1431,7 +1431,7 @@ func createPVCWithNilStorageClass(name, namespace, cap string, mode []v1.Persist Namespace: namespace, }, Spec: v1.PersistentVolumeClaimSpec{ - Resources: v1.ResourceRequirements{Requests: v1.ResourceList{v1.ResourceName(v1.ResourceStorage): resource.MustParse(cap)}}, + Resources: v1.VolumeResourceRequirements{Requests: v1.ResourceList{v1.ResourceName(v1.ResourceStorage): resource.MustParse(cap)}}, AccessModes: mode, }, } diff --git a/test/integration/volumescheduling/volume_binding_test.go b/test/integration/volumescheduling/volume_binding_test.go index 0f10b190ed2..c23d736c8ef 100644 --- a/test/integration/volumescheduling/volume_binding_test.go +++ b/test/integration/volumescheduling/volume_binding_test.go @@ -1218,7 +1218,7 @@ func makePVC(name, ns string, scName *string, volumeName string) *v1.PersistentV AccessModes: []v1.PersistentVolumeAccessMode{ v1.ReadWriteOnce, }, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse("5Gi"), }, diff --git a/test/integration/volumescheduling/volume_capacity_priority_test.go b/test/integration/volumescheduling/volume_capacity_priority_test.go index aeeac39f43e..0146792ea9f 100644 --- a/test/integration/volumescheduling/volume_capacity_priority_test.go +++ b/test/integration/volumescheduling/volume_capacity_priority_test.go @@ -304,7 +304,7 @@ func setPVCapacity(pv *v1.PersistentVolume, capacity resource.Quantity) *v1.Pers } func setPVCRequestStorage(pvc *v1.PersistentVolumeClaim, request resource.Quantity) *v1.PersistentVolumeClaim { - pvc.Spec.Resources = v1.ResourceRequirements{ + pvc.Spec.Resources = v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): request, }, diff --git a/test/utils/runners.go b/test/utils/runners.go index 3cbc8a7bba2..cfc2bc11634 100644 --- a/test/utils/runners.go +++ b/test/utils/runners.go @@ -1502,7 +1502,7 @@ func makeUnboundPersistentVolumeClaim(storageClass string) *v1.PersistentVolumeC Spec: v1.PersistentVolumeClaimSpec{ AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadOnlyMany}, StorageClassName: &storageClass, - Resources: v1.ResourceRequirements{ + Resources: v1.VolumeResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceName(v1.ResourceStorage): resource.MustParse("1Gi"), },