From 6ab96667f0c35cfed13dc4f39a4beed5a77b0a79 Mon Sep 17 00:00:00 2001 From: Adolfo Duarte Date: Thu, 17 Nov 2022 11:05:51 -0800 Subject: [PATCH] adds unit test --- .../webhooks/clusterbootstrap_webhook_test.go | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/addons/webhooks/clusterbootstrap_webhook_test.go b/addons/webhooks/clusterbootstrap_webhook_test.go index 4c69e00e72..e29721cbb6 100644 --- a/addons/webhooks/clusterbootstrap_webhook_test.go +++ b/addons/webhooks/clusterbootstrap_webhook_test.go @@ -12,11 +12,16 @@ import ( corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/uuid" + clientgoscheme "k8s.io/client-go/kubernetes/scheme" + clusterapiv1beta1 "sigs.k8s.io/cluster-api/api/v1beta1" "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/client/fake" kappctrlv1alph1 "github.com/vmware-tanzu/carvel-kapp-controller/pkg/apis/kappctrl/v1alpha1" packagev1alpha1 "github.com/vmware-tanzu/carvel-kapp-controller/pkg/apiserver/apis/datapackaging/v1alpha1" "github.com/vmware-tanzu/tanzu-framework/addons/pkg/constants" + "github.com/vmware-tanzu/tanzu-framework/addons/webhooks" runv1alpha3 "github.com/vmware-tanzu/tanzu-framework/apis/run/v1alpha3" ) @@ -264,6 +269,42 @@ var _ = Describe("ClusterbootstrapWebhook", func() { Expect(clusterBootstrap.Spec.Kapp.RefName).To(Equal(clusterBootstrapTemplate.Spec.Kapp.RefName)) }) + It("should not fail validation if cluster is marked for deletion", func() { + timestamp := metav1.Now() + deletingCluster := &clusterapiv1beta1.Cluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: clusterBootstrapName, + Namespace: clusterBootstrapNamespace, + UID: uuid.NewUUID(), + DeletionTimestamp: ×tamp, + }, + } + err := clientgoscheme.AddToScheme(scheme) + Expect(err).ToNot(HaveOccurred()) + err = clusterapiv1beta1.AddToScheme(scheme) + Expect(err).ToNot(HaveOccurred()) + fakeClient := fake.NewClientBuilder().WithScheme(scheme).WithObjects(deletingCluster).Build() + cbWebHook := webhooks.ClusterBootstrap{Client: fakeClient} + err = cbWebHook.SetupWebhookWithManager(context.TODO(), mgr) + Expect(err).ToNot(HaveOccurred()) + clusterBootstrapOld := &runv1alpha3.ClusterBootstrap{ + ObjectMeta: metav1.ObjectMeta{ + Name: clusterBootstrapName, + Namespace: clusterBootstrapNamespace, + }, + Spec: &runv1alpha3.ClusterBootstrapTemplateSpec{}, + } + clusterBootstrapNew := &runv1alpha3.ClusterBootstrap{ + ObjectMeta: metav1.ObjectMeta{ + Name: clusterBootstrapName, + Namespace: clusterBootstrapNamespace, + }, + Spec: &runv1alpha3.ClusterBootstrapTemplateSpec{}, + } + err = cbWebHook.ValidateUpdate(context.TODO(), clusterBootstrapOld, clusterBootstrapNew) + Expect(err).ToNot(HaveOccurred()) + + }) }) })