Merge pull request #102884 from vinaykul/restart-free-pod-vertical-scaling
In-place Pod Vertical Scaling feature Kubernetes-commit: b9fd1802ba0aec68508b4e9eec00819008a79370
This commit is contained in:
commit
3a9f1f4bf0
16
go.mod
16
go.mod
|
|
@ -42,12 +42,12 @@ require (
|
|||
google.golang.org/protobuf v1.28.1
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
||||
gopkg.in/square/go-jose.v2 v2.2.2
|
||||
k8s.io/api v0.0.0-20230224170233-ec40acc5b8d7
|
||||
k8s.io/apimachinery v0.0.0-20230223090012-28259f54ab7d
|
||||
k8s.io/client-go v0.0.0-20230225010603-b46677097d03
|
||||
k8s.io/api v0.0.0-20230228090259-b5b22ca1babf
|
||||
k8s.io/apimachinery v0.0.0-20230227225516-80f59387d3d1
|
||||
k8s.io/client-go v0.0.0-20230228090623-8f4ee7119f1d
|
||||
k8s.io/component-base v0.0.0-20230215215219-ae9be4dda9da
|
||||
k8s.io/klog/v2 v2.80.1
|
||||
k8s.io/kms v0.0.0-20230227050942-c7df77c16432
|
||||
k8s.io/kms v0.0.0-20230228010948-9674935696a9
|
||||
k8s.io/kube-openapi v0.0.0-20230123231816-1cb3ae25d79a
|
||||
k8s.io/utils v0.0.0-20230209194617-a36077c30491
|
||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.1
|
||||
|
|
@ -124,9 +124,9 @@ require (
|
|||
)
|
||||
|
||||
replace (
|
||||
k8s.io/api => k8s.io/api v0.0.0-20230224170233-ec40acc5b8d7
|
||||
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20230223090012-28259f54ab7d
|
||||
k8s.io/client-go => k8s.io/client-go v0.0.0-20230225010603-b46677097d03
|
||||
k8s.io/api => k8s.io/api v0.0.0-20230228090259-b5b22ca1babf
|
||||
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20230227225516-80f59387d3d1
|
||||
k8s.io/client-go => k8s.io/client-go v0.0.0-20230228090623-8f4ee7119f1d
|
||||
k8s.io/component-base => k8s.io/component-base v0.0.0-20230215215219-ae9be4dda9da
|
||||
k8s.io/kms => k8s.io/kms v0.0.0-20230227050942-c7df77c16432
|
||||
k8s.io/kms => k8s.io/kms v0.0.0-20230228010948-9674935696a9
|
||||
)
|
||||
|
|
|
|||
16
go.sum
16
go.sum
|
|
@ -995,18 +995,18 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
|
|||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
k8s.io/api v0.0.0-20230224170233-ec40acc5b8d7 h1:QRn9B/c3nFBOr/y1ZvkxSj+8csklqfM0eKhJhQ7ujCo=
|
||||
k8s.io/api v0.0.0-20230224170233-ec40acc5b8d7/go.mod h1:ZgBZcyAg9mrSMLoN3CT3jXA80Nglj1iAeLPjz64hQZ8=
|
||||
k8s.io/apimachinery v0.0.0-20230223090012-28259f54ab7d h1:/diE2y6H2T5l0s265p3l0Dfi4S9vAH3mx0azm51dyEM=
|
||||
k8s.io/apimachinery v0.0.0-20230223090012-28259f54ab7d/go.mod h1:8B/+OdWlScxVvirboh1J5IZSHQrCreQ7fi/5UQntvX0=
|
||||
k8s.io/client-go v0.0.0-20230225010603-b46677097d03 h1:1e2qRaOenUEC2vO9pIlzDizWrrX/da6cmYwzjOlEB2w=
|
||||
k8s.io/client-go v0.0.0-20230225010603-b46677097d03/go.mod h1:HRsm6qmqZE2rC0JWXUXAp5Z4usMnZMEcUdRZAYP5ghQ=
|
||||
k8s.io/api v0.0.0-20230228090259-b5b22ca1babf h1:nOM4wjFnU0nlgQ5xSvS24ayMbBOFw1N/jyEj4ni0ugA=
|
||||
k8s.io/api v0.0.0-20230228090259-b5b22ca1babf/go.mod h1:XAyCRdxxjlGJLzvSsIhA8Ccnsryd6Xh0CgmB3ah3AmQ=
|
||||
k8s.io/apimachinery v0.0.0-20230227225516-80f59387d3d1 h1:Any9/HFr7VOfgDnp+b98WhCql/Tup2fuQD4QYMMSt60=
|
||||
k8s.io/apimachinery v0.0.0-20230227225516-80f59387d3d1/go.mod h1:8B/+OdWlScxVvirboh1J5IZSHQrCreQ7fi/5UQntvX0=
|
||||
k8s.io/client-go v0.0.0-20230228090623-8f4ee7119f1d h1:AJ80TdJqiuvAWNAL4OnY8tD6Vpx1i4QRGLlLAZWjJ9w=
|
||||
k8s.io/client-go v0.0.0-20230228090623-8f4ee7119f1d/go.mod h1:WELbQXwndVIDiY4HhgmXdqz1/YjP6sjiGSaMCDvXGEI=
|
||||
k8s.io/component-base v0.0.0-20230215215219-ae9be4dda9da h1:tgXu2y67YqUXP4txgy1vMTvOOqpT/kzIxmrtE0SvR8M=
|
||||
k8s.io/component-base v0.0.0-20230215215219-ae9be4dda9da/go.mod h1:GgrhCRrPLmN9lWoh+m52a6iHKG3zx8KJyclgqPgbFDQ=
|
||||
k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4=
|
||||
k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
||||
k8s.io/kms v0.0.0-20230227050942-c7df77c16432 h1:Pf2mrrdm8KKvSWuR0DW8bAV1OV/gWoNG9mk5/iqM1gQ=
|
||||
k8s.io/kms v0.0.0-20230227050942-c7df77c16432/go.mod h1:95vU4VQJ4pv6xPzVy3RNBKX1O3wZzAh/w0333JsN9yI=
|
||||
k8s.io/kms v0.0.0-20230228010948-9674935696a9 h1:DS2YWJWTqYfW0CKFs8I4JNJmgNazmK1YkswIVXjEB0Y=
|
||||
k8s.io/kms v0.0.0-20230228010948-9674935696a9/go.mod h1:Tovm+0xkxOXzcRMnxTAcOeGkR6kcjfHsz0aB+ET/xuw=
|
||||
k8s.io/kube-openapi v0.0.0-20230123231816-1cb3ae25d79a h1:s6zvHjyDQX1NtVT88pvw2tddqhqY0Bz0Gbnn+yctsFU=
|
||||
k8s.io/kube-openapi v0.0.0-20230123231816-1cb3ae25d79a/go.mod h1:/BYxry62FuDzmI+i9B+X2pqfySRmSOW2ARmj5Zbqhj0=
|
||||
k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY=
|
||||
|
|
|
|||
|
|
@ -35,8 +35,10 @@ import (
|
|||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
"k8s.io/apiserver/pkg/admission"
|
||||
resourcequotaapi "k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota"
|
||||
"k8s.io/apiserver/pkg/features"
|
||||
quota "k8s.io/apiserver/pkg/quota/v1"
|
||||
"k8s.io/apiserver/pkg/quota/v1/generic"
|
||||
"k8s.io/apiserver/pkg/util/feature"
|
||||
"k8s.io/client-go/util/workqueue"
|
||||
)
|
||||
|
||||
|
|
@ -516,7 +518,14 @@ func CheckRequest(quotas []corev1.ResourceQuota, a admission.Attributes, evaluat
|
|||
if innerErr != nil {
|
||||
return quotas, innerErr
|
||||
}
|
||||
deltaUsage = quota.SubtractWithNonNegativeResult(deltaUsage, prevUsage)
|
||||
if feature.DefaultFeatureGate.Enabled(features.InPlacePodVerticalScaling) {
|
||||
// allow negative usage for pods as pod resources can increase or decrease
|
||||
if a.GetResource().GroupResource() == corev1.Resource("pods") {
|
||||
deltaUsage = quota.Subtract(deltaUsage, prevUsage)
|
||||
}
|
||||
} else {
|
||||
deltaUsage = quota.SubtractWithNonNegativeResult(deltaUsage, prevUsage)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -198,6 +198,13 @@ const (
|
|||
//
|
||||
// Enables support for watch bookmark events.
|
||||
WatchBookmark featuregate.Feature = "WatchBookmark"
|
||||
|
||||
// owner: @vinaykul
|
||||
// kep: http://kep.k8s.io/1287
|
||||
// alpha: v1.27
|
||||
//
|
||||
// Enables In-Place Pod Vertical Scaling
|
||||
InPlacePodVerticalScaling featuregate.Feature = "InPlacePodVerticalScaling"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
|
@ -249,4 +256,6 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
|
|||
StorageVersionHash: {Default: true, PreRelease: featuregate.Beta},
|
||||
|
||||
WatchBookmark: {Default: true, PreRelease: featuregate.GA, LockToDefault: true},
|
||||
|
||||
InPlacePodVerticalScaling: {Default: false, PreRelease: featuregate.Alpha},
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue