From 662ce6defc2434f57cd86a2ed6960276ca4c0309 Mon Sep 17 00:00:00 2001 From: Ville Aikas Date: Sun, 3 May 2020 13:01:43 -0700 Subject: [PATCH 1/4] after running codegen --- .../eventing/v1alpha1/broker_lifecycle.go | 4 +-- pkg/apis/eventing/v1alpha1/trigger_types.go | 1 - pkg/apis/eventing/v1beta1/trigger_types.go | 1 + .../trigger/controller.go | 2 +- .../trigger/reconciler.go | 36 +++++++++---------- .../trigger/stub/controller.go | 6 ++-- .../trigger/stub/reconciler.go | 8 ++--- pkg/reconciler/mtbroker/broker.go | 12 +++---- pkg/reconciler/mtbroker/trigger.go | 29 +++++++-------- 9 files changed, 50 insertions(+), 49 deletions(-) rename pkg/client/injection/reconciler/eventing/{v1alpha1 => v1beta1}/trigger/controller.go (99%) rename pkg/client/injection/reconciler/eventing/{v1alpha1 => v1beta1}/trigger/reconciler.go (88%) rename pkg/client/injection/reconciler/eventing/{v1alpha1 => v1beta1}/trigger/stub/controller.go (89%) rename pkg/client/injection/reconciler/eventing/{v1alpha1 => v1beta1}/trigger/stub/reconciler.go (88%) diff --git a/pkg/apis/eventing/v1alpha1/broker_lifecycle.go b/pkg/apis/eventing/v1alpha1/broker_lifecycle.go index d99fabf8867..fd757a690bd 100644 --- a/pkg/apis/eventing/v1alpha1/broker_lifecycle.go +++ b/pkg/apis/eventing/v1alpha1/broker_lifecycle.go @@ -21,7 +21,7 @@ import ( corev1 "k8s.io/api/core/v1" "knative.dev/eventing/pkg/apis/duck" - duckv1alpha1 "knative.dev/eventing/pkg/apis/duck/v1alpha1" + duckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1" ) var brokerCondSet = apis.NewLivingConditionSet( @@ -75,7 +75,7 @@ func (bs *BrokerStatus) MarkTriggerChannelFailed(reason, format string, args ... brokerCondSet.Manage(bs).MarkFalse(BrokerConditionTriggerChannel, reason, format, args...) } -func (bs *BrokerStatus) PropagateTriggerChannelReadiness(cs *duckv1alpha1.ChannelableStatus) { +func (bs *BrokerStatus) PropagateTriggerChannelReadiness(cs *duckv1beta1.ChannelableStatus) { // TODO: Once you can get a Ready status from Channelable in a generic way, use it here... address := cs.AddressStatus.Address if address != nil { diff --git a/pkg/apis/eventing/v1alpha1/trigger_types.go b/pkg/apis/eventing/v1alpha1/trigger_types.go index 0e7f95fd529..55e7ba0b869 100644 --- a/pkg/apis/eventing/v1alpha1/trigger_types.go +++ b/pkg/apis/eventing/v1alpha1/trigger_types.go @@ -35,7 +35,6 @@ const ( ) // +genclient -// +genreconciler // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // Trigger represents a request to have events delivered to a consumer from a diff --git a/pkg/apis/eventing/v1beta1/trigger_types.go b/pkg/apis/eventing/v1beta1/trigger_types.go index cd5dd9aa6f8..f3e55329ff1 100644 --- a/pkg/apis/eventing/v1beta1/trigger_types.go +++ b/pkg/apis/eventing/v1beta1/trigger_types.go @@ -34,6 +34,7 @@ const ( ) // +genclient +// +genreconciler // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // Trigger represents a request to have events delivered to a consumer from a diff --git a/pkg/client/injection/reconciler/eventing/v1alpha1/trigger/controller.go b/pkg/client/injection/reconciler/eventing/v1beta1/trigger/controller.go similarity index 99% rename from pkg/client/injection/reconciler/eventing/v1alpha1/trigger/controller.go rename to pkg/client/injection/reconciler/eventing/v1beta1/trigger/controller.go index d1991f9f4de..d0589209d03 100644 --- a/pkg/client/injection/reconciler/eventing/v1alpha1/trigger/controller.go +++ b/pkg/client/injection/reconciler/eventing/v1beta1/trigger/controller.go @@ -31,7 +31,7 @@ import ( record "k8s.io/client-go/tools/record" versionedscheme "knative.dev/eventing/pkg/client/clientset/versioned/scheme" injectionclient "knative.dev/eventing/pkg/client/injection/client" - trigger "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/trigger" + trigger "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger" client "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/trigger/reconciler.go b/pkg/client/injection/reconciler/eventing/v1beta1/trigger/reconciler.go similarity index 88% rename from pkg/client/injection/reconciler/eventing/v1alpha1/trigger/reconciler.go rename to pkg/client/injection/reconciler/eventing/v1beta1/trigger/reconciler.go index a91e3b61bfa..8f692078508 100644 --- a/pkg/client/injection/reconciler/eventing/v1alpha1/trigger/reconciler.go +++ b/pkg/client/injection/reconciler/eventing/v1beta1/trigger/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.Trigger. +// controller reconciling v1beta1.Trigger. type Interface interface { - // ReconcileKind implements custom logic to reconcile v1alpha1.Trigger. Any changes + // ReconcileKind implements custom logic to reconcile v1beta1.Trigger. 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.Trigger) reconciler.Event + ReconcileKind(ctx context.Context, o *v1beta1.Trigger) reconciler.Event } // Finalizer defines the strongly typed interfaces to be implemented by a -// controller finalizing v1alpha1.Trigger. +// controller finalizing v1beta1.Trigger. type Finalizer interface { - // FinalizeKind implements custom logic to finalize v1alpha1.Trigger. Any changes + // FinalizeKind implements custom logic to finalize v1beta1.Trigger. 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.Trigger) reconciler.Event + FinalizeKind(ctx context.Context, o *v1beta1.Trigger) reconciler.Event } -// reconcilerImpl implements controller.Reconciler for v1alpha1.Trigger resources. +// reconcilerImpl implements controller.Reconciler for v1beta1.Trigger resources. type reconcilerImpl struct { // Client is used to write back status updates. Client versioned.Interface // Listers index properties about resources - Lister eventingv1alpha1.TriggerLister + Lister eventingv1beta1.TriggerLister // 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.TriggerLister, recorder record.EventRecorder, r Interface, options ...controller.Options) controller.Reconciler { +func NewReconciler(ctx context.Context, logger *zap.SugaredLogger, client versioned.Interface, lister eventingv1beta1.TriggerLister, 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)) @@ -208,13 +208,13 @@ func (r *reconcilerImpl) Reconcile(ctx context.Context, key string) error { return nil } -func (r *reconcilerImpl) updateStatus(existing *v1alpha1.Trigger, desired *v1alpha1.Trigger) error { +func (r *reconcilerImpl) updateStatus(existing *v1beta1.Trigger, desired *v1beta1.Trigger) 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().Triggers(desired.Namespace) + getter := r.Client.EventingV1beta1().Triggers(desired.Namespace) existing, err = getter.Get(desired.Name, metav1.GetOptions{}) if err != nil { @@ -229,7 +229,7 @@ func (r *reconcilerImpl) updateStatus(existing *v1alpha1.Trigger, desired *v1alp existing.Status = desired.Status - updater := r.Client.EventingV1alpha1().Triggers(existing.Namespace) + updater := r.Client.EventingV1beta1().Triggers(existing.Namespace) _, err = updater.UpdateStatus(existing) return err @@ -239,7 +239,7 @@ func (r *reconcilerImpl) updateStatus(existing *v1alpha1.Trigger, desired *v1alp // 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.Trigger) (*v1alpha1.Trigger, error) { +func (r *reconcilerImpl) updateFinalizersFiltered(ctx context.Context, resource *v1beta1.Trigger) (*v1beta1.Trigger, error) { getter := r.Lister.Triggers(resource.Namespace) @@ -286,7 +286,7 @@ func (r *reconcilerImpl) updateFinalizersFiltered(ctx context.Context, resource return resource, err } - patcher := r.Client.EventingV1alpha1().Triggers(resource.Namespace) + patcher := r.Client.EventingV1beta1().Triggers(resource.Namespace) resource, err = patcher.Patch(resource.Name, types.MergePatchType, patch) if err != nil { @@ -299,7 +299,7 @@ func (r *reconcilerImpl) updateFinalizersFiltered(ctx context.Context, resource return resource, err } -func (r *reconcilerImpl) setFinalizerIfFinalizer(ctx context.Context, resource *v1alpha1.Trigger) (*v1alpha1.Trigger, error) { +func (r *reconcilerImpl) setFinalizerIfFinalizer(ctx context.Context, resource *v1beta1.Trigger) (*v1beta1.Trigger, error) { if _, ok := r.reconciler.(Finalizer); !ok { return resource, nil } @@ -317,7 +317,7 @@ func (r *reconcilerImpl) setFinalizerIfFinalizer(ctx context.Context, resource * return r.updateFinalizersFiltered(ctx, resource) } -func (r *reconcilerImpl) clearFinalizer(ctx context.Context, resource *v1alpha1.Trigger, reconcileEvent reconciler.Event) (*v1alpha1.Trigger, error) { +func (r *reconcilerImpl) clearFinalizer(ctx context.Context, resource *v1beta1.Trigger, reconcileEvent reconciler.Event) (*v1beta1.Trigger, error) { if _, ok := r.reconciler.(Finalizer); !ok { return resource, nil } diff --git a/pkg/client/injection/reconciler/eventing/v1alpha1/trigger/stub/controller.go b/pkg/client/injection/reconciler/eventing/v1beta1/trigger/stub/controller.go similarity index 89% rename from pkg/client/injection/reconciler/eventing/v1alpha1/trigger/stub/controller.go rename to pkg/client/injection/reconciler/eventing/v1beta1/trigger/stub/controller.go index 0602db528f6..475669727fd 100644 --- a/pkg/client/injection/reconciler/eventing/v1alpha1/trigger/stub/controller.go +++ b/pkg/client/injection/reconciler/eventing/v1beta1/trigger/stub/controller.go @@ -21,8 +21,8 @@ package trigger import ( context "context" - trigger "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/trigger" - v1alpha1trigger "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/trigger" + trigger "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger" + v1beta1trigger "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger" 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 := v1alpha1trigger.NewImpl(ctx, r) + impl := v1beta1trigger.NewImpl(ctx, r) logger.Info("Setting up event handlers.") diff --git a/pkg/client/injection/reconciler/eventing/v1alpha1/trigger/stub/reconciler.go b/pkg/client/injection/reconciler/eventing/v1beta1/trigger/stub/reconciler.go similarity index 88% rename from pkg/client/injection/reconciler/eventing/v1alpha1/trigger/stub/reconciler.go rename to pkg/client/injection/reconciler/eventing/v1beta1/trigger/stub/reconciler.go index ccb5ad9d81e..7e48be8fcb3 100644 --- a/pkg/client/injection/reconciler/eventing/v1alpha1/trigger/stub/reconciler.go +++ b/pkg/client/injection/reconciler/eventing/v1beta1/trigger/stub/reconciler.go @@ -22,8 +22,8 @@ import ( context "context" v1 "k8s.io/api/core/v1" - v1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - trigger "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/trigger" + v1beta1 "knative.dev/eventing/pkg/apis/eventing/v1beta1" + trigger "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger" reconciler "knative.dev/pkg/reconciler" ) @@ -47,7 +47,7 @@ var _ trigger.Interface = (*Reconciler)(nil) //var _ trigger.Finalizer = (*Reconciler)(nil) // ReconcileKind implements Interface.ReconcileKind. -func (r *Reconciler) ReconcileKind(ctx context.Context, o *v1alpha1.Trigger) reconciler.Event { +func (r *Reconciler) ReconcileKind(ctx context.Context, o *v1beta1.Trigger) 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.Trigger) rec // Optionally, use FinalizeKind to add finalizers. FinalizeKind will be called // when the resource is deleted. -//func (r *Reconciler) FinalizeKind(ctx context.Context, o *v1alpha1.Trigger) reconciler.Event { +//func (r *Reconciler) FinalizeKind(ctx context.Context, o *v1beta1.Trigger) reconciler.Event { // // TODO: add custom finalization logic here. // return nil //} diff --git a/pkg/reconciler/mtbroker/broker.go b/pkg/reconciler/mtbroker/broker.go index b17e3c0bee3..9aab77c71a3 100644 --- a/pkg/reconciler/mtbroker/broker.go +++ b/pkg/reconciler/mtbroker/broker.go @@ -33,14 +33,14 @@ import ( corev1listers "k8s.io/client-go/listers/core/v1" "k8s.io/client-go/tools/record" - duckv1alpha1 "knative.dev/eventing/pkg/apis/duck/v1alpha1" + duckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1" "knative.dev/eventing/pkg/apis/eventing" "knative.dev/eventing/pkg/apis/eventing/v1alpha1" messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" clientset "knative.dev/eventing/pkg/client/clientset/versioned" brokerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/broker" eventinglisters "knative.dev/eventing/pkg/client/listers/eventing/v1alpha1" - messaginglisters "knative.dev/eventing/pkg/client/listers/messaging/v1alpha1" + messaginglisters "knative.dev/eventing/pkg/client/listers/messaging/v1beta1" "knative.dev/eventing/pkg/duck" "knative.dev/eventing/pkg/reconciler/mtbroker/resources" "knative.dev/eventing/pkg/reconciler/names" @@ -156,7 +156,7 @@ func (r *Reconciler) reconcileKind(ctx context.Context, b *v1alpha1.Broker) pkgr // Ok to return nil for error here, once channel address becomes available, this will get requeued. return nil } - if url := triggerChan.Status.Address.GetURL(); url.Host == "" { + if url := triggerChan.Status.Address.URL; url.Host == "" { // We check the trigger Channel's address here because it is needed to create the Ingress Deployment. logging.FromContext(ctx).Debugw("Trigger Channel does not have an address", zap.Any("triggerChan", triggerChan)) b.Status.MarkTriggerChannelFailed("NoAddress", "Channel does not have an address.") @@ -273,7 +273,7 @@ func (r *Reconciler) FinalizeKind(ctx context.Context, b *v1alpha1.Broker) pkgre } // reconcileChannel reconciles Broker's 'b' underlying channel. -func (r *Reconciler) reconcileChannel(ctx context.Context, channelResourceInterface dynamic.ResourceInterface, channelObjRef corev1.ObjectReference, newChannel *unstructured.Unstructured, b *v1alpha1.Broker) (*duckv1alpha1.Channelable, error) { +func (r *Reconciler) reconcileChannel(ctx context.Context, channelResourceInterface dynamic.ResourceInterface, channelObjRef corev1.ObjectReference, newChannel *unstructured.Unstructured, b *v1alpha1.Broker) (*duckv1beta1.Channelable, error) { lister, err := r.channelableTracker.ListerFor(channelObjRef) if err != nil { logging.FromContext(ctx).Errorw(fmt.Sprintf("Error getting lister for Channel: %s/%s", channelObjRef.Namespace, channelObjRef.Name), zap.Error(err)) @@ -290,7 +290,7 @@ func (r *Reconciler) reconcileChannel(ctx context.Context, channelResourceInterf return nil, err } logging.FromContext(ctx).Info(fmt.Sprintf("Created Channel: %s/%s", channelObjRef.Namespace, channelObjRef.Name), zap.Any("NewChannel", newChannel)) - channelable := &duckv1alpha1.Channelable{} + channelable := &duckv1beta1.Channelable{} err = duckapis.FromUnstructured(created, channelable) if err != nil { logging.FromContext(ctx).Errorw(fmt.Sprintf("Failed to convert to Channelable Object: %s/%s", channelObjRef.Namespace, channelObjRef.Name), zap.Any("createdChannel", created), zap.Error(err)) @@ -303,7 +303,7 @@ func (r *Reconciler) reconcileChannel(ctx context.Context, channelResourceInterf return nil, err } logging.FromContext(ctx).Debugw(fmt.Sprintf("Found Channel: %s/%s", channelObjRef.Namespace, channelObjRef.Name)) - channelable, ok := c.(*duckv1alpha1.Channelable) + channelable, ok := c.(*duckv1beta1.Channelable) if !ok { logging.FromContext(ctx).Errorw(fmt.Sprintf("Failed to convert to Channelable Object: %s/%s", channelObjRef.Namespace, channelObjRef.Name), zap.Error(err)) return nil, err diff --git a/pkg/reconciler/mtbroker/trigger.go b/pkg/reconciler/mtbroker/trigger.go index 68417d31c9e..2620d0a79d1 100644 --- a/pkg/reconciler/mtbroker/trigger.go +++ b/pkg/reconciler/mtbroker/trigger.go @@ -29,7 +29,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - messagingv1alpha1 "knative.dev/eventing/pkg/apis/messaging/v1alpha1" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" + messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" "knative.dev/eventing/pkg/reconciler/broker/resources" "knative.dev/eventing/pkg/reconciler/names" "knative.dev/eventing/pkg/reconciler/trigger/path" @@ -52,7 +53,7 @@ const ( subscriptionDeleted = "SubscriptionDeleted" ) -func (r *Reconciler) reconcileTrigger(ctx context.Context, b *v1alpha1.Broker, t *v1alpha1.Trigger) error { +func (r *Reconciler) reconcileTrigger(ctx context.Context, b *v1alpha1.Broker, t *v1beta1.Trigger) error { t.Status.InitializeConditions() if t.DeletionTimestamp != nil { @@ -100,7 +101,7 @@ func (r *Reconciler) reconcileTrigger(ctx context.Context, b *v1alpha1.Broker, t } // subscribeToBrokerChannel subscribes service 'svc' to the Broker's channels. -func (r *Reconciler) subscribeToBrokerChannel(ctx context.Context, b *v1alpha1.Broker, t *v1alpha1.Trigger, brokerTrigger *corev1.ObjectReference) (*messagingv1alpha1.Subscription, error) { +func (r *Reconciler) subscribeToBrokerChannel(ctx context.Context, b *v1alpha1.Broker, t *v1beta1.Trigger, brokerTrigger *corev1.ObjectReference) (*messagingv1beta1.Subscription, error) { uri := &apis.URL{ Scheme: "http", Host: names.ServiceHostName("broker-filter", system.Namespace()), @@ -123,14 +124,14 @@ func (r *Reconciler) subscribeToBrokerChannel(ctx context.Context, b *v1alpha1.B // Issue #2842: Subscription name uses kmeta.ChildName. If a subscription by the previous name pattern is found, it should // be deleted. This might cause temporary downtime. if deprecatedName := utils.GenerateFixedName(t, fmt.Sprintf("%s-%s", t.Spec.Broker, t.Name)); deprecatedName != expected.Name { - if err := r.eventingClientSet.MessagingV1alpha1().Subscriptions(t.Namespace).Delete(deprecatedName, &metav1.DeleteOptions{}); err != nil && !apierrs.IsNotFound(err) { + if err := r.eventingClientSet.MessagingV1beta1().Subscriptions(t.Namespace).Delete(deprecatedName, &metav1.DeleteOptions{}); err != nil && !apierrs.IsNotFound(err) { return nil, fmt.Errorf("error deleting deprecated named subscription: %v", err) } controller.GetEventRecorder(ctx).Eventf(t, corev1.EventTypeNormal, subscriptionDeleted, "Deprecated subscription removed: \"%s/%s\"", t.Namespace, deprecatedName) } logging.FromContext(ctx).Info("Creating subscription") - sub, err = r.eventingClientSet.MessagingV1alpha1().Subscriptions(t.Namespace).Create(expected) + sub, err = r.eventingClientSet.MessagingV1beta1().Subscriptions(t.Namespace).Create(expected) if err != nil { r.recorder.Eventf(t, corev1.EventTypeWarning, subscriptionCreateFailed, "Create Trigger's subscription failed: %v", err) return nil, err @@ -151,7 +152,7 @@ func (r *Reconciler) subscribeToBrokerChannel(ctx context.Context, b *v1alpha1.B return sub, nil } -func (r *Reconciler) reconcileSubscription(ctx context.Context, t *v1alpha1.Trigger, expected, actual *messagingv1alpha1.Subscription) (*messagingv1alpha1.Subscription, error) { +func (r *Reconciler) reconcileSubscription(ctx context.Context, t *v1beta1.Trigger, expected, actual *messagingv1beta1.Subscription) (*messagingv1beta1.Subscription, error) { // Update Subscription if it has changed. Ignore the generation. expected.Spec.DeprecatedGeneration = actual.Spec.DeprecatedGeneration if equality.Semantic.DeepDerivative(expected.Spec, actual.Spec) { @@ -162,14 +163,14 @@ func (r *Reconciler) reconcileSubscription(ctx context.Context, t *v1alpha1.Trig // Given that spec.channel is immutable, we cannot just update the Subscription. We delete // it and re-create it instead. logging.FromContext(ctx).Infow("Deleting subscription", zap.String("namespace", actual.Namespace), zap.String("name", actual.Name)) - err := r.eventingClientSet.MessagingV1alpha1().Subscriptions(t.Namespace).Delete(actual.Name, &metav1.DeleteOptions{}) + err := r.eventingClientSet.MessagingV1beta1().Subscriptions(t.Namespace).Delete(actual.Name, &metav1.DeleteOptions{}) if err != nil { logging.FromContext(ctx).Info("Cannot delete subscription", zap.Error(err)) r.recorder.Eventf(t, corev1.EventTypeWarning, subscriptionDeleteFailed, "Delete Trigger's subscription failed: %v", err) return nil, err } logging.FromContext(ctx).Info("Creating subscription") - newSub, err := r.eventingClientSet.MessagingV1alpha1().Subscriptions(t.Namespace).Create(expected) + newSub, err := r.eventingClientSet.MessagingV1beta1().Subscriptions(t.Namespace).Create(expected) if err != nil { logging.FromContext(ctx).Infow("Cannot create subscription", zap.Error(err)) r.recorder.Eventf(t, corev1.EventTypeWarning, subscriptionCreateFailed, "Create Trigger's subscription failed: %v", err) @@ -178,7 +179,7 @@ func (r *Reconciler) reconcileSubscription(ctx context.Context, t *v1alpha1.Trig return newSub, nil } -func (r *Reconciler) updateTriggerStatus(ctx context.Context, desired *v1alpha1.Trigger) (*v1alpha1.Trigger, error) { +func (r *Reconciler) updateTriggerStatus(ctx context.Context, desired *v1beta1.Trigger) (*v1beta1.Trigger, error) { trigger, err := r.triggerLister.Triggers(desired.Namespace).Get(desired.Name) if err != nil { return nil, err @@ -192,12 +193,12 @@ func (r *Reconciler) updateTriggerStatus(ctx context.Context, desired *v1alpha1. existing := trigger.DeepCopy() existing.Status = desired.Status - return r.eventingClientSet.EventingV1alpha1().Triggers(desired.Namespace).UpdateStatus(existing) + return r.eventingClientSet.EventingV1beta1().Triggers(desired.Namespace).UpdateStatus(existing) } -func (r *Reconciler) checkDependencyAnnotation(ctx context.Context, t *v1alpha1.Trigger, b *v1alpha1.Broker) error { - if dependencyAnnotation, ok := t.GetAnnotations()[v1alpha1.DependencyAnnotation]; ok { - dependencyObjRef, err := v1alpha1.GetObjRefFromDependencyAnnotation(dependencyAnnotation) +func (r *Reconciler) checkDependencyAnnotation(ctx context.Context, t *v1beta1.Trigger, b *v1alpha1.Broker) error { + if dependencyAnnotation, ok := t.GetAnnotations()[v1beta1.DependencyAnnotation]; ok { + dependencyObjRef, err := v1beta1.GetObjRefFromDependencyAnnotation(dependencyAnnotation) if err != nil { t.Status.MarkDependencyFailed("ReferenceError", "Unable to unmarshal objectReference from dependency annotation of trigger: %v", err) return fmt.Errorf("getting object ref from dependency annotation %q: %v", dependencyAnnotation, err) @@ -216,7 +217,7 @@ func (r *Reconciler) checkDependencyAnnotation(ctx context.Context, t *v1alpha1. return nil } -func (r *Reconciler) propagateDependencyReadiness(ctx context.Context, t *v1alpha1.Trigger, dependencyObjRef corev1.ObjectReference) error { +func (r *Reconciler) propagateDependencyReadiness(ctx context.Context, t *v1beta1.Trigger, dependencyObjRef corev1.ObjectReference) error { lister, err := r.kresourceTracker.ListerFor(dependencyObjRef) if err != nil { t.Status.MarkDependencyUnknown("ListerDoesNotExist", "Failed to retrieve lister: %v", err) From 1175eec6fb21fb3a46b1244d3b0ee36302efd02c Mon Sep 17 00:00:00 2001 From: Ville Aikas Date: Tue, 5 May 2020 13:30:40 -0700 Subject: [PATCH 2/4] checkpoint --- pkg/reconciler/trigger/controller.go | 6 ++--- pkg/reconciler/trigger/controller_test.go | 9 +++---- pkg/reconciler/trigger/path/path.go | 4 ++-- pkg/reconciler/trigger/trigger.go | 12 +++++----- pkg/reconciler/trigger/trigger_test.go | 29 +++++++++++------------ 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/pkg/reconciler/trigger/controller.go b/pkg/reconciler/trigger/controller.go index ffb5a61558b..62558c24cb9 100644 --- a/pkg/reconciler/trigger/controller.go +++ b/pkg/reconciler/trigger/controller.go @@ -24,9 +24,9 @@ import ( "knative.dev/pkg/controller" eventingclient "knative.dev/eventing/pkg/client/injection/client" - "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/broker" - "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/trigger" - triggerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/trigger" + "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/broker" + "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger" + triggerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger" kubeclient "knative.dev/pkg/client/injection/kube/client" "knative.dev/pkg/client/injection/kube/informers/core/v1/namespace" ) diff --git a/pkg/reconciler/trigger/controller_test.go b/pkg/reconciler/trigger/controller_test.go index dae713f64e5..51f28f2cae7 100644 --- a/pkg/reconciler/trigger/controller_test.go +++ b/pkg/reconciler/trigger/controller_test.go @@ -23,12 +23,13 @@ import ( . "knative.dev/pkg/reconciler/testing" // Fake injection informers - _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/broker/fake" - _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/trigger/fake" - _ "knative.dev/eventing/pkg/client/injection/informers/messaging/v1alpha1/subscription/fake" + _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/broker/fake" + _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger/fake" + _ "knative.dev/eventing/pkg/client/injection/informers/messaging/v1beta1/subscription/fake" _ "knative.dev/pkg/client/injection/ducks/duck/v1/addressable/fake" _ "knative.dev/pkg/client/injection/ducks/duck/v1/conditions/fake" - _ "knative.dev/pkg/client/injection/ducks/duck/v1alpha1/addressable/fake" + + // _ "knative.dev/pkg/client/injection/ducks/duck/v1alpha1/addressable/fake" _ "knative.dev/pkg/client/injection/ducks/duck/v1beta1/addressable/fake" _ "knative.dev/pkg/client/injection/kube/informers/core/v1/namespace/fake" _ "knative.dev/pkg/client/injection/kube/informers/core/v1/service/fake" diff --git a/pkg/reconciler/trigger/path/path.go b/pkg/reconciler/trigger/path/path.go index ae47685d0ae..15c3f9aee60 100644 --- a/pkg/reconciler/trigger/path/path.go +++ b/pkg/reconciler/trigger/path/path.go @@ -21,7 +21,7 @@ import ( "strings" "k8s.io/apimachinery/pkg/types" - "knative.dev/eventing/pkg/apis/eventing/v1alpha1" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" ) const ( @@ -29,7 +29,7 @@ const ( ) // Generate generates the Path portion of a URI to send events to the given Trigger. -func Generate(t *v1alpha1.Trigger) string { +func Generate(t *v1beta1.Trigger) string { return fmt.Sprintf("/%s/%s/%s/%s", prefix, t.Namespace, t.Name, t.UID) } diff --git a/pkg/reconciler/trigger/trigger.go b/pkg/reconciler/trigger/trigger.go index 8857778e940..e4e0d56fab9 100644 --- a/pkg/reconciler/trigger/trigger.go +++ b/pkg/reconciler/trigger/trigger.go @@ -25,10 +25,10 @@ import ( "k8s.io/client-go/kubernetes" corev1listers "k8s.io/client-go/listers/core/v1" - "knative.dev/eventing/pkg/apis/eventing/v1alpha1" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" clientset "knative.dev/eventing/pkg/client/clientset/versioned" - triggerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/trigger" - listers "knative.dev/eventing/pkg/client/listers/eventing/v1alpha1" + triggerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger" + listers "knative.dev/eventing/pkg/client/listers/eventing/v1beta1" "knative.dev/pkg/logging" "knative.dev/pkg/reconciler" ) @@ -50,10 +50,10 @@ type Reconciler struct { // Check that our Reconciler implements triggerreconciler.Interface var _ triggerreconciler.Interface = (*Reconciler)(nil) -func (r *Reconciler) ReconcileKind(ctx context.Context, t *v1alpha1.Trigger) reconciler.Event { +func (r *Reconciler) ReconcileKind(ctx context.Context, t *v1beta1.Trigger) reconciler.Event { _, err := r.brokerLister.Brokers(t.Namespace).Get(t.Spec.Broker) if err != nil && apierrs.IsNotFound(err) { - _, needDefaultBroker := t.GetAnnotations()[v1alpha1.InjectionAnnotation] + _, needDefaultBroker := t.GetAnnotations()[v1beta1.InjectionAnnotation] if t.Spec.Broker == "default" && needDefaultBroker { if e := r.labelNamespace(ctx, t); e != nil { logging.FromContext(ctx).Errorw("Unable to label the namespace", zap.Error(e)) @@ -66,7 +66,7 @@ func (r *Reconciler) ReconcileKind(ctx context.Context, t *v1alpha1.Trigger) rec } // labelNamespace will label namespace with knative-eventing-injection=enabled -func (r *Reconciler) labelNamespace(ctx context.Context, t *v1alpha1.Trigger) reconciler.Event { +func (r *Reconciler) labelNamespace(ctx context.Context, t *v1beta1.Trigger) reconciler.Event { current, err := r.namespaceLister.Get(t.Namespace) if err != nil { return err diff --git a/pkg/reconciler/trigger/trigger_test.go b/pkg/reconciler/trigger/trigger_test.go index 592194a2508..e717589290f 100644 --- a/pkg/reconciler/trigger/trigger_test.go +++ b/pkg/reconciler/trigger/trigger_test.go @@ -26,11 +26,10 @@ import ( "k8s.io/apimachinery/pkg/runtime" "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/trigger" + "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger" reconciletesting "knative.dev/eventing/pkg/reconciler/testing" - duckv1alpha1 "knative.dev/pkg/apis/duck/v1alpha1" fakekubeclient "knative.dev/pkg/client/injection/kube/client/fake" "knative.dev/pkg/configmap" "knative.dev/pkg/controller" @@ -53,8 +52,8 @@ const ( func init() { // Add types to scheme - _ = v1alpha1.AddToScheme(scheme.Scheme) - _ = duckv1alpha1.AddToScheme(scheme.Scheme) + _ = v1beta1.AddToScheme(scheme.Scheme) + _ = duckv1beta1.AddToScheme(scheme.Scheme) } func TestAllCases(t *testing.T) { @@ -100,7 +99,7 @@ func TestAllCases(t *testing.T) { WantErr: false, WantUpdates: []clientgotesting.UpdateActionImpl{{ Object: reconciletesting.NewNamespace(testNS, - reconciletesting.WithNamespaceLabeled(map[string]string{v1alpha1.InjectionAnnotation: injectionAnnotation})), + reconciletesting.WithNamespaceLabeled(map[string]string{v1beta1.InjectionAnnotation: injectionAnnotation})), }}, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerNamespaceLabeled", "Trigger namespaced labeled for injection: %q", testNS), @@ -143,7 +142,7 @@ func TestAllCases(t *testing.T) { }, WantUpdates: []clientgotesting.UpdateActionImpl{{ Object: reconciletesting.NewNamespace(testNS, - reconciletesting.WithNamespaceLabeled(map[string]string{v1alpha1.InjectionAnnotation: injectionAnnotation})), + reconciletesting.WithNamespaceLabeled(map[string]string{v1beta1.InjectionAnnotation: injectionAnnotation})), }}, }, { Name: "Default broker found, with injection annotation enabled", @@ -174,28 +173,28 @@ func TestAllCases(t *testing.T) { }, false, logger)) } -func makeBroker() *v1alpha1.Broker { - return &v1alpha1.Broker{ +func makeBroker() *v1beta1.Broker { + return &v1beta1.Broker{ TypeMeta: metav1.TypeMeta{ - APIVersion: "eventing.knative.dev/v1alpha1", + APIVersion: "eventing.knative.dev/v1beta1", Kind: "Broker", }, ObjectMeta: metav1.ObjectMeta{ Namespace: testNS, Name: brokerName, }, - Spec: v1alpha1.BrokerSpec{}, + Spec: v1beta1.BrokerSpec{}, } } -func makeReadyBroker() *v1alpha1.Broker { +func makeReadyBroker() *v1beta1.Broker { b := makeBroker() - b.Status = *v1alpha1.TestHelper.ReadyBrokerStatus() + b.Status = *v1beta1.TestHelper.ReadyBrokerStatus() b.Status.TriggerChannel = makeTriggerChannelRef() return b } -func makeReadyDefaultBroker() *v1alpha1.Broker { +func makeReadyDefaultBroker() *v1beta1.Broker { b := makeReadyBroker() b.Name = "default" return b @@ -203,7 +202,7 @@ func makeReadyDefaultBroker() *v1alpha1.Broker { func makeTriggerChannelRef() *corev1.ObjectReference { return &corev1.ObjectReference{ - APIVersion: "eventing.knative.dev/v1alpha1", + APIVersion: "eventing.knative.dev/v1beta1", Kind: "Channel", Namespace: testNS, Name: fmt.Sprintf("%s-kn-trigger", brokerName), From fe79477f97bbfcb37985c6768fa50ae631895894 Mon Sep 17 00:00:00 2001 From: Ville Aikas Date: Wed, 6 May 2020 10:32:47 -0700 Subject: [PATCH 3/4] reconcile triggers using v1beta1 --- go.sum | 2 + .../eventing/v1alpha1/broker_lifecycle.go | 4 +- pkg/apis/eventing/v1beta1/test_helper.go | 8 + .../eventing/v1beta1/trigger_lifecycle.go | 3 +- .../v1beta1/trigger_lifecycle_test.go | 2 +- pkg/reconciler/broker/broker.go | 35 +- pkg/reconciler/broker/broker_test.go | 624 ++++++++--------- pkg/reconciler/broker/controller.go | 9 +- pkg/reconciler/broker/controller_test.go | 5 +- .../broker/resources/subscription.go | 18 +- .../broker/resources/subscription_test.go | 24 +- pkg/reconciler/broker/trigger.go | 36 +- pkg/reconciler/mtbroker/broker.go | 26 +- pkg/reconciler/mtbroker/broker_test.go | 636 +++++++++--------- pkg/reconciler/mtbroker/controller.go | 9 +- pkg/reconciler/mtbroker/controller_test.go | 4 +- .../mtbroker/resources/subscription.go | 12 +- .../mtbroker/resources/subscription_test.go | 14 +- pkg/reconciler/mtbroker/trigger.go | 9 +- pkg/reconciler/testing/listers.go | 4 + pkg/reconciler/testing/v1beta1/listers.go | 4 + pkg/reconciler/testing/v1beta1/namespace.go | 51 ++ pkg/reconciler/testing/v1beta1/trigger.go | 220 ++++++ pkg/reconciler/trigger/trigger_test.go | 21 +- 24 files changed, 1026 insertions(+), 754 deletions(-) create mode 100644 pkg/reconciler/testing/v1beta1/namespace.go create mode 100644 pkg/reconciler/testing/v1beta1/trigger.go diff --git a/go.sum b/go.sum index da7c67d045a..826542f40b4 100644 --- a/go.sum +++ b/go.sum @@ -1016,6 +1016,8 @@ k8s.io/utils v0.0.0-20191010214722-8d271d903fe4/go.mod h1:sZAwmy6armz5eXlNoLmJcl knative.dev/pkg v0.0.0-20191101194912-56c2594e4f11/go.mod h1:pgODObA1dTyhNoFxPZTTjNWfx6F0aKsKzn+vaT9XO/Q= knative.dev/pkg v0.0.0-20200501005942-d980c0865972 h1:N/umsmNgROaU+fIziEBZ+L32OMpgwZRYW3VeHUPR8ZA= knative.dev/pkg v0.0.0-20200501005942-d980c0865972/go.mod h1:X4wmXb4xUR+1eDBoP6AeVfAqsyxl1yATnRdSgFdjhQw= +knative.dev/pkg v0.0.0-20200505191044-3da93ebb24c2 h1:Qu2NlOHb9p3g+CSL/ok9+FySowN60URFEKRSXfWtDv4= +knative.dev/pkg v0.0.0-20200505212244-1099bd14baae h1:kqhjQYETRl/g8OtxTShmowmzUaWTsofXa7gRqAaip6Q= knative.dev/test-infra v0.0.0-20200429211942-f4c4853375cf h1:rNWg3NiXNLjZC9C1EJf2qKA+mRnrWMLW1KONsEusLYg= knative.dev/test-infra v0.0.0-20200429211942-f4c4853375cf/go.mod h1:xcdUkMJrLlBswIZqL5zCuBFOC22WIPMQoVX1L35i0vQ= knative.dev/test-infra v0.0.0-20200430225942-f7c1fafc1cde h1:QSzxFsf21WXNhODvh0jRKbFR+c5UI7WFjiISy/sMOLg= diff --git a/pkg/apis/eventing/v1alpha1/broker_lifecycle.go b/pkg/apis/eventing/v1alpha1/broker_lifecycle.go index fd757a690bd..d99fabf8867 100644 --- a/pkg/apis/eventing/v1alpha1/broker_lifecycle.go +++ b/pkg/apis/eventing/v1alpha1/broker_lifecycle.go @@ -21,7 +21,7 @@ import ( corev1 "k8s.io/api/core/v1" "knative.dev/eventing/pkg/apis/duck" - duckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1" + duckv1alpha1 "knative.dev/eventing/pkg/apis/duck/v1alpha1" ) var brokerCondSet = apis.NewLivingConditionSet( @@ -75,7 +75,7 @@ func (bs *BrokerStatus) MarkTriggerChannelFailed(reason, format string, args ... brokerCondSet.Manage(bs).MarkFalse(BrokerConditionTriggerChannel, reason, format, args...) } -func (bs *BrokerStatus) PropagateTriggerChannelReadiness(cs *duckv1beta1.ChannelableStatus) { +func (bs *BrokerStatus) PropagateTriggerChannelReadiness(cs *duckv1alpha1.ChannelableStatus) { // TODO: Once you can get a Ready status from Channelable in a generic way, use it here... address := cs.AddressStatus.Address if address != nil { diff --git a/pkg/apis/eventing/v1beta1/test_helper.go b/pkg/apis/eventing/v1beta1/test_helper.go index 9e6f327abea..81137ff53dc 100644 --- a/pkg/apis/eventing/v1beta1/test_helper.go +++ b/pkg/apis/eventing/v1beta1/test_helper.go @@ -59,6 +59,14 @@ func (t testHelper) ReadyBrokerStatus() *BrokerStatus { return bs } +func (t testHelper) ReadyBrokerCondition() *apis.Condition { + return &apis.Condition{ + Type: apis.ConditionReady, + Status: corev1.ConditionTrue, + Severity: apis.ConditionSeverityError, + } +} + func (t testHelper) UnknownBrokerStatus() *BrokerStatus { bs := &BrokerStatus{} return bs diff --git a/pkg/apis/eventing/v1beta1/trigger_lifecycle.go b/pkg/apis/eventing/v1beta1/trigger_lifecycle.go index 0e122a37486..090e0a8b90b 100644 --- a/pkg/apis/eventing/v1beta1/trigger_lifecycle.go +++ b/pkg/apis/eventing/v1beta1/trigger_lifecycle.go @@ -71,8 +71,7 @@ func (ts *TriggerStatus) InitializeConditions() { triggerCondSet.Manage(ts).InitializeConditions() } -func (ts *TriggerStatus) PropagateBrokerStatus(bs *BrokerStatus) { - bc := bs.GetTopLevelCondition() +func (ts *TriggerStatus) PropagateBrokerCondition(bc *apis.Condition) { if bc == nil { ts.MarkBrokerNotConfigured() return diff --git a/pkg/apis/eventing/v1beta1/trigger_lifecycle_test.go b/pkg/apis/eventing/v1beta1/trigger_lifecycle_test.go index 4a71369c19d..c8e5745d869 100644 --- a/pkg/apis/eventing/v1beta1/trigger_lifecycle_test.go +++ b/pkg/apis/eventing/v1beta1/trigger_lifecycle_test.go @@ -322,7 +322,7 @@ func TestTriggerConditionStatus(t *testing.T) { t.Run(test.name, func(t *testing.T) { ts := &TriggerStatus{} if test.brokerStatus != nil { - ts.PropagateBrokerStatus(test.brokerStatus) + ts.PropagateBrokerCondition(test.brokerStatus.GetTopLevelCondition()) } if test.subscriptionCondition != nil { ts.PropagateSubscriptionCondition(test.subscriptionCondition) diff --git a/pkg/reconciler/broker/broker.go b/pkg/reconciler/broker/broker.go index 05a35664fff..b2f004fbc33 100644 --- a/pkg/reconciler/broker/broker.go +++ b/pkg/reconciler/broker/broker.go @@ -40,13 +40,19 @@ import ( "knative.dev/pkg/logging" duckv1alpha1 "knative.dev/eventing/pkg/apis/duck/v1alpha1" + duckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1" "knative.dev/eventing/pkg/apis/eventing" "knative.dev/eventing/pkg/apis/eventing/v1alpha1" messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" clientset "knative.dev/eventing/pkg/client/clientset/versioned" brokerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/broker" + pkgduckv1alpha1 "knative.dev/pkg/apis/duck/v1alpha1" + pkgduckv1beta1 "knative.dev/pkg/apis/duck/v1beta1" + + // Need this for Brokers since we reconcile them still as v1alpha1 eventinglisters "knative.dev/eventing/pkg/client/listers/eventing/v1alpha1" - messaginglisters "knative.dev/eventing/pkg/client/listers/messaging/v1alpha1" + eventingv1beta1listers "knative.dev/eventing/pkg/client/listers/eventing/v1beta1" + messaginglisters "knative.dev/eventing/pkg/client/listers/messaging/v1beta1" "knative.dev/eventing/pkg/duck" "knative.dev/eventing/pkg/reconciler/broker/resources" "knative.dev/eventing/pkg/reconciler/names" @@ -71,7 +77,7 @@ type Reconciler struct { endpointsLister corev1listers.EndpointsLister deploymentLister appsv1listers.DeploymentLister subscriptionLister messaginglisters.SubscriptionLister - triggerLister eventinglisters.TriggerLister + triggerLister eventingv1beta1listers.TriggerLister channelableTracker duck.ListableTracker @@ -159,21 +165,16 @@ func (r *Reconciler) reconcileKind(ctx context.Context, b *v1alpha1.Broker) (kme return nil, fmt.Errorf("Failed to reconcile trigger channel: %v", err) } - if triggerChan.Status.Address == nil { - logging.FromContext(ctx).Debug("Trigger Channel does not have an address", zap.Any("triggerChan", triggerChan)) - b.Status.MarkTriggerChannelFailed("NoAddress", "Channel does not have an address.") - // Ok to return nil for error here, once channel address becomes available, this will get requeued. - return nil, nil - } - if url := triggerChan.Status.Address.GetURL(); url.Host == "" { - // We check the trigger Channel's address here because it is needed to create the Ingress Deployment. + if triggerChan.Status.Address == nil || triggerChan.Status.Address.URL == nil { logging.FromContext(ctx).Debug("Trigger Channel does not have an address", zap.Any("triggerChan", triggerChan)) b.Status.MarkTriggerChannelFailed("NoAddress", "Channel does not have an address.") // Ok to return nil for error here, once channel address becomes available, this will get requeued. return nil, nil } b.Status.TriggerChannel = &chanMan.ref - b.Status.PropagateTriggerChannelReadiness(&triggerChan.Status) + // We need to downconvert from v1beta1 -> v1alpha1 since broker only handles v1alpha1. + channelStatus := &duckv1alpha1.ChannelableStatus{AddressStatus: pkgduckv1alpha1.AddressStatus{Address: &pkgduckv1alpha1.Addressable{Addressable: pkgduckv1beta1.Addressable{URL: triggerChan.Status.Address.URL}}}} + b.Status.PropagateTriggerChannelReadiness(channelStatus) if err := r.reconcileFilterDeployment(ctx, b); err != nil { logging.FromContext(ctx).Error("Problem reconciling filter Deployment", zap.Error(err)) @@ -305,7 +306,7 @@ func (r *Reconciler) reconcileFilterService(ctx context.Context, b *v1alpha1.Bro } // reconcileChannel reconciles Broker's 'b' underlying channel. -func (r *Reconciler) reconcileChannel(ctx context.Context, channelResourceInterface dynamic.ResourceInterface, channelObjRef corev1.ObjectReference, newChannel *unstructured.Unstructured, b *v1alpha1.Broker) (*duckv1alpha1.Channelable, error) { +func (r *Reconciler) reconcileChannel(ctx context.Context, channelResourceInterface dynamic.ResourceInterface, channelObjRef corev1.ObjectReference, newChannel *unstructured.Unstructured, b *v1alpha1.Broker) (*duckv1beta1.Channelable, error) { lister, err := r.channelableTracker.ListerFor(channelObjRef) if err != nil { logging.FromContext(ctx).Error(fmt.Sprintf("Error getting lister for Channel: %s/%s", channelObjRef.Namespace, channelObjRef.Name), zap.Error(err)) @@ -322,7 +323,7 @@ func (r *Reconciler) reconcileChannel(ctx context.Context, channelResourceInterf return nil, err } logging.FromContext(ctx).Info(fmt.Sprintf("Created Channel: %s/%s", channelObjRef.Namespace, channelObjRef.Name), zap.Any("NewChannel", newChannel)) - channelable := &duckv1alpha1.Channelable{} + channelable := &duckv1beta1.Channelable{} err = duckapis.FromUnstructured(created, channelable) if err != nil { logging.FromContext(ctx).Error(fmt.Sprintf("Failed to convert to Channelable Object: %s/%s", channelObjRef.Namespace, channelObjRef.Name), zap.Any("createdChannel", created), zap.Error(err)) @@ -335,7 +336,7 @@ func (r *Reconciler) reconcileChannel(ctx context.Context, channelResourceInterf return nil, err } logging.FromContext(ctx).Debug(fmt.Sprintf("Found Channel: %s/%s", channelObjRef.Namespace, channelObjRef.Name)) - channelable, ok := c.(*duckv1alpha1.Channelable) + channelable, ok := c.(*duckv1beta1.Channelable) if !ok { logging.FromContext(ctx).Error(fmt.Sprintf("Failed to convert to Channelable Object: %s/%s", channelObjRef.Namespace, channelObjRef.Name), zap.Error(err)) return nil, err @@ -403,12 +404,12 @@ func (r *Reconciler) reconcileService(ctx context.Context, svc *corev1.Service) } // reconcileIngressDeploymentCRD reconciles the Ingress Deployment for a CRD backed channel. -func (r *Reconciler) reconcileIngressDeployment(ctx context.Context, b *v1alpha1.Broker, c *duckv1alpha1.Channelable) error { +func (r *Reconciler) reconcileIngressDeployment(ctx context.Context, b *v1alpha1.Broker, c *duckv1beta1.Channelable) error { expected := resources.MakeIngressDeployment(&resources.IngressArgs{ Broker: b, Image: r.ingressImage, ServiceAccountName: r.ingressServiceAccountName, - ChannelAddress: c.Status.Address.GetURL().Host, + ChannelAddress: c.Status.Address.URL.Host, }) return r.reconcileDeployment(ctx, expected) } @@ -472,7 +473,7 @@ func (r *Reconciler) propagateBrokerStatusToTriggers(ctx context.Context, namesp if bs == nil { trigger.Status.MarkBrokerFailed("BrokerDoesNotExist", "Broker %q does not exist", name) } else { - trigger.Status.PropagateBrokerStatus(bs) + trigger.Status.PropagateBrokerCondition(bs.GetTopLevelCondition()) } if _, updateStatusErr := r.updateTriggerStatus(ctx, trigger); updateStatusErr != nil { logging.FromContext(ctx).Error("Failed to update Trigger status", zap.Error(updateStatusErr)) diff --git a/pkg/reconciler/broker/broker_test.go b/pkg/reconciler/broker/broker_test.go index 043a616cee1..6c5766e141a 100644 --- a/pkg/reconciler/broker/broker_test.go +++ b/pkg/reconciler/broker/broker_test.go @@ -39,8 +39,9 @@ import ( eventingduckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1" "knative.dev/eventing/pkg/apis/eventing" "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - messagingv1alpha1 "knative.dev/eventing/pkg/apis/messaging/v1alpha1" - "knative.dev/eventing/pkg/client/injection/ducks/duck/v1alpha1/channelable" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" + messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" + "knative.dev/eventing/pkg/client/injection/ducks/duck/v1beta1/channelable" "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/broker" "knative.dev/eventing/pkg/duck" "knative.dev/eventing/pkg/reconciler/broker/resources" @@ -58,8 +59,9 @@ import ( "knative.dev/pkg/resolver" "knative.dev/pkg/system" - _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/trigger/fake" + _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger/fake" . "knative.dev/eventing/pkg/reconciler/testing" + rtv1beta1 "knative.dev/eventing/pkg/reconciler/testing/v1beta1" _ "knative.dev/pkg/client/injection/ducks/duck/v1/addressable/fake" . "knative.dev/pkg/reconciler/testing" ) @@ -148,6 +150,7 @@ var ( func init() { // Add types to scheme _ = v1alpha1.AddToScheme(scheme.Scheme) + _ = v1beta1.AddToScheme(scheme.Scheme) _ = duckv1alpha1.AddToScheme(scheme.Scheme) } @@ -810,22 +813,22 @@ func TestReconcile(t *testing.T) { NewEndpoints(ingressServiceName, testNS, WithEndpointsLabels(resources.IngressLabels(brokerName)), WithEndpointsAddresses(corev1.EndpointAddress{IP: "127.0.0.1"})), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), }, WantCreates: []runtime.Object{ makeIngressSubscription(), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithTriggerBrokerReady(), - WithTriggerDependencyReady(), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), - WithTriggerStatusSubscriberURI(subscriberURI)), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerDependencyReady(), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI)), }, { Object: NewBroker(brokerName, testNS, WithBrokerClass(eventing.ChannelBrokerClassValue), @@ -848,26 +851,26 @@ func TestReconcile(t *testing.T) { NewBroker(brokerName, testNS, WithBrokerClass(eventing.ChannelBrokerClassValue), WithInitBrokerConditions), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerDependencyReady(), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), - WithTriggerStatusSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerDependencyReady(), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI)), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerDependencyReady(), - WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), - WithTriggerBrokerFailed("ChannelTemplateFailed", "Error on setting up the ChannelTemplate: Broker.Spec.ChannelTemplate is nil"), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerStatusSubscriberURI(subscriberURI)), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerDependencyReady(), + rtv1beta1.WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), + rtv1beta1.WithTriggerBrokerFailed("ChannelTemplateFailed", "Error on setting up the ChannelTemplate: Broker.Spec.ChannelTemplate is nil"), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI)), }, { Object: NewBroker(brokerName, testNS, WithBrokerClass(eventing.ChannelBrokerClassValue), @@ -893,16 +896,16 @@ func TestReconcile(t *testing.T) { WithBrokerFinalizers("brokers.eventing.knative.dev"), WithBrokerResourceVersion(""), WithBrokerDeletionTimestamp), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerBrokerFailed("BrokerDoesNotExist", `Broker "test-broker" does not exist`)), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerFailed("BrokerDoesNotExist", `Broker "test-broker" does not exist`)), }}, WantPatches: []clientgotesting.PatchActionImpl{ patchRemoveFinalizers(testNS, brokerName), @@ -922,19 +925,19 @@ func TestReconcile(t *testing.T) { WithBrokerFinalizers("brokers.eventing.knative.dev"), WithBrokerResourceVersion(""), WithBrokerDeletionTimestamp), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), }, WithReactors: []clientgotesting.ReactionFunc{ InduceFailure("update", "triggers"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerBrokerFailed("BrokerDoesNotExist", `Broker "test-broker" does not exist`)), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerFailed("BrokerDoesNotExist", `Broker "test-broker" does not exist`)), }}, WantEvents: []string{ Eventf(corev1.EventTypeWarning, "TriggerUpdateStatusFailed", `Failed to update Trigger's status: inducing failure for update triggers`), @@ -945,16 +948,16 @@ func TestReconcile(t *testing.T) { Name: "Trigger being deleted", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerDeleted, - WithTriggerSubscriberURI(subscriberURI))}...), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerDeleted, + rtv1beta1.WithTriggerSubscriberURI(subscriberURI))}...), WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerDeleted, - WithInitTriggerConditions, - WithTriggerSubscriberURI(subscriberURI)), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerDeleted, + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), }}, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), @@ -963,22 +966,22 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription create fails", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI))}...), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI))}...), WithReactors: []clientgotesting.ReactionFunc{ InduceFailure("create", "subscriptions"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerNotSubscribed("NotSubscribed", "inducing failure for create subscriptions")), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerNotSubscribed("NotSubscribed", "inducing failure for create subscriptions")), }}, WantCreates: []runtime.Object{ makeIngressSubscription(), @@ -991,23 +994,23 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription create fails, update status fails", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI))}...), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI))}...), WithReactors: []clientgotesting.ReactionFunc{ InduceFailure("create", "subscriptions"), InduceFailure("update", "triggers"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerNotSubscribed("NotSubscribed", "inducing failure for create subscriptions")), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerNotSubscribed("NotSubscribed", "inducing failure for create subscriptions")), }}, WantCreates: []runtime.Object{ makeIngressSubscription(), @@ -1021,22 +1024,22 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription delete fails", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), makeDifferentReadySubscription()}...), WithReactors: []clientgotesting.ReactionFunc{ InduceFailure("delete", "subscriptions"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerNotSubscribed("NotSubscribed", "inducing failure for delete subscriptions"))}, + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerNotSubscribed("NotSubscribed", "inducing failure for delete subscriptions"))}, }, WantDeletes: []clientgotesting.DeleteActionImpl{{ Name: subscriptionName, @@ -1049,22 +1052,22 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription create after delete fails", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), makeDifferentReadySubscription()}...), WithReactors: []clientgotesting.ReactionFunc{ InduceFailure("create", "subscriptions"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerNotSubscribed("NotSubscribed", "inducing failure for create subscriptions")), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerNotSubscribed("NotSubscribed", "inducing failure for create subscriptions")), }}, WantDeletes: []clientgotesting.DeleteActionImpl{{ Name: subscriptionName, @@ -1080,19 +1083,19 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription not owned by Trigger", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), makeIngressSubscriptionNotOwnedByTrigger()}...), WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerSubscriberURI(subscriberURI), - WithTriggerUID(triggerUID), - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerNotSubscribed("NotSubscribed", `trigger "test-trigger" does not own subscription "test-broker-test-trigger-test-trigger-uid"`), - WithTriggerStatusSubscriberURI(subscriberURI)), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerNotSubscribed("NotSubscribed", `trigger "test-trigger" does not own subscription "test-broker-test-trigger-test-trigger-uid"`), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI)), }}, WantEvents: []string{ Eventf(corev1.EventTypeWarning, "TriggerReconcileFailed", `Trigger reconcile failed: trigger "test-trigger" does not own subscription "test-broker-test-trigger-test-trigger-uid"`), @@ -1101,23 +1104,23 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription update works", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), makeDifferentReadySubscription()}...), WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerBrokerReady(), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscriptionNotConfigured(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady()), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscriptionNotConfigured(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady()), }}, WantDeletes: []clientgotesting.DeleteActionImpl{{ Name: subscriptionName, @@ -1133,25 +1136,25 @@ func TestReconcile(t *testing.T) { Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeSubscriberAddressableAsUnstructured(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), - WithInitTriggerConditions)}...), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), + rtv1beta1.WithInitTriggerConditions)}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscriptionNotConfigured(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscriptionNotConfigured(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, WantCreates: []runtime.Object{ @@ -1162,26 +1165,26 @@ func TestReconcile(t *testing.T) { Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeSubscriberAddressableAsUnstructured(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRefAndURIReference(subscriberGVK, subscriberName, testNS, subscriberURIReference), - WithInitTriggerConditions, + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRefAndURIReference(subscriberGVK, subscriberName, testNS, subscriberURIReference), + rtv1beta1.WithInitTriggerConditions, )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRefAndURIReference(subscriberGVK, subscriberName, testNS, subscriberURIReference), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRefAndURIReference(subscriberGVK, subscriberName, testNS, subscriberURIReference), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscriptionNotConfigured(), - WithTriggerStatusSubscriberURI(subscriberResolvedTargetURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscriptionNotConfigured(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberResolvedTargetURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, WantCreates: []runtime.Object{ @@ -1192,26 +1195,26 @@ func TestReconcile(t *testing.T) { Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeSubscriberKubernetesServiceAsUnstructured(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRef(k8sServiceGVK, subscriberName, testNS), - WithInitTriggerConditions, + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRef(k8sServiceGVK, subscriberName, testNS), + rtv1beta1.WithInitTriggerConditions, )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRef(k8sServiceGVK, subscriberName, testNS), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRef(k8sServiceGVK, subscriberName, testNS), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscriptionNotConfigured(), - WithTriggerStatusSubscriberURI(k8sServiceResolvedURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscriptionNotConfigured(), + rtv1beta1.WithTriggerStatusSubscriberURI(k8sServiceResolvedURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, WantCreates: []runtime.Object{ @@ -1221,22 +1224,22 @@ func TestReconcile(t *testing.T) { Name: "Trigger has subscriber ref doesn't exist", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), - WithInitTriggerConditions, + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), + rtv1beta1.WithInitTriggerConditions, )}...), WantEvents: []string{ Eventf(corev1.EventTypeWarning, "TriggerReconcileFailed", `Trigger reconcile failed: failed to get ref &ObjectReference{Kind:Service,Namespace:test-namespace,Name:subscriber-name,UID:,APIVersion:serving.knative.dev/v1,ResourceVersion:,FieldPath:,}: services.serving.knative.dev "subscriber-name" not found`), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscriberResolvedFailed("Unable to get the Subscriber's URI", `failed to get ref &ObjectReference{Kind:Service,Namespace:test-namespace,Name:subscriber-name,UID:,APIVersion:serving.knative.dev/v1,ResourceVersion:,FieldPath:,}: services.serving.knative.dev "subscriber-name" not found`), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscriberResolvedFailed("Unable to get the Subscriber's URI", `failed to get ref &ObjectReference{Kind:Service,Namespace:test-namespace,Name:subscriber-name,UID:,APIVersion:serving.knative.dev/v1,ResourceVersion:,FieldPath:,}: services.serving.knative.dev "subscriber-name" not found`), ), }}, }, { @@ -1244,26 +1247,26 @@ func TestReconcile(t *testing.T) { Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeFalseStatusSubscription(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerNotSubscribed("testInducedError", "test induced error"), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerNotSubscribed("testInducedError", "test induced error"), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, }, { @@ -1271,26 +1274,26 @@ func TestReconcile(t *testing.T) { Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscription(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscribed(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribed(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, }, { @@ -1298,27 +1301,27 @@ func TestReconcile(t *testing.T) { Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscription(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), )}...), WantEvents: []string{ Eventf(corev1.EventTypeWarning, "TriggerReconcileFailed", "Trigger reconcile failed: propagating dependency readiness: getting the dependency: pingsources.sources.knative.dev \"test-ping-source\" not found"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), - WithTriggerBrokerReady(), - WithTriggerSubscribed(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyFailed("DependencyDoesNotExist", "Dependency does not exist: pingsources.sources.knative.dev \"test-ping-source\" not found"), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribed(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyFailed("DependencyDoesNotExist", "Dependency does not exist: pingsources.sources.knative.dev \"test-ping-source\" not found"), ), }}, }, { @@ -1327,27 +1330,27 @@ func TestReconcile(t *testing.T) { Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscription(), makeFalseStatusPingSource(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled")}, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), - WithTriggerBrokerReady(), - WithTriggerSubscribed(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyFailed("NotFound", ""), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribed(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyFailed("NotFound", ""), ), }}, }, { @@ -1356,27 +1359,27 @@ func TestReconcile(t *testing.T) { Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscription(), makeUnknownStatusCronJobSource(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled")}, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), - WithTriggerBrokerReady(), - WithTriggerSubscribed(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyUnknown("", ""), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribed(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyUnknown("", ""), ), }}, }, @@ -1386,27 +1389,27 @@ func TestReconcile(t *testing.T) { Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscription(), makeGenerationNotEqualPingSource(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled")}, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), - WithTriggerBrokerReady(), - WithTriggerSubscribed(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyUnknown("GenerationNotEqual", fmt.Sprintf("The dependency's metadata.generation, %q, is not equal to its status.observedGeneration, %q.", currentGeneration, outdatedGeneration))), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribed(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyUnknown("GenerationNotEqual", fmt.Sprintf("The dependency's metadata.generation, %q, is not equal to its status.observedGeneration, %q.", currentGeneration, outdatedGeneration))), }}, }, { @@ -1415,28 +1418,28 @@ func TestReconcile(t *testing.T) { Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscription(), makeReadyPingSource(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), - WithTriggerBrokerReady(), - WithTriggerSubscribed(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribed(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, }, { @@ -1444,10 +1447,10 @@ func TestReconcile(t *testing.T) { Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscriptionDeprecatedName(triggerNameLong, triggerUIDLong), - NewTrigger(triggerNameLong, testNS, brokerName, - WithTriggerUID(triggerUIDLong), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, + rtv1beta1.NewTrigger(triggerNameLong, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUIDLong), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, )}...), WantErr: false, WantEvents: []string{ @@ -1455,16 +1458,16 @@ func TestReconcile(t *testing.T) { Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerNameLong, testNS, brokerName, - WithTriggerUID(triggerUIDLong), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerNameLong, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUIDLong), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, WantCreates: []runtime.Object{ @@ -1487,8 +1490,8 @@ func TestReconcile(t *testing.T) { eventingClientSet: fakeeventingclient.Get(ctx), dynamicClientSet: fakedynamicclient.Get(ctx), kubeClientSet: fakekubeclient.Get(ctx), - subscriptionLister: listers.GetSubscriptionLister(), - triggerLister: listers.GetTriggerLister(), + subscriptionLister: listers.GetV1Beta1SubscriptionLister(), + triggerLister: listers.GetV1Beta1TriggerLister(), brokerLister: listers.GetBrokerLister(), serviceLister: listers.GetK8sServiceLister(), endpointsLister: listers.GetEndpointsLister(), @@ -1745,11 +1748,11 @@ func createTriggerChannelRef() *corev1.ObjectReference { } } -func makeIngressSubscription() *messagingv1alpha1.Subscription { +func makeIngressSubscription() *messagingv1beta1.Subscription { return resources.NewSubscription(makeTrigger(), createTriggerChannelRef(), makeBrokerRef(), makeServiceURI(), makeEmptyDelivery()) } -func makeIngressSubscriptionWithCustomData(triggerName, triggerUID string) *messagingv1alpha1.Subscription { +func makeIngressSubscriptionWithCustomData(triggerName, triggerUID string) *messagingv1beta1.Subscription { t := makeTrigger() t.Name = triggerName t.UID = types.UID(triggerUID) @@ -1760,10 +1763,10 @@ func makeIngressSubscriptionWithCustomData(triggerName, triggerUID string) *mess return resources.NewSubscription(t, createTriggerChannelRef(), makeBrokerRef(), uri, makeEmptyDelivery()) } -func makeTrigger() *v1alpha1.Trigger { - return &v1alpha1.Trigger{ +func makeTrigger() *v1beta1.Trigger { + return &v1beta1.Trigger{ TypeMeta: metav1.TypeMeta{ - APIVersion: "eventing.knative.dev/v1alpha1", + APIVersion: "eventing.knative.dev/v1beta1", Kind: "Trigger", }, ObjectMeta: metav1.ObjectMeta{ @@ -1771,13 +1774,10 @@ func makeTrigger() *v1alpha1.Trigger { Name: triggerName, UID: triggerUID, }, - Spec: v1alpha1.TriggerSpec{ + Spec: v1beta1.TriggerSpec{ Broker: brokerName, - Filter: &v1alpha1.TriggerFilter{ - DeprecatedSourceAndType: &v1alpha1.TriggerFilterSourceAndType{ - Source: "Any", - Type: "Any", - }, + Filter: &v1beta1.TriggerFilter{ + Attributes: map[string]string{"Source": "Any", "Type": "Any"}, }, Subscriber: duckv1.Destination{ Ref: &duckv1.KReference{ @@ -1868,31 +1868,31 @@ func allBrokerObjectsReadyPlus(objs ...runtime.Object) []runtime.Object { } // Just so we can test subscription updates -func makeDifferentReadySubscription() *messagingv1alpha1.Subscription { +func makeDifferentReadySubscription() *messagingv1beta1.Subscription { s := makeIngressSubscription() s.Spec.Subscriber.URI = apis.HTTP("different.example.com") - s.Status = *v1alpha1.TestHelper.ReadySubscriptionStatus() + s.Status = *v1beta1.TestHelper.ReadySubscriptionStatus() return s } -func makeIngressSubscriptionNotOwnedByTrigger() *messagingv1alpha1.Subscription { +func makeIngressSubscriptionNotOwnedByTrigger() *messagingv1beta1.Subscription { sub := makeIngressSubscription() sub.OwnerReferences = []metav1.OwnerReference{} return sub } -func makeReadySubscription() *messagingv1alpha1.Subscription { +func makeReadySubscription() *messagingv1beta1.Subscription { s := makeIngressSubscription() - s.Status = *v1alpha1.TestHelper.ReadySubscriptionStatus() + s.Status = *v1beta1.TestHelper.ReadySubscriptionStatus() return s } -func makeReadySubscriptionDeprecatedName(triggerName, triggerUID string) *messagingv1alpha1.Subscription { +func makeReadySubscriptionDeprecatedName(triggerName, triggerUID string) *messagingv1beta1.Subscription { s := makeIngressSubscription() - t := NewTrigger(triggerName, testNS, brokerName) + t := rtv1beta1.NewTrigger(triggerName, testNS, brokerName) t.UID = types.UID(triggerUID) s.Name = utils.GenerateFixedName(t, fmt.Sprintf("%s-%s", brokerName, triggerName)) - s.Status = *v1alpha1.TestHelper.ReadySubscriptionStatus() + s.Status = *v1beta1.TestHelper.ReadySubscriptionStatus() return s } @@ -1914,9 +1914,9 @@ func makeSubscriberAddressableAsUnstructured() *unstructured.Unstructured { } } -func makeFalseStatusSubscription() *messagingv1alpha1.Subscription { +func makeFalseStatusSubscription() *messagingv1beta1.Subscription { s := makeIngressSubscription() - s.Status = *v1alpha1.TestHelper.FalseSubscriptionStatus() + s.Status.MarkReferencesNotResolved("testInducedError", "test induced error") return s } diff --git a/pkg/reconciler/broker/controller.go b/pkg/reconciler/broker/controller.go index 6becbb67024..ef399f90562 100644 --- a/pkg/reconciler/broker/controller.go +++ b/pkg/reconciler/broker/controller.go @@ -31,10 +31,11 @@ import ( "knative.dev/eventing/pkg/apis/eventing" "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - "knative.dev/eventing/pkg/client/injection/ducks/duck/v1alpha1/channelable" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" + "knative.dev/eventing/pkg/client/injection/ducks/duck/v1beta1/channelable" brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/broker" - triggerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/trigger" - subscriptioninformer "knative.dev/eventing/pkg/client/injection/informers/messaging/v1alpha1/subscription" + triggerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger" + subscriptioninformer "knative.dev/eventing/pkg/client/injection/informers/messaging/v1beta1/subscription" brokerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/broker" "knative.dev/eventing/pkg/duck" "knative.dev/pkg/client/injection/ducks/duck/v1/addressable" @@ -139,7 +140,7 @@ func NewController( triggerInformer.Informer().AddEventHandler(controller.HandleAll( func(obj interface{}) { - if trigger, ok := obj.(*v1alpha1.Trigger); ok { + if trigger, ok := obj.(*v1beta1.Trigger); ok { impl.EnqueueKey(types.NamespacedName{Namespace: trigger.Namespace, Name: trigger.Spec.Broker}) } }, diff --git a/pkg/reconciler/broker/controller_test.go b/pkg/reconciler/broker/controller_test.go index 8f1264985fa..6a13179746d 100644 --- a/pkg/reconciler/broker/controller_test.go +++ b/pkg/reconciler/broker/controller_test.go @@ -24,9 +24,10 @@ import ( . "knative.dev/pkg/reconciler/testing" // Fake injection informers - _ "knative.dev/eventing/pkg/client/injection/ducks/duck/v1alpha1/channelable/fake" + _ "knative.dev/eventing/pkg/client/injection/ducks/duck/v1beta1/channelable/fake" _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/broker/fake" - _ "knative.dev/eventing/pkg/client/injection/informers/messaging/v1alpha1/subscription/fake" + _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger/fake" + _ "knative.dev/eventing/pkg/client/injection/informers/messaging/v1beta1/subscription/fake" _ "knative.dev/pkg/client/injection/ducks/duck/v1/addressable/fake" _ "knative.dev/pkg/client/injection/ducks/duck/v1/conditions/fake" _ "knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment/fake" diff --git a/pkg/reconciler/broker/resources/subscription.go b/pkg/reconciler/broker/resources/subscription.go index 12118c1fb39..09dd2dfc775 100644 --- a/pkg/reconciler/broker/resources/subscription.go +++ b/pkg/reconciler/broker/resources/subscription.go @@ -24,17 +24,17 @@ import ( "knative.dev/pkg/apis" "knative.dev/pkg/kmeta" - duckv1alpha1 "knative.dev/eventing/pkg/apis/duck/v1alpha1" duckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1" "knative.dev/eventing/pkg/apis/eventing" "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - messagingv1alpha1 "knative.dev/eventing/pkg/apis/messaging/v1alpha1" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" + messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" duckv1 "knative.dev/pkg/apis/duck/v1" ) // MakeSubscription returns a placeholder subscription for broker 'b', channelable 'c', and service 'svc'. -func MakeSubscription(b *v1alpha1.Broker, c *duckv1alpha1.Channelable, svc *corev1.Service) *messagingv1alpha1.Subscription { - return &messagingv1alpha1.Subscription{ +func MakeSubscription(b *v1alpha1.Broker, c *duckv1beta1.Channelable, svc *corev1.Service) *messagingv1beta1.Subscription { + return &messagingv1beta1.Subscription{ ObjectMeta: metav1.ObjectMeta{ Namespace: b.Namespace, Name: kmeta.ChildName(fmt.Sprintf("internal-ingress-%s", b.Name), string(b.GetUID())), @@ -43,7 +43,7 @@ func MakeSubscription(b *v1alpha1.Broker, c *duckv1alpha1.Channelable, svc *core }, Labels: ingressSubscriptionLabels(b.Name), }, - Spec: messagingv1alpha1.SubscriptionSpec{ + Spec: messagingv1beta1.SubscriptionSpec{ Channel: corev1.ObjectReference{ APIVersion: c.APIVersion, Kind: c.Kind, @@ -70,8 +70,8 @@ func ingressSubscriptionLabels(brokerName string) map[string]string { // NewSubscription returns a placeholder subscription for trigger 't', from brokerTrigger to 'uri' // replying to brokerIngress. -func NewSubscription(t *v1alpha1.Trigger, brokerTrigger, brokerRef *corev1.ObjectReference, uri *apis.URL, delivery *duckv1beta1.DeliverySpec) *messagingv1alpha1.Subscription { - return &messagingv1alpha1.Subscription{ +func NewSubscription(t *v1beta1.Trigger, brokerTrigger, brokerRef *corev1.ObjectReference, uri *apis.URL, delivery *duckv1beta1.DeliverySpec) *messagingv1beta1.Subscription { + return &messagingv1beta1.Subscription{ ObjectMeta: metav1.ObjectMeta{ Namespace: t.Namespace, Name: kmeta.ChildName(fmt.Sprintf("%s-%s-", t.Spec.Broker, t.Name), string(t.GetUID())), @@ -80,7 +80,7 @@ func NewSubscription(t *v1alpha1.Trigger, brokerTrigger, brokerRef *corev1.Objec }, Labels: SubscriptionLabels(t), }, - Spec: messagingv1alpha1.SubscriptionSpec{ + Spec: messagingv1beta1.SubscriptionSpec{ Channel: corev1.ObjectReference{ APIVersion: brokerTrigger.APIVersion, Kind: brokerTrigger.Kind, @@ -104,7 +104,7 @@ func NewSubscription(t *v1alpha1.Trigger, brokerTrigger, brokerRef *corev1.Objec // SubscriptionLabels generates the labels present on the Subscription linking this Trigger to the // Broker's Channels. -func SubscriptionLabels(t *v1alpha1.Trigger) map[string]string { +func SubscriptionLabels(t *v1beta1.Trigger) map[string]string { return map[string]string{ eventing.BrokerLabelKey: t.Spec.Broker, "eventing.knative.dev/trigger": t.Name, diff --git a/pkg/reconciler/broker/resources/subscription_test.go b/pkg/reconciler/broker/resources/subscription_test.go index 493dc220d37..8180da84c72 100644 --- a/pkg/reconciler/broker/resources/subscription_test.go +++ b/pkg/reconciler/broker/resources/subscription_test.go @@ -23,11 +23,11 @@ import ( "github.com/google/go-cmp/cmp" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - duckv1alpha1 "knative.dev/eventing/pkg/apis/duck/v1alpha1" duckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1" "knative.dev/eventing/pkg/apis/eventing" "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - messagingv1alpha1 "knative.dev/eventing/pkg/apis/messaging/v1alpha1" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" + messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" "knative.dev/pkg/apis" duckv1 "knative.dev/pkg/apis/duck/v1" "knative.dev/pkg/kmeta" @@ -35,12 +35,12 @@ import ( func TestMakeSubscription(t *testing.T) { testCases := map[string]struct { - channelable duckv1alpha1.Channelable + channelable duckv1beta1.Channelable }{ "InMemoryChannel": { - channelable: duckv1alpha1.Channelable{ + channelable: duckv1beta1.Channelable{ TypeMeta: metav1.TypeMeta{ - APIVersion: "messaging.knative.dev/v1alpha1", + APIVersion: "messaging.knative.dev/v1beta1", Kind: "InMemoryChannel", }, ObjectMeta: metav1.ObjectMeta{ @@ -49,9 +49,9 @@ func TestMakeSubscription(t *testing.T) { }, }, "KafkaChannel": { - channelable: duckv1alpha1.Channelable{ + channelable: duckv1beta1.Channelable{ TypeMeta: metav1.TypeMeta{ - APIVersion: "messaging.knative.dev/v1alpha1", + APIVersion: "messaging.knative.dev/v1beta1", Kind: "KafkaChannel", }, ObjectMeta: metav1.ObjectMeta{ @@ -105,13 +105,13 @@ func TestMakeSubscription(t *testing.T) { func TestNewSubscription(t *testing.T) { var TrueValue = true - trigger := &v1alpha1.Trigger{ + trigger := &v1beta1.Trigger{ ObjectMeta: metav1.ObjectMeta{ Namespace: "t-namespace", Name: "t-name-is-a-long-name", UID: "cafed00d-cafed00d-cafed00d-cafed00d", }, - Spec: v1alpha1.TriggerSpec{ + Spec: v1beta1.TriggerSpec{ Broker: "broker-name", }, } @@ -132,12 +132,12 @@ func TestNewSubscription(t *testing.T) { }, } got := NewSubscription(trigger, triggerChannelRef, brokerRef, apis.HTTP("example.com"), delivery) - want := &messagingv1alpha1.Subscription{ + want := &messagingv1beta1.Subscription{ ObjectMeta: metav1.ObjectMeta{ Namespace: "t-namespace", Name: kmeta.ChildName(fmt.Sprintf("%s-%s-", "broker-name", "t-name-is-a-long-name"), "cafed00d-cafed00d-cafed00d-cafed00d"), OwnerReferences: []metav1.OwnerReference{{ - APIVersion: "eventing.knative.dev/v1alpha1", + APIVersion: "eventing.knative.dev/v1beta1", Kind: "Trigger", Name: "t-name-is-a-long-name", UID: "cafed00d-cafed00d-cafed00d-cafed00d", @@ -149,7 +149,7 @@ func TestNewSubscription(t *testing.T) { "eventing.knative.dev/trigger": "t-name-is-a-long-name", }, }, - Spec: messagingv1alpha1.SubscriptionSpec{ + Spec: messagingv1beta1.SubscriptionSpec{ Channel: corev1.ObjectReference{ Name: "tc-name", Kind: "tc-kind", diff --git a/pkg/reconciler/broker/trigger.go b/pkg/reconciler/broker/trigger.go index 5d6a5e5316e..c5a5fddd576 100644 --- a/pkg/reconciler/broker/trigger.go +++ b/pkg/reconciler/broker/trigger.go @@ -30,7 +30,8 @@ import ( "knative.dev/pkg/controller" "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - messagingv1alpha1 "knative.dev/eventing/pkg/apis/messaging/v1alpha1" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" + messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" "knative.dev/eventing/pkg/logging" "knative.dev/eventing/pkg/reconciler/broker/resources" "knative.dev/eventing/pkg/reconciler/names" @@ -52,7 +53,7 @@ const ( subscriptionDeleted = "SubscriptionDeleted" ) -func (r *Reconciler) reconcileTrigger(ctx context.Context, b *v1alpha1.Broker, t *v1alpha1.Trigger, filterSvc kmeta.Accessor) error { +func (r *Reconciler) reconcileTrigger(ctx context.Context, b *v1alpha1.Broker, t *v1beta1.Trigger, filterSvc kmeta.Accessor) error { t.Status.InitializeConditions() if t.DeletionTimestamp != nil { @@ -60,7 +61,7 @@ func (r *Reconciler) reconcileTrigger(ctx context.Context, b *v1alpha1.Broker, t return nil } - t.Status.PropagateBrokerStatus(&b.Status) + t.Status.PropagateBrokerCondition(b.Status.GetTopLevelCondition()) brokerTrigger := b.Status.TriggerChannel if brokerTrigger == nil { @@ -90,7 +91,7 @@ func (r *Reconciler) reconcileTrigger(ctx context.Context, b *v1alpha1.Broker, t t.Status.MarkNotSubscribed("NotSubscribed", "%v", err) return err } - t.Status.PropagateSubscriptionStatus(&sub.Status) + t.Status.PropagateSubscriptionCondition(sub.Status.GetTopLevelCondition()) if err := r.checkDependencyAnnotation(ctx, t, b); err != nil { return err @@ -100,7 +101,7 @@ func (r *Reconciler) reconcileTrigger(ctx context.Context, b *v1alpha1.Broker, t } // subscribeToBrokerChannel subscribes service 'svc' to the Broker's channels. -func (r *Reconciler) subscribeToBrokerChannel(ctx context.Context, b *v1alpha1.Broker, t *v1alpha1.Trigger, brokerTrigger *corev1.ObjectReference, svc kmeta.Accessor) (*messagingv1alpha1.Subscription, error) { +func (r *Reconciler) subscribeToBrokerChannel(ctx context.Context, b *v1alpha1.Broker, t *v1beta1.Trigger, brokerTrigger *corev1.ObjectReference, svc kmeta.Accessor) (*messagingv1beta1.Subscription, error) { if svc == nil { return nil, fmt.Errorf("service for broker is nil") } @@ -126,14 +127,14 @@ func (r *Reconciler) subscribeToBrokerChannel(ctx context.Context, b *v1alpha1.B // Issue #2842: Subscription name uses kmeta.ChildName. If a subscription by the previous name pattern is found, it should // be deleted. This might cause temporary downtime. if deprecatedName := utils.GenerateFixedName(t, fmt.Sprintf("%s-%s", t.Spec.Broker, t.Name)); deprecatedName != expected.Name { - if err := r.eventingClientSet.MessagingV1alpha1().Subscriptions(t.Namespace).Delete(deprecatedName, &metav1.DeleteOptions{}); err != nil && !apierrs.IsNotFound(err) { + if err := r.eventingClientSet.MessagingV1beta1().Subscriptions(t.Namespace).Delete(deprecatedName, &metav1.DeleteOptions{}); err != nil && !apierrs.IsNotFound(err) { return nil, fmt.Errorf("error deleting deprecated named subscription: %v", err) } controller.GetEventRecorder(ctx).Eventf(t, corev1.EventTypeNormal, subscriptionDeleted, "Deprecated subscription removed: \"%s/%s\"", t.Namespace, deprecatedName) } logging.FromContext(ctx).Info("Creating subscription") - sub, err = r.eventingClientSet.MessagingV1alpha1().Subscriptions(t.Namespace).Create(expected) + sub, err = r.eventingClientSet.MessagingV1beta1().Subscriptions(t.Namespace).Create(expected) if err != nil { controller.GetEventRecorder(ctx).Eventf(t, corev1.EventTypeWarning, subscriptionCreateFailed, "Create Trigger's subscription failed: %v", err) return nil, err @@ -144,7 +145,7 @@ func (r *Reconciler) subscribeToBrokerChannel(ctx context.Context, b *v1alpha1.B controller.GetEventRecorder(ctx).Eventf(t, corev1.EventTypeWarning, subscriptionGetFailed, "Getting the Trigger's Subscription failed: %v", err) return nil, err } else if !metav1.IsControlledBy(sub, t) { - t.Status.MarkSubscriptionNotOwned(sub) + t.Status.MarkNotSubscribed("SubscriptionNotOwnedByTrigger", "trigger %q does not own subscription %q", t.Name, sub.Name) return nil, fmt.Errorf("trigger %q does not own subscription %q", t.Name, sub.Name) } else if sub, err = r.reconcileSubscription(ctx, t, expected, sub); err != nil { logging.FromContext(ctx).Error("Failed to reconcile subscription", zap.Error(err)) @@ -154,9 +155,8 @@ func (r *Reconciler) subscribeToBrokerChannel(ctx context.Context, b *v1alpha1.B return sub, nil } -func (r *Reconciler) reconcileSubscription(ctx context.Context, t *v1alpha1.Trigger, expected, actual *messagingv1alpha1.Subscription) (*messagingv1alpha1.Subscription, error) { +func (r *Reconciler) reconcileSubscription(ctx context.Context, t *v1beta1.Trigger, expected, actual *messagingv1beta1.Subscription) (*messagingv1beta1.Subscription, error) { // Update Subscription if it has changed. Ignore the generation. - expected.Spec.DeprecatedGeneration = actual.Spec.DeprecatedGeneration if equality.Semantic.DeepDerivative(expected.Spec, actual.Spec) { return actual, nil } @@ -165,14 +165,14 @@ func (r *Reconciler) reconcileSubscription(ctx context.Context, t *v1alpha1.Trig // Given that spec.channel is immutable, we cannot just update the Subscription. We delete // it and re-create it instead. logging.FromContext(ctx).Info("Deleting subscription", zap.String("namespace", actual.Namespace), zap.String("name", actual.Name)) - err := r.eventingClientSet.MessagingV1alpha1().Subscriptions(t.Namespace).Delete(actual.Name, &metav1.DeleteOptions{}) + err := r.eventingClientSet.MessagingV1beta1().Subscriptions(t.Namespace).Delete(actual.Name, &metav1.DeleteOptions{}) if err != nil { logging.FromContext(ctx).Info("Cannot delete subscription", zap.Error(err)) controller.GetEventRecorder(ctx).Eventf(t, corev1.EventTypeWarning, subscriptionDeleteFailed, "Delete Trigger's subscription failed: %v", err) return nil, err } logging.FromContext(ctx).Info("Creating subscription") - newSub, err := r.eventingClientSet.MessagingV1alpha1().Subscriptions(t.Namespace).Create(expected) + newSub, err := r.eventingClientSet.MessagingV1beta1().Subscriptions(t.Namespace).Create(expected) if err != nil { logging.FromContext(ctx).Info("Cannot create subscription", zap.Error(err)) controller.GetEventRecorder(ctx).Eventf(t, corev1.EventTypeWarning, subscriptionCreateFailed, "Create Trigger's subscription failed: %v", err) @@ -181,7 +181,7 @@ func (r *Reconciler) reconcileSubscription(ctx context.Context, t *v1alpha1.Trig return newSub, nil } -func (r *Reconciler) updateTriggerStatus(ctx context.Context, desired *v1alpha1.Trigger) (*v1alpha1.Trigger, error) { +func (r *Reconciler) updateTriggerStatus(ctx context.Context, desired *v1beta1.Trigger) (*v1beta1.Trigger, error) { trigger, err := r.triggerLister.Triggers(desired.Namespace).Get(desired.Name) if err != nil { return nil, err @@ -195,12 +195,12 @@ func (r *Reconciler) updateTriggerStatus(ctx context.Context, desired *v1alpha1. existing := trigger.DeepCopy() existing.Status = desired.Status - return r.eventingClientSet.EventingV1alpha1().Triggers(desired.Namespace).UpdateStatus(existing) + return r.eventingClientSet.EventingV1beta1().Triggers(desired.Namespace).UpdateStatus(existing) } -func (r *Reconciler) checkDependencyAnnotation(ctx context.Context, t *v1alpha1.Trigger, b *v1alpha1.Broker) error { - if dependencyAnnotation, ok := t.GetAnnotations()[v1alpha1.DependencyAnnotation]; ok { - dependencyObjRef, err := v1alpha1.GetObjRefFromDependencyAnnotation(dependencyAnnotation) +func (r *Reconciler) checkDependencyAnnotation(ctx context.Context, t *v1beta1.Trigger, b *v1alpha1.Broker) error { + if dependencyAnnotation, ok := t.GetAnnotations()[v1beta1.DependencyAnnotation]; ok { + dependencyObjRef, err := v1beta1.GetObjRefFromDependencyAnnotation(dependencyAnnotation) if err != nil { t.Status.MarkDependencyFailed("ReferenceError", "Unable to unmarshal objectReference from dependency annotation of trigger: %v", err) return fmt.Errorf("getting object ref from dependency annotation %q: %v", dependencyAnnotation, err) @@ -219,7 +219,7 @@ func (r *Reconciler) checkDependencyAnnotation(ctx context.Context, t *v1alpha1. return nil } -func (r *Reconciler) propagateDependencyReadiness(ctx context.Context, t *v1alpha1.Trigger, dependencyObjRef corev1.ObjectReference) error { +func (r *Reconciler) propagateDependencyReadiness(ctx context.Context, t *v1beta1.Trigger, dependencyObjRef corev1.ObjectReference) error { lister, err := r.kresourceTracker.ListerFor(dependencyObjRef) if err != nil { t.Status.MarkDependencyUnknown("ListerDoesNotExist", "Failed to retrieve lister: %v", err) diff --git a/pkg/reconciler/mtbroker/broker.go b/pkg/reconciler/mtbroker/broker.go index 9aab77c71a3..5449d52791f 100644 --- a/pkg/reconciler/mtbroker/broker.go +++ b/pkg/reconciler/mtbroker/broker.go @@ -33,6 +33,7 @@ import ( corev1listers "k8s.io/client-go/listers/core/v1" "k8s.io/client-go/tools/record" + duckv1alpha1 "knative.dev/eventing/pkg/apis/duck/v1alpha1" duckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1" "knative.dev/eventing/pkg/apis/eventing" "knative.dev/eventing/pkg/apis/eventing/v1alpha1" @@ -40,12 +41,15 @@ import ( clientset "knative.dev/eventing/pkg/client/clientset/versioned" brokerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/broker" eventinglisters "knative.dev/eventing/pkg/client/listers/eventing/v1alpha1" + eventingv1beta1listers "knative.dev/eventing/pkg/client/listers/eventing/v1beta1" messaginglisters "knative.dev/eventing/pkg/client/listers/messaging/v1beta1" "knative.dev/eventing/pkg/duck" "knative.dev/eventing/pkg/reconciler/mtbroker/resources" "knative.dev/eventing/pkg/reconciler/names" "knative.dev/pkg/apis" duckapis "knative.dev/pkg/apis/duck" + pkgduckv1alpha1 "knative.dev/pkg/apis/duck/v1alpha1" + pkgduckv1beta1 "knative.dev/pkg/apis/duck/v1beta1" "knative.dev/pkg/logging" pkgreconciler "knative.dev/pkg/reconciler" "knative.dev/pkg/resolver" @@ -66,7 +70,7 @@ type Reconciler struct { brokerLister eventinglisters.BrokerLister endpointsLister corev1listers.EndpointsLister subscriptionLister messaginglisters.SubscriptionLister - triggerLister eventinglisters.TriggerLister + triggerLister eventingv1beta1listers.TriggerLister channelableTracker duck.ListableTracker @@ -164,7 +168,9 @@ func (r *Reconciler) reconcileKind(ctx context.Context, b *v1alpha1.Broker) pkgr return nil } b.Status.TriggerChannel = &chanMan.ref - b.Status.PropagateTriggerChannelReadiness(&triggerChan.Status) + + channelStatus := &duckv1alpha1.ChannelableStatus{AddressStatus: pkgduckv1alpha1.AddressStatus{Address: &pkgduckv1alpha1.Addressable{Addressable: pkgduckv1beta1.Addressable{URL: triggerChan.Status.Address.URL}}}} + b.Status.PropagateTriggerChannelReadiness(channelStatus) filterEndpoints, err := r.endpointsLister.Endpoints(system.Namespace()).Get(names.BrokerFilterName) if err != nil { @@ -322,12 +328,6 @@ func TriggerChannelLabels(brokerName string) map[string]string { // reconcileTriggers reconciles the Triggers that are pointed to this broker func (r *Reconciler) reconcileTriggers(ctx context.Context, b *v1alpha1.Broker) error { - - // TODO: Figure out the labels stuff... If webhook does it, we can filter like this... - // Find all the Triggers that have been labeled as belonging to me - /* - triggers, err := r.triggerLister.Triggers(b.Namespace).List(labels.SelectorFromSet(brokerLabels(b.brokerClass))) - */ triggers, err := r.triggerLister.Triggers(b.Namespace).List(labels.Everything()) if err != nil { return err @@ -352,14 +352,6 @@ func (r *Reconciler) reconcileTriggers(ctx context.Context, b *v1alpha1.Broker) return nil } -/* TODO: Enable once we start filtering by classes of brokers -func brokerLabels(name string) map[string]string { - return map[string]string{ - brokerAnnotationKey: name, - } -} -*/ - func (r *Reconciler) propagateBrokerStatusToTriggers(ctx context.Context, namespace, name string, bs *v1alpha1.BrokerStatus) error { triggers, err := r.triggerLister.Triggers(namespace).List(labels.Everything()) if err != nil { @@ -373,7 +365,7 @@ func (r *Reconciler) propagateBrokerStatusToTriggers(ctx context.Context, namesp if bs == nil { trigger.Status.MarkBrokerFailed("BrokerDoesNotExist", "Broker %q does not exist", name) } else { - trigger.Status.PropagateBrokerStatus(bs) + trigger.Status.PropagateBrokerCondition(bs.GetTopLevelCondition()) } if _, updateStatusErr := r.updateTriggerStatus(ctx, trigger); updateStatusErr != nil { logging.FromContext(ctx).Errorw("Failed to update Trigger status", zap.Error(updateStatusErr)) diff --git a/pkg/reconciler/mtbroker/broker_test.go b/pkg/reconciler/mtbroker/broker_test.go index db9cd98e0eb..9d217a77f59 100644 --- a/pkg/reconciler/mtbroker/broker_test.go +++ b/pkg/reconciler/mtbroker/broker_test.go @@ -32,10 +32,11 @@ import ( eventingduckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1" "knative.dev/eventing/pkg/apis/eventing" "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - messagingv1alpha1 "knative.dev/eventing/pkg/apis/messaging/v1alpha1" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" + messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" sourcesv1alpha2 "knative.dev/eventing/pkg/apis/sources/v1alpha2" fakeeventingclient "knative.dev/eventing/pkg/client/injection/client/fake" - "knative.dev/eventing/pkg/client/injection/ducks/duck/v1alpha1/channelable" + "knative.dev/eventing/pkg/client/injection/ducks/duck/v1beta1/channelable" "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/broker" "knative.dev/eventing/pkg/duck" "knative.dev/eventing/pkg/reconciler/mtbroker/resources" @@ -54,8 +55,9 @@ import ( logtesting "knative.dev/pkg/logging/testing" "knative.dev/pkg/resolver" - _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/trigger/fake" + _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger/fake" . "knative.dev/eventing/pkg/reconciler/testing" + rtv1beta1 "knative.dev/eventing/pkg/reconciler/testing/v1beta1" _ "knative.dev/pkg/client/injection/ducks/duck/v1/addressable/fake" . "knative.dev/pkg/reconciler/testing" ) @@ -133,6 +135,7 @@ var ( func init() { // Add types to scheme _ = v1alpha1.AddToScheme(scheme.Scheme) + _ = v1beta1.AddToScheme(scheme.Scheme) _ = duckv1alpha1.AddToScheme(scheme.Scheme) } @@ -343,22 +346,22 @@ func TestReconcile(t *testing.T) { NewEndpoints(ingressServiceName, systemNS, WithEndpointsLabels(IngressLabels()), WithEndpointsAddresses(corev1.EndpointAddress{IP: "127.0.0.1"})), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), }, WantCreates: []runtime.Object{ makeFilterSubscription(), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithTriggerBrokerReady(), - WithTriggerDependencyReady(), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), - WithTriggerStatusSubscriberURI(subscriberURI)), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerDependencyReady(), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI)), }, { Object: NewBroker(brokerName, testNS, WithBrokerClass(eventing.MTChannelBrokerClassValue), @@ -381,26 +384,26 @@ func TestReconcile(t *testing.T) { NewBroker(brokerName, testNS, WithBrokerClass(eventing.MTChannelBrokerClassValue), WithInitBrokerConditions), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerDependencyReady(), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), - WithTriggerStatusSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerDependencyReady(), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI)), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerDependencyReady(), - WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), - WithTriggerBrokerFailed("ChannelTemplateFailed", "Error on setting up the ChannelTemplate: Broker.Spec.ChannelTemplate is nil"), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerStatusSubscriberURI(subscriberURI)), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerDependencyReady(), + rtv1beta1.WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), + rtv1beta1.WithTriggerBrokerFailed("ChannelTemplateFailed", "Error on setting up the ChannelTemplate: Broker.Spec.ChannelTemplate is nil"), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI)), }, { Object: NewBroker(brokerName, testNS, WithBrokerClass(eventing.MTChannelBrokerClassValue), @@ -426,16 +429,16 @@ func TestReconcile(t *testing.T) { WithBrokerFinalizers("brokers.eventing.knative.dev"), WithBrokerResourceVersion(""), WithBrokerDeletionTimestamp), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerBrokerFailed("BrokerDoesNotExist", `Broker "test-broker" does not exist`)), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerFailed("BrokerDoesNotExist", `Broker "test-broker" does not exist`)), }}, WantPatches: []clientgotesting.PatchActionImpl{ patchRemoveFinalizers(testNS, brokerName), @@ -455,19 +458,19 @@ func TestReconcile(t *testing.T) { WithBrokerFinalizers("brokers.eventing.knative.dev"), WithBrokerResourceVersion(""), WithBrokerDeletionTimestamp), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), }, WithReactors: []clientgotesting.ReactionFunc{ InduceFailure("update", "triggers"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerBrokerFailed("BrokerDoesNotExist", `Broker "test-broker" does not exist`)), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerFailed("BrokerDoesNotExist", `Broker "test-broker" does not exist`)), }}, WantEvents: []string{ Eventf(corev1.EventTypeWarning, "TriggerUpdateStatusFailed", `Failed to update Trigger's status: inducing failure for update triggers`), @@ -478,16 +481,16 @@ func TestReconcile(t *testing.T) { Name: "Trigger being deleted", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerDeleted, - WithTriggerSubscriberURI(subscriberURI))}...), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerDeleted, + rtv1beta1.WithTriggerSubscriberURI(subscriberURI))}...), WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerDeleted, - WithInitTriggerConditions, - WithTriggerSubscriberURI(subscriberURI)), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerDeleted, + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), }}, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), @@ -496,22 +499,22 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription create fails", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI))}...), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI))}...), WithReactors: []clientgotesting.ReactionFunc{ InduceFailure("create", "subscriptions"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerNotSubscribed("NotSubscribed", "inducing failure for create subscriptions")), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerNotSubscribed("NotSubscribed", "inducing failure for create subscriptions")), }}, WantCreates: []runtime.Object{ makeFilterSubscription(), @@ -524,23 +527,23 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription create fails, update status fails", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI))}...), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI))}...), WithReactors: []clientgotesting.ReactionFunc{ InduceFailure("create", "subscriptions"), InduceFailure("update", "triggers"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerNotSubscribed("NotSubscribed", "inducing failure for create subscriptions")), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerNotSubscribed("NotSubscribed", "inducing failure for create subscriptions")), }}, WantCreates: []runtime.Object{ makeFilterSubscription(), @@ -554,22 +557,22 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription delete fails", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), makeDifferentReadySubscription()}...), WithReactors: []clientgotesting.ReactionFunc{ InduceFailure("delete", "subscriptions"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerNotSubscribed("NotSubscribed", "inducing failure for delete subscriptions"))}, + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerNotSubscribed("NotSubscribed", "inducing failure for delete subscriptions"))}, }, WantDeletes: []clientgotesting.DeleteActionImpl{{ Name: subscriptionName, @@ -582,22 +585,22 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription create after delete fails", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), makeDifferentReadySubscription()}...), WithReactors: []clientgotesting.ReactionFunc{ InduceFailure("create", "subscriptions"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerNotSubscribed("NotSubscribed", "inducing failure for create subscriptions")), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerNotSubscribed("NotSubscribed", "inducing failure for create subscriptions")), }}, WantDeletes: []clientgotesting.DeleteActionImpl{{ Name: subscriptionName, @@ -613,19 +616,19 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription not owned by Trigger", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), makeFilterSubscriptionNotOwnedByTrigger()}...), WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerSubscriberURI(subscriberURI), - WithTriggerUID(triggerUID), - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerNotSubscribed("NotSubscribed", `trigger "test-trigger" does not own subscription "test-broker-test-trigger-test-trigger-uid"`), - WithTriggerStatusSubscriberURI(subscriberURI)), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerNotSubscribed("NotSubscribed", `trigger "test-trigger" does not own subscription "test-broker-test-trigger-test-trigger-uid"`), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI)), }}, WantEvents: []string{ Eventf(corev1.EventTypeWarning, "TriggerReconcileFailed", `Trigger reconcile failed: trigger "test-trigger" does not own subscription "test-broker-test-trigger-test-trigger-uid"`), @@ -634,23 +637,23 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription update works", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI)), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI)), makeDifferentReadySubscription()}...), WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithTriggerBrokerReady(), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscriptionNotConfigured(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady()), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscriptionNotConfigured(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady()), }}, WantDeletes: []clientgotesting.DeleteActionImpl{{ Name: subscriptionName, @@ -666,25 +669,25 @@ func TestReconcile(t *testing.T) { Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeSubscriberAddressableAsUnstructured(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), - WithInitTriggerConditions)}...), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), + rtv1beta1.WithInitTriggerConditions)}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscriptionNotConfigured(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscriptionNotConfigured(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, WantCreates: []runtime.Object{ @@ -695,26 +698,26 @@ func TestReconcile(t *testing.T) { Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeSubscriberAddressableAsUnstructured(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRefAndURIReference(subscriberGVK, subscriberName, testNS, subscriberURIReference), - WithInitTriggerConditions, + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRefAndURIReference(subscriberGVK, subscriberName, testNS, subscriberURIReference), + rtv1beta1.WithInitTriggerConditions, )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRefAndURIReference(subscriberGVK, subscriberName, testNS, subscriberURIReference), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRefAndURIReference(subscriberGVK, subscriberName, testNS, subscriberURIReference), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscriptionNotConfigured(), - WithTriggerStatusSubscriberURI(subscriberResolvedTargetURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscriptionNotConfigured(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberResolvedTargetURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, WantCreates: []runtime.Object{ @@ -725,26 +728,26 @@ func TestReconcile(t *testing.T) { Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeSubscriberKubernetesServiceAsUnstructured(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRef(k8sServiceGVK, subscriberName, testNS), - WithInitTriggerConditions, + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRef(k8sServiceGVK, subscriberName, testNS), + rtv1beta1.WithInitTriggerConditions, )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRef(k8sServiceGVK, subscriberName, testNS), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRef(k8sServiceGVK, subscriberName, testNS), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscriptionNotConfigured(), - WithTriggerStatusSubscriberURI(k8sServiceResolvedURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscriptionNotConfigured(), + rtv1beta1.WithTriggerStatusSubscriberURI(k8sServiceResolvedURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, WantCreates: []runtime.Object{ @@ -754,22 +757,22 @@ func TestReconcile(t *testing.T) { Name: "Trigger has subscriber ref doesn't exist", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), - WithInitTriggerConditions, + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), + rtv1beta1.WithInitTriggerConditions, )}...), WantEvents: []string{ Eventf(corev1.EventTypeWarning, "TriggerReconcileFailed", `Trigger reconcile failed: failed to get ref &ObjectReference{Kind:Service,Namespace:test-namespace,Name:subscriber-name,UID:,APIVersion:serving.knative.dev/v1,ResourceVersion:,FieldPath:,}: services.serving.knative.dev "subscriber-name" not found`), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscriberResolvedFailed("Unable to get the Subscriber's URI", `failed to get ref &ObjectReference{Kind:Service,Namespace:test-namespace,Name:subscriber-name,UID:,APIVersion:serving.knative.dev/v1,ResourceVersion:,FieldPath:,}: services.serving.knative.dev "subscriber-name" not found`), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscriberResolvedFailed("Unable to get the Subscriber's URI", `failed to get ref &ObjectReference{Kind:Service,Namespace:test-namespace,Name:subscriber-name,UID:,APIVersion:serving.knative.dev/v1,ResourceVersion:,FieldPath:,}: services.serving.knative.dev "subscriber-name" not found`), ), }}, }, { @@ -777,26 +780,26 @@ func TestReconcile(t *testing.T) { Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeFalseStatusSubscription(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerNotSubscribed("testInducedError", "test induced error"), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerNotSubscribed("testInducedError", "test induced error"), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, }, { @@ -804,26 +807,26 @@ func TestReconcile(t *testing.T) { Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscription(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithTriggerBrokerReady(), - WithTriggerSubscribed(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribed(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, }, { @@ -831,27 +834,27 @@ func TestReconcile(t *testing.T) { Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscription(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), )}...), WantEvents: []string{ Eventf(corev1.EventTypeWarning, "TriggerReconcileFailed", "Trigger reconcile failed: propagating dependency readiness: getting the dependency: pingsources.sources.knative.dev \"test-ping-source\" not found"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), - WithTriggerBrokerReady(), - WithTriggerSubscribed(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyFailed("DependencyDoesNotExist", "Dependency does not exist: pingsources.sources.knative.dev \"test-ping-source\" not found"), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribed(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyFailed("DependencyDoesNotExist", "Dependency does not exist: pingsources.sources.knative.dev \"test-ping-source\" not found"), ), }}, }, { @@ -860,27 +863,27 @@ func TestReconcile(t *testing.T) { Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscription(), makeFalseStatusPingSource(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled")}, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), - WithTriggerBrokerReady(), - WithTriggerSubscribed(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyFailed("NotFound", ""), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribed(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyFailed("NotFound", ""), ), }}, }, { @@ -889,27 +892,27 @@ func TestReconcile(t *testing.T) { Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscription(), makeUnknownStatusCronJobSource(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled")}, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), - WithTriggerBrokerReady(), - WithTriggerSubscribed(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyUnknown("", ""), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribed(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyUnknown("", ""), ), }}, }, @@ -919,27 +922,27 @@ func TestReconcile(t *testing.T) { Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscription(), makeGenerationNotEqualPingSource(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled")}, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), - WithTriggerBrokerReady(), - WithTriggerSubscribed(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyUnknown("GenerationNotEqual", fmt.Sprintf("The dependency's metadata.generation, %q, is not equal to its status.observedGeneration, %q.", currentGeneration, outdatedGeneration))), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribed(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyUnknown("GenerationNotEqual", fmt.Sprintf("The dependency's metadata.generation, %q, is not equal to its status.observedGeneration, %q.", currentGeneration, outdatedGeneration))), }}, }, { @@ -948,28 +951,28 @@ func TestReconcile(t *testing.T) { Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscription(), makeReadyPingSource(), - NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), )}...), WantErr: false, WantEvents: []string{ Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerName, testNS, brokerName, - WithTriggerUID(triggerUID), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerName, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUID), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), - WithTriggerBrokerReady(), - WithTriggerSubscribed(), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribed(), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, }, @@ -980,11 +983,11 @@ func TestReconcile(t *testing.T) { Objects: allBrokerObjectsReadyPlus([]runtime.Object{ makeReadySubscriptionDeprecatedName(triggerNameLong, triggerUIDLong), makeReadyPingSource(), - NewTrigger(triggerNameLong, testNS, brokerName, - WithTriggerUID(triggerUIDLong), - WithTriggerSubscriberURI(subscriberURI), - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.NewTrigger(triggerNameLong, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUIDLong), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), )}...), WantErr: false, WantEvents: []string{ @@ -992,17 +995,17 @@ func TestReconcile(t *testing.T) { Eventf(corev1.EventTypeNormal, "TriggerReconciled", "Trigger reconciled"), }, WantStatusUpdates: []clientgotesting.UpdateActionImpl{{ - Object: NewTrigger(triggerNameLong, testNS, brokerName, - WithTriggerUID(triggerUIDLong), - WithTriggerSubscriberURI(subscriberURI), + Object: rtv1beta1.NewTrigger(triggerNameLong, testNS, brokerName, + rtv1beta1.WithTriggerUID(triggerUIDLong), + rtv1beta1.WithTriggerSubscriberURI(subscriberURI), // The first reconciliation will initialize the status conditions. - WithInitTriggerConditions, - WithDependencyAnnotation(dependencyAnnotation), - WithTriggerBrokerReady(), - WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), - WithTriggerStatusSubscriberURI(subscriberURI), - WithTriggerSubscriberResolvedSucceeded(), - WithTriggerDependencyReady(), + rtv1beta1.WithInitTriggerConditions, + rtv1beta1.WithDependencyAnnotation(dependencyAnnotation), + rtv1beta1.WithTriggerBrokerReady(), + rtv1beta1.WithTriggerSubscribedUnknown("SubscriptionNotConfigured", "Subscription has not yet been reconciled."), + rtv1beta1.WithTriggerStatusSubscriberURI(subscriberURI), + rtv1beta1.WithTriggerSubscriberResolvedSucceeded(), + rtv1beta1.WithTriggerDependencyReady(), ), }}, WantCreates: []runtime.Object{ @@ -1025,8 +1028,8 @@ func TestReconcile(t *testing.T) { eventingClientSet: fakeeventingclient.Get(ctx), dynamicClientSet: fakedynamicclient.Get(ctx), kubeClientSet: fakekubeclient.Get(ctx), - subscriptionLister: listers.GetSubscriptionLister(), - triggerLister: listers.GetTriggerLister(), + subscriptionLister: listers.GetV1Beta1SubscriptionLister(), + triggerLister: listers.GetV1Beta1TriggerLister(), brokerLister: listers.GetBrokerLister(), endpointsLister: listers.GetEndpointsLister(), @@ -1049,7 +1052,7 @@ func TestReconcile(t *testing.T) { func channel() metav1.TypeMeta { return metav1.TypeMeta{ - APIVersion: "messaging.knative.dev/v1alpha1", + APIVersion: "messaging.knative.dev/v1beta1", Kind: "InMemoryChannel", } } @@ -1073,7 +1076,7 @@ func createChannel(namespace string, ready bool) *unstructured.Unstructured { if ready { return &unstructured.Unstructured{ Object: map[string]interface{}{ - "apiVersion": "messaging.knative.dev/v1alpha1", + "apiVersion": "messaging.knative.dev/v1beta1", "kind": "InMemoryChannel", "metadata": map[string]interface{}{ "creationTimestamp": nil, @@ -1104,7 +1107,7 @@ func createChannel(namespace string, ready bool) *unstructured.Unstructured { return &unstructured.Unstructured{ Object: map[string]interface{}{ - "apiVersion": "messaging.knative.dev/v1alpha1", + "apiVersion": "messaging.knative.dev/v1beta1", "kind": "InMemoryChannel", "metadata": map[string]interface{}{ "creationTimestamp": nil, @@ -1129,7 +1132,7 @@ func createChannel(namespace string, ready bool) *unstructured.Unstructured { func createTriggerChannelRef() *corev1.ObjectReference { return &corev1.ObjectReference{ - APIVersion: "messaging.knative.dev/v1alpha1", + APIVersion: "messaging.knative.dev/v1beta1", Kind: "InMemoryChannel", Namespace: testNS, Name: fmt.Sprintf("%s-kne-trigger", brokerName), @@ -1143,14 +1146,14 @@ func makeServiceURI() *apis.URL { Path: fmt.Sprintf("/triggers/%s/%s/%s", testNS, triggerName, triggerUID), } } -func makeFilterSubscription() *messagingv1alpha1.Subscription { +func makeFilterSubscription() *messagingv1beta1.Subscription { return resources.NewSubscription(makeTrigger(), createTriggerChannelRef(), makeBrokerRef(), makeServiceURI(), makeEmptyDelivery()) } -func makeTrigger() *v1alpha1.Trigger { - return &v1alpha1.Trigger{ +func makeTrigger() *v1beta1.Trigger { + return &v1beta1.Trigger{ TypeMeta: metav1.TypeMeta{ - APIVersion: "eventing.knative.dev/v1alpha1", + APIVersion: "eventing.knative.dev/v1beta1", Kind: "Trigger", }, ObjectMeta: metav1.ObjectMeta{ @@ -1158,13 +1161,10 @@ func makeTrigger() *v1alpha1.Trigger { Name: triggerName, UID: triggerUID, }, - Spec: v1alpha1.TriggerSpec{ + Spec: v1beta1.TriggerSpec{ Broker: brokerName, - Filter: &v1alpha1.TriggerFilter{ - DeprecatedSourceAndType: &v1alpha1.TriggerFilterSourceAndType{ - Source: "Any", - Type: "Any", - }, + Filter: &v1beta1.TriggerFilter{ + Attributes: map[string]string{"Source": "Any", "Type": "Any"}, }, Subscriber: duckv1.Destination{ Ref: &duckv1.KReference{ @@ -1213,35 +1213,35 @@ func allBrokerObjectsReadyPlus(objs ...runtime.Object) []runtime.Object { } // Just so we can test subscription updates -func makeDifferentReadySubscription() *messagingv1alpha1.Subscription { +func makeDifferentReadySubscription() *messagingv1beta1.Subscription { s := makeFilterSubscription() s.Spec.Subscriber.URI = apis.HTTP("different.example.com") - s.Status = *v1alpha1.TestHelper.ReadySubscriptionStatus() + s.Status = *v1beta1.TestHelper.ReadySubscriptionStatus() return s } -func makeFilterSubscriptionNotOwnedByTrigger() *messagingv1alpha1.Subscription { +func makeFilterSubscriptionNotOwnedByTrigger() *messagingv1beta1.Subscription { sub := makeFilterSubscription() sub.OwnerReferences = []metav1.OwnerReference{} return sub } -func makeReadySubscription() *messagingv1alpha1.Subscription { +func makeReadySubscription() *messagingv1beta1.Subscription { s := makeFilterSubscription() - s.Status = *v1alpha1.TestHelper.ReadySubscriptionStatus() + s.Status = *v1beta1.TestHelper.ReadySubscriptionStatus() return s } -func makeReadySubscriptionDeprecatedName(triggerName, triggerUID string) *messagingv1alpha1.Subscription { +func makeReadySubscriptionDeprecatedName(triggerName, triggerUID string) *messagingv1beta1.Subscription { s := makeFilterSubscription() - t := NewTrigger(triggerName, testNS, brokerName) + t := rtv1beta1.NewTrigger(triggerName, testNS, brokerName) t.UID = types.UID(triggerUID) s.Name = utils.GenerateFixedName(t, fmt.Sprintf("%s-%s", brokerName, triggerName)) - s.Status = *v1alpha1.TestHelper.ReadySubscriptionStatus() + s.Status = *v1beta1.TestHelper.ReadySubscriptionStatus() return s } -func makeReadySubscriptionWithCustomData(triggerName, triggerUID string) *messagingv1alpha1.Subscription { +func makeReadySubscriptionWithCustomData(triggerName, triggerUID string) *messagingv1beta1.Subscription { t := makeTrigger() t.Name = triggerName t.UID = types.UID(triggerUID) @@ -1270,9 +1270,9 @@ func makeSubscriberAddressableAsUnstructured() *unstructured.Unstructured { } } -func makeFalseStatusSubscription() *messagingv1alpha1.Subscription { +func makeFalseStatusSubscription() *messagingv1beta1.Subscription { s := makeFilterSubscription() - s.Status = *v1alpha1.TestHelper.FalseSubscriptionStatus() + s.Status.MarkReferencesNotResolved("testInducedError", "test induced error") return s } diff --git a/pkg/reconciler/mtbroker/controller.go b/pkg/reconciler/mtbroker/controller.go index d9bf1d68e4b..305b5b22593 100644 --- a/pkg/reconciler/mtbroker/controller.go +++ b/pkg/reconciler/mtbroker/controller.go @@ -28,11 +28,12 @@ import ( "k8s.io/client-go/tools/record" "knative.dev/eventing/pkg/apis/eventing" "knative.dev/eventing/pkg/apis/eventing/v1alpha1" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" eventingclient "knative.dev/eventing/pkg/client/injection/client" - "knative.dev/eventing/pkg/client/injection/ducks/duck/v1alpha1/channelable" + "knative.dev/eventing/pkg/client/injection/ducks/duck/v1beta1/channelable" brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/broker" - triggerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/trigger" - subscriptioninformer "knative.dev/eventing/pkg/client/injection/informers/messaging/v1alpha1/subscription" + triggerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger" + subscriptioninformer "knative.dev/eventing/pkg/client/injection/informers/messaging/v1beta1/subscription" brokerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/broker" "knative.dev/eventing/pkg/duck" "knative.dev/eventing/pkg/reconciler/names" @@ -127,7 +128,7 @@ func NewController( triggerInformer.Informer().AddEventHandler(controller.HandleAll( func(obj interface{}) { - if trigger, ok := obj.(*v1alpha1.Trigger); ok { + if trigger, ok := obj.(*v1beta1.Trigger); ok { impl.EnqueueKey(types.NamespacedName{Namespace: trigger.Namespace, Name: trigger.Spec.Broker}) } }, diff --git a/pkg/reconciler/mtbroker/controller_test.go b/pkg/reconciler/mtbroker/controller_test.go index 04dc77ac09b..710a9ee255f 100644 --- a/pkg/reconciler/mtbroker/controller_test.go +++ b/pkg/reconciler/mtbroker/controller_test.go @@ -23,9 +23,9 @@ import ( . "knative.dev/pkg/reconciler/testing" // Fake injection informers - _ "knative.dev/eventing/pkg/client/injection/ducks/duck/v1alpha1/channelable/fake" + _ "knative.dev/eventing/pkg/client/injection/ducks/duck/v1beta1/channelable/fake" _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/broker/fake" - _ "knative.dev/eventing/pkg/client/injection/informers/messaging/v1alpha1/subscription/fake" + _ "knative.dev/eventing/pkg/client/injection/informers/messaging/v1beta1/subscription/fake" _ "knative.dev/pkg/client/injection/ducks/duck/v1/addressable/fake" _ "knative.dev/pkg/client/injection/ducks/duck/v1/conditions/fake" _ "knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment/fake" diff --git a/pkg/reconciler/mtbroker/resources/subscription.go b/pkg/reconciler/mtbroker/resources/subscription.go index 5e0f2e2cfd7..ad13b50c46b 100644 --- a/pkg/reconciler/mtbroker/resources/subscription.go +++ b/pkg/reconciler/mtbroker/resources/subscription.go @@ -26,15 +26,15 @@ import ( duckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1" "knative.dev/eventing/pkg/apis/eventing" - "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - messagingv1alpha1 "knative.dev/eventing/pkg/apis/messaging/v1alpha1" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" + messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" duckv1 "knative.dev/pkg/apis/duck/v1" ) // NewSubscription returns a placeholder subscription for trigger 't', from brokerTrigger to 'uri' // replying to brokerIngress. -func NewSubscription(t *v1alpha1.Trigger, brokerTrigger, brokerRef *corev1.ObjectReference, uri *apis.URL, delivery *duckv1beta1.DeliverySpec) *messagingv1alpha1.Subscription { - return &messagingv1alpha1.Subscription{ +func NewSubscription(t *v1beta1.Trigger, brokerTrigger, brokerRef *corev1.ObjectReference, uri *apis.URL, delivery *duckv1beta1.DeliverySpec) *messagingv1beta1.Subscription { + return &messagingv1beta1.Subscription{ ObjectMeta: metav1.ObjectMeta{ Namespace: t.Namespace, Name: kmeta.ChildName(fmt.Sprintf("%s-%s-", t.Spec.Broker, t.Name), string(t.GetUID())), @@ -43,7 +43,7 @@ func NewSubscription(t *v1alpha1.Trigger, brokerTrigger, brokerRef *corev1.Objec }, Labels: SubscriptionLabels(t), }, - Spec: messagingv1alpha1.SubscriptionSpec{ + Spec: messagingv1beta1.SubscriptionSpec{ Channel: corev1.ObjectReference{ APIVersion: brokerTrigger.APIVersion, Kind: brokerTrigger.Kind, @@ -67,7 +67,7 @@ func NewSubscription(t *v1alpha1.Trigger, brokerTrigger, brokerRef *corev1.Objec // SubscriptionLabels generates the labels present on the Subscription linking this Trigger to the // Broker's Channels. -func SubscriptionLabels(t *v1alpha1.Trigger) map[string]string { +func SubscriptionLabels(t *v1beta1.Trigger) map[string]string { return map[string]string{ eventing.BrokerLabelKey: t.Spec.Broker, "eventing.knative.dev/trigger": t.Name, diff --git a/pkg/reconciler/mtbroker/resources/subscription_test.go b/pkg/reconciler/mtbroker/resources/subscription_test.go index 848badf6a67..410a3896cb8 100644 --- a/pkg/reconciler/mtbroker/resources/subscription_test.go +++ b/pkg/reconciler/mtbroker/resources/subscription_test.go @@ -24,20 +24,20 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" duckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1" "knative.dev/eventing/pkg/apis/eventing" - "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - messagingv1alpha1 "knative.dev/eventing/pkg/apis/messaging/v1alpha1" + "knative.dev/eventing/pkg/apis/eventing/v1beta1" + messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" "knative.dev/pkg/apis" duckv1 "knative.dev/pkg/apis/duck/v1" ) func TestNewSubscription(t *testing.T) { var TrueValue = true - trigger := &v1alpha1.Trigger{ + trigger := &v1beta1.Trigger{ ObjectMeta: metav1.ObjectMeta{ Namespace: "t-namespace", Name: "t-name", }, - Spec: v1alpha1.TriggerSpec{ + Spec: v1beta1.TriggerSpec{ Broker: "broker-name", }, } @@ -58,12 +58,12 @@ func TestNewSubscription(t *testing.T) { }, } got := NewSubscription(trigger, triggerChannelRef, brokerRef, apis.HTTP("example.com"), delivery) - want := &messagingv1alpha1.Subscription{ + want := &messagingv1beta1.Subscription{ ObjectMeta: metav1.ObjectMeta{ Namespace: "t-namespace", Name: "broker-name-t-name-", OwnerReferences: []metav1.OwnerReference{{ - APIVersion: "eventing.knative.dev/v1alpha1", + APIVersion: "eventing.knative.dev/v1beta1", Kind: "Trigger", Name: "t-name", Controller: &TrueValue, @@ -74,7 +74,7 @@ func TestNewSubscription(t *testing.T) { "eventing.knative.dev/trigger": "t-name", }, }, - Spec: messagingv1alpha1.SubscriptionSpec{ + Spec: messagingv1beta1.SubscriptionSpec{ Channel: corev1.ObjectReference{ Name: "tc-name", Kind: "tc-kind", diff --git a/pkg/reconciler/mtbroker/trigger.go b/pkg/reconciler/mtbroker/trigger.go index 2620d0a79d1..ceaf230f1f1 100644 --- a/pkg/reconciler/mtbroker/trigger.go +++ b/pkg/reconciler/mtbroker/trigger.go @@ -61,7 +61,7 @@ func (r *Reconciler) reconcileTrigger(ctx context.Context, b *v1alpha1.Broker, t return nil } - t.Status.PropagateBrokerStatus(&b.Status) + t.Status.PropagateBrokerCondition(b.Status.GetTopLevelCondition()) brokerTrigger := b.Status.TriggerChannel if brokerTrigger == nil { @@ -91,7 +91,7 @@ func (r *Reconciler) reconcileTrigger(ctx context.Context, b *v1alpha1.Broker, t t.Status.MarkNotSubscribed("NotSubscribed", "%v", err) return err } - t.Status.PropagateSubscriptionStatus(&sub.Status) + t.Status.PropagateSubscriptionCondition(sub.Status.GetTopLevelCondition()) if err := r.checkDependencyAnnotation(ctx, t, b); err != nil { return err @@ -142,7 +142,7 @@ func (r *Reconciler) subscribeToBrokerChannel(ctx context.Context, b *v1alpha1.B r.recorder.Eventf(t, corev1.EventTypeWarning, subscriptionGetFailed, "Getting the Trigger's Subscription failed: %v", err) return nil, err } else if !metav1.IsControlledBy(sub, t) { - t.Status.MarkSubscriptionNotOwned(sub) + t.Status.MarkNotSubscribed("SubscriptionNotOwnedByTrigger", "trigger %q does not own subscription %q", t.Name, sub.Name) return nil, fmt.Errorf("trigger %q does not own subscription %q", t.Name, sub.Name) } else if sub, err = r.reconcileSubscription(ctx, t, expected, sub); err != nil { logging.FromContext(ctx).Errorw("Failed to reconcile subscription", zap.Error(err)) @@ -153,8 +153,7 @@ func (r *Reconciler) subscribeToBrokerChannel(ctx context.Context, b *v1alpha1.B } func (r *Reconciler) reconcileSubscription(ctx context.Context, t *v1beta1.Trigger, expected, actual *messagingv1beta1.Subscription) (*messagingv1beta1.Subscription, error) { - // Update Subscription if it has changed. Ignore the generation. - expected.Spec.DeprecatedGeneration = actual.Spec.DeprecatedGeneration + // Update Subscription if it has changed. if equality.Semantic.DeepDerivative(expected.Spec, actual.Spec) { return actual, nil } diff --git a/pkg/reconciler/testing/listers.go b/pkg/reconciler/testing/listers.go index 566151dedf5..6d5d2af3cfd 100644 --- a/pkg/reconciler/testing/listers.go +++ b/pkg/reconciler/testing/listers.go @@ -138,6 +138,10 @@ func (l *Listers) GetTriggerLister() eventinglisters.TriggerLister { return eventinglisters.NewTriggerLister(l.indexerFor(&eventingv1alpha1.Trigger{})) } +func (l *Listers) GetV1Beta1TriggerLister() eventingv1beta1listers.TriggerLister { + return eventingv1beta1listers.NewTriggerLister(l.indexerFor(&eventingv1beta1.Trigger{})) +} + func (l *Listers) GetBrokerLister() eventinglisters.BrokerLister { return eventinglisters.NewBrokerLister(l.indexerFor(&eventingv1alpha1.Broker{})) } diff --git a/pkg/reconciler/testing/v1beta1/listers.go b/pkg/reconciler/testing/v1beta1/listers.go index 32eb918a048..2f4f62bc14e 100644 --- a/pkg/reconciler/testing/v1beta1/listers.go +++ b/pkg/reconciler/testing/v1beta1/listers.go @@ -132,6 +132,10 @@ func (l *Listers) GetTriggerLister() eventinglisters.TriggerLister { return eventinglisters.NewTriggerLister(l.indexerFor(&eventingv1alpha1.Trigger{})) } +func (l *Listers) GetV1Beta1TriggerLister() eventingv1beta1listers.TriggerLister { + return eventingv1beta1listers.NewTriggerLister(l.indexerFor(&eventingv1beta1.Trigger{})) +} + func (l *Listers) GetBrokerLister() eventinglisters.BrokerLister { return eventinglisters.NewBrokerLister(l.indexerFor(&eventingv1alpha1.Broker{})) } diff --git a/pkg/reconciler/testing/v1beta1/namespace.go b/pkg/reconciler/testing/v1beta1/namespace.go new file mode 100644 index 00000000000..7394524e2d9 --- /dev/null +++ b/pkg/reconciler/testing/v1beta1/namespace.go @@ -0,0 +1,51 @@ +/* +Copyright 2020 The Knative Authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package testing + +import ( + "time" + + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// NamespaceOption enables further configuration of a Namespace. +type NamespaceOption func(*corev1.Namespace) + +// NewNamespace creates a Namespace with NamespaceOptions +func NewNamespace(name string, o ...NamespaceOption) *corev1.Namespace { + s := &corev1.Namespace{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + }, + } + for _, opt := range o { + opt(s) + } + return s +} + +func WithNamespaceDeleted(n *corev1.Namespace) { + t := metav1.NewTime(time.Unix(1e9, 0)) + n.ObjectMeta.SetDeletionTimestamp(&t) +} + +func WithNamespaceLabeled(labels map[string]string) NamespaceOption { + return func(n *corev1.Namespace) { + n.Labels = labels + } +} diff --git a/pkg/reconciler/testing/v1beta1/trigger.go b/pkg/reconciler/testing/v1beta1/trigger.go new file mode 100644 index 00000000000..58154be505b --- /dev/null +++ b/pkg/reconciler/testing/v1beta1/trigger.go @@ -0,0 +1,220 @@ +/* +Copyright 2020 The Knative Authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package testing + +import ( + "context" + "time" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + + "knative.dev/eventing/pkg/apis/eventing/v1beta1" + "knative.dev/pkg/apis" + duckv1 "knative.dev/pkg/apis/duck/v1" +) + +// TriggerOption enables further configuration of a Trigger. +type TriggerOption func(*v1beta1.Trigger) + +// NewTrigger creates a Trigger with TriggerOptions. +func NewTrigger(name, namespace, broker string, to ...TriggerOption) *v1beta1.Trigger { + t := &v1beta1.Trigger{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Namespace: namespace, + }, + Spec: v1beta1.TriggerSpec{ + Broker: broker, + }, + } + for _, opt := range to { + opt(t) + } + t.SetDefaults(context.Background()) + return t +} + +func WithTriggerSubscriberURI(rawurl string) TriggerOption { + uri, _ := apis.ParseURL(rawurl) + return func(t *v1beta1.Trigger) { + t.Spec.Subscriber = duckv1.Destination{URI: uri} + } +} + +func WithTriggerSubscriberRef(gvk metav1.GroupVersionKind, name, namespace string) TriggerOption { + return func(t *v1beta1.Trigger) { + t.Spec.Subscriber = duckv1.Destination{ + Ref: &duckv1.KReference{ + APIVersion: apiVersion(gvk), + Kind: gvk.Kind, + Name: name, + Namespace: namespace, + }, + } + } +} + +func WithTriggerSubscriberRefAndURIReference(gvk metav1.GroupVersionKind, name, namespace string, rawuri string) TriggerOption { + uri, _ := apis.ParseURL(rawuri) + return func(t *v1beta1.Trigger) { + t.Spec.Subscriber = duckv1.Destination{ + Ref: &duckv1.KReference{ + APIVersion: apiVersion(gvk), + Kind: gvk.Kind, + Name: name, + Namespace: namespace, + }, + URI: uri, + } + } +} + +// WithInitTriggerConditions initializes the Triggers's conditions. +func WithInitTriggerConditions(t *v1beta1.Trigger) { + t.Status.InitializeConditions() +} + +func WithTriggerGeneration(gen int64) TriggerOption { + return func(s *v1beta1.Trigger) { + s.Generation = gen + } +} + +func WithTriggerStatusObservedGeneration(gen int64) TriggerOption { + return func(s *v1beta1.Trigger) { + s.Status.ObservedGeneration = gen + } +} + +// WithTriggerBrokerReady initializes the Triggers's conditions. +func WithTriggerBrokerReady() TriggerOption { + return func(t *v1beta1.Trigger) { + t.Status.PropagateBrokerCondition(v1beta1.TestHelper.ReadyBrokerCondition()) + } +} + +// WithTriggerBrokerFailed marks the Broker as failed +func WithTriggerBrokerFailed(reason, message string) TriggerOption { + return func(t *v1beta1.Trigger) { + t.Status.MarkBrokerFailed(reason, message) + } +} + +// WithTriggerBrokerUnknown marks the Broker as unknown +func WithTriggerBrokerUnknown(reason, message string) TriggerOption { + return func(t *v1beta1.Trigger) { + t.Status.MarkBrokerUnknown(reason, message) + } +} + +func WithTriggerNotSubscribed(reason, message string) TriggerOption { + return func(t *v1beta1.Trigger) { + t.Status.MarkNotSubscribed(reason, message) + } +} + +func WithTriggerSubscribedUnknown(reason, message string) TriggerOption { + return func(t *v1beta1.Trigger) { + t.Status.MarkSubscribedUnknown(reason, message) + } +} + +func WithTriggerSubscriptionNotConfigured() TriggerOption { + return func(t *v1beta1.Trigger) { + t.Status.MarkSubscriptionNotConfigured() + } +} + +func WithTriggerSubscribed() TriggerOption { + return func(t *v1beta1.Trigger) { + t.Status.PropagateSubscriptionCondition(v1beta1.TestHelper.ReadySubscriptionCondition()) + } +} + +func WithTriggerStatusSubscriberURI(uri string) TriggerOption { + return func(t *v1beta1.Trigger) { + u, _ := apis.ParseURL(uri) + t.Status.SubscriberURI = u + } +} + +func WithInjectionAnnotation(injectionAnnotation string) TriggerOption { + return func(t *v1beta1.Trigger) { + if t.Annotations == nil { + t.Annotations = make(map[string]string) + } + t.Annotations[v1beta1.InjectionAnnotation] = injectionAnnotation + } +} + +func WithDependencyAnnotation(dependencyAnnotation string) TriggerOption { + return func(t *v1beta1.Trigger) { + if t.Annotations == nil { + t.Annotations = make(map[string]string) + } + t.Annotations[v1beta1.DependencyAnnotation] = dependencyAnnotation + } +} + +func WithTriggerDependencyReady() TriggerOption { + return func(t *v1beta1.Trigger) { + t.Status.MarkDependencySucceeded() + } +} + +func WithTriggerDependencyFailed(reason, message string) TriggerOption { + return func(t *v1beta1.Trigger) { + t.Status.MarkDependencyFailed(reason, message) + } +} + +func WithTriggerDependencyUnknown(reason, message string) TriggerOption { + return func(t *v1beta1.Trigger) { + t.Status.MarkDependencyUnknown(reason, message) + } +} + +func WithTriggerSubscriberResolvedSucceeded() TriggerOption { + return func(t *v1beta1.Trigger) { + t.Status.MarkSubscriberResolvedSucceeded() + } +} + +func WithTriggerSubscriberResolvedFailed(reason, message string) TriggerOption { + return func(t *v1beta1.Trigger) { + t.Status.MarkSubscriberResolvedFailed(reason, message) + } +} + +func WithTriggerSubscriberResolvedUnknown(reason, message string) TriggerOption { + return func(t *v1beta1.Trigger) { + t.Status.MarkSubscriberResolvedUnknown(reason, message) + } +} + +// TODO: this can be a runtime object +func WithTriggerDeleted(t *v1beta1.Trigger) { + deleteTime := metav1.NewTime(time.Unix(1e9, 0)) + t.ObjectMeta.SetDeletionTimestamp(&deleteTime) +} + +func WithTriggerUID(uid string) TriggerOption { + return func(t *v1beta1.Trigger) { + t.UID = types.UID(uid) + } +} diff --git a/pkg/reconciler/trigger/trigger_test.go b/pkg/reconciler/trigger/trigger_test.go index e717589290f..08a6cdb563c 100644 --- a/pkg/reconciler/trigger/trigger_test.go +++ b/pkg/reconciler/trigger/trigger_test.go @@ -18,7 +18,6 @@ package trigger import ( "context" - "fmt" "testing" corev1 "k8s.io/api/core/v1" @@ -29,13 +28,13 @@ import ( "knative.dev/eventing/pkg/apis/eventing/v1beta1" fakeeventingclient "knative.dev/eventing/pkg/client/injection/client/fake" "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger" - reconciletesting "knative.dev/eventing/pkg/reconciler/testing" + reconciletesting "knative.dev/eventing/pkg/reconciler/testing/v1beta1" fakekubeclient "knative.dev/pkg/client/injection/kube/client/fake" "knative.dev/pkg/configmap" "knative.dev/pkg/controller" logtesting "knative.dev/pkg/logging/testing" - . "knative.dev/eventing/pkg/reconciler/testing" + . "knative.dev/eventing/pkg/reconciler/testing/v1beta1" . "knative.dev/pkg/reconciler/testing" ) @@ -53,7 +52,7 @@ const ( func init() { // Add types to scheme _ = v1beta1.AddToScheme(scheme.Scheme) - _ = duckv1beta1.AddToScheme(scheme.Scheme) + // _ = duckv1alpha1.AddToScheme(scheme.Scheme) } func TestAllCases(t *testing.T) { @@ -164,11 +163,11 @@ func TestAllCases(t *testing.T) { r := &Reconciler{ eventingClientSet: fakeeventingclient.Get(ctx), kubeClientSet: fakekubeclient.Get(ctx), - brokerLister: listers.GetBrokerLister(), + brokerLister: listers.GetV1Beta1BrokerLister(), namespaceLister: listers.GetNamespaceLister(), } return trigger.NewReconciler(ctx, logger, - fakeeventingclient.Get(ctx), listers.GetTriggerLister(), + fakeeventingclient.Get(ctx), listers.GetV1Beta1TriggerLister(), controller.GetEventRecorder(ctx), r) }, false, logger)) } @@ -190,7 +189,6 @@ func makeBroker() *v1beta1.Broker { func makeReadyBroker() *v1beta1.Broker { b := makeBroker() b.Status = *v1beta1.TestHelper.ReadyBrokerStatus() - b.Status.TriggerChannel = makeTriggerChannelRef() return b } @@ -199,12 +197,3 @@ func makeReadyDefaultBroker() *v1beta1.Broker { b.Name = "default" return b } - -func makeTriggerChannelRef() *corev1.ObjectReference { - return &corev1.ObjectReference{ - APIVersion: "eventing.knative.dev/v1beta1", - Kind: "Channel", - Namespace: testNS, - Name: fmt.Sprintf("%s-kn-trigger", brokerName), - } -} From bc85f7ad54a2fa46be475fabbb798680749999da Mon Sep 17 00:00:00 2001 From: Ville Aikas Date: Wed, 6 May 2020 11:32:30 -0700 Subject: [PATCH 4/4] update-codegen --- go.mod | 1 - go.sum | 2 -- .../k8s.io/code-generator/generate-groups.sh | 0 .../duck/v1alpha1/addressable/fake/fake.go | 30 ------------------- .../knative.dev/pkg/hack/generate-knative.sh | 0 vendor/modules.txt | 1 - 6 files changed, 34 deletions(-) mode change 100755 => 100644 vendor/k8s.io/code-generator/generate-groups.sh delete mode 100644 vendor/knative.dev/pkg/client/injection/ducks/duck/v1alpha1/addressable/fake/fake.go mode change 100755 => 100644 vendor/knative.dev/pkg/hack/generate-knative.sh diff --git a/go.mod b/go.mod index 4f5f0ee2fbf..f5efc7ed78f 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,6 @@ require ( k8s.io/apimachinery v0.16.5-beta.1 k8s.io/apiserver v0.16.4 k8s.io/client-go v11.0.1-0.20190805182717-6502b5e7b1b5+incompatible - k8s.io/kubernetes v1.14.7 // indirect k8s.io/utils v0.0.0-20191010214722-8d271d903fe4 knative.dev/pkg v0.0.0-20200501005942-d980c0865972 knative.dev/test-infra v0.0.0-20200430225942-f7c1fafc1cde diff --git a/go.sum b/go.sum index 826542f40b4..da7c67d045a 100644 --- a/go.sum +++ b/go.sum @@ -1016,8 +1016,6 @@ k8s.io/utils v0.0.0-20191010214722-8d271d903fe4/go.mod h1:sZAwmy6armz5eXlNoLmJcl knative.dev/pkg v0.0.0-20191101194912-56c2594e4f11/go.mod h1:pgODObA1dTyhNoFxPZTTjNWfx6F0aKsKzn+vaT9XO/Q= knative.dev/pkg v0.0.0-20200501005942-d980c0865972 h1:N/umsmNgROaU+fIziEBZ+L32OMpgwZRYW3VeHUPR8ZA= knative.dev/pkg v0.0.0-20200501005942-d980c0865972/go.mod h1:X4wmXb4xUR+1eDBoP6AeVfAqsyxl1yATnRdSgFdjhQw= -knative.dev/pkg v0.0.0-20200505191044-3da93ebb24c2 h1:Qu2NlOHb9p3g+CSL/ok9+FySowN60URFEKRSXfWtDv4= -knative.dev/pkg v0.0.0-20200505212244-1099bd14baae h1:kqhjQYETRl/g8OtxTShmowmzUaWTsofXa7gRqAaip6Q= knative.dev/test-infra v0.0.0-20200429211942-f4c4853375cf h1:rNWg3NiXNLjZC9C1EJf2qKA+mRnrWMLW1KONsEusLYg= knative.dev/test-infra v0.0.0-20200429211942-f4c4853375cf/go.mod h1:xcdUkMJrLlBswIZqL5zCuBFOC22WIPMQoVX1L35i0vQ= knative.dev/test-infra v0.0.0-20200430225942-f7c1fafc1cde h1:QSzxFsf21WXNhODvh0jRKbFR+c5UI7WFjiISy/sMOLg= diff --git a/vendor/k8s.io/code-generator/generate-groups.sh b/vendor/k8s.io/code-generator/generate-groups.sh old mode 100755 new mode 100644 diff --git a/vendor/knative.dev/pkg/client/injection/ducks/duck/v1alpha1/addressable/fake/fake.go b/vendor/knative.dev/pkg/client/injection/ducks/duck/v1alpha1/addressable/fake/fake.go deleted file mode 100644 index 5793a71e0ad..00000000000 --- a/vendor/knative.dev/pkg/client/injection/ducks/duck/v1alpha1/addressable/fake/fake.go +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2020 The Knative Authors - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by injection-gen. DO NOT EDIT. - -package fake - -import ( - addressable "knative.dev/pkg/client/injection/ducks/duck/v1alpha1/addressable" - injection "knative.dev/pkg/injection" -) - -var Get = addressable.Get - -func init() { - injection.Fake.RegisterDuck(addressable.WithDuck) -} diff --git a/vendor/knative.dev/pkg/hack/generate-knative.sh b/vendor/knative.dev/pkg/hack/generate-knative.sh old mode 100755 new mode 100644 diff --git a/vendor/modules.txt b/vendor/modules.txt index 7b306bc504f..520e5b0b268 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -852,7 +852,6 @@ knative.dev/pkg/client/injection/ducks/duck/v1/podspecable knative.dev/pkg/client/injection/ducks/duck/v1/source knative.dev/pkg/client/injection/ducks/duck/v1/source/fake knative.dev/pkg/client/injection/ducks/duck/v1alpha1/addressable -knative.dev/pkg/client/injection/ducks/duck/v1alpha1/addressable/fake knative.dev/pkg/client/injection/ducks/duck/v1beta1/addressable knative.dev/pkg/client/injection/ducks/duck/v1beta1/addressable/fake knative.dev/pkg/client/injection/kube/client