github.com/verrazzano/verrazzano-monitoring-operator@v0.0.30/test/integ/util/crd.go (about) 1 // Copyright (C) 2020, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 package util 5 6 import ( 7 "context" 8 "fmt" 9 10 vmcontrollerv1 "github.com/verrazzano/verrazzano-monitoring-operator/pkg/apis/vmcontroller/v1" 11 "github.com/verrazzano/verrazzano-monitoring-operator/test/integ/client" 12 "go.uber.org/zap" 13 corev1 "k8s.io/api/core/v1" 14 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 15 "k8s.io/client-go/kubernetes" 16 ) 17 18 // CreateVMO creates a secret and verrazzanoMonitoringInstance k8s resources 19 func CreateVMO( 20 crClient client.VMOCR, 21 clientSet kubernetes.Clientset, 22 ns string, 23 vmo *vmcontrollerv1.VerrazzanoMonitoringInstance, 24 secret *corev1.Secret) (*vmcontrollerv1.VerrazzanoMonitoringInstance, error) { 25 26 fmt.Printf("Creating secret '%s' in namespace '%s'\n", vmo.Name, ns) 27 _, err := clientSet.CoreV1().Secrets(ns).Create(context.Background(), secret, metav1.CreateOptions{}) 28 if err != nil { 29 zap.S().Errorf("Cannot create a vmo secret: %s, due to err: %v", secret.Name, err) 30 return nil, err 31 } 32 33 fmt.Printf("Creating vmo '%s' in namespace '%s'\n", vmo.Name, ns) 34 vmo.Namespace = ns 35 res, err := crClient.Create(context.TODO(), vmo) 36 if err != nil { 37 zap.S().Errorf("Unable to create vmo '%s' in namespace '%s'\n", vmo.Name, ns) 38 return nil, err 39 } 40 fmt.Printf("Successfully created vmo '%s' in namespace '%s'\n", res.Name, res.Namespace) 41 return res, nil 42 } 43 44 // GetVMO returns a verrazzanoMonitoringInstance k8s resource 45 func GetVMO( 46 crClient client.VMOCR, 47 ns string, 48 vmo *vmcontrollerv1.VerrazzanoMonitoringInstance) (*vmcontrollerv1.VerrazzanoMonitoringInstance, error) { 49 50 fmt.Printf("Getting existing vmo '%s' in namespace '%s'\n", vmo.Name, ns) 51 res, err := crClient.Get(context.TODO(), ns, vmo.Name) 52 if err != nil { 53 return nil, err 54 } 55 56 fmt.Printf("Successfully got existing vmo '%s' in namespace '%s'\n", res.Name, res.Namespace) 57 return res, nil 58 } 59 60 // DeleteVMO delete a secret and verrazzanoMonitoringInstance k8s resource 61 func DeleteVMO( 62 crClient client.VMOCR, 63 clientSet kubernetes.Clientset, 64 ns string, 65 vmo *vmcontrollerv1.VerrazzanoMonitoringInstance, 66 secret *corev1.Secret) error { 67 fmt.Printf("Deleting vmo '%s' in namespace '%s'\n", vmo.Name, vmo.Namespace) 68 err := crClient.Delete(context.TODO(), ns, vmo.Name) 69 if err != nil { 70 return err 71 } 72 fmt.Printf("Deleting secret '%s' in namespace '%s'\n", vmo.Name, ns) 73 err = clientSet.CoreV1().Secrets(ns).Delete(context.Background(), secret.Name, metav1.DeleteOptions{}) 74 if err != nil { 75 zap.S().Errorf("Cannot delete secret: %s, due to err: %v", secret.Name, err) 76 return err 77 } 78 79 fmt.Printf("Successfully deleted vmo '%s' in namespace '%s'\n", vmo.Name, vmo.Namespace) 80 return nil 81 }