Skip to content

Commit 233bc73

Browse files
authored
Merge pull request kubernetes#126056 from googs1025/refactor_namespace
use ktesting.NewTestContext(t) ctx instead of context.TODO() for namespace integration
2 parents 6e52e70 + 027b344 commit 233bc73

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

test/integration/namespace/ns_conditions_test.go

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ import (
4242
)
4343

4444
func TestNamespaceCondition(t *testing.T) {
45-
closeFn, nsController, informers, kubeClient, dynamicClient := namespaceLifecycleSetup(t)
45+
ctx, closeFn, nsController, informers, kubeClient, dynamicClient := namespaceLifecycleSetup(t)
4646
defer closeFn()
4747
nsName := "test-namespace-conditions"
48-
_, err := kubeClient.CoreV1().Namespaces().Create(context.TODO(), &corev1.Namespace{
48+
_, err := kubeClient.CoreV1().Namespaces().Create(ctx, &corev1.Namespace{
4949
ObjectMeta: metav1.ObjectMeta{
5050
Name: nsName,
5151
},
@@ -55,19 +55,19 @@ func TestNamespaceCondition(t *testing.T) {
5555
}
5656

5757
// Start informer and controllers
58-
_, ctx := ktesting.NewTestContext(t)
5958
ctx, cancel := context.WithCancel(ctx)
6059
defer cancel()
6160

6261
informers.Start(ctx.Done())
62+
informers.WaitForCacheSync(ctx.Done())
6363
go nsController.Run(ctx, 5)
6464

6565
data := etcd.GetEtcdStorageDataForNamespace(nsName)
6666
podJSON, err := jsonToUnstructured(data[corev1.SchemeGroupVersion.WithResource("pods")].Stub, "v1", "Pod")
6767
if err != nil {
6868
t.Fatal(err)
6969
}
70-
_, err = dynamicClient.Resource(corev1.SchemeGroupVersion.WithResource("pods")).Namespace(nsName).Create(context.TODO(), podJSON, metav1.CreateOptions{})
70+
_, err = dynamicClient.Resource(corev1.SchemeGroupVersion.WithResource("pods")).Namespace(nsName).Create(ctx, podJSON, metav1.CreateOptions{})
7171
if err != nil {
7272
t.Fatal(err)
7373
}
@@ -77,17 +77,17 @@ func TestNamespaceCondition(t *testing.T) {
7777
t.Fatal(err)
7878
}
7979
deploymentJSON.SetFinalizers([]string{"custom.io/finalizer"})
80-
_, err = dynamicClient.Resource(appsv1.SchemeGroupVersion.WithResource("deployments")).Namespace(nsName).Create(context.TODO(), deploymentJSON, metav1.CreateOptions{})
80+
_, err = dynamicClient.Resource(appsv1.SchemeGroupVersion.WithResource("deployments")).Namespace(nsName).Create(ctx, deploymentJSON, metav1.CreateOptions{})
8181
if err != nil {
8282
t.Fatal(err)
8383
}
8484

85-
if err = kubeClient.CoreV1().Namespaces().Delete(context.TODO(), nsName, metav1.DeleteOptions{}); err != nil {
85+
if err = kubeClient.CoreV1().Namespaces().Delete(ctx, nsName, metav1.DeleteOptions{}); err != nil {
8686
t.Fatal(err)
8787
}
8888

89-
err = wait.PollImmediate(1*time.Second, 60*time.Second, func() (bool, error) {
90-
curr, err := kubeClient.CoreV1().Namespaces().Get(context.TODO(), nsName, metav1.GetOptions{})
89+
err = wait.PollUntilContextTimeout(ctx, 1*time.Second, 60*time.Second, true, func(ctx context.Context) (bool, error) {
90+
curr, err := kubeClient.CoreV1().Namespaces().Get(ctx, nsName, metav1.GetOptions{})
9191
if err != nil {
9292
return false, err
9393
}
@@ -121,19 +121,18 @@ func TestNamespaceCondition(t *testing.T) {
121121

122122
// TestNamespaceLabels tests for default labels added in https://github.com/kubernetes/kubernetes/pull/96968
123123
func TestNamespaceLabels(t *testing.T) {
124-
closeFn, nsController, _, kubeClient, _ := namespaceLifecycleSetup(t)
124+
ctx, closeFn, nsController, _, kubeClient, _ := namespaceLifecycleSetup(t)
125125
defer closeFn()
126126

127127
// Even though nscontroller isn't used in this test, its creation is already
128128
// spawning some goroutines. So we need to run it to ensure they won't leak.
129-
_, ctx := ktesting.NewTestContext(t)
130129
ctx, cancel := context.WithCancel(ctx)
131130
defer cancel()
132131
go nsController.Run(ctx, 5)
133132

134133
nsName := "test-namespace-labels-generated"
135134
// Create a new namespace w/ no name
136-
ns, err := kubeClient.CoreV1().Namespaces().Create(context.TODO(), &corev1.Namespace{
135+
ns, err := kubeClient.CoreV1().Namespaces().Create(ctx, &corev1.Namespace{
137136
ObjectMeta: metav1.ObjectMeta{
138137
GenerateName: nsName,
139138
},
@@ -147,7 +146,7 @@ func TestNamespaceLabels(t *testing.T) {
147146
t.Fatal(fmt.Errorf("expected %q, got %q", ns.Name, ns.Labels[corev1.LabelMetadataName]))
148147
}
149148

150-
nsList, err := kubeClient.CoreV1().Namespaces().List(context.TODO(), metav1.ListOptions{})
149+
nsList, err := kubeClient.CoreV1().Namespaces().List(ctx, metav1.ListOptions{})
151150

152151
if err != nil {
153152
t.Fatal(err)
@@ -175,7 +174,7 @@ func jsonToUnstructured(stub, version, kind string) (*unstructured.Unstructured,
175174
return &unstructured.Unstructured{Object: typeMetaAdder}, nil
176175
}
177176

178-
func namespaceLifecycleSetup(t *testing.T) (kubeapiservertesting.TearDownFunc, *namespace.NamespaceController, informers.SharedInformerFactory, clientset.Interface, dynamic.Interface) {
177+
func namespaceLifecycleSetup(t *testing.T) (context.Context, kubeapiservertesting.TearDownFunc, *namespace.NamespaceController, informers.SharedInformerFactory, clientset.Interface, dynamic.Interface) {
179178
// Disable ServiceAccount admission plugin as we don't have serviceaccount controller running.
180179
server := kubeapiservertesting.StartTestServerOrDie(t, nil, framework.DefaultTestServerFlags(), framework.SharedEtcd())
181180

@@ -191,7 +190,7 @@ func namespaceLifecycleSetup(t *testing.T) (kubeapiservertesting.TearDownFunc, *
191190

192191
metadataClient, err := metadata.NewForConfig(config)
193192
if err != nil {
194-
panic(err)
193+
t.Fatal(err)
195194
}
196195

197196
discoverResourcesFn := clientSet.Discovery().ServerPreferredNamespacedResources
@@ -205,5 +204,5 @@ func namespaceLifecycleSetup(t *testing.T) (kubeapiservertesting.TearDownFunc, *
205204
10*time.Hour,
206205
corev1.FinalizerKubernetes)
207206

208-
return server.TearDownFn, controller, informers, clientSet, dynamic.NewForConfigOrDie(config)
207+
return ctx, server.TearDownFn, controller, informers, clientSet, dynamic.NewForConfigOrDie(config)
209208
}

0 commit comments

Comments
 (0)