Repository: knative-sandbox/eventing-rabbitmq
Pull request #1124 (2023-05-03 16:10:28)

Fix update deps 121
fixing this https://github.com/knative-sandbox/eventing-rabbitmq/pull/1121

knative-prow[bot]: [APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/knative-sandbox/eventing-rabbitmq/pull/1124#" title="Author self-approved">gabo1208</a>*

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=knative-sandbox%2Feventing-rabbitmq).

The pull request process is described [here](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process)

<details >
Needs approval from an approver in each of these files:

- ~~[OWNERS](https://github.com/knative-sandbox/eventing-rabbitmq/blob/main/OWNERS)~~ [gabo1208]

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":[]} -->
codecov[bot]: ## [Codecov](https://app.codecov.io/gh/knative-sandbox/eventing-rabbitmq/pull/1124?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) Report
> Merging [#1124](https://app.codecov.io/gh/knative-sandbox/eventing-rabbitmq/pull/1124?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) (49884fd) into [main](https://app.codecov.io/gh/knative-sandbox/eventing-rabbitmq/commit/c2e827a38647c455b2ee972c6db17bbd84a9f299?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) (c2e827a) will **not change** coverage.
> The diff coverage is `n/a`.

```diff
@@           Coverage Diff           @@
##             main    #1124   +/-   ##
=======================================
  Coverage   74.32%   74.32%           
=======================================
  Files          44       44           
  Lines        3310     3310           
=======================================
  Hits         2460     2460           
  Misses        762      762           
  Partials       88       88           
```




knative-prow[bot]: [APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/knative-sandbox/eventing-rabbitmq/pull/1124#pullrequestreview-1413102335" title="LGTM">gab-satchi</a>*, *<a href="https://github.com/knative-sandbox/eventing-rabbitmq/pull/1124#" title="Author self-approved">gabo1208</a>*

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=knative-sandbox%2Feventing-rabbitmq).

The pull request process is described [here](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process)

<details >
Needs approval from an approver in each of these files:

- ~~[OWNERS](https://github.com/knative-sandbox/eventing-rabbitmq/blob/main/OWNERS)~~ [gab-satchi,gabo1208]

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":[]} -->

Patch:
diff --git a/go.mod b/go.mod
index cd8e2516..4c94d4a0 100644
--- a/go.mod
+++ b/go.mod
@@ -21,10 +21,10 @@ require (
 	k8s.io/client-go v0.25.4
 	k8s.io/code-generator v0.25.4
 	k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1
-	knative.dev/eventing v0.37.0
-	knative.dev/hack v0.0.0-20230417170854-f591fea109b3
-	knative.dev/pkg v0.0.0-20230418073056-dfad48eaa5d0
-	knative.dev/reconciler-test v0.0.0-20230420091239-6c21623d2555
+	knative.dev/eventing v0.37.1-0.20230503104255-7a90c46b4c70
+	knative.dev/hack v0.0.0-20230501013555-7d81248b4638
+	knative.dev/pkg v0.0.0-20230502134655-db8a35330281
+	knative.dev/reconciler-test v0.0.0-20230503093155-937cf5922570
 	sigs.k8s.io/controller-runtime v0.11.2
 )
 
diff --git a/go.sum b/go.sum
index b8c620a7..b0ebbb5b 100644
--- a/go.sum
+++ b/go.sum
@@ -1055,14 +1055,14 @@ k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 h1:MQ8BAZPZlWk3S9K4a9NCkI
 k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1/go.mod h1:C/N6wCaBHeBHkHUesQOQy2/MZqGgMAFPqGsGQLdbZBU=
 k8s.io/utils v0.0.0-20221108210102-8e77b1f39fe2 h1:GfD9OzL11kvZN5iArC6oTS7RTj7oJOIfnislxYlqTj8=
 k8s.io/utils v0.0.0-20221108210102-8e77b1f39fe2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
-knative.dev/eventing v0.37.0 h1:OtX8B9nvUSTNcbbpoNFDyeGaGU/5+aetj94i6oATpQU=
-knative.dev/eventing v0.37.0/go.mod h1:62baPXiw5GPpPyV3f0GF64X7tOjc5x9cg64RAh1gjs4=
-knative.dev/hack v0.0.0-20230417170854-f591fea109b3 h1:+W4WBOq83tfGXKhtv8OB/uJeYqze3zh69GKiz1ucuqk=
-knative.dev/hack v0.0.0-20230417170854-f591fea109b3/go.mod h1:yk2OjGDsbEnQjfxdm0/HJKS2WqTLEFg/N6nUs6Rqx3Q=
-knative.dev/pkg v0.0.0-20230418073056-dfad48eaa5d0 h1:EFQcoUo8I4bc+U3y6tR1B3ONYZSHWUdAfI7Vh7dae8g=
-knative.dev/pkg v0.0.0-20230418073056-dfad48eaa5d0/go.mod h1:2qWPP9Gjh9Q7ETti+WRHnBnGCSCq+6q7m3p/nmUQviE=
-knative.dev/reconciler-test v0.0.0-20230420091239-6c21623d2555 h1:DpYnNF7NiSKgPIh64nwSCAsr+6a48R9DhK9nE8X/+ps=
-knative.dev/reconciler-test v0.0.0-20230420091239-6c21623d2555/go.mod h1:vZihHUKPh+sMzzx2lHgkM2tKr+f/lZqMJ9O7Jw0DaYs=
+knative.dev/eventing v0.37.1-0.20230503104255-7a90c46b4c70 h1:U5zl0rUB2z2bd13AuX9AbVAK79xCvBGpmKzpM1jvq9Q=
+knative.dev/eventing v0.37.1-0.20230503104255-7a90c46b4c70/go.mod h1:HbitxQK/vcsKt+V/kac05FKF1K8zqoKvg0ka2vBns0U=
+knative.dev/hack v0.0.0-20230501013555-7d81248b4638 h1:9IuXHdwp5jNmIg+0LVTQr8o4u0FYD99uCfynM9tS0XY=
+knative.dev/hack v0.0.0-20230501013555-7d81248b4638/go.mod h1:yk2OjGDsbEnQjfxdm0/HJKS2WqTLEFg/N6nUs6Rqx3Q=
+knative.dev/pkg v0.0.0-20230502134655-db8a35330281 h1:9mN8O5XO68DKlkzEhFAShUx+O/I+TQR71vmTvYt8oF4=
+knative.dev/pkg v0.0.0-20230502134655-db8a35330281/go.mod h1:2qWPP9Gjh9Q7ETti+WRHnBnGCSCq+6q7m3p/nmUQviE=
+knative.dev/reconciler-test v0.0.0-20230503093155-937cf5922570 h1:4vbk91V/3Ds+fzB2UyesuPrrBgxs2W4bhcS4qaLwBoI=
+knative.dev/reconciler-test v0.0.0-20230503093155-937cf5922570/go.mod h1:vZihHUKPh+sMzzx2lHgkM2tKr+f/lZqMJ9O7Jw0DaYs=
 pgregory.net/rapid v0.3.3 h1:jCjBsY4ln4Atz78QoBWxUEvAHaFyNDQg9+WU62aCn1U=
 pgregory.net/rapid v0.3.3/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
diff --git a/vendor/knative.dev/eventing/pkg/adapter/v2/cloudevents.go b/vendor/knative.dev/eventing/pkg/adapter/v2/cloudevents.go
index dae960b5..980689b2 100644
--- a/vendor/knative.dev/eventing/pkg/adapter/v2/cloudevents.go
+++ b/vendor/knative.dev/eventing/pkg/adapter/v2/cloudevents.go
@@ -40,9 +40,18 @@ import (
 	obsclient "knative.dev/eventing/pkg/observability/client"
 )
 
+type closeIdler interface {
+	CloseIdleConnections()
+}
+
+type Client interface {
+	cloudevents.Client
+	closeIdler
+}
+
 var newClientHTTPObserved = NewClientHTTPObserved
 
-func NewClientHTTPObserved(topt []http.Option, copt []ceclient.Option) (ceclient.Client, error) {
+func NewClientHTTPObserved(topt []http.Option, copt []ceclient.Option) (Client, error) {
 	t, err := obshttp.NewObservedHTTP(topt...)
 	if err != nil {
 		return nil, err
@@ -55,85 +64,134 @@ func NewClientHTTPObserved(topt []http.Option, copt []ceclient.Option) (ceclient
 		return nil, err
 	}
 
-	return c, nil
+	return &client{
+		ceClient: c,
+	}, nil
 }
 
 // NewCloudEventsClient returns a client that will apply the ceOverrides to
 // outbound events and report outbound event counts.
-func NewCloudEventsClient(target string, ceOverrides *duckv1.CloudEventOverrides, reporter source.StatsReporter) (cloudevents.Client, error) {
+func NewCloudEventsClient(target string, ceOverrides *duckv1.CloudEventOverrides, reporter source.StatsReporter) (Client, error) {
 	opts := make([]http.Option, 0)
 	if len(target) > 0 {
 		opts = append(opts, cloudevents.WithTarget(target))
 	}
-	return newCloudEventsClientCRStatus(nil, ceOverrides, reporter, nil, opts...)
+	return NewClient(ClientConfig{
+		CeOverrides: ceOverrides,
+		Reporter:    reporter,
+		Options:     opts,
+	})
 }
 
 // NewCloudEventsClientWithOptions returns a client created with provided options
-func NewCloudEventsClientWithOptions(ceOverrides *duckv1.CloudEventOverrides, reporter source.StatsReporter, opts ...http.Option) (cloudevents.Client, error) {
-	return newCloudEventsClientCRStatus(nil, ceOverrides, reporter, nil, opts...)
+func NewCloudEventsClientWithOptions(ceOverrides *duckv1.CloudEventOverrides, reporter source.StatsReporter, opts ...http.Option) (Client, error) {
+	return NewClient(ClientConfig{
+		CeOverrides: ceOverrides,
+		Reporter:    reporter,
+		Options:     opts,
+	})
 }
 
 // NewCloudEventsClientCRStatus returns a client CR status
-func NewCloudEventsClientCRStatus(env EnvConfigAccessor, reporter source.StatsReporter, crStatusEventClient *crstatusevent.CRStatusEventClient) (cloudevents.Client, error) {
-	return newCloudEventsClientCRStatus(env, nil, reporter, crStatusEventClient)
+func NewCloudEventsClientCRStatus(env EnvConfigAccessor, reporter source.StatsReporter, crStatusEventClient *crstatusevent.CRStatusEventClient) (Client, error) {
+	return NewClient(ClientConfig{
+		Env:                 env,
+		Reporter:            reporter,
+		CrStatusEventClient: crStatusEventClient,
+	})
 }
-func newCloudEventsClientCRStatus(env EnvConfigAccessor, ceOverrides *duckv1.CloudEventOverrides, reporter source.StatsReporter,
-	crStatusEventClient *crstatusevent.CRStatusEventClient, opts ...http.Option) (cloudevents.Client, error) {
 
-	pOpts := make([]http.Option, 0)
-	pOpts = append(pOpts, cloudevents.WithRoundTripper(&ochttp.Transport{
+type ClientConfig struct {
+	Env                 EnvConfigAccessor
+	CeOverrides         *duckv1.CloudEventOverrides
+	Reporter            source.StatsReporter
+	CrStatusEventClient *crstatusevent.CRStatusEventClient
+	Options             []http.Option
+
+	Client Client
+}
+
+type clientConfigKey struct{}
+
+func withClientConfig(ctx context.Context, r ClientConfig) context.Context {
+	return context.WithValue(ctx, clientConfigKey{}, r)
+}
+
+func GetClientConfig(ctx context.Context) ClientConfig {
+	val := ctx.Value(clientConfigKey{})
+	if val == nil {
+		return ClientConfig{}
+	}
+	return val.(ClientConfig)
+}
+
+func NewClient(cfg ClientConfig) (Client, error) {
+	if cfg.Client != nil {
+		return cfg.Client, nil
+	}
+
+	transport := &ochttp.Transport{
 		Propagation: tracecontextb3.TraceContextEgress,
-	}))
+	}
+
+	pOpts := make([]http.Option, 0)
+	var closeIdler closeIdler = nethttp.DefaultTransport.(*nethttp.Transport)
 
-	if env != nil {
-		if target := env.GetSink(); len(target) > 0 {
+	ceOverrides := cfg.CeOverrides
+	if cfg.Env != nil {
+		if target := cfg.Env.GetSink(); len(target) > 0 {
 			pOpts = append(pOpts, cloudevents.WithTarget(target))
 		}
-		if sinkWait := env.GetSinktimeout(); sinkWait > 0 {
+		if sinkWait := cfg.Env.GetSinktimeout(); sinkWait > 0 {
 			pOpts = append(pOpts, setTimeOut(time.Duration(sinkWait)*time.Second))
 		}
-		if caCerts := env.GetCACerts(); (caCerts != nil && *caCerts != "") && eventingtls.IsHttpsSink(env.GetSink()) {
+		if caCerts := cfg.Env.GetCACerts(); (caCerts != nil && *caCerts != "") && eventingtls.IsHttpsSink(cfg.Env.GetSink()) {
 			var err error
 
 			clientConfig := eventingtls.NewDefaultClientConfig()
 			clientConfig.CACerts = caCerts
 
-			transport := nethttp.DefaultTransport.(*nethttp.Transport).Clone()
-			transport.TLSClientConfig, err = eventingtls.GetTLSClientConfig(clientConfig)
+			httpTransport := nethttp.DefaultTransport.(*nethttp.Transport).Clone()
+			httpTransport.TLSClientConfig, err = eventingtls.GetTLSClientConfig(clientConfig)
 			if err != nil {
 				return nil, err
 			}
 
-			pOpts = append(pOpts, http.WithRoundTripper(&ochttp.Transport{
-				Base:        transport,
+			closeIdler = httpTransport
+
+			transport = &ochttp.Transport{
+				Base:        httpTransport,
 				Propagation: tracecontextb3.TraceContextEgress,
-			}))
+			}
 		}
 		if ceOverrides == nil {
 			var err error
-			ceOverrides, err = env.GetCloudEventOverrides()
+			ceOverrides, err = cfg.Env.GetCloudEventOverrides()
 			if err != nil {
 				return nil, err
 			}
 		}
 	}
 
+	pOpts = append(pOpts, http.WithRoundTripper(transport))
+
 	// Make sure that explicitly set options have priority
-	opts = append(pOpts, opts...)
+	opts := append(pOpts, cfg.Options...)
 
 	ceClient, err := newClientHTTPObserved(opts, nil)
 
-	if crStatusEventClient == nil {
-		crStatusEventClient = crstatusevent.GetDefaultClient()
+	if cfg.CrStatusEventClient == nil {
+		cfg.CrStatusEventClient = crstatusevent.GetDefaultClient()
 	}
 	if err != nil {
 		return nil, err
 	}
 	return &client{
 		ceClient:            ceClient,
+		closeIdler:          closeIdler,
 		ceOverrides:         ceOverrides,
-		reporter:            reporter,
-		crStatusEventClient: crStatusEventClient,
+		reporter:            cfg.Reporter,
+		crStatusEventClient: cfg.CrStatusEventClient,
 	}, nil
 }
 
@@ -155,6 +213,11 @@ type client struct {
 	ceOverrides         *duckv1.CloudEventOverrides
 	reporter            source.StatsReporter
 	crStatusEventClient *crstatusevent.CRStatusEventClient
+	closeIdler          closeIdler
+}
+
+func (c *client) CloseIdleConnections() {
+	c.closeIdler.CloseIdleConnections()
 }
 
 var _ cloudevents.Client = (*client)(nil)
@@ -189,6 +252,9 @@ func (c *client) applyOverrides(event *cloudevents.Event) {
 }
 
 func (c *client) reportMetrics(ctx context.Context, event cloudevents.Event, result protocol.Result) {
+	if c.reporter == nil {
+		return
+	}
 	tags := MetricTagFromContext(ctx)
 	reportArgs := &source.ReportArgs{
 		Namespace:     tags.Namespace,
diff --git a/vendor/knative.dev/eventing/pkg/adapter/v2/main.go b/vendor/knative.dev/eventing/pkg/adapter/v2/main.go
index 582e468c..a839cd66 100644
--- a/vendor/knative.dev/eventing/pkg/adapter/v2/main.go
+++ b/vendor/knative.dev/eventing/pkg/adapter/v2/main.go
@@ -214,7 +214,14 @@ func MainWithInformers(ctx context.Context, component string, env EnvConfigAcces
 		logger.Errorw("Error building statsreporter", zap.Error(err))
 	}
 
-	eventsClient, err := NewCloudEventsClientCRStatus(env, reporter, crStatusEventClient)
+	clientConfig := ClientConfig{
+		Env:                 env,
+		Reporter:            reporter,
+		CrStatusEventClient: crStatusEventClient,
+	}
+	ctx = withClientConfig(ctx, clientConfig)
+
+	eventsClient, err := NewClient(clientConfig)
 	if err != nil {
 		logger.Fatalw("Error building cloud event client", zap.Error(err))
 	}
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta1/eventtype_conversion.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta1/eventtype_conversion.go
index 011a013e..663c8233 100644
--- a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta1/eventtype_conversion.go
+++ b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta1/eventtype_conversion.go
@@ -18,17 +18,55 @@ package v1beta1
 
 import (
 	"context"
-	"fmt"
+
+	"knative.dev/eventing/pkg/apis/eventing/v1beta2"
 
 	"knative.dev/pkg/apis"
 )
 
 // ConvertTo implements apis.Convertible
-func (source *EventType) ConvertTo(ctx context.Context, to apis.Convertible) error {
-	return fmt.Errorf("v1beta1 is the highest known version, got: %T", to)
+func (source *EventType) ConvertTo(ctx context.Context, obj apis.Convertible) error {
+	switch sink := obj.(type) {
+	case *v1beta2.EventType:
+		sink.ObjectMeta = source.ObjectMeta
+		sink.Status = v1beta2.EventTypeStatus{
+			Status: source.Status.Status,
+		}
+		sink.Spec = v1beta2.EventTypeSpec{
+			Type:        source.Spec.Type,
+			Source:      source.Spec.Source,
+			Schema:      source.Spec.Schema,
+			SchemaData:  source.Spec.SchemaData,
+			Broker:      source.Spec.Broker,
+			Description: source.Spec.Description,
+		}
+
+		return nil
+	default:
+		return apis.ConvertToViaProxy(ctx, source, &v1beta2.EventType{}, sink)
+	}
 }
 
 // ConvertFrom implements apis.Convertible
-func (sink *EventType) ConvertFrom(ctx context.Context, from apis.Convertible) error {
-	return fmt.Errorf("v1beta1 is the highest known version, got: %T", from)
+func (sink *EventType) ConvertFrom(ctx context.Context, obj apis.Convertible) error {
+	switch source := obj.(type) {
+	case *v1beta2.EventType:
+		sink.ObjectMeta = source.ObjectMeta
+		sink.Status = EventTypeStatus{
+			Status: source.Status.Status,
+		}
+
+		sink.Spec = EventTypeSpec{
+			Type:        source.Spec.Type,
+			Source:      source.Spec.Source,
+			Schema:      source.Spec.Schema,
+			SchemaData:  source.Spec.SchemaData,
+			Broker:      source.Spec.Broker,
+			Description: source.Spec.Description,
+		}
+
+		return nil
+	default:
+		return apis.ConvertFromViaProxy(ctx, source, &v1beta2.EventType{}, sink)
+	}
 }
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/doc.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/doc.go
new file mode 100644
index 00000000..115faf55
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/doc.go
@@ -0,0 +1,20 @@
+/*
+Copyright 2021 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 v1beta2 is the v1beta2 version of the API.
+// +k8s:deepcopy-gen=package
+// +groupName=eventing.knative.dev
+package v1beta2
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_conversion.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_conversion.go
new file mode 100644
index 00000000..2bdd421a
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_conversion.go
@@ -0,0 +1,34 @@
+/*
+Copyright 2021 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 v1beta2
+
+import (
+	"context"
+	"fmt"
+
+	"knative.dev/pkg/apis"
+)
+
+// ConvertTo implements apis.Convertible
+func (source *EventType) ConvertTo(ctx context.Context, to apis.Convertible) error {
+	return fmt.Errorf("v1beta2 is the highest known version, got: %T", to)
+}
+
+// ConvertFrom implements apis.Convertible
+func (sink *EventType) ConvertFrom(ctx context.Context, from apis.Convertible) error {
+	return fmt.Errorf("v1beta2 is the highest known version, got: %T", from)
+}
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_defaults.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_defaults.go
new file mode 100644
index 00000000..67ae41c8
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_defaults.go
@@ -0,0 +1,29 @@
+/*
+Copyright 2021 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 v1beta2
+
+import "context"
+
+func (et *EventType) SetDefaults(ctx context.Context) {
+	et.Spec.SetDefaults(ctx)
+}
+
+func (ets *EventTypeSpec) SetDefaults(ctx context.Context) {
+	if ets.Broker == "" {
+		ets.Broker = "default"
+	}
+}
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_lifecycle.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_lifecycle.go
new file mode 100644
index 00000000..a8e1bfe8
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_lifecycle.go
@@ -0,0 +1,104 @@
+/*
+Copyright 2021 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 v1beta2
+
+import (
+	corev1 "k8s.io/api/core/v1"
+
+	eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
+	"knative.dev/pkg/apis"
+)
+
+var eventTypeCondSet = apis.NewLivingConditionSet(EventTypeConditionBrokerExists, EventTypeConditionBrokerReady)
+
+const (
+	EventTypeConditionReady                           = apis.ConditionReady
+	EventTypeConditionBrokerExists apis.ConditionType = "BrokerExists"
+	EventTypeConditionBrokerReady  apis.ConditionType = "BrokerReady"
+)
+
+// GetConditionSet retrieves the condition set for this resource. Implements the KRShaped interface.
+func (*EventType) GetConditionSet() apis.ConditionSet {
+	return eventTypeCondSet
+}
+
+// GetCondition returns the condition currently associated with the given type, or nil.
+func (et *EventTypeStatus) GetCondition(t apis.ConditionType) *apis.Condition {
+	return eventTypeCondSet.Manage(et).GetCondition(t)
+}
+
+// IsReady returns true if the resource is ready overall.
+func (et *EventTypeStatus) IsReady() bool {
+	return eventTypeCondSet.Manage(et).IsHappy()
+}
+
+// GetTopLevelCondition returns the top level Condition.
+func (et *EventTypeStatus) GetTopLevelCondition() *apis.Condition {
+	return eventTypeCondSet.Manage(et).GetTopLevelCondition()
+}
+
+// InitializeConditions sets relevant unset conditions to Unknown state.
+func (et *EventTypeStatus) InitializeConditions() {
+	eventTypeCondSet.Manage(et).InitializeConditions()
+}
+
+func (et *EventTypeStatus) MarkBrokerExists() {
+	eventTypeCondSet.Manage(et).MarkTrue(EventTypeConditionBrokerExists)
+}
+
+func (et *EventTypeStatus) MarkBrokerDoesNotExist() {
+	eventTypeCondSet.Manage(et).MarkFalse(EventTypeConditionBrokerExists, "BrokerDoesNotExist", "Broker does not exist")
+}
+
+func (et *EventTypeStatus) MarkBrokerExistsUnknown(reason, messageFormat string, messageA ...interface{}) {
+	eventTypeCondSet.Manage(et).MarkUnknown(EventTypeConditionBrokerExists, reason, messageFormat, messageA...)
+}
+
+func (et *EventTypeStatus) MarkBrokerReady() {
+	eventTypeCondSet.Manage(et).MarkTrue(EventTypeConditionBrokerReady)
+}
+
+func (et *EventTypeStatus) MarkBrokerFailed(reason, messageFormat string, messageA ...interface{}) {
+	eventTypeCondSet.Manage(et).MarkFalse(EventTypeConditionBrokerReady, reason, messageFormat, messageA...)
+}
+
+func (et *EventTypeStatus) MarkBrokerUnknown(reason, messageFormat string, messageA ...interface{}) {
+	eventTypeCondSet.Manage(et).MarkUnknown(EventTypeConditionBrokerReady, reason, messageFormat, messageA...)
+}
+
+func (et *EventTypeStatus) MarkBrokerNotConfigured() {
+	eventTypeCondSet.Manage(et).MarkUnknown(EventTypeConditionBrokerReady,
+		"BrokerNotConfigured", "Broker has not yet been reconciled.")
+}
+
+func (et *EventTypeStatus) PropagateBrokerStatus(bs *eventingv1.BrokerStatus) {
+	bc := bs.GetConditionSet().Manage(bs).GetTopLevelCondition()
+	if bc == nil {
+		et.MarkBrokerNotConfigured()
+		return
+	}
+	switch {
+	case bc.Status == corev1.ConditionUnknown:
+		et.MarkBrokerUnknown(bc.Reason, bc.Message)
+	case bc.Status == corev1.ConditionTrue:
+		eventTypeCondSet.Manage(et).MarkTrue(EventTypeConditionBrokerReady)
+	case bc.Status == corev1.ConditionFalse:
+		et.MarkBrokerFailed(bc.Reason, bc.Message)
+	default:
+		et.MarkBrokerUnknown("BrokerUnknown", "The status of Broker is invalid: %v", bc.Status)
+	}
+}
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_types.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_types.go
new file mode 100644
index 00000000..e182e2d8
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_types.go
@@ -0,0 +1,120 @@
+/*
+Copyright 2021 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 v1beta2
+
+import (
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	"k8s.io/apimachinery/pkg/runtime"
+	"k8s.io/apimachinery/pkg/runtime/schema"
+	"knative.dev/pkg/apis"
+	duckv1 "knative.dev/pkg/apis/duck/v1"
+	"knative.dev/pkg/kmeta"
+)
+
+// +genclient
+// +genreconciler
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// EventType represents a type of event that can be consumed from a Broker.
+type EventType struct {
+	metav1.TypeMeta `json:",inline"`
+	// +optional
+	metav1.ObjectMeta `json:"metadata,omitempty"`
+
+	// Spec defines the desired state of the EventType.
+	Spec EventTypeSpec `json:"spec,omitempty"`
+
+	// Status represents the current state of the EventType.
+	// This data may be out of date.
+	// +optional
+	// TODO might be removed https://github.com/knative/eventing/issues/2750
+	Status EventTypeStatus `json:"status,omitempty"`
+}
+
+var (
+	// Check that EventType can be validated, can be defaulted, and has immutable fields.
+	_ apis.Validatable = (*EventType)(nil)
+	_ apis.Defaultable = (*EventType)(nil)
+
+	// Check that EventType can return its spec untyped.
+	_ apis.HasSpec = (*EventType)(nil)
+
+	_ runtime.Object = (*EventType)(nil)
+
+	// Check that we can create OwnerReferences to an EventType.
+	_ kmeta.OwnerRefable = (*EventType)(nil)
+
+	// Check that the type conforms to the duck Knative Resource shape.
+	_ duckv1.KRShaped = (*EventType)(nil)
+)
+
+type EventTypeSpec struct {
+	// Type represents the CloudEvents type. It is authoritative.
+	Type string `json:"type"`
+	// Source is a URI, it represents the CloudEvents source.
+	// +optional
+	Source *apis.URL `json:"source,omitempty"`
+	// Schema is a URI, it represents the CloudEvents schemaurl extension attribute.
+	// It may be a JSON schema, a protobuf schema, etc. It is optional.
+	// +optional
+	Schema *apis.URL `json:"schema,omitempty"`
+	// SchemaData allows the CloudEvents schema to be stored directly in the
+	// EventType. Content is dependent on the encoding. Optional attribute.
+	// The contents are not validated or manipulated by the system.
+	// +optional
+	SchemaData string `json:"schemaData,omitempty"`
+	// TODO remove https://github.com/knative/eventing/issues/2750
+	// Broker refers to the Broker that can provide the EventType.
+	// +optional
+	Broker string `json:"broker,omitempty"`
+	// Description is an optional field used to describe the EventType, in any meaningful way.
+	// +optional
+	Description string `json:"description,omitempty"`
+}
+
+// EventTypeStatus represents the current state of a EventType.
+type EventTypeStatus struct {
+	// inherits duck/v1 Status, which currently provides:
+	// * ObservedGeneration - the 'Generation' of the Service that was last processed by the controller.
+	// * Conditions - the latest available observations of a resource's current state.
+	duckv1.Status `json:",inline"`
+}
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// EventTypeList is a collection of EventTypes.
+type EventTypeList struct {
+	metav1.TypeMeta `json:",inline"`
+	// +optional
+	metav1.ListMeta `json:"metadata,omitempty"`
+	Items           []EventType `json:"items"`
+}
+
+// GetGroupVersionKind returns GroupVersionKind for EventType
+func (p *EventType) GetGroupVersionKind() schema.GroupVersionKind {
+	return SchemeGroupVersion.WithKind("EventType")
+}
+
+// GetUntypedSpec returns the spec of the EventType.
+func (e *EventType) GetUntypedSpec() interface{} {
+	return e.Spec
+}
+
+// GetStatus retrieves the status of the EventType. Implements the KRShaped interface.
+func (t *EventType) GetStatus() *duckv1.Status {
+	return &t.Status.Status
+}
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_validation.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_validation.go
new file mode 100644
index 00000000..5e610aad
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/eventtype_validation.go
@@ -0,0 +1,62 @@
+/*
+Copyright 2021 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 v1beta2
+
+import (
+	"context"
+
+	"knative.dev/pkg/apis"
+	"knative.dev/pkg/kmp"
+)
+
+func (et *EventType) Validate(ctx context.Context) *apis.FieldError {
+	return et.Spec.Validate(ctx).ViaField("spec")
+}
+
+func (ets *EventTypeSpec) Validate(ctx context.Context) *apis.FieldError {
+	var errs *apis.FieldError
+	if ets.Type == "" {
+		fe := apis.ErrMissingField("type")
+		errs = errs.Also(fe)
+	}
+	// TODO validate Source is a valid URI.
+	// TODO validate Schema is a valid URI.
+	// There is no validation of the SchemaData, it is application specific data.
+	return errs
+}
+
+func (et *EventType) CheckImmutableFields(ctx context.Context, original *EventType) *apis.FieldError {
+	if original == nil {
+		return nil
+	}
+
+	// All fields are immutable.
+	if diff, err := kmp.ShortDiff(original.Spec, et.Spec); err != nil {
+		return &apis.FieldError{
+			Message: "Failed to diff EventType",
+			Paths:   []string{"spec"},
+			Details: err.Error(),
+		}
+	} else if diff != "" {
+		return &apis.FieldError{
+			Message: "Immutable fields changed (-old +new)",
+			Paths:   []string{"spec"},
+			Details: diff,
+		}
+	}
+	return nil
+}
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/register.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/register.go
new file mode 100644
index 00000000..ef8f01ca
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/register.go
@@ -0,0 +1,53 @@
+/*
+Copyright 2021 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 v1beta2
+
+import (
+	"knative.dev/eventing/pkg/apis/eventing"
+
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	"k8s.io/apimachinery/pkg/runtime"
+	"k8s.io/apimachinery/pkg/runtime/schema"
+)
+
+// SchemeGroupVersion is group version used to register these objects
+var SchemeGroupVersion = schema.GroupVersion{Group: eventing.GroupName, Version: "v1beta2"}
+
+// Kind takes an unqualified kind and returns back a Group qualified GroupKind
+func Kind(kind string) schema.GroupKind {
+	return SchemeGroupVersion.WithKind(kind).GroupKind()
+}
+
+// Resource takes an unqualified resource and returns a Group qualified GroupResource
+func Resource(resource string) schema.GroupResource {
+	return SchemeGroupVersion.WithResource(resource).GroupResource()
+}
+
+var (
+	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
+	AddToScheme   = SchemeBuilder.AddToScheme
+)
+
+// Adds the list of known types to Scheme.
+func addKnownTypes(scheme *runtime.Scheme) error {
+	scheme.AddKnownTypes(SchemeGroupVersion,
+		&EventType{},
+		&EventTypeList{},
+	)
+	metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
+	return nil
+}
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/zz_generated.deepcopy.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/zz_generated.deepcopy.go
new file mode 100644
index 00000000..3163151d
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta2/zz_generated.deepcopy.go
@@ -0,0 +1,131 @@
+//go:build !ignore_autogenerated
+// +build !ignore_autogenerated
+
+/*
+Copyright 2021 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 deepcopy-gen. DO NOT EDIT.
+
+package v1beta2
+
+import (
+	runtime "k8s.io/apimachinery/pkg/runtime"
+	apis "knative.dev/pkg/apis"
+)
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EventType) DeepCopyInto(out *EventType) {
+	*out = *in
+	out.TypeMeta = in.TypeMeta
+	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+	in.Spec.DeepCopyInto(&out.Spec)
+	in.Status.DeepCopyInto(&out.Status)
+	return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventType.
+func (in *EventType) DeepCopy() *EventType {
+	if in == nil {
+		return nil
+	}
+	out := new(EventType)
+	in.DeepCopyInto(out)
+	return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *EventType) DeepCopyObject() runtime.Object {
+	if c := in.DeepCopy(); c != nil {
+		return c
+	}
+	return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EventTypeList) DeepCopyInto(out *EventTypeList) {
+	*out = *in
+	out.TypeMeta = in.TypeMeta
+	in.ListMeta.DeepCopyInto(&out.ListMeta)
+	if in.Items != nil {
+		in, out := &in.Items, &out.Items
+		*out = make([]EventType, len(*in))
+		for i := range *in {
+			(*in)[i].DeepCopyInto(&(*out)[i])
+		}
+	}
+	return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventTypeList.
+func (in *EventTypeList) DeepCopy() *EventTypeList {
+	if in == nil {
+		return nil
+	}
+	out := new(EventTypeList)
+	in.DeepCopyInto(out)
+	return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *EventTypeList) DeepCopyObject() runtime.Object {
+	if c := in.DeepCopy(); c != nil {
+		return c
+	}
+	return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EventTypeSpec) DeepCopyInto(out *EventTypeSpec) {
+	*out = *in
+	if in.Source != nil {
+		in, out := &in.Source, &out.Source
+		*out = new(apis.URL)
+		(*in).DeepCopyInto(*out)
+	}
+	if in.Schema != nil {
+		in, out := &in.Schema, &out.Schema
+		*out = new(apis.URL)
+		(*in).DeepCopyInto(*out)
+	}
+	return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventTypeSpec.
+func (in *EventTypeSpec) DeepCopy() *EventTypeSpec {
+	if in == nil {
+		return nil
+	}
+	out := new(EventTypeSpec)
+	in.DeepCopyInto(out)
+	return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EventTypeStatus) DeepCopyInto(out *EventTypeStatus) {
+	*out = *in
+	in.Status.DeepCopyInto(&out.Status)
+	return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventTypeStatus.
+func (in *EventTypeStatus) DeepCopy() *EventTypeStatus {
+	if in == nil {
+		return nil
+	}
+	out := new(EventTypeStatus)
+	in.DeepCopyInto(out)
+	return out
+}
diff --git a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/clientset.go b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/clientset.go
index 0a807519..029b89ef 100644
--- a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/clientset.go
+++ b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/clientset.go
@@ -27,6 +27,7 @@ import (
 	flowcontrol "k8s.io/client-go/util/flowcontrol"
 	eventingv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1"
 	eventingv1beta1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta1"
+	eventingv1beta2 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2"
 	flowsv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/flows/v1"
 	messagingv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/messaging/v1"
 	sourcesv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1"
@@ -36,6 +37,7 @@ import (
 type Interface interface {
 	Discovery() discovery.DiscoveryInterface
 	EventingV1beta1() eventingv1beta1.EventingV1beta1Interface
+	EventingV1beta2() eventingv1beta2.EventingV1beta2Interface
 	EventingV1() eventingv1.EventingV1Interface
 	FlowsV1() flowsv1.FlowsV1Interface
 	MessagingV1() messagingv1.MessagingV1Interface
@@ -48,6 +50,7 @@ type Interface interface {
 type Clientset struct {
 	*discovery.DiscoveryClient
 	eventingV1beta1 *eventingv1beta1.EventingV1beta1Client
+	eventingV1beta2 *eventingv1beta2.EventingV1beta2Client
 	eventingV1      *eventingv1.EventingV1Client
 	flowsV1         *flowsv1.FlowsV1Client
 	messagingV1     *messagingv1.MessagingV1Client
@@ -60,6 +63,11 @@ func (c *Clientset) EventingV1beta1() eventingv1beta1.EventingV1beta1Interface {
 	return c.eventingV1beta1
 }
 
+// EventingV1beta2 retrieves the EventingV1beta2Client
+func (c *Clientset) EventingV1beta2() eventingv1beta2.EventingV1beta2Interface {
+	return c.eventingV1beta2
+}
+
 // EventingV1 retrieves the EventingV1Client
 func (c *Clientset) EventingV1() eventingv1.EventingV1Interface {
 	return c.eventingV1
@@ -133,6 +141,10 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset,
 	if err != nil {
 		return nil, err
 	}
+	cs.eventingV1beta2, err = eventingv1beta2.NewForConfigAndClient(&configShallowCopy, httpClient)
+	if err != nil {
+		return nil, err
+	}
 	cs.eventingV1, err = eventingv1.NewForConfigAndClient(&configShallowCopy, httpClient)
 	if err != nil {
 		return nil, err
@@ -175,6 +187,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset {
 func New(c rest.Interface) *Clientset {
 	var cs Clientset
 	cs.eventingV1beta1 = eventingv1beta1.New(c)
+	cs.eventingV1beta2 = eventingv1beta2.New(c)
 	cs.eventingV1 = eventingv1.New(c)
 	cs.flowsV1 = flowsv1.New(c)
 	cs.messagingV1 = messagingv1.New(c)
diff --git a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/fake/clientset_generated.go b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/fake/clientset_generated.go
index 5a81e7fe..01ff7244 100644
--- a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/fake/clientset_generated.go
+++ b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/fake/clientset_generated.go
@@ -29,6 +29,8 @@ import (
 	fakeeventingv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1/fake"
 	eventingv1beta1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta1"
 	fakeeventingv1beta1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta1/fake"
+	eventingv1beta2 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2"
+	fakeeventingv1beta2 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/fake"
 	flowsv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/flows/v1"
 	fakeflowsv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/flows/v1/fake"
 	messagingv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/messaging/v1"
@@ -94,6 +96,11 @@ func (c *Clientset) EventingV1beta1() eventingv1beta1.EventingV1beta1Interface {
 	return &fakeeventingv1beta1.FakeEventingV1beta1{Fake: &c.Fake}
 }
 
+// EventingV1beta2 retrieves the EventingV1beta2Client
+func (c *Clientset) EventingV1beta2() eventingv1beta2.EventingV1beta2Interface {
+	return &fakeeventingv1beta2.FakeEventingV1beta2{Fake: &c.Fake}
+}
+
 // EventingV1 retrieves the EventingV1Client
 func (c *Clientset) EventingV1() eventingv1.EventingV1Interface {
 	return &fakeeventingv1.FakeEventingV1{Fake: &c.Fake}
diff --git a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/fake/register.go b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/fake/register.go
index 5feb41ac..88a24b5e 100644
--- a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/fake/register.go
+++ b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/fake/register.go
@@ -26,6 +26,7 @@ import (
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
 	eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
 	eventingv1beta1 "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventingv1beta2 "knative.dev/eventing/pkg/apis/eventing/v1beta2"
 	flowsv1 "knative.dev/eventing/pkg/apis/flows/v1"
 	messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
 	sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
@@ -37,6 +38,7 @@ var codecs = serializer.NewCodecFactory(scheme)
 
 var localSchemeBuilder = runtime.SchemeBuilder{
 	eventingv1beta1.AddToScheme,
+	eventingv1beta2.AddToScheme,
 	eventingv1.AddToScheme,
 	flowsv1.AddToScheme,
 	messagingv1.AddToScheme,
diff --git a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/scheme/register.go b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/scheme/register.go
index 710aacfe..f763a668 100644
--- a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/scheme/register.go
+++ b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/scheme/register.go
@@ -26,6 +26,7 @@ import (
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
 	eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
 	eventingv1beta1 "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventingv1beta2 "knative.dev/eventing/pkg/apis/eventing/v1beta2"
 	flowsv1 "knative.dev/eventing/pkg/apis/flows/v1"
 	messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
 	sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
@@ -37,6 +38,7 @@ var Codecs = serializer.NewCodecFactory(Scheme)
 var ParameterCodec = runtime.NewParameterCodec(Scheme)
 var localSchemeBuilder = runtime.SchemeBuilder{
 	eventingv1beta1.AddToScheme,
+	eventingv1beta2.AddToScheme,
 	eventingv1.AddToScheme,
 	flowsv1.AddToScheme,
 	messagingv1.AddToScheme,
diff --git a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/doc.go b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/doc.go
new file mode 100644
index 00000000..07add715
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/doc.go
@@ -0,0 +1,20 @@
+/*
+Copyright 2021 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 client-gen. DO NOT EDIT.
+
+// This package has the automatically generated typed clients.
+package v1beta2
diff --git a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/eventing_client.go b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/eventing_client.go
new file mode 100644
index 00000000..ced74363
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/eventing_client.go
@@ -0,0 +1,107 @@
+/*
+Copyright 2021 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 client-gen. DO NOT EDIT.
+
+package v1beta2
+
+import (
+	"net/http"
+
+	rest "k8s.io/client-go/rest"
+	v1beta2 "knative.dev/eventing/pkg/apis/eventing/v1beta2"
+	"knative.dev/eventing/pkg/client/clientset/versioned/scheme"
+)
+
+type EventingV1beta2Interface interface {
+	RESTClient() rest.Interface
+	EventTypesGetter
+}
+
+// EventingV1beta2Client is used to interact with features provided by the eventing.knative.dev group.
+type EventingV1beta2Client struct {
+	restClient rest.Interface
+}
+
+func (c *EventingV1beta2Client) EventTypes(namespace string) EventTypeInterface {
+	return newEventTypes(c, namespace)
+}
+
+// NewForConfig creates a new EventingV1beta2Client for the given config.
+// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),
+// where httpClient was generated with rest.HTTPClientFor(c).
+func NewForConfig(c *rest.Config) (*EventingV1beta2Client, error) {
+	config := *c
+	if err := setConfigDefaults(&config); err != nil {
+		return nil, err
+	}
+	httpClient, err := rest.HTTPClientFor(&config)
+	if err != nil {
+		return nil, err
+	}
+	return NewForConfigAndClient(&config, httpClient)
+}
+
+// NewForConfigAndClient creates a new EventingV1beta2Client for the given config and http client.
+// Note the http client provided takes precedence over the configured transport values.
+func NewForConfigAndClient(c *rest.Config, h *http.Client) (*EventingV1beta2Client, error) {
+	config := *c
+	if err := setConfigDefaults(&config); err != nil {
+		return nil, err
+	}
+	client, err := rest.RESTClientForConfigAndClient(&config, h)
+	if err != nil {
+		return nil, err
+	}
+	return &EventingV1beta2Client{client}, nil
+}
+
+// NewForConfigOrDie creates a new EventingV1beta2Client for the given config and
+// panics if there is an error in the config.
+func NewForConfigOrDie(c *rest.Config) *EventingV1beta2Client {
+	client, err := NewForConfig(c)
+	if err != nil {
+		panic(err)
+	}
+	return client
+}
+
+// New creates a new EventingV1beta2Client for the given RESTClient.
+func New(c rest.Interface) *EventingV1beta2Client {
+	return &EventingV1beta2Client{c}
+}
+
+func setConfigDefaults(config *rest.Config) error {
+	gv := v1beta2.SchemeGroupVersion
+	config.GroupVersion = &gv
+	config.APIPath = "/apis"
+	config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
+
+	if config.UserAgent == "" {
+		config.UserAgent = rest.DefaultKubernetesUserAgent()
+	}
+
+	return nil
+}
+
+// RESTClient returns a RESTClient that is used to communicate
+// with API server by this client implementation.
+func (c *EventingV1beta2Client) RESTClient() rest.Interface {
+	if c == nil {
+		return nil
+	}
+	return c.restClient
+}
diff --git a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/eventtype.go b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/eventtype.go
new file mode 100644
index 00000000..95ba7873
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/eventtype.go
@@ -0,0 +1,195 @@
+/*
+Copyright 2021 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 client-gen. DO NOT EDIT.
+
+package v1beta2
+
+import (
+	"context"
+	"time"
+
+	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	types "k8s.io/apimachinery/pkg/types"
+	watch "k8s.io/apimachinery/pkg/watch"
+	rest "k8s.io/client-go/rest"
+	v1beta2 "knative.dev/eventing/pkg/apis/eventing/v1beta2"
+	scheme "knative.dev/eventing/pkg/client/clientset/versioned/scheme"
+)
+
+// EventTypesGetter has a method to return a EventTypeInterface.
+// A group's client should implement this interface.
+type EventTypesGetter interface {
+	EventTypes(namespace string) EventTypeInterface
+}
+
+// EventTypeInterface has methods to work with EventType resources.
+type EventTypeInterface interface {
+	Create(ctx context.Context, eventType *v1beta2.EventType, opts v1.CreateOptions) (*v1beta2.EventType, error)
+	Update(ctx context.Context, eventType *v1beta2.EventType, opts v1.UpdateOptions) (*v1beta2.EventType, error)
+	UpdateStatus(ctx context.Context, eventType *v1beta2.EventType, opts v1.UpdateOptions) (*v1beta2.EventType, error)
+	Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
+	DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
+	Get(ctx context.Context, name string, opts v1.GetOptions) (*v1beta2.EventType, error)
+	List(ctx context.Context, opts v1.ListOptions) (*v1beta2.EventTypeList, error)
+	Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
+	Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.EventType, err error)
+	EventTypeExpansion
+}
+
+// eventTypes implements EventTypeInterface
+type eventTypes struct {
+	client rest.Interface
+	ns     string
+}
+
+// newEventTypes returns a EventTypes
+func newEventTypes(c *EventingV1beta2Client, namespace string) *eventTypes {
+	return &eventTypes{
+		client: c.RESTClient(),
+		ns:     namespace,
+	}
+}
+
+// Get takes name of the eventType, and returns the corresponding eventType object, and an error if there is any.
+func (c *eventTypes) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.EventType, err error) {
+	result = &v1beta2.EventType{}
+	err = c.client.Get().
+		Namespace(c.ns).
+		Resource("eventtypes").
+		Name(name).
+		VersionedParams(&options, scheme.ParameterCodec).
+		Do(ctx).
+		Into(result)
+	return
+}
+
+// List takes label and field selectors, and returns the list of EventTypes that match those selectors.
+func (c *eventTypes) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.EventTypeList, err error) {
+	var timeout time.Duration
+	if opts.TimeoutSeconds != nil {
+		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+	}
+	result = &v1beta2.EventTypeList{}
+	err = c.client.Get().
+		Namespace(c.ns).
+		Resource("eventtypes").
+		VersionedParams(&opts, scheme.ParameterCodec).
+		Timeout(timeout).
+		Do(ctx).
+		Into(result)
+	return
+}
+
+// Watch returns a watch.Interface that watches the requested eventTypes.
+func (c *eventTypes) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
+	var timeout time.Duration
+	if opts.TimeoutSeconds != nil {
+		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+	}
+	opts.Watch = true
+	return c.client.Get().
+		Namespace(c.ns).
+		Resource("eventtypes").
+		VersionedParams(&opts, scheme.ParameterCodec).
+		Timeout(timeout).
+		Watch(ctx)
+}
+
+// Create takes the representation of a eventType and creates it.  Returns the server's representation of the eventType, and an error, if there is any.
+func (c *eventTypes) Create(ctx context.Context, eventType *v1beta2.EventType, opts v1.CreateOptions) (result *v1beta2.EventType, err error) {
+	result = &v1beta2.EventType{}
+	err = c.client.Post().
+		Namespace(c.ns).
+		Resource("eventtypes").
+		VersionedParams(&opts, scheme.ParameterCodec).
+		Body(eventType).
+		Do(ctx).
+		Into(result)
+	return
+}
+
+// Update takes the representation of a eventType and updates it. Returns the server's representation of the eventType, and an error, if there is any.
+func (c *eventTypes) Update(ctx context.Context, eventType *v1beta2.EventType, opts v1.UpdateOptions) (result *v1beta2.EventType, err error) {
+	result = &v1beta2.EventType{}
+	err = c.client.Put().
+		Namespace(c.ns).
+		Resource("eventtypes").
+		Name(eventType.Name).
+		VersionedParams(&opts, scheme.ParameterCodec).
+		Body(eventType).
+		Do(ctx).
+		Into(result)
+	return
+}
+
+// UpdateStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
+func (c *eventTypes) UpdateStatus(ctx context.Context, eventType *v1beta2.EventType, opts v1.UpdateOptions) (result *v1beta2.EventType, err error) {
+	result = &v1beta2.EventType{}
+	err = c.client.Put().
+		Namespace(c.ns).
+		Resource("eventtypes").
+		Name(eventType.Name).
+		SubResource("status").
+		VersionedParams(&opts, scheme.ParameterCodec).
+		Body(eventType).
+		Do(ctx).
+		Into(result)
+	return
+}
+
+// Delete takes name of the eventType and deletes it. Returns an error if one occurs.
+func (c *eventTypes) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
+	return c.client.Delete().
+		Namespace(c.ns).
+		Resource("eventtypes").
+		Name(name).
+		Body(&opts).
+		Do(ctx).
+		Error()
+}
+
+// DeleteCollection deletes a collection of objects.
+func (c *eventTypes) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
+	var timeout time.Duration
+	if listOpts.TimeoutSeconds != nil {
+		timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
+	}
+	return c.client.Delete().
+		Namespace(c.ns).
+		Resource("eventtypes").
+		VersionedParams(&listOpts, scheme.ParameterCodec).
+		Timeout(timeout).
+		Body(&opts).
+		Do(ctx).
+		Error()
+}
+
+// Patch applies the patch and returns the patched eventType.
+func (c *eventTypes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.EventType, err error) {
+	result = &v1beta2.EventType{}
+	err = c.client.Patch(pt).
+		Namespace(c.ns).
+		Resource("eventtypes").
+		Name(name).
+		SubResource(subresources...).
+		VersionedParams(&opts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
diff --git a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/fake/doc.go b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/fake/doc.go
new file mode 100644
index 00000000..40528db3
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/fake/doc.go
@@ -0,0 +1,20 @@
+/*
+Copyright 2021 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 client-gen. DO NOT EDIT.
+
+// Package fake has the automatically generated clients.
+package fake
diff --git a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/fake/fake_eventing_client.go b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/fake/fake_eventing_client.go
new file mode 100644
index 00000000..784f0a65
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/fake/fake_eventing_client.go
@@ -0,0 +1,40 @@
+/*
+Copyright 2021 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 client-gen. DO NOT EDIT.
+
+package fake
+
+import (
+	rest "k8s.io/client-go/rest"
+	testing "k8s.io/client-go/testing"
+	v1beta2 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2"
+)
+
+type FakeEventingV1beta2 struct {
+	*testing.Fake
+}
+
+func (c *FakeEventingV1beta2) EventTypes(namespace string) v1beta2.EventTypeInterface {
+	return &FakeEventTypes{c, namespace}
+}
+
+// RESTClient returns a RESTClient that is used to communicate
+// with API server by this client implementation.
+func (c *FakeEventingV1beta2) RESTClient() rest.Interface {
+	var ret *rest.RESTClient
+	return ret
+}
diff --git a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/fake/fake_eventtype.go b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/fake/fake_eventtype.go
new file mode 100644
index 00000000..d348f36a
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/fake/fake_eventtype.go
@@ -0,0 +1,142 @@
+/*
+Copyright 2021 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 client-gen. DO NOT EDIT.
+
+package fake
+
+import (
+	"context"
+
+	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	labels "k8s.io/apimachinery/pkg/labels"
+	schema "k8s.io/apimachinery/pkg/runtime/schema"
+	types "k8s.io/apimachinery/pkg/types"
+	watch "k8s.io/apimachinery/pkg/watch"
+	testing "k8s.io/client-go/testing"
+	v1beta2 "knative.dev/eventing/pkg/apis/eventing/v1beta2"
+)
+
+// FakeEventTypes implements EventTypeInterface
+type FakeEventTypes struct {
+	Fake *FakeEventingV1beta2
+	ns   string
+}
+
+var eventtypesResource = schema.GroupVersionResource{Group: "eventing.knative.dev", Version: "v1beta2", Resource: "eventtypes"}
+
+var eventtypesKind = schema.GroupVersionKind{Group: "eventing.knative.dev", Version: "v1beta2", Kind: "EventType"}
+
+// Get takes name of the eventType, and returns the corresponding eventType object, and an error if there is any.
+func (c *FakeEventTypes) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.EventType, err error) {
+	obj, err := c.Fake.
+		Invokes(testing.NewGetAction(eventtypesResource, c.ns, name), &v1beta2.EventType{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*v1beta2.EventType), err
+}
+
+// List takes label and field selectors, and returns the list of EventTypes that match those selectors.
+func (c *FakeEventTypes) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.EventTypeList, err error) {
+	obj, err := c.Fake.
+		Invokes(testing.NewListAction(eventtypesResource, eventtypesKind, c.ns, opts), &v1beta2.EventTypeList{})
+
+	if obj == nil {
+		return nil, err
+	}
+
+	label, _, _ := testing.ExtractFromListOptions(opts)
+	if label == nil {
+		label = labels.Everything()
+	}
+	list := &v1beta2.EventTypeList{ListMeta: obj.(*v1beta2.EventTypeList).ListMeta}
+	for _, item := range obj.(*v1beta2.EventTypeList).Items {
+		if label.Matches(labels.Set(item.Labels)) {
+			list.Items = append(list.Items, item)
+		}
+	}
+	return list, err
+}
+
+// Watch returns a watch.Interface that watches the requested eventTypes.
+func (c *FakeEventTypes) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
+	return c.Fake.
+		InvokesWatch(testing.NewWatchAction(eventtypesResource, c.ns, opts))
+
+}
+
+// Create takes the representation of a eventType and creates it.  Returns the server's representation of the eventType, and an error, if there is any.
+func (c *FakeEventTypes) Create(ctx context.Context, eventType *v1beta2.EventType, opts v1.CreateOptions) (result *v1beta2.EventType, err error) {
+	obj, err := c.Fake.
+		Invokes(testing.NewCreateAction(eventtypesResource, c.ns, eventType), &v1beta2.EventType{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*v1beta2.EventType), err
+}
+
+// Update takes the representation of a eventType and updates it. Returns the server's representation of the eventType, and an error, if there is any.
+func (c *FakeEventTypes) Update(ctx context.Context, eventType *v1beta2.EventType, opts v1.UpdateOptions) (result *v1beta2.EventType, err error) {
+	obj, err := c.Fake.
+		Invokes(testing.NewUpdateAction(eventtypesResource, c.ns, eventType), &v1beta2.EventType{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*v1beta2.EventType), err
+}
+
+// UpdateStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
+func (c *FakeEventTypes) UpdateStatus(ctx context.Context, eventType *v1beta2.EventType, opts v1.UpdateOptions) (*v1beta2.EventType, error) {
+	obj, err := c.Fake.
+		Invokes(testing.NewUpdateSubresourceAction(eventtypesResource, "status", c.ns, eventType), &v1beta2.EventType{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*v1beta2.EventType), err
+}
+
+// Delete takes name of the eventType and deletes it. Returns an error if one occurs.
+func (c *FakeEventTypes) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
+	_, err := c.Fake.
+		Invokes(testing.NewDeleteActionWithOptions(eventtypesResource, c.ns, name, opts), &v1beta2.EventType{})
+
+	return err
+}
+
+// DeleteCollection deletes a collection of objects.
+func (c *FakeEventTypes) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
+	action := testing.NewDeleteCollectionAction(eventtypesResource, c.ns, listOpts)
+
+	_, err := c.Fake.Invokes(action, &v1beta2.EventTypeList{})
+	return err
+}
+
+// Patch applies the patch and returns the patched eventType.
+func (c *FakeEventTypes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.EventType, err error) {
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(eventtypesResource, c.ns, name, pt, data, subresources...), &v1beta2.EventType{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*v1beta2.EventType), err
+}
diff --git a/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/generated_expansion.go b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/generated_expansion.go
new file mode 100644
index 00000000..18a7ab38
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/generated_expansion.go
@@ -0,0 +1,21 @@
+/*
+Copyright 2021 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 client-gen. DO NOT EDIT.
+
+package v1beta2
+
+type EventTypeExpansion interface{}
diff --git a/vendor/knative.dev/eventing/pkg/client/informers/externalversions/eventing/interface.go b/vendor/knative.dev/eventing/pkg/client/informers/externalversions/eventing/interface.go
index efb6b138..a71a3365 100644
--- a/vendor/knative.dev/eventing/pkg/client/informers/externalversions/eventing/interface.go
+++ b/vendor/knative.dev/eventing/pkg/client/informers/externalversions/eventing/interface.go
@@ -21,6 +21,7 @@ package eventing
 import (
 	v1 "knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1"
 	v1beta1 "knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1beta1"
+	v1beta2 "knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1beta2"
 	internalinterfaces "knative.dev/eventing/pkg/client/informers/externalversions/internalinterfaces"
 )
 
@@ -28,6 +29,8 @@ import (
 type Interface interface {
 	// V1beta1 provides access to shared informers for resources in V1beta1.
 	V1beta1() v1beta1.Interface
+	// V1beta2 provides access to shared informers for resources in V1beta2.
+	V1beta2() v1beta2.Interface
 	// V1 provides access to shared informers for resources in V1.
 	V1() v1.Interface
 }
@@ -48,6 +51,11 @@ func (g *group) V1beta1() v1beta1.Interface {
 	return v1beta1.New(g.factory, g.namespace, g.tweakListOptions)
 }
 
+// V1beta2 returns a new v1beta2.Interface.
+func (g *group) V1beta2() v1beta2.Interface {
+	return v1beta2.New(g.factory, g.namespace, g.tweakListOptions)
+}
+
 // V1 returns a new v1.Interface.
 func (g *group) V1() v1.Interface {
 	return v1.New(g.factory, g.namespace, g.tweakListOptions)
diff --git a/vendor/knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1beta2/eventtype.go b/vendor/knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1beta2/eventtype.go
new file mode 100644
index 00000000..9a4c6525
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1beta2/eventtype.go
@@ -0,0 +1,90 @@
+/*
+Copyright 2021 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 informer-gen. DO NOT EDIT.
+
+package v1beta2
+
+import (
+	"context"
+	time "time"
+
+	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	runtime "k8s.io/apimachinery/pkg/runtime"
+	watch "k8s.io/apimachinery/pkg/watch"
+	cache "k8s.io/client-go/tools/cache"
+	eventingv1beta2 "knative.dev/eventing/pkg/apis/eventing/v1beta2"
+	versioned "knative.dev/eventing/pkg/client/clientset/versioned"
+	internalinterfaces "knative.dev/eventing/pkg/client/informers/externalversions/internalinterfaces"
+	v1beta2 "knative.dev/eventing/pkg/client/listers/eventing/v1beta2"
+)
+
+// EventTypeInformer provides access to a shared informer and lister for
+// EventTypes.
+type EventTypeInformer interface {
+	Informer() cache.SharedIndexInformer
+	Lister() v1beta2.EventTypeLister
+}
+
+type eventTypeInformer struct {
+	factory          internalinterfaces.SharedInformerFactory
+	tweakListOptions internalinterfaces.TweakListOptionsFunc
+	namespace        string
+}
+
+// NewEventTypeInformer constructs a new informer for EventType type.
+// Always prefer using an informer factory to get a shared informer instead of getting an independent
+// one. This reduces memory footprint and number of connections to the server.
+func NewEventTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
+	return NewFilteredEventTypeInformer(client, namespace, resyncPeriod, indexers, nil)
+}
+
+// NewFilteredEventTypeInformer constructs a new informer for EventType type.
+// Always prefer using an informer factory to get a shared informer instead of getting an independent
+// one. This reduces memory footprint and number of connections to the server.
+func NewFilteredEventTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
+	return cache.NewSharedIndexInformer(
+		&cache.ListWatch{
+			ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
+				if tweakListOptions != nil {
+					tweakListOptions(&options)
+				}
+				return client.EventingV1beta2().EventTypes(namespace).List(context.TODO(), options)
+			},
+			WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
+				if tweakListOptions != nil {
+					tweakListOptions(&options)
+				}
+				return client.EventingV1beta2().EventTypes(namespace).Watch(context.TODO(), options)
+			},
+		},
+		&eventingv1beta2.EventType{},
+		resyncPeriod,
+		indexers,
+	)
+}
+
+func (f *eventTypeInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
+	return NewFilteredEventTypeInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
+}
+
+func (f *eventTypeInformer) Informer() cache.SharedIndexInformer {
+	return f.factory.InformerFor(&eventingv1beta2.EventType{}, f.defaultInformer)
+}
+
+func (f *eventTypeInformer) Lister() v1beta2.EventTypeLister {
+	return v1beta2.NewEventTypeLister(f.Informer().GetIndexer())
+}
diff --git a/vendor/knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1beta2/interface.go b/vendor/knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1beta2/interface.go
new file mode 100644
index 00000000..98f69b73
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1beta2/interface.go
@@ -0,0 +1,45 @@
+/*
+Copyright 2021 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 informer-gen. DO NOT EDIT.
+
+package v1beta2
+
+import (
+	internalinterfaces "knative.dev/eventing/pkg/client/informers/externalversions/internalinterfaces"
+)
+
+// Interface provides access to all the informers in this group version.
+type Interface interface {
+	// EventTypes returns a EventTypeInformer.
+	EventTypes() EventTypeInformer
+}
+
+type version struct {
+	factory          internalinterfaces.SharedInformerFactory
+	namespace        string
+	tweakListOptions internalinterfaces.TweakListOptionsFunc
+}
+
+// New returns a new Interface.
+func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {
+	return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
+}
+
+// EventTypes returns a EventTypeInformer.
+func (v *version) EventTypes() EventTypeInformer {
+	return &eventTypeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
+}
diff --git a/vendor/knative.dev/eventing/pkg/client/informers/externalversions/generic.go b/vendor/knative.dev/eventing/pkg/client/informers/externalversions/generic.go
index a265d0ce..3ed38883 100644
--- a/vendor/knative.dev/eventing/pkg/client/informers/externalversions/generic.go
+++ b/vendor/knative.dev/eventing/pkg/client/informers/externalversions/generic.go
@@ -25,10 +25,11 @@ import (
 	cache "k8s.io/client-go/tools/cache"
 	v1 "knative.dev/eventing/pkg/apis/eventing/v1"
 	v1beta1 "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	v1beta2 "knative.dev/eventing/pkg/apis/eventing/v1beta2"
 	flowsv1 "knative.dev/eventing/pkg/apis/flows/v1"
 	messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
 	sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
-	v1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2"
+	sourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2"
 )
 
 // GenericInformer is type of SharedIndexInformer which will locate and delegate to other
@@ -67,6 +68,10 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource
 	case v1beta1.SchemeGroupVersion.WithResource("eventtypes"):
 		return &genericInformer{resource: resource.GroupResource(), informer: f.Eventing().V1beta1().EventTypes().Informer()}, nil
 
+		// Group=eventing.knative.dev, Version=v1beta2
+	case v1beta2.SchemeGroupVersion.WithResource("eventtypes"):
+		return &genericInformer{resource: resource.GroupResource(), informer: f.Eventing().V1beta2().EventTypes().Informer()}, nil
+
 		// Group=flows.knative.dev, Version=v1
 	case flowsv1.SchemeGroupVersion.WithResource("parallels"):
 		return &genericInformer{resource: resource.GroupResource(), informer: f.Flows().V1().Parallels().Informer()}, nil
@@ -92,7 +97,7 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource
 		return &genericInformer{resource: resource.GroupResource(), informer: f.Sources().V1().SinkBindings().Informer()}, nil
 
 		// Group=sources.knative.dev, Version=v1beta2
-	case v1beta2.SchemeGroupVersion.WithResource("pingsources"):
+	case sourcesv1beta2.SchemeGroupVersion.WithResource("pingsources"):
 		return &genericInformer{resource: resource.GroupResource(), informer: f.Sources().V1beta2().PingSources().Informer()}, nil
 
 	}
diff --git a/vendor/knative.dev/eventing/pkg/client/injection/client/client.go b/vendor/knative.dev/eventing/pkg/client/injection/client/client.go
index ad79c3ff..f24f55df 100644
--- a/vendor/knative.dev/eventing/pkg/client/injection/client/client.go
+++ b/vendor/knative.dev/eventing/pkg/client/injection/client/client.go
@@ -35,13 +35,15 @@ import (
 	rest "k8s.io/client-go/rest"
 	eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
 	v1beta1 "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	v1beta2 "knative.dev/eventing/pkg/apis/eventing/v1beta2"
 	flowsv1 "knative.dev/eventing/pkg/apis/flows/v1"
 	messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
 	sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
-	v1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2"
+	sourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2"
 	versioned "knative.dev/eventing/pkg/client/clientset/versioned"
 	typedeventingv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1"
 	typedeventingv1beta1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta1"
+	typedeventingv1beta2 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2"
 	typedflowsv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/flows/v1"
 	typedmessagingv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/messaging/v1"
 	typedsourcesv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1"
@@ -252,6 +254,152 @@ func (w *wrapEventingV1beta1EventTypeImpl) Watch(ctx context.Context, opts v1.Li
 	return nil, errors.New("NYI: Watch")
 }
 
+// EventingV1beta2 retrieves the EventingV1beta2Client
+func (w *wrapClient) EventingV1beta2() typedeventingv1beta2.EventingV1beta2Interface {
+	return &wrapEventingV1beta2{
+		dyn: w.dyn,
+	}
+}
+
+type wrapEventingV1beta2 struct {
+	dyn dynamic.Interface
+}
+
+func (w *wrapEventingV1beta2) RESTClient() rest.Interface {
+	panic("RESTClient called on dynamic client!")
+}
+
+func (w *wrapEventingV1beta2) EventTypes(namespace string) typedeventingv1beta2.EventTypeInterface {
+	return &wrapEventingV1beta2EventTypeImpl{
+		dyn: w.dyn.Resource(schema.GroupVersionResource{
+			Group:    "eventing.knative.dev",
+			Version:  "v1beta2",
+			Resource: "eventtypes",
+		}),
+
+		namespace: namespace,
+	}
+}
+
+type wrapEventingV1beta2EventTypeImpl struct {
+	dyn dynamic.NamespaceableResourceInterface
+
+	namespace string
+}
+
+var _ typedeventingv1beta2.EventTypeInterface = (*wrapEventingV1beta2EventTypeImpl)(nil)
+
+func (w *wrapEventingV1beta2EventTypeImpl) Create(ctx context.Context, in *v1beta2.EventType, opts v1.CreateOptions) (*v1beta2.EventType, error) {
+	in.SetGroupVersionKind(schema.GroupVersionKind{
+		Group:   "eventing.knative.dev",
+		Version: "v1beta2",
+		Kind:    "EventType",
+	})
+	uo := &unstructured.Unstructured{}
+	if err := convert(in, uo); err != nil {
+		return nil, err
+	}
+	uo, err := w.dyn.Namespace(w.namespace).Create(ctx, uo, opts)
+	if err != nil {
+		return nil, err
+	}
+	out := &v1beta2.EventType{}
+	if err := convert(uo, out); err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (w *wrapEventingV1beta2EventTypeImpl) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
+	return w.dyn.Namespace(w.namespace).Delete(ctx, name, opts)
+}
+
+func (w *wrapEventingV1beta2EventTypeImpl) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
+	return w.dyn.Namespace(w.namespace).DeleteCollection(ctx, opts, listOpts)
+}
+
+func (w *wrapEventingV1beta2EventTypeImpl) Get(ctx context.Context, name string, opts v1.GetOptions) (*v1beta2.EventType, error) {
+	uo, err := w.dyn.Namespace(w.namespace).Get(ctx, name, opts)
+	if err != nil {
+		return nil, err
+	}
+	out := &v1beta2.EventType{}
+	if err := convert(uo, out); err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (w *wrapEventingV1beta2EventTypeImpl) List(ctx context.Context, opts v1.ListOptions) (*v1beta2.EventTypeList, error) {
+	uo, err := w.dyn.Namespace(w.namespace).List(ctx, opts)
+	if err != nil {
+		return nil, err
+	}
+	out := &v1beta2.EventTypeList{}
+	if err := convert(uo, out); err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (w *wrapEventingV1beta2EventTypeImpl) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.EventType, err error) {
+	uo, err := w.dyn.Namespace(w.namespace).Patch(ctx, name, pt, data, opts)
+	if err != nil {
+		return nil, err
+	}
+	out := &v1beta2.EventType{}
+	if err := convert(uo, out); err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (w *wrapEventingV1beta2EventTypeImpl) Update(ctx context.Context, in *v1beta2.EventType, opts v1.UpdateOptions) (*v1beta2.EventType, error) {
+	in.SetGroupVersionKind(schema.GroupVersionKind{
+		Group:   "eventing.knative.dev",
+		Version: "v1beta2",
+		Kind:    "EventType",
+	})
+	uo := &unstructured.Unstructured{}
+	if err := convert(in, uo); err != nil {
+		return nil, err
+	}
+	uo, err := w.dyn.Namespace(w.namespace).Update(ctx, uo, opts)
+	if err != nil {
+		return nil, err
+	}
+	out := &v1beta2.EventType{}
+	if err := convert(uo, out); err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (w *wrapEventingV1beta2EventTypeImpl) UpdateStatus(ctx context.Context, in *v1beta2.EventType, opts v1.UpdateOptions) (*v1beta2.EventType, error) {
+	in.SetGroupVersionKind(schema.GroupVersionKind{
+		Group:   "eventing.knative.dev",
+		Version: "v1beta2",
+		Kind:    "EventType",
+	})
+	uo := &unstructured.Unstructured{}
+	if err := convert(in, uo); err != nil {
+		return nil, err
+	}
+	uo, err := w.dyn.Namespace(w.namespace).UpdateStatus(ctx, uo, opts)
+	if err != nil {
+		return nil, err
+	}
+	out := &v1beta2.EventType{}
+	if err := convert(uo, out); err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (w *wrapEventingV1beta2EventTypeImpl) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
+	return nil, errors.New("NYI: Watch")
+}
+
 // EventingV1 retrieves the EventingV1Client
 func (w *wrapClient) EventingV1() typedeventingv1.EventingV1Interface {
 	return &wrapEventingV1{
@@ -1249,7 +1397,7 @@ type wrapSourcesV1beta2PingSourceImpl struct {
 
 var _ typedsourcesv1beta2.PingSourceInterface = (*wrapSourcesV1beta2PingSourceImpl)(nil)
 
-func (w *wrapSourcesV1beta2PingSourceImpl) Create(ctx context.Context, in *v1beta2.PingSource, opts v1.CreateOptions) (*v1beta2.PingSource, error) {
+func (w *wrapSourcesV1beta2PingSourceImpl) Create(ctx context.Context, in *sourcesv1beta2.PingSource, opts v1.CreateOptions) (*sourcesv1beta2.PingSource, error) {
 	in.SetGroupVersionKind(schema.GroupVersionKind{
 		Group:   "sources.knative.dev",
 		Version: "v1beta2",
@@ -1263,7 +1411,7 @@ func (w *wrapSourcesV1beta2PingSourceImpl) Create(ctx context.Context, in *v1bet
 	if err != nil {
 		return nil, err
 	}
-	out := &v1beta2.PingSource{}
+	out := &sourcesv1beta2.PingSource{}
 	if err := convert(uo, out); err != nil {
 		return nil, err
 	}
@@ -1278,43 +1426,43 @@ func (w *wrapSourcesV1beta2PingSourceImpl) DeleteCollection(ctx context.Context,
 	return w.dyn.Namespace(w.namespace).DeleteCollection(ctx, opts, listOpts)
 }
 
-func (w *wrapSourcesV1beta2PingSourceImpl) Get(ctx context.Context, name string, opts v1.GetOptions) (*v1beta2.PingSource, error) {
+func (w *wrapSourcesV1beta2PingSourceImpl) Get(ctx context.Context, name string, opts v1.GetOptions) (*sourcesv1beta2.PingSource, error) {
 	uo, err := w.dyn.Namespace(w.namespace).Get(ctx, name, opts)
 	if err != nil {
 		return nil, err
 	}
-	out := &v1beta2.PingSource{}
+	out := &sourcesv1beta2.PingSource{}
 	if err := convert(uo, out); err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (w *wrapSourcesV1beta2PingSourceImpl) List(ctx context.Context, opts v1.ListOptions) (*v1beta2.PingSourceList, error) {
+func (w *wrapSourcesV1beta2PingSourceImpl) List(ctx context.Context, opts v1.ListOptions) (*sourcesv1beta2.PingSourceList, error) {
 	uo, err := w.dyn.Namespace(w.namespace).List(ctx, opts)
 	if err != nil {
 		return nil, err
 	}
-	out := &v1beta2.PingSourceList{}
+	out := &sourcesv1beta2.PingSourceList{}
 	if err := convert(uo, out); err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (w *wrapSourcesV1beta2PingSourceImpl) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.PingSource, err error) {
+func (w *wrapSourcesV1beta2PingSourceImpl) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *sourcesv1beta2.PingSource, err error) {
 	uo, err := w.dyn.Namespace(w.namespace).Patch(ctx, name, pt, data, opts)
 	if err != nil {
 		return nil, err
 	}
-	out := &v1beta2.PingSource{}
+	out := &sourcesv1beta2.PingSource{}
 	if err := convert(uo, out); err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (w *wrapSourcesV1beta2PingSourceImpl) Update(ctx context.Context, in *v1beta2.PingSource, opts v1.UpdateOptions) (*v1beta2.PingSource, error) {
+func (w *wrapSourcesV1beta2PingSourceImpl) Update(ctx context.Context, in *sourcesv1beta2.PingSource, opts v1.UpdateOptions) (*sourcesv1beta2.PingSource, error) {
 	in.SetGroupVersionKind(schema.GroupVersionKind{
 		Group:   "sources.knative.dev",
 		Version: "v1beta2",
@@ -1328,14 +1476,14 @@ func (w *wrapSourcesV1beta2PingSourceImpl) Update(ctx context.Context, in *v1bet
 	if err != nil {
 		return nil, err
 	}
-	out := &v1beta2.PingSource{}
+	out := &sourcesv1beta2.PingSource{}
 	if err := convert(uo, out); err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (w *wrapSourcesV1beta2PingSourceImpl) UpdateStatus(ctx context.Context, in *v1beta2.PingSource, opts v1.UpdateOptions) (*v1beta2.PingSource, error) {
+func (w *wrapSourcesV1beta2PingSourceImpl) UpdateStatus(ctx context.Context, in *sourcesv1beta2.PingSource, opts v1.UpdateOptions) (*sourcesv1beta2.PingSource, error) {
 	in.SetGroupVersionKind(schema.GroupVersionKind{
 		Group:   "sources.knative.dev",
 		Version: "v1beta2",
@@ -1349,7 +1497,7 @@ func (w *wrapSourcesV1beta2PingSourceImpl) UpdateStatus(ctx context.Context, in
 	if err != nil {
 		return nil, err
 	}
-	out := &v1beta2.PingSource{}
+	out := &sourcesv1beta2.PingSource{}
 	if err := convert(uo, out); err != nil {
 		return nil, err
 	}
diff --git a/vendor/knative.dev/eventing/pkg/client/listers/eventing/v1beta2/eventtype.go b/vendor/knative.dev/eventing/pkg/client/listers/eventing/v1beta2/eventtype.go
new file mode 100644
index 00000000..4f84cd92
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/client/listers/eventing/v1beta2/eventtype.go
@@ -0,0 +1,99 @@
+/*
+Copyright 2021 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 lister-gen. DO NOT EDIT.
+
+package v1beta2
+
+import (
+	"k8s.io/apimachinery/pkg/api/errors"
+	"k8s.io/apimachinery/pkg/labels"
+	"k8s.io/client-go/tools/cache"
+	v1beta2 "knative.dev/eventing/pkg/apis/eventing/v1beta2"
+)
+
+// EventTypeLister helps list EventTypes.
+// All objects returned here must be treated as read-only.
+type EventTypeLister interface {
+	// List lists all EventTypes in the indexer.
+	// Objects returned here must be treated as read-only.
+	List(selector labels.Selector) (ret []*v1beta2.EventType, err error)
+	// EventTypes returns an object that can list and get EventTypes.
+	EventTypes(namespace string) EventTypeNamespaceLister
+	EventTypeListerExpansion
+}
+
+// eventTypeLister implements the EventTypeLister interface.
+type eventTypeLister struct {
+	indexer cache.Indexer
+}
+
+// NewEventTypeLister returns a new EventTypeLister.
+func NewEventTypeLister(indexer cache.Indexer) EventTypeLister {
+	return &eventTypeLister{indexer: indexer}
+}
+
+// List lists all EventTypes in the indexer.
+func (s *eventTypeLister) List(selector labels.Selector) (ret []*v1beta2.EventType, err error) {
+	err = cache.ListAll(s.indexer, selector, func(m interface{}) {
+		ret = append(ret, m.(*v1beta2.EventType))
+	})
+	return ret, err
+}
+
+// EventTypes returns an object that can list and get EventTypes.
+func (s *eventTypeLister) EventTypes(namespace string) EventTypeNamespaceLister {
+	return eventTypeNamespaceLister{indexer: s.indexer, namespace: namespace}
+}
+
+// EventTypeNamespaceLister helps list and get EventTypes.
+// All objects returned here must be treated as read-only.
+type EventTypeNamespaceLister interface {
+	// List lists all EventTypes in the indexer for a given namespace.
+	// Objects returned here must be treated as read-only.
+	List(selector labels.Selector) (ret []*v1beta2.EventType, err error)
+	// Get retrieves the EventType from the indexer for a given namespace and name.
+	// Objects returned here must be treated as read-only.
+	Get(name string) (*v1beta2.EventType, error)
+	EventTypeNamespaceListerExpansion
+}
+
+// eventTypeNamespaceLister implements the EventTypeNamespaceLister
+// interface.
+type eventTypeNamespaceLister struct {
+	indexer   cache.Indexer
+	namespace string
+}
+
+// List lists all EventTypes in the indexer for a given namespace.
+func (s eventTypeNamespaceLister) List(selector labels.Selector) (ret []*v1beta2.EventType, err error) {
+	err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
+		ret = append(ret, m.(*v1beta2.EventType))
+	})
+	return ret, err
+}
+
+// Get retrieves the EventType from the indexer for a given namespace and name.
+func (s eventTypeNamespaceLister) Get(name string) (*v1beta2.EventType, error) {
+	obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
+	if err != nil {
+		return nil, err
+	}
+	if !exists {
+		return nil, errors.NewNotFound(v1beta2.Resource("eventtype"), name)
+	}
+	return obj.(*v1beta2.EventType), nil
+}
diff --git a/vendor/knative.dev/eventing/pkg/client/listers/eventing/v1beta2/expansion_generated.go b/vendor/knative.dev/eventing/pkg/client/listers/eventing/v1beta2/expansion_generated.go
new file mode 100644
index 00000000..4363c014
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/client/listers/eventing/v1beta2/expansion_generated.go
@@ -0,0 +1,27 @@
+/*
+Copyright 2021 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 lister-gen. DO NOT EDIT.
+
+package v1beta2
+
+// EventTypeListerExpansion allows custom methods to be added to
+// EventTypeLister.
+type EventTypeListerExpansion interface{}
+
+// EventTypeNamespaceListerExpansion allows custom methods to be added to
+// EventTypeNamespaceLister.
+type EventTypeNamespaceListerExpansion interface{}
diff --git a/vendor/knative.dev/eventing/pkg/metrics/source/stats_reporter.go b/vendor/knative.dev/eventing/pkg/metrics/source/stats_reporter.go
index ae45b968..9fcce5ca 100644
--- a/vendor/knative.dev/eventing/pkg/metrics/source/stats_reporter.go
+++ b/vendor/knative.dev/eventing/pkg/metrics/source/stats_reporter.go
@@ -20,9 +20,10 @@ import (
 	"context"
 
 	"go.opencensus.io/stats/view"
-	eventingmetrics "knative.dev/eventing/pkg/metrics"
 	"knative.dev/pkg/metrics"
 
+	eventingmetrics "knative.dev/eventing/pkg/metrics"
+
 	"go.opencensus.io/stats"
 	"go.opencensus.io/tag"
 )
diff --git a/vendor/knative.dev/pkg/apis/duck/v1/knative_reference.go b/vendor/knative.dev/pkg/apis/duck/v1/knative_reference.go
index c723c147..4d03b6b9 100644
--- a/vendor/knative.dev/pkg/apis/duck/v1/knative_reference.go
+++ b/vendor/knative.dev/pkg/apis/duck/v1/knative_reference.go
@@ -128,3 +128,12 @@ func isKReferenceGroupAllowed(ctx context.Context) bool {
 func KReferenceGroupAllowed(ctx context.Context) context.Context {
 	return context.WithValue(ctx, isGroupAllowed{}, struct{}{})
 }
+
+func (kr *KReference) String() string {
+	address := ""
+	if kr.Address != nil {
+		address = *kr.Address
+	}
+	return fmt.Sprintf("Kind = %s, Namespace = %s, Name = %s, APIVersion = %s, Group = %s, Address = %s",
+		kr.Kind, kr.Namespace, kr.Name, kr.APIVersion, kr.Group, address)
+}
diff --git a/vendor/knative.dev/pkg/apis/duck/v1/source_types.go b/vendor/knative.dev/pkg/apis/duck/v1/source_types.go
index bed832f3..1f674034 100644
--- a/vendor/knative.dev/pkg/apis/duck/v1/source_types.go
+++ b/vendor/knative.dev/pkg/apis/duck/v1/source_types.go
@@ -84,6 +84,11 @@ type SourceStatus struct {
 	// as part of its CloudEvents.
 	// +optional
 	CloudEventAttributes []CloudEventAttributes `json:"ceAttributes,omitempty"`
+
+	// SinkCACerts are Certification Authority (CA) certificates in PEM format
+	// according to https://www.rfc-editor.org/rfc/rfc7468.
+	// +optional
+	SinkCACerts *string `json:"sinkCACerts,omitempty"`
 }
 
 // CloudEventAttributes specifies the attributes that a Source
diff --git a/vendor/knative.dev/pkg/apis/duck/v1/zz_generated.deepcopy.go b/vendor/knative.dev/pkg/apis/duck/v1/zz_generated.deepcopy.go
index 83cccfd3..744a38bb 100644
--- a/vendor/knative.dev/pkg/apis/duck/v1/zz_generated.deepcopy.go
+++ b/vendor/knative.dev/pkg/apis/duck/v1/zz_generated.deepcopy.go
@@ -630,6 +630,11 @@ func (in *SourceStatus) DeepCopyInto(out *SourceStatus) {
 		*out = make([]CloudEventAttributes, len(*in))
 		copy(*out, *in)
 	}
+	if in.SinkCACerts != nil {
+		in, out := &in.SinkCACerts, &out.SinkCACerts
+		*out = new(string)
+		**out = **in
+	}
 	return
 }
 
diff --git a/vendor/knative.dev/pkg/resolver/addressable_resolver.go b/vendor/knative.dev/pkg/resolver/addressable_resolver.go
index d6995947..c53a13d3 100644
--- a/vendor/knative.dev/pkg/resolver/addressable_resolver.go
+++ b/vendor/knative.dev/pkg/resolver/addressable_resolver.go
@@ -26,6 +26,7 @@ import (
 
 	"knative.dev/pkg/client/injection/ducks/duck/v1/addressable"
 	"knative.dev/pkg/controller"
+	"knative.dev/pkg/network"
 
 	corev1 "k8s.io/api/core/v1"
 	apierrs "k8s.io/apimachinery/pkg/api/errors"
@@ -35,7 +36,6 @@ import (
 	pkgapisduck "knative.dev/pkg/apis/duck"
 	duckv1 "knative.dev/pkg/apis/duck/v1"
 	duckv1beta1 "knative.dev/pkg/apis/duck/v1beta1"
-	"knative.dev/pkg/network"
 	"knative.dev/pkg/tracker"
 )
 
@@ -74,9 +74,9 @@ func NewURIResolverFromTracker(ctx context.Context, t tracker.Interface, resolve
 
 // URIFromDestination resolves a v1beta1.Destination into a URI string.
 func (r *URIResolver) URIFromDestination(ctx context.Context, dest duckv1beta1.Destination, parent interface{}) (string, error) {
-	var deprecatedObjectReference *corev1.ObjectReference
+	var deprecatedObjectReference *duckv1.KReference
 	if !(dest.DeprecatedAPIVersion == "" && dest.DeprecatedKind == "" && dest.DeprecatedName == "" && dest.DeprecatedNamespace == "") {
-		deprecatedObjectReference = &corev1.ObjectReference{
+		deprecatedObjectReference = &duckv1.KReference{
 			Kind:       dest.DeprecatedKind,
 			APIVersion: dest.DeprecatedAPIVersion,
 			Name:       dest.DeprecatedName,
@@ -86,41 +86,64 @@ func (r *URIResolver) URIFromDestination(ctx context.Context, dest duckv1beta1.D
 	if dest.Ref != nil && deprecatedObjectReference != nil {
 		return "", errors.New("ref and [apiVersion, kind, name] can't be both present")
 	}
-	var ref *corev1.ObjectReference
+
+	var ref *duckv1.KReference
 	if dest.Ref != nil {
-		ref = dest.Ref
+		ref = &duckv1.KReference{
+			Kind:       dest.Ref.Kind,
+			Namespace:  dest.Ref.Namespace,
+			Name:       dest.Ref.Name,
+			APIVersion: dest.Ref.APIVersion,
+		}
 	} else {
 		ref = deprecatedObjectReference
 	}
-	if ref != nil {
-		url, err := r.URIFromObjectReference(ctx, ref, parent)
-		if err != nil {
-			return "", err
-		}
-		if dest.URI != nil {
-			if dest.URI.URL().IsAbs() {
-				return "", errors.New("absolute URI is not allowed when Ref or [apiVersion, kind, name] exists")
-			}
-			return url.ResolveReference(dest.URI).String(), nil
-		}
-		return url.URL().String(), nil
-	}
 
-	if dest.URI != nil {
-		// IsAbs check whether the URL has a non-empty scheme. Besides the non non-empty scheme, we also require dest.URI has a non-empty host
-		if !dest.URI.URL().IsAbs() || dest.URI.Host == "" {
-			return "", fmt.Errorf("URI is not absolute (both scheme and host should be non-empty): %q", dest.URI.String())
-		}
-		return dest.URI.String(), nil
+	u, err := r.URIFromDestinationV1(ctx, duckv1.Destination{Ref: ref, URI: dest.URI, CACerts: dest.CACerts}, parent)
+	if err != nil {
+		return "", err
 	}
-
-	return "", errors.New("destination missing Ref, [apiVersion, kind, name] and URI, expected at least one")
+	return u.String(), nil
 }
 
 // URIFromDestinationV1 resolves a v1.Destination into a URL.
 func (r *URIResolver) URIFromDestinationV1(ctx context.Context, dest duckv1.Destination, parent interface{}) (*apis.URL, error) {
+	addr, err := r.AddressableFromDestinationV1(ctx, dest, parent)
+	if err != nil {
+		return nil, err
+	}
+	return addr.URL, nil
+}
+
+func (r *URIResolver) URIFromKReference(ctx context.Context, ref *duckv1.KReference, parent interface{}) (*apis.URL, error) {
+	dest := duckv1.Destination{
+		Ref: ref,
+	}
+	addr, err := r.AddressableFromDestinationV1(ctx, dest, parent)
+	if err != nil {
+		return nil, err
+	}
+	return addr.URL, nil
+}
+
+// URIFromObjectReference resolves an ObjectReference to a URI string.
+func (r *URIResolver) URIFromObjectReference(ctx context.Context, ref *corev1.ObjectReference, parent interface{}) (*apis.URL, error) {
+	if ref == nil {
+		return nil, apierrs.NewBadRequest("ref is nil")
+	}
+	dest := duckv1.KReference{
+		Kind:       ref.Kind,
+		Namespace:  ref.Namespace,
+		Name:       ref.Name,
+		APIVersion: ref.APIVersion,
+	}
+	return r.URIFromKReference(ctx, &dest, parent)
+}
+
+// AddressableFromDestinationV1 resolves a v1.Destination into a duckv1.Addressable.
+func (r *URIResolver) AddressableFromDestinationV1(ctx context.Context, dest duckv1.Destination, parent interface{}) (*duckv1.Addressable, error) {
 	if dest.Ref != nil {
-		url, err := r.URIFromKReference(ctx, dest.Ref, parent)
+		addr, err := r.addressableFromDestinationRef(ctx, dest, parent)
 		if err != nil {
 			return nil, err
 		}
@@ -128,50 +151,60 @@ func (r *URIResolver) URIFromDestinationV1(ctx context.Context, dest duckv1.Dest
 			if dest.URI.URL().IsAbs() {
 				return nil, errors.New("absolute URI is not allowed when Ref or [apiVersion, kind, name] exists")
 			}
-			return url.ResolveReference(dest.URI), nil
+			addr.URL = addr.URL.ResolveReference(dest.URI)
+			return addr, nil
 		}
-		return url, nil
+		return addr, nil
 	}
 
 	if dest.URI != nil {
 		// IsAbs check whether the URL has a non-empty scheme. Besides the non non-empty scheme, we also require dest.URI has a non-empty host
 		if !dest.URI.URL().IsAbs() || dest.URI.Host == "" {
-			return nil, fmt.Errorf("URI is not absolute(both scheme and host should be non-empty): %q", dest.URI.String())
+			return nil, fmt.Errorf("URI is not absolute (both scheme and host should be non-empty): %q", dest.URI.String())
 		}
-		return dest.URI, nil
+		return &duckv1.Addressable{
+			URL:     dest.URI,
+			CACerts: dest.CACerts,
+		}, nil
 	}
 
 	return nil, errors.New("destination missing Ref and URI, expected at least one")
 }
 
-func (r *URIResolver) URIFromKReference(ctx context.Context, ref *duckv1.KReference, parent interface{}) (*apis.URL, error) {
-	return r.URIFromObjectReference(ctx, &corev1.ObjectReference{Name: ref.Name, Namespace: ref.Namespace, APIVersion: ref.APIVersion, Kind: ref.Kind}, parent)
-}
-
-// URIFromObjectReference resolves an ObjectReference to a URI string.
-func (r *URIResolver) URIFromObjectReference(ctx context.Context, ref *corev1.ObjectReference, parent interface{}) (*apis.URL, error) {
-	if ref == nil {
+func (r *URIResolver) addressableFromDestinationRef(ctx context.Context, dest duckv1.Destination, parent interface{}) (*duckv1.Addressable, error) {
+	if dest.Ref == nil {
 		return nil, apierrs.NewBadRequest("ref is nil")
 	}
 
+	or := &corev1.ObjectReference{
+		Kind:       dest.Ref.Kind,
+		Namespace:  dest.Ref.Namespace,
+		Name:       dest.Ref.Name,
+		APIVersion: dest.Ref.APIVersion,
+	}
+
 	// try custom resolvers first
 	for _, resolver := range r.resolvers {
-		handled, url, err := resolver(ctx, ref)
+		handled, url, err := resolver(ctx, or)
 		if handled {
-			return url, err
+			return &duckv1.Addressable{
+				Name:    dest.Ref.Address,
+				URL:     url,
+				CACerts: dest.CACerts,
+			}, err
 		}
 
 		// when handled is false, both url and err are ignored.
 	}
 
-	gvr, _ := meta.UnsafeGuessKindToResource(ref.GroupVersionKind())
+	gvr, _ := meta.UnsafeGuessKindToResource(or.GroupVersionKind())
 	if err := r.tracker.TrackReference(tracker.Reference{
-		APIVersion: ref.APIVersion,
-		Kind:       ref.Kind,
-		Namespace:  ref.Namespace,
-		Name:       ref.Name,
+		APIVersion: dest.Ref.APIVersion,
+		Kind:       dest.Ref.Kind,
+		Namespace:  dest.Ref.Namespace,
+		Name:       dest.Ref.Name,
 	}, parent); err != nil {
-		return nil, fmt.Errorf("failed to track reference %s %s/%s: %w", gvr.String(), ref.Namespace, ref.Name, err)
+		return nil, fmt.Errorf("failed to track reference %s %s/%s: %w", gvr.String(), dest.Ref.Namespace, dest.Ref.Name, err)
 	}
 
 	lister, err := r.listerFactory(gvr)
@@ -179,35 +212,80 @@ func (r *URIResolver) URIFromObjectReference(ctx context.Context, ref *corev1.Ob
 		return nil, fmt.Errorf("failed to get lister for %s: %w", gvr.String(), err)
 	}
 
-	obj, err := lister.ByNamespace(ref.Namespace).Get(ref.Name)
+	obj, err := lister.ByNamespace(dest.Ref.Namespace).Get(dest.Ref.Name)
 	if err != nil {
-		return nil, fmt.Errorf("failed to get object %s/%s: %w", ref.Namespace, ref.Name, err)
+		return nil, fmt.Errorf("failed to get object %s/%s: %w", dest.Ref.Namespace, dest.Ref.Name, err)
 	}
 
 	// K8s Services are special cased. They can be called, even though they do not satisfy the
 	// Callable interface.
-	if ref.APIVersion == "v1" && ref.Kind == "Service" {
+	if dest.Ref.APIVersion == "v1" && dest.Ref.Kind == "Service" {
 		url := &apis.URL{
 			Scheme: "http",
-			Host:   network.GetServiceHostname(ref.Name, ref.Namespace),
+			Host:   network.GetServiceHostname(dest.Ref.Name, dest.Ref.Namespace),
 			Path:   "",
 		}
-		return url, nil
+		if dest.CACerts != nil && *dest.CACerts != "" {
+			url.Scheme = "https"
+		}
+		return &duckv1.Addressable{
+			Name:    dest.Ref.Address,
+			URL:     url,
+			CACerts: dest.CACerts,
+		}, nil
 	}
 
 	addressable, ok := obj.(*duckv1.AddressableType)
 	if !ok {
-		return nil, apierrs.NewBadRequest(fmt.Sprintf("%+v (%T) is not an AddressableType", ref, ref))
+		return nil, apierrs.NewBadRequest(fmt.Sprintf("%s(%T) is not an AddressableType", dest.Ref, dest.Ref))
 	}
-	if addressable.Status.Address == nil {
-		return nil, apierrs.NewBadRequest(fmt.Sprintf("address not set for %+v", ref))
+
+	addr, err := r.selectAddress(dest, addressable)
+	if err != nil {
+		return nil, err
 	}
-	url := addressable.Status.Address.URL
-	if url == nil {
-		return nil, apierrs.NewBadRequest(fmt.Sprintf("URL missing in address of %+v", ref))
+	// Do not modify informer copy.
+	addr = addr.DeepCopy()
+
+	if addr.URL == nil {
+		return nil, apierrs.NewBadRequest(fmt.Sprintf("URL missing in address of %s", dest.Ref))
 	}
-	if url.Host == "" {
-		return nil, apierrs.NewBadRequest(fmt.Sprintf("hostname missing in address of %+v", ref))
+	if addr.URL.Host == "" {
+		return nil, apierrs.NewBadRequest(fmt.Sprintf("hostname missing in address of %s", dest.Ref))
 	}
-	return url, nil
+
+	if addr.CACerts == nil {
+		addr.CACerts = dest.CACerts
+	}
+
+	return addr, nil
+}
+
+// selectAddress selects a single address from the given AddressableType
+func (r *URIResolver) selectAddress(dest duckv1.Destination, addressable *duckv1.AddressableType) (*duckv1.Addressable, error) {
+	if len(addressable.Status.Addresses) == 0 && addressable.Status.Address == nil {
+		return nil, apierrs.NewBadRequest(fmt.Sprintf("address not set for %s", dest.Ref))
+	}
+
+	// if dest.ref.address is specified:
+	// - select the first (in order) address from status.addresses with name == dest.ref.address
+	// - If no address is found return an error explaining that the address with name dest.ref.address
+	//   cannot be found/resolved
+	if dest.Ref.Address != nil && *dest.Ref.Address != "" {
+		for _, addr := range addressable.Status.Addresses {
+			if addr.Name != nil && *addr.Name == *dest.Ref.Address {
+				return &addr, nil
+			}
+		}
+		return nil, apierrs.NewBadRequest(fmt.Sprintf("address with name %q not found for %s", *dest.Ref.Address, dest.Ref))
+	}
+
+	// if dest.ref.address is not specified:
+	// - select the first (in order) address from status.addresses
+	// - If no address is found in addresses use status.address
+	if len(addressable.Status.Addresses) > 0 {
+		return &addressable.Status.Addresses[0], nil
+	}
+
+	return addressable.Status.Address, nil
 }
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 0fb35bce..c6aae680 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -1221,7 +1221,7 @@ k8s.io/utils/net
 k8s.io/utils/pointer
 k8s.io/utils/strings/slices
 k8s.io/utils/trace
-# knative.dev/eventing v0.37.0
+# knative.dev/eventing v0.37.1-0.20230503104255-7a90c46b4c70
 ## explicit; go 1.19
 knative.dev/eventing/cmd/heartbeats
 knative.dev/eventing/pkg/adapter/v2
@@ -1232,6 +1232,7 @@ knative.dev/eventing/pkg/apis/duck/v1
 knative.dev/eventing/pkg/apis/eventing
 knative.dev/eventing/pkg/apis/eventing/v1
 knative.dev/eventing/pkg/apis/eventing/v1beta1
+knative.dev/eventing/pkg/apis/eventing/v1beta2
 knative.dev/eventing/pkg/apis/feature
 knative.dev/eventing/pkg/apis/flows
 knative.dev/eventing/pkg/apis/flows/v1
@@ -1250,6 +1251,8 @@ knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1
 knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1/fake
 knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta1
 knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta1/fake
+knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2
+knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2/fake
 knative.dev/eventing/pkg/client/clientset/versioned/typed/flows/v1
 knative.dev/eventing/pkg/client/clientset/versioned/typed/flows/v1/fake
 knative.dev/eventing/pkg/client/clientset/versioned/typed/messaging/v1
@@ -1262,6 +1265,7 @@ knative.dev/eventing/pkg/client/informers/externalversions
 knative.dev/eventing/pkg/client/informers/externalversions/eventing
 knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1
 knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1beta1
+knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1beta2
 knative.dev/eventing/pkg/client/informers/externalversions/flows
 knative.dev/eventing/pkg/client/informers/externalversions/flows/v1
 knative.dev/eventing/pkg/client/informers/externalversions/internalinterfaces
@@ -1282,6 +1286,7 @@ knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/broker
 knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger
 knative.dev/eventing/pkg/client/listers/eventing/v1
 knative.dev/eventing/pkg/client/listers/eventing/v1beta1
+knative.dev/eventing/pkg/client/listers/eventing/v1beta2
 knative.dev/eventing/pkg/client/listers/flows/v1
 knative.dev/eventing/pkg/client/listers/messaging/v1
 knative.dev/eventing/pkg/client/listers/sources/v1
@@ -1322,10 +1327,10 @@ knative.dev/eventing/test/test_images
 knative.dev/eventing/test/test_images/event-sender
 knative.dev/eventing/test/test_images/performance
 knative.dev/eventing/test/test_images/print
-# knative.dev/hack v0.0.0-20230417170854-f591fea109b3
+# knative.dev/hack v0.0.0-20230501013555-7d81248b4638
 ## explicit; go 1.18
 knative.dev/hack
-# knative.dev/pkg v0.0.0-20230418073056-dfad48eaa5d0
+# knative.dev/pkg v0.0.0-20230502134655-db8a35330281
 ## explicit; go 1.18
 knative.dev/pkg/apis
 knative.dev/pkg/apis/duck
@@ -1432,7 +1437,7 @@ knative.dev/pkg/webhook/json
 knative.dev/pkg/webhook/resourcesemantics
 knative.dev/pkg/webhook/resourcesemantics/defaulting
 knative.dev/pkg/webhook/resourcesemantics/validation
-# knative.dev/reconciler-test v0.0.0-20230420091239-6c21623d2555
+# knative.dev/reconciler-test v0.0.0-20230503093155-937cf5922570
 ## explicit; go 1.18
 knative.dev/reconciler-test/cmd/eventshub
 knative.dev/reconciler-test/pkg/environment
@@ -1441,6 +1446,7 @@ knative.dev/reconciler-test/pkg/eventshub/assert
 knative.dev/reconciler-test/pkg/eventshub/dropevents
 knative.dev/reconciler-test/pkg/eventshub/dropevents/dropeventsfibonacci
 knative.dev/reconciler-test/pkg/eventshub/dropevents/dropeventsfirst
+knative.dev/reconciler-test/pkg/eventshub/forwarder
 knative.dev/reconciler-test/pkg/eventshub/logger_vent
 knative.dev/reconciler-test/pkg/eventshub/rbac
 knative.dev/reconciler-test/pkg/eventshub/receiver
@@ -1454,6 +1460,7 @@ knative.dev/reconciler-test/pkg/knative
 knative.dev/reconciler-test/pkg/logging
 knative.dev/reconciler-test/pkg/manifest
 knative.dev/reconciler-test/pkg/milestone
+knative.dev/reconciler-test/pkg/resources/knativeservice
 knative.dev/reconciler-test/pkg/resources/service
 knative.dev/reconciler-test/pkg/state
 # sigs.k8s.io/controller-runtime v0.11.2


Test patch:
diff --git a/pkg/reconciler/trigger/trigger_test.go b/pkg/reconciler/trigger/trigger_test.go
index 275daa03..97ccdf95 100644
--- a/pkg/reconciler/trigger/trigger_test.go
+++ b/pkg/reconciler/trigger/trigger_test.go
@@ -464,7 +464,7 @@ func TestReconcile(t *testing.T) {
 					createRabbitMQBrokerConfig(""),
 				},
 				WantEvents: []string{
-					Eventf(corev1.EventTypeWarning, "InternalError", `address not set for &ObjectReference{Kind:Service,Namespace:test-namespace,Name:subscriber-name,UID:,APIVersion:serving.knative.dev/v1,ResourceVersion:,FieldPath:,}`),
+					Eventf(corev1.EventTypeWarning, "InternalError", `address not set for Kind = Service, Namespace = test-namespace, Name = subscriber-name, APIVersion = serving.knative.dev/v1, Group = , Address = `),
 				},
 				WantErr: true,
 				WantStatusUpdates: []clientgotesting.UpdateActionImpl{{
@@ -475,7 +475,7 @@ func TestReconcile(t *testing.T) {
 						WithTriggerBrokerReady(),
 						WithTriggerDeadLetterSinkNotConfigured(),
 						WithTriggerDependencyReady(),
-						WithTriggerSubscriberResolvedFailed("Unable to get the Subscriber's URI", `address not set for &ObjectReference{Kind:Service,Namespace:test-namespace,Name:subscriber-name,UID:,APIVersion:serving.knative.dev/v1,ResourceVersion:,FieldPath:,}`)),
+						WithTriggerSubscriberResolvedFailed("Unable to get the Subscriber's URI", `address not set for Kind = Service, Namespace = test-namespace, Name = subscriber-name, APIVersion = serving.knative.dev/v1, Group = , Address = `)),
 				}},
 			}, {
 				Name: fmt.Sprintf("%s: Deployment creation fails", name),
diff --git a/third_party/eventing-latest/eventing-core.yaml b/third_party/eventing-latest/eventing-core.yaml
index 83d4d831..f3ff38f0 100644
--- a/third_party/eventing-latest/eventing-core.yaml
+++ b/third_party/eventing-latest/eventing-core.yaml
@@ -16,7 +16,7 @@ kind: Namespace
 metadata:
   name: knative-eventing
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 
 ---
@@ -40,7 +40,7 @@ metadata:
   name: eventing-controller
   namespace: knative-eventing
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 ---
 apiVersion: rbac.authorization.k8s.io/v1
@@ -48,7 +48,7 @@ kind: ClusterRoleBinding
 metadata:
   name: eventing-controller
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 subjects:
   - kind: ServiceAccount
@@ -64,7 +64,7 @@ kind: ClusterRoleBinding
 metadata:
   name: eventing-controller-resolver
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 subjects:
   - kind: ServiceAccount
@@ -80,7 +80,7 @@ kind: ClusterRoleBinding
 metadata:
   name: eventing-controller-source-observer
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 subjects:
   - kind: ServiceAccount
@@ -96,7 +96,7 @@ kind: ClusterRoleBinding
 metadata:
   name: eventing-controller-sources-controller
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 subjects:
   - kind: ServiceAccount
@@ -112,7 +112,7 @@ kind: ClusterRoleBinding
 metadata:
   name: eventing-controller-manipulator
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 subjects:
   - kind: ServiceAccount
@@ -144,7 +144,7 @@ metadata:
   name: pingsource-mt-adapter
   namespace: knative-eventing
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 ---
 apiVersion: rbac.authorization.k8s.io/v1
@@ -152,7 +152,7 @@ kind: ClusterRoleBinding
 metadata:
   name: knative-eventing-pingsource-mt-adapter
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 subjects:
   - kind: ServiceAccount
@@ -184,7 +184,7 @@ metadata:
   name: eventing-webhook
   namespace: knative-eventing
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 ---
 apiVersion: rbac.authorization.k8s.io/v1
@@ -192,7 +192,7 @@ kind: ClusterRoleBinding
 metadata:
   name: eventing-webhook
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 subjects:
   - kind: ServiceAccount
@@ -209,7 +209,7 @@ metadata:
   namespace: knative-eventing
   name: eventing-webhook
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 subjects:
   - kind: ServiceAccount
@@ -225,7 +225,7 @@ kind: ClusterRoleBinding
 metadata:
   name: eventing-webhook-resolver
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 subjects:
   - kind: ServiceAccount
@@ -241,7 +241,7 @@ kind: ClusterRoleBinding
 metadata:
   name: eventing-webhook-podspecable-binding
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 subjects:
   - kind: ServiceAccount
@@ -273,7 +273,7 @@ metadata:
   name: config-br-default-channel
   namespace: knative-eventing
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 data:
   channel-template-spec: |
@@ -301,7 +301,7 @@ metadata:
   name: config-br-defaults
   namespace: knative-eventing
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 data:
   # Configures the default for any Broker that does not specify a spec.config or Broker class.
@@ -338,7 +338,7 @@ metadata:
   name: default-ch-webhook
   namespace: knative-eventing
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 data:
   # Configuration for defaulting channels that do not specify CRD implementations.
@@ -374,7 +374,7 @@ metadata:
   labels:
   annotations:
     knative.dev/example-checksum: "9185c153"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 data:
   _example: |
@@ -420,7 +420,7 @@ metadata:
   labels:
     knative.dev/config-propagation: original
     knative.dev/config-category: eventing
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 data:
   # ALPHA feature: The kreference-group allows you to use the Group field in KReferences.
@@ -512,7 +512,7 @@ metadata:
   name: config-leader-election
   namespace: knative-eventing
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
   annotations:
     knative.dev/example-checksum: "f7948630"
@@ -575,7 +575,7 @@ metadata:
   labels:
     knative.dev/config-propagation: original
     knative.dev/config-category: eventing
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 data:
   # Common configuration for all Knative codebase
@@ -628,7 +628,7 @@ metadata:
   labels:
     knative.dev/config-propagation: original
     knative.dev/config-category: eventing
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
   annotations:
     knative.dev/example-checksum: "f46cf09d"
@@ -702,7 +702,7 @@ metadata:
   name: config-sugar
   namespace: knative-eventing
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
   annotations:
     knative.dev/example-checksum: "62dfac6f"
@@ -761,7 +761,7 @@ metadata:
   labels:
     knative.dev/config-propagation: original
     knative.dev/config-category: eventing
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
   annotations:
     knative.dev/example-checksum: "0492ceb0"
@@ -818,7 +818,7 @@ metadata:
   labels:
     knative.dev/high-availability: "true"
     app.kubernetes.io/component: eventing-controller
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   selector:
@@ -829,7 +829,7 @@ spec:
       labels:
         app: eventing-controller
         app.kubernetes.io/component: eventing-controller
-        app.kubernetes.io/version: "20230501-0f0a82c88"
+        app.kubernetes.io/version: "20230503-999eead3d"
         app.kubernetes.io/name: knative-eventing
     spec:
       # To avoid node becoming SPOF, spread our replicas to different nodes.
@@ -847,7 +847,7 @@ spec:
       containers:
         - name: eventing-controller
           terminationMessagePolicy: FallbackToLogsOnError
-          image: gcr.io/knative-nightly/knative.dev/eventing/cmd/controller@sha256:c0a4197c1fc8a9fc331263a73505436de65f6a1755e55eaa260daee70d721e28
+          image: gcr.io/knative-nightly/knative.dev/eventing/cmd/controller@sha256:41bc905ba11d3229fb68519421cd0e558a38589e1cb2aa0a2e9c2ef3304df7a9
           resources:
             requests:
               cpu: 100m
@@ -865,7 +865,7 @@ spec:
               value: knative.dev/eventing
             # APIServerSource
             - name: APISERVER_RA_IMAGE
-              value: gcr.io/knative-nightly/knative.dev/eventing/cmd/apiserver_receive_adapter@sha256:1cea03dc740e2ca48cce4fca79fc96a2d0f376ff7a521fb436ff527b719044b9
+              value: gcr.io/knative-nightly/knative.dev/eventing/cmd/apiserver_receive_adapter@sha256:e39afcad3f732c393dcaffa2c268773b1edb7bed96ffb11d31885038284d1f90
             - name: POD_NAME
               valueFrom:
                 fieldRef:
@@ -935,7 +935,7 @@ metadata:
   namespace: knative-eventing
   labels:
     app.kubernetes.io/component: pingsource-mt-adapter
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   # when set to 0 (and only 0) will be set to 1 when the first PingSource is created.
@@ -949,7 +949,7 @@ spec:
       labels:
         !!merge <<: *labels
         app.kubernetes.io/component: pingsource-mt-adapter
-        app.kubernetes.io/version: "20230501-0f0a82c88"
+        app.kubernetes.io/version: "20230503-999eead3d"
         app.kubernetes.io/name: knative-eventing
     spec:
       affinity:
@@ -963,7 +963,7 @@ spec:
       enableServiceLinks: false
       containers:
         - name: dispatcher
-          image: gcr.io/knative-nightly/knative.dev/eventing/cmd/mtping@sha256:b241b349a25a6b5e347e7b97b0e9ed8215546977451516e91d0d438bdc362972
+          image: gcr.io/knative-nightly/knative.dev/eventing/cmd/mtping@sha256:ec52b44ccaf61d80da9b30586abb61fec3303cfd3cebff84d8b20d0f9a0589f3
           env:
             - name: SYSTEM_NAMESPACE
               value: ''
@@ -1037,7 +1037,7 @@ metadata:
   namespace: knative-eventing
   labels:
     app.kubernetes.io/component: eventing-webhook
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   scaleTargetRef:
@@ -1062,7 +1062,7 @@ metadata:
   namespace: knative-eventing
   labels:
     app.kubernetes.io/component: eventing-webhook
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   minAvailable: 80%
@@ -1092,7 +1092,7 @@ metadata:
   namespace: knative-eventing
   labels:
     app.kubernetes.io/component: eventing-webhook
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   selector:
@@ -1104,7 +1104,7 @@ spec:
       labels:
         !!merge <<: *labels
         app.kubernetes.io/component: eventing-webhook
-        app.kubernetes.io/version: "20230501-0f0a82c88"
+        app.kubernetes.io/version: "20230503-999eead3d"
         app.kubernetes.io/name: knative-eventing
     spec:
       # To avoid node becoming SPOF, spread our replicas to different nodes.
@@ -1124,7 +1124,7 @@ spec:
           terminationMessagePolicy: FallbackToLogsOnError
           # This is the Go import path for the binary that is containerized
           # and substituted here.
-          image: gcr.io/knative-nightly/knative.dev/eventing/cmd/webhook@sha256:55bede23f196c944c44275d7d27584ab0d1dae55904efc1232725d5f67916df9
+          image: gcr.io/knative-nightly/knative.dev/eventing/cmd/webhook@sha256:00389f167da9d07ae432173df99ad7e6714e0a18ea4777f7288d3fb04b8ca6a1
           resources:
             requests:
               # taken from serving.
@@ -1197,7 +1197,7 @@ metadata:
   labels:
     role: eventing-webhook
     app.kubernetes.io/component: eventing-webhook
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
   name: eventing-webhook
   namespace: knative-eventing
@@ -1232,7 +1232,7 @@ metadata:
     eventing.knative.dev/source: "true"
     duck.knative.dev/source: "true"
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
   annotations:
     # TODO add schemas and descriptions
@@ -1476,7 +1476,7 @@ metadata:
   labels:
     knative.dev/crd-install: "true"
     duck.knative.dev/addressable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: eventing.knative.dev
@@ -1647,7 +1647,7 @@ metadata:
     knative.dev/crd-install: "true"
     messaging.knative.dev/subscribable: "true"
     duck.knative.dev/addressable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: messaging.knative.dev
@@ -1921,7 +1921,7 @@ metadata:
     eventing.knative.dev/source: "true"
     duck.knative.dev/source: "true"
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
   name: containersources.sources.knative.dev
 spec:
@@ -2072,12 +2072,13 @@ metadata:
   name: eventtypes.eventing.knative.dev
   labels:
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: eventing.knative.dev
   versions:
-    - name: v1beta1
+    - &version
+      name: v1beta1
       served: true
       storage: true
       subresources:
@@ -2170,6 +2171,11 @@ spec:
         - name: Reason
           type: string
           jsonPath: ".status.conditions[?(@.type==\"Ready\")].reason"
+    - !!merge <<: *version
+      name: v1beta2
+      served: true
+      storage: false
+      # v1beta1 schema is identical to the v1beta2 schema
   names:
     kind: EventType
     plural: eventtypes
@@ -2201,7 +2207,7 @@ metadata:
   labels:
     knative.dev/crd-install: "true"
     duck.knative.dev/addressable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: flows.knative.dev
@@ -2456,7 +2462,7 @@ metadata:
     eventing.knative.dev/source: "true"
     duck.knative.dev/source: "true"
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
   annotations:
     # TODO add schemas and descriptions
@@ -2645,7 +2651,7 @@ metadata:
   labels:
     knative.dev/crd-install: "true"
     duck.knative.dev/addressable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: flows.knative.dev
@@ -2966,7 +2972,7 @@ metadata:
     duck.knative.dev/source: "true"
     duck.knative.dev/binding: "true"
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
   name: sinkbindings.sources.knative.dev
 spec:
@@ -3154,7 +3160,7 @@ metadata:
   name: subscriptions.messaging.knative.dev
   labels:
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: messaging.knative.dev
@@ -3365,7 +3371,7 @@ metadata:
   name: triggers.eventing.knative.dev
   labels:
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: eventing.knative.dev
@@ -3549,7 +3555,7 @@ kind: ClusterRole
 metadata:
   name: addressable-resolver
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 aggregationRule:
   clusterRoleSelectors:
@@ -3563,7 +3569,7 @@ metadata:
   name: service-addressable-resolver
   labels:
     duck.knative.dev/addressable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 # Do not use this role directly. These rules will be added to the "addressable-resolver" role.
 rules:
@@ -3582,7 +3588,7 @@ metadata:
   name: serving-addressable-resolver
   labels:
     duck.knative.dev/addressable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 # Do not use this role directly. These rules will be added to the "addressable-resolver" role.
 rules:
@@ -3604,7 +3610,7 @@ metadata:
   name: channel-addressable-resolver
   labels:
     duck.knative.dev/addressable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 # Do not use this role directly. These rules will be added to the "addressable-resolver" role.
 rules:
@@ -3630,7 +3636,7 @@ metadata:
   name: broker-addressable-resolver
   labels:
     duck.knative.dev/addressable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 # Do not use this role directly. These rules will be added to the "addressable-resolver" role.
 rules:
@@ -3650,7 +3656,7 @@ metadata:
   name: flows-addressable-resolver
   labels:
     duck.knative.dev/addressable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 # Do not use this role directly. These rules will be added to the "addressable-resolver" role.
 rules:
@@ -3686,7 +3692,7 @@ kind: ClusterRole
 metadata:
   name: eventing-broker-filter
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   - apiGroups:
@@ -3712,7 +3718,7 @@ kind: ClusterRole
 metadata:
   name: eventing-broker-ingress
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   - apiGroups:
@@ -3729,7 +3735,7 @@ kind: ClusterRole
 metadata:
   name: eventing-config-reader
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   - apiGroups:
@@ -3762,7 +3768,7 @@ kind: ClusterRole
 metadata:
   name: channelable-manipulator
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 aggregationRule:
   clusterRoleSelectors:
@@ -3776,7 +3782,7 @@ metadata:
   name: meta-channelable-manipulator
   labels:
     duck.knative.dev/channelable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 # Do not use this role directly. These rules will be added to the "channelable-manipulator" role.
 rules:
@@ -3815,7 +3821,7 @@ metadata:
   name: knative-eventing-namespaced-admin
   labels:
     rbac.authorization.k8s.io/aggregate-to-admin: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   - apiGroups: ["eventing.knative.dev"]
@@ -3828,7 +3834,7 @@ metadata:
   name: knative-messaging-namespaced-admin
   labels:
     rbac.authorization.k8s.io/aggregate-to-admin: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   - apiGroups: ["messaging.knative.dev"]
@@ -3841,7 +3847,7 @@ metadata:
   name: knative-flows-namespaced-admin
   labels:
     rbac.authorization.k8s.io/aggregate-to-admin: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   - apiGroups: ["flows.knative.dev"]
@@ -3854,7 +3860,7 @@ metadata:
   name: knative-sources-namespaced-admin
   labels:
     rbac.authorization.k8s.io/aggregate-to-admin: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   - apiGroups: ["sources.knative.dev"]
@@ -3867,7 +3873,7 @@ metadata:
   name: knative-bindings-namespaced-admin
   labels:
     rbac.authorization.k8s.io/aggregate-to-admin: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   - apiGroups: ["bindings.knative.dev"]
@@ -3880,7 +3886,7 @@ metadata:
   name: knative-eventing-namespaced-edit
   labels:
     rbac.authorization.k8s.io/aggregate-to-view: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   - apiGroups: ["eventing.knative.dev", "messaging.knative.dev", "sources.knative.dev", "flows.knative.dev", "bindings.knative.dev"]
@@ -3893,7 +3899,7 @@ metadata:
   name: knative-eventing-namespaced-view
   labels:
     rbac.authorization.k8s.io/aggregate-to-view: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   - apiGroups: ["eventing.knative.dev", "messaging.knative.dev", "sources.knative.dev", "flows.knative.dev", "bindings.knative.dev"]
@@ -3920,7 +3926,7 @@ kind: ClusterRole
 metadata:
   name: knative-eventing-controller
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   - apiGroups:
@@ -4055,7 +4061,7 @@ kind: ClusterRole
 metadata:
   name: knative-eventing-pingsource-mt-adapter
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   - apiGroups:
@@ -4122,7 +4128,7 @@ kind: ClusterRole
 metadata:
   name: podspecable-binding
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 aggregationRule:
   clusterRoleSelectors:
@@ -4136,7 +4142,7 @@ metadata:
   name: builtin-podspecable-binding
   labels:
     duck.knative.dev/podspecable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 # Do not use this role directly. These rules will be added to the "podspecable-binding role.
 rules:
@@ -4182,7 +4188,7 @@ kind: ClusterRole
 metadata:
   name: source-observer
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 aggregationRule:
   clusterRoleSelectors:
@@ -4196,7 +4202,7 @@ metadata:
   name: eventing-sources-source-observer
   labels:
     duck.knative.dev/source: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 # Do not use this role directly. These rules will be added to the "source-observer" role.
 rules:
@@ -4232,7 +4238,7 @@ kind: ClusterRole
 metadata:
   name: knative-eventing-sources-controller
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   - apiGroups:
@@ -4318,7 +4324,7 @@ kind: ClusterRole
 metadata:
   name: knative-eventing-webhook
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   # For watching logging configuration and getting certs.
@@ -4428,7 +4434,7 @@ metadata:
   namespace: knative-eventing
   name: knative-eventing-webhook
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 rules:
   # For manipulating certs into secrets.
@@ -4464,7 +4470,7 @@ kind: ValidatingWebhookConfiguration
 metadata:
   name: config.webhook.eventing.knative.dev
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 webhooks:
   - admissionReviewVersions: ["v1", "v1beta1"]
@@ -4499,7 +4505,7 @@ kind: MutatingWebhookConfiguration
 metadata:
   name: webhook.eventing.knative.dev
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 webhooks:
   - admissionReviewVersions: ["v1", "v1beta1"]
@@ -4532,7 +4538,7 @@ kind: ValidatingWebhookConfiguration
 metadata:
   name: validation.webhook.eventing.knative.dev
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 webhooks:
   - admissionReviewVersions: ["v1", "v1beta1"]
@@ -4566,7 +4572,7 @@ metadata:
   name: eventing-webhook-certs
   namespace: knative-eventing
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 # The data is populated at install time.
 
@@ -4590,7 +4596,7 @@ kind: MutatingWebhookConfiguration
 metadata:
   name: sinkbindings.webhook.sources.knative.dev
   labels:
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 webhooks:
   - admissionReviewVersions: ["v1", "v1beta1"]
diff --git a/third_party/eventing-latest/eventing-crds.yaml b/third_party/eventing-latest/eventing-crds.yaml
index e93b99d2..e3c9f92e 100644
--- a/third_party/eventing-latest/eventing-crds.yaml
+++ b/third_party/eventing-latest/eventing-crds.yaml
@@ -20,7 +20,7 @@ metadata:
     eventing.knative.dev/source: "true"
     duck.knative.dev/source: "true"
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
   annotations:
     # TODO add schemas and descriptions
@@ -264,7 +264,7 @@ metadata:
   labels:
     knative.dev/crd-install: "true"
     duck.knative.dev/addressable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: eventing.knative.dev
@@ -435,7 +435,7 @@ metadata:
     knative.dev/crd-install: "true"
     messaging.knative.dev/subscribable: "true"
     duck.knative.dev/addressable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: messaging.knative.dev
@@ -709,7 +709,7 @@ metadata:
     eventing.knative.dev/source: "true"
     duck.knative.dev/source: "true"
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
   name: containersources.sources.knative.dev
 spec:
@@ -860,12 +860,13 @@ metadata:
   name: eventtypes.eventing.knative.dev
   labels:
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: eventing.knative.dev
   versions:
-    - name: v1beta1
+    - &version
+      name: v1beta1
       served: true
       storage: true
       subresources:
@@ -958,6 +959,11 @@ spec:
         - name: Reason
           type: string
           jsonPath: ".status.conditions[?(@.type==\"Ready\")].reason"
+    - !!merge <<: *version
+      name: v1beta2
+      served: true
+      storage: false
+      # v1beta1 schema is identical to the v1beta2 schema
   names:
     kind: EventType
     plural: eventtypes
@@ -989,7 +995,7 @@ metadata:
   labels:
     knative.dev/crd-install: "true"
     duck.knative.dev/addressable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: flows.knative.dev
@@ -1244,7 +1250,7 @@ metadata:
     eventing.knative.dev/source: "true"
     duck.knative.dev/source: "true"
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
   annotations:
     # TODO add schemas and descriptions
@@ -1433,7 +1439,7 @@ metadata:
   labels:
     knative.dev/crd-install: "true"
     duck.knative.dev/addressable: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: flows.knative.dev
@@ -1754,7 +1760,7 @@ metadata:
     duck.knative.dev/source: "true"
     duck.knative.dev/binding: "true"
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
   name: sinkbindings.sources.knative.dev
 spec:
@@ -1942,7 +1948,7 @@ metadata:
   name: subscriptions.messaging.knative.dev
   labels:
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: messaging.knative.dev
@@ -2153,7 +2159,7 @@ metadata:
   name: triggers.eventing.knative.dev
   labels:
     knative.dev/crd-install: "true"
-    app.kubernetes.io/version: "20230501-0f0a82c88"
+    app.kubernetes.io/version: "20230503-999eead3d"
     app.kubernetes.io/name: knative-eventing
 spec:
   group: eventing.knative.dev
diff --git a/vendor/knative.dev/reconciler-test/cmd/eventshub/main.go b/vendor/knative.dev/reconciler-test/cmd/eventshub/main.go
index 41293e13..32909516 100644
--- a/vendor/knative.dev/reconciler-test/cmd/eventshub/main.go
+++ b/vendor/knative.dev/reconciler-test/cmd/eventshub/main.go
@@ -20,6 +20,7 @@ import (
 	"context"
 
 	"knative.dev/pkg/logging"
+	"knative.dev/reconciler-test/pkg/eventshub/forwarder"
 
 	"knative.dev/reconciler-test/pkg/eventshub"
 	"knative.dev/reconciler-test/pkg/eventshub/logger_vent"
@@ -45,6 +46,11 @@ func main() {
 			eventshub.SenderEventGenerator: func(ctx context.Context, logs *eventshub.EventLogs) error {
 				return sender.Start(ctx, logs, eventshub.WithClientTracing)
 			},
+			eventshub.ForwarderEventGenerator: func(ctx context.Context, logs *eventshub.EventLogs) error {
+				return forwarder.NewFromEnv(ctx, logs,
+					[]eventshub.HandlerFunc{eventshub.WithServerTracing},
+					[]eventshub.ClientOption{eventshub.WithClientTracing}).Start(ctx)
+			},
 		},
 	)
 }
diff --git a/vendor/knative.dev/reconciler-test/pkg/eventshub/102-service.yaml b/vendor/knative.dev/reconciler-test/pkg/eventshub/102-service.yaml
index c3d58ba0..1c591a5e 100644
--- a/vendor/knative.dev/reconciler-test/pkg/eventshub/102-service.yaml
+++ b/vendor/knative.dev/reconciler-test/pkg/eventshub/102-service.yaml
@@ -15,7 +15,7 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ .name }}
+  name: {{ .serviceName }}
   namespace: {{ .namespace }}
 spec:
   selector:
diff --git a/vendor/knative.dev/reconciler-test/pkg/eventshub/104-forwarder.yaml b/vendor/knative.dev/reconciler-test/pkg/eventshub/104-forwarder.yaml
new file mode 100644
index 00000000..3534ff20
--- /dev/null
+++ b/vendor/knative.dev/reconciler-test/pkg/eventshub/104-forwarder.yaml
@@ -0,0 +1,50 @@
+# Copyright 2023 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
+#
+#     https://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.
+
+apiVersion: serving.knative.dev/v1
+kind: Service
+metadata:
+  name: {{ .name }}
+  namespace: {{ .namespace }}
+  {{ if .annotations }}
+  annotations:
+    {{ range $key, $value := .annotations }}
+      {{ $key }}: "{{ $value }}"
+      {{ end }}
+  {{ end }}
+spec:
+  template:
+    {{ if .podannotations }}
+    annotations:
+      {{ range $key, $value := .podannotations }}
+        {{ $key }}: "{{ $value }}"
+        {{ end }}
+    {{ end }}
+    spec:
+      serviceAccountName: "{{ .namespace }}"
+      containers:
+        - name: eventshub-forwarder
+          image: {{ .image }}
+          imagePullPolicy: "IfNotPresent"
+          env:
+            - name: "NAME"
+              value: {{ .name }}
+            - name: "NAMESPACE"
+              value: {{ .namespace }}
+            - name: "SINK"
+              value: {{ .sink }}
+            {{ range $key, $value := .envs }}
+            - name: {{printf "%q" $key}}
+              value: {{printf "%q" $value}}
+            {{ end }}
diff --git a/vendor/knative.dev/reconciler-test/pkg/eventshub/event_log.go b/vendor/knative.dev/reconciler-test/pkg/eventshub/event_log.go
index dc17e88f..a1151329 100644
--- a/vendor/knative.dev/reconciler-test/pkg/eventshub/event_log.go
+++ b/vendor/knative.dev/reconciler-test/pkg/eventshub/event_log.go
@@ -45,8 +45,9 @@ func (e *EventLogs) Vent(observed EventInfo) error {
 }
 
 const (
-	ReceiverEventGenerator string = "receiver"
-	SenderEventGenerator   string = "sender"
+	ReceiverEventGenerator  string = "receiver"
+	SenderEventGenerator    string = "sender"
+	ForwarderEventGenerator string = "forwarder"
 
 	RecorderEventLog string = "recorder"
 	LoggerEventLog   string = "logger"
diff --git a/vendor/knative.dev/reconciler-test/pkg/eventshub/eventshub_image.go b/vendor/knative.dev/reconciler-test/pkg/eventshub/eventshub_image.go
index 085a8297..b2b2419a 100644
--- a/vendor/knative.dev/reconciler-test/pkg/eventshub/eventshub_image.go
+++ b/vendor/knative.dev/reconciler-test/pkg/eventshub/eventshub_image.go
@@ -31,7 +31,7 @@ func ImageFromContext(ctx context.Context) string {
 	if e, ok := ctx.Value(eventshubImageKey{}).(string); ok {
 		return e
 	}
-	return "ko://" + cmdPackage()
+	return "ko://" + eventshubPackage()
 }
 
 // WithCustomImage allows you to specify a custom eventshub image to be used when invoking eventshub.Install
@@ -48,7 +48,7 @@ func registerImage(ctx context.Context) error {
 	return err
 }
 
-func cmdPackage() string {
+func eventshubPackage() string {
 	this := reflect.TypeOf(eventshubImageKey{}).PkgPath()
 	root := path.Dir(path.Dir(this))
 	return path.Join(root, "cmd", "eventshub")
diff --git a/vendor/knative.dev/reconciler-test/pkg/eventshub/forwarder/forwarder.go b/vendor/knative.dev/reconciler-test/pkg/eventshub/forwarder/forwarder.go
new file mode 100644
index 00000000..ba940f72
--- /dev/null
+++ b/vendor/knative.dev/reconciler-test/pkg/eventshub/forwarder/forwarder.go
@@ -0,0 +1,262 @@
+/*
+Copyright 2023 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 forwarder
+
+import (
+	"context"
+	"fmt"
+	"io/ioutil"
+	"net/http"
+	"strings"
+	"time"
+
+	cloudevents "github.com/cloudevents/sdk-go/v2"
+	cloudeventsbindings "github.com/cloudevents/sdk-go/v2/binding"
+	"go.opencensus.io/trace"
+	"go.uber.org/zap"
+
+	cehttp "github.com/cloudevents/sdk-go/v2/protocol/http"
+	cloudeventshttp "github.com/cloudevents/sdk-go/v2/protocol/http"
+	"github.com/kelseyhightower/envconfig"
+	"knative.dev/pkg/logging"
+
+	"knative.dev/reconciler-test/pkg/eventshub"
+)
+
+// Forwarder is the entry point for sinking events into the event log.
+type Forwarder struct {
+	// Name is the name of this Forwarder.
+	Name string
+
+	// The current namespace.
+	Namespace string `envconfig:"NAMESPACE" required:"true"`
+
+	// Sink
+	Sink string
+
+	// EventLogs is the list of EventLogger implementors to vent observed events.
+	EventLogs *eventshub.EventLogs
+
+	ctx          context.Context
+	handlerFuncs []eventshub.HandlerFunc
+	clientOpts   []eventshub.ClientOption
+	httpClient   *http.Client
+}
+
+type envConfig struct {
+	// Name is used to identify this instance of the forwarder.
+	Name string `envconfig:"NAME" default:"forwarder-default" required:"true"`
+
+	// The current namespace.
+	Namespace string `envconfig:"NAMESPACE" required:"true"`
+
+	// Sink url for the message destination
+	Sink string `envconfig:"SINK" required:"true"`
+}
+
+func NewFromEnv(ctx context.Context, eventLogs *eventshub.EventLogs, handlerFuncs []eventshub.HandlerFunc, clientOpts []eventshub.ClientOption) *Forwarder {
+	var env envConfig
+	if err := envconfig.Process("", &env); err != nil {
+		logging.FromContext(ctx).Fatal("Failed to process env var", err)
+	}
+
+	logging.FromContext(ctx).Infof("Forwarder environment configuration: %+v", env)
+
+	return &Forwarder{
+		Name:         env.Name,
+		Namespace:    env.Namespace,
+		Sink:         env.Sink,
+		EventLogs:    eventLogs,
+		ctx:          ctx,
+		handlerFuncs: handlerFuncs,
+		clientOpts:   clientOpts,
+		httpClient:   &http.Client{},
+	}
+}
+
+// Start will create the CloudEvents client and start listening for inbound
+// HTTP requests. This is a blocking call.
+func (o *Forwarder) Start(ctx context.Context) error {
+	var handler http.Handler = o
+
+	for _, opt := range o.clientOpts {
+		if err := opt(o.httpClient); err != nil {
+			return fmt.Errorf("unable to apply client option: %w", err)
+		}
+	}
+
+	for _, dec := range o.handlerFuncs {
+		handler = dec(handler)
+	}
+
+	server := &http.Server{Addr: ":8080", Handler: handler}
+
+	var err error
+	go func() {
+		err = server.ListenAndServe()
+	}()
+
+	<-ctx.Done()
+
+	if err != nil {
+		return fmt.Errorf("error while starting the HTTP server: %w", err)
+	}
+
+	logging.FromContext(ctx).Info("Closing the HTTP server")
+
+	return server.Close()
+}
+
+func (o *Forwarder) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
+	requestCtx, span := trace.StartSpan(request.Context(), "eventshub-forwarder")
+	defer span.End()
+
+	m := cloudeventshttp.NewMessageFromHttpRequest(request)
+	defer m.Finish(nil)
+
+	event, eventErr := cloudeventsbindings.ToEvent(context.TODO(), m)
+	headers := make(http.Header)
+	for k, v := range request.Header {
+		if !strings.HasPrefix(k, "Ce-") {
+			headers[k] = v
+		}
+	}
+	// Host header is removed from the request.Header map by net/http
+	if request.Host != "" {
+		headers.Set("Host", request.Host)
+	}
+
+	eventErrStr := ""
+	if eventErr != nil {
+		eventErrStr = eventErr.Error()
+	}
+
+	eventInfo := eventshub.EventInfo{
+		Error:       eventErrStr,
+		Event:       event,
+		Observer:    o.Name,
+		HTTPHeaders: headers,
+		Origin:      request.RemoteAddr,
+		Time:        time.Now(),
+		Kind:        eventshub.EventReceived,
+	}
+
+	// Log the event that is being forwarded
+	if err := o.EventLogs.Vent(eventInfo); err != nil {
+		logging.FromContext(o.ctx).Fatalw("Error while venting the received event", zap.Error(err))
+	}
+
+	req, err := http.NewRequestWithContext(requestCtx, http.MethodPost, o.Sink, nil)
+	if err != nil {
+		logging.FromContext(o.ctx).Error("Cannot create the request: ", err)
+	}
+	err = cehttp.WriteRequest(requestCtx, m, req)
+	if err != nil {
+		logging.FromContext(o.ctx).Error("Cannot write the event: ", err)
+	}
+
+	eventString := "unknown"
+	if event != nil {
+		eventString = event.String()
+	}
+	span.AddAttributes(
+		trace.StringAttribute("namespace", o.Namespace),
+		trace.StringAttribute("event", eventString),
+	)
+
+	res, err := o.httpClient.Do(req)
+
+	// Publish sent event info
+	if err := o.EventLogs.Vent(o.sentInfo(event, req, err)); err != nil {
+		logging.FromContext(o.ctx).Error("Cannot log forwarded event: ", err)
+	}
+
+	if err == nil {
+		// Vent the response info
+		if err := o.EventLogs.Vent(o.responseInfo(res, event)); err != nil {
+			logging.FromContext(o.ctx).Error("Cannot log response for forwarded event: ", err)
+		}
+	}
+
+	writer.WriteHeader(http.StatusAccepted)
+}
+
+func (o *Forwarder) sentInfo(event *cloudevents.Event, req *http.Request, err error) eventshub.EventInfo {
+	var eventId string
+	if event != nil {
+		eventId = event.ID()
+	}
+
+	eventInfo := eventshub.EventInfo{
+		Kind:     eventshub.EventSent,
+		Origin:   o.Name,
+		Observer: o.Name,
+		Time:     time.Now(),
+		SentId:   eventId,
+	}
+
+	sentHeaders := make(http.Header)
+	for k, v := range req.Header {
+		sentHeaders[k] = v
+	}
+	eventInfo.HTTPHeaders = sentHeaders
+
+	if err != nil {
+		eventInfo.Error = err.Error()
+	} else {
+		eventInfo.Event = event
+	}
+
+	return eventInfo
+}
+
+func (o *Forwarder) responseInfo(res *http.Response, event *cloudevents.Event) eventshub.EventInfo {
+	var eventId string
+	if event != nil {
+		eventId = event.ID()
+	}
+
+	responseInfo := eventshub.EventInfo{
+		Kind:        eventshub.EventResponse,
+		HTTPHeaders: res.Header,
+		Origin:      o.Sink,
+		Observer:    o.Name,
+		Time:        time.Now(),
+		StatusCode:  res.StatusCode,
+		SentId:      eventId,
+	}
+
+	responseMessage := cehttp.NewMessageFromHttpResponse(res)
+
+	if responseMessage.ReadEncoding() == cloudeventsbindings.EncodingUnknown {
+		body, err := ioutil.ReadAll(res.Body)
+
+		if err != nil {
+			responseInfo.Error = err.Error()
+		} else {
+			responseInfo.Body = body
+		}
+	} else {
+		responseEvent, err := cloudeventsbindings.ToEvent(context.Background(), responseMessage)
+		if err != nil {
+			responseInfo.Error = err.Error()
+		} else {
+			responseInfo.Event = responseEvent
+		}
+	}
+	return responseInfo
+}
diff --git a/vendor/knative.dev/reconciler-test/pkg/eventshub/options.go b/vendor/knative.dev/reconciler-test/pkg/eventshub/options.go
index f483944e..2965024b 100644
--- a/vendor/knative.dev/reconciler-test/pkg/eventshub/options.go
+++ b/vendor/knative.dev/reconciler-test/pkg/eventshub/options.go
@@ -33,17 +33,29 @@ import (
 	"knative.dev/reconciler-test/pkg/k8s"
 )
 
+type forwarderKey struct{}
+
+// WithKnativeServiceForwarder deploys a Knative Service forwarder that will forward requests to eventshub.
+func WithKnativeServiceForwarder(ctx context.Context, env environment.Environment) (context.Context, error) {
+	return context.WithValue(ctx, forwarderKey{}, true), nil
+}
+
+func isForwarder(ctx context.Context) bool {
+	v := ctx.Value(forwarderKey{})
+	return v != nil && v.(bool)
+}
+
 // EventsHubOption is used to define an env for the eventshub image
 type EventsHubOption = func(context.Context, map[string]string) error
 
 // StartReceiver starts the receiver in the eventshub
 // This can be used together with EchoEvent, ReplyWithTransformedEvent, ReplyWithAppendedData
-var StartReceiver EventsHubOption = envAdditive("EVENT_GENERATORS", "receiver")
+var StartReceiver EventsHubOption = envAdditive(EventGeneratorsEnv, "receiver")
 
 // StartSender starts the sender in the eventshub
 // This can be used together with InputEvent, AddTracing, EnableIncrementalId, InputEncoding and InputHeader options
 func StartSender(sinkSvc string) EventsHubOption {
-	return compose(envAdditive("EVENT_GENERATORS", "sender"), func(ctx context.Context, envs map[string]string) error {
+	return compose(envAdditive(EventGeneratorsEnv, "sender"), func(ctx context.Context, envs map[string]string) error {
 		envs["SINK"] = "http://" + network.GetServiceHostname(sinkSvc, environment.FromContext(ctx).Namespace())
 		return nil
 	})
@@ -52,7 +64,7 @@ func StartSender(sinkSvc string) EventsHubOption {
 // StartSenderToResource starts the sender in the eventshub pointing to the provided resource
 // This can be used together with InputEvent, AddTracing, EnableIncrementalId, InputEncoding and InputHeader options
 func StartSenderToResource(gvr schema.GroupVersionResource, name string) EventsHubOption {
-	return compose(envAdditive("EVENT_GENERATORS", "sender"), func(ctx context.Context, envs map[string]string) error {
+	return compose(envAdditive(EventGeneratorsEnv, "sender"), func(ctx context.Context, envs map[string]string) error {
 		u, err := k8s.Address(ctx, gvr, name)
 		if err != nil {
 			return err
@@ -68,7 +80,7 @@ func StartSenderToResource(gvr schema.GroupVersionResource, name string) EventsH
 // StartSenderURL starts the sender in the eventshub sinking to a URL.
 // This can be used together with InputEvent, AddTracing, EnableIncrementalId, InputEncoding and InputHeader options
 func StartSenderURL(sink string) EventsHubOption {
-	return compose(envAdditive("EVENT_GENERATORS", "sender"), func(ctx context.Context, envs map[string]string) error {
+	return compose(envAdditive(EventGeneratorsEnv, "sender"), func(ctx context.Context, envs map[string]string) error {
 		envs["SINK"] = sink
 		return nil
 	})
diff --git a/vendor/knative.dev/reconciler-test/pkg/eventshub/resources.go b/vendor/knative.dev/reconciler-test/pkg/eventshub/resources.go
index fdf97692..8b8418c5 100644
--- a/vendor/knative.dev/reconciler-test/pkg/eventshub/resources.go
+++ b/vendor/knative.dev/reconciler-test/pkg/eventshub/resources.go
@@ -22,17 +22,21 @@ import (
 	"strings"
 
 	"knative.dev/pkg/logging"
-
 	"knative.dev/reconciler-test/pkg/environment"
 	eventshubrbac "knative.dev/reconciler-test/pkg/eventshub/rbac"
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/k8s"
 	"knative.dev/reconciler-test/pkg/knative"
 	"knative.dev/reconciler-test/pkg/manifest"
+	"knative.dev/reconciler-test/pkg/resources/knativeservice"
+	"knative.dev/reconciler-test/pkg/resources/service"
 )
 
-//go:embed *.yaml
-var templates embed.FS
+//go:embed 102-service.yaml 103-pod.yaml
+var servicePodTemplates embed.FS
+
+//go:embed 104-forwarder.yaml
+var forwarderTemplates embed.FS
 
 // Install starts a new eventshub with the provided name
 // Note: this function expects that the Environment is configured with the
@@ -70,10 +74,24 @@ func Install(name string, options ...EventsHubOption) feature.StepFn {
 		// Install ServiceAccount, Role, RoleBinding
 		eventshubrbac.Install()(ctx, t)
 
-		isReceiver := strings.Contains(envs["EVENT_GENERATORS"], "receiver")
+		isReceiver := strings.Contains(envs[EventGeneratorsEnv], "receiver")
+
+		var withForwarder bool
+		// Allow forwarder only when eventshub is receiver.
+		if isForwarder(ctx) && isReceiver {
+			withForwarder = isForwarder(ctx)
+		}
+
+		serviceName := name
+		// When forwarder is included we need to rename the eventshub service to
+		// prevent conflict with the forwarder service.
+		if withForwarder {
+			serviceName = feature.MakeRandomK8sName(name)
+		}
 
 		cfg := map[string]interface{}{
 			"name":          name,
+			"serviceName":   serviceName,
 			"envs":          envs,
 			"image":         ImageFromContext(ctx),
 			"withReadiness": isReceiver,
@@ -85,8 +103,8 @@ func Install(name string, options ...EventsHubOption) feature.StepFn {
 
 		manifest.PodSecurityCfgFn(ctx, t)(cfg)
 
-		// Deploy
-		if _, err := manifest.InstallYamlFS(ctx, templates, cfg); err != nil {
+		// Deploy Service/Pod
+		if _, err := manifest.InstallYamlFS(ctx, servicePodTemplates, cfg); err != nil {
 			log.Fatal(err)
 		}
 
@@ -94,8 +112,27 @@ func Install(name string, options ...EventsHubOption) feature.StepFn {
 
 		// If the eventhubs starts an event receiver, we need to wait for the service endpoint to be synced
 		if isReceiver {
-			k8s.WaitForServiceEndpointsOrFail(ctx, t, name, 1)
-			k8s.WaitForServiceReadyOrFail(ctx, t, name, "/health/ready")
+			k8s.WaitForServiceEndpointsOrFail(ctx, t, serviceName, 1)
+			k8s.WaitForServiceReadyOrFail(ctx, t, serviceName, "/health/ready")
+		}
+
+		if withForwarder {
+			sinkURL, err := service.Address(ctx, serviceName)
+			if err != nil {
+				log.Fatal(err)
+			}
+			// At this point env contains "receiver" so we need to override it.
+			envs[EventGeneratorsEnv] = "forwarder"
+			// No event recording desired, just logging.
+			envs[EventLogsEnv] = "logger"
+			cfg["envs"] = envs
+			cfg["sink"] = sinkURL
+
+			// Deploy Forwarder
+			if _, err := manifest.InstallYamlFS(ctx, forwarderTemplates, cfg); err != nil {
+				log.Fatal(err)
+			}
+			knativeservice.IsReady(name)
 		}
 	}
 }
diff --git a/vendor/knative.dev/reconciler-test/pkg/eventshub/sender/sender.go b/vendor/knative.dev/reconciler-test/pkg/eventshub/sender/sender.go
index f423612b..7b99563b 100644
--- a/vendor/knative.dev/reconciler-test/pkg/eventshub/sender/sender.go
+++ b/vendor/knative.dev/reconciler-test/pkg/eventshub/sender/sender.go
@@ -107,9 +107,7 @@ type generator struct {
 	eventQueue []conformanceevent.Event
 }
 
-type Option func(*nethttp.Client) error
-
-func Start(ctx context.Context, logs *eventshub.EventLogs, clientOpts ...Option) error {
+func Start(ctx context.Context, logs *eventshub.EventLogs, clientOpts ...eventshub.ClientOption) error {
 	var env generator
 	if err := envconfig.Process("", &env); err != nil {
 		return fmt.Errorf("failed to process env var. %w", err)
diff --git a/vendor/knative.dev/reconciler-test/pkg/eventshub/utils.go b/vendor/knative.dev/reconciler-test/pkg/eventshub/utils.go
index 8400e5db..e629d0f0 100644
--- a/vendor/knative.dev/reconciler-test/pkg/eventshub/utils.go
+++ b/vendor/knative.dev/reconciler-test/pkg/eventshub/utils.go
@@ -33,8 +33,10 @@ import (
 )
 
 const (
-	ConfigTracingEnv = "K_CONFIG_TRACING"
-	ConfigLoggingEnv = "K_CONFIG_LOGGING"
+	ConfigTracingEnv   = "K_CONFIG_TRACING"
+	ConfigLoggingEnv   = "K_CONFIG_LOGGING"
+	EventGeneratorsEnv = "EVENT_GENERATORS"
+	EventLogsEnv       = "EVENT_LOGS"
 )
 
 func ParseHeaders(serializedHeaders string) http.Header {
@@ -115,3 +117,6 @@ func WithClientTracing(client *http.Client) error {
 	}
 	return nil
 }
+
+type HandlerFunc func(handler http.Handler) http.Handler
+type ClientOption func(*http.Client) error
diff --git a/vendor/knative.dev/reconciler-test/pkg/resources/knativeservice/ksvc.go b/vendor/knative.dev/reconciler-test/pkg/resources/knativeservice/ksvc.go
new file mode 100644
index 00000000..9a81db33
--- /dev/null
+++ b/vendor/knative.dev/reconciler-test/pkg/resources/knativeservice/ksvc.go
@@ -0,0 +1,34 @@
+/*
+Copyright 2023 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 knativeservice
+
+import (
+	"time"
+
+	"k8s.io/apimachinery/pkg/runtime/schema"
+	"knative.dev/reconciler-test/pkg/feature"
+	"knative.dev/reconciler-test/pkg/k8s"
+)
+
+func GVR() schema.GroupVersionResource {
+	return schema.GroupVersionResource{Group: "serving.knative.dev", Version: "v1", Resource: "services"}
+}
+
+// IsReady tests to see if a knative Service becomes ready within the time given.
+func IsReady(name string, timings ...time.Duration) feature.StepFn {
+	return k8s.IsReady(GVR(), name, timings...)
+}