github.com/kubeshop/testkube@v1.17.23/pkg/event/kind/cdevent/loader.go (about)

     1  package cdevent
     2  
     3  import (
     4  	cloudevents "github.com/cloudevents/sdk-go/v2"
     5  	"go.uber.org/zap"
     6  
     7  	"github.com/kubeshop/testkube/pkg/api/v1/testkube"
     8  	"github.com/kubeshop/testkube/pkg/event/kind/common"
     9  	"github.com/kubeshop/testkube/pkg/log"
    10  )
    11  
    12  var _ common.ListenerLoader = (*CDEventLoader)(nil)
    13  
    14  func NewCDEventLoader(target, clusterID, defaultNamespace, dashboardURI string, events []testkube.EventType) (*CDEventLoader, error) {
    15  	c, err := cloudevents.NewClientHTTP(cloudevents.WithTarget(target))
    16  	if err != nil {
    17  		return nil, err
    18  	}
    19  
    20  	return &CDEventLoader{
    21  		Log:              log.DefaultLogger,
    22  		events:           events,
    23  		client:           c,
    24  		clusterID:        clusterID,
    25  		defaultNamespace: defaultNamespace,
    26  		dashboardURI:     dashboardURI,
    27  	}, nil
    28  }
    29  
    30  // CDEventLoader is a reconciler for cdevent events for now it returns single listener for cdevent
    31  type CDEventLoader struct {
    32  	Log              *zap.SugaredLogger
    33  	events           []testkube.EventType
    34  	client           cloudevents.Client
    35  	clusterID        string
    36  	defaultNamespace string
    37  	dashboardURI     string
    38  }
    39  
    40  func (r *CDEventLoader) Kind() string {
    41  	return "cdevent"
    42  }
    43  
    44  // Load returns single listener for cd eventt
    45  func (r *CDEventLoader) Load() (listeners common.Listeners, err error) {
    46  	return common.Listeners{NewCDEventListener("cdevent", "", r.clusterID, r.defaultNamespace, r.dashboardURI, r.events, r.client)}, nil
    47  }