From f5a9a40a9837475ef251a65fec1759ec9e1b4cdd Mon Sep 17 00:00:00 2001 From: nachocano Date: Thu, 28 Feb 2019 15:09:01 -0800 Subject: [PATCH 1/5] Adding knative-sources namespace to gcppubsub's ServiceAccount. --- contrib/gcppubsub/config/200-serviceaccount.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/gcppubsub/config/200-serviceaccount.yaml b/contrib/gcppubsub/config/200-serviceaccount.yaml index b72729adf9..80c1e0b82f 100644 --- a/contrib/gcppubsub/config/200-serviceaccount.yaml +++ b/contrib/gcppubsub/config/200-serviceaccount.yaml @@ -16,6 +16,7 @@ apiVersion: v1 kind: ServiceAccount metadata: name: gcppubsub-controller-manager + namespace: knative-sources secrets: - name: gcppubsub-source-key --- From 603c57cbf1b1f9f8290f373cc769ddeae4347c7d Mon Sep 17 00:00:00 2001 From: nachocano Date: Wed, 27 Mar 2019 15:36:37 -0700 Subject: [PATCH 2/5] Fixing bug introduced during a refactor. GitHub webhooks cannot be created otherwise. --- pkg/reconciler/githubsource/githubsource.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/reconciler/githubsource/githubsource.go b/pkg/reconciler/githubsource/githubsource.go index b31b5423db..6bccd5f63d 100644 --- a/pkg/reconciler/githubsource/githubsource.go +++ b/pkg/reconciler/githubsource/githubsource.go @@ -239,7 +239,7 @@ func (r *reconciler) createWebhook(ctx context.Context, args *webhookArgs) (stri events: args.source.Spec.EventTypes, secure: args.source.Spec.Secure, } - hookID, err := r.webhookClient.Create(ctx, hookOptions, args.domain) + hookID, err := r.webhookClient.Create(ctx, hookOptions, args.alternateGitHubAPIURL) if err != nil { return "", fmt.Errorf("failed to create webhook: %v", err) } From b6e90a95da7b789f26320eee0497522c1f112bf1 Mon Sep 17 00:00:00 2001 From: nachocano Date: Mon, 13 May 2019 14:34:20 -0700 Subject: [PATCH 3/5] Deleting eventTypes for non-Broker sinks --- contrib/awssqs/pkg/reconciler/awssqssource.go | 14 ++-- .../pkg/reconciler/gcppubsubsource.go | 14 ++-- .../pkg/reconciler/gcppubsubsource_test.go | 29 ++++++++- contrib/kafka/pkg/reconciler/kafkasource.go | 14 ++-- .../kafka/pkg/reconciler/kafkasource_test.go | 49 +++++++++++--- pkg/reconciler/eventtype/eventtype.go | 9 +++ pkg/reconciler/githubsource/githubsource.go | 12 ++-- .../githubsource/githubsource_test.go | 64 +++++++++++++++++++ 8 files changed, 162 insertions(+), 43 deletions(-) diff --git a/contrib/awssqs/pkg/reconciler/awssqssource.go b/contrib/awssqs/pkg/reconciler/awssqssource.go index 3802f7fc64..2f6ba48348 100644 --- a/contrib/awssqs/pkg/reconciler/awssqssource.go +++ b/contrib/awssqs/pkg/reconciler/awssqssource.go @@ -148,15 +148,12 @@ func (r *reconciler) Reconcile(ctx context.Context, object runtime.Object) error } src.Status.MarkDeployed() - // Only create EventTypes for Broker sinks. - if src.Spec.Sink.Kind == "Broker" { - err = r.reconcileEventTypes(ctx, src) - if err != nil { - logger.Error("Unable to reconcile the event types", zap.Error(err)) - return err - } - src.Status.MarkEventTypes() + err = r.reconcileEventTypes(ctx, src) + if err != nil { + logger.Error("Unable to reconcile the event types", zap.Error(err)) + return err } + src.Status.MarkEventTypes() return nil } @@ -233,6 +230,7 @@ func (r *reconciler) newEventTypeReconcilerArgs(src *v1alpha1.AwsSqsSource) *eve Specs: specs, Namespace: src.Namespace, Labels: getLabels(src), + Kind: src.Spec.Sink.Kind, } } diff --git a/contrib/gcppubsub/pkg/reconciler/gcppubsubsource.go b/contrib/gcppubsub/pkg/reconciler/gcppubsubsource.go index 5e31e76a1e..f88b1f4806 100644 --- a/contrib/gcppubsub/pkg/reconciler/gcppubsubsource.go +++ b/contrib/gcppubsub/pkg/reconciler/gcppubsubsource.go @@ -169,15 +169,12 @@ func (r *reconciler) Reconcile(ctx context.Context, object runtime.Object) error } src.Status.MarkDeployed() - // Only create EventTypes for Broker sinks. - if src.Spec.Sink.Kind == "Broker" { - err = r.reconcileEventTypes(ctx, src) - if err != nil { - logger.Error("Unable to reconcile the event types", zap.Error(err)) - return err - } - src.Status.MarkEventTypes() + err = r.reconcileEventTypes(ctx, src) + if err != nil { + logger.Error("Unable to reconcile the event types", zap.Error(err)) + return err } + src.Status.MarkEventTypes() return nil } @@ -312,6 +309,7 @@ func (r *reconciler) newEventTypeReconcilerArgs(src *v1alpha1.GcpPubSubSource) * Specs: specs, Namespace: src.Namespace, Labels: getLabels(src), + Kind: src.Spec.Sink.Kind, } } diff --git a/contrib/gcppubsub/pkg/reconciler/gcppubsubsource_test.go b/contrib/gcppubsub/pkg/reconciler/gcppubsubsource_test.go index 5a7f7e9e1a..84270c324c 100644 --- a/contrib/gcppubsub/pkg/reconciler/gcppubsubsource_test.go +++ b/contrib/gcppubsub/pkg/reconciler/gcppubsubsource_test.go @@ -251,7 +251,7 @@ func TestReconcile(t *testing.T) { getAddressable(), }, WantPresent: []runtime.Object{ - getReadySource(), + getReadyAndMarkEventTypeSource(), }, }, { Name: "successful create - reuse existing receive adapter", @@ -268,7 +268,7 @@ func TestReconcile(t *testing.T) { }, }, WantPresent: []runtime.Object{ - getReadySource(), + getReadyAndMarkEventTypeSource(), }, }, { Name: "successful create event types", @@ -280,6 +280,19 @@ func TestReconcile(t *testing.T) { getReadyAndMarkEventTypeSourceWithKind(brokerKind), getEventType(), }, + }, { + Name: "successful delete event types", + InitialState: []runtime.Object{ + getSource(), + getAddressable(), + getEventTypeForSource(getSource()), + }, + WantPresent: []runtime.Object{ + getReadyAndMarkEventTypeSource(), + }, + WantAbsent: []runtime.Object{ + getEventTypeForSource(getSource()), + }, }, { Name: "cannot create event types", InitialState: []runtime.Object{ @@ -385,6 +398,10 @@ func getSourceWithKind(kind string) *sourcesv1alpha1.GcpPubSubSource { } func getEventType() *eventingv1alpha1.EventType { + return getEventTypeForSource(getSourceWithKind(brokerKind)) +} + +func getEventTypeForSource(src *sourcesv1alpha1.GcpPubSubSource) *eventingv1alpha1.EventType { return &eventingv1alpha1.EventType{ TypeMeta: metav1.TypeMeta{ APIVersion: eventingv1alpha1.SchemeGroupVersion.String(), @@ -403,7 +420,7 @@ func getEventType() *eventingv1alpha1.EventType { }, GenerateName: fmt.Sprintf("%s-", sourcesv1alpha1.GcpPubSubSourceEventType), Namespace: testNS, - Labels: getLabels(getSourceWithKind(brokerKind)), + Labels: getLabels(src), }, Spec: eventingv1alpha1.EventTypeSpec{ Type: sourcesv1alpha1.GcpPubSubSourceEventType, @@ -469,6 +486,12 @@ func getReadySourceWithKind(kind string) *sourcesv1alpha1.GcpPubSubSource { return src } +func getReadyAndMarkEventTypeSource() *sourcesv1alpha1.GcpPubSubSource { + src := getReadySource() + src.Status.MarkEventTypes() + return src +} + func getReadyAndMarkEventTypeSourceWithKind(kind string) *sourcesv1alpha1.GcpPubSubSource { src := getReadySourceWithKind(kind) src.Status.MarkEventTypes() diff --git a/contrib/kafka/pkg/reconciler/kafkasource.go b/contrib/kafka/pkg/reconciler/kafkasource.go index 590ef18777..75d805c136 100644 --- a/contrib/kafka/pkg/reconciler/kafkasource.go +++ b/contrib/kafka/pkg/reconciler/kafkasource.go @@ -112,15 +112,12 @@ func (r *reconciler) Reconcile(ctx context.Context, object runtime.Object) error } src.Status.MarkDeployed() - // Only create EventTypes for Broker sinks. - if src.Spec.Sink.Kind == "Broker" { - err = r.reconcileEventTypes(ctx, src) - if err != nil { - logger.Error("Unable to reconcile the event types", zap.Error(err)) - return err - } - src.Status.MarkEventTypes() + err = r.reconcileEventTypes(ctx, src) + if err != nil { + logger.Error("Unable to reconcile the event types", zap.Error(err)) + return err } + src.Status.MarkEventTypes() return nil } @@ -199,6 +196,7 @@ func (r *reconciler) newEventTypeReconcilerArgs(src *v1alpha1.KafkaSource) *even Specs: specs, Namespace: src.Namespace, Labels: getLabels(src), + Kind: src.Spec.Sink.Kind, } } diff --git a/contrib/kafka/pkg/reconciler/kafkasource_test.go b/contrib/kafka/pkg/reconciler/kafkasource_test.go index 5e6237d80d..d3db75d22c 100644 --- a/contrib/kafka/pkg/reconciler/kafkasource_test.go +++ b/contrib/kafka/pkg/reconciler/kafkasource_test.go @@ -30,7 +30,7 @@ import ( eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1" eventingsourcesv1alpha1 "github.com/knative/eventing/pkg/apis/sources/v1alpha1" duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1" - v1 "k8s.io/api/apps/v1" + "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -142,7 +142,7 @@ func TestReconcile(t *testing.T) { getAddressable(), }, WantPresent: []runtime.Object{ - getReadySource(), + getReadySourceAndMarkEventTypes(), }, }, { Name: "successful create - reuse existing receive adapter", @@ -159,7 +159,7 @@ func TestReconcile(t *testing.T) { }, }, WantPresent: []runtime.Object{ - getReadySource(), + getReadySourceAndMarkEventTypes(), }, }, { Name: "successful create event types", @@ -185,8 +185,29 @@ func TestReconcile(t *testing.T) { }, WantPresent: []runtime.Object{ getReadyAndMarkEventTypesSourceWithKind(brokerKind), - getEventType("name1", "group", "topic1"), - getEventType("name2", "group", "topic2"), + getEventType("name1", "topic1"), + getEventType("name2", "topic2"), + }, + }, { + Name: "successful delete event type", + InitialState: []runtime.Object{ + getSource(), + getAddressable(), + getReceiveAdapter(), + getEventType("name1", "topic1"), + }, + Mocks: controllertesting.Mocks{ + MockCreates: []controllertesting.MockCreate{ + func(_ client.Client, _ context.Context, _ runtime.Object) (controllertesting.MockHandled, error) { + return controllertesting.Handled, errors.New("an error that won't be seen because create is not called") + }, + }, + }, + WantPresent: []runtime.Object{ + getReadySourceAndMarkEventTypes(), + }, + WantAbsent: []runtime.Object{ + getEventType("name1", "topic1"), }, }, { Name: "cannot create event types", @@ -205,8 +226,8 @@ func TestReconcile(t *testing.T) { }, }, WantAbsent: []runtime.Object{ - getEventType("name1", "group", "topic1"), - getEventType("name2", "group", "topic2"), + getEventType("name1", "topic1"), + getEventType("name2", "topic2"), }, WantPresent: []runtime.Object{ getSourceWithSinkAndDeployedAndKind(brokerKind), @@ -288,7 +309,7 @@ func getSourceWithKind(kind string) *sourcesv1alpha1.KafkaSource { return obj } -func getEventType(name, group, topic string) *eventingv1alpha1.EventType { +func getEventTypeForSource(name, topic string, source *sourcesv1alpha1.KafkaSource) *eventingv1alpha1.EventType { return &eventingv1alpha1.EventType{ TypeMeta: metav1.TypeMeta{ APIVersion: eventingv1alpha1.SchemeGroupVersion.String(), @@ -308,7 +329,7 @@ func getEventType(name, group, topic string) *eventingv1alpha1.EventType { Name: name, GenerateName: fmt.Sprintf("%s-", sourcesv1alpha1.KafkaEventType), Namespace: testNS, - Labels: getLabels(getSourceWithKind(brokerKind)), + Labels: getLabels(source), }, Spec: eventingv1alpha1.EventTypeSpec{ Type: sourcesv1alpha1.KafkaEventType, @@ -318,6 +339,10 @@ func getEventType(name, group, topic string) *eventingv1alpha1.EventType { } } +func getEventType(name, topic string) *eventingv1alpha1.EventType { + return getEventTypeForSource(name, topic, getSourceWithKind(brokerKind)) +} + func getSourceWithNoSink() *sourcesv1alpha1.KafkaSource { src := getSource() src.Status.InitializeConditions() @@ -352,6 +377,12 @@ func getReadySourceWithKind(kind string) *sourcesv1alpha1.KafkaSource { return src } +func getReadySourceAndMarkEventTypes() *sourcesv1alpha1.KafkaSource { + src := getReadySource() + src.Status.MarkEventTypes() + return src +} + func getReadyAndMarkEventTypesSourceWithKind(kind string) *sourcesv1alpha1.KafkaSource { src := getReadySourceWithKind(kind) src.Status.MarkEventTypes() diff --git a/pkg/reconciler/eventtype/eventtype.go b/pkg/reconciler/eventtype/eventtype.go index 188cbdfbf9..a94e67127a 100644 --- a/pkg/reconciler/eventtype/eventtype.go +++ b/pkg/reconciler/eventtype/eventtype.go @@ -42,6 +42,7 @@ type ReconcilerArgs struct { Specs []eventingv1alpha1.EventTypeSpec Namespace string Labels map[string]string + Kind string } // Reconcile reconciles the EventTypes taken from 'args', and sets 'owner' as the controller. @@ -100,6 +101,14 @@ func (r *Reconciler) getEventTypes(ctx context.Context, namespace string, lbs ma // makeEventTypes creates the in-memory representation of the EventTypes. func (r *Reconciler) makeEventTypes(args *ReconcilerArgs, owner metav1.Object) ([]eventingv1alpha1.EventType, error) { eventTypes := make([]eventingv1alpha1.EventType, 0) + + // Only create EventTypes for Broker sinks. + // We add this check here in case the Source was changed from a Broker to non-Broker sink. + // If so, we need to delete the existing EventTypes, thus we return empty expected. + if args.Kind != "Broker" { + return eventTypes, nil + } + for _, spec := range args.Specs { eventType := resources.MakeEventType(spec, args.Namespace, args.Labels) // Setting the reference to delete the EventType upon uninstalling the source. diff --git a/pkg/reconciler/githubsource/githubsource.go b/pkg/reconciler/githubsource/githubsource.go index b35c8bdb1f..2712555725 100644 --- a/pkg/reconciler/githubsource/githubsource.go +++ b/pkg/reconciler/githubsource/githubsource.go @@ -195,14 +195,11 @@ func (r *reconciler) reconcile(ctx context.Context, source *sourcesv1alpha1.GitH return nil } - // Only create EventTypes for Broker sinks. - if source.Spec.Sink.Kind == "Broker" { - err = r.reconcileEventTypes(ctx, source) - if err != nil { - return err - } - source.Status.MarkEventTypes() + err = r.reconcileEventTypes(ctx, source) + if err != nil { + return err } + source.Status.MarkEventTypes() return nil } @@ -366,6 +363,7 @@ func (r *reconciler) newEventTypeReconcilerArgs(source *sourcesv1alpha1.GitHubSo Specs: specs, Namespace: source.Namespace, Labels: resources.Labels(source.Name), + Kind: source.Spec.Sink.Kind, } } diff --git a/pkg/reconciler/githubsource/githubsource_test.go b/pkg/reconciler/githubsource/githubsource_test.go index 889a01e307..d0ee2dbf47 100644 --- a/pkg/reconciler/githubsource/githubsource_test.go +++ b/pkg/reconciler/githubsource/githubsource_test.go @@ -226,6 +226,7 @@ var testCases = []controllertesting.TestCase{ s.Status.MarkSink(addressableURI) s.Status.MarkSecrets() s.Status.WebhookIDKey = "repohookid" + s.Status.MarkEventTypes() return s }(), }, @@ -284,6 +285,7 @@ var testCases = []controllertesting.TestCase{ s.Status.MarkSink(addressableURI) s.Status.MarkSecrets() s.Status.WebhookIDKey = "repohookid" + s.Status.MarkEventTypes() return s }(), }, @@ -340,6 +342,7 @@ var testCases = []controllertesting.TestCase{ s.Status.MarkSink(addressableURI) s.Status.MarkSecrets() s.Status.WebhookIDKey = "orghookid" + s.Status.MarkEventTypes() return s }(), }, @@ -571,6 +574,7 @@ var testCases = []controllertesting.TestCase{ s.Status.MarkSink(addressableURI) s.Status.MarkSecrets() s.Status.WebhookIDKey = "repohookid" + s.Status.MarkEventTypes() return s }(), }, @@ -690,6 +694,66 @@ var testCases = []controllertesting.TestCase{ getEventType(), }, IgnoreTimes: true, + }, { + Name: "valid githubsource delete event type", + Reconciles: &sourcesv1alpha1.GitHubSource{}, + InitialState: []runtime.Object{ + func() runtime.Object { + s := getGitHubSource() + s.UID = gitHubSourceUID + return s + }(), + // service resource + func() runtime.Object { + svc := &servingv1alpha1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: testNS, + Name: serviceName, + }, + Status: servingv1alpha1.ServiceStatus{ + Status: duckv1alpha1.Status{ + Conditions: duckv1alpha1.Conditions{{ + Type: servingv1alpha1.ServiceConditionRoutesReady, + Status: corev1.ConditionTrue, + }}, + }, + RouteStatusFields: servingv1alpha1.RouteStatusFields{ + Domain: serviceDNS, + }, + }, + } + svc.SetOwnerReferences(getOwnerReferences()) + return svc + }(), + getGitHubSecrets(), + getAddressable(), + getEventType(), + }, + OtherTestData: map[string]interface{}{ + webhookData: webhookCreatorData{ + expectedOwner: "myuser", + expectedRepo: "myproject", + hookID: "repohookid", + }, + }, + ReconcileKey: fmt.Sprintf("%s/%s", testNS, gitHubSourceName), + Scheme: scheme.Scheme, + WantPresent: []runtime.Object{ + func() runtime.Object { + s := getGitHubSource() + s.UID = gitHubSourceUID + s.Status.InitializeConditions() + s.Status.MarkSink(addressableURI) + s.Status.MarkSecrets() + s.Status.WebhookIDKey = "repohookid" + s.Status.MarkEventTypes() + return s + }(), + }, + WantAbsent: []runtime.Object{ + getEventType(), + }, + IgnoreTimes: true, }, { Name: "githubsource cannot create event types", Reconciles: &sourcesv1alpha1.GitHubSource{}, From 97d596cb452e5e41fc24049fdc42ef28e5b613e5 Mon Sep 17 00:00:00 2001 From: nachocano Date: Mon, 13 May 2019 14:57:44 -0700 Subject: [PATCH 4/5] more UTs --- .../kafka/pkg/reconciler/kafkasource_test.go | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/contrib/kafka/pkg/reconciler/kafkasource_test.go b/contrib/kafka/pkg/reconciler/kafkasource_test.go index d3db75d22c..b06df49e04 100644 --- a/contrib/kafka/pkg/reconciler/kafkasource_test.go +++ b/contrib/kafka/pkg/reconciler/kafkasource_test.go @@ -188,6 +188,36 @@ func TestReconcile(t *testing.T) { getEventType("name1", "topic1"), getEventType("name2", "topic2"), }, + }, { + Name: "successful create missing event types", + InitialState: []runtime.Object{ + getSourceWithKind(brokerKind), + getAddressableWithKind(brokerKind), + getEventType("name2", "topic2"), + getEventType("name3", "whatever_topic"), + }, + Mocks: controllertesting.Mocks{ + MockCreates: []controllertesting.MockCreate{ + func(_ client.Client, _ context.Context, obj runtime.Object) (controllertesting.MockHandled, error) { + if eventType, ok := obj.(*eventingv1alpha1.EventType); ok { + // Hack because the fakeClient does not support GenerateName. + if strings.Contains(eventType.Spec.Source, "topic1") { + eventType.Name = "name1" + } + return controllertesting.Unhandled, nil + } + return controllertesting.Unhandled, nil + }, + }, + }, + WantPresent: []runtime.Object{ + getReadyAndMarkEventTypesSourceWithKind(brokerKind), + getEventType("name1", "topic1"), + getEventType("name2", "topic2"), + }, + WantAbsent: []runtime.Object{ + getEventType("name3", "whatever_topic"), + }, }, { Name: "successful delete event type", InitialState: []runtime.Object{ From cefc49f3fcbc3257127e25ea3ecd06edbd8fc641 Mon Sep 17 00:00:00 2001 From: nachocano Date: Mon, 13 May 2019 15:59:04 -0700 Subject: [PATCH 5/5] fixing test --- .../gcppubsub/pkg/reconciler/gcppubsubsource_test.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/contrib/gcppubsub/pkg/reconciler/gcppubsubsource_test.go b/contrib/gcppubsub/pkg/reconciler/gcppubsubsource_test.go index 8eae67a8e6..9c521dea9a 100644 --- a/contrib/gcppubsub/pkg/reconciler/gcppubsubsource_test.go +++ b/contrib/gcppubsub/pkg/reconciler/gcppubsubsource_test.go @@ -29,7 +29,7 @@ import ( eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1" eventingsourcesv1alpha1 "github.com/knative/eventing/pkg/apis/sources/v1alpha1" duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1" - v1 "k8s.io/api/apps/v1" + "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -305,13 +305,14 @@ func TestReconcile(t *testing.T) { InitialState: []runtime.Object{ getSource(), getAddressable(), - getEventTypeForSource(getSource()), + getAddressableWithName(transformerAddressableName), + getEventTypeForSource("name-1", getSource()), }, WantPresent: []runtime.Object{ getReadyAndMarkEventTypeSource(), }, WantAbsent: []runtime.Object{ - getEventTypeForSource(getSource()), + getEventTypeForSource("name-1", getSource()), }, }, { Name: "cannot create event types", @@ -424,10 +425,10 @@ func getSourceWithKind(kind string) *sourcesv1alpha1.GcpPubSubSource { } func getEventType() *eventingv1alpha1.EventType { - return getEventTypeForSource(getSourceWithKind(brokerKind)) + return getEventTypeForSource("", getSourceWithKind(brokerKind)) } -func getEventTypeForSource(src *sourcesv1alpha1.GcpPubSubSource) *eventingv1alpha1.EventType { +func getEventTypeForSource(name string, src *sourcesv1alpha1.GcpPubSubSource) *eventingv1alpha1.EventType { return &eventingv1alpha1.EventType{ TypeMeta: metav1.TypeMeta{ APIVersion: eventingv1alpha1.SchemeGroupVersion.String(), @@ -444,6 +445,7 @@ func getEventTypeForSource(src *sourcesv1alpha1.GcpPubSubSource) *eventingv1alph UID: sourceUID, }, }, + Name: name, GenerateName: fmt.Sprintf("%s-", sourcesv1alpha1.GcpPubSubSourceEventType), Namespace: testNS, Labels: getLabels(src),