Repository: knative-sandbox/eventing-kafka-broker
Pull request #126 (2020-08-26 05:49:16)

[data-plane]: Bump mockito-junit-jupiter from 3.4.6 to 3.5.7 in /data-plane
Bumps [mockito-junit-jupiter](https://github.com/mockito/mockito) from 3.4.6 to 3.5.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mockito/mockito/releases">mockito-junit-jupiter's releases</a>.</em></p>
<blockquote>
<h2>v3.5.7</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --><em>Release notes were automatically generated by <a href="http://shipkit.org/">Shipkit</a></em><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h4>3.5.7</h4>
<ul>
<li>2020-08-25 - <a href="https://github.com/mockito/mockito/compare/v3.5.6...v3.5.7">2 commits</a> by <a href="https://github.com/raphw">Rafael Winterhalter</a> - published to <a href="https://bintray.com/mockito/maven/mockito/3.5.7"><img src="https://img.shields.io/badge/Bintray-3.5.7-green.svg" alt="Bintray" /></a></li>
<li>Initializes classes prior to instrumentation to avoid uncontrolled code execution. [(<a href="https://github-redirect.dependabot.com/mockito/mockito/issues/2023">#2023</a>)](<a href="https://github-redirect.dependabot.com/mockito/mockito/pull/2023">mockito/mockito#2023</a>)</li>
<li>Stackoverflow error when upgrading to v3.5.2 [(<a href="https://github-redirect.dependabot.com/mockito/mockito/issues/2011">#2011</a>)](<a href="https://github-redirect.dependabot.com/mockito/mockito/issues/2011">mockito/mockito#2011</a>)</li>
</ul>
<h2>v3.5.6</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --><em>Release notes were automatically generated by <a href="http://shipkit.org/">Shipkit</a></em><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h4>3.5.6</h4>
<ul>
<li>2020-08-24 - <a href="https://github.com/mockito/mockito/compare/v3.5.5...v3.5.6">5 commits</a> by <a href="https://github.com/raphw">Rafael Winterhalter</a> - published to <a href="https://bintray.com/mockito/maven/mockito/3.5.6"><img src="https://img.shields.io/badge/Bintray-3.5.6-green.svg" alt="Bintray" /></a></li>
<li>Only apply argument on illegal module access for inline tests if Java version is at least 9. [(<a href="https://github-redirect.dependabot.com/mockito/mockito/issues/2022">#2022</a>)](<a href="https://github-redirect.dependabot.com/mockito/mockito/pull/2022">mockito/mockito#2022</a>)</li>
<li>Constructor dispatch [(<a href="https://github-redirect.dependabot.com/mockito/mockito/issues/2021">#2021</a>)](<a href="https://github-redirect.dependabot.com/mockito/mockito/pull/2021">mockito/mockito#2021</a>)</li>
</ul>
<h2>v3.5.5</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --><em>Release notes were automatically generated by <a href="http://shipkit.org/">Shipkit</a></em><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h4>3.5.5</h4>
<ul>
<li>2020-08-22 - <a href="https://github.com/mockito/mockito/compare/v3.5.4...v3.5.5">3 commits</a> by <a href="https://github.com/raphw">Rafael Winterhalter</a> - published to <a href="https://bintray.com/mockito/maven/mockito/3.5.5"><img src="https://img.shields.io/badge/Bintray-3.5.5-green.svg" alt="Bintray" /></a></li>
<li>Constructor dispatch [(<a href="https://github-redirect.dependabot.com/mockito/mockito/issues/2020">#2020</a>)](<a href="https://github-redirect.dependabot.com/mockito/mockito/pull/2020">mockito/mockito#2020</a>)</li>
</ul>
<h2>v3.5.2</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --><em>Release notes were automatically generated by <a href="http://shipkit.org/">Shipkit</a></em><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h4>3.5.2</h4>
<ul>
<li>2020-08-18 - <a href="https://github.com/mockito/mockito/compare/v3.5.1...v3.5.2">1 commit</a> by <a href="https://github.com/TimvdLippe">Tim van der Lippe</a> - published to <a href="https://bintray.com/mockito/maven/mockito/3.5.2"><img src="https://img.shields.io/badge/Bintray-3.5.2-green.svg" alt="Bintray" /></a></li>
<li>No pull requests referenced in commit messages.</li>
</ul>
<h2>v3.5.1</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --><em>Release notes were automatically generated by <a href="http://shipkit.org/">Shipkit</a></em><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h4>3.5.1</h4>
<ul>
<li>2020-08-18 - <a href="https://github.com/mockito/mockito/compare/v3.5.0...v3.5.1">3 commits</a> by <a href="https://github.com/raphw">Rafael Winterhalter</a> - published to <a href="https://bintray.com/mockito/maven/mockito-development/3.5.1"><img src="https://img.shields.io/badge/Bintray-3.5.1-green.svg" alt="Bintray" /></a></li>
<li>Introduce animal sniffer [(<a href="https://github-redirect.dependabot.com/mockito/mockito/issues/2006">#2006</a>)](<a href="https://github-redirect.dependabot.com/mockito/mockito/pull/2006">mockito/mockito#2006</a>)</li>
</ul>
<h2>v3.5.0</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --><em>Release notes were automatically generated by <a href="http://shipkit.org/">Shipkit</a></em><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h4>3.5.0</h4>
<ul>
<li>2020-08-15 - <a href="https://github.com/mockito/mockito/compare/v3.4.8...v3.5.0">9 commits</a> by <a href="https://github.com/raphw">Rafael Winterhalter</a> - published to <a href="https://bintray.com/mockito/maven/mockito/3.5.0"><img src="https://img.shields.io/badge/Bintray-3.5.0-green.svg" alt="Bintray" /></a></li>
<li>Pre release 3.5.0 [(<a href="https://github-redirect.dependabot.com/mockito/mockito/issues/2004">#2004</a>)](<a href="https://github-redirect.dependabot.com/mockito/mockito/pull/2004">mockito/mockito#2004</a>)</li>
</ul>
<h2>v3.4.8</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --><em>Release notes were automatically generated by <a href="http://shipkit.org/">Shipkit</a></em><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h4>3.4.8</h4>
<ul>
<li>2020-08-09 - <a href="https://github.com/mockito/mockito/compare/v3.4.7...v3.4.8">1 commit</a> by <a href="https://github.com/epeee">Erhard Pointl</a> - published to <a href="https://bintray.com/mockito/maven/mockito-development/3.4.8"><img src="https://img.shields.io/badge/Bintray-3.4.8-green.svg" alt="Bintray" /></a></li>
<li>Update objenesis to 3.1 [(<a href="https://github-redirect.dependabot.com/mockito/mockito/issues/1998">#1998</a>)](<a href="https://github-redirect.dependabot.com/mockito/mockito/pull/1998">mockito/mockito#1998</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/mockito/mockito/commit/8007df7a25d6c59eb561c1f6023d724d3b3c167f"><code>8007df7</code></a> 3.5.7 release (previous 3.5.6) + release notes updated by CI build 4749</li>
<li><a href="https://github.com/mockito/mockito/commit/f31ba850384fa789278e11aea41efc3b1c877a48"><code>f31ba85</code></a> [ci maven-central-release] Merge pull request <a href="https://github-redirect.dependabot.com/mockito/mockito/issues/2023">#2023</a> from mockito/explicit-ini...</li>
<li><a href="https://github.com/mockito/mockito/commit/24d8d790c22913a9a92ea70bad721b06a735cd46"><code>24d8d79</code></a> Initializes classes prior to instrumentation to avoid uncontrolled code execu...</li>
<li><a href="https://github.com/mockito/mockito/commit/929840ab691b2f502b9958ac9483104bfd88a9ee"><code>929840a</code></a> 3.5.6 release (previous 3.5.5) + release notes updated by CI build 4744</li>
<li><a href="https://github.com/mockito/mockito/commit/7a350f3a902be8fef63567457fe89e9f6f824e2c"><code>7a350f3</code></a> [ci maven-central-release] Merge pull request <a href="https://github-redirect.dependabot.com/mockito/mockito/issues/2022">#2022</a> from mockito/constructor-...</li>
<li><a href="https://github.com/mockito/mockito/commit/f48b98ac940e8e9e3f0782b37247f031507566da"><code>f48b98a</code></a> Only apply argument on illegal module access for inline tests if Java version...</li>
<li><a href="https://github.com/mockito/mockito/commit/76a91f05c994afa3e66f066d53dc4c010ac281c6"><code>76a91f0</code></a> [ci maven-central-release] Merge pull request <a href="https://github-redirect.dependabot.com/mockito/mockito/issues/2021">#2021</a> from mockito/constructor-...</li>
<li><a href="https://github.com/mockito/mockito/commit/57f7db8c4c72f06cb6c94a7edce1f255847e12ac"><code>57f7db8</code></a> Refine module openness check</li>
<li><a href="https://github.com/mockito/mockito/commit/eaa12bfc018ed00fcd35588dc900d657a9740e32"><code>eaa12bf</code></a> Add suspension when Mockito exception is thrown.</li>
<li><a href="https://github.com/mockito/mockito/commit/065dd127fdd34b6570ae78075c12d4d4026fbbcb"><code>065dd12</code></a> 3.5.5 release (previous 3.5.4) + release notes updated by CI build 4734</li>
<li>Additional commits viewable in <a href="https://github.com/mockito/mockito/compare/v3.4.6...v3.5.7">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.mockito:mockito-junit-jupiter&package-manager=maven&previous-version=3.4.6&new-version=3.5.7)](https://help.github.com/articles/configuring-automated-security-fixes)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

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

This pull-request has been approved by: *<a href="https://github.com/knative-sandbox/eventing-kafka-broker/pull/126#" title="Author self-approved">dependabot[bot]</a>*
To complete the [pull request process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process), please assign **tcnghia**
You can assign the PR to them by writing `/assign @tcnghia` in a comment when ready.

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

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

- **[OWNERS](https://github.com/knative-sandbox/eventing-kafka-broker/blob/master/OWNERS)**

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":["tcnghia"]} -->
knative-prow-robot: Hi @dependabot[bot]. Thanks for your PR.

I'm waiting for a [knative-sandbox](https://github.com/orgs/knative-sandbox/people) member to verify that this patch is reasonable to test. If it is, they should reply with `/ok-to-test` on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should [join the org](https://github.com/orgs/knative-sandbox/people) to skip this step.

Once the patch is verified, the new status will be reflected by the `ok-to-test` label.

I understand the commands that are listed [here](https://go.k8s.io/bot-commands?repo=knative-sandbox%2Feventing-kafka-broker).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
</details>

pierDipi: /ok-to-test
knative-prow-robot: @dependabot[bot]: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-knative-sandbox-eventing-kafka-broker-integration-tests | 308d251e25147e107c947cab836fa74c3c5cf847 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/126/pull-knative-sandbox-eventing-kafka-broker-integration-tests/1298904312306470913) | `/test pull-knative-sandbox-eventing-kafka-broker-integration-tests`

[Full PR test history](https://gubernator.knative.dev/pr/knative-sandbox_eventing-kafka-broker/126). [Your PR dashboard](https://gubernator.knative.dev/pr/dependabot[bot]).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
pierDipi: ```
event_info_store.go:114: Failed to start the EventInfoStore associated to pod 'subscriber': timeout waiting for recordevents pod to come up: http get error: Get "http://localhost:54286/minmax": dial tcp 127.0.0.1:54286: connect: connection refused
```
related: https://github.com/knative/eventing/issues/3570

/retest
slinkydeveloper: /lgtm
/approve

Patch:
diff --git a/control-plane/pkg/reconciler/broker/broker.go b/control-plane/pkg/reconciler/broker/broker.go
index b52eb15f2..0f03180d3 100644
--- a/control-plane/pkg/reconciler/broker/broker.go
+++ b/control-plane/pkg/reconciler/broker/broker.go
@@ -28,7 +28,7 @@ import (
 	corev1 "k8s.io/api/core/v1"
 	corelisters "k8s.io/client-go/listers/core/v1"
 	"k8s.io/client-go/util/retry"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 	"knative.dev/eventing/pkg/logging"
 	"knative.dev/pkg/controller"
 	"knative.dev/pkg/reconciler"
diff --git a/control-plane/pkg/reconciler/broker/broker_lifecycle.go b/control-plane/pkg/reconciler/broker/broker_lifecycle.go
index 30ff86ed3..82c366451 100644
--- a/control-plane/pkg/reconciler/broker/broker_lifecycle.go
+++ b/control-plane/pkg/reconciler/broker/broker_lifecycle.go
@@ -21,7 +21,7 @@ import (
 
 	corev1 "k8s.io/api/core/v1"
 	"k8s.io/client-go/tools/record"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 	"knative.dev/eventing/pkg/reconciler/names"
 	"knative.dev/pkg/apis"
 	"knative.dev/pkg/reconciler"
diff --git a/control-plane/pkg/reconciler/broker/controller.go b/control-plane/pkg/reconciler/broker/controller.go
index 52c53166f..ca8e94253 100644
--- a/control-plane/pkg/reconciler/broker/controller.go
+++ b/control-plane/pkg/reconciler/broker/controller.go
@@ -24,15 +24,15 @@ import (
 	"go.uber.org/zap"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/client-go/tools/cache"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 	"knative.dev/eventing/pkg/logging"
 	kubeclient "knative.dev/pkg/client/injection/kube/client"
 	"knative.dev/pkg/configmap"
 	"knative.dev/pkg/controller"
 	"knative.dev/pkg/resolver"
 
-	brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/broker"
-	brokerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/broker"
+	brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker"
+	brokerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/broker"
 	configmapinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/configmap"
 	podinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/pod"
 
diff --git a/control-plane/pkg/reconciler/broker/topic.go b/control-plane/pkg/reconciler/broker/topic.go
index da545d3cf..2a3438c18 100644
--- a/control-plane/pkg/reconciler/broker/topic.go
+++ b/control-plane/pkg/reconciler/broker/topic.go
@@ -21,7 +21,7 @@ import (
 
 	"github.com/Shopify/sarama"
 	"go.uber.org/zap"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 )
 
 func (r *Reconciler) CreateTopic(logger *zap.Logger, topic string, config *Config) (string, error) {
diff --git a/control-plane/pkg/reconciler/kafka/broker_class.go b/control-plane/pkg/reconciler/kafka/broker_class.go
index 75c3ff665..312b9d700 100644
--- a/control-plane/pkg/reconciler/kafka/broker_class.go
+++ b/control-plane/pkg/reconciler/kafka/broker_class.go
@@ -19,7 +19,7 @@ package kafka
 import (
 	pkgreconciler "knative.dev/pkg/reconciler"
 
-	brokerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/broker"
+	brokerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/broker"
 )
 
 const (
diff --git a/control-plane/pkg/reconciler/trigger/controller.go b/control-plane/pkg/reconciler/trigger/controller.go
index 40be43baf..bbea60a80 100644
--- a/control-plane/pkg/reconciler/trigger/controller.go
+++ b/control-plane/pkg/reconciler/trigger/controller.go
@@ -30,12 +30,12 @@ import (
 	"knative.dev/pkg/resolver"
 
 	apiseventing "knative.dev/eventing/pkg/apis/eventing"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 	eventingclient "knative.dev/eventing/pkg/client/injection/client"
-	brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/broker"
-	triggerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger"
-	triggerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger"
-	eventinglisters "knative.dev/eventing/pkg/client/listers/eventing/v1beta1"
+	brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker"
+	triggerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger"
+	triggerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger"
+	eventinglisters "knative.dev/eventing/pkg/client/listers/eventing/v1"
 
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/base"
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/broker"
diff --git a/control-plane/pkg/reconciler/trigger/trigger.go b/control-plane/pkg/reconciler/trigger/trigger.go
index e70adbc65..e1ea333c6 100644
--- a/control-plane/pkg/reconciler/trigger/trigger.go
+++ b/control-plane/pkg/reconciler/trigger/trigger.go
@@ -25,9 +25,9 @@ import (
 	apierrors "k8s.io/apimachinery/pkg/api/errors"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/client-go/util/retry"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 	eventingclientset "knative.dev/eventing/pkg/client/clientset/versioned"
-	eventinglisters "knative.dev/eventing/pkg/client/listers/eventing/v1beta1"
+	eventinglisters "knative.dev/eventing/pkg/client/listers/eventing/v1"
 	"knative.dev/pkg/controller"
 	"knative.dev/pkg/reconciler"
 	"knative.dev/pkg/resolver"
@@ -39,8 +39,6 @@ import (
 )
 
 const (
-	trigger = "Trigger"
-
 	noTrigger = brokerreconciler.NoBroker
 )
 
@@ -207,7 +205,7 @@ func (r *Reconciler) reconcileKind(ctx context.Context, trigger *eventing.Trigge
 	if apierrors.IsNotFound(err) {
 
 		// Actually check if the broker doesn't exist.
-		broker, err = r.EventingClient.EventingV1beta1(). // Note: do not introduce another `broker` variable with `:`
+		broker, err = r.EventingClient.EventingV1(). // Note: do not introduce another `broker` variable with `:`
 									Brokers(trigger.Namespace).
 									Get(trigger.Spec.Broker, metav1.GetOptions{})
 
diff --git a/control-plane/pkg/reconciler/trigger/trigger_lifecycle.go b/control-plane/pkg/reconciler/trigger/trigger_lifecycle.go
index 0ed40db45..9d9f96889 100644
--- a/control-plane/pkg/reconciler/trigger/trigger_lifecycle.go
+++ b/control-plane/pkg/reconciler/trigger/trigger_lifecycle.go
@@ -21,7 +21,7 @@ import (
 
 	corev1 "k8s.io/api/core/v1"
 	"k8s.io/client-go/tools/record"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 	"knative.dev/pkg/apis"
 	"knative.dev/pkg/reconciler"
 
diff --git a/data-plane/config/template/500-receiver.yaml b/data-plane/config/template/500-receiver.yaml
index 411eec468..349af00f0 100644
--- a/data-plane/config/template/500-receiver.yaml
+++ b/data-plane/config/template/500-receiver.yaml
@@ -126,5 +126,4 @@ spec:
       port: 80
       protocol: TCP
       targetPort: 8080
-  type: NodePort
 ---
diff --git a/data-plane/pom.xml b/data-plane/pom.xml
index 89eb41e51..98edb2a8f 100644
--- a/data-plane/pom.xml
+++ b/data-plane/pom.xml
@@ -33,15 +33,15 @@
     <maven.surefire.plugin.version>3.0.0-M5</maven.surefire.plugin.version>
     <junit.jupiter.version>5.6.2</junit.jupiter.version>
     <junit.platform.version>1.6.2</junit.platform.version>
-    <mokito.junit.jupiter.version>3.4.6</mokito.junit.jupiter.version>
+    <mokito.junit.jupiter.version>3.5.7</mokito.junit.jupiter.version>
     <maven.shade.plugin.version>3.2.4</maven.shade.plugin.version>
     <maven.checkstyle.plugin.version>3.1.1</maven.checkstyle.plugin.version>
     <jacoco.plugin.version>0.8.5</jacoco.plugin.version>
     <!-- vertx version should be aligned with cloud events SDK -->
     <vertx.version>3.9.2</vertx.version>
     <cloudevents.sdk.version>2.0.0-milestone1</cloudevents.sdk.version>
-    <assertj.version>3.16.1</assertj.version>
-    <protobuf.version>3.12.4</protobuf.version>
+    <assertj.version>3.17.1</assertj.version>
+    <protobuf.version>3.13.0</protobuf.version>
     <build.helper.maven.plugin.version>3.1.0</build.helper.maven.plugin.version>
     <ch.qos.logback.version>1.2.3</ch.qos.logback.version>
     <net.logstash.logback.encoder.version>6.4</net.logstash.logback.encoder.version>
diff --git a/go.mod b/go.mod
index 8d4e1d9bd..1da5a5e31 100644
--- a/go.mod
+++ b/go.mod
@@ -18,9 +18,9 @@ require (
 	k8s.io/client-go v11.0.1-0.20190805182717-6502b5e7b1b5+incompatible
 	k8s.io/kubernetes v1.14.7
 	k8s.io/utils v0.0.0-20200603063816-c1c6865ac451
-	knative.dev/eventing v0.16.1-0.20200818065713-9f3fb3ffde17
-	knative.dev/pkg v0.0.0-20200812224206-44c860147a87
-	knative.dev/test-infra v0.0.0-20200813220834-388e55a496cf
+	knative.dev/eventing v0.17.1-0.20200827083806-58c0cd78019f
+	knative.dev/pkg v0.0.0-20200826013506-2465d13e7242
+	knative.dev/test-infra v0.0.0-20200826192206-b4adbd18e3fe
 )
 
 replace (
diff --git a/go.sum b/go.sum
index 67074d171..8b67a2a96 100644
--- a/go.sum
+++ b/go.sum
@@ -1851,8 +1851,8 @@ k8s.io/utils v0.0.0-20200603063816-c1c6865ac451 h1:v8ud2Up6QK1lNOKFgiIVrZdMg7Mpm
 k8s.io/utils v0.0.0-20200603063816-c1c6865ac451/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
 knative.dev/caching v0.0.0-20190719140829-2032732871ff/go.mod h1:dHXFU6CGlLlbzaWc32g80cR92iuBSpsslDNBWI8C7eg=
 knative.dev/caching v0.0.0-20200116200605-67bca2c83dfa/go.mod h1:dHXFU6CGlLlbzaWc32g80cR92iuBSpsslDNBWI8C7eg=
-knative.dev/eventing v0.16.1-0.20200818065713-9f3fb3ffde17 h1:3y7/7gMTsFAZtZzrqv3SpnNarQ2wl2Y4+A+qjADckOY=
-knative.dev/eventing v0.16.1-0.20200818065713-9f3fb3ffde17/go.mod h1:9NwCSwLnMCKmgz3YQBNax18mSgBjud8CvfsUUVOZ1sA=
+knative.dev/eventing v0.17.1-0.20200827083806-58c0cd78019f h1:lb25DFBnK6D4v7dmGKiJOvoRpKVQHpboL5ILU3qhZWU=
+knative.dev/eventing v0.17.1-0.20200827083806-58c0cd78019f/go.mod h1:4j820nOQQcG1efSjD1tHJRejizmwJiEb4HNctWY74bg=
 knative.dev/eventing-contrib v0.6.1-0.20190723221543-5ce18048c08b/go.mod h1:SnXZgSGgMSMLNFTwTnpaOH7hXDzTFtw0J8OmHflNx3g=
 knative.dev/eventing-contrib v0.11.2/go.mod h1:SnXZgSGgMSMLNFTwTnpaOH7hXDzTFtw0J8OmHflNx3g=
 knative.dev/pkg v0.0.0-20191101194912-56c2594e4f11/go.mod h1:pgODObA1dTyhNoFxPZTTjNWfx6F0aKsKzn+vaT9XO/Q=
@@ -1863,16 +1863,17 @@ knative.dev/pkg v0.0.0-20200505191044-3da93ebb24c2/go.mod h1:Q6sL35DdGs8hIQZKdaC
 knative.dev/pkg v0.0.0-20200515002500-16d7b963416f/go.mod h1:tMOHGbxtRz8zYFGEGpV/bpoTEM1o89MwYFC4YJXl3GY=
 knative.dev/pkg v0.0.0-20200528142800-1c6815d7e4c9/go.mod h1:QgNZTxnwpB/oSpNcfnLVlw+WpEwwyKAvJlvR3hgeltA=
 knative.dev/pkg v0.0.0-20200711004937-22502028e31a/go.mod h1:AqAJV6rYi8IGikDjJ/9ZQd9qKdkXVlesVnVjwx62YB8=
-knative.dev/pkg v0.0.0-20200812224206-44c860147a87 h1:argvd9DHJr2YeeV2pl1ogXPB3raIWnOqJivfBK/qsiM=
-knative.dev/pkg v0.0.0-20200812224206-44c860147a87/go.mod h1:udIbxBS/SJCL4sqnCG8HZArez9HjWmeqJCaVJP/h32I=
+knative.dev/pkg v0.0.0-20200826013506-2465d13e7242 h1:uH1anWp6Dns2zMvsj/4svLCh+whjaW0rUD+U99lSP78=
+knative.dev/pkg v0.0.0-20200826013506-2465d13e7242/go.mod h1:vOVUMtkIWK+hq1+KwlLYBSYVjz5SNIP1vMj3/5SNGZw=
 knative.dev/test-infra v0.0.0-20200407185800-1b88cb3b45a5/go.mod h1:xcdUkMJrLlBswIZqL5zCuBFOC22WIPMQoVX1L35i0vQ=
 knative.dev/test-infra v0.0.0-20200505052144-5ea2f705bb55/go.mod h1:WqF1Azka+FxPZ20keR2zCNtiQA1MP9ZB4BH4HuI+SIU=
 knative.dev/test-infra v0.0.0-20200513011557-d03429a76034/go.mod h1:aMif0KXL4g19YCYwsy4Ocjjz5xgPlseYV+B95Oo4JGE=
 knative.dev/test-infra v0.0.0-20200519015156-82551620b0a9/go.mod h1:A5b2OAXTOeHT3hHhVQm3dmtbuWvIDP7qzgtqxA3/2pE=
 knative.dev/test-infra v0.0.0-20200707183444-aed09e56ddc7/go.mod h1:RjYAhXnZqeHw9+B0zsbqSPlae0lCvjekO/nw5ZMpLCs=
-knative.dev/test-infra v0.0.0-20200811030605-72f8c9f3e933/go.mod h1:Pmg2c7Z7q7BGFUV/GOpU5BlrD3ePJft4MPqx8AYBplc=
-knative.dev/test-infra v0.0.0-20200813220834-388e55a496cf h1:GrIpJgHa/iWE1Gk2WKGXSEv1Uw7qPepjCELY+Jjzewo=
-knative.dev/test-infra v0.0.0-20200813220834-388e55a496cf/go.mod h1:Pmg2c7Z7q7BGFUV/GOpU5BlrD3ePJft4MPqx8AYBplc=
+knative.dev/test-infra v0.0.0-20200825022047-cb4bb218c5e5/go.mod h1:Pmg2c7Z7q7BGFUV/GOpU5BlrD3ePJft4MPqx8AYBplc=
+knative.dev/test-infra v0.0.0-20200825232706-38c3cb5eb5a2/go.mod h1:Pmg2c7Z7q7BGFUV/GOpU5BlrD3ePJft4MPqx8AYBplc=
+knative.dev/test-infra v0.0.0-20200826192206-b4adbd18e3fe h1:fHJNwbFZ6sWRC0NqIDlgLQOebMNOyCIPCT1uAs+YJNs=
+knative.dev/test-infra v0.0.0-20200826192206-b4adbd18e3fe/go.mod h1:Pmg2c7Z7q7BGFUV/GOpU5BlrD3ePJft4MPqx8AYBplc=
 modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
 modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
 modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
diff --git a/hack/update-deps.sh b/hack/update-deps.sh
index 24209398f..bdab59bbf 100755
--- a/hack/update-deps.sh
+++ b/hack/update-deps.sh
@@ -25,7 +25,7 @@ export GO111MODULE=on
 export GOFLAGS=-mod=
 
 # This controls the release branch we track.
-VERSION="release-0.17"
+VERSION="master"
 
 cd "${ROOT_DIR}"
 
diff --git a/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/channelable_combined_types.go b/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/channelable_combined_types.go
index 7e0847e7e..48d1e00cf 100644
--- a/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/channelable_combined_types.go
+++ b/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/channelable_combined_types.go
@@ -20,7 +20,6 @@ import (
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/runtime"
-	eventingduckv1 "knative.dev/eventing/pkg/apis/duck/v1"
 	eventingduckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1"
 	"knative.dev/pkg/apis"
 	"knative.dev/pkg/apis/duck"
@@ -33,7 +32,7 @@ import (
 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
 
 // ChannelableCombined is a skeleton type wrapping Subscribable and Addressable of
-// v1alpha1, v1beta1 and v1 duck types. This is not to be used by resource writers and is
+// v1alpha1 and v1beta1 duck types. This is not to be used by resource writers and is
 // only used by Subscription Controller to synthesize patches and read the Status
 // of the Channelable Resources.
 // This is not a real resource.
@@ -56,17 +55,8 @@ type ChannelableCombinedSpec struct {
 	eventingduckv1beta1.SubscribableSpec `json:",inline"`
 
 	// DeliverySpec contains options controlling the event delivery
-	// for the v1beta1 spec compatibility.
 	// +optional
 	Delivery *eventingduckv1beta1.DeliverySpec `json:"delivery,omitempty"`
-
-	// SubscribableSpecv1 is for the v1 spec compatibility.
-	SubscribableSpecv1 eventingduckv1.SubscribableSpec `json:",inline"`
-
-	// DeliverySpecv1 contains options controlling the event delivery
-	// for the v1 spec compatibility.
-	// +optional
-	Deliveryv1 *eventingduckv1.DeliverySpec `json:"deliveryv1,omitempty"`
 }
 
 // ChannelableStatus contains the Status of a Channelable object.
@@ -81,8 +71,6 @@ type ChannelableCombinedStatus struct {
 	SubscribableTypeStatus `json:",inline"`
 	// SubscribableStatus is the v1beta1 part of the Subscribers status.
 	eventingduckv1beta1.SubscribableStatus `json:",inline"`
-	// SubscribableStatusv1 is the v1 part of the Subscribers status.
-	SubscribableStatusv1 eventingduckv1.SubscribableStatus `json:",inline"`
 	// ErrorChannel is set by the channel when it supports native error handling via a channel
 	// +optional
 	ErrorChannel *corev1.ObjectReference `json:"errorChannel,omitempty"`
@@ -125,23 +113,8 @@ func (c *ChannelableCombined) Populate() {
 			ReplyURI:      apis.HTTP("sink2"),
 		}},
 	}
-	c.Spec.SubscribableSpecv1 = eventingduckv1.SubscribableSpec{
-		// Populate ALL fields
-		Subscribers: []eventingduckv1.SubscriberSpec{{
-			UID:           "2f9b5e8e-deb6-11e8-9f32-f2801f1b9fd1",
-			Generation:    1,
-			SubscriberURI: apis.HTTP("call1"),
-			ReplyURI:      apis.HTTP("sink2"),
-		}, {
-			UID:           "34c5aec8-deb6-11e8-9f32-f2801f1b9fd1",
-			Generation:    2,
-			SubscriberURI: apis.HTTP("call2"),
-			ReplyURI:      apis.HTTP("sink2"),
-		}},
-	}
 	retry := int32(5)
 	linear := eventingduckv1beta1.BackoffPolicyLinear
-	linearv1 := eventingduckv1.BackoffPolicyLinear
 	delay := "5s"
 	deadLetterSink := duckv1.Destination{
 		Ref: &duckv1.KReference{
@@ -158,12 +131,6 @@ func (c *ChannelableCombined) Populate() {
 		BackoffPolicy:  &linear,
 		BackoffDelay:   &delay,
 	}
-	c.Spec.Deliveryv1 = &eventingduckv1.DeliverySpec{
-		DeadLetterSink: &deadLetterSink,
-		Retry:          &retry,
-		BackoffPolicy:  &linearv1,
-		BackoffDelay:   &delay,
-	}
 	subscribers := []eventingduckv1beta1.SubscriberStatus{{
 		UID:                "2f9b5e8e-deb6-11e8-9f32-f2801f1b9fd1",
 		ObservedGeneration: 1,
@@ -175,17 +142,6 @@ func (c *ChannelableCombined) Populate() {
 		Ready:              corev1.ConditionFalse,
 		Message:            "Some message",
 	}}
-	subscribersv1 := []eventingduckv1.SubscriberStatus{{
-		UID:                "2f9b5e8e-deb6-11e8-9f32-f2801f1b9fd1",
-		ObservedGeneration: 1,
-		Ready:              corev1.ConditionTrue,
-		Message:            "Some message",
-	}, {
-		UID:                "34c5aec8-deb6-11e8-9f32-f2801f1b9fd1",
-		ObservedGeneration: 2,
-		Ready:              corev1.ConditionFalse,
-		Message:            "Some message",
-	}}
 	c.Status = ChannelableCombinedStatus{
 		AddressStatus: v1alpha1.AddressStatus{
 			Address: &v1alpha1.Addressable{
@@ -202,13 +158,9 @@ func (c *ChannelableCombined) Populate() {
 		SubscribableStatus: eventingduckv1beta1.SubscribableStatus{
 			Subscribers: subscribers,
 		},
-		SubscribableStatusv1: eventingduckv1.SubscribableStatus{
-			Subscribers: subscribersv1,
-		},
 		SubscribableTypeStatus: SubscribableTypeStatus{
 			SubscribableStatus: &SubscribableStatus{
-				Subscribers:   subscribers,
-				Subscribersv1: subscribersv1,
+				Subscribers: subscribers,
 			},
 		},
 	}
diff --git a/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/subscribable_types.go b/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/subscribable_types.go
index 43c073c55..50084245f 100644
--- a/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/subscribable_types.go
+++ b/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/subscribable_types.go
@@ -24,7 +24,6 @@ import (
 	"knative.dev/pkg/apis"
 	"knative.dev/pkg/apis/duck"
 
-	duckv1 "knative.dev/eventing/pkg/apis/duck/v1"
 	duckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1"
 )
 
@@ -62,8 +61,6 @@ type SubscriberSpec struct {
 	DeadLetterSinkURI *apis.URL `json:"deadLetterSink,omitempty"`
 	// +optional
 	Delivery *duckv1beta1.DeliverySpec `json:"delivery,omitempty"`
-	// +optional
-	Deliveryv1 *duckv1.DeliverySpec `json:"deliveryv1,omitempty"`
 }
 
 // SubscribableStatus is the schema for the subscribable's status portion of the status
@@ -73,11 +70,6 @@ type SubscribableStatus struct {
 	// +patchMergeKey=uid
 	// +patchStrategy=merge
 	Subscribers []duckv1beta1.SubscriberStatus `json:"subscribers,omitempty" patchStrategy:"merge" patchMergeKey:"uid"`
-
-	// This is the list of subscription's statuses for this channel.
-	// +patchMergeKey=uid
-	// +patchStrategy=merge
-	Subscribersv1 []duckv1.SubscriberStatus `json:"subscribersv1,omitempty" patchStrategy:"merge" patchMergeKey:"uid"`
 }
 
 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
@@ -144,14 +136,6 @@ func (s *SubscribableTypeStatus) AddSubscriberToSubscribableStatus(subscriberSta
 	s.SubscribableStatus.Subscribers = subscribers
 }
 
-// AddSubscriberToSubscribableStatus method is a Helper method for type SubscribableTypeStatus, if Subscribable Status needs to be appended
-// with Subscribers, use this function, so that the value is reflected in both the duplicate fields residing
-// in SubscribableTypeStatus
-func (s *SubscribableTypeStatus) AddSubscriberV1ToSubscribableStatus(subscriberStatus duckv1.SubscriberStatus) {
-	subscribersv1 := append(s.GetSubscribableTypeStatus().Subscribersv1, subscriberStatus)
-	s.SubscribableStatus.Subscribersv1 = subscribersv1
-}
-
 // GetFullType implements duck.Implementable
 func (s *Subscribable) GetFullType() duck.Populatable {
 	return &SubscribableType{}
@@ -186,17 +170,6 @@ func (c *SubscribableType) Populate() {
 			Ready:              corev1.ConditionFalse,
 			Message:            "Some message",
 		}},
-		Subscribersv1: []duckv1.SubscriberStatus{{
-			UID:                "2f9b5e8e-deb6-11e8-9f32-f2801f1b9fd1",
-			ObservedGeneration: 1,
-			Ready:              corev1.ConditionTrue,
-			Message:            "Some message",
-		}, {
-			UID:                "34c5aec8-deb6-11e8-9f32-f2801f1b9fd1",
-			ObservedGeneration: 2,
-			Ready:              corev1.ConditionFalse,
-			Message:            "Some message",
-		}},
 	})
 }
 
diff --git a/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/subscribable_types_conversion.go b/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/subscribable_types_conversion.go
index 5c819b290..87ee03df5 100644
--- a/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/subscribable_types_conversion.go
+++ b/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/subscribable_types_conversion.go
@@ -103,8 +103,11 @@ func (source *SubscriberSpec) ConvertTo(ctx context.Context, obj apis.Convertibl
 		sink.UID = source.UID
 		sink.Generation = source.Generation
 		sink.SubscriberURI = source.SubscriberURI
-		if source.Deliveryv1 != nil {
-			sink.Delivery = source.Deliveryv1
+		if source.Delivery != nil {
+			sink.Delivery = &eventingduckv1.DeliverySpec{}
+			if err := source.Delivery.ConvertTo(ctx, sink.Delivery); err != nil {
+				return err
+			}
 		} else {
 			// If however, there's a Deprecated DeadLetterSinkURI, convert that up
 			// to DeliverySpec.
@@ -139,14 +142,12 @@ func (source *SubscribableTypeStatus) ConvertTo(ctx context.Context, obj apis.Co
 		}
 	case *eventingduckv1.SubscribableStatus:
 		if source.SubscribableStatus != nil &&
-			len(source.SubscribableStatus.Subscribersv1) > 0 {
-			sink.Subscribers = make([]eventingduckv1.SubscriberStatus, len(source.SubscribableStatus.Subscribersv1))
-			for i, ss := range source.SubscribableStatus.Subscribersv1 {
-				sink.Subscribers[i] = eventingduckv1.SubscriberStatus{
-					UID:                ss.UID,
-					ObservedGeneration: ss.ObservedGeneration,
-					Ready:              ss.Ready,
-					Message:            ss.Message,
+			len(source.SubscribableStatus.Subscribers) > 0 {
+			sink.Subscribers = make([]eventingduckv1.SubscriberStatus, len(source.SubscribableStatus.Subscribers))
+			for i, ss := range source.SubscribableStatus.Subscribers {
+				sink.Subscribers[i] = eventingduckv1.SubscriberStatus{}
+				if err := ss.ConvertTo(ctx, &sink.Subscribers[i]); err != nil {
+					return err
 				}
 			}
 		}
@@ -228,16 +229,17 @@ func (sink *SubscriberSpec) ConvertFrom(ctx context.Context, obj apis.Convertibl
 		sink.Delivery = source.Delivery
 		sink.DeadLetterSinkURI = deadLetterSinkURI
 	case *eventingduckv1.SubscriberSpec:
-		var deadLetterSinkURI *apis.URL
-		if source.Delivery != nil && source.Delivery.DeadLetterSink != nil {
-			deadLetterSinkURI = source.Delivery.DeadLetterSink.URI
-		}
 		sink.UID = source.UID
 		sink.Generation = source.Generation
 		sink.SubscriberURI = source.SubscriberURI
 		sink.ReplyURI = source.ReplyURI
-		sink.Deliveryv1 = source.Delivery
-		sink.DeadLetterSinkURI = deadLetterSinkURI
+		if source.Delivery != nil {
+			sink.Delivery = &eventingduckv1beta1.DeliverySpec{}
+			if err := sink.Delivery.ConvertFrom(ctx, source.Delivery); err != nil {
+				return err
+			}
+			sink.DeadLetterSinkURI = source.Delivery.DeadLetterSink.URI
+		}
 	default:
 		return fmt.Errorf("unknown version, got: %T", sink)
 	}
@@ -264,14 +266,12 @@ func (sink *SubscribableTypeStatus) ConvertFrom(ctx context.Context, obj apis.Co
 	case *eventingduckv1.SubscribableStatus:
 		if len(source.Subscribers) > 0 {
 			sink.SubscribableStatus = &SubscribableStatus{
-				Subscribersv1: make([]eventingduckv1.SubscriberStatus, len(source.Subscribers)),
+				Subscribers: make([]eventingduckv1beta1.SubscriberStatus, len(source.Subscribers)),
 			}
 			for i, ss := range source.Subscribers {
-				sink.SubscribableStatus.Subscribersv1[i] = eventingduckv1.SubscriberStatus{
-					UID:                ss.UID,
-					ObservedGeneration: ss.ObservedGeneration,
-					Ready:              ss.Ready,
-					Message:            ss.Message,
+				sink.SubscribableStatus.Subscribers[i] = eventingduckv1beta1.SubscriberStatus{}
+				if err := sink.SubscribableStatus.Subscribers[i].ConvertFrom(ctx, &ss); err != nil {
+					return err
 				}
 			}
 		}
diff --git a/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/zz_generated.deepcopy.go b/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/zz_generated.deepcopy.go
index 43c16005d..552909835 100644
--- a/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/zz_generated.deepcopy.go
+++ b/vendor/knative.dev/eventing/pkg/apis/duck/v1alpha1/zz_generated.deepcopy.go
@@ -21,9 +21,8 @@ limitations under the License.
 package v1alpha1
 
 import (
-	corev1 "k8s.io/api/core/v1"
+	v1 "k8s.io/api/core/v1"
 	runtime "k8s.io/apimachinery/pkg/runtime"
-	v1 "knative.dev/eventing/pkg/apis/duck/v1"
 	v1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1"
 	apis "knative.dev/pkg/apis"
 )
@@ -127,12 +126,6 @@ func (in *ChannelableCombinedSpec) DeepCopyInto(out *ChannelableCombinedSpec) {
 		*out = new(v1beta1.DeliverySpec)
 		(*in).DeepCopyInto(*out)
 	}
-	in.SubscribableSpecv1.DeepCopyInto(&out.SubscribableSpecv1)
-	if in.Deliveryv1 != nil {
-		in, out := &in.Deliveryv1, &out.Deliveryv1
-		*out = new(v1.DeliverySpec)
-		(*in).DeepCopyInto(*out)
-	}
 	return
 }
 
@@ -153,10 +146,9 @@ func (in *ChannelableCombinedStatus) DeepCopyInto(out *ChannelableCombinedStatus
 	in.AddressStatus.DeepCopyInto(&out.AddressStatus)
 	in.SubscribableTypeStatus.DeepCopyInto(&out.SubscribableTypeStatus)
 	in.SubscribableStatus.DeepCopyInto(&out.SubscribableStatus)
-	in.SubscribableStatusv1.DeepCopyInto(&out.SubscribableStatusv1)
 	if in.ErrorChannel != nil {
 		in, out := &in.ErrorChannel, &out.ErrorChannel
-		*out = new(corev1.ObjectReference)
+		*out = new(v1.ObjectReference)
 		**out = **in
 	}
 	return
@@ -235,7 +227,7 @@ func (in *ChannelableStatus) DeepCopyInto(out *ChannelableStatus) {
 	in.SubscribableTypeStatus.DeepCopyInto(&out.SubscribableTypeStatus)
 	if in.ErrorChannel != nil {
 		in, out := &in.ErrorChannel, &out.ErrorChannel
-		*out = new(corev1.ObjectReference)
+		*out = new(v1.ObjectReference)
 		**out = **in
 	}
 	return
@@ -341,11 +333,6 @@ func (in *SubscribableStatus) DeepCopyInto(out *SubscribableStatus) {
 		*out = make([]v1beta1.SubscriberStatus, len(*in))
 		copy(*out, *in)
 	}
-	if in.Subscribersv1 != nil {
-		in, out := &in.Subscribersv1, &out.Subscribersv1
-		*out = make([]v1.SubscriberStatus, len(*in))
-		copy(*out, *in)
-	}
 	return
 }
 
@@ -485,11 +472,6 @@ func (in *SubscriberSpec) DeepCopyInto(out *SubscriberSpec) {
 		*out = new(v1beta1.DeliverySpec)
 		(*in).DeepCopyInto(*out)
 	}
-	if in.Deliveryv1 != nil {
-		in, out := &in.Deliveryv1, &out.Deliveryv1
-		*out = new(v1.DeliverySpec)
-		(*in).DeepCopyInto(*out)
-	}
 	return
 }
 
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1/trigger_types.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1/trigger_types.go
index c401388e7..cddad0d34 100644
--- a/vendor/knative.dev/eventing/pkg/apis/eventing/v1/trigger_types.go
+++ b/vendor/knative.dev/eventing/pkg/apis/eventing/v1/trigger_types.go
@@ -28,9 +28,6 @@ const (
 	// DependencyAnnotation is the annotation key used to mark the sources that the Trigger depends on.
 	// This will be used when the kn client creates a source and trigger pair for the user such that the trigger only receives events produced by the paired source.
 	DependencyAnnotation = "knative.dev/dependency"
-	// DeprecatedInjectionAnnotation
-	// Deprecated: v0.16, please use InjectionAnnotation.
-	DeprecatedInjectionAnnotation = "knative-eventing-injection"
 
 	// InjectionAnnotation is the annotation key used to enable knative eventing
 	// injection for a namespace to automatically create a broker.
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1/trigger_validation.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1/trigger_validation.go
index 8ed3b25a1..6d80d9460 100644
--- a/vendor/knative.dev/eventing/pkg/apis/eventing/v1/trigger_validation.go
+++ b/vendor/knative.dev/eventing/pkg/apis/eventing/v1/trigger_validation.go
@@ -37,7 +37,6 @@ var (
 func (t *Trigger) Validate(ctx context.Context) *apis.FieldError {
 	errs := t.Spec.Validate(ctx).ViaField("spec")
 	errs = t.validateAnnotation(errs, DependencyAnnotation, t.validateDependencyAnnotation)
-	errs = t.validateAnnotation(errs, DeprecatedInjectionAnnotation, t.validateInjectionAnnotation)
 	errs = t.validateAnnotation(errs, InjectionAnnotation, t.validateInjectionAnnotation)
 	if apis.IsInUpdate(ctx) {
 		original := apis.GetBaseline(ctx).(*Trigger)
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta1/trigger_types.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta1/trigger_types.go
index b3c3ea8f9..7aa0cf9f4 100644
--- a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta1/trigger_types.go
+++ b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta1/trigger_types.go
@@ -31,10 +31,6 @@ const (
 
 	// These are copied from ./pkg/reconcilers/sugar
 
-	// DeprecatedInjectionAnnotation
-	// Deprecated: v0.16, please use InjectionAnnotation.
-	DeprecatedInjectionAnnotation = "knative-eventing-injection"
-
 	// InjectionAnnotation is the annotation key used to enable knative eventing
 	// injection for a namespace to automatically create a broker.
 	InjectionAnnotation = "eventing.knative.dev/injection"
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta1/trigger_validation.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta1/trigger_validation.go
index a627ea451..517c99094 100644
--- a/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta1/trigger_validation.go
+++ b/vendor/knative.dev/eventing/pkg/apis/eventing/v1beta1/trigger_validation.go
@@ -37,7 +37,6 @@ var (
 func (t *Trigger) Validate(ctx context.Context) *apis.FieldError {
 	errs := t.Spec.Validate(ctx).ViaField("spec")
 	errs = t.validateAnnotation(errs, DependencyAnnotation, t.validateDependencyAnnotation)
-	errs = t.validateAnnotation(errs, DeprecatedInjectionAnnotation, t.validateInjectionAnnotation)
 	errs = t.validateAnnotation(errs, InjectionAnnotation, t.validateInjectionAnnotation)
 	return errs
 }
diff --git a/vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/broker/fake/fake.go b/vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker/fake/fake.go
similarity index 94%
rename from vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/broker/fake/fake.go
rename to vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker/fake/fake.go
index 04658f7c8..5dc3b1c76 100644
--- a/vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/broker/fake/fake.go
+++ b/vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker/fake/fake.go
@@ -21,7 +21,7 @@ package fake
 import (
 	context "context"
 
-	broker "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/broker"
+	broker "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker"
 	fake "knative.dev/eventing/pkg/client/injection/informers/factory/fake"
 	controller "knative.dev/pkg/controller"
 	injection "knative.dev/pkg/injection"
@@ -35,6 +35,6 @@ func init() {
 
 func withInformer(ctx context.Context) (context.Context, controller.Informer) {
 	f := fake.Get(ctx)
-	inf := f.Eventing().V1beta1().Brokers()
+	inf := f.Eventing().V1().Brokers()
 	return context.WithValue(ctx, broker.Key{}, inf), inf.Informer()
 }
diff --git a/vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger/fake/fake.go b/vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger/fake/fake.go
similarity index 94%
rename from vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger/fake/fake.go
rename to vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger/fake/fake.go
index b95e6822e..bf33f84f0 100644
--- a/vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger/fake/fake.go
+++ b/vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger/fake/fake.go
@@ -21,7 +21,7 @@ package fake
 import (
 	context "context"
 
-	trigger "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger"
+	trigger "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger"
 	fake "knative.dev/eventing/pkg/client/injection/informers/factory/fake"
 	controller "knative.dev/pkg/controller"
 	injection "knative.dev/pkg/injection"
@@ -35,6 +35,6 @@ func init() {
 
 func withInformer(ctx context.Context) (context.Context, controller.Informer) {
 	f := fake.Get(ctx)
-	inf := f.Eventing().V1beta1().Triggers()
+	inf := f.Eventing().V1().Triggers()
 	return context.WithValue(ctx, trigger.Key{}, inf), inf.Informer()
 }
diff --git a/vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger/trigger.go b/vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger/trigger.go
similarity index 82%
rename from vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger/trigger.go
rename to vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger/trigger.go
index 6d398de04..3bd2d81ed 100644
--- a/vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger/trigger.go
+++ b/vendor/knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger/trigger.go
@@ -21,7 +21,7 @@ package trigger
 import (
 	context "context"
 
-	v1beta1 "knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1beta1"
+	v1 "knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1"
 	factory "knative.dev/eventing/pkg/client/injection/informers/factory"
 	controller "knative.dev/pkg/controller"
 	injection "knative.dev/pkg/injection"
@@ -37,16 +37,16 @@ type Key struct{}
 
 func withInformer(ctx context.Context) (context.Context, controller.Informer) {
 	f := factory.Get(ctx)
-	inf := f.Eventing().V1beta1().Triggers()
+	inf := f.Eventing().V1().Triggers()
 	return context.WithValue(ctx, Key{}, inf), inf.Informer()
 }
 
 // Get extracts the typed informer from the context.
-func Get(ctx context.Context) v1beta1.TriggerInformer {
+func Get(ctx context.Context) v1.TriggerInformer {
 	untyped := ctx.Value(Key{})
 	if untyped == nil {
 		logging.FromContext(ctx).Panic(
-			"Unable to fetch knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1beta1.TriggerInformer from context.")
+			"Unable to fetch knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1.TriggerInformer from context.")
 	}
-	return untyped.(v1beta1.TriggerInformer)
+	return untyped.(v1.TriggerInformer)
 }
diff --git a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/broker/reconciler.go b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/broker/reconciler.go
index b3376b6bf..d90a8e962 100644
--- a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/broker/reconciler.go
+++ b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/broker/reconciler.go
@@ -246,13 +246,17 @@ func (r *reconcilerImpl) Reconcile(ctx context.Context, key string) error {
 			return fmt.Errorf("failed to set finalizers: %w", err)
 		}
 
-		reconciler.PreProcessReconcile(ctx, resource)
+		if !r.skipStatusUpdates {
+			reconciler.PreProcessReconcile(ctx, resource)
+		}
 
 		// Reconcile this copy of the resource and then write back any status
 		// updates regardless of whether the reconciliation errored out.
 		reconcileEvent = do(ctx, resource)
 
-		reconciler.PostProcessReconcile(ctx, resource, original)
+		if !r.skipStatusUpdates {
+			reconciler.PostProcessReconcile(ctx, resource, original)
+		}
 
 	case reconciler.DoFinalizeKind:
 		// For finalizing reconcilers, if this resource being marked for deletion
diff --git a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger/controller.go b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/controller.go
similarity index 99%
rename from vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger/controller.go
rename to vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/controller.go
index 2a3379424..504a628cf 100644
--- a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger/controller.go
+++ b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/controller.go
@@ -33,7 +33,7 @@ import (
 	record "k8s.io/client-go/tools/record"
 	versionedscheme "knative.dev/eventing/pkg/client/clientset/versioned/scheme"
 	client "knative.dev/eventing/pkg/client/injection/client"
-	trigger "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger"
+	trigger "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger"
 	kubeclient "knative.dev/pkg/client/injection/kube/client"
 	controller "knative.dev/pkg/controller"
 	logging "knative.dev/pkg/logging"
diff --git a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger/reconciler.go b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/reconciler.go
similarity index 85%
rename from vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger/reconciler.go
rename to vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/reconciler.go
index 6d24e80a8..3fddeff1f 100644
--- a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger/reconciler.go
+++ b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/reconciler.go
@@ -25,7 +25,7 @@ import (
 	reflect "reflect"
 
 	zap "go.uber.org/zap"
-	v1 "k8s.io/api/core/v1"
+	corev1 "k8s.io/api/core/v1"
 	equality "k8s.io/apimachinery/pkg/api/equality"
 	errors "k8s.io/apimachinery/pkg/api/errors"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -33,9 +33,9 @@ import (
 	types "k8s.io/apimachinery/pkg/types"
 	sets "k8s.io/apimachinery/pkg/util/sets"
 	record "k8s.io/client-go/tools/record"
-	v1beta1 "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	v1 "knative.dev/eventing/pkg/apis/eventing/v1"
 	versioned "knative.dev/eventing/pkg/client/clientset/versioned"
-	eventingv1beta1 "knative.dev/eventing/pkg/client/listers/eventing/v1beta1"
+	eventingv1 "knative.dev/eventing/pkg/client/listers/eventing/v1"
 	controller "knative.dev/pkg/controller"
 	kmp "knative.dev/pkg/kmp"
 	logging "knative.dev/pkg/logging"
@@ -43,50 +43,50 @@ import (
 )
 
 // Interface defines the strongly typed interfaces to be implemented by a
-// controller reconciling v1beta1.Trigger.
+// controller reconciling v1.Trigger.
 type Interface interface {
-	// ReconcileKind implements custom logic to reconcile v1beta1.Trigger. Any changes
+	// ReconcileKind implements custom logic to reconcile v1.Trigger. Any changes
 	// to the objects .Status or .Finalizers will be propagated to the stored
 	// object. It is recommended that implementors do not call any update calls
 	// for the Kind inside of ReconcileKind, it is the responsibility of the calling
 	// controller to propagate those properties. The resource passed to ReconcileKind
 	// will always have an empty deletion timestamp.
-	ReconcileKind(ctx context.Context, o *v1beta1.Trigger) reconciler.Event
+	ReconcileKind(ctx context.Context, o *v1.Trigger) reconciler.Event
 }
 
 // Finalizer defines the strongly typed interfaces to be implemented by a
-// controller finalizing v1beta1.Trigger.
+// controller finalizing v1.Trigger.
 type Finalizer interface {
-	// FinalizeKind implements custom logic to finalize v1beta1.Trigger. Any changes
+	// FinalizeKind implements custom logic to finalize v1.Trigger. Any changes
 	// to the objects .Status or .Finalizers will be ignored. Returning a nil or
 	// Normal type reconciler.Event will allow the finalizer to be deleted on
 	// the resource. The resource passed to FinalizeKind will always have a set
 	// deletion timestamp.
-	FinalizeKind(ctx context.Context, o *v1beta1.Trigger) reconciler.Event
+	FinalizeKind(ctx context.Context, o *v1.Trigger) reconciler.Event
 }
 
 // ReadOnlyInterface defines the strongly typed interfaces to be implemented by a
-// controller reconciling v1beta1.Trigger if they want to process resources for which
+// controller reconciling v1.Trigger if they want to process resources for which
 // they are not the leader.
 type ReadOnlyInterface interface {
-	// ObserveKind implements logic to observe v1beta1.Trigger.
+	// ObserveKind implements logic to observe v1.Trigger.
 	// This method should not write to the API.
-	ObserveKind(ctx context.Context, o *v1beta1.Trigger) reconciler.Event
+	ObserveKind(ctx context.Context, o *v1.Trigger) reconciler.Event
 }
 
 // ReadOnlyFinalizer defines the strongly typed interfaces to be implemented by a
-// controller finalizing v1beta1.Trigger if they want to process tombstoned resources
+// controller finalizing v1.Trigger if they want to process tombstoned resources
 // even when they are not the leader.  Due to the nature of how finalizers are handled
 // there are no guarantees that this will be called.
 type ReadOnlyFinalizer interface {
-	// ObserveFinalizeKind implements custom logic to observe the final state of v1beta1.Trigger.
+	// ObserveFinalizeKind implements custom logic to observe the final state of v1.Trigger.
 	// This method should not write to the API.
-	ObserveFinalizeKind(ctx context.Context, o *v1beta1.Trigger) reconciler.Event
+	ObserveFinalizeKind(ctx context.Context, o *v1.Trigger) reconciler.Event
 }
 
-type doReconcile func(ctx context.Context, o *v1beta1.Trigger) reconciler.Event
+type doReconcile func(ctx context.Context, o *v1.Trigger) reconciler.Event
 
-// reconcilerImpl implements controller.Reconciler for v1beta1.Trigger resources.
+// reconcilerImpl implements controller.Reconciler for v1.Trigger resources.
 type reconcilerImpl struct {
 	// LeaderAwareFuncs is inlined to help us implement reconciler.LeaderAware
 	reconciler.LeaderAwareFuncs
@@ -95,7 +95,7 @@ type reconcilerImpl struct {
 	Client versioned.Interface
 
 	// Listers index properties about resources
-	Lister eventingv1beta1.TriggerLister
+	Lister eventingv1.TriggerLister
 
 	// Recorder is an event recorder for recording Event resources to the
 	// Kubernetes API.
@@ -122,7 +122,7 @@ var _ controller.Reconciler = (*reconcilerImpl)(nil)
 // Check that our generated Reconciler is always LeaderAware.
 var _ reconciler.LeaderAware = (*reconcilerImpl)(nil)
 
-func NewReconciler(ctx context.Context, logger *zap.SugaredLogger, client versioned.Interface, lister eventingv1beta1.TriggerLister, recorder record.EventRecorder, r Interface, options ...controller.Options) controller.Reconciler {
+func NewReconciler(ctx context.Context, logger *zap.SugaredLogger, client versioned.Interface, lister eventingv1.TriggerLister, recorder record.EventRecorder, r Interface, options ...controller.Options) controller.Reconciler {
 	// Check the options function input. It should be 0 or 1.
 	if len(options) > 1 {
 		logger.Fatalf("up to one options struct is supported, found %d", len(options))
@@ -235,13 +235,17 @@ func (r *reconcilerImpl) Reconcile(ctx context.Context, key string) error {
 			return fmt.Errorf("failed to set finalizers: %w", err)
 		}
 
-		reconciler.PreProcessReconcile(ctx, resource)
+		if !r.skipStatusUpdates {
+			reconciler.PreProcessReconcile(ctx, resource)
+		}
 
 		// Reconcile this copy of the resource and then write back any status
 		// updates regardless of whether the reconciliation errored out.
 		reconcileEvent = do(ctx, resource)
 
-		reconciler.PostProcessReconcile(ctx, resource, original)
+		if !r.skipStatusUpdates {
+			reconciler.PostProcessReconcile(ctx, resource, original)
+		}
 
 	case reconciler.DoFinalizeKind:
 		// For finalizing reconcilers, if this resource being marked for deletion
@@ -275,7 +279,7 @@ func (r *reconcilerImpl) Reconcile(ctx context.Context, key string) error {
 	default:
 		if err = r.updateStatus(ctx, original, resource); err != nil {
 			logger.Warnw("Failed to update resource status", zap.Error(err))
-			r.Recorder.Eventf(resource, v1.EventTypeWarning, "UpdateFailed",
+			r.Recorder.Eventf(resource, corev1.EventTypeWarning, "UpdateFailed",
 				"Failed to update status for %q: %v", resource.Name, err)
 			return err
 		}
@@ -296,20 +300,20 @@ func (r *reconcilerImpl) Reconcile(ctx context.Context, key string) error {
 		}
 
 		logger.Errorw("Returned an error", zap.Error(reconcileEvent))
-		r.Recorder.Event(resource, v1.EventTypeWarning, "InternalError", reconcileEvent.Error())
+		r.Recorder.Event(resource, corev1.EventTypeWarning, "InternalError", reconcileEvent.Error())
 		return reconcileEvent
 	}
 
 	return nil
 }
 
-func (r *reconcilerImpl) updateStatus(ctx context.Context, existing *v1beta1.Trigger, desired *v1beta1.Trigger) error {
+func (r *reconcilerImpl) updateStatus(ctx context.Context, existing *v1.Trigger, desired *v1.Trigger) error {
 	existing = existing.DeepCopy()
 	return reconciler.RetryUpdateConflicts(func(attempts int) (err error) {
 		// The first iteration tries to use the injectionInformer's state, subsequent attempts fetch the latest state via API.
 		if attempts > 0 {
 
-			getter := r.Client.EventingV1beta1().Triggers(desired.Namespace)
+			getter := r.Client.EventingV1().Triggers(desired.Namespace)
 
 			existing, err = getter.Get(desired.Name, metav1.GetOptions{})
 			if err != nil {
@@ -328,7 +332,7 @@ func (r *reconcilerImpl) updateStatus(ctx context.Context, existing *v1beta1.Tri
 
 		existing.Status = desired.Status
 
-		updater := r.Client.EventingV1beta1().Triggers(existing.Namespace)
+		updater := r.Client.EventingV1().Triggers(existing.Namespace)
 
 		_, err = updater.UpdateStatus(existing)
 		return err
@@ -338,7 +342,7 @@ func (r *reconcilerImpl) updateStatus(ctx context.Context, existing *v1beta1.Tri
 // updateFinalizersFiltered will update the Finalizers of the resource.
 // TODO: this method could be generic and sync all finalizers. For now it only
 // updates defaultFinalizerName or its override.
-func (r *reconcilerImpl) updateFinalizersFiltered(ctx context.Context, resource *v1beta1.Trigger) (*v1beta1.Trigger, error) {
+func (r *reconcilerImpl) updateFinalizersFiltered(ctx context.Context, resource *v1.Trigger) (*v1.Trigger, error) {
 
 	getter := r.Lister.Triggers(resource.Namespace)
 
@@ -385,21 +389,21 @@ func (r *reconcilerImpl) updateFinalizersFiltered(ctx context.Context, resource
 		return resource, err
 	}
 
-	patcher := r.Client.EventingV1beta1().Triggers(resource.Namespace)
+	patcher := r.Client.EventingV1().Triggers(resource.Namespace)
 
 	resourceName := resource.Name
 	resource, err = patcher.Patch(resourceName, types.MergePatchType, patch)
 	if err != nil {
-		r.Recorder.Eventf(resource, v1.EventTypeWarning, "FinalizerUpdateFailed",
+		r.Recorder.Eventf(resource, corev1.EventTypeWarning, "FinalizerUpdateFailed",
 			"Failed to update finalizers for %q: %v", resourceName, err)
 	} else {
-		r.Recorder.Eventf(resource, v1.EventTypeNormal, "FinalizerUpdate",
+		r.Recorder.Eventf(resource, corev1.EventTypeNormal, "FinalizerUpdate",
 			"Updated %q finalizers", resource.GetName())
 	}
 	return resource, err
 }
 
-func (r *reconcilerImpl) setFinalizerIfFinalizer(ctx context.Context, resource *v1beta1.Trigger) (*v1beta1.Trigger, error) {
+func (r *reconcilerImpl) setFinalizerIfFinalizer(ctx context.Context, resource *v1.Trigger) (*v1.Trigger, error) {
 	if _, ok := r.reconciler.(Finalizer); !ok {
 		return resource, nil
 	}
@@ -417,7 +421,7 @@ func (r *reconcilerImpl) setFinalizerIfFinalizer(ctx context.Context, resource *
 	return r.updateFinalizersFiltered(ctx, resource)
 }
 
-func (r *reconcilerImpl) clearFinalizer(ctx context.Context, resource *v1beta1.Trigger, reconcileEvent reconciler.Event) (*v1beta1.Trigger, error) {
+func (r *reconcilerImpl) clearFinalizer(ctx context.Context, resource *v1.Trigger, reconcileEvent reconciler.Event) (*v1.Trigger, error) {
 	if _, ok := r.reconciler.(Finalizer); !ok {
 		return resource, nil
 	}
@@ -430,7 +434,7 @@ func (r *reconcilerImpl) clearFinalizer(ctx context.Context, resource *v1beta1.T
 	if reconcileEvent != nil {
 		var event *reconciler.ReconcilerEvent
 		if reconciler.EventAs(reconcileEvent, &event) {
-			if event.EventType == v1.EventTypeNormal {
+			if event.EventType == corev1.EventTypeNormal {
 				finalizers.Delete(r.finalizerName)
 			}
 		}
diff --git a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger/state.go b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/state.go
similarity index 95%
rename from vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger/state.go
rename to vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/state.go
index db3168cbc..89c3addda 100644
--- a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger/state.go
+++ b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/state.go
@@ -23,7 +23,7 @@ import (
 
 	types "k8s.io/apimachinery/pkg/types"
 	cache "k8s.io/client-go/tools/cache"
-	v1beta1 "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	v1 "knative.dev/eventing/pkg/apis/eventing/v1"
 	reconciler "knative.dev/pkg/reconciler"
 )
 
@@ -90,7 +90,7 @@ func (s *state) isNotLeaderNorObserver() bool {
 	return false
 }
 
-func (s *state) reconcileMethodFor(o *v1beta1.Trigger) (string, doReconcile) {
+func (s *state) reconcileMethodFor(o *v1.Trigger) (string, doReconcile) {
 	if o.GetDeletionTimestamp().IsZero() {
 		if s.isLeader {
 			return reconciler.DoReconcileKind, s.reconciler.ReconcileKind
diff --git a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/broker/reconciler.go b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/broker/reconciler.go
index 79bd7fdeb..2cdb70537 100644
--- a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/broker/reconciler.go
+++ b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/broker/reconciler.go
@@ -246,13 +246,17 @@ func (r *reconcilerImpl) Reconcile(ctx context.Context, key string) error {
 			return fmt.Errorf("failed to set finalizers: %w", err)
 		}
 
-		reconciler.PreProcessReconcile(ctx, resource)
+		if !r.skipStatusUpdates {
+			reconciler.PreProcessReconcile(ctx, resource)
+		}
 
 		// Reconcile this copy of the resource and then write back any status
 		// updates regardless of whether the reconciliation errored out.
 		reconcileEvent = do(ctx, resource)
 
-		reconciler.PostProcessReconcile(ctx, resource, original)
+		if !r.skipStatusUpdates {
+			reconciler.PostProcessReconcile(ctx, resource, original)
+		}
 
 	case reconciler.DoFinalizeKind:
 		// For finalizing reconcilers, if this resource being marked for deletion
diff --git a/vendor/knative.dev/eventing/pkg/reconciler/sugar/labels.go b/vendor/knative.dev/eventing/pkg/reconciler/sugar/labels.go
index c6a1a804b..b64e97437 100644
--- a/vendor/knative.dev/eventing/pkg/reconciler/sugar/labels.go
+++ b/vendor/knative.dev/eventing/pkg/reconciler/sugar/labels.go
@@ -18,20 +18,14 @@ package sugar
 
 const (
 	// Label to enable Knative Eventing in a Namespace.
-	// DeprecatedInjectionLabelKey, fully qualified label keys recommended.
-	// Please use InjectionLabelKey.
-	DeprecatedInjectionLabelKey = "knative-eventing-injection"
 	InjectionLabelKey           = "eventing.knative.dev/injection"
 	InjectionEnabledLabelValue  = "enabled"
 	InjectionDisabledLabelValue = "disabled"
 )
 
 func InjectionLabelKeys() []string {
-	// Note: InjectionLabelKey needs to be first, order matters for conflicts
-	// with DeprecatedInjectionLabelKey. InjectionLabelKey should win.
 	return []string{
 		InjectionLabelKey,
-		DeprecatedInjectionLabelKey,
 	}
 }
 
diff --git a/vendor/knative.dev/pkg/apis/duck/README.md b/vendor/knative.dev/pkg/apis/duck/README.md
index ab9a59030..688f54246 100644
--- a/vendor/knative.dev/pkg/apis/duck/README.md
+++ b/vendor/knative.dev/pkg/apis/duck/README.md
@@ -1,8 +1,9 @@
 # Duck Types
 
 Knative leverages duck-typing to interact with resources inside of Kubernetes
-without explicit knowlage of the full resource shape. `knative/pkg` defines two
-duck types that are used throughout Knative: `Addressable` and `Source`.
+without explicit knowledge of the full resource shape. `knative/pkg` defines
+three duck types that are used throughout Knative: `Addressable`, `Binding`, and
+`Source`.
 
 For APIs leveraging `ObjectReference`, the context of the resource in question
 identifies the duck-type. To enable the case where no `ObjectRefrence` is used,
diff --git a/vendor/knative.dev/pkg/apis/duck/v1beta1/destination.go b/vendor/knative.dev/pkg/apis/duck/v1beta1/destination.go
index 9c247b030..fe0f5d171 100644
--- a/vendor/knative.dev/pkg/apis/duck/v1beta1/destination.go
+++ b/vendor/knative.dev/pkg/apis/duck/v1beta1/destination.go
@@ -107,9 +107,8 @@ func ValidateDestination(dest Destination, allowDeprecatedFields bool) *apis.Fie
 	if ref != nil && dest.URI == nil {
 		if dest.Ref != nil {
 			return validateDestinationRef(*ref).ViaField("ref")
-		} else {
-			return validateDestinationRef(*ref)
 		}
+		return validateDestinationRef(*ref)
 	}
 	return nil
 }
diff --git a/vendor/knative.dev/pkg/codegen/cmd/injection-gen/generators/reconciler_reconciler.go b/vendor/knative.dev/pkg/codegen/cmd/injection-gen/generators/reconciler_reconciler.go
index ac8138188..bf5806146 100644
--- a/vendor/knative.dev/pkg/codegen/cmd/injection-gen/generators/reconciler_reconciler.go
+++ b/vendor/knative.dev/pkg/codegen/cmd/injection-gen/generators/reconciler_reconciler.go
@@ -421,7 +421,9 @@ func (r *reconcilerImpl) Reconcile(ctx {{.contextContext|raw}}, key string) erro
 			return {{.fmtErrorf|raw}}("failed to set finalizers: %w", err)
 		}
 		{{if .isKRShaped}}
-		reconciler.PreProcessReconcile(ctx, resource)
+		if !r.skipStatusUpdates {
+			reconciler.PreProcessReconcile(ctx, resource)
+		}
 		{{end}}
 
 		// Reconcile this copy of the resource and then write back any status
@@ -429,7 +431,9 @@ func (r *reconcilerImpl) Reconcile(ctx {{.contextContext|raw}}, key string) erro
 		reconcileEvent = do(ctx, resource)
 
 		{{if .isKRShaped}}
-		reconciler.PostProcessReconcile(ctx, resource, original)
+		if !r.skipStatusUpdates {
+			reconciler.PostProcessReconcile(ctx, resource, original)
+		}
 		{{end}}
 
 	case {{.doFinalizeKind|raw}}:
diff --git a/vendor/knative.dev/pkg/configmap/parse.go b/vendor/knative.dev/pkg/configmap/parse.go
index eba04a11c..d4fa5e875 100644
--- a/vendor/knative.dev/pkg/configmap/parse.go
+++ b/vendor/knative.dev/pkg/configmap/parse.go
@@ -45,7 +45,9 @@ func AsString(key string, target *string) ParseFunc {
 func AsBool(key string, target *bool) ParseFunc {
 	return func(data map[string]string) error {
 		if raw, ok := data[key]; ok {
-			*target = strings.EqualFold(raw, "true")
+			val, err := strconv.ParseBool(raw)
+			*target = val // If err != nil — this is always false.
+			return err
 		}
 		return nil
 	}
diff --git a/vendor/knative.dev/pkg/controller/controller.go b/vendor/knative.dev/pkg/controller/controller.go
index b88b4a20e..300f76e82 100644
--- a/vendor/knative.dev/pkg/controller/controller.go
+++ b/vendor/knative.dev/pkg/controller/controller.go
@@ -216,10 +216,13 @@ type ControllerOptions struct {
 
 // NewImpl instantiates an instance of our controller that will feed work to the
 // provided Reconciler as it is enqueued.
+// Deprecated: use NewImplFull.
 func NewImpl(r Reconciler, logger *zap.SugaredLogger, workQueueName string) *Impl {
 	return NewImplFull(r, ControllerOptions{WorkQueueName: workQueueName, Logger: logger})
 }
 
+// NewImplWithStats creates a controller.Impl with stats reporter.
+// Deprecated: use NewImplFull.
 func NewImplWithStats(r Reconciler, logger *zap.SugaredLogger, workQueueName string, reporter StatsReporter) *Impl {
 	return NewImplFull(r, ControllerOptions{WorkQueueName: workQueueName, Logger: logger, Reporter: reporter})
 }
@@ -262,7 +265,7 @@ func (c *Impl) EnqueueAfter(obj interface{}, after time.Duration) {
 // and enqueues that key in the slow lane.
 func (c *Impl) EnqueueSlowKey(key types.NamespacedName) {
 	c.workQueue.SlowLane().Add(key)
-	c.logger.With(zap.Object(logkey.Key, logging.NamespacedName(key))).
+	c.logger.With(zap.String(logkey.Key, key.String())).
 		Debugf("Adding to the slow queue %s (depth(total/slow): %d/%d)",
 			safeKey(key), c.workQueue.Len(), c.workQueue.SlowLane().Len())
 }
@@ -390,7 +393,7 @@ func (c *Impl) EnqueueNamespaceOf(obj interface{}) {
 // EnqueueKey takes a namespace/name string and puts it onto the work queue.
 func (c *Impl) EnqueueKey(key types.NamespacedName) {
 	c.workQueue.Add(key)
-	c.logger.With(zap.Object(logkey.Key, logging.NamespacedName(key))).
+	c.logger.With(zap.String(logkey.Key, key.String())).
 		Debugf("Adding to queue %s (depth: %d)", safeKey(key), c.workQueue.Len())
 }
 
@@ -406,7 +409,7 @@ func (c *Impl) MaybeEnqueueBucketKey(bkt reconciler.Bucket, key types.Namespaced
 // the work queue after given delay.
 func (c *Impl) EnqueueKeyAfter(key types.NamespacedName, delay time.Duration) {
 	c.workQueue.AddAfter(key, delay)
-	c.logger.With(zap.Object(logkey.Key, logging.NamespacedName(key))).
+	c.logger.With(zap.String(logkey.Key, key.String())).
 		Debugf("Adding to queue %s (delay: %v, depth: %d)", safeKey(key), delay, c.workQueue.Len())
 }
 
@@ -416,15 +419,14 @@ func (c *Impl) EnqueueKeyAfter(key types.NamespacedName, delay time.Duration) {
 // internal work queue and waits for workers to finish processing their current
 // work items.
 func (c *Impl) RunContext(ctx context.Context, threadiness int) error {
-	logger := c.logger
-	defer runtime.HandleCrash()
 	sg := sync.WaitGroup{}
-	defer sg.Wait()
 	defer func() {
 		c.workQueue.ShutDown()
 		for c.workQueue.Len() > 0 {
 			time.Sleep(time.Millisecond * 100)
 		}
+		sg.Wait()
+		runtime.HandleCrash()
 	}()
 
 	if la, ok := c.Reconciler.(reconciler.LeaderAware); ok {
@@ -441,7 +443,7 @@ func (c *Impl) RunContext(ctx context.Context, threadiness int) error {
 	}
 
 	// Launch workers to process resources that get enqueued to our workqueue.
-	logger.Info("Starting controller and workers")
+	c.logger.Info("Starting controller and workers")
 	for i := 0; i < threadiness; i++ {
 		sg.Add(1)
 		go func() {
@@ -451,9 +453,9 @@ func (c *Impl) RunContext(ctx context.Context, threadiness int) error {
 		}()
 	}
 
-	logger.Info("Started workers")
+	c.logger.Info("Started workers")
 	<-ctx.Done()
-	logger.Info("Shutting down workers")
+	c.logger.Info("Shutting down workers")
 
 	return nil
 }
@@ -485,13 +487,6 @@ func (c *Impl) processNextWorkItem() bool {
 	// Send the metrics for the current queue depth
 	c.statsReporter.ReportQueueDepth(int64(c.workQueue.Len()))
 
-	// We call Done here so the workqueue knows we have finished
-	// processing this item. We also must remember to call Forget if
-	// reconcile succeeds. If a transient error occurs, we do not call
-	// Forget and put the item back to the queue with an increased
-	// delay.
-	defer c.workQueue.Done(key)
-
 	var err error
 	defer func() {
 		status := trueString
@@ -499,6 +494,13 @@ func (c *Impl) processNextWorkItem() bool {
 			status = falseString
 		}
 		c.statsReporter.ReportReconcile(time.Since(startTime), status)
+
+		// We call Done here so the workqueue knows we have finished
+		// processing this item. We also must remember to call Forget if
+		// reconcile succeeds. If a transient error occurs, we do not call
+		// Forget and put the item back to the queue with an increased
+		// delay.
+		c.workQueue.Done(key)
 	}()
 
 	// Embed the key into the logger and attach that to the context we pass
@@ -544,8 +546,8 @@ func (c *Impl) GlobalResync(si cache.SharedInformer) {
 	c.FilteredGlobalResync(alwaysTrue, si)
 }
 
-// FilteredGlobalResync enqueues (with a delay) all objects from the
-// SharedInformer that pass the filter function
+// FilteredGlobalResync enqueues all objects from the
+// SharedInformer that pass the filter function in to the slow queue.
 func (c *Impl) FilteredGlobalResync(f func(interface{}) bool, si cache.SharedInformer) {
 	if c.workQueue.ShuttingDown() {
 		return
diff --git a/vendor/knative.dev/pkg/hack/update-codegen.sh b/vendor/knative.dev/pkg/hack/update-codegen.sh
index 3e030bfac..0743ad689 100644
--- a/vendor/knative.dev/pkg/hack/update-codegen.sh
+++ b/vendor/knative.dev/pkg/hack/update-codegen.sh
@@ -47,7 +47,7 @@ EXTERNAL_INFORMER_PKG="k8s.io/client-go/informers" \
   ${REPO_ROOT_DIR}/hack/generate-knative.sh "injection" \
     k8s.io/client-go \
     k8s.io/api \
-    "admissionregistration:v1beta1,v1 apps:v1 autoscaling:v1,v2beta1 batch:v1,v1beta1 core:v1 rbac:v1" \
+    "admissionregistration:v1beta1,v1 apps:v1 autoscaling:v1,v2beta1 batch:v1,v1beta1 core:v1 rbac:v1 coordination:v1" \
     --go-header-file ${REPO_ROOT_DIR}/hack/boilerplate/boilerplate.go.txt \
     --force-genreconciler-kinds "Namespace,Deployment"
 
diff --git a/vendor/knative.dev/pkg/hack/update-deps.sh b/vendor/knative.dev/pkg/hack/update-deps.sh
index b7e31052b..a39fc858f 100644
--- a/vendor/knative.dev/pkg/hack/update-deps.sh
+++ b/vendor/knative.dev/pkg/hack/update-deps.sh
@@ -26,7 +26,7 @@ cd ${ROOT_DIR}
 # The list of dependencies that we track at HEAD and periodically
 # float forward in this repository.
 FLOATING_DEPS=(
-  "knative.dev/test-infra@release-0.17"
+  "knative.dev/test-infra@master"
 )
 
 # Parse flags to determine any we should pass to dep.
diff --git a/vendor/knative.dev/pkg/hash/bucketer.go b/vendor/knative.dev/pkg/hash/bucketer.go
index d0c1460a8..41d26d97c 100644
--- a/vendor/knative.dev/pkg/hash/bucketer.go
+++ b/vendor/knative.dev/pkg/hash/bucketer.go
@@ -111,6 +111,11 @@ func (bs *BucketSet) Owner(key string) string {
 	return ret
 }
 
+// HasBucket returns true if this BucketSet has the given bucket name.
+func (bs *BucketSet) HasBucket(bkt string) bool {
+	return bs.buckets.Has(bkt)
+}
+
 // BucketList returns the bucket names of this BucketSet in random order.
 func (bs *BucketSet) BucketList() []string {
 	bs.mu.RLock()
diff --git a/vendor/knative.dev/pkg/kmp/diff.go b/vendor/knative.dev/pkg/kmp/diff.go
index 09c041446..791c9d1d4 100644
--- a/vendor/knative.dev/pkg/kmp/diff.go
+++ b/vendor/knative.dev/pkg/kmp/diff.go
@@ -73,7 +73,7 @@ func SafeEqual(x, y interface{}, opts ...cmp.Option) (equal bool, err error) {
 // CompareSetFields returns a list of field names that differ between
 // x and y. Uses SafeEqual for comparison.
 func CompareSetFields(x, y interface{}, opts ...cmp.Option) ([]string, error) {
-	r := new(FieldListReporter)
+	r := new(fieldListReporter)
 	opts = append(opts, cmp.Reporter(r))
 	_, err := SafeEqual(x, y, opts...)
 	return r.Fields(), err
@@ -82,7 +82,7 @@ func CompareSetFields(x, y interface{}, opts ...cmp.Option) ([]string, error) {
 // ShortDiff returns a zero-context, unified human-readable diff.
 // Uses SafeEqual for comparison.
 func ShortDiff(prev, cur interface{}, opts ...cmp.Option) (string, error) {
-	r := new(ShortDiffReporter)
+	r := new(shortDiffReporter)
 	opts = append(opts, cmp.Reporter(r))
 	var err error
 	if _, err = SafeEqual(prev, cur, opts...); err != nil {
diff --git a/vendor/knative.dev/pkg/kmp/reporters.go b/vendor/knative.dev/pkg/kmp/reporters.go
index 5586f90bc..6f8ba0145 100644
--- a/vendor/knative.dev/pkg/kmp/reporters.go
+++ b/vendor/knative.dev/pkg/kmp/reporters.go
@@ -25,42 +25,41 @@ import (
 	"github.com/google/go-cmp/cmp"
 )
 
-// FieldListReporter implements the cmp.Reporter interface. It keeps
+// fieldListReporter implements the cmp.Reporter interface. It keeps
 // track of the field names that differ between two structs and reports
 // them through the Fields() function.
-type FieldListReporter struct {
+type fieldListReporter struct {
 	path       cmp.Path
 	fieldNames []string
 }
 
 // PushStep implements the cmp.Reporter.
-func (r *FieldListReporter) PushStep(ps cmp.PathStep) {
+func (r *fieldListReporter) PushStep(ps cmp.PathStep) {
 	r.path = append(r.path, ps)
 }
 
 // fieldName returns a readable name for the field. If the field has JSON annotations it
 // returns the JSON key. If the field does not have JSON annotations or the JSON annotation
 // marks the field as ignored it returns the field's go name
-func (r *FieldListReporter) fieldName() string {
+func (r *fieldListReporter) fieldName() string {
 	if len(r.path) < 2 {
 		return r.path.Index(0).String()
-	} else {
-		fieldName := strings.TrimPrefix(r.path.Index(1).String(), ".")
-		// Prefer JSON name to fieldName if it exists
-		structField, exists := r.path.Index(0).Type().FieldByName(fieldName)
-		if exists {
-			tag := structField.Tag.Get("json")
-			if tag != "" && tag != "-" {
-				return strings.SplitN(tag, ",", 2)[0]
-			}
-
+	}
+	fieldName := strings.TrimPrefix(r.path.Index(1).String(), ".")
+	// Prefer JSON name to fieldName if it exists
+	structField, exists := r.path.Index(0).Type().FieldByName(fieldName)
+	if exists {
+		tag := structField.Tag.Get("json")
+		if tag != "" && tag != "-" {
+			return strings.SplitN(tag, ",", 2)[0]
 		}
-		return fieldName
 	}
+
+	return fieldName
 }
 
 // Report implements the cmp.Reporter.
-func (r *FieldListReporter) Report(rs cmp.Result) {
+func (r *fieldListReporter) Report(rs cmp.Result) {
 	if rs.Equal() {
 		return
 	}
@@ -75,72 +74,70 @@ func (r *FieldListReporter) Report(rs cmp.Result) {
 }
 
 // PopStep implements cmp.Reporter.
-func (r *FieldListReporter) PopStep() {
+func (r *fieldListReporter) PopStep() {
 	r.path = r.path[:len(r.path)-1]
 }
 
 // Fields returns the field names that differed between the two
 // objects after calling cmp.Equal with the FieldListReporter. Field names
 // are returned in alphabetical order.
-func (r *FieldListReporter) Fields() []string {
+func (r *fieldListReporter) Fields() []string {
 	sort.Strings(r.fieldNames)
 	return r.fieldNames
 }
 
-// ShortDiffReporter implements the cmp.Reporter interface. It reports
+// shortDiffReporter implements the cmp.Reporter interface. It reports
 // on fields which have diffing values in a short zero-context, unified diff
 // format.
-type ShortDiffReporter struct {
+type shortDiffReporter struct {
 	path  cmp.Path
 	diffs []string
 	err   error
 }
 
 // PushStep implements the cmp.Reporter.
-func (r *ShortDiffReporter) PushStep(ps cmp.PathStep) {
+func (r *shortDiffReporter) PushStep(ps cmp.PathStep) {
 	r.path = append(r.path, ps)
 }
 
 // Report implements the cmp.Reporter.
-func (r *ShortDiffReporter) Report(rs cmp.Result) {
+func (r *shortDiffReporter) Report(rs cmp.Result) {
 	if rs.Equal() {
 		return
 	}
 	cur := r.path.Last()
 	vx, vy := cur.Values()
 	t := cur.Type()
-	var diff string
 	// Prefix struct values with the types to add clarity in output
 	if !vx.IsValid() && !vy.IsValid() {
 		r.err = fmt.Errorf("unable to diff %+v and %+v on path %#v", vx, vy, r.path)
-	} else {
-		diff = fmt.Sprintf("%#v:\n", r.path)
-		if vx.IsValid() {
-			diff += r.diffString("-", t, vx)
-		}
-		if vy.IsValid() {
-			diff += r.diffString("+", t, vy)
-		}
+		return
+	}
+	diff := fmt.Sprintf("%#v:\n", r.path)
+	if vx.IsValid() {
+		diff += r.diffString("-", t, vx)
+	}
+	if vy.IsValid() {
+		diff += r.diffString("+", t, vy)
 	}
 	r.diffs = append(r.diffs, diff)
 }
 
-func (r *ShortDiffReporter) diffString(diffType string, t reflect.Type, v reflect.Value) string {
+func (r *shortDiffReporter) diffString(diffType string, t reflect.Type, v reflect.Value) string {
 	if t.Kind() == reflect.Struct {
 		return fmt.Sprintf("\t%s: %+v: \"%+v\"\n", diffType, t, v)
-	} else {
-		return fmt.Sprintf("\t%s: \"%+v\"\n", diffType, v)
 	}
+	return fmt.Sprintf("\t%s: \"%+v\"\n", diffType, v)
 }
 
 // PopStep implements the cmp.Reporter.
-func (r *ShortDiffReporter) PopStep() {
+func (r *shortDiffReporter) PopStep() {
 	r.path = r.path[:len(r.path)-1]
 }
 
 // Diff returns the generated short diff for this object.
 // cmp.Equal should be called before this method.
-func (r *ShortDiffReporter) Diff() (string, error) {
+func (r *shortDiffReporter) Diff() (string, error) {
 	if r.err != nil {
 		return "", r.err
 	}
diff --git a/vendor/knative.dev/pkg/logging/config.go b/vendor/knative.dev/pkg/logging/config.go
index 7cc7a3e18..2fbd235df 100644
--- a/vendor/knative.dev/pkg/logging/config.go
+++ b/vendor/knative.dev/pkg/logging/config.go
@@ -108,7 +108,7 @@ func newLoggerFromConfig(configJSON string, levelOverride string, opts []zap.Opt
 	}
 
 	logger.Info("Successfully created the logger.")
-	logger.Sugar().Infof("Logging level set to %v", loggingCfg.Level)
+	logger.Info("Logging level set to: " + loggingCfg.Level.String())
 	return logger, loggingCfg.Level, nil
 }
 
@@ -232,11 +232,10 @@ func UpdateLevelFromConfigMap(logger *zap.SugaredLogger, atomicLevel zap.AtomicL
 
 // ConfigMapName gets the name of the logging ConfigMap
 func ConfigMapName() string {
-	cm := os.Getenv(configMapNameEnv)
-	if cm == "" {
-		return "config-logging"
+	if cm := os.Getenv(configMapNameEnv); cm != "" {
+		return cm
 	}
-	return cm
+	return "config-logging"
 }
 
 // JsonToLoggingConfig converts a json string of a Config.
diff --git a/vendor/knative.dev/pkg/metrics/config_observability.go b/vendor/knative.dev/pkg/metrics/config_observability.go
index d17fba89c..12df827de 100644
--- a/vendor/knative.dev/pkg/metrics/config_observability.go
+++ b/vendor/knative.dev/pkg/metrics/config_observability.go
@@ -17,8 +17,8 @@ limitations under the License.
 package metrics
 
 import (
+	"fmt"
 	"os"
-	"strings"
 	texttemplate "text/template"
 
 	corev1 "k8s.io/api/core/v1"
@@ -28,12 +28,16 @@ import (
 const (
 	// The following is used to set the default log url template
 	DefaultLogURLTemplate = "http://localhost:8001/api/v1/namespaces/knative-monitoring/services/kibana-logging/proxy/app/kibana#/discover?_a=(query:(match:(kubernetes.labels.knative-dev%2FrevisionUID:(query:'${REVISION_UID}',type:phrase))))"
+	// DefaultRequestLogTemplate is the default format for emitting request logs.
+	DefaultRequestLogTemplate = `{"httpRequest": {"requestMethod": "{{.Request.Method}}", "requestUrl": "{{js .Request.RequestURI}}", "requestSize": "{{.Request.ContentLength}}", "status": {{.Response.Code}}, "responseSize": "{{.Response.Size}}", "userAgent": "{{js .Request.UserAgent}}", "remoteIp": "{{js .Request.RemoteAddr}}", "serverIp": "{{.Revision.PodIP}}", "referer": "{{js .Request.Referer}}", "latency": "{{.Response.Latency}}s", "protocol": "{{.Request.Proto}}"}, "traceId": "{{index .Request.Header "X-B3-Traceid"}}"}`
 
 	// The following is used to set the default metrics backend
 	defaultRequestMetricsBackend = "prometheus"
 
 	// The env var name for config-observability
-	configMapNameEnv = "CONFIG_OBSERVABILITY_NAME"
+	configMapNameEnv  = "CONFIG_OBSERVABILITY_NAME"
+	reqLogTemplateKey = "logging.request-log-template"
+	enableReqLogKey   = "logging.enable-request-log"
 )
 
 // ObservabilityConfig contains the configuration defined in the observability ConfigMap.
@@ -63,11 +67,16 @@ type ObservabilityConfig struct {
 
 	// EnableRequestLog enables activator/queue-proxy to write request logs.
 	EnableRequestLog bool
+
+	// MetricsCollectorAddress specifies the metrics collector address. This is only used
+	// when the metrics backend is opencensus.
+	MetricsCollectorAddress string
 }
 
 func defaultConfig() *ObservabilityConfig {
 	return &ObservabilityConfig{
 		LoggingURLTemplate:    DefaultLogURLTemplate,
+		RequestLogTemplate:    DefaultRequestLogTemplate,
 		RequestMetricsBackend: defaultRequestMetricsBackend,
 	}
 }
@@ -79,23 +88,18 @@ func NewObservabilityConfigFromConfigMap(configMap *corev1.ConfigMap) (*Observab
 	if err := cm.Parse(configMap.Data,
 		cm.AsBool("logging.enable-var-log-collection", &oc.EnableVarLogCollection),
 		cm.AsString("logging.revision-url-template", &oc.LoggingURLTemplate),
-		cm.AsString("logging.request-log-template", &oc.RequestLogTemplate),
+		cm.AsString(reqLogTemplateKey, &oc.RequestLogTemplate),
+		cm.AsBool(enableReqLogKey, &oc.EnableRequestLog),
 		cm.AsBool("logging.enable-probe-request-log", &oc.EnableProbeRequestLog),
 		cm.AsString("metrics.request-metrics-backend-destination", &oc.RequestMetricsBackend),
 		cm.AsBool("profiling.enable", &oc.EnableProfiling),
+		cm.AsString("metrics.opencensus-address", &oc.MetricsCollectorAddress),
 	); err != nil {
 		return nil, err
 	}
 
-	if raw, ok := configMap.Data["logging.enable-request-log"]; ok {
-		if strings.EqualFold(raw, "true") && oc.RequestLogTemplate != "" {
-			oc.EnableRequestLog = true
-		}
-	} else if oc.RequestLogTemplate != "" {
-		// TODO: remove this after 0.17 cuts, this is meant only for smooth transition to the new flag.
-		// Once 0.17 cuts we should set a proper default value and users will need to set the flag explicitly
-		// to enable request logging.
-		oc.EnableRequestLog = true
+	if oc.RequestLogTemplate == "" && oc.EnableRequestLog {
+		return nil, fmt.Errorf("%q was set to true, but no %q was specified", enableReqLogKey, reqLogTemplateKey)
 	}
 
 	if oc.RequestLogTemplate != "" {
@@ -110,9 +114,8 @@ func NewObservabilityConfigFromConfigMap(configMap *corev1.ConfigMap) (*Observab
 
 // ConfigMapName gets the name of the metrics ConfigMap
 func ConfigMapName() string {
-	cm := os.Getenv(configMapNameEnv)
-	if cm == "" {
-		return "config-observability"
+	if cm := os.Getenv(configMapNameEnv); cm != "" {
+		return cm
 	}
-	return cm
+	return "config-observability"
 }
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 2a4ee2cad..35284a7c9 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -1046,7 +1046,7 @@ k8s.io/utils/buffer
 k8s.io/utils/integer
 k8s.io/utils/pointer
 k8s.io/utils/trace
-# knative.dev/eventing v0.16.1-0.20200818065713-9f3fb3ffde17
+# knative.dev/eventing v0.17.1-0.20200827083806-58c0cd78019f
 ## explicit
 knative.dev/eventing/pkg/apis/config
 knative.dev/eventing/pkg/apis/configs
@@ -1113,15 +1113,15 @@ knative.dev/eventing/pkg/client/informers/externalversions/sources/v1beta1
 knative.dev/eventing/pkg/client/injection/client
 knative.dev/eventing/pkg/client/injection/client/fake
 knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker
+knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker/fake
+knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger
+knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger/fake
 knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/broker
-knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/broker/fake
-knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger
-knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger/fake
 knative.dev/eventing/pkg/client/injection/informers/factory
 knative.dev/eventing/pkg/client/injection/informers/factory/fake
 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/injection/reconciler/eventing/v1beta1/broker
-knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger
 knative.dev/eventing/pkg/client/listers/configs/v1alpha1
 knative.dev/eventing/pkg/client/listers/eventing/v1
 knative.dev/eventing/pkg/client/listers/eventing/v1beta1
@@ -1169,7 +1169,7 @@ knative.dev/eventing/test/test_images/recordevents
 knative.dev/eventing/test/test_images/request-sender
 knative.dev/eventing/test/test_images/sequencestepper
 knative.dev/eventing/test/test_images/transformevents
-# knative.dev/pkg v0.0.0-20200812224206-44c860147a87
+# knative.dev/pkg v0.0.0-20200826013506-2465d13e7242
 ## explicit
 knative.dev/pkg/apis
 knative.dev/pkg/apis/duck
@@ -1247,7 +1247,7 @@ knative.dev/pkg/tracker
 knative.dev/pkg/version
 knative.dev/pkg/webhook
 knative.dev/pkg/webhook/certificates/resources
-# knative.dev/test-infra v0.0.0-20200813220834-388e55a496cf
+# knative.dev/test-infra v0.0.0-20200826192206-b4adbd18e3fe
 ## explicit
 knative.dev/test-infra/scripts
 # sigs.k8s.io/yaml v1.2.0


Test patch:
diff --git a/control-plane/pkg/reconciler/broker/broker_test.go b/control-plane/pkg/reconciler/broker/broker_test.go
index 4b85d443a..08d7949f3 100644
--- a/control-plane/pkg/reconciler/broker/broker_test.go
+++ b/control-plane/pkg/reconciler/broker/broker_test.go
@@ -31,7 +31,7 @@ import (
 	"k8s.io/apimachinery/pkg/runtime"
 	"k8s.io/apimachinery/pkg/types"
 	clientgotesting "k8s.io/client-go/testing"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 	"knative.dev/pkg/apis"
 	kubeclient "knative.dev/pkg/client/injection/kube/client/fake"
 	"knative.dev/pkg/controller"
@@ -39,10 +39,10 @@ import (
 	. "knative.dev/pkg/reconciler/testing"
 	"knative.dev/pkg/resolver"
 
-	eventingduck "knative.dev/eventing/pkg/apis/duck/v1beta1"
+	eventingduck "knative.dev/eventing/pkg/apis/duck/v1"
 	fakeeventingclient "knative.dev/eventing/pkg/client/injection/client/fake"
-	brokerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/broker"
-	reconcilertesting "knative.dev/eventing/pkg/reconciler/testing/v1beta1"
+	brokerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/broker"
+	reconcilertesting "knative.dev/eventing/pkg/reconciler/testing/v1"
 	duckv1 "knative.dev/pkg/apis/duck/v1"
 
 	coreconfig "knative.dev/eventing-kafka-broker/control-plane/pkg/core/config"
diff --git a/control-plane/pkg/reconciler/broker/controller_test.go b/control-plane/pkg/reconciler/broker/controller_test.go
index c72269d21..cd827ffbf 100644
--- a/control-plane/pkg/reconciler/broker/controller_test.go
+++ b/control-plane/pkg/reconciler/broker/controller_test.go
@@ -23,8 +23,8 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/runtime"
 	fakekubeclientset "k8s.io/client-go/kubernetes/fake"
-	_ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/broker/fake"
-	_ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger/fake"
+	_ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker/fake"
+	_ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger/fake"
 	_ "knative.dev/pkg/client/injection/ducks/duck/v1/addressable/fake"
 	fakekubeclient "knative.dev/pkg/client/injection/kube/client/fake"
 	_ "knative.dev/pkg/client/injection/kube/informers/core/v1/configmap/fake"
diff --git a/control-plane/pkg/reconciler/broker/topic_test.go b/control-plane/pkg/reconciler/broker/topic_test.go
index c1e8d969b..51eea319e 100644
--- a/control-plane/pkg/reconciler/broker/topic_test.go
+++ b/control-plane/pkg/reconciler/broker/topic_test.go
@@ -23,7 +23,7 @@ import (
 	"github.com/stretchr/testify/assert"
 	"go.uber.org/zap"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/broker"
 	reconcilertesting "knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/testing"
diff --git a/control-plane/pkg/reconciler/kafka/broker_class_test.go b/control-plane/pkg/reconciler/kafka/broker_class_test.go
index 013f387f5..d37da06d4 100644
--- a/control-plane/pkg/reconciler/kafka/broker_class_test.go
+++ b/control-plane/pkg/reconciler/kafka/broker_class_test.go
@@ -21,7 +21,7 @@ import (
 
 	"github.com/stretchr/testify/assert"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 )
 
 func TestBrokerClassFilter(t *testing.T) {
diff --git a/control-plane/pkg/reconciler/testing/listers.go b/control-plane/pkg/reconciler/testing/listers.go
index 94ea00187..e8e617c3b 100644
--- a/control-plane/pkg/reconciler/testing/listers.go
+++ b/control-plane/pkg/reconciler/testing/listers.go
@@ -23,9 +23,9 @@ import (
 	fakekubeclientset "k8s.io/client-go/kubernetes/fake"
 	corelisters "k8s.io/client-go/listers/core/v1"
 	"k8s.io/client-go/tools/cache"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 	fakeeventingclientset "knative.dev/eventing/pkg/client/clientset/versioned/fake"
-	eventinglisters "knative.dev/eventing/pkg/client/listers/eventing/v1beta1"
+	eventinglisters "knative.dev/eventing/pkg/client/listers/eventing/v1"
 	"knative.dev/pkg/reconciler/testing"
 )
 
diff --git a/control-plane/pkg/reconciler/testing/objects.go b/control-plane/pkg/reconciler/testing/objects.go
index 5ff062372..8eb064bc1 100644
--- a/control-plane/pkg/reconciler/testing/objects.go
+++ b/control-plane/pkg/reconciler/testing/objects.go
@@ -27,10 +27,10 @@ import (
 	"k8s.io/apimachinery/pkg/runtime"
 	"k8s.io/apimachinery/pkg/runtime/schema"
 	clientgotesting "k8s.io/client-go/testing"
-	eventingduck "knative.dev/eventing/pkg/apis/duck/v1beta1"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventingduck "knative.dev/eventing/pkg/apis/duck/v1"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 	"knative.dev/eventing/pkg/reconciler/names"
-	reconcilertesting "knative.dev/eventing/pkg/reconciler/testing/v1beta1"
+	reconcilertesting "knative.dev/eventing/pkg/reconciler/testing/v1"
 	"knative.dev/pkg/apis"
 	duckv1 "knative.dev/pkg/apis/duck/v1"
 
@@ -121,14 +121,16 @@ func ReceiverPodUpdate(namespace string, annotations map[string]string) clientgo
 }
 
 func NewService() *corev1.Service {
-	return reconcilertesting.NewService(
-		serviceName,
-		serviceNamespace,
-		func(service *corev1.Service) {
-			service.APIVersion = "v1"
-			service.Kind = "Service"
+	return &corev1.Service{
+		TypeMeta: metav1.TypeMeta{
+			Kind:       "Service",
+			APIVersion: "v1",
 		},
-	)
+		ObjectMeta: metav1.ObjectMeta{
+			Name:      serviceName,
+			Namespace: serviceNamespace,
+		},
+	}
 }
 
 func NewConfigMap(configs *Configs, data []byte) runtime.Object {
diff --git a/control-plane/pkg/reconciler/trigger/controller_test.go b/control-plane/pkg/reconciler/trigger/controller_test.go
index bf5443f71..3c3c1f901 100644
--- a/control-plane/pkg/reconciler/trigger/controller_test.go
+++ b/control-plane/pkg/reconciler/trigger/controller_test.go
@@ -20,14 +20,14 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
-	brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/broker"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
+	brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker"
 	"knative.dev/pkg/configmap"
 
 	reconcilertesting "knative.dev/pkg/reconciler/testing"
 
-	_ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/broker/fake"
-	_ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta1/trigger/fake"
+	_ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker/fake"
+	_ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger/fake"
 	_ "knative.dev/pkg/client/injection/ducks/duck/v1/addressable/fake"
 	_ "knative.dev/pkg/client/injection/kube/informers/core/v1/pod/fake"
 
diff --git a/control-plane/pkg/reconciler/trigger/trigger_test.go b/control-plane/pkg/reconciler/trigger/trigger_test.go
index 2db2ec320..7953b4b8a 100644
--- a/control-plane/pkg/reconciler/trigger/trigger_test.go
+++ b/control-plane/pkg/reconciler/trigger/trigger_test.go
@@ -26,12 +26,12 @@ import (
 	"k8s.io/apimachinery/pkg/runtime"
 	"k8s.io/apimachinery/pkg/types"
 	clientgotesting "k8s.io/client-go/testing"
-	eventing "knative.dev/eventing/pkg/apis/eventing/v1beta1"
+	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 	eventingclient "knative.dev/eventing/pkg/client/injection/client/fake"
 	fakeeventingclient "knative.dev/eventing/pkg/client/injection/client/fake"
-	triggerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1beta1/trigger"
+	triggerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger"
 	"knative.dev/eventing/pkg/logging"
-	reconcilertesting "knative.dev/eventing/pkg/reconciler/testing/v1beta1"
+	reconcilertesting "knative.dev/eventing/pkg/reconciler/testing/v1"
 	"knative.dev/pkg/apis"
 	kubeclient "knative.dev/pkg/client/injection/kube/client/fake"
 	"knative.dev/pkg/controller"
diff --git a/data-plane/tests/pom.xml b/data-plane/tests/pom.xml
index 19d1e3847..05d43dc29 100644
--- a/data-plane/tests/pom.xml
+++ b/data-plane/tests/pom.xml
@@ -28,8 +28,8 @@
   <artifactId>tests</artifactId>
 
   <properties>
-    <debezium.version>1.2.1.Final</debezium.version>
-    <kafka.version>2.5.0</kafka.version>
+    <debezium.version>1.2.2.Final</debezium.version>
+    <kafka.version>2.6.0</kafka.version>
   </properties>
 
   <dependencies>
diff --git a/test/e2e/broker_trigger_test.go b/test/e2e/broker_trigger_test.go
index 47ca71e6e..85a769e62 100644
--- a/test/e2e/broker_trigger_test.go
+++ b/test/e2e/broker_trigger_test.go
@@ -67,9 +67,9 @@ func TestBrokerTrigger(t *testing.T) {
 		nonMatchingEventId := uuid.New().String()
 		eventId := uuid.New().String()
 
-		br := client.CreateBrokerV1Beta1OrFail(
+		br := client.CreateBrokerV1OrFail(
 			brokerName,
-			resources.WithBrokerClassForBrokerV1Beta1(kafka.BrokerClass),
+			resources.WithBrokerClassForBrokerV1(kafka.BrokerClass),
 		)
 
 		eventTracker, _ := recordevents.StartEventRecordOrFail(client, subscriber)
@@ -189,10 +189,10 @@ func TestBrokerWithConfig(t *testing.T) {
 			broker.BootstrapServersConfigMapKey:              bootstrapServers,
 		})
 
-		br := client.CreateBrokerV1Beta1OrFail(
+		br := client.CreateBrokerV1OrFail(
 			brokerName,
-			resources.WithBrokerClassForBrokerV1Beta1(kafka.BrokerClass),
-			resources.WithConfigForBrokerV1Beta1(&duckv1.KReference{
+			resources.WithBrokerClassForBrokerV1(kafka.BrokerClass),
+			resources.WithConfigForBrokerV1(&duckv1.KReference{
 				Kind:       "ConfigMap",
 				Namespace:  cm.Namespace,
 				Name:       cm.Name,
diff --git a/vendor/knative.dev/eventing/pkg/reconciler/testing/v1/channel.go b/vendor/knative.dev/eventing/pkg/reconciler/testing/v1/channel.go
new file mode 100644
index 000000000..bee1c09db
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/reconciler/testing/v1/channel.go
@@ -0,0 +1,141 @@
+/*
+Copyright 2020 The Knative Authors
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+    http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package testing
+
+import (
+	"context"
+	"time"
+
+	"k8s.io/apimachinery/pkg/types"
+
+	v1 "k8s.io/api/core/v1"
+
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+
+	eventingduckv1 "knative.dev/eventing/pkg/apis/duck/v1"
+	eventingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
+	messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
+	"knative.dev/pkg/apis"
+	duckv1 "knative.dev/pkg/apis/duck/v1"
+)
+
+// ChannelOption enables further configuration of a Channel.
+type ChannelOption func(*eventingv1.Channel)
+
+// NewChannel creates a Channel with ChannelOptions
+func NewChannel(name, namespace string, o ...ChannelOption) *eventingv1.Channel {
+	c := &eventingv1.Channel{
+		TypeMeta: metav1.TypeMeta{
+			APIVersion: "messaging.knative.dev/v1",
+			Kind:       "Channel",
+		},
+		ObjectMeta: metav1.ObjectMeta{
+			Name:      name,
+			Namespace: namespace,
+		},
+	}
+	for _, opt := range o {
+		opt(c)
+	}
+	c.SetDefaults(context.Background())
+	return c
+}
+
+// WithInitChannelConditions initializes the Channel's conditions.
+func WithInitChannelConditions(c *eventingv1.Channel) {
+	c.Status.InitializeConditions()
+}
+
+func WithNoAnnotations(c *eventingv1.Channel) {
+	c.ObjectMeta.Annotations = nil
+}
+
+func WithChannelGeneration(gen int64) ChannelOption {
+	return func(s *eventingv1.Channel) {
+		s.Generation = gen
+	}
+}
+
+func WithChannelObservedGeneration(gen int64) ChannelOption {
+	return func(s *eventingv1.Channel) {
+		s.Status.ObservedGeneration = gen
+	}
+}
+
+func WithChannelDeleted(c *eventingv1.Channel) {
+	t := metav1.NewTime(time.Unix(1e9, 0))
+	c.ObjectMeta.SetDeletionTimestamp(&t)
+}
+
+func WithChannelTemplate(typeMeta metav1.TypeMeta) ChannelOption {
+	return func(c *eventingv1.Channel) {
+		c.Spec.ChannelTemplate = &messagingv1.ChannelTemplateSpec{
+			TypeMeta: typeMeta,
+		}
+	}
+}
+
+func WithBackingChannelFailed(reason, msg string) ChannelOption {
+	return func(c *eventingv1.Channel) {
+		c.Status.MarkBackingChannelFailed(reason, msg)
+	}
+}
+
+func WithBackingChannelUnknown(reason, msg string) ChannelOption {
+	return func(c *eventingv1.Channel) {
+		c.Status.MarkBackingChannelUnknown(reason, msg)
+	}
+}
+
+func WithBackingChannelReady(c *eventingv1.Channel) {
+	c.Status.MarkBackingChannelReady()
+}
+
+func WithBackingChannelObjRef(objRef *duckv1.KReference) ChannelOption {
+	return func(c *eventingv1.Channel) {
+		c.Status.Channel = objRef
+	}
+}
+
+func WithChannelNoAddress() ChannelOption {
+	return func(c *eventingv1.Channel) {
+		c.Status.SetAddress(nil)
+	}
+}
+
+func WithChannelAddress(hostname string) ChannelOption {
+	return func(c *eventingv1.Channel) {
+		c.Status.SetAddress(&duckv1.Addressable{URL: apis.HTTP(hostname)})
+	}
+}
+
+func WithChannelReadySubscriber(uid string) ChannelOption {
+	return WithChannelReadySubscriberAndGeneration(uid, 0)
+}
+
+func WithChannelReadySubscriberAndGeneration(uid string, observedGeneration int64) ChannelOption {
+	return func(c *eventingv1.Channel) {
+		c.Status.Subscribers = append(c.Status.Subscribers, eventingduckv1.SubscriberStatus{
+			UID:                types.UID(uid),
+			ObservedGeneration: observedGeneration,
+			Ready:              v1.ConditionTrue,
+		})
+	}
+}
+
+func WithChannelSubscriberStatuses(subscriberStatuses []eventingduckv1.SubscriberStatus) ChannelOption {
+	return func(c *eventingv1.Channel) {
+		c.Status.Subscribers = subscriberStatuses
+	}
+}
diff --git a/vendor/knative.dev/eventing/pkg/reconciler/testing/v1/service.go b/vendor/knative.dev/eventing/pkg/reconciler/testing/v1/service.go
new file mode 100644
index 000000000..1eb8817d1
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/reconciler/testing/v1/service.go
@@ -0,0 +1,62 @@
+/*
+Copyright 2020 The Knative Authors
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+    http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package testing
+
+import (
+	corev1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// ServiceOption enables further configuration of a Service.
+type ServiceOption func(*corev1.Service)
+
+// NewService creates a Service with ServiceOptions
+func NewService(name, namespace string, so ...ServiceOption) *corev1.Service {
+	s := &corev1.Service{
+		ObjectMeta: metav1.ObjectMeta{
+			Name:      name,
+			Namespace: namespace,
+		},
+		Spec: corev1.ServiceSpec{},
+	}
+	for _, opt := range so {
+		opt(s)
+	}
+	return s
+}
+
+func WithServiceOwnerReferences(ownerReferences []metav1.OwnerReference) ServiceOption {
+	return func(s *corev1.Service) {
+		s.OwnerReferences = ownerReferences
+	}
+}
+
+func WithServiceLabels(labels map[string]string) ServiceOption {
+	return func(s *corev1.Service) {
+		s.ObjectMeta.Labels = labels
+		s.Spec.Selector = labels
+	}
+}
+
+func WithServicePorts(ports []corev1.ServicePort) ServiceOption {
+	return func(s *corev1.Service) {
+		s.Spec.Ports = ports
+	}
+}
+
+func WithServiceAnnotations(annotations map[string]string) ServiceOption {
+	return func(s *corev1.Service) {
+		s.ObjectMeta.Annotations = annotations
+	}
+}
diff --git a/vendor/knative.dev/eventing/pkg/reconciler/testing/v1/subscription.go b/vendor/knative.dev/eventing/pkg/reconciler/testing/v1/subscription.go
new file mode 100644
index 000000000..d3f4415e2
--- /dev/null
+++ b/vendor/knative.dev/eventing/pkg/reconciler/testing/v1/subscription.go
@@ -0,0 +1,233 @@
+/*
+Copyright 2020 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package testing
+
+import (
+	"context"
+	"errors"
+	"time"
+
+	"k8s.io/apimachinery/pkg/types"
+
+	corev1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+
+	eventingduckv1 "knative.dev/eventing/pkg/apis/duck/v1"
+	eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
+	v1 "knative.dev/eventing/pkg/apis/messaging/v1"
+	"knative.dev/pkg/apis"
+	duckv1 "knative.dev/pkg/apis/duck/v1"
+)
+
+// SubscriptionOption enables further configuration of a Subscription.
+type SubscriptionOption func(*v1.Subscription)
+
+// NewSubscription creates a Subscription with SubscriptionOptions
+func NewSubscription(name, namespace string, so ...SubscriptionOption) *v1.Subscription {
+	s := &v1.Subscription{
+		ObjectMeta: metav1.ObjectMeta{
+			Name:      name,
+			Namespace: namespace,
+		},
+	}
+	for _, opt := range so {
+		opt(s)
+	}
+	s.SetDefaults(context.Background())
+	return s
+}
+
+// NewSubscriptionWithoutNamespace creates a Subscription with SubscriptionOptions but without a specific namespace
+func NewSubscriptionWithoutNamespace(name string, so ...SubscriptionOption) *v1.Subscription {
+	s := &v1.Subscription{
+		ObjectMeta: metav1.ObjectMeta{
+			Name: name,
+		},
+	}
+	for _, opt := range so {
+		opt(s)
+	}
+	s.SetDefaults(context.Background())
+	return s
+}
+
+func WithSubscriptionUID(uid types.UID) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		s.UID = uid
+	}
+}
+
+func WithSubscriptionGeneration(gen int64) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		s.Generation = gen
+	}
+}
+
+func WithSubscriptionStatusObservedGeneration(gen int64) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		s.Status.ObservedGeneration = gen
+	}
+}
+
+func WithSubscriptionGenerateName(generateName string) SubscriptionOption {
+	return func(c *v1.Subscription) {
+		c.ObjectMeta.GenerateName = generateName
+	}
+}
+
+// WithInitSubscriptionConditions initializes the Subscriptions's conditions.
+func WithInitSubscriptionConditions(s *v1.Subscription) {
+	s.Status.InitializeConditions()
+}
+
+func WithSubscriptionReady(s *v1.Subscription) {
+	s.Status = *eventingv1.TestHelper.ReadySubscriptionStatus()
+}
+
+// TODO: this can be a runtime object
+func WithSubscriptionDeleted(s *v1.Subscription) {
+	t := metav1.NewTime(time.Unix(1e9, 0))
+	s.ObjectMeta.SetDeletionTimestamp(&t)
+}
+
+func WithSubscriptionOwnerReferences(ownerReferences []metav1.OwnerReference) SubscriptionOption {
+	return func(c *v1.Subscription) {
+		c.ObjectMeta.OwnerReferences = ownerReferences
+	}
+}
+
+func WithSubscriptionLabels(labels map[string]string) SubscriptionOption {
+	return func(c *v1.Subscription) {
+		c.ObjectMeta.Labels = labels
+	}
+}
+
+func WithSubscriptionChannel(gvk metav1.GroupVersionKind, name string) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		s.Spec.Channel = corev1.ObjectReference{
+			APIVersion: apiVersion(gvk),
+			Kind:       gvk.Kind,
+			Name:       name,
+		}
+	}
+}
+
+func WithSubscriptionSubscriberRef(gvk metav1.GroupVersionKind, name, namespace string) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		s.Spec.Subscriber = &duckv1.Destination{
+			Ref: &duckv1.KReference{
+				APIVersion: apiVersion(gvk),
+				Kind:       gvk.Kind,
+				Name:       name,
+				Namespace:  namespace,
+			},
+		}
+	}
+}
+
+func WithSubscriptionDeliveryRef(gvk metav1.GroupVersionKind, name, namespace string) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		s.Spec.Delivery = &eventingduckv1.DeliverySpec{
+			DeadLetterSink: &duckv1.Destination{
+				Ref: &duckv1.KReference{
+					APIVersion: apiVersion(gvk),
+					Kind:       gvk.Kind,
+					Name:       name,
+					Namespace:  namespace,
+				},
+			},
+		}
+	}
+}
+
+func WithSubscriptionPhysicalSubscriptionSubscriber(uri *apis.URL) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		if uri == nil {
+			panic(errors.New("nil URI"))
+		}
+		s.Status.PhysicalSubscription.SubscriberURI = uri
+	}
+}
+
+func WithSubscriptionPhysicalSubscriptionReply(uri *apis.URL) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		if uri == nil {
+			panic(errors.New("nil URI"))
+		}
+		s.Status.PhysicalSubscription.ReplyURI = uri
+	}
+}
+
+func WithSubscriptionDeadLetterSinkURI(uri *apis.URL) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		if uri == nil {
+			panic(errors.New("nil URI"))
+		}
+		s.Status.PhysicalSubscription.DeadLetterSinkURI = uri
+	}
+}
+
+func WithSubscriptionFinalizers(finalizers ...string) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		s.Finalizers = finalizers
+	}
+}
+
+func MarkSubscriptionReady(s *v1.Subscription) {
+	s.Status.MarkChannelReady()
+	s.Status.MarkReferencesResolved()
+	s.Status.MarkAddedToChannel()
+}
+
+func MarkAddedToChannel(s *v1.Subscription) {
+	s.Status.MarkAddedToChannel()
+}
+
+func MarkNotAddedToChannel(reason, msg string) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		s.Status.MarkNotAddedToChannel(reason, msg)
+	}
+}
+
+func MarkReferencesResolved(s *v1.Subscription) {
+	s.Status.MarkReferencesResolved()
+}
+
+func WithSubscriptionReferencesNotResolved(reason, msg string) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		s.Status.MarkReferencesNotResolved(reason, msg)
+	}
+}
+
+func WithSubscriptionReferencesResolvedUnknown(reason, msg string) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		s.Status.MarkReferencesResolvedUnknown(reason, msg)
+	}
+}
+
+func WithSubscriptionReply(gvk metav1.GroupVersionKind, name, namespace string) SubscriptionOption {
+	return func(s *v1.Subscription) {
+		s.Spec.Reply = &duckv1.Destination{
+			Ref: &duckv1.KReference{
+				APIVersion: apiVersion(gvk),
+				Kind:       gvk.Kind,
+				Name:       name,
+				Namespace:  namespace,
+			},
+		}
+	}
+}
diff --git a/vendor/knative.dev/eventing/test/conformance/helpers/broker_data_plane_test_helper.go b/vendor/knative.dev/eventing/test/conformance/helpers/broker_data_plane_test_helper.go
index ad5dfd472..c98d0eb62 100644
--- a/vendor/knative.dev/eventing/test/conformance/helpers/broker_data_plane_test_helper.go
+++ b/vendor/knative.dev/eventing/test/conformance/helpers/broker_data_plane_test_helper.go
@@ -53,6 +53,15 @@ func BrokerDataPlaneSetupHelper(client *testlib.Client, brokerName, brokerNamesp
 	return broker
 }
 
+func BrokerDataPlaneNamespaceSetupOption(namespace string) testlib.SetupClientOption {
+	return func(client *testlib.Client) {
+		if namespace != "" {
+			client.Kube.Kube.CoreV1().Namespaces().Delete(client.Namespace, nil)
+			client.Namespace = namespace
+		}
+	}
+}
+
 //At ingress
 //Supports CE 0.3 or CE 1.0 via HTTP
 //Supports structured or Binary mode
@@ -210,8 +219,31 @@ func BrokerV1Beta1ConsumerDataPlaneTestHelper(
 	secondTriggerName := "second-trigger"
 	loggerName := "logger-pod"
 	secondLoggerName := "second-logger-pod"
+	transformerName := "transformer-pod"
+	replySource := "origin-for-reply"
+	eventID := "consumer-broker-tests"
+	baseSource := "consumer-test-sender"
 	eventTracker, _ := recordevents.StartEventRecordOrFail(client, loggerName)
 	secondTracker, _ := recordevents.StartEventRecordOrFail(client, secondLoggerName)
+
+	baseEvent := ce.NewEvent()
+	baseEvent.SetID(eventID)
+	baseEvent.SetType(testlib.DefaultEventType)
+	baseEvent.SetSource(baseSource)
+	baseEvent.SetSpecVersion("1.0")
+	body := fmt.Sprintf(`{"msg":%q}`, eventID)
+	if err := baseEvent.SetData(ce.ApplicationJSON, []byte(body)); err != nil {
+		t.Fatalf("Cannot set the payload of the baseEvent: %s", err.Error())
+	}
+
+	transformMsg := []byte(`{"msg":"Transformed!"}`)
+	transformPod := resources.EventTransformationPod(
+		transformerName,
+		"reply-check-type",
+		"reply-check-source",
+		transformMsg,
+	)
+	client.CreatePodOrFail(transformPod, testlib.WithService(transformerName))
 	client.WaitForAllTestResourcesReadyOrFail()
 
 	trigger := client.CreateTriggerOrFailV1Beta1(
@@ -229,17 +261,19 @@ func BrokerV1Beta1ConsumerDataPlaneTestHelper(
 		resources.WithSubscriberServiceRefForTriggerV1Beta1(secondLoggerName),
 	)
 	client.WaitForResourceReadyOrFail(secondTrigger.Name, testlib.TriggerTypeMeta)
-	eventID := "consumer-broker-tests"
-	baseSource := "consumer-test-sender"
-	baseEvent := ce.NewEvent()
-	baseEvent.SetID(eventID)
-	baseEvent.SetType(testlib.DefaultEventType)
-	baseEvent.SetSource(baseSource)
-	baseEvent.SetSpecVersion("1.0")
-	body := fmt.Sprintf(`{"msg":%q}`, eventID)
-	if err := baseEvent.SetData(ce.ApplicationJSON, []byte(body)); err != nil {
-		t.Fatalf("Cannot set the payload of the baseEvent: %s", err.Error())
-	}
+
+	transformTrigger := client.CreateTriggerOrFailV1Beta1(
+		"transform-trigger",
+		resources.WithBrokerV1Beta1(broker.Name),
+		resources.WithAttributesTriggerFilterV1Beta1(replySource, baseEvent.Type(), nil),
+		resources.WithSubscriberServiceRefForTriggerV1Beta1(transformerName),
+	)
+	replyTrigger := client.CreateTriggerOrFailV1Beta1(
+		"reply-trigger",
+		resources.WithBrokerV1Beta1(broker.Name),
+		resources.WithAttributesTriggerFilterV1Beta1("reply-check-source", "reply-check-type", nil),
+		resources.WithSubscriberServiceRefForTriggerV1Beta1(loggerName),
+	)
 
 	t.Run("No upgrade of version", func(t *testing.T) {
 		event := baseEvent
@@ -313,36 +347,18 @@ func BrokerV1Beta1ConsumerDataPlaneTestHelper(
 
 	t.Run("Replies are accepted and delivered", func(t *testing.T) {
 		event := baseEvent
-		source := "origin-for-reply"
-		event.SetSource(source)
-		msg := []byte(`{"msg":"Transformed!"}`)
-		transformPod := resources.EventTransformationPod(
-			"tranformer-pod",
-			"reply-check-type",
-			"reply-check-source",
-			msg,
-		)
-		client.CreatePodOrFail(transformPod, testlib.WithService("transformer-pod"))
-		transformTrigger := client.CreateTriggerOrFailV1Beta1(
-			"transform-trigger",
-			resources.WithBrokerV1Beta1(broker.Name),
-			resources.WithAttributesTriggerFilterV1Beta1(source, baseEvent.Type(), nil),
-			resources.WithSubscriberServiceRefForTriggerV1Beta1("transformer-pod"),
-		)
+
+		event.SetSource(replySource)
+		client.WaitForServiceEndpointsOrFail(transformerName, 1)
+
 		client.WaitForResourceReadyOrFail(transformTrigger.Name, testlib.TriggerTypeMeta)
 
-		replyTrigger := client.CreateTriggerOrFailV1Beta1(
-			"reply-trigger",
-			resources.WithBrokerV1Beta1(broker.Name),
-			resources.WithAttributesTriggerFilterV1Beta1("reply-check-source", "reply-check-type", nil),
-			resources.WithSubscriberServiceRefForTriggerV1Beta1(loggerName),
-		)
 		client.WaitForResourceReadyOrFail(replyTrigger.Name, testlib.TriggerTypeMeta)
-		client.SendEventToAddressable(source+"-sender", broker.Name, testlib.BrokerTypeMeta, event)
+		client.SendEventToAddressable(replySource+"-sender", broker.Name, testlib.BrokerTypeMeta, event)
 		transformedEventMatcher := recordevents.MatchEvent(
 			cetest.HasSource("reply-check-source"),
 			cetest.HasType("reply-check-type"),
-			cetest.HasData(msg),
+			cetest.HasData(transformMsg),
 		)
 		eventTracker.AssertAtLeast(2, transformedEventMatcher)
 	})
diff --git a/vendor/knative.dev/eventing/test/conformance/helpers/channel.go b/vendor/knative.dev/eventing/test/conformance/helpers/channel.go
index 019d818aa..ec1166a86 100644
--- a/vendor/knative.dev/eventing/test/conformance/helpers/channel.go
+++ b/vendor/knative.dev/eventing/test/conformance/helpers/channel.go
@@ -23,6 +23,7 @@ import (
 	"knative.dev/eventing/test/lib/resources"
 
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	eventingduckv1 "knative.dev/eventing/pkg/apis/duck/v1"
 	eventingduckv1alpha1 "knative.dev/eventing/pkg/apis/duck/v1alpha1"
 	eventingduckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1"
 
@@ -60,6 +61,20 @@ func getChannelDuckTypeSupportVersion(channelName string, client *testlib.Client
 	return channelable.ObjectMeta.Annotations[messaging.SubscribableDuckVersionAnnotation], nil
 }
 
+func getChannelAsV1Channelable(channelName string, client *testlib.Client, channel metav1.TypeMeta) (*eventingduckv1.Channelable, error) {
+	metaResource := resources.NewMetaResource(channelName, client.Namespace, &channel)
+	obj, err := duck.GetGenericObject(client.Dynamic, metaResource, &eventingduckv1.Channelable{})
+	if err != nil {
+		return nil, errors.Wrapf(err, "Unable to get the channel as v1 Channel duck type: %q", channel)
+	}
+	channelable, ok := obj.(*eventingduckv1.Channelable)
+	if !ok {
+		return nil, errors.Errorf("Unable to cast channel %q to v1 duck type", channel)
+	}
+
+	return channelable, nil
+}
+
 func getChannelAsV1Beta1Channelable(channelName string, client *testlib.Client, channel metav1.TypeMeta) (*eventingduckv1beta1.Channelable, error) {
 	metaResource := resources.NewMetaResource(channelName, client.Namespace, &channel)
 	obj, err := duck.GetGenericObject(client.Dynamic, metaResource, &eventingduckv1beta1.Channelable{})
diff --git a/vendor/knative.dev/eventing/test/conformance/helpers/channel_status_subscriber_test_helper.go b/vendor/knative.dev/eventing/test/conformance/helpers/channel_status_subscriber_test_helper.go
index 125661a16..21f0bfa1c 100644
--- a/vendor/knative.dev/eventing/test/conformance/helpers/channel_status_subscriber_test_helper.go
+++ b/vendor/knative.dev/eventing/test/conformance/helpers/channel_status_subscriber_test_helper.go
@@ -19,6 +19,7 @@ package helpers
 import (
 	"testing"
 
+	duckv1 "knative.dev/eventing/pkg/apis/duck/v1"
 	duckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1"
 	eventingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1"
 	testlib "knative.dev/eventing/test/lib"
@@ -85,7 +86,7 @@ func channelHasRequiredSubscriberStatus(st *testing.T, client *testlib.Client, c
 		if channelable.Status.SubscribableStatus == nil || channelable.Status.SubscribableStatus.Subscribers == nil {
 			st.Fatalf("%q does not have status.subscribers", channel)
 		}
-		ss := findSubscriberStatus(channelable.Status.SubscribableStatus.Subscribers, subscription)
+		ss := findSubscriberStatusV1Beta1(channelable.Status.SubscribableStatus.Subscribers, subscription)
 		if ss == nil {
 			st.Fatalf("No subscription status found for channel %q and subscription %v", channel, subscription)
 		}
@@ -94,7 +95,7 @@ func channelHasRequiredSubscriberStatus(st *testing.T, client *testlib.Client, c
 		if ss.Ready != corev1.ConditionTrue {
 			st.Fatalf("Subscription not ready found for channel %q and subscription %v", channel, subscription)
 		}
-	} else if dtsv == "v1beta1" || dtsv == "v1" {
+	} else if dtsv == "v1beta1" {
 		channelable, err := getChannelAsV1Beta1Channelable(channelName, client, channel)
 		if err != nil {
 			st.Fatalf("Unable to get channel %q to v1beta1 duck type: %q", channel, err)
@@ -104,7 +105,26 @@ func channelHasRequiredSubscriberStatus(st *testing.T, client *testlib.Client, c
 		if channelable.Status.Subscribers == nil {
 			st.Fatalf("%q does not have status.subscribers", channel)
 		}
-		ss := findSubscriberStatus(channelable.Status.Subscribers, subscription)
+		ss := findSubscriberStatusV1Beta1(channelable.Status.Subscribers, subscription)
+		if ss == nil {
+			st.Fatalf("No subscription status found for channel %q and subscription %v", channel, subscription)
+		}
+
+		// SPEC: The ready field of the subscriber identified by its uid MUST be set to True when the subscription is ready to be processed.
+		if ss.Ready != corev1.ConditionTrue {
+			st.Fatalf("Subscription not ready found for channel %q and subscription %v", channel, subscription)
+		}
+	} else if dtsv == "v1" {
+		channelable, err := getChannelAsV1Channelable(channelName, client, channel)
+		if err != nil {
+			st.Fatalf("Unable to get channel %q to v1 duck type: %q", channel, err)
+		}
+
+		// SPEC: Each subscription to a channel is added to the channel status.subscribers automatically.
+		if channelable.Status.Subscribers == nil {
+			st.Fatalf("%q does not have status.subscribers", channel)
+		}
+		ss := findSubscriberStatusV1(channelable.Status.Subscribers, subscription)
 		if ss == nil {
 			st.Fatalf("No subscription status found for channel %q and subscription %v", channel, subscription)
 		}
@@ -118,7 +138,16 @@ func channelHasRequiredSubscriberStatus(st *testing.T, client *testlib.Client, c
 	}
 }
 
-func findSubscriberStatus(statusArr []duckv1beta1.SubscriberStatus, subscription *eventingv1beta1.Subscription) *duckv1beta1.SubscriberStatus {
+func findSubscriberStatusV1Beta1(statusArr []duckv1beta1.SubscriberStatus, subscription *eventingv1beta1.Subscription) *duckv1beta1.SubscriberStatus {
+	for _, v := range statusArr {
+		if v.UID == subscription.UID {
+			return &v
+		}
+	}
+	return nil
+}
+
+func findSubscriberStatusV1(statusArr []duckv1.SubscriberStatus, subscription *eventingv1beta1.Subscription) *duckv1.SubscriberStatus {
 	for _, v := range statusArr {
 		if v.UID == subscription.UID {
 			return &v
diff --git a/vendor/knative.dev/eventing/test/lib/duck/resource_getters.go b/vendor/knative.dev/eventing/test/lib/duck/resource_getters.go
index 45e621f72..78f5c295e 100644
--- a/vendor/knative.dev/eventing/test/lib/duck/resource_getters.go
+++ b/vendor/knative.dev/eventing/test/lib/duck/resource_getters.go
@@ -19,16 +19,40 @@ limitations under the License.
 package duck
 
 import (
+	"fmt"
+	"strings"
+
 	"k8s.io/apimachinery/pkg/api/meta"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 	"k8s.io/apimachinery/pkg/runtime"
 	"k8s.io/client-go/dynamic"
+	"k8s.io/client-go/util/retry"
 	"knative.dev/pkg/apis"
 	"knative.dev/pkg/apis/duck"
 
 	"knative.dev/eventing/test/lib/resources"
 )
 
+// This is a workaround for https://github.com/knative/pkg/issues/1509
+// Because tests currently fail immediately on any creation failure, this
+// is problematic. On the reconcilers it's not an issue because they recover,
+// but tests need this retry.
+//
+// https://github.com/knative/eventing/issues/3681
+func isWebhookError(err error) bool {
+	return strings.Contains(err.Error(), "eventing-webhook.knative-eventing")
+}
+
+func RetryWebhookErrors(updater func(int) error) error {
+	attempts := 0
+	return retry.OnError(retry.DefaultRetry, isWebhookError, func() error {
+		err := updater(attempts)
+		attempts++
+		return err
+	})
+}
+
 // GetGenericObject returns a generic object representing a Kubernetes resource.
 // Callers can cast this returned object to other objects that implement the corresponding duck-type.
 func GetGenericObject(
@@ -38,7 +62,16 @@ func GetGenericObject(
 ) (runtime.Object, error) {
 	// get the resource's namespace and gvr
 	gvr, _ := meta.UnsafeGuessKindToResource(obj.GroupVersionKind())
-	u, err := dynamicClient.Resource(gvr).Namespace(obj.Namespace).Get(obj.Name, metav1.GetOptions{})
+	var u *unstructured.Unstructured
+	err := RetryWebhookErrors(func(attempts int) (err error) {
+		var e error
+		u, e = dynamicClient.Resource(gvr).Namespace(obj.Namespace).Get(obj.Name, metav1.GetOptions{})
+		if e != nil {
+			// TODO: Plumb some sort of logging here
+			fmt.Printf("Failed to get %s/%s: %v", obj.Namespace, obj.Name, e)
+		}
+		return e
+	})
 
 	if err != nil {
 		return nil, err
diff --git a/vendor/knative.dev/pkg/test/logging/error.go b/vendor/knative.dev/pkg/test/logging/error.go
index d3caea91c..e34916075 100644
--- a/vendor/knative.dev/pkg/test/logging/error.go
+++ b/vendor/knative.dev/pkg/test/logging/error.go
@@ -50,15 +50,14 @@ func keysAndValuesToSpewedMap(args ...interface{}) map[string]string {
 	return m
 }
 
-// Implement `error` interface
+// Error implements `error` interface
 func (e structuredError) Error() string {
 	// TODO(coryrc): accept zap.Field entries?
 	if e.print {
 		// %v for fmt.Sprintf does print keys sorted
 		return fmt.Sprintf("Error: %s\nContext:\n%v", e.msg, keysAndValuesToSpewedMap(e.keysAndValues...))
-	} else {
-		return e.msg
 	}
+	return e.msg
 }
 
 // GetValues gives you the structured key values in a plist
diff --git a/vendor/knative.dev/pkg/test/logging/tlogger.go b/vendor/knative.dev/pkg/test/logging/tlogger.go
index e89e2294a..c497d7384 100644
--- a/vendor/knative.dev/pkg/test/logging/tlogger.go
+++ b/vendor/knative.dev/pkg/test/logging/tlogger.go
@@ -163,22 +163,21 @@ func (o *TLogger) interfacesToFields(things ...interface{}) []interface{} {
 func (o *TLogger) errorWithRuntimeCheck(stringThenKeysAndValues ...interface{}) (error, string, []interface{}) {
 	if len(stringThenKeysAndValues) == 0 {
 		return nil, "", nil
-	} else {
-		s, isString := stringThenKeysAndValues[0].(string)
-		e, isError := stringThenKeysAndValues[0].(error)
-		if isString {
-			// Desired case (hopefully)
-			remainder := stringThenKeysAndValues[1:]
-			if !validateKeysAndValues(remainder...) {
-				remainder = o.interfacesToFields(remainder...)
-			}
-			return nil, s, remainder
-		} else if isError && len(stringThenKeysAndValues) == 1 {
-			return e, "", nil
-		} else {
-			return nil, "unstructured error", o.interfacesToFields(stringThenKeysAndValues...)
+	}
+	s, isString := stringThenKeysAndValues[0].(string)
+	if isString {
+		// Desired case (hopefully)
+		remainder := stringThenKeysAndValues[1:]
+		if !validateKeysAndValues(remainder...) {
+			remainder = o.interfacesToFields(remainder...)
 		}
+		return nil, s, remainder
+	}
+	e, isError := stringThenKeysAndValues[0].(error)
+	if isError && len(stringThenKeysAndValues) == 1 {
+		return e, "", nil
 	}
+	return nil, "unstructured error", o.interfacesToFields(stringThenKeysAndValues...)
 }
 
 // Cleanup registers a cleanup callback.
diff --git a/vendor/knative.dev/pkg/test/monitoring/monitoring.go b/vendor/knative.dev/pkg/test/monitoring/monitoring.go
index 2dbaf958c..2e618f247 100644
--- a/vendor/knative.dev/pkg/test/monitoring/monitoring.go
+++ b/vendor/knative.dev/pkg/test/monitoring/monitoring.go
@@ -22,6 +22,7 @@ import (
 	"os"
 	"os/exec"
 	"strings"
+	"time"
 
 	v1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -55,7 +56,22 @@ func GetPods(kubeClientset *kubernetes.Clientset, app, namespace string) (*v1.Po
 // Cleanup will clean the background process used for port forwarding
 func Cleanup(pid int) error {
 	ps := os.Process{Pid: pid}
-	return ps.Kill()
+	if err := ps.Kill(); err != nil {
+		return err
+	}
+
+	errCh := make(chan error)
+	go func() {
+		_, err := ps.Wait()
+		errCh <- err
+	}()
+
+	select {
+	case err := <-errCh:
+		return err
+	case <-time.After(30 * time.Second):
+		return fmt.Errorf("timed out waiting for process %d to exit", pid)
+	}
 }
 
 // PortForward sets up local port forward to the pod specified by the "app" label in the given namespace
diff --git a/vendor/knative.dev/test-infra/scripts/README.md b/vendor/knative.dev/test-infra/scripts/README.md
index 32e17ac1f..6fc264849 100644
--- a/vendor/knative.dev/test-infra/scripts/README.md
+++ b/vendor/knative.dev/test-infra/scripts/README.md
@@ -113,30 +113,33 @@ This is a helper script for Knative E2E test scripts. To use it:
 1. [optional] Customize the test cluster. Set the following environment
    variables if the default values don't fit your needs:
 
-   - `E2E_CLUSTER_REGION`: Cluster region, defaults to `us-central1`.
-   - `E2E_CLUSTER_BACKUP_REGIONS`: Space-separated list of regions to retry test
-     cluster creation in case of stockout. Defaults to `us-west1 us-east1`.
-   - `E2E_CLUSTER_ZONE`: Cluster zone (e.g., `a`), defaults to none (i.e. use a
-     regional cluster).
-   - `E2E_CLUSTER_BACKUP_ZONES`: Space-separated list of zones to retry test
+   - `E2E_GCP_PROJECT_ID`: GCP project ID for creating the clusters, defaults to
+     none.
+   - `E2E_GKE_CLUSTER_REGION`: Cluster region, defaults to `us-central1`.
+   - `E2E_GKE_CLUSTER_BACKUP_REGIONS`: Space-separated list of regions to retry
+     test cluster creation in case of stockout. Defaults to `us-west1 us-east1`.
+   - `E2E_GKE_CLUSTER_ZONE`: Cluster zone (e.g., `a`), defaults to none (i.e.
+     use a regional cluster).
+   - `E2E_GKE_CLUSTER_BACKUP_ZONES`: Space-separated list of zones to retry test
      cluster creation in case of stockout. If defined,
-     `E2E_CLUSTER_BACKUP_REGIONS` will be ignored thus it defaults to none.
-   - `E2E_CLUSTER_MACHINE`: Cluster node machine type, defaults to
+     `E2E_GKE_CLUSTER_BACKUP_REGIONS` will be ignored thus it defaults to none.
+   - `E2E_GKE_CLUSTER_MACHINE`: Cluster node machine type, defaults to
      `e2-standard-4}`.
    - `E2E_MIN_CLUSTER_NODES`: Minimum number of nodes in the cluster when
      autoscaling, defaults to 1.
    - `E2E_MAX_CLUSTER_NODES`: Maximum number of nodes in the cluster when
      autoscaling, defaults to 3.
+   - `E2E_GKE_SCOPES`: Scopes for the GKE node instances, defaults to
+     `cloud-platform`.
+   - `E2E_CLUSTER_VERSION`: Version for the cluster, defaults to `latest`.
 
 1. Source the script.
 
 1. [optional] Write the `knative_setup()` function, which will set up your
-   system under test (e.g., Knative Serving). This function won't be called if
-   you use the `--skip-knative-setup` flag.
+   system under test (e.g., Knative Serving).
 
 1. [optional] Write the `knative_teardown()` function, which will tear down your
-   system under test (e.g., Knative Serving). This function won't be called if
-   you use the `--skip-knative-setup` flag.
+   system under test (e.g., Knative Serving).
 
 1. [optional] Write the `test_setup()` function, which will set up the test
    resources.
@@ -171,7 +174,7 @@ This is a helper script for Knative E2E test scripts. To use it:
 **Notes:**
 
 1. Calling your script without arguments will create a new cluster in the GCP
-   project `$PROJECT_ID` and run the tests against it.
+   project `$E2E_GCP_PROJECT_ID` and run the tests against it.
 
 1. Calling your script with `--run-tests` and the variable `KO_DOCKER_REPO` set
    will immediately start the tests against the cluster currently configured for
@@ -183,10 +186,6 @@ This is a helper script for Knative E2E test scripts. To use it:
 1. By default Istio is installed on the cluster via Addon, use
    `--skip-istio-addon` if you choose not to have it preinstalled.
 
-1. You can force running the tests against a specific GKE cluster version by
-   using the `--cluster-version` flag and passing a full version as the flag
-   value.
-
 ### Sample end-to-end test script
 
 This script will test that the latest Knative Serving nightly release works. It
diff --git a/vendor/knative.dev/test-infra/scripts/e2e-tests.sh b/vendor/knative.dev/test-infra/scripts/e2e-tests.sh
index a788b6827..e644a5c33 100644
--- a/vendor/knative.dev/test-infra/scripts/e2e-tests.sh
+++ b/vendor/knative.dev/test-infra/scripts/e2e-tests.sh
@@ -17,50 +17,9 @@
 # This is a helper script for Knative E2E test scripts.
 # See README.md for instructions on how to use it.
 
-source $(dirname "${BASH_SOURCE[0]}")/library.sh
+source $(dirname "${BASH_SOURCE[0]}")/infra-library.sh
 
-# Build a resource name based on $E2E_BASE_NAME, a suffix and $BUILD_NUMBER.
-# Restricts the name length to 40 chars (the limit for resource names in GCP).
-# Name will have the form $E2E_BASE_NAME-<PREFIX>$BUILD_NUMBER.
-# Parameters: $1 - name suffix
-function build_resource_name() {
-  local prefix=${E2E_BASE_NAME}-$1
-  local suffix=${BUILD_NUMBER}
-  # Restrict suffix length to 20 chars
-  if [[ -n "${suffix}" ]]; then
-    suffix=${suffix:${#suffix}<20?0:-20}
-  fi
-  local name="${prefix:0:20}${suffix}"
-  # Ensure name doesn't end with "-"
-  echo "${name%-}"
-}
-
-# Test cluster parameters
-
-# Configurable parameters
-# export E2E_CLUSTER_REGION and E2E_CLUSTER_ZONE as they're used in the cluster setup subprocess
-export E2E_CLUSTER_REGION=${E2E_CLUSTER_REGION:-us-central1}
-# By default we use regional clusters.
-export E2E_CLUSTER_ZONE=${E2E_CLUSTER_ZONE:-}
-
-# Default backup regions in case of stockouts; by default we don't fall back to a different zone in the same region
-readonly E2E_CLUSTER_BACKUP_REGIONS=${E2E_CLUSTER_BACKUP_REGIONS:-us-west1 us-east1}
-readonly E2E_CLUSTER_BACKUP_ZONES=${E2E_CLUSTER_BACKUP_ZONES:-}
-
-readonly E2E_GKE_ENVIRONMENT=${E2E_GKE_ENVIRONMENT:-prod}
-readonly E2E_GKE_COMMAND_GROUP=${E2E_GKE_COMMAND_GROUP:-beta}
-
-# Each knative repository may have a different cluster size requirement here,
-# so we allow calling code to set these parameters.  If they are not set we
-# use some sane defaults.
-readonly E2E_MIN_CLUSTER_NODES=${E2E_MIN_CLUSTER_NODES:-1}
-readonly E2E_MAX_CLUSTER_NODES=${E2E_MAX_CLUSTER_NODES:-3}
-readonly E2E_CLUSTER_MACHINE=${E2E_CLUSTER_MACHINE:-e2-standard-4}
-
-readonly E2E_BASE_NAME="k${REPO_NAME}"
-readonly E2E_CLUSTER_NAME=$(build_resource_name e2e-cls)
-readonly E2E_NETWORK_NAME=$(build_resource_name e2e-net)
-readonly TEST_RESULT_FILE=/tmp/${E2E_BASE_NAME}-e2e-result
+readonly TEST_RESULT_FILE=/tmp/${REPO_NAME}-e2e-result
 
 # Flag whether test is using a boskos GCP project
 IS_BOSKOS=0
@@ -71,7 +30,7 @@ function teardown_test_resources() {
   (( IS_BOSKOS )) && return
   header "Tearing down test environment"
   function_exists test_teardown && test_teardown
-  (( ! SKIP_KNATIVE_SETUP )) && function_exists knative_teardown && knative_teardown
+  function_exists knative_teardown && knative_teardown
 }
 
 # Run the given E2E tests. Assume tests are tagged e2e, unless `-tags=XXX` is passed.
@@ -86,203 +45,6 @@ function go_test_e2e() {
   report_go_test -race -count=1 "${go_test_args[@]}"
 }
 
-# Dumps the k8s api server metrics. Spins up a proxy, waits a little bit and
-# dumps the metrics to ${ARTIFACTS}/k8s.metrics.txt
-function dump_metrics() {
-  header ">> Starting kube proxy"
-  kubectl proxy --port=8080 &
-  local proxy_pid=$!
-  sleep 5
-  header ">> Grabbing k8s metrics"
-  curl -s http://localhost:8080/metrics > "${ARTIFACTS}"/k8s.metrics.txt
-  # Clean up proxy so it doesn't interfere with job shutting down
-  kill $proxy_pid || true
-}
-
-# Dump info about the test cluster. If dump_extra_cluster_info() is defined, calls it too.
-# This is intended to be called when a test fails to provide debugging information.
-function dump_cluster_state() {
-  echo "***************************************"
-  echo "***         E2E TEST FAILED         ***"
-  echo "***    Start of information dump    ***"
-  echo "***************************************"
-
-  local output
-  output="${ARTIFACTS}/k8s.dump-$(basename "${E2E_SCRIPT}").txt"
-  echo ">>> The dump is located at ${output}"
-
-  for crd in $(kubectl api-resources --verbs=list -o name | sort); do
-    local count
-    count="$(kubectl get "$crd" --all-namespaces --no-headers 2>/dev/null | wc -l)"
-    echo ">>> ${crd} (${count} objects)"
-    if [[ "${count}" -gt "0" ]]; then
-      {
-        echo ">>> ${crd} (${count} objects)"
-
-        echo ">>> Listing"
-        kubectl get "${crd}" --all-namespaces
-
-        echo ">>> Details"
-        if [[ "${crd}" == "secrets" ]]; then
-          echo "Secrets are ignored for security reasons"
-        elif [[ "${crd}" == "events" ]]; then
-          echo "events are ignored as making a lot of noise"
-        else
-          kubectl get "${crd}" --all-namespaces -o yaml
-        fi
-      } >> "${output}"
-    fi
-  done
-
-  if function_exists dump_extra_cluster_state; then
-    echo ">>> Extra dump" >> "${output}"
-    dump_extra_cluster_state >> "${output}"
-  fi
-  echo "***************************************"
-  echo "***         E2E TEST FAILED         ***"
-  echo "***     End of information dump     ***"
-  echo "***************************************"
-}
-
-# On a Prow job, save some metadata about the test for Testgrid.
-function save_metadata() {
-  (( ! IS_PROW )) && return
-  local geo_key="Region"
-  local geo_value="${E2E_CLUSTER_REGION}"
-  if [[ -n "${E2E_CLUSTER_ZONE}" ]]; then
-    geo_key="Zone"
-    geo_value="${E2E_CLUSTER_REGION}-${E2E_CLUSTER_ZONE}"
-  fi
-  local cluster_version
-  cluster_version="$(gcloud container clusters list --project="${E2E_PROJECT_ID}" --format='value(currentMasterVersion)')"
-  run_kntest metadata set --key="E2E:${geo_key}" --value="${geo_value}"
-  run_kntest metadata set --key="E2E:Machine" --value="${E2E_CLUSTER_MACHINE}"
-  run_kntest metadata set --key="E2E:Version" --value="${cluster_version}"
-  run_kntest metadata set --key="E2E:MinNodes" --value="${E2E_MIN_CLUSTER_NODES}"
-  run_kntest metadata set --key="E2E:MaxNodes" --value="${E2E_MAX_CLUSTER_NODES}"
-}
-
-# Create a test cluster with kubetest and call the current script again.
-function create_test_cluster() {
-  # Fail fast during setup.
-  set -o errexit
-  set -o pipefail
-
-  if function_exists cluster_setup; then
-    cluster_setup || fail_test "cluster setup failed"
-  fi
-
-  echo "Cluster will have a minimum of ${E2E_MIN_CLUSTER_NODES} and a maximum of ${E2E_MAX_CLUSTER_NODES} nodes."
-  local CLUSTER_CREATION_ARGS=(
-    "gke"
-    "--create-command=${E2E_GKE_COMMAND_GROUP} container clusters create --quiet --enable-autoscaling
-      --min-nodes=${E2E_MIN_CLUSTER_NODES} --max-nodes=${E2E_MAX_CLUSTER_NODES}
-      --cluster-version=${E2E_CLUSTER_VERSION}
-      --scopes=cloud-platform --enable-basic-auth --no-issue-client-certificate
-      --no-enable-ip-alias --no-enable-autoupgrade
-      ${GKE_ADDONS} ${EXTRA_CLUSTER_CREATION_FLAGS[@]}"
-    "--environment=${E2E_GKE_ENVIRONMENT}"
-    "--cluster-name=${E2E_CLUSTER_NAME}"
-    "--num-nodes=${E2E_MIN_CLUSTER_NODES}"
-    "--machine-type=${E2E_CLUSTER_MACHINE}"
-    "--network=${E2E_NETWORK_NAME}"
-    --up
-  )
-  if (( ! IS_BOSKOS )); then
-    CLUSTER_CREATION_ARGS+=("--gcp-project=${GCP_PROJECT}")
-  fi
-  # SSH keys are not used, but kubetest checks for their existence.
-  # Touch them so if they don't exist, empty files are create to satisfy the check.
-  mkdir -p "$HOME"/.ssh
-  touch "$HOME"/.ssh/google_compute_engine.pub
-  touch "$HOME"/.ssh/google_compute_engine
-
-  local gcloud_project="${GCP_PROJECT}"
-  [[ -z "${gcloud_project}" ]] && gcloud_project="$(gcloud config get-value project)"
-  echo "gcloud project is ${gcloud_project}"
-  echo "gcloud user is $(gcloud config get-value core/account)"
-  (( IS_BOSKOS )) && echo "Using boskos for the test cluster"
-  [[ -n "${GCP_PROJECT}" ]] && echo "GCP project for test cluster is ${GCP_PROJECT}"
-  echo "Test script is ${E2E_SCRIPT}"
-  # Set arguments for this script again
-  local test_cmd_args="--run-tests"
-  (( SKIP_KNATIVE_SETUP )) && test_cmd_args+=" --skip-knative-setup"
-  [[ -n "${GCP_PROJECT}" ]] && test_cmd_args+=" --project ${GCP_PROJECT}"
-  [[ -n "${E2E_SCRIPT_CUSTOM_FLAGS[*]}" ]] && test_cmd_args+=" ${E2E_SCRIPT_CUSTOM_FLAGS[*]}"
-  local extra_flags=()
-  if (( IS_BOSKOS )); then
-    # Add arbitrary duration, wait for Boskos projects acquisition before error out
-    extra_flags+=("--boskos-acquire-timeout-seconds=1200")
-  elif (( ! SKIP_TEARDOWNS )); then
-    # Only let kubetest2 tear down the cluster if not using Boskos and teardowns are not expected to be skipped,
-    # it's done by Janitor if using Boskos
-    extra_flags+=("--down")
-  fi
-
-  # Create cluster and run the tests
-  create_test_cluster_with_retries "${E2E_SCRIPT} ${test_cmd_args}" \
-    "${CLUSTER_CREATION_ARGS[@]}" "${extra_flags[@]}" "${EXTRA_KUBETEST2_FLAGS[@]}"
-  local result="$?"
-  # Ignore any errors below, this is a best-effort cleanup and shouldn't affect the test result.
-  set +o errexit
-  function_exists cluster_teardown && cluster_teardown
-  echo "Artifacts were written to ${ARTIFACTS}"
-  echo "Test result code is ${result}"
-  exit "${result}"
-}
-
-# Retry backup regions/zones if cluster creations failed due to stockout.
-# Parameters: $1     - test command to run by the kubetest2 tester
-#             $2..$n - any other kubetest2 flags other than geo and cluster version flag.
-function create_test_cluster_with_retries() {
-  local tester_command
-  IFS=' ' read -r -a tester_command <<< "$1"
-  local kubetest2_flags=( "${@:2}" )
-  local cluster_creation_log=/tmp/${E2E_BASE_NAME}-cluster_creation-log
-  # zone_not_provided is a placeholder for e2e_cluster_zone to make for loop below work
-  local zone_not_provided="zone_not_provided"
-
-  local e2e_cluster_regions=(${E2E_CLUSTER_REGION})
-  local e2e_cluster_zones=(${E2E_CLUSTER_ZONE})
-
-  if [[ -n "${E2E_CLUSTER_BACKUP_ZONES}" ]]; then
-    e2e_cluster_zones+=(${E2E_CLUSTER_BACKUP_ZONES})
-  elif [[ -n "${E2E_CLUSTER_BACKUP_REGIONS}" ]]; then
-    e2e_cluster_regions+=(${E2E_CLUSTER_BACKUP_REGIONS})
-    e2e_cluster_zones=(${zone_not_provided})
-  else
-    echo "No backup region/zone set, cluster creation will fail in case of stockout"
-  fi
-
-  for e2e_cluster_region in "${e2e_cluster_regions[@]}"; do
-    for e2e_cluster_zone in "${e2e_cluster_zones[@]}"; do
-      E2E_CLUSTER_REGION=${e2e_cluster_region}
-      E2E_CLUSTER_ZONE=${e2e_cluster_zone}
-      [[ "${E2E_CLUSTER_ZONE}" == "${zone_not_provided}" ]] && E2E_CLUSTER_ZONE=""
-      local cluster_creation_zone="${E2E_CLUSTER_REGION}"
-      [[ -n "${E2E_CLUSTER_ZONE}" ]] && cluster_creation_zone="${E2E_CLUSTER_REGION}-${E2E_CLUSTER_ZONE}"
-
-      header "Creating test cluster ${E2E_CLUSTER_VERSION} in ${cluster_creation_zone}"
-      if run_go_tool k8s-sigs.io/kubetest2 \
-        kubetest2 "${kubetest2_flags[@]}" --region="${cluster_creation_zone}" \
-          --test=exec -- "${tester_command[@]}" 2>&1 \
-         | tee "${cluster_creation_log}"; then
-        return 0
-      fi
-      # Retry if cluster creation failed because of:
-      # - stockout (https://github.com/knative/test-infra/issues/592)
-      # - latest GKE not available in this region/zone yet (https://github.com/knative/test-infra/issues/694)
-      [[ -z "$(grep -Fo 'does not have enough resources available to fulfill' "${cluster_creation_log}")" \
-          && -z "$(grep -Fo 'ResponseError: code=400, message=No valid versions with the prefix' "${cluster_creation_log}")" \
-          && -z "$(grep -Po 'ResponseError: code=400, message=Master version "[0-9a-z\-\.]+" is unsupported' "${cluster_creation_log}")"  \
-          && -z "$(grep -Po 'only \d+ nodes out of \d+ have registered; this is likely due to Nodes failing to start correctly' "${cluster_creation_log}")" ]] \
-          && return 1
-    done
-  done
-  echo "No more region/zones to try, quitting"
-  return 1
-}
-
 # Setup the test cluster for running the tests.
 function setup_test_cluster() {
   # Fail fast during setup.
@@ -296,14 +58,11 @@ function setup_test_cluster() {
 
   # Set the actual project the test cluster resides in
   # It will be a project assigned by Boskos if test is running on Prow,
-  # otherwise will be ${GCP_PROJECT} set up by user.
+  # otherwise will be ${E2E_GCP_PROJECT_ID} set up by user.
   E2E_PROJECT_ID="$(gcloud config get-value project)"
   export E2E_PROJECT_ID
   readonly E2E_PROJECT_ID
 
-  # Save some metadata about cluster creation for using in prow and testgrid
-  save_metadata
-
   local k8s_user
   k8s_user=$(gcloud config get-value core/account)
   local k8s_cluster
@@ -315,9 +74,9 @@ function setup_test_cluster() {
   # If cluster admin role isn't set, this is a brand new cluster
   # Setup the admin role and also KO_DOCKER_REPO if it is a GKE cluster
   if [[ -z "$(kubectl get clusterrolebinding cluster-admin-binding 2> /dev/null)" && "${k8s_cluster}" =~ ^gke_.* ]]; then
-    acquire_cluster_admin_role "${k8s_user}" "${E2E_CLUSTER_NAME}" "${E2E_CLUSTER_REGION}" "${E2E_CLUSTER_ZONE}"
+    acquire_cluster_admin_role "${k8s_user}" "${E2E_CLUSTER_NAME}" "${E2E_GKE_CLUSTER_REGION}" "${E2E_GKE_CLUSTER_ZONE}"
     # Incorporate an element of randomness to ensure that each run properly publishes images.
-    export KO_DOCKER_REPO=gcr.io/${E2E_PROJECT_ID}/${E2E_BASE_NAME}-e2e-img/${RANDOM}
+    export KO_DOCKER_REPO=gcr.io/${E2E_PROJECT_ID}/${REPO_NAME}-e2e-img/${RANDOM}
   fi
 
   # Safety checks
@@ -327,8 +86,6 @@ function setup_test_cluster() {
   # Use default namespace for all subsequent kubectl commands in this context
   kubectl config set-context "${k8s_cluster}" --namespace=default
 
-  echo "- gcloud project is ${E2E_PROJECT_ID}"
-  echo "- gcloud user is ${k8s_user}"
   echo "- Cluster is ${k8s_cluster}"
   echo "- Docker is ${KO_DOCKER_REPO}"
 
@@ -341,9 +98,10 @@ function setup_test_cluster() {
   set +o errexit
   set +o pipefail
 
-  if (( ! SKIP_KNATIVE_SETUP )) && function_exists knative_setup; then
-    # Wait for Istio installation to complete, if necessary, before calling knative_setup.
-    (( ! SKIP_ISTIO_ADDON )) && (wait_until_batch_job_complete istio-system || return 1)
+  # Wait for Istio installation to complete, if necessary, before calling knative_setup.
+  # TODO(chizhg): is it really needed?
+  (( ! SKIP_ISTIO_ADDON )) && (wait_until_batch_job_complete istio-system || return 1)
+  if function_exists knative_setup; then
     knative_setup || fail_test "Knative setup failed"
   fi
   if function_exists test_setup; then
@@ -369,34 +127,30 @@ function fail_test() {
   exit 1
 }
 
-RUN_TESTS=0
-SKIP_KNATIVE_SETUP=0
-SKIP_ISTIO_ADDON=0
 SKIP_TEARDOWNS=0
-GCP_PROJECT=""
+SKIP_ISTIO_ADDON=0
 E2E_SCRIPT=""
-E2E_CLUSTER_VERSION="latest"
-GKE_ADDONS=""
-EXTRA_CLUSTER_CREATION_FLAGS=()
-EXTRA_KUBETEST2_FLAGS=()
-E2E_SCRIPT_CUSTOM_FLAGS=()
 
 # Parse flags and initialize the test cluster.
 function initialize() {
+  local run_tests=0
+  local extra_kubetest2_flags=()
+  local extra_cluster_creation_flags=()
   E2E_SCRIPT="$(get_canonical_path "$0")"
+  local e2e_script_command=( "${E2E_SCRIPT}" "--run-tests" )
 
   cd "${REPO_ROOT_DIR}"
   while [[ $# -ne 0 ]]; do
     local parameter=$1
     # Try parsing flag as a custom one.
     if function_exists parse_flags; then
-      parse_flags $@
+      parse_flags "$@"
       local skip=$?
       if [[ ${skip} -ne 0 ]]; then
         # Skip parsed flag (and possibly argument) and continue
         # Also save it to it's passed through to the test script
         for ((i=1;i<=skip;i++)); do
-          E2E_SCRIPT_CUSTOM_FLAGS+=("$1")
+          e2e_script_command+=("$1")
           shift
         done
         continue
@@ -404,52 +158,35 @@ function initialize() {
     fi
     # Try parsing flag as a standard one.
     case ${parameter} in
-      --run-tests) RUN_TESTS=1 ;;
-      --skip-knative-setup) SKIP_KNATIVE_SETUP=1 ;;
+      --run-tests) run_tests=1 ;;
       --skip-teardowns) SKIP_TEARDOWNS=1 ;;
+      # TODO(chizhg): remove this flag once the addons is defined as an env var.
       --skip-istio-addon) SKIP_ISTIO_ADDON=1 ;;
       *)
         [[ $# -ge 2 ]] || abort "missing parameter after $1"
         shift
         case ${parameter} in
-          --gcp-project) GCP_PROJECT=$1 ;;
-          --cluster-version) E2E_CLUSTER_VERSION=$1 ;;
-          --cluster-creation-flag) EXTRA_CLUSTER_CREATION_FLAGS+=("$1") ;;
-          --kubetest2-flag) EXTRA_KUBETEST2_FLAGS+=("$1") ;;
+          --kubetest2-flag) extra_kubetest2_flags+=("$1") ;;
+          --cluster-creation-flag) extra_cluster_creation_flags+=("$1") ;;
           *) abort "unknown option ${parameter}" ;;
         esac
     esac
     shift
   done
 
-  # Use PROJECT_ID if set, unless --gcp-project was used.
-  if [[ -n "${PROJECT_ID:-}" && -z "${GCP_PROJECT}" ]]; then
-    echo "\$PROJECT_ID is set to '${PROJECT_ID}', using it to run the tests"
-    GCP_PROJECT="${PROJECT_ID}"
-  fi
-  if (( ! IS_PROW )) && (( ! RUN_TESTS )) && [[ -z "${GCP_PROJECT}" ]]; then
-    abort "set \$PROJECT_ID or use --gcp-project to select the GCP project where the tests are run"
-  fi
-
-  (( IS_PROW )) && [[ -z "${GCP_PROJECT}" ]] && IS_BOSKOS=1
+  (( IS_PROW )) && [[ -z "${GCP_PROJECT_ID:-}" ]] && IS_BOSKOS=1
 
   if (( SKIP_ISTIO_ADDON )); then
-    GKE_ADDONS="--addons=NodeLocalDNS"
+    extra_cluster_creation_flags+=("--addons=NodeLocalDNS")
   else
-    GKE_ADDONS="--addons=Istio,NodeLocalDNS"
+    extra_cluster_creation_flags+=("--addons=Istio,NodeLocalDNS")
   fi
 
-  readonly RUN_TESTS
-  readonly GCP_PROJECT
   readonly IS_BOSKOS
-  readonly EXTRA_CLUSTER_CREATION_FLAGS
-  readonly EXTRA_KUBETEST2_FLAGS
-  readonly SKIP_KNATIVE_SETUP
   readonly SKIP_TEARDOWNS
-  readonly GKE_ADDONS
 
-  if (( ! RUN_TESTS )); then
-    create_test_cluster
+  if (( ! run_tests )); then
+    create_gke_test_cluster extra_kubetest2_flags extra_cluster_creation_flags e2e_script_command
   else
     setup_test_cluster
   fi
diff --git a/vendor/knative.dev/test-infra/scripts/infra-library.sh b/vendor/knative.dev/test-infra/scripts/infra-library.sh
new file mode 100644
index 000000000..bb702d3ca
--- /dev/null
+++ b/vendor/knative.dev/test-infra/scripts/infra-library.sh
@@ -0,0 +1,242 @@
+#!/usr/bin/env bash
+
+# Copyright 2020 The Knative Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This is a collection of functions for infra related setups, mainly
+# cluster provisioning. It doesn't do anything when called from command line.
+
+source $(dirname "${BASH_SOURCE[0]}")/library.sh
+
+# Test cluster parameters
+
+# Configurable parameters
+export E2E_GCP_PROJECT_ID=${E2E_GCP_PROJECT_ID:-}
+# export E2E_GKE_CLUSTER_REGION and E2E_GKE_CLUSTER_ZONE as they're used in the cluster setup subprocess
+export E2E_GKE_CLUSTER_REGION=${E2E_GKE_CLUSTER_REGION:-us-central1}
+# By default we use regional clusters.
+export E2E_GKE_CLUSTER_ZONE=${E2E_GKE_CLUSTER_ZONE:-}
+
+# Default backup regions in case of stockouts; by default we don't fall back to a different zone in the same region
+readonly E2E_GKE_CLUSTER_BACKUP_REGIONS=${E2E_GKE_CLUSTER_BACKUP_REGIONS:-us-west1 us-east1}
+readonly E2E_GKE_CLUSTER_BACKUP_ZONES=${E2E_GKE_CLUSTER_BACKUP_ZONES:-}
+
+readonly E2E_GKE_ENVIRONMENT=${E2E_GKE_ENVIRONMENT:-prod}
+readonly E2E_GKE_COMMAND_GROUP=${E2E_GKE_COMMAND_GROUP:-beta}
+readonly E2E_GKE_CLUSTER_MACHINE=${E2E_GKE_CLUSTER_MACHINE:-e2-standard-4}
+readonly E2E_GKE_SCOPES=${E2E_GKE_SCOPES:-cloud-platform}
+
+# Each knative repository may have a different cluster size requirement here,
+# so we allow calling code to set these parameters.  If they are not set we
+# use some sane defaults.
+readonly E2E_MIN_CLUSTER_NODES=${E2E_MIN_CLUSTER_NODES:-1}
+readonly E2E_MAX_CLUSTER_NODES=${E2E_MAX_CLUSTER_NODES:-3}
+readonly E2E_CLUSTER_VERSION=${E2E_CLUSTER_VERSION:-latest}
+
+readonly E2E_CLUSTER_NAME=$(build_resource_name e2e-cls)
+readonly E2E_GKE_NETWORK_NAME=$(build_resource_name e2e-net)
+
+# Dumps the k8s api server metrics. Spins up a proxy, waits a little bit and
+# dumps the metrics to ${ARTIFACTS}/k8s.metrics.txt
+function dump_metrics() {
+  header ">> Starting kube proxy"
+  kubectl proxy --port=8080 &
+  local proxy_pid=$!
+  sleep 5
+  header ">> Grabbing k8s metrics"
+  curl -s http://localhost:8080/metrics > "${ARTIFACTS}"/k8s.metrics.txt
+  # Clean up proxy so it doesn't interfere with job shutting down
+  kill $proxy_pid || true
+}
+
+# Dump info about the test cluster. If dump_extra_cluster_info() is defined, calls it too.
+# This is intended to be called when a test fails to provide debugging information.
+function dump_cluster_state() {
+  echo "***************************************"
+  echo "***         E2E TEST FAILED         ***"
+  echo "***    Start of information dump    ***"
+  echo "***************************************"
+
+  local output
+  output="${ARTIFACTS}/k8s.dump-$(basename "${E2E_SCRIPT}").txt"
+  echo ">>> The dump is located at ${output}"
+
+  for crd in $(kubectl api-resources --verbs=list -o name | sort); do
+    local count
+    count="$(kubectl get "$crd" --all-namespaces --no-headers 2>/dev/null | wc -l)"
+    echo ">>> ${crd} (${count} objects)"
+    if [[ "${count}" -gt "0" ]]; then
+      {
+        echo ">>> ${crd} (${count} objects)"
+
+        echo ">>> Listing"
+        kubectl get "${crd}" --all-namespaces
+
+        echo ">>> Details"
+        if [[ "${crd}" == "secrets" ]]; then
+          echo "Secrets are ignored for security reasons"
+        elif [[ "${crd}" == "events" ]]; then
+          echo "events are ignored as making a lot of noise"
+        else
+          kubectl get "${crd}" --all-namespaces -o yaml
+        fi
+      } >> "${output}"
+    fi
+  done
+
+  if function_exists dump_extra_cluster_state; then
+    echo ">>> Extra dump" >> "${output}"
+    dump_extra_cluster_state >> "${output}"
+  fi
+  echo "***************************************"
+  echo "***         E2E TEST FAILED         ***"
+  echo "***     End of information dump     ***"
+  echo "***************************************"
+}
+
+# On a Prow job, save some metadata about the test for Testgrid.
+function save_metadata() {
+  (( ! IS_PROW )) && return
+  local geo_key="Region"
+  local geo_value="${E2E_GKE_CLUSTER_REGION}"
+  if [[ -n "${E2E_GKE_CLUSTER_ZONE}" ]]; then
+    geo_key="Zone"
+    geo_value="${E2E_GKE_CLUSTER_REGION}-${E2E_GKE_CLUSTER_ZONE}"
+  fi
+  local cluster_version
+  cluster_version="$(kubectl version --short=true)"
+  run_kntest metadata set --key="E2E:${geo_key}" --value="${geo_value}"
+  run_kntest metadata set --key="E2E:Machine" --value="${E2E_GKE_CLUSTER_MACHINE}"
+  run_kntest metadata set --key="E2E:Version" --value="${cluster_version}"
+  run_kntest metadata set --key="E2E:MinNodes" --value="${E2E_MIN_CLUSTER_NODES}"
+  run_kntest metadata set --key="E2E:MaxNodes" --value="${E2E_MAX_CLUSTER_NODES}"
+}
+
+# Create a GKE test cluster with kubetest2 and call the current script again.
+# Parameters: $1 - extra kubetest2 flags
+#             $2 - extra cluster creation flags
+#             $3 - test command to run by the kubetest2 tester
+function create_gke_test_cluster() {
+  # Fail fast during setup.
+  set -o errexit
+  set -o pipefail
+  local -n _extra_kubetest2_flags=$1
+  local -n _extra_cluster_creation_flags=$2
+  local -n _tester_command=$3
+
+  if function_exists cluster_setup; then
+    cluster_setup || fail_test "cluster setup failed"
+  fi
+
+  echo "Cluster will have a minimum of ${E2E_MIN_CLUSTER_NODES} and a maximum of ${E2E_MAX_CLUSTER_NODES} nodes."
+  local _kubetest2_flags=(
+    "gke"
+    "--create-command=${E2E_GKE_COMMAND_GROUP} container clusters create --quiet --enable-autoscaling
+      --min-nodes=${E2E_MIN_CLUSTER_NODES} --max-nodes=${E2E_MAX_CLUSTER_NODES}
+      --cluster-version=${E2E_CLUSTER_VERSION}
+      --scopes=${E2E_GKE_SCOPES} --enable-basic-auth --no-issue-client-certificate
+      --no-enable-ip-alias --no-enable-autoupgrade
+      ${_extra_cluster_creation_flags[@]}"
+    "--environment=${E2E_GKE_ENVIRONMENT}"
+    "--cluster-name=${E2E_CLUSTER_NAME}"
+    "--num-nodes=${E2E_MIN_CLUSTER_NODES}"
+    "--machine-type=${E2E_GKE_CLUSTER_MACHINE}"
+    "--network=${E2E_GKE_NETWORK_NAME}"
+    "--ignore-gcp-ssh-key=true"
+    --up
+  )
+  _kubetest2_flags+=( "${_extra_kubetest2_flags[@]}" )
+  if (( ! IS_BOSKOS )); then
+    local gcloud_project="${E2E_GCP_PROJECT_ID}"
+    [[ -z "${gcloud_project}" ]] && gcloud_project="$(gcloud config get-value project)"
+    _kubetest2_flags+=("--project=${gcloud_project}")
+    echo "gcloud project is ${gcloud_project}"
+  else
+    echo "Using boskos for the test cluster"
+  fi
+
+  if (( IS_BOSKOS )); then
+    # Add arbitrary duration, wait for Boskos projects acquisition before error out
+    _kubetest2_flags+=("--boskos-acquire-timeout-seconds=1200")
+  elif (( ! SKIP_TEARDOWNS )); then
+    # Only let kubetest2 tear down the cluster if not using Boskos and teardowns are not expected to be skipped,
+    # it's done by Janitor if using Boskos
+    _kubetest2_flags+=("--down")
+  fi
+
+  # Create cluster and run the tests
+  create_gke_test_cluster_with_retries _kubetest2_flags _tester_command
+  local result="$?"
+  # Ignore any errors below, this is a best-effort cleanup and shouldn't affect the test result.
+  set +o errexit
+  set +o pipefail
+  function_exists cluster_teardown && cluster_teardown
+  echo "Artifacts were written to ${ARTIFACTS}"
+  echo "Test result code is ${result}"
+  exit "${result}"
+}
+
+# TODO(chizhg): move this to kubetest2 gke deployer.
+# Retry backup regions/zones if cluster creations failed due to stockout.
+# Parameters: $1 - kubetest2 flags other than geo flag
+#             $2 - test command to run by the kubetest2 tester
+function create_gke_test_cluster_with_retries() {
+  local -n kubetest2_flags=$1
+  local -n tester_command=$2
+  local cluster_creation_log=/tmp/${REPO_NAME}-cluster_creation-log
+  # zone_not_provided is a placeholder for e2e_cluster_zone to make for loop below work
+  local zone_not_provided="zone_not_provided"
+
+  local e2e_cluster_regions=("${E2E_GKE_CLUSTER_REGION}")
+  local e2e_cluster_zones=("${E2E_GKE_CLUSTER_ZONE}")
+
+  if [[ -n "${E2E_GKE_CLUSTER_BACKUP_ZONES}" ]]; then
+    e2e_cluster_zones+=("${E2E_GKE_CLUSTER_BACKUP_ZONES}")
+  elif [[ -n "${E2E_GKE_CLUSTER_BACKUP_REGIONS}" ]]; then
+    e2e_cluster_regions+=("${E2E_GKE_CLUSTER_BACKUP_REGIONS}")
+    e2e_cluster_zones=("${zone_not_provided}")
+  else
+    echo "No backup region/zone set, cluster creation will fail in case of stockout"
+  fi
+
+  for e2e_cluster_region in "${e2e_cluster_regions[@]}"; do
+    for e2e_cluster_zone in "${e2e_cluster_zones[@]}"; do
+      E2E_GKE_CLUSTER_REGION=${e2e_cluster_region}
+      E2E_GKE_CLUSTER_ZONE=${e2e_cluster_zone}
+      [[ "${E2E_GKE_CLUSTER_ZONE}" == "${zone_not_provided}" ]] && E2E_GKE_CLUSTER_ZONE=""
+      local cluster_creation_zone="${E2E_GKE_CLUSTER_REGION}"
+      [[ -n "${E2E_GKE_CLUSTER_ZONE}" ]] && cluster_creation_zone="${E2E_GKE_CLUSTER_REGION}-${E2E_GKE_CLUSTER_ZONE}"
+
+      header "Creating test cluster ${E2E_CLUSTER_VERSION} in ${cluster_creation_zone}"
+      if run_go_tool k8s-sigs.io/kubetest2 \
+        kubetest2 "${kubetest2_flags[@]}" --region="${cluster_creation_zone}" \
+          --test=exec -- "${tester_command[@]}" 2>&1 \
+         | tee "${cluster_creation_log}"; then
+        # Save some metadata about cluster creation for using in prow and testgrid
+        save_metadata
+        return 0
+      fi
+      # Retry if cluster creation failed because of:
+      # - stockout (https://github.com/knative/test-infra/issues/592)
+      # - latest GKE not available in this region/zone yet (https://github.com/knative/test-infra/issues/694)
+      [[ -z "$(grep -Fo 'does not have enough resources available to fulfill' "${cluster_creation_log}")" \
+          && -z "$(grep -Fo 'ResponseError: code=400, message=No valid versions with the prefix' "${cluster_creation_log}")" \
+          && -z "$(grep -Po 'ResponseError: code=400, message=Master version "[0-9a-z\-\.]+" is unsupported' "${cluster_creation_log}")"  \
+          && -z "$(grep -Po 'only \d+ nodes out of \d+ have registered; this is likely due to Nodes failing to start correctly' "${cluster_creation_log}")" ]] \
+          && return 1
+    done
+  done
+  echo "No more region/zones to try, quitting"
+  return 1
+}
diff --git a/vendor/knative.dev/test-infra/scripts/library.sh b/vendor/knative.dev/test-infra/scripts/library.sh
index 1267f7986..82cc1bdf5 100644
--- a/vendor/knative.dev/test-infra/scripts/library.sh
+++ b/vendor/knative.dev/test-infra/scripts/library.sh
@@ -65,6 +65,22 @@ function abort() {
   exit 1
 }
 
+# Build a resource name based on $REPO_NAME, a suffix and $BUILD_NUMBER.
+# Restricts the name length to 40 chars (the limit for resource names in GCP).
+# Name will have the form $REPO_NAME-<PREFIX>$BUILD_NUMBER.
+# Parameters: $1 - name suffix
+function build_resource_name() {
+  local prefix=${REPO_NAME}-$1
+  local suffix=${BUILD_NUMBER}
+  # Restrict suffix length to 20 chars
+  if [[ -n "${suffix}" ]]; then
+    suffix=${suffix:${#suffix}<20?0:-20}
+  fi
+  local name="${prefix:0:20}${suffix}"
+  # Ensure name doesn't end with "-"
+  echo "${name%-}"
+}
+
 # Display a box banner.
 # Parameters: $1 - character to use for the box.
 #             $2 - banner message.
diff --git a/vendor/knative.dev/test-infra/scripts/presubmit-tests.sh b/vendor/knative.dev/test-infra/scripts/presubmit-tests.sh
index a76f890c0..8545bcb48 100644
--- a/vendor/knative.dev/test-infra/scripts/presubmit-tests.sh
+++ b/vendor/knative.dev/test-infra/scripts/presubmit-tests.sh
@@ -322,15 +322,6 @@ function main() {
       echo ">> docker version"
       docker version
     fi
-    # node/pod names are important for debugging purposes, but they are missing
-    # after migrating from bootstrap to podutil.
-    # Report it here with the same logic as in bootstrap until it is fixed.
-    # (https://github.com/kubernetes/test-infra/blob/09bd4c6709dc64308406443f8996f90cf3b40ed1/jenkins/bootstrap.py#L588)
-    # TODO(chaodaiG): follow up on https://github.com/kubernetes/test-infra/blob/0fabd2ea816daa8c15d410c77a0c93c0550b283f/prow/initupload/run.go#L49
-    echo ">> node name"
-    curl -H "Metadata-Flavor: Google" 'http://169.254.169.254/computeMetadata/v1/instance/name' 2> /dev/null
-    echo ">> pod name"
-    echo "${HOSTNAME}"
   fi
 
   [[ -z $1 ]] && set -- "--all-tests"