github.com/metaprov/modela-operator@v0.0.0-20240118193048-f378be8b74d2/controllers/components/cert_manager_test.go (about) 1 package components 2 3 import ( 4 "context" 5 "fmt" 6 "github.com/metaprov/modela-operator/api/v1alpha1" 7 "github.com/metaprov/modela-operator/pkg/kube" 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 k8serr "k8s.io/apimachinery/pkg/api/errors" 11 v1 "k8s.io/apimachinery/pkg/apis/meta/v1" 12 "k8s.io/client-go/kubernetes" 13 ctrl "sigs.k8s.io/controller-runtime" 14 ) 15 16 var _ = Describe("Cert manager installer", func() { 17 certmanager := NewCertManager() 18 19 It("Should install cert-manager", func() { 20 if installed, err := certmanager.Installed(context.Background()); err == v1alpha1.ComponentNotInstalledByModelaError || installed { 21 Skip("Test should be run on an empty cluster") 22 return 23 } 24 25 Expect(certmanager.Install(context.Background(), &v1alpha1.Modela{ 26 ObjectMeta: v1.ObjectMeta{Name: "modela-test"}, 27 })).To(BeNil()) 28 29 By("Checking if it was installed") 30 installed, err := certmanager.Installed(context.Background()) 31 Expect(err).NotTo(HaveOccurred()) 32 Expect(installed).To(BeTrue()) 33 34 changeDeploymentModelaOperatorLabel(false, "cert-manager", "cert-manager") 35 installed, err = certmanager.Installed(context.Background()) 36 Expect(err).To(Equal(v1alpha1.ComponentNotInstalledByModelaError)) 37 38 By("Uninstalling cert-manager") 39 Expect(certmanager.Uninstall(context.Background(), &v1alpha1.Modela{})).To(BeNil()) 40 _, err = kube.IsDeploymentCreatedByModela("cert-manager", "cert-manager") 41 Expect(k8serr.IsNotFound(err)).To(BeTrue()) 42 43 By("Checking if it was uninstalled") 44 installed, err = certmanager.Installed(context.Background()) 45 Expect(err).NotTo(HaveOccurred()) 46 Expect(installed).To(BeFalse()) 47 }) 48 49 It("Should uninstall cert-manager", func() { 50 fmt.Println(certmanager.Installed(context.Background())) 51 By("Uninstalling cert-manager") 52 Expect(certmanager.Uninstall(context.Background(), &v1alpha1.Modela{})).To(BeNil()) 53 _, err := kube.IsDeploymentCreatedByModela("cert-manager", "cert-manager") 54 Expect(k8serr.IsNotFound(err)).To(BeTrue()) 55 }) 56 }) 57 58 func changeDeploymentModelaOperatorLabel(add bool, ns string, name string) { 59 clientSet := kubernetes.NewForConfigOrDie(ctrl.GetConfigOrDie()) 60 deployment, err := clientSet.AppsV1().Deployments(ns).Get(context.Background(), name, v1.GetOptions{}) 61 if err != nil { 62 return 63 } 64 if add { 65 deployment.SetLabels(map[string]string{"app.kubernetes.io/created-by": "modela-operator"}) 66 } else { 67 deployment.SetLabels(map[string]string{"app.kubernetes.io/created-by": ""}) 68 } 69 70 _, err = clientSet.AppsV1().Deployments(ns).Update(context.Background(), deployment, v1.UpdateOptions{}) 71 return 72 } 73 74 func changeStatefulSetModelaOperatorLabel(add bool, ns string, name string) { 75 clientSet := kubernetes.NewForConfigOrDie(ctrl.GetConfigOrDie()) 76 statefulSet, err := clientSet.AppsV1().StatefulSets(ns).Get(context.Background(), name, v1.GetOptions{}) 77 if err != nil { 78 return 79 } 80 if add { 81 statefulSet.SetLabels(map[string]string{"app.kubernetes.io/created-by": "modela-operator"}) 82 } else { 83 statefulSet.SetLabels(map[string]string{"app.kubernetes.io/created-by": ""}) 84 } 85 86 _, err = clientSet.AppsV1().StatefulSets(ns).Update(context.Background(), statefulSet, v1.UpdateOptions{}) 87 return 88 }