Parallel StatefulSet pod create & delete

This commit is contained in:
Aleksandra Malinowska
2023-06-20 10:30:30 +02:00
parent 2fb472c83c
commit 63e5b6bdb2
2 changed files with 100 additions and 21 deletions

View File

@@ -26,6 +26,7 @@ import (
"sort"
"strconv"
"strings"
"sync"
"testing"
"time"
@@ -2357,24 +2358,39 @@ func TestStatefulSetStatusUpdate(t *testing.T) {
}
type requestTracker struct {
sync.Mutex
requests int
err error
after int
}
func (rt *requestTracker) errorReady() bool {
rt.Lock()
defer rt.Unlock()
return rt.err != nil && rt.requests >= rt.after
}
func (rt *requestTracker) inc() {
rt.Lock()
defer rt.Unlock()
rt.requests++
}
func (rt *requestTracker) reset() {
rt.Lock()
defer rt.Unlock()
rt.err = nil
rt.after = 0
}
func newRequestTracker(requests int, err error, after int) requestTracker {
return requestTracker{
requests: requests,
err: err,
after: after,
}
}
type fakeObjectManager struct {
podsLister corelisters.PodLister
claimsLister corelisters.PersistentVolumeClaimLister
@@ -2402,9 +2418,10 @@ func newFakeObjectManager(informerFactory informers.SharedInformerFactory) *fake
claimInformer.Informer().GetIndexer(),
setInformer.Informer().GetIndexer(),
revisionInformer.Informer().GetIndexer(),
requestTracker{0, nil, 0},
requestTracker{0, nil, 0},
requestTracker{0, nil, 0}}
newRequestTracker(0, nil, 0),
newRequestTracker(0, nil, 0),
newRequestTracker(0, nil, 0),
}
}
func (om *fakeObjectManager) CreatePod(ctx context.Context, pod *v1.Pod) error {
@@ -2619,7 +2636,7 @@ func newFakeStatefulSetStatusUpdater(setInformer appsinformers.StatefulSetInform
return &fakeStatefulSetStatusUpdater{
setInformer.Lister(),
setInformer.Informer().GetIndexer(),
requestTracker{0, nil, 0},
newRequestTracker(0, nil, 0),
}
}