Skip to content

Commit 6737748

Browse files
author
Ayush Rangwala
committed
Cleanup Webhook server setup
- Called the webhook server cleanup function - Only ignore controlplane cleanup when using existing cluster - Added test to check the directory exists post stop
1 parent 0c99fc7 commit 6737748

File tree

5 files changed

+32
-10
lines changed

5 files changed

+32
-10
lines changed

pkg/envtest/envtest_test.go

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,19 @@ package envtest
1818

1919
import (
2020
"context"
21+
"os"
2122
"path/filepath"
2223
"time"
2324

2425
. "github.com/onsi/ginkgo"
2526
. "github.com/onsi/gomega"
27+
2628
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
2729
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
2830
apierrors "k8s.io/apimachinery/pkg/api/errors"
2931
"k8s.io/apimachinery/pkg/runtime"
3032
"k8s.io/apimachinery/pkg/types"
33+
3134
"sigs.k8s.io/controller-runtime/pkg/client"
3235
)
3336

@@ -65,8 +68,8 @@ var _ = Describe("Test", func() {
6568
Name: crd.GetName(),
6669
}
6770
var placeholder v1beta1.CustomResourceDefinition
68-
err := c.Get(context.TODO(), crdObjectKey, &placeholder)
69-
if err != nil && apierrors.IsNotFound(err) {
71+
if err = c.Get(context.TODO(), crdObjectKey, &placeholder); err != nil &&
72+
apierrors.IsNotFound(err) {
7073
// CRD doesn't need to be deleted.
7174
continue
7275
}
@@ -845,4 +848,21 @@ var _ = Describe("Test", func() {
845848
close(done)
846849
}, 30)
847850
})
851+
852+
Describe("Stop", func() {
853+
It("should cleanup webhook /tmp folder with no error when using existing cluster", func(done Done) {
854+
useExistingCluster := true
855+
env := &Environment{UseExistingCluster: &useExistingCluster}
856+
_, err := env.Start()
857+
Expect(err).NotTo(HaveOccurred())
858+
Expect(env.Stop()).To(Succeed())
859+
860+
// check if the /tmp/envtest-serving-certs-* dir doesnt exists any more
861+
_, err = os.Stat(env.WebhookInstallOptions.LocalServingCertDir)
862+
Expect(err).To(HaveOccurred())
863+
Expect(os.IsNotExist(err)).To(BeTrue())
864+
865+
close(done)
866+
}, 30)
867+
})
848868
})

pkg/envtest/server.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,13 +158,15 @@ func (te *Environment) Stop() error {
158158
return err
159159
}
160160
}
161+
162+
if err := te.WebhookInstallOptions.Cleanup(); err != nil {
163+
return err
164+
}
165+
161166
if te.useExistingCluster() {
162167
return nil
163168
}
164-
err := te.WebhookInstallOptions.Cleanup()
165-
if err != nil {
166-
return err
167-
}
169+
168170
return te.ControlPlane.Stop()
169171
}
170172

pkg/envtest/webhook.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,12 +165,12 @@ func (o *WebhookInstallOptions) PrepWithoutInstalling() error {
165165
if err != nil {
166166
return err
167167
}
168+
168169
if err := parseWebhook(o); err != nil {
169170
return err
170171
}
171172

172-
err = o.ModifyWebhookDefinitions(hookCA)
173-
if err != nil {
173+
if err = o.ModifyWebhookDefinitions(hookCA); err != nil {
174174
return err
175175
}
176176

pkg/envtest/webhook_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,6 @@ var _ = Describe("Test", func() {
100100
type rejectingValidator struct {
101101
}
102102

103-
func (v *rejectingValidator) Handle(ctx context.Context, req admission.Request) admission.Response {
103+
func (v *rejectingValidator) Handle(_ context.Context, _ admission.Request) admission.Response {
104104
return admission.Denied(fmt.Sprint("Always denied"))
105105
}

pkg/webhook/server_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ var _ = Describe("Webhook Server", func() {
4343

4444
BeforeEach(func() {
4545
ctx, ctxCancel = context.WithCancel(context.Background())
46-
// closed in indivual tests differently
46+
// closed in individual tests differently
4747

4848
servingOpts = envtest.WebhookInstallOptions{}
4949
Expect(servingOpts.PrepWithoutInstalling()).To(Succeed())

0 commit comments

Comments
 (0)