Skip to content

Commit 40f87ea

Browse files
committed
WIP: wait for deletion of namespaces
1 parent 25776a2 commit 40f87ea

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

pkg/test/case.go

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
eventsbeta1 "k8s.io/api/events/v1beta1"
1919
"k8s.io/apimachinery/pkg/api/errors"
2020
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
21+
"k8s.io/apimachinery/pkg/util/wait"
2122
"k8s.io/client-go/discovery"
2223
"sigs.k8s.io/controller-runtime/pkg/client"
2324

@@ -69,14 +70,27 @@ func (t *Case) DeleteNamespace(cl client.Client, ns *namespace) error {
6970
defer cancel()
7071
}
7172

72-
return cl.Delete(ctx, &corev1.Namespace{
73+
nsobj := &corev1.Namespace{
7374
ObjectMeta: metav1.ObjectMeta{
7475
Name: ns.Name,
7576
},
7677
TypeMeta: metav1.TypeMeta{
77-
Kind: "Namespace",
78+
Kind: "Namespace",
79+
APIVersion: "v1",
7880
},
79-
})
81+
}
82+
83+
if err := cl.Delete(ctx, nsobj); err != nil {
84+
return err
85+
}
86+
87+
return wait.PollImmediateUntil(100*time.Millisecond, func() (done bool, err error) {
88+
err = cl.Get(ctx, client.ObjectKeyFromObject(nsobj), &corev1.Namespace{})
89+
if err == nil || !errors.IsNotFound(err) {
90+
return false, err
91+
}
92+
return true, nil
93+
}, ctx.Done())
8094
}
8195

8296
// CreateNamespace creates a namespace in Kubernetes to use for a test.

0 commit comments

Comments
 (0)