github.com/k8snetworkplumbingwg/sriov-network-operator@v1.2.1-0.20240408194816-2d2e5a45d453/test/util/k8sreporter/reporter.go (about)

     1  package k8sreporter
     2  
     3  import (
     4  	"errors"
     5  	"os"
     6  	"strings"
     7  
     8  	kniK8sReporter "github.com/openshift-kni/k8sreporter"
     9  	"k8s.io/apimachinery/pkg/runtime"
    10  
    11  	sriovv1 "github.com/k8snetworkplumbingwg/sriov-network-operator/api/v1"
    12  	"github.com/k8snetworkplumbingwg/sriov-network-operator/test/util/namespaces"
    13  )
    14  
    15  func New(reportPath string) (*kniK8sReporter.KubernetesReporter, error) {
    16  	addToScheme := func(s *runtime.Scheme) error {
    17  		err := sriovv1.AddToScheme(s)
    18  		if err != nil {
    19  			return err
    20  		}
    21  		return nil
    22  	}
    23  
    24  	operatorNamespace := os.Getenv("OPERATOR_NAMESPACE")
    25  	if operatorNamespace == "" {
    26  		operatorNamespace = "openshift-sriov-network-operator"
    27  	}
    28  
    29  	multusNamespace := os.Getenv("MULTUS_NAMESPACE")
    30  
    31  	dumpNamespace := func(ns string) bool {
    32  		switch {
    33  		case ns == namespaces.Test:
    34  			return true
    35  		case ns == operatorNamespace:
    36  			return true
    37  		case strings.HasPrefix(ns, "sriov-"):
    38  			return true
    39  		case multusNamespace != "" && ns == multusNamespace:
    40  			return true
    41  		}
    42  		return false
    43  	}
    44  
    45  	crds := []kniK8sReporter.CRData{
    46  		{Cr: &sriovv1.SriovNetworkNodeStateList{}},
    47  		{Cr: &sriovv1.SriovNetworkNodePolicyList{}},
    48  		{Cr: &sriovv1.SriovNetworkList{}},
    49  		{Cr: &sriovv1.SriovOperatorConfigList{}},
    50  	}
    51  
    52  	err := os.Mkdir(reportPath, 0755)
    53  	if err != nil && !errors.Is(err, os.ErrExist) {
    54  		return nil, err
    55  	}
    56  
    57  	reporter, err := kniK8sReporter.New("", addToScheme, dumpNamespace, reportPath, crds...)
    58  	if err != nil {
    59  		return nil, err
    60  	}
    61  	return reporter, nil
    62  }