From 668219d1c953a0b822415b77e0a94d2c4d455d5f Mon Sep 17 00:00:00 2001 From: Matthias Wessendorf Date: Wed, 24 Jun 2020 20:05:51 +0200 Subject: [PATCH 1/9] remove served/storage:FALSE versions Signed-off-by: Matthias Wessendorf --- config/pre-install/v0.16.0/pingsource.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/config/pre-install/v0.16.0/pingsource.yaml b/config/pre-install/v0.16.0/pingsource.yaml index 986adc9d5b0..3489ca4b42c 100644 --- a/config/pre-install/v0.16.0/pingsource.yaml +++ b/config/pre-install/v0.16.0/pingsource.yaml @@ -57,10 +57,6 @@ spec: - name: Age type: date jsonPath: .metadata.creationTimestamp - - << : *version - name: v1alpha1 - served: false - storage: false names: categories: - all From c8d39822524064d7bc23bdd13bccfa5a4a21a0e8 Mon Sep 17 00:00:00 2001 From: Matthias Wessendorf Date: Thu, 25 Jun 2020 16:32:37 +0200 Subject: [PATCH 2/9] Adding back some version to the pre runner Signed-off-by: Matthias Wessendorf --- config/pre-install/v0.16.0/pingsource.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/pre-install/v0.16.0/pingsource.yaml b/config/pre-install/v0.16.0/pingsource.yaml index 3489ca4b42c..986adc9d5b0 100644 --- a/config/pre-install/v0.16.0/pingsource.yaml +++ b/config/pre-install/v0.16.0/pingsource.yaml @@ -57,6 +57,10 @@ spec: - name: Age type: date jsonPath: .metadata.creationTimestamp + - << : *version + name: v1alpha1 + served: false + storage: false names: categories: - all From eade38ad6f8d38cfd0d59a4ac92e5cb547dae97c Mon Sep 17 00:00:00 2001 From: Matthias Wessendorf Date: Fri, 26 Jun 2020 10:07:30 +0200 Subject: [PATCH 3/9] testing w/o the pre-runner Signed-off-by: Matthias Wessendorf --- test/e2e-upgrade-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e-upgrade-tests.sh b/test/e2e-upgrade-tests.sh index edaa21f45cf..1aa39928f4a 100755 --- a/test/e2e-upgrade-tests.sh +++ b/test/e2e-upgrade-tests.sh @@ -58,7 +58,7 @@ echo "Prober PID is ${PROBER_PID}" wait_for_file ${PROBER_READY_FILE} || fail_test header "Performing upgrade to HEAD" -run_preinstall_V016 || fail_test 'Running preinstall 0.16 failed' +# run_preinstall_V016 || fail_test 'Running preinstall 0.16 failed' install_head || fail_test 'Installing HEAD version of eventing failed' install_channel_crds || fail_test 'Installing HEAD channel CRDs failed' install_mt_broker || fail_test 'Installing HEAD Broker failed' From 2345352d336b61787e3bb19081f7983cddbb196f Mon Sep 17 00:00:00 2001 From: Ville Aikas Date: Sun, 28 Jun 2020 12:51:31 -0700 Subject: [PATCH 4/9] e2e tests with matrix of v1beta1-v1 with brokers and triggers --- test/e2e/broker_channel_flow_test.go | 13 +- test/e2e/broker_event_transformation_test.go | 13 +- .../e2e/helpers/broker_channel_flow_helper.go | 73 ++++++++--- ...broker_event_transformation_test_helper.go | 56 +++++--- test/lib/creation.go | 37 +++++- test/lib/resources/eventing.go | 120 +++++++++++++++++- 6 files changed, 263 insertions(+), 49 deletions(-) diff --git a/test/e2e/broker_channel_flow_test.go b/test/e2e/broker_channel_flow_test.go index 58aafbf7b60..ecf3c735f41 100644 --- a/test/e2e/broker_channel_flow_test.go +++ b/test/e2e/broker_channel_flow_test.go @@ -43,6 +43,15 @@ Trigger2 logs all events, Trigger3 filters the transformed event and sends it to Channel. */ -func TestBrokerChannelFlow(t *testing.T) { - helpers.BrokerChannelFlowWithTransformation(t, brokerClass, channelTestRunner) +func TestBrokerChannelFlowTriggerV1BrokerV1(t *testing.T) { + helpers.BrokerChannelFlowWithTransformation(t, brokerClass, "v1", "v1", channelTestRunner) +} +func TestBrokerChannelFlowV1Beta1BrokerV1(t *testing.T) { + helpers.BrokerChannelFlowWithTransformation(t, brokerClass, "v1", "v1beta1", channelTestRunner) +} +func TestBrokerChannelFlowTriggerV1Beta1BrokerV1Beta1(t *testing.T) { + helpers.BrokerChannelFlowWithTransformation(t, brokerClass, "v1beta1", "v1beta1", channelTestRunner) +} +func TestBrokerChannelFlowTriggerV1BrokerV1Beta1(t *testing.T) { + helpers.BrokerChannelFlowWithTransformation(t, brokerClass, "v1beta1", "v1", channelTestRunner) } diff --git a/test/e2e/broker_event_transformation_test.go b/test/e2e/broker_event_transformation_test.go index a16b12e4231..d7d2b67c484 100644 --- a/test/e2e/broker_event_transformation_test.go +++ b/test/e2e/broker_event_transformation_test.go @@ -37,6 +37,15 @@ EventSource ---> Broker ---> Trigger1 -------> Service(Transformation) Note: the number denotes the sequence of the event that flows in this test case. */ -func TestEventTransformationForTrigger(t *testing.T) { - helpers.EventTransformationForTriggerTestHelper(t, brokerClass, channelTestRunner) +func TestEventTransformationForTriggerV1BrokerV1(t *testing.T) { + helpers.EventTransformationForTriggerTestHelper(t, brokerClass, "v1", "v1", channelTestRunner) +} +func TestEventTransformationForTriggerV1Beta1BrokerV1(t *testing.T) { + helpers.EventTransformationForTriggerTestHelper(t, brokerClass, "v1", "v1beta1", channelTestRunner) +} +func TestEventTransformationForTriggerV1Beta1BrokerV1Beta1(t *testing.T) { + helpers.EventTransformationForTriggerTestHelper(t, brokerClass, "v1beta1", "v1beta1", channelTestRunner) +} +func TestEventTransformationForTriggerV1BrokerV1Beta1(t *testing.T) { + helpers.EventTransformationForTriggerTestHelper(t, brokerClass, "v1beta1", "v1", channelTestRunner) } diff --git a/test/e2e/helpers/broker_channel_flow_helper.go b/test/e2e/helpers/broker_channel_flow_helper.go index e5ac1b7a5bd..e562b1d3924 100644 --- a/test/e2e/helpers/broker_channel_flow_helper.go +++ b/test/e2e/helpers/broker_channel_flow_helper.go @@ -51,6 +51,8 @@ Trigger3 filters the transformed event and sends it to Channel. */ func BrokerChannelFlowWithTransformation(t *testing.T, brokerClass string, + brokerVersion string, + triggerVersion string, channelTestRunner testlib.ComponentsTestRunner, options ...testlib.SetupClientOption) { const ( @@ -85,7 +87,11 @@ func BrokerChannelFlowWithTransformation(t *testing.T, //&channel // create a new broker - client.CreateBrokerV1Beta1OrFail(brokerName, resources.WithBrokerClassForBrokerV1Beta1(brokerClass), resources.WithConfigForBrokerV1Beta1(config)) + if brokerVersion == "v1" { + client.CreateBrokerV1OrFail(brokerName, resources.WithBrokerClassForBrokerV1(brokerClass), resources.WithConfigForBrokerV1(config)) + } else { + client.CreateBrokerV1Beta1OrFail(brokerName, resources.WithBrokerClassForBrokerV1Beta1(brokerClass), resources.WithConfigForBrokerV1Beta1(config)) + } client.WaitForResourceReadyOrFail(brokerName, testlib.BrokerTypeMeta) // eventToSend is the event sent as input of the test @@ -107,25 +113,41 @@ func BrokerChannelFlowWithTransformation(t *testing.T, client.CreatePodOrFail(transformationPod, testlib.WithService(transformationPodName)) // create trigger1 to receive the original event, and do event transformation - client.CreateTriggerOrFailV1Beta1( - triggerName1, - resources.WithBrokerV1Beta1(brokerName), - resources.WithAttributesTriggerFilterV1Beta1(eventSource, eventType, nil), - resources.WithSubscriberServiceRefForTriggerV1Beta1(transformationPodName), - ) - + if triggerVersion == "v1" { + client.CreateTriggerV1OrFail( + triggerName1, + resources.WithBrokerV1(brokerName), + resources.WithAttributesTriggerFilterV1(eventSource, eventType, nil), + resources.WithSubscriberServiceRefForTriggerV1(transformationPodName), + ) + } else { + client.CreateTriggerOrFailV1Beta1( + triggerName1, + resources.WithBrokerV1Beta1(brokerName), + resources.WithAttributesTriggerFilterV1Beta1(eventSource, eventType, nil), + resources.WithSubscriberServiceRefForTriggerV1Beta1(transformationPodName), + ) + } // create event tracker that should receive all sent events allEventTracker, _ := recordevents.StartEventRecordOrFail(client, allEventsRecorderPodName) defer allEventTracker.Cleanup() // create trigger to receive all the events - client.CreateTriggerOrFailV1Beta1( - triggerName2, - resources.WithBrokerV1Beta1(brokerName), - resources.WithAttributesTriggerFilterV1Beta1(any, any, nil), - resources.WithSubscriberServiceRefForTriggerV1Beta1(allEventsRecorderPodName), - ) - + if triggerVersion == "v1" { + client.CreateTriggerV1OrFail( + triggerName2, + resources.WithBrokerV1(brokerName), + resources.WithAttributesTriggerFilterV1(any, any, nil), + resources.WithSubscriberServiceRefForTriggerV1(allEventsRecorderPodName), + ) + } else { + client.CreateTriggerOrFailV1Beta1( + triggerName2, + resources.WithBrokerV1Beta1(brokerName), + resources.WithAttributesTriggerFilterV1Beta1(any, any, nil), + resources.WithSubscriberServiceRefForTriggerV1Beta1(allEventsRecorderPodName), + ) + } // create channel for trigger3 client.CreateChannelOrFail(channelName, &channel) client.WaitForResourceReadyOrFail(channelName, &channel) @@ -135,12 +157,21 @@ func BrokerChannelFlowWithTransformation(t *testing.T, if err != nil { st.Fatalf("Failed to get the url for the channel %q: %+v", channelName, err) } - client.CreateTriggerOrFailV1Beta1( - triggerName3, - resources.WithBrokerV1Beta1(brokerName), - resources.WithAttributesTriggerFilterV1Beta1(transformedEventSource, transformedEventType, nil), - resources.WithSubscriberURIForTriggerV1Beta1(channelURL), - ) + if triggerVersion == "v1" { + client.CreateTriggerV1OrFail( + triggerName3, + resources.WithBrokerV1(brokerName), + resources.WithAttributesTriggerFilterV1(transformedEventSource, transformedEventType, nil), + resources.WithSubscriberURIForTriggerV1(channelURL), + ) + } else { + client.CreateTriggerOrFailV1Beta1( + triggerName3, + resources.WithBrokerV1Beta1(brokerName), + resources.WithAttributesTriggerFilterV1Beta1(transformedEventSource, transformedEventType, nil), + resources.WithSubscriberURIForTriggerV1Beta1(channelURL), + ) + } // create event tracker that should receive only transformed events transformedEventTracker, _ := recordevents.StartEventRecordOrFail(client, transformedEventsRecorderPodName) diff --git a/test/e2e/helpers/broker_event_transformation_test_helper.go b/test/e2e/helpers/broker_event_transformation_test_helper.go index ac984eae021..1a6b1ca010a 100644 --- a/test/e2e/helpers/broker_event_transformation_test_helper.go +++ b/test/e2e/helpers/broker_event_transformation_test_helper.go @@ -23,7 +23,6 @@ import ( "github.com/google/uuid" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "knative.dev/eventing/pkg/apis/eventing/v1beta1" testlib "knative.dev/eventing/test/lib" "knative.dev/eventing/test/lib/recordevents" "knative.dev/eventing/test/lib/resources" @@ -45,13 +44,14 @@ Note: the number denotes the sequence of the event that flows in this test case. */ func EventTransformationForTriggerTestHelper(t *testing.T, brokerClass string, - channelTestRunner testlib.ComponentsTestRunner, + brokerVersion string, + triggerVersion string, + componentsTestRunner testlib.ComponentsTestRunner, options ...testlib.SetupClientOption) { const ( senderName = "e2e-eventtransformation-sender" brokerName = "e2e-eventtransformation-broker" - any = v1beta1.TriggerAnyFilter eventType = "type1" transformedEventType = "type2" eventSource = "source1" @@ -66,7 +66,7 @@ func EventTransformationForTriggerTestHelper(t *testing.T, recordEventsPodName = "recordevents-pod" ) - channelTestRunner.RunTests(t, testlib.FeatureBasic, func(st *testing.T, channel metav1.TypeMeta) { + componentsTestRunner.RunTests(t, testlib.FeatureBasic, func(st *testing.T, channel metav1.TypeMeta) { client := testlib.Setup(st, true, options...) defer testlib.TearDown(client) @@ -74,7 +74,11 @@ func EventTransformationForTriggerTestHelper(t *testing.T, config := client.CreateBrokerConfigMapOrFail(brokerName, &channel) // create a new broker - client.CreateBrokerV1Beta1OrFail(brokerName, resources.WithBrokerClassForBrokerV1Beta1(brokerClass), resources.WithConfigForBrokerV1Beta1(config)) + if brokerVersion == "v1" { + client.CreateBrokerV1OrFail(brokerName, resources.WithBrokerClassForBrokerV1(brokerClass), resources.WithConfigForBrokerV1(config)) + } else { + client.CreateBrokerV1Beta1OrFail(brokerName, resources.WithBrokerClassForBrokerV1Beta1(brokerClass), resources.WithConfigForBrokerV1Beta1(config)) + } client.WaitForResourceReadyOrFail(brokerName, testlib.BrokerTypeMeta) // create the transformation service @@ -87,24 +91,42 @@ func EventTransformationForTriggerTestHelper(t *testing.T, client.CreatePodOrFail(transformationPod, testlib.WithService(transformationPodName)) // create trigger1 for event transformation - client.CreateTriggerOrFailV1Beta1( - originalTriggerName, - resources.WithBrokerV1Beta1(brokerName), - resources.WithAttributesTriggerFilterV1Beta1(eventSource, eventType, nil), - resources.WithSubscriberServiceRefForTriggerV1Beta1(transformationPodName), - ) + if triggerVersion == "v1" { + client.CreateTriggerV1OrFail( + originalTriggerName, + resources.WithBrokerV1(brokerName), + resources.WithAttributesTriggerFilterV1(eventSource, eventType, nil), + resources.WithSubscriberServiceRefForTriggerV1(transformationPodName), + ) + } else { + client.CreateTriggerOrFailV1Beta1( + originalTriggerName, + resources.WithBrokerV1Beta1(brokerName), + resources.WithAttributesTriggerFilterV1Beta1(eventSource, eventType, nil), + resources.WithSubscriberServiceRefForTriggerV1Beta1(transformationPodName), + ) + } // create logger pod and service eventTracker, _ := recordevents.StartEventRecordOrFail(client, recordEventsPodName) defer eventTracker.Cleanup() // create trigger2 for event receiving - client.CreateTriggerOrFailV1Beta1( - transformedTriggerName, - resources.WithBrokerV1Beta1(brokerName), - resources.WithAttributesTriggerFilterV1Beta1(transformedEventSource, transformedEventType, nil), - resources.WithSubscriberServiceRefForTriggerV1Beta1(recordEventsPodName), - ) + if triggerVersion == "v1" { + client.CreateTriggerV1OrFail( + transformedTriggerName, + resources.WithBrokerV1(brokerName), + resources.WithAttributesTriggerFilterV1(transformedEventSource, transformedEventType, nil), + resources.WithSubscriberServiceRefForTriggerV1(recordEventsPodName), + ) + } else { + client.CreateTriggerOrFailV1Beta1( + transformedTriggerName, + resources.WithBrokerV1Beta1(brokerName), + resources.WithAttributesTriggerFilterV1Beta1(transformedEventSource, transformedEventType, nil), + resources.WithSubscriberServiceRefForTriggerV1Beta1(recordEventsPodName), + ) + } // wait for all test resources to be ready, so that we can start sending events client.WaitForAllTestResourcesReadyOrFail() diff --git a/test/lib/creation.go b/test/lib/creation.go index 9705f4b1e41..ea757169b90 100644 --- a/test/lib/creation.go +++ b/test/lib/creation.go @@ -28,6 +28,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1" "knative.dev/eventing/pkg/apis/eventing/v1beta1" flowsv1beta1 "knative.dev/eventing/pkg/apis/flows/v1beta1" messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" @@ -145,16 +146,16 @@ func (c *Client) CreateBrokerConfigMapOrFail(name string, channel *metav1.TypeMe } } -// CreateBrokerV1Beta1OrFail will create a Broker or fail the test if there is an error. +// CreateBrokerV1Beta1OrFail will create a v1beta1 Broker or fail the test if there is an error. func (c *Client) CreateBrokerV1Beta1OrFail(name string, options ...resources.BrokerV1Beta1Option) *v1beta1.Broker { namespace := c.Namespace broker := resources.BrokerV1Beta1(name, options...) brokers := c.Eventing.EventingV1beta1().Brokers(namespace) - c.T.Logf("Creating broker %s", name) + c.T.Logf("Creating v1beta1 broker %s", name) // update broker with the new reference broker, err := brokers.Create(broker) if err != nil { - c.T.Fatalf("Failed to create broker %q: %v", name, err) + c.T.Fatalf("Failed to create v1beta1 broker %q: %v", name, err) } c.Tracker.AddObj(broker) return broker @@ -175,6 +176,36 @@ func (c *Client) CreateTriggerOrFailV1Beta1(name string, options ...resources.Tr return trigger } +// CreateBrokerV1OrFail will create a v1 Broker or fail the test if there is an error. +func (c *Client) CreateBrokerV1OrFail(name string, options ...resources.BrokerV1Option) *eventingv1.Broker { + namespace := c.Namespace + broker := resources.BrokerV1(name, options...) + brokers := c.Eventing.EventingV1().Brokers(namespace) + c.T.Logf("Creating v1 broker %s", name) + // update broker with the new reference + broker, err := brokers.Create(broker) + if err != nil { + c.T.Fatalf("Failed to create v1 broker %q: %v", name, err) + } + c.Tracker.AddObj(broker) + return broker +} + +// CreateTriggerOrFailV1 will create a v1 Trigger or fail the test if there is an error. +func (c *Client) CreateTriggerV1OrFail(name string, options ...resources.TriggerOptionV1) *eventingv1.Trigger { + namespace := c.Namespace + trigger := resources.TriggerV1(name, options...) + triggers := c.Eventing.EventingV1().Triggers(namespace) + c.T.Logf("Creating v1 trigger %s", name) + // update trigger with the new reference + trigger, err := triggers.Create(trigger) + if err != nil { + c.T.Fatalf("Failed to create v1 trigger %q: %v", name, err) + } + c.Tracker.AddObj(trigger) + return trigger +} + // CreateFlowsSequenceOrFail will create a Sequence (in flows.knative.dev api group) or // fail the test if there is an error. func (c *Client) CreateFlowsSequenceOrFail(sequence *flowsv1beta1.Sequence) { diff --git a/test/lib/resources/eventing.go b/test/lib/resources/eventing.go index b4d374abb4e..d47dabc7a6c 100644 --- a/test/lib/resources/eventing.go +++ b/test/lib/resources/eventing.go @@ -27,17 +27,25 @@ import ( duckv1 "knative.dev/pkg/apis/duck/v1" pkgTest "knative.dev/pkg/test" + eventingduckv1 "knative.dev/eventing/pkg/apis/duck/v1" eventingduckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1" + eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1" eventingv1beta1 "knative.dev/eventing/pkg/apis/eventing/v1beta1" messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" ) -// BrokerV1Beta1Option enables further configuration of a Broker. +// BrokerV1Beta1Option enables further configuration of a v1beta1 Broker. type BrokerV1Beta1Option func(*eventingv1beta1.Broker) // TriggerOptionV1Beta1 enables further configuration of a v1beta1 Trigger. type TriggerOptionV1Beta1 func(*eventingv1beta1.Trigger) +// BrokerV1Option enables further configuration of a v1 Broker. +type BrokerV1Option func(*eventingv1.Broker) + +// TriggerOptionV1 enables further configuration of a v1 Trigger. +type TriggerOptionV1 func(*eventingv1.Trigger) + // SubscriptionOptionV1Beta1 enables further configuration of a Subscription. type SubscriptionOptionV1Beta1 func(*messagingv1beta1.Subscription) @@ -176,6 +184,33 @@ func WithDeliveryForBrokerV1Beta1(delivery *eventingduckv1beta1.DeliverySpec) Br } } +func WithConfigForBrokerV1(config *duckv1.KReference) BrokerV1Option { + return func(b *eventingv1.Broker) { + b.Spec.Config = config + } +} + +// WithBrokerClassForBrokerV1 returns a function that adds a brokerClass +// annotation to the given v1 Broker. +func WithBrokerClassForBrokerV1(brokerClass string) BrokerV1Option { + return func(b *eventingv1.Broker) { + annotations := b.GetAnnotations() + if annotations == nil { + annotations = make(map[string]string, 1) + } + annotations["eventing.knative.dev/broker.class"] = brokerClass + b.SetAnnotations(annotations) + } +} + +// WithDeliveryForBrokerV1 returns a function that adds a Delivery for the given +// v1 Broker. +func WithDeliveryForBrokerV1(delivery *eventingduckv1.DeliverySpec) BrokerV1Option { + return func(b *eventingv1.Broker) { + b.Spec.Delivery = delivery + } +} + // ConfigMap returns a ConfigMap. func ConfigMap(name, namespace string, data map[string]string) *corev1.ConfigMap { return &corev1.ConfigMap{ @@ -191,7 +226,7 @@ func ConfigMap(name, namespace string, data map[string]string) *corev1.ConfigMap } } -// Broker returns a Broker. +// BrokerV1Beta1 returns a v1beta1 Broker. func BrokerV1Beta1(name string, options ...BrokerV1Beta1Option) *eventingv1beta1.Broker { broker := &eventingv1beta1.Broker{ ObjectMeta: metav1.ObjectMeta{ @@ -204,6 +239,19 @@ func BrokerV1Beta1(name string, options ...BrokerV1Beta1Option) *eventingv1beta1 return broker } +// BrokerV1 returns a v1 Broker. +func BrokerV1(name string, options ...BrokerV1Option) *eventingv1.Broker { + broker := &eventingv1.Broker{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + }, + } + for _, option := range options { + option(broker) + } + return broker +} + // WithAttributesTriggerFilter returns an option that adds a TriggerFilter with Attributes for the given Trigger. func WithAttributesTriggerFilterV1Beta1(eventSource, eventType string, extensions map[string]interface{}) TriggerOptionV1Beta1 { attrs := make(map[string]string) @@ -227,6 +275,29 @@ func WithAttributesTriggerFilterV1Beta1(eventSource, eventType string, extension } } +// WithAttributesTriggerFilter returns an option that adds a TriggerFilter with Attributes for the given Trigger. +func WithAttributesTriggerFilterV1(eventSource, eventType string, extensions map[string]interface{}) TriggerOptionV1 { + attrs := make(map[string]string) + if eventType != "" { + attrs["type"] = eventType + } else { + attrs["type"] = eventingv1.TriggerAnyFilter + } + if eventSource != "" { + attrs["source"] = eventSource + } else { + attrs["source"] = eventingv1.TriggerAnyFilter + } + for k, v := range extensions { + attrs[k] = fmt.Sprintf("%v", v) + } + return func(t *eventingv1.Trigger) { + t.Spec.Filter = &eventingv1.TriggerFilter{ + Attributes: eventingv1.TriggerFilterAttributes(attrs), + } + } +} + // WithDependencyAnnotationTrigger returns an option that adds a dependency annotation to the given Trigger. func WithDependencyAnnotationTriggerV1Beta1(dependencyAnnotation string) TriggerOptionV1Beta1 { return func(t *eventingv1beta1.Trigger) { @@ -237,7 +308,7 @@ func WithDependencyAnnotationTriggerV1Beta1(dependencyAnnotation string) Trigger } } -// WithSubscriberServiceRefForTriggerV1Beta1 returns an option that adds a Subscriber Knative Service Ref for the given Trigger. +// WithSubscriberServiceRefForTriggerV1Beta1 returns an option that adds a Subscriber Knative Service Ref for the given v1beta1 Trigger. func WithSubscriberServiceRefForTriggerV1Beta1(name string) TriggerOptionV1Beta1 { return func(t *eventingv1beta1.Trigger) { if name != "" { @@ -248,7 +319,18 @@ func WithSubscriberServiceRefForTriggerV1Beta1(name string) TriggerOptionV1Beta1 } } -// WithSubscriberURIForTriggerV1Beta1 returns an option that adds a Subscriber URI for the given Trigger. +// WithSubscriberServiceRefForTriggerV1 returns an option that adds a Subscriber Knative Service Ref for the given v1 Trigger. +func WithSubscriberServiceRefForTriggerV1(name string) TriggerOptionV1 { + return func(t *eventingv1.Trigger) { + if name != "" { + t.Spec.Subscriber = duckv1.Destination{ + Ref: KnativeRefForService(name, t.Namespace), + } + } + } +} + +// WithSubscriberURIForTriggerV1Beta1 returns an option that adds a Subscriber URI for the given v1beta1 Trigger. func WithSubscriberURIForTriggerV1Beta1(uri string) TriggerOptionV1Beta1 { apisURI, _ := apis.ParseURL(uri) return func(t *eventingv1beta1.Trigger) { @@ -258,6 +340,16 @@ func WithSubscriberURIForTriggerV1Beta1(uri string) TriggerOptionV1Beta1 { } } +// WithSubscriberURIForTriggerV1 returns an option that adds a Subscriber URI for the given v1 Trigger. +func WithSubscriberURIForTriggerV1(uri string) TriggerOptionV1 { + apisURI, _ := apis.ParseURL(uri) + return func(t *eventingv1.Trigger) { + t.Spec.Subscriber = duckv1.Destination{ + URI: apisURI, + } + } +} + // WithBrokerV1Beta1 returns an option that adds a broker for the given Trigger. func WithBrokerV1Beta1(name string) TriggerOptionV1Beta1 { return func(trigger *eventingv1beta1.Trigger) { @@ -278,6 +370,26 @@ func TriggerV1Beta1(name string, options ...TriggerOptionV1Beta1) *eventingv1bet return trigger } +// WithBrokerV1 returns an option that adds a broker for the given Trigger. +func WithBrokerV1(name string) TriggerOptionV1 { + return func(trigger *eventingv1.Trigger) { + trigger.Spec.Broker = name + } +} + +// TriggerV1 returns a v1 Trigger. +func TriggerV1(name string, options ...TriggerOptionV1) *eventingv1.Trigger { + trigger := &eventingv1.Trigger{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + }, + } + for _, option := range options { + option(trigger) + } + return trigger +} + // WithDeadLetterSinkForDelivery returns an options that adds a DeadLetterSink for the given DeliverySpec. func WithDeadLetterSinkForDelivery(name string) DeliveryOption { return func(delivery *eventingduckv1beta1.DeliverySpec) { From 030bbc19fd1f4672af9dacea293c2dc06d2e0603 Mon Sep 17 00:00:00 2001 From: Ville Aikas Date: Mon, 29 Jun 2020 09:48:21 -0700 Subject: [PATCH 5/9] remove v1alpha1, add v1 --- config/core/resources/broker.yaml | 10 +++++----- config/core/resources/trigger.yaml | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/core/resources/broker.yaml b/config/core/resources/broker.yaml index 200105755bc..5500a04cfa2 100644 --- a/config/core/resources/broker.yaml +++ b/config/core/resources/broker.yaml @@ -24,9 +24,9 @@ spec: group: eventing.knative.dev versions: - &version - name: v1alpha1 - served: false - storage: false + name: v1beta1 + served: true + storage: true subresources: status: {} schema: @@ -51,9 +51,9 @@ spec: type: date jsonPath: .metadata.creationTimestamp - << : *version - name: v1beta1 + name: v1 served: true - storage: true + storage: false names: kind: Broker plural: brokers diff --git a/config/core/resources/trigger.yaml b/config/core/resources/trigger.yaml index 2805ba75775..9f16aa772f9 100644 --- a/config/core/resources/trigger.yaml +++ b/config/core/resources/trigger.yaml @@ -23,9 +23,9 @@ spec: group: eventing.knative.dev versions: - &version - name: v1alpha1 - served: false - storage: false + name: v1beta1 + served: true + storage: true subresources: status: {} schema: @@ -102,9 +102,9 @@ spec: type: date jsonPath: .metadata.creationTimestamp - << : *version - name: v1beta1 + name: v1 served: true - storage: true + storage: false schema: openAPIV3Schema: type: object From 005690aed3a0f4858826064e40f05ef2ab533718 Mon Sep 17 00:00:00 2001 From: Ville Aikas Date: Mon, 29 Jun 2020 11:34:03 -0700 Subject: [PATCH 6/9] add v1alpha1 for upgrade tests --- config/core/resources/broker.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/core/resources/broker.yaml b/config/core/resources/broker.yaml index 5500a04cfa2..ed6849ef543 100644 --- a/config/core/resources/broker.yaml +++ b/config/core/resources/broker.yaml @@ -54,6 +54,10 @@ spec: name: v1 served: true storage: false + - << : *version + name: v1alpha1 + served: false + storage: false names: kind: Broker plural: brokers From 0df5d2bc22dfe05ac607bcfab5b9f1597819985a Mon Sep 17 00:00:00 2001 From: Ville Aikas Date: Mon, 29 Jun 2020 12:36:58 -0700 Subject: [PATCH 7/9] rejigger ordering --- config/core/resources/broker.yaml | 8 ++++---- config/core/resources/trigger.yaml | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/config/core/resources/broker.yaml b/config/core/resources/broker.yaml index ed6849ef543..d01cd2a2784 100644 --- a/config/core/resources/broker.yaml +++ b/config/core/resources/broker.yaml @@ -24,6 +24,10 @@ spec: group: eventing.knative.dev versions: - &version + name: v1alpha1 + served: false + storage: false + - << : *version name: v1beta1 served: true storage: true @@ -54,10 +58,6 @@ spec: name: v1 served: true storage: false - - << : *version - name: v1alpha1 - served: false - storage: false names: kind: Broker plural: brokers diff --git a/config/core/resources/trigger.yaml b/config/core/resources/trigger.yaml index 9f16aa772f9..e3a36aec642 100644 --- a/config/core/resources/trigger.yaml +++ b/config/core/resources/trigger.yaml @@ -23,6 +23,10 @@ spec: group: eventing.knative.dev versions: - &version + name: v1alpha1 + served: false + storage: false + - << : *version name: v1beta1 served: true storage: true From ecac55b0055a3c9b58e9b9fbf6a89a8713492c24 Mon Sep 17 00:00:00 2001 From: Ville Aikas Date: Mon, 29 Jun 2020 13:11:40 -0700 Subject: [PATCH 8/9] remove unintended change --- test/e2e-upgrade-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e-upgrade-tests.sh b/test/e2e-upgrade-tests.sh index 1aa39928f4a..edaa21f45cf 100755 --- a/test/e2e-upgrade-tests.sh +++ b/test/e2e-upgrade-tests.sh @@ -58,7 +58,7 @@ echo "Prober PID is ${PROBER_PID}" wait_for_file ${PROBER_READY_FILE} || fail_test header "Performing upgrade to HEAD" -# run_preinstall_V016 || fail_test 'Running preinstall 0.16 failed' +run_preinstall_V016 || fail_test 'Running preinstall 0.16 failed' install_head || fail_test 'Installing HEAD version of eventing failed' install_channel_crds || fail_test 'Installing HEAD channel CRDs failed' install_mt_broker || fail_test 'Installing HEAD Broker failed' From 6bdc8fe135e8ef1ae1be0c58ba2686bcc2236b63 Mon Sep 17 00:00:00 2001 From: Ville Aikas Date: Mon, 29 Jun 2020 13:44:43 -0700 Subject: [PATCH 9/9] yaml fun --- config/core/resources/broker.yaml | 8 +++--- config/core/resources/trigger.yaml | 44 ++++++++++++++++++------------ 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/config/core/resources/broker.yaml b/config/core/resources/broker.yaml index d01cd2a2784..d736fb2a302 100644 --- a/config/core/resources/broker.yaml +++ b/config/core/resources/broker.yaml @@ -27,10 +27,6 @@ spec: name: v1alpha1 served: false storage: false - - << : *version - name: v1beta1 - served: true - storage: true subresources: status: {} schema: @@ -54,6 +50,10 @@ spec: - name: Age type: date jsonPath: .metadata.creationTimestamp + - << : *version + name: v1beta1 + served: true + storage: true - << : *version name: v1 served: true diff --git a/config/core/resources/trigger.yaml b/config/core/resources/trigger.yaml index e3a36aec642..db6d9460a3d 100644 --- a/config/core/resources/trigger.yaml +++ b/config/core/resources/trigger.yaml @@ -26,12 +26,36 @@ spec: name: v1alpha1 served: false storage: false + subresources: + status: {} + schema: + openAPIV3Schema: + type: object + # this is a work around so we don't need to flush out the + # schema for each version at this time + # + # see issue: https://github.com/knative/serving/issues/912 + x-kubernetes-preserve-unknown-fields: true + additionalPrinterColumns: + - name: Ready + type: string + jsonPath: ".status.conditions[?(@.type==\"Ready\")].status" + - name: Reason + type: string + jsonPath: ".status.conditions[?(@.type==\"Ready\")].reason" + - name: Broker + type: string + jsonPath: .spec.broker + - name: Subscriber_URI + type: string + jsonPath: .status.subscriberUri + - name: Age + type: date + jsonPath: .metadata.creationTimestamp - << : *version name: v1beta1 served: true storage: true - subresources: - status: {} schema: openAPIV3Schema: type: object @@ -89,22 +113,6 @@ spec: status: type: object x-kubernetes-preserve-unknown-fields: true - additionalPrinterColumns: - - name: Ready - type: string - jsonPath: ".status.conditions[?(@.type==\"Ready\")].status" - - name: Reason - type: string - jsonPath: ".status.conditions[?(@.type==\"Ready\")].reason" - - name: Broker - type: string - jsonPath: .spec.broker - - name: Subscriber_URI - type: string - jsonPath: .status.subscriberUri - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - << : *version name: v1 served: true