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  }