mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 22:46:12 +00:00
Fix context usage
This commit is contained in:
parent
9b57a960f8
commit
b7b1e78d62
@ -63,12 +63,13 @@ func TestSingleLeaseCandidate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
defer server.TearDownFn()
|
defer server.TearDownFn()
|
||||||
config := server.ClientConfig
|
config := server.ClientConfig
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
for _, tc := range tests {
|
for _, tc := range tests {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
cletest := setupCLE(config, ctx, cancel, t)
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
cletest := setupCLE(config, ctx, t)
|
||||||
defer cletest.cleanup()
|
defer cletest.cleanup()
|
||||||
go cletest.createAndRunFakeController("foo1", "default", "foo", "1.20.0", "1.20.0", tc.preferredStrategy)
|
go cletest.createAndRunFakeController("foo1", "default", "foo", "1.20.0", "1.20.0", tc.preferredStrategy)
|
||||||
cletest.pollForLease(ctx, "foo", "default", tc.expectedHolderIdentity)
|
cletest.pollForLease(ctx, "foo", "default", tc.expectedHolderIdentity)
|
||||||
@ -101,12 +102,13 @@ func TestSingleLeaseCandidateUsingThirdPartyStrategy(t *testing.T) {
|
|||||||
}
|
}
|
||||||
defer server.TearDownFn()
|
defer server.TearDownFn()
|
||||||
config := server.ClientConfig
|
config := server.ClientConfig
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
for _, tc := range tests {
|
for _, tc := range tests {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
cletest := setupCLE(config, ctx, cancel, t)
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
cletest := setupCLE(config, ctx, t)
|
||||||
defer cletest.cleanup()
|
defer cletest.cleanup()
|
||||||
go cletest.createAndRunFakeController("foo1", "default", "foo", "1.20.0", "1.20.0", tc.preferredStrategy)
|
go cletest.createAndRunFakeController("foo1", "default", "foo", "1.20.0", "1.20.0", tc.preferredStrategy)
|
||||||
cletest.pollForLease(ctx, "foo", "default", tc.expectedHolderIdentity)
|
cletest.pollForLease(ctx, "foo", "default", tc.expectedHolderIdentity)
|
||||||
@ -139,12 +141,12 @@ func TestMultipleLeaseCandidate(t *testing.T) {
|
|||||||
defer server.TearDownFn()
|
defer server.TearDownFn()
|
||||||
config := server.ClientConfig
|
config := server.ClientConfig
|
||||||
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
|
||||||
defer cancel()
|
|
||||||
for _, tc := range tests {
|
for _, tc := range tests {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
cletest := setupCLE(config, ctx, cancel, t)
|
cletest := setupCLE(config, ctx, t)
|
||||||
defer cletest.cleanup()
|
defer cletest.cleanup()
|
||||||
go cletest.createAndRunFakeController("baz1", "default", "baz", "1.20.0", "1.20.0", tc.preferredStrategy)
|
go cletest.createAndRunFakeController("baz1", "default", "baz", "1.20.0", "1.20.0", tc.preferredStrategy)
|
||||||
go cletest.createAndRunFakeController("baz2", "default", "baz", "1.20.0", "1.19.0", tc.preferredStrategy)
|
go cletest.createAndRunFakeController("baz2", "default", "baz", "1.20.0", "1.19.0", tc.preferredStrategy)
|
||||||
@ -182,12 +184,13 @@ func TestMultipleLeaseCandidateUsingThirdPartyStrategy(t *testing.T) {
|
|||||||
}
|
}
|
||||||
defer server.TearDownFn()
|
defer server.TearDownFn()
|
||||||
config := server.ClientConfig
|
config := server.ClientConfig
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
for _, tc := range tests {
|
for _, tc := range tests {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
cletest := setupCLE(config, ctx, cancel, t)
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
cletest := setupCLE(config, ctx, t)
|
||||||
defer cletest.cleanup()
|
defer cletest.cleanup()
|
||||||
go cletest.createAndRunFakeController("baz1", "default", "baz", "1.20.0", "1.20.0", tc.preferredStrategy)
|
go cletest.createAndRunFakeController("baz1", "default", "baz", "1.20.0", "1.20.0", tc.preferredStrategy)
|
||||||
go cletest.createAndRunFakeController("baz2", "default", "baz", "1.20.0", "1.19.0", tc.preferredStrategy)
|
go cletest.createAndRunFakeController("baz2", "default", "baz", "1.20.0", "1.19.0", tc.preferredStrategy)
|
||||||
@ -211,7 +214,8 @@ func TestLeaseSwapIfBetterAvailable(t *testing.T) {
|
|||||||
config := server.ClientConfig
|
config := server.ClientConfig
|
||||||
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
cletest := setupCLE(config, ctx, cancel, t)
|
defer cancel()
|
||||||
|
cletest := setupCLE(config, ctx, t)
|
||||||
defer cletest.cleanup()
|
defer cletest.cleanup()
|
||||||
|
|
||||||
go cletest.createAndRunFakeController("bar1", "default", "bar", "1.20.0", "1.20.0", v1.OldestEmulationVersion)
|
go cletest.createAndRunFakeController("bar1", "default", "bar", "1.20.0", "1.20.0", v1.OldestEmulationVersion)
|
||||||
@ -234,7 +238,7 @@ func TestUpgradeSkew(t *testing.T) {
|
|||||||
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
defer cancel()
|
defer cancel()
|
||||||
cletest := setupCLE(config, ctx, cancel, t)
|
cletest := setupCLE(config, ctx, t)
|
||||||
defer cletest.cleanup()
|
defer cletest.cleanup()
|
||||||
|
|
||||||
go cletest.createAndRunFakeLegacyController("foo1-130", "default", "foobar")
|
go cletest.createAndRunFakeLegacyController("foo1-130", "default", "foobar")
|
||||||
@ -307,11 +311,12 @@ type cleTest struct {
|
|||||||
clientset *kubernetes.Clientset
|
clientset *kubernetes.Clientset
|
||||||
t *testing.T
|
t *testing.T
|
||||||
mu sync.Mutex
|
mu sync.Mutex
|
||||||
|
ctx context.Context
|
||||||
ctxList map[string]ctxCancelPair
|
ctxList map[string]ctxCancelPair
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *cleTest) createAndRunFakeLegacyController(name string, namespace string, targetLease string) {
|
func (t *cleTest) createAndRunFakeLegacyController(name string, namespace string, targetLease string) {
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(t.ctx)
|
||||||
t.mu.Lock()
|
t.mu.Lock()
|
||||||
defer t.mu.Unlock()
|
defer t.mu.Unlock()
|
||||||
t.ctxList[name+"/"+namespace] = ctxCancelPair{ctx, cancel}
|
t.ctxList[name+"/"+namespace] = ctxCancelPair{ctx, cancel}
|
||||||
@ -345,7 +350,7 @@ func (t *cleTest) createAndRunFakeController(name string, namespace string, targ
|
|||||||
t.t.Error(err)
|
t.t.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(t.ctx)
|
||||||
t.mu.Lock()
|
t.mu.Lock()
|
||||||
t.ctxList[name+"/"+namespace] = ctxCancelPair{ctx, cancel}
|
t.ctxList[name+"/"+namespace] = ctxCancelPair{ctx, cancel}
|
||||||
t.mu.Unlock()
|
t.mu.Unlock()
|
||||||
@ -415,7 +420,7 @@ func (t *cleTest) pollForLease(ctx context.Context, name, namespace string, hold
|
|||||||
return lease.Spec.HolderIdentity != nil && *lease.Spec.HolderIdentity == *holder, nil
|
return lease.Spec.HolderIdentity != nil && *lease.Spec.HolderIdentity == *holder, nil
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.t.Fatalf("timeout awiting for Lease %s %s err: %v", name, namespace, err)
|
t.t.Fatalf("timeout waiting for Lease %s %s err: %v", name, namespace, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -427,28 +432,23 @@ func (t *cleTest) cancelController(name, namespace string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *cleTest) cleanup() {
|
func (t *cleTest) cleanup() {
|
||||||
t.mu.Lock()
|
|
||||||
defer t.mu.Unlock()
|
|
||||||
for _, c := range t.ctxList {
|
|
||||||
c.cancel()
|
|
||||||
}
|
|
||||||
err := t.clientset.CoordinationV1().Leases("kube-system").Delete(context.TODO(), "leader-election-controller", metav1.DeleteOptions{})
|
err := t.clientset.CoordinationV1().Leases("kube-system").Delete(context.TODO(), "leader-election-controller", metav1.DeleteOptions{})
|
||||||
if err != nil && !apierrors.IsNotFound(err) {
|
if err != nil && !apierrors.IsNotFound(err) {
|
||||||
t.t.Error(err)
|
t.t.Error(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupCLE(config *rest.Config, ctx context.Context, cancel func(), t *testing.T) *cleTest {
|
func setupCLE(config *rest.Config, ctx context.Context, t *testing.T) *cleTest {
|
||||||
clientset, err := kubernetes.NewForConfig(config)
|
clientset, err := kubernetes.NewForConfig(config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
a := ctxCancelPair{ctx, cancel}
|
|
||||||
return &cleTest{
|
return &cleTest{
|
||||||
config: config,
|
config: config,
|
||||||
clientset: clientset,
|
clientset: clientset,
|
||||||
ctxList: map[string]ctxCancelPair{"main": a},
|
ctx: ctx,
|
||||||
|
ctxList: map[string]ctxCancelPair{},
|
||||||
t: t,
|
t: t,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user