diff --git a/pkg/apis/eventing/v1alpha1/broker_conversion.go b/pkg/apis/eventing/v1alpha1/broker_conversion.go index ed7be4fb216..192352eb109 100644 --- a/pkg/apis/eventing/v1alpha1/broker_conversion.go +++ b/pkg/apis/eventing/v1alpha1/broker_conversion.go @@ -20,6 +20,7 @@ import ( "context" "fmt" + corev1 "k8s.io/api/core/v1" "knative.dev/eventing/pkg/apis/eventing/v1beta1" "knative.dev/pkg/apis" ) @@ -60,3 +61,22 @@ func (sink *Broker) ConvertFrom(ctx context.Context, obj apis.Convertible) error return fmt.Errorf("Unknown conversion, got: %T", source) } } + +// PropagateV1Alpha1BrokerStatus propagates a v1alpha1 BrokerStatus to a v1beta1 EventTypeStatus +func PropagateV1Alpha1BrokerStatus(et *v1beta1.EventTypeStatus, bs *BrokerStatus) { + bc := brokerCondSet.Manage(bs).GetTopLevelCondition() + if bc == nil { + et.MarkBrokerNotConfigured() + return + } + switch { + case bc.Status == corev1.ConditionUnknown: + et.MarkBrokerUnknown(bc.Reason, bc.Message) + case bc.Status == corev1.ConditionTrue: + eventTypeCondSet.Manage(et).MarkTrue(EventTypeConditionBrokerReady) + case bc.Status == corev1.ConditionFalse: + et.MarkBrokerFailed(bc.Reason, bc.Message) + default: + et.MarkBrokerUnknown("BrokerUnknown", "The status of Broker is invalid: %v", bc.Status) + } +} diff --git a/pkg/apis/eventing/v1alpha1/broker_conversion_test.go b/pkg/apis/eventing/v1alpha1/broker_conversion_test.go index 8814a634afd..f4311e1b962 100644 --- a/pkg/apis/eventing/v1alpha1/broker_conversion_test.go +++ b/pkg/apis/eventing/v1alpha1/broker_conversion_test.go @@ -148,6 +148,60 @@ func TestBrokerConversion(t *testing.T) { } } +func TestBrokerPropagateStatus(t *testing.T) { + tests := []struct { + name string + markBrokerExists *bool + brokerStatus *BrokerStatus + wantConditionStatus corev1.ConditionStatus + }{{ + name: "all happy", + markBrokerExists: &trueValue, + brokerStatus: TestHelper.ReadyBrokerStatus(), + wantConditionStatus: corev1.ConditionTrue, + }, { + name: "broker exist sad", + markBrokerExists: &falseValue, + brokerStatus: nil, + wantConditionStatus: corev1.ConditionFalse, + }, { + name: "broker ready sad", + markBrokerExists: &trueValue, + brokerStatus: TestHelper.FalseBrokerStatus(), + wantConditionStatus: corev1.ConditionFalse, + }, { + name: "broker ready unknown", + markBrokerExists: &trueValue, + brokerStatus: TestHelper.UnknownBrokerStatus(), + wantConditionStatus: corev1.ConditionUnknown, + }, { + name: "all sad", + markBrokerExists: &falseValue, + brokerStatus: nil, + wantConditionStatus: corev1.ConditionFalse, + }} + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + ets := &v1beta1.EventTypeStatus{} + if test.markBrokerExists != nil { + if *test.markBrokerExists { + ets.MarkBrokerExists() + } else { + ets.MarkBrokerDoesNotExist() + } + } + if test.brokerStatus != nil { + PropagateV1Alpha1BrokerStatus(ets, test.brokerStatus) + } + + got := ets.GetTopLevelCondition().Status + if test.wantConditionStatus != got { + t.Errorf("unexpected readiness: want %v, got %v", test.wantConditionStatus, got) + } + }) + } +} + // Since v1beta1 to v1alpha1 is lossy but semantically equivalent, // fix that so diff works. func fixBrokerDeprecated(in *Broker) *Broker { diff --git a/pkg/apis/eventing/v1alpha1/eventtype_types.go b/pkg/apis/eventing/v1alpha1/eventtype_types.go index 4bfa731690e..7b9a84c1b5b 100644 --- a/pkg/apis/eventing/v1alpha1/eventtype_types.go +++ b/pkg/apis/eventing/v1alpha1/eventtype_types.go @@ -26,7 +26,6 @@ import ( ) // +genclient -// +genreconciler // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object type EventType struct { diff --git a/pkg/apis/eventing/v1beta1/eventtype_lifecycle.go b/pkg/apis/eventing/v1beta1/eventtype_lifecycle.go index bdd74702ca3..0b906823f94 100644 --- a/pkg/apis/eventing/v1beta1/eventtype_lifecycle.go +++ b/pkg/apis/eventing/v1beta1/eventtype_lifecycle.go @@ -18,6 +18,7 @@ package v1beta1 import ( corev1 "k8s.io/api/core/v1" + "knative.dev/pkg/apis" ) diff --git a/pkg/apis/eventing/v1beta1/eventtype_types.go b/pkg/apis/eventing/v1beta1/eventtype_types.go index c7125fb87a5..851370f86da 100644 --- a/pkg/apis/eventing/v1beta1/eventtype_types.go +++ b/pkg/apis/eventing/v1beta1/eventtype_types.go @@ -26,6 +26,7 @@ import ( ) // +genclient +// +genreconciler // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object type EventType struct { diff --git a/pkg/apis/eventing/v1beta1/register.go b/pkg/apis/eventing/v1beta1/register.go index f7d1f32f203..9af7867a3b4 100644 --- a/pkg/apis/eventing/v1beta1/register.go +++ b/pkg/apis/eventing/v1beta1/register.go @@ -47,8 +47,8 @@ func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Broker{}, &BrokerList{}, - // &EventType{}, - // &EventTypeList{}, + &EventType{}, + &EventTypeList{}, &Trigger{}, &TriggerList{}, ) diff --git a/pkg/client/injection/reconciler/eventing/v1alpha1/eventtype/controller.go b/pkg/client/injection/reconciler/eventing/v1beta1/eventtype/controller.go similarity index 99% rename from pkg/client/injection/reconciler/eventing/v1alpha1/eventtype/controller.go rename to pkg/client/injection/reconciler/eventing/v1beta1/eventtype/controller.go index abfffbdf15e..2b1da457833 100644 --- a/pkg/client/injection/reconciler/eventing/v1alpha1/eventtype/controller.go +++ b/pkg/client/injection/reconciler/eventing/v1beta1/eventtype/controller.go @@ -31,7 +31,7 @@ import ( record "k8s.io/client-go/tools/record" versionedscheme "knative.dev/eventing/pkg/client/clientset/versioned/scheme" client "knative.dev/eventing/pkg/client/injection/client" - eventtype "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/eventtype" + eventtype "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/eventtype" kubeclient "knative.dev/pkg/client/injection/kube/client" controller "knative.dev/pkg/controller" logging "knative.dev/pkg/logging" diff --git a/pkg/client/injection/reconciler/eventing/v1alpha1/eventtype/reconciler.go b/pkg/client/injection/reconciler/eventing/v1beta1/eventtype/reconciler.go similarity index 88% rename from pkg/client/injection/reconciler/eventing/v1alpha1/eventtype/reconciler.go rename to pkg/client/injection/reconciler/eventing/v1beta1/eventtype/reconciler.go index 5aa1af73fe6..c2c68a3062d 100644 --- a/pkg/client/injection/reconciler/eventing/v1alpha1/eventtype/reconciler.go +++ b/pkg/client/injection/reconciler/eventing/v1beta1/eventtype/reconciler.go @@ -32,44 +32,44 @@ import ( sets "k8s.io/apimachinery/pkg/util/sets" cache "k8s.io/client-go/tools/cache" record "k8s.io/client-go/tools/record" - v1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1" + v1beta1 "knative.dev/eventing/pkg/apis/eventing/v1beta1" versioned "knative.dev/eventing/pkg/client/clientset/versioned" - eventingv1alpha1 "knative.dev/eventing/pkg/client/listers/eventing/v1alpha1" + eventingv1beta1 "knative.dev/eventing/pkg/client/listers/eventing/v1beta1" controller "knative.dev/pkg/controller" logging "knative.dev/pkg/logging" reconciler "knative.dev/pkg/reconciler" ) // Interface defines the strongly typed interfaces to be implemented by a -// controller reconciling v1alpha1.EventType. +// controller reconciling v1beta1.EventType. type Interface interface { - // ReconcileKind implements custom logic to reconcile v1alpha1.EventType. Any changes + // ReconcileKind implements custom logic to reconcile v1beta1.EventType. Any changes // to the objects .Status or .Finalizers will be propagated to the stored // object. It is recommended that implementors do not call any update calls // for the Kind inside of ReconcileKind, it is the responsibility of the calling // controller to propagate those properties. The resource passed to ReconcileKind // will always have an empty deletion timestamp. - ReconcileKind(ctx context.Context, o *v1alpha1.EventType) reconciler.Event + ReconcileKind(ctx context.Context, o *v1beta1.EventType) reconciler.Event } // Finalizer defines the strongly typed interfaces to be implemented by a -// controller finalizing v1alpha1.EventType. +// controller finalizing v1beta1.EventType. type Finalizer interface { - // FinalizeKind implements custom logic to finalize v1alpha1.EventType. Any changes + // FinalizeKind implements custom logic to finalize v1beta1.EventType. Any changes // to the objects .Status or .Finalizers will be ignored. Returning a nil or // Normal type reconciler.Event will allow the finalizer to be deleted on // the resource. The resource passed to FinalizeKind will always have a set // deletion timestamp. - FinalizeKind(ctx context.Context, o *v1alpha1.EventType) reconciler.Event + FinalizeKind(ctx context.Context, o *v1beta1.EventType) reconciler.Event } -// reconcilerImpl implements controller.Reconciler for v1alpha1.EventType resources. +// reconcilerImpl implements controller.Reconciler for v1beta1.EventType resources. type reconcilerImpl struct { // Client is used to write back status updates. Client versioned.Interface // Listers index properties about resources - Lister eventingv1alpha1.EventTypeLister + Lister eventingv1beta1.EventTypeLister // Recorder is an event recorder for recording Event resources to the // Kubernetes API. @@ -89,7 +89,7 @@ type reconcilerImpl struct { // Check that our Reconciler implements controller.Reconciler var _ controller.Reconciler = (*reconcilerImpl)(nil) -func NewReconciler(ctx context.Context, logger *zap.SugaredLogger, client versioned.Interface, lister eventingv1alpha1.EventTypeLister, recorder record.EventRecorder, r Interface, options ...controller.Options) controller.Reconciler { +func NewReconciler(ctx context.Context, logger *zap.SugaredLogger, client versioned.Interface, lister eventingv1beta1.EventTypeLister, recorder record.EventRecorder, r Interface, options ...controller.Options) controller.Reconciler { // Check the options function input. It should be 0 or 1. if len(options) > 1 { logger.Fatalf("up to one options struct is supported, found %d", len(options)) @@ -215,13 +215,13 @@ func (r *reconcilerImpl) Reconcile(ctx context.Context, key string) error { return nil } -func (r *reconcilerImpl) updateStatus(existing *v1alpha1.EventType, desired *v1alpha1.EventType) error { +func (r *reconcilerImpl) updateStatus(existing *v1beta1.EventType, desired *v1beta1.EventType) error { existing = existing.DeepCopy() return reconciler.RetryUpdateConflicts(func(attempts int) (err error) { // The first iteration tries to use the injectionInformer's state, subsequent attempts fetch the latest state via API. if attempts > 0 { - getter := r.Client.EventingV1alpha1().EventTypes(desired.Namespace) + getter := r.Client.EventingV1beta1().EventTypes(desired.Namespace) existing, err = getter.Get(desired.Name, metav1.GetOptions{}) if err != nil { @@ -236,7 +236,7 @@ func (r *reconcilerImpl) updateStatus(existing *v1alpha1.EventType, desired *v1a existing.Status = desired.Status - updater := r.Client.EventingV1alpha1().EventTypes(existing.Namespace) + updater := r.Client.EventingV1beta1().EventTypes(existing.Namespace) _, err = updater.UpdateStatus(existing) return err @@ -246,7 +246,7 @@ func (r *reconcilerImpl) updateStatus(existing *v1alpha1.EventType, desired *v1a // updateFinalizersFiltered will update the Finalizers of the resource. // TODO: this method could be generic and sync all finalizers. For now it only // updates defaultFinalizerName or its override. -func (r *reconcilerImpl) updateFinalizersFiltered(ctx context.Context, resource *v1alpha1.EventType) (*v1alpha1.EventType, error) { +func (r *reconcilerImpl) updateFinalizersFiltered(ctx context.Context, resource *v1beta1.EventType) (*v1beta1.EventType, error) { getter := r.Lister.EventTypes(resource.Namespace) @@ -293,7 +293,7 @@ func (r *reconcilerImpl) updateFinalizersFiltered(ctx context.Context, resource return resource, err } - patcher := r.Client.EventingV1alpha1().EventTypes(resource.Namespace) + patcher := r.Client.EventingV1beta1().EventTypes(resource.Namespace) resource, err = patcher.Patch(resource.Name, types.MergePatchType, patch) if err != nil { @@ -306,7 +306,7 @@ func (r *reconcilerImpl) updateFinalizersFiltered(ctx context.Context, resource return resource, err } -func (r *reconcilerImpl) setFinalizerIfFinalizer(ctx context.Context, resource *v1alpha1.EventType) (*v1alpha1.EventType, error) { +func (r *reconcilerImpl) setFinalizerIfFinalizer(ctx context.Context, resource *v1beta1.EventType) (*v1beta1.EventType, error) { if _, ok := r.reconciler.(Finalizer); !ok { return resource, nil } @@ -324,7 +324,7 @@ func (r *reconcilerImpl) setFinalizerIfFinalizer(ctx context.Context, resource * return r.updateFinalizersFiltered(ctx, resource) } -func (r *reconcilerImpl) clearFinalizer(ctx context.Context, resource *v1alpha1.EventType, reconcileEvent reconciler.Event) (*v1alpha1.EventType, error) { +func (r *reconcilerImpl) clearFinalizer(ctx context.Context, resource *v1beta1.EventType, reconcileEvent reconciler.Event) (*v1beta1.EventType, error) { if _, ok := r.reconciler.(Finalizer); !ok { return resource, nil } diff --git a/pkg/client/injection/reconciler/eventing/v1alpha1/eventtype/stub/controller.go b/pkg/client/injection/reconciler/eventing/v1beta1/eventtype/stub/controller.go similarity index 89% rename from pkg/client/injection/reconciler/eventing/v1alpha1/eventtype/stub/controller.go rename to pkg/client/injection/reconciler/eventing/v1beta1/eventtype/stub/controller.go index 7f4a594d8b7..34494104cad 100644 --- a/pkg/client/injection/reconciler/eventing/v1alpha1/eventtype/stub/controller.go +++ b/pkg/client/injection/reconciler/eventing/v1beta1/eventtype/stub/controller.go @@ -21,8 +21,8 @@ package eventtype import ( context "context" - eventtype "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/eventtype" - v1alpha1eventtype "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/eventtype" + eventtype "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/eventtype" + v1beta1eventtype "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/eventtype" configmap "knative.dev/pkg/configmap" controller "knative.dev/pkg/controller" logging "knative.dev/pkg/logging" @@ -42,7 +42,7 @@ func NewController( // TODO: setup additional informers here. r := &Reconciler{} - impl := v1alpha1eventtype.NewImpl(ctx, r) + impl := v1beta1eventtype.NewImpl(ctx, r) logger.Info("Setting up event handlers.") diff --git a/pkg/client/injection/reconciler/eventing/v1alpha1/eventtype/stub/reconciler.go b/pkg/client/injection/reconciler/eventing/v1beta1/eventtype/stub/reconciler.go similarity index 87% rename from pkg/client/injection/reconciler/eventing/v1alpha1/eventtype/stub/reconciler.go rename to pkg/client/injection/reconciler/eventing/v1beta1/eventtype/stub/reconciler.go index c1d94c2e6bf..3049c87de0b 100644 --- a/pkg/client/injection/reconciler/eventing/v1alpha1/eventtype/stub/reconciler.go +++ b/pkg/client/injection/reconciler/eventing/v1beta1/eventtype/stub/reconciler.go @@ -22,8 +22,8 @@ import ( context "context" v1 "k8s.io/api/core/v1" - v1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - eventtype "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/eventtype" + v1beta1 "knative.dev/eventing/pkg/apis/eventing/v1beta1" + eventtype "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/eventtype" reconciler "knative.dev/pkg/reconciler" ) @@ -47,7 +47,7 @@ var _ eventtype.Interface = (*Reconciler)(nil) //var _ eventtype.Finalizer = (*Reconciler)(nil) // ReconcileKind implements Interface.ReconcileKind. -func (r *Reconciler) ReconcileKind(ctx context.Context, o *v1alpha1.EventType) reconciler.Event { +func (r *Reconciler) ReconcileKind(ctx context.Context, o *v1beta1.EventType) reconciler.Event { // TODO: use this if the resource implements InitializeConditions. // o.Status.InitializeConditions() @@ -60,7 +60,7 @@ func (r *Reconciler) ReconcileKind(ctx context.Context, o *v1alpha1.EventType) r // Optionally, use FinalizeKind to add finalizers. FinalizeKind will be called // when the resource is deleted. -//func (r *Reconciler) FinalizeKind(ctx context.Context, o *v1alpha1.EventType) reconciler.Event { +//func (r *Reconciler) FinalizeKind(ctx context.Context, o *v1beta1.EventType) reconciler.Event { // // TODO: add custom finalization logic here. // return nil //} diff --git a/pkg/reconciler/eventtype/controller.go b/pkg/reconciler/eventtype/controller.go index 87b3f3f4223..54bbd657b68 100644 --- a/pkg/reconciler/eventtype/controller.go +++ b/pkg/reconciler/eventtype/controller.go @@ -21,14 +21,14 @@ import ( "knative.dev/pkg/logging" - "knative.dev/eventing/pkg/apis/eventing/v1alpha1" "knative.dev/pkg/configmap" "knative.dev/pkg/controller" "knative.dev/pkg/tracker" + "knative.dev/eventing/pkg/apis/eventing/v1alpha1" brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/broker" - eventtypeinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/eventtype" - eventtypereconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/eventtype" + eventtypeinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/eventtype" + eventtypereconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/eventtype" ) // NewController initializes the controller and is called by the generated code diff --git a/pkg/reconciler/eventtype/controller_test.go b/pkg/reconciler/eventtype/controller_test.go index ab880147407..6d91a87d636 100644 --- a/pkg/reconciler/eventtype/controller_test.go +++ b/pkg/reconciler/eventtype/controller_test.go @@ -25,7 +25,7 @@ import ( // Fake injection informers _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/broker/fake" - _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/eventtype/fake" + _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/eventtype/fake" ) func TestNew(t *testing.T) { diff --git a/pkg/reconciler/eventtype/eventtype.go b/pkg/reconciler/eventtype/eventtype.go index e95ad0f564a..7c2f1a1f77f 100644 --- a/pkg/reconciler/eventtype/eventtype.go +++ b/pkg/reconciler/eventtype/eventtype.go @@ -23,8 +23,10 @@ import ( corev1 "k8s.io/api/core/v1" apierrs "k8s.io/apimachinery/pkg/api/errors" "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - eventtypereconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/eventtype" - listers "knative.dev/eventing/pkg/client/listers/eventing/v1alpha1" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" + eventtypereconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/eventtype" + alphalisters "knative.dev/eventing/pkg/client/listers/eventing/v1alpha1" + betalisters "knative.dev/eventing/pkg/client/listers/eventing/v1beta1" "knative.dev/eventing/pkg/logging" pkgreconciler "knative.dev/pkg/reconciler" "knative.dev/pkg/tracker" @@ -38,8 +40,8 @@ func newReconciledNormal(namespace, name string) pkgreconciler.Event { type Reconciler struct { // listers index properties about resources - eventTypeLister listers.EventTypeLister - brokerLister listers.BrokerLister + eventTypeLister betalisters.EventTypeLister + brokerLister alphalisters.BrokerLister tracker tracker.Interface } @@ -52,7 +54,7 @@ var _ eventtypereconciler.Interface = (*Reconciler)(nil) // 1. Verify the Broker exists. // 2. Verify the Broker is ready. // TODO remove https://github.com/knative/eventing/issues/2750 -func (r *Reconciler) ReconcileKind(ctx context.Context, et *v1alpha1.EventType) pkgreconciler.Event { +func (r *Reconciler) ReconcileKind(ctx context.Context, et *v1beta1.EventType) pkgreconciler.Event { et.Status.InitializeConditions() et.Status.ObservedGeneration = et.Generation @@ -82,12 +84,12 @@ func (r *Reconciler) ReconcileKind(ctx context.Context, et *v1alpha1.EventType) return err } - et.Status.PropagateBrokerStatus(&b.Status) + v1alpha1.PropagateV1Alpha1BrokerStatus(&et.Status, &b.Status) return newReconciledNormal(et.Namespace, et.Name) } // getBroker returns the Broker for EventType 'et' if it exists, otherwise it returns an error. -func (r *Reconciler) getBroker(ctx context.Context, et *v1alpha1.EventType) (*v1alpha1.Broker, error) { +func (r *Reconciler) getBroker(ctx context.Context, et *v1beta1.EventType) (*v1alpha1.Broker, error) { return r.brokerLister.Brokers(et.Namespace).Get(et.Spec.Broker) } diff --git a/pkg/reconciler/eventtype/eventtype_test.go b/pkg/reconciler/eventtype/eventtype_test.go index c1463ccc7a6..2412ff12eb9 100644 --- a/pkg/reconciler/eventtype/eventtype_test.go +++ b/pkg/reconciler/eventtype/eventtype_test.go @@ -27,9 +27,11 @@ import ( "k8s.io/client-go/kubernetes/scheme" clientgotesting "k8s.io/client-go/testing" "knative.dev/eventing/pkg/apis/eventing/v1alpha1" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" fakeeventingclient "knative.dev/eventing/pkg/client/injection/client/fake" - "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/eventtype" + "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/eventtype" . "knative.dev/eventing/pkg/reconciler/testing" + "knative.dev/pkg/apis" "knative.dev/pkg/configmap" "knative.dev/pkg/controller" logtesting "knative.dev/pkg/logging/testing" @@ -42,16 +44,20 @@ const ( eventTypeName = "test-eventtype" eventTypeType = "test-type" eventTypeBroker = "test-broker" - eventTypeSource = "/test-source" ) var ( - testKey = fmt.Sprintf("%s/%s", testNS, eventTypeName) + testKey = fmt.Sprintf("%s/%s", testNS, eventTypeName) + eventTypeSource = &apis.URL{ + Scheme: "http", + Host: "test-source", + } ) func init() { // Add types to scheme _ = v1alpha1.AddToScheme(scheme.Scheme) + _ = v1beta1.AddToScheme(scheme.Scheme) } func TestReconcile(t *testing.T) { @@ -178,12 +184,12 @@ func TestReconcile(t *testing.T) { logger := logtesting.TestLogger(t) table.Test(t, MakeFactory(func(ctx context.Context, listers *Listers, cmw configmap.Watcher) controller.Reconciler { r := &Reconciler{ - eventTypeLister: listers.GetEventTypeLister(), + eventTypeLister: listers.GetV1Beta1EventTypeLister(), brokerLister: listers.GetBrokerLister(), tracker: tracker.New(func(types.NamespacedName) {}, 0), } return eventtype.NewReconciler(ctx, logger, - fakeeventingclient.Get(ctx), listers.GetEventTypeLister(), + fakeeventingclient.Get(ctx), listers.GetV1Beta1EventTypeLister(), controller.GetEventRecorder(ctx), r) }, false, diff --git a/pkg/reconciler/testing/eventtype.go b/pkg/reconciler/testing/eventtype.go index e9c51fd5e27..7cb941d8516 100644 --- a/pkg/reconciler/testing/eventtype.go +++ b/pkg/reconciler/testing/eventtype.go @@ -21,15 +21,16 @@ import ( "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "knative.dev/eventing/pkg/apis/eventing/v1alpha1" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" + "knative.dev/pkg/apis" ) // EventTypeOption enables further configuration of an EventType. -type EventTypeOption func(*v1alpha1.EventType) +type EventTypeOption func(*v1beta1.EventType) // NewEventType creates a EventType with EventTypeOptions. -func NewEventType(name, namespace string, o ...EventTypeOption) *v1alpha1.EventType { - et := &v1alpha1.EventType{ +func NewEventType(name, namespace string, o ...EventTypeOption) *v1beta1.EventType { + et := &v1beta1.EventType{ ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, @@ -43,76 +44,76 @@ func NewEventType(name, namespace string, o ...EventTypeOption) *v1alpha1.EventT } // WithInitEventTypeConditions initializes the EventType's conditions. -func WithInitEventTypeConditions(et *v1alpha1.EventType) { +func WithInitEventTypeConditions(et *v1beta1.EventType) { et.Status.InitializeConditions() } -func WithEventTypeSource(source string) EventTypeOption { - return func(et *v1alpha1.EventType) { +func WithEventTypeSource(source *apis.URL) EventTypeOption { + return func(et *v1beta1.EventType) { et.Spec.Source = source } } func WithEventTypeType(t string) EventTypeOption { - return func(et *v1alpha1.EventType) { + return func(et *v1beta1.EventType) { et.Spec.Type = t } } func WithEventTypeBroker(broker string) EventTypeOption { - return func(et *v1alpha1.EventType) { + return func(et *v1beta1.EventType) { et.Spec.Broker = broker } } func WithEventTypeDescription(description string) EventTypeOption { - return func(et *v1alpha1.EventType) { + return func(et *v1beta1.EventType) { et.Spec.Description = description } } func WithEventTypeLabels(labels map[string]string) EventTypeOption { - return func(et *v1alpha1.EventType) { + return func(et *v1beta1.EventType) { et.ObjectMeta.Labels = labels } } func WithEventTypeOwnerReference(ownerRef metav1.OwnerReference) EventTypeOption { - return func(et *v1alpha1.EventType) { + return func(et *v1beta1.EventType) { et.ObjectMeta.OwnerReferences = []metav1.OwnerReference{ ownerRef, } } } -func WithEventTypeDeletionTimestamp(et *v1alpha1.EventType) { +func WithEventTypeDeletionTimestamp(et *v1beta1.EventType) { t := metav1.NewTime(time.Unix(1e9, 0)) et.ObjectMeta.SetDeletionTimestamp(&t) } // WithEventTypeBrokerNotFound calls .Status.MarkFilterFailed on the EventType. -func WithEventTypeBrokerDoesNotExist(et *v1alpha1.EventType) { +func WithEventTypeBrokerDoesNotExist(et *v1beta1.EventType) { et.Status.MarkBrokerDoesNotExist() } // WithEventTypeBrokerExists calls .Status.MarkBrokerExists on the EventType. -func WithEventTypeBrokerExists(et *v1alpha1.EventType) { +func WithEventTypeBrokerExists(et *v1beta1.EventType) { et.Status.MarkBrokerExists() } func WithEventTypeBrokerFailed(reason, message string) EventTypeOption { - return func(et *v1alpha1.EventType) { + return func(et *v1beta1.EventType) { et.Status.MarkBrokerFailed(reason, message) } } func WithEventTypeBrokerUnknown(reason, message string) EventTypeOption { - return func(et *v1alpha1.EventType) { + return func(et *v1beta1.EventType) { et.Status.MarkBrokerUnknown(reason, message) } } // WithEventTypeBrokerReady calls .Status.MarkBrokerReady on the EventType. -func WithEventTypeBrokerReady(et *v1alpha1.EventType) { +func WithEventTypeBrokerReady(et *v1beta1.EventType) { et.Status.MarkBrokerReady() } diff --git a/pkg/reconciler/testing/listers.go b/pkg/reconciler/testing/listers.go index 6d5d2af3cfd..f761f83b041 100644 --- a/pkg/reconciler/testing/listers.go +++ b/pkg/reconciler/testing/listers.go @@ -154,6 +154,10 @@ func (l *Listers) GetEventTypeLister() eventinglisters.EventTypeLister { return eventinglisters.NewEventTypeLister(l.indexerFor(&eventingv1alpha1.EventType{})) } +func (l *Listers) GetV1Beta1EventTypeLister() eventingv1beta1listers.EventTypeLister { + return eventingv1beta1listers.NewEventTypeLister(l.indexerFor(&eventingv1beta1.EventType{})) +} + func (l *Listers) GetInMemoryChannelLister() messaginglisters.InMemoryChannelLister { return messaginglisters.NewInMemoryChannelLister(l.indexerFor(&messagingv1alpha1.InMemoryChannel{})) }