Merge pull request #124494 from brianpursley/FixSlowUnitTest-TestForceApply
Improve performance of TestForceApply unit test (k8s.io/kubectl/pkg/cmd/apply) Kubernetes-commit: 8718b3336609b8962a7dac464d8a39a0c2ddb65c
This commit is contained in:
commit
4f380d07c5
4
go.mod
4
go.mod
|
|
@ -33,8 +33,8 @@ require (
|
||||||
k8s.io/api v0.0.0-20240424173406-2676848ed820
|
k8s.io/api v0.0.0-20240424173406-2676848ed820
|
||||||
k8s.io/apimachinery v0.0.0-20240424173219-03f2f3350dc5
|
k8s.io/apimachinery v0.0.0-20240424173219-03f2f3350dc5
|
||||||
k8s.io/cli-runtime v0.0.0-20240424175805-8ca47d2d6148
|
k8s.io/cli-runtime v0.0.0-20240424175805-8ca47d2d6148
|
||||||
k8s.io/client-go v0.0.0-20240424173636-178bcf2846fe
|
k8s.io/client-go v0.0.0-20240424213639-6b47d7dcbef7
|
||||||
k8s.io/component-base v0.0.0-20240424174244-e13cfb16afe7
|
k8s.io/component-base v0.0.0-20240425013935-73cb3a739e5b
|
||||||
k8s.io/component-helpers v0.0.0-20240424174344-623e3ec725a2
|
k8s.io/component-helpers v0.0.0-20240424174344-623e3ec725a2
|
||||||
k8s.io/klog/v2 v2.120.1
|
k8s.io/klog/v2 v2.120.1
|
||||||
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340
|
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340
|
||||||
|
|
|
||||||
8
go.sum
8
go.sum
|
|
@ -282,10 +282,10 @@ k8s.io/apimachinery v0.0.0-20240424173219-03f2f3350dc5 h1:l6ErQDrxBVdvr45UjLjVyv
|
||||||
k8s.io/apimachinery v0.0.0-20240424173219-03f2f3350dc5/go.mod h1:Xbr0GEGusNQhkPdkN3/WJL9E50/dq40D+fHHqjG+FL8=
|
k8s.io/apimachinery v0.0.0-20240424173219-03f2f3350dc5/go.mod h1:Xbr0GEGusNQhkPdkN3/WJL9E50/dq40D+fHHqjG+FL8=
|
||||||
k8s.io/cli-runtime v0.0.0-20240424175805-8ca47d2d6148 h1:JyVWRQclarJirMPSVOmlvmTFAz0meV2PUS7DuMsyvuw=
|
k8s.io/cli-runtime v0.0.0-20240424175805-8ca47d2d6148 h1:JyVWRQclarJirMPSVOmlvmTFAz0meV2PUS7DuMsyvuw=
|
||||||
k8s.io/cli-runtime v0.0.0-20240424175805-8ca47d2d6148/go.mod h1:ZISE294tQHLpDaYy8BiO8VL4o7f4dbidMl/tp2VjA8A=
|
k8s.io/cli-runtime v0.0.0-20240424175805-8ca47d2d6148/go.mod h1:ZISE294tQHLpDaYy8BiO8VL4o7f4dbidMl/tp2VjA8A=
|
||||||
k8s.io/client-go v0.0.0-20240424173636-178bcf2846fe h1:IQdT0pQXL7lMUFKmcaTihi5PR/06Pt1KB9iQlNi94f0=
|
k8s.io/client-go v0.0.0-20240424213639-6b47d7dcbef7 h1:N10W+GQ30UTWwkO933EejukDdxhVu/rqy/VtdCekV1U=
|
||||||
k8s.io/client-go v0.0.0-20240424173636-178bcf2846fe/go.mod h1:ZPkWxMmsYk/QFsT0UVJVWjMScWAjVY80wXZ+xVoairM=
|
k8s.io/client-go v0.0.0-20240424213639-6b47d7dcbef7/go.mod h1:ZPkWxMmsYk/QFsT0UVJVWjMScWAjVY80wXZ+xVoairM=
|
||||||
k8s.io/component-base v0.0.0-20240424174244-e13cfb16afe7 h1:5+Mm3LNH2d5Ey7tbDmx4nJUqKZ0ylOzYnr/b1Bv7B78=
|
k8s.io/component-base v0.0.0-20240425013935-73cb3a739e5b h1:5dg5tFXNtbxGwscKSTUyX3NP6cJNytoqYH+A4olraos=
|
||||||
k8s.io/component-base v0.0.0-20240424174244-e13cfb16afe7/go.mod h1:XyaS7Q/NW59f7dTJ/dReUyrly0iZclrZGCtnjUgK94c=
|
k8s.io/component-base v0.0.0-20240425013935-73cb3a739e5b/go.mod h1:6Oko1NRQ5MyeUcF0JAAUaA5xKzcr5MjtYZpQBBAo5zs=
|
||||||
k8s.io/component-helpers v0.0.0-20240424174344-623e3ec725a2 h1:7ZAMF20uvkfYUfPz1MCzWJdywHFKIY1m/rxrMR0rj1k=
|
k8s.io/component-helpers v0.0.0-20240424174344-623e3ec725a2 h1:7ZAMF20uvkfYUfPz1MCzWJdywHFKIY1m/rxrMR0rj1k=
|
||||||
k8s.io/component-helpers v0.0.0-20240424174344-623e3ec725a2/go.mod h1:h98u50VVdJusKyfzWFQqYrUril5YyAUI2ERw3ibC4C4=
|
k8s.io/component-helpers v0.0.0-20240424174344-623e3ec725a2/go.mod h1:h98u50VVdJusKyfzWFQqYrUril5YyAUI2ERw3ibC4C4=
|
||||||
k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw=
|
k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw=
|
||||||
|
|
|
||||||
|
|
@ -2087,6 +2087,9 @@ func TestForceApply(t *testing.T) {
|
||||||
"post": 1,
|
"post": 1,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set the patch retry back off period to something low, so the test can run more quickly
|
||||||
|
patchRetryBackOffPeriod = 1 * time.Millisecond
|
||||||
|
|
||||||
for _, testingOpenAPISchema := range testingOpenAPISchemas {
|
for _, testingOpenAPISchema := range testingOpenAPISchemas {
|
||||||
for _, openAPIFeatureToggle := range applyFeatureToggles {
|
for _, openAPIFeatureToggle := range applyFeatureToggles {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,8 +49,6 @@ import (
|
||||||
const (
|
const (
|
||||||
// maxPatchRetry is the maximum number of conflicts retry for during a patch operation before returning failure
|
// maxPatchRetry is the maximum number of conflicts retry for during a patch operation before returning failure
|
||||||
maxPatchRetry = 5
|
maxPatchRetry = 5
|
||||||
// backOffPeriod is the period to back off when apply patch results in error.
|
|
||||||
backOffPeriod = 1 * time.Second
|
|
||||||
// how many times we can retry before back off
|
// how many times we can retry before back off
|
||||||
triesBeforeBackOff = 1
|
triesBeforeBackOff = 1
|
||||||
// groupVersionKindExtensionKey is the key used to lookup the
|
// groupVersionKindExtensionKey is the key used to lookup the
|
||||||
|
|
@ -59,6 +57,9 @@ const (
|
||||||
groupVersionKindExtensionKey = "x-kubernetes-group-version-kind"
|
groupVersionKindExtensionKey = "x-kubernetes-group-version-kind"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// patchRetryBackOffPeriod is the period to back off when apply patch results in error.
|
||||||
|
var patchRetryBackOffPeriod = 1 * time.Second
|
||||||
|
|
||||||
var createPatchErrFormat = "creating patch with:\noriginal:\n%s\nmodified:\n%s\ncurrent:\n%s\nfor:"
|
var createPatchErrFormat = "creating patch with:\noriginal:\n%s\nmodified:\n%s\ncurrent:\n%s\nfor:"
|
||||||
|
|
||||||
// Patcher defines options to patch OpenAPI objects.
|
// Patcher defines options to patch OpenAPI objects.
|
||||||
|
|
@ -363,7 +364,7 @@ func (p *Patcher) Patch(current runtime.Object, modified []byte, source, namespa
|
||||||
}
|
}
|
||||||
for i := 1; i <= p.Retries && apierrors.IsConflict(err); i++ {
|
for i := 1; i <= p.Retries && apierrors.IsConflict(err); i++ {
|
||||||
if i > triesBeforeBackOff {
|
if i > triesBeforeBackOff {
|
||||||
p.BackOff.Sleep(backOffPeriod)
|
p.BackOff.Sleep(patchRetryBackOffPeriod)
|
||||||
}
|
}
|
||||||
current, getErr = p.Helper.Get(namespace, name)
|
current, getErr = p.Helper.Get(namespace, name)
|
||||||
if getErr != nil {
|
if getErr != nil {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue