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 }