mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 04:33:26 +00:00
Implement API changes needed for dynamic volume limits
define alpha feature and make api changes
This commit is contained in:
parent
bbf5625630
commit
45fb31ec07
@ -3590,6 +3590,8 @@ const (
|
|||||||
ResourceDefaultNamespacePrefix = "kubernetes.io/"
|
ResourceDefaultNamespacePrefix = "kubernetes.io/"
|
||||||
// Name prefix for huge page resources (alpha).
|
// Name prefix for huge page resources (alpha).
|
||||||
ResourceHugePagesPrefix = "hugepages-"
|
ResourceHugePagesPrefix = "hugepages-"
|
||||||
|
// Name prefix for storage resource limits
|
||||||
|
ResourceAttachableVolumesPrefix = "attachable-volumes-"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ResourceList is a set of (resource name, quantity) pairs.
|
// ResourceList is a set of (resource name, quantity) pairs.
|
||||||
|
@ -92,10 +92,14 @@ func IsOvercommitAllowed(name v1.ResourceName) bool {
|
|||||||
!IsHugePageResourceName(name)
|
!IsHugePageResourceName(name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func IsAttachableVolumeResourceName(name v1.ResourceName) bool {
|
||||||
|
return strings.HasPrefix(string(name), v1.ResourceAttachableVolumesPrefix)
|
||||||
|
}
|
||||||
|
|
||||||
// Extended and Hugepages resources
|
// Extended and Hugepages resources
|
||||||
func IsScalarResourceName(name v1.ResourceName) bool {
|
func IsScalarResourceName(name v1.ResourceName) bool {
|
||||||
return IsExtendedResourceName(name) || IsHugePageResourceName(name) ||
|
return IsExtendedResourceName(name) || IsHugePageResourceName(name) ||
|
||||||
IsPrefixedNativeResource(name)
|
IsPrefixedNativeResource(name) || IsAttachableVolumeResourceName(name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// this function aims to check if the service's ClusterIP is set or not
|
// this function aims to check if the service's ClusterIP is set or not
|
||||||
|
@ -5549,6 +5549,19 @@ func TestValidateContainers(t *testing.T) {
|
|||||||
TerminationMessagePolicy: "File",
|
TerminationMessagePolicy: "File",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"Invalid storage limit request": {
|
||||||
|
{
|
||||||
|
Name: "abc-123",
|
||||||
|
Image: "image",
|
||||||
|
Resources: core.ResourceRequirements{
|
||||||
|
Limits: core.ResourceList{
|
||||||
|
core.ResourceName("attachable-volumes-aws-ebs"): *resource.NewQuantity(10, resource.DecimalSI),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ImagePullPolicy: "IfNotPresent",
|
||||||
|
TerminationMessagePolicy: "File",
|
||||||
|
},
|
||||||
|
},
|
||||||
"Request limit multiple invalid": {
|
"Request limit multiple invalid": {
|
||||||
{
|
{
|
||||||
Name: "abc-123",
|
Name: "abc-123",
|
||||||
|
@ -284,6 +284,13 @@ const (
|
|||||||
// Do not remove this feature gate even though it's GA
|
// Do not remove this feature gate even though it's GA
|
||||||
VolumeSubpath utilfeature.Feature = "VolumeSubpath"
|
VolumeSubpath utilfeature.Feature = "VolumeSubpath"
|
||||||
|
|
||||||
|
// owner: @gnufied
|
||||||
|
// alpha : v1.11
|
||||||
|
//
|
||||||
|
// Add support for volume plugins to report node specific
|
||||||
|
// volume limits
|
||||||
|
AttachVolumeLimit utilfeature.Feature = "AttachVolumeLimit"
|
||||||
|
|
||||||
// owner: @ravig
|
// owner: @ravig
|
||||||
// alpha: v1.11
|
// alpha: v1.11
|
||||||
//
|
//
|
||||||
@ -341,6 +348,7 @@ var defaultKubernetesFeatureGates = map[utilfeature.Feature]utilfeature.FeatureS
|
|||||||
QOSReserved: {Default: false, PreRelease: utilfeature.Alpha},
|
QOSReserved: {Default: false, PreRelease: utilfeature.Alpha},
|
||||||
ExpandPersistentVolumes: {Default: true, PreRelease: utilfeature.Beta},
|
ExpandPersistentVolumes: {Default: true, PreRelease: utilfeature.Beta},
|
||||||
ExpandInUsePersistentVolumes: {Default: false, PreRelease: utilfeature.Alpha},
|
ExpandInUsePersistentVolumes: {Default: false, PreRelease: utilfeature.Alpha},
|
||||||
|
AttachVolumeLimit: {Default: false, PreRelease: utilfeature.Alpha},
|
||||||
CPUManager: {Default: true, PreRelease: utilfeature.Beta},
|
CPUManager: {Default: true, PreRelease: utilfeature.Beta},
|
||||||
ServiceNodeExclusion: {Default: false, PreRelease: utilfeature.Alpha},
|
ServiceNodeExclusion: {Default: false, PreRelease: utilfeature.Alpha},
|
||||||
MountContainers: {Default: false, PreRelease: utilfeature.Alpha},
|
MountContainers: {Default: false, PreRelease: utilfeature.Alpha},
|
||||||
|
@ -4028,6 +4028,8 @@ const (
|
|||||||
ResourceDefaultNamespacePrefix = "kubernetes.io/"
|
ResourceDefaultNamespacePrefix = "kubernetes.io/"
|
||||||
// Name prefix for huge page resources (alpha).
|
// Name prefix for huge page resources (alpha).
|
||||||
ResourceHugePagesPrefix = "hugepages-"
|
ResourceHugePagesPrefix = "hugepages-"
|
||||||
|
// Name prefix for storage resource limits
|
||||||
|
ResourceAttachableVolumesPrefix = "attachable-volumes-"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ResourceList is a set of (resource name, quantity) pairs.
|
// ResourceList is a set of (resource name, quantity) pairs.
|
||||||
|
Loading…
Reference in New Issue
Block a user