Repository: knative-sandbox/eventing-kafka
Pull request #677 (2021-06-01 16:29:20)

[main] Upgrade to latest dependencies
Cron -knative-prow-robot

/cc knative-sandbox/channel-wg-leads
/assign knative-sandbox/channel-wg-leads

Produced by: knative-sandbox/knobots/actions/update-deps

Details:
```
bumping knative.dev/reconciler-test e8f9d34...f667a8f:
  > f667a8f Fix redundant name in Assert helper (# 205)
  > 0b740d3 Use go 1.16 embed for templates (# 196)
  > 2a68b2d Add a way to manually add event assertions (# 207)
bumping knative.dev/control-protocol 61251f4...24802b5:
  > 24802b5 Update actions (# 77)
bumping knative.dev/pkg 980a337...a2869ae:
  > a2869ae upgrade to latest dependencies (# 2139)
  > e6552a0 Update community files (# 2138)
  > 79f8b3f Auto-generate webhook certs with ECDSA for FIPS compliance (# 2136)
  > 3e1e4d7 Update community files (# 2137)
  > 803d2ba use more general kubernetes.Interface (# 2135)
  > 47dfdcf consolidate k8s flags to an environment package (# 2133)
  > 6484377 update boilerplate date (# 2134)
  > 35916ab Update actions (# 2132)
bumping knative.dev/hack 93ad912...de04b70:
  > de04b70 Do not print debug info when running release.sh (# 70)
bumping knative.dev/eventing 6776718...e27695b:
  > e27695b Update community files (# 5462)
  > 49420f4 Added broker.WithConfig (# 5461)
  > 66dbf4a Added tristate flags and changed experimental config map name (# 5459)
  > a4650e0 Update community files (# 5458)
  > d5f8b90 rekt/resources: support trigger annotations (# 5456)
  > d1106c8 [QE] Don't wait on triggers, before deploying their subscriber (# 5444)
  > 65bed40 Update actions (# 5438)
  > 0d129e4 Fix a broken link in experimental-features.md (# 5453)
  > b813a54 Remove camel as a downstream now that is deprecated (# 5449)
  > 9d1c35f drop use of deprecated sharedmain functions (# 5450)
  > 6e9588c Bump downstream job to go 1.16 (# 5448)
  > 5d3d12f Use a readiness probe to check apiserver adapter readiness (# 5446)
  > 674815e Remove unprintable characters from the deadLetterSink request header (# 5439)
  > 7678f90 upgrade to latest dependencies (# 5437)
  > 91d6079 Fix ordering in EventTransformation test (# 5435)
bumping knative.dev/networking c90fe70...6ce35e5:
  > 6ce35e5 Update community files (# 428)
  > bf0fc84 drop use of pkgtest.KubeClient (# 423)
  > 04feff3 upgrade to latest dependencies (# 426)
  > 7ded2e6 Update community files (# 427)
  > 443b181 Replace redirect code 302 with 301 (# 416)
  > 77a9c97 upgrade to latest dependencies (# 424)
  > 329cdb3 Update actions (# 422)
```

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/pull/677#" title="Author self-approved">knative-automation</a>*
To complete the [pull request process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process), please assign **steven0711dong** after the PR has been reviewed.
You can assign the PR to them by writing `/assign @steven0711dong` 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).

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

- **[OWNERS](https://github.com/knative-sandbox/eventing-kafka/blob/main/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":["steven0711dong"]} -->
knative-prow-robot: @knative-automation: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-knative-sandbox-eventing-kafka-unit-tests | e7d99ed3cb89035c1596a6b2240fe1737d967803 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-unit-tests/1399765026121715712) | `/test pull-knative-sandbox-eventing-kafka-unit-tests`

[Full PR test history](https://gubernator.knative.dev/pr/knative-sandbox_eventing-kafka/677). [Your PR dashboard](https://gubernator.knative.dev/pr/knative-automation).

<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 -->
knative-prow-robot: @knative-automation: The following tests **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-knative-sandbox-eventing-kafka-unit-tests | e7d99ed3cb89035c1596a6b2240fe1737d967803 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-unit-tests/1399765026121715712) | `/test pull-knative-sandbox-eventing-kafka-unit-tests`
pull-knative-sandbox-eventing-kafka-go-coverage | e7d99ed3cb89035c1596a6b2240fe1737d967803 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-go-coverage/1399765026155270144) | `/test pull-knative-sandbox-eventing-kafka-go-coverage`

[Full PR test history](https://gubernator.knative.dev/pr/knative-sandbox_eventing-kafka/677). [Your PR dashboard](https://gubernator.knative.dev/pr/knative-automation).

<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 -->
codecov[bot]: # [Codecov](https://codecov.io/gh/knative-sandbox/eventing-kafka/pull/677?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) Report
> Merging [#677](https://codecov.io/gh/knative-sandbox/eventing-kafka/pull/677?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) (e7d99ed) into [main](https://codecov.io/gh/knative-sandbox/eventing-kafka/commit/504c3be30ef85b40bd279d51d7ef571dcb846059?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) (504c3be) will **decrease** coverage by `0.12%`.
> The diff coverage is `n/a`.

[![Impacted file tree graph](https://codecov.io/gh/knative-sandbox/eventing-kafka/pull/677/graphs/tree.svg?width=650&height=150&src=pr&token=W765CT93QC&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox)](https://codecov.io/gh/knative-sandbox/eventing-kafka/pull/677?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox)

```diff
@@            Coverage Diff             @@
##             main     #677      +/-   ##
==========================================
- Coverage   75.33%   75.21%   -0.13%     
==========================================
  Files         132      132              
  Lines        5782     5782              
==========================================
- Hits         4356     4349       -7     
- Misses       1206     1213       +7     
  Partials      220      220              
```


| [Impacted Files](https://codecov.io/gh/knative-sandbox/eventing-kafka/pull/677?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) | Coverage Δ | |
|---|---|---|
| [...el/distributed/dispatcher/dispatcher/dispatcher.go](https://codecov.io/gh/knative-sandbox/eventing-kafka/pull/677/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-cGtnL2NoYW5uZWwvZGlzdHJpYnV0ZWQvZGlzcGF0Y2hlci9kaXNwYXRjaGVyL2Rpc3BhdGNoZXIuZ28=) | `74.33% <0.00%> (-6.20%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/knative-sandbox/eventing-kafka/pull/677?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/knative-sandbox/eventing-kafka/pull/677?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox). Last update [504c3be...e7d99ed](https://codecov.io/gh/knative-sandbox/eventing-kafka/pull/677?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox).

knative-prow-robot: @knative-automation: The following tests **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-knative-sandbox-eventing-kafka-unit-tests | e7d99ed3cb89035c1596a6b2240fe1737d967803 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-unit-tests/1399765026121715712) | `/test pull-knative-sandbox-eventing-kafka-unit-tests`
pull-knative-sandbox-eventing-kafka-go-coverage | e7d99ed3cb89035c1596a6b2240fe1737d967803 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-go-coverage/1399765026155270144) | `/test pull-knative-sandbox-eventing-kafka-go-coverage`
pull-knative-sandbox-eventing-kafka-build-tests | e7d99ed3cb89035c1596a6b2240fe1737d967803 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-build-tests/1399765026096549888) | `/test pull-knative-sandbox-eventing-kafka-build-tests`

[Full PR test history](https://gubernator.knative.dev/pr/knative-sandbox_eventing-kafka/677). [Your PR dashboard](https://gubernator.knative.dev/pr/knative-automation).

<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 -->
knative-prow-robot: @knative-automation: The following tests **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-knative-sandbox-eventing-kafka-go-coverage | e7d99ed3cb89035c1596a6b2240fe1737d967803 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-go-coverage/1399765026155270144) | `/test pull-knative-sandbox-eventing-kafka-go-coverage`
pull-knative-sandbox-eventing-kafka-build-tests | e7d99ed3cb89035c1596a6b2240fe1737d967803 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-build-tests/1399765026096549888) | `/test pull-knative-sandbox-eventing-kafka-build-tests`
pull-knative-sandbox-eventing-kafka-integration-test-mt-source | e7d99ed3cb89035c1596a6b2240fe1737d967803 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-integration-test-mt-source/1399765026042023936) | `/test pull-knative-sandbox-eventing-kafka-integration-test-mt-source`
pull-knative-sandbox-eventing-kafka-unit-tests | 49867a3a2598187352685e93d0e4f37b1f5abb86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-unit-tests/1399954207947100160) | `/test pull-knative-sandbox-eventing-kafka-unit-tests`

[Full PR test history](https://gubernator.knative.dev/pr/knative-sandbox_eventing-kafka/677). [Your PR dashboard](https://gubernator.knative.dev/pr/knative-automation).

<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 -->
knative-prow-robot: @knative-automation: The following tests **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-knative-sandbox-eventing-kafka-build-tests | e7d99ed3cb89035c1596a6b2240fe1737d967803 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-build-tests/1399765026096549888) | `/test pull-knative-sandbox-eventing-kafka-build-tests`
pull-knative-sandbox-eventing-kafka-integration-test-mt-source | e7d99ed3cb89035c1596a6b2240fe1737d967803 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-integration-test-mt-source/1399765026042023936) | `/test pull-knative-sandbox-eventing-kafka-integration-test-mt-source`
pull-knative-sandbox-eventing-kafka-unit-tests | 49867a3a2598187352685e93d0e4f37b1f5abb86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-unit-tests/1399954207947100160) | `/test pull-knative-sandbox-eventing-kafka-unit-tests`
pull-knative-sandbox-eventing-kafka-go-coverage | 49867a3a2598187352685e93d0e4f37b1f5abb86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-go-coverage/1399954207972265984) | `/test pull-knative-sandbox-eventing-kafka-go-coverage`

[Full PR test history](https://gubernator.knative.dev/pr/knative-sandbox_eventing-kafka/677). [Your PR dashboard](https://gubernator.knative.dev/pr/knative-automation).

<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 -->
knative-prow-robot: @knative-automation: The following tests **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-knative-sandbox-eventing-kafka-integration-test-mt-source | e7d99ed3cb89035c1596a6b2240fe1737d967803 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-integration-test-mt-source/1399765026042023936) | `/test pull-knative-sandbox-eventing-kafka-integration-test-mt-source`
pull-knative-sandbox-eventing-kafka-unit-tests | 49867a3a2598187352685e93d0e4f37b1f5abb86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-unit-tests/1399954207947100160) | `/test pull-knative-sandbox-eventing-kafka-unit-tests`
pull-knative-sandbox-eventing-kafka-go-coverage | 49867a3a2598187352685e93d0e4f37b1f5abb86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-go-coverage/1399954207972265984) | `/test pull-knative-sandbox-eventing-kafka-go-coverage`
pull-knative-sandbox-eventing-kafka-build-tests | 49867a3a2598187352685e93d0e4f37b1f5abb86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-build-tests/1399954207917740032) | `/test pull-knative-sandbox-eventing-kafka-build-tests`

[Full PR test history](https://gubernator.knative.dev/pr/knative-sandbox_eventing-kafka/677). [Your PR dashboard](https://gubernator.knative.dev/pr/knative-automation).

<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 -->
knative-prow-robot: @knative-automation: The following tests **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-knative-sandbox-eventing-kafka-unit-tests | 49867a3a2598187352685e93d0e4f37b1f5abb86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-unit-tests/1399954207947100160) | `/test pull-knative-sandbox-eventing-kafka-unit-tests`
pull-knative-sandbox-eventing-kafka-go-coverage | 49867a3a2598187352685e93d0e4f37b1f5abb86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-go-coverage/1399954207972265984) | `/test pull-knative-sandbox-eventing-kafka-go-coverage`
pull-knative-sandbox-eventing-kafka-build-tests | 49867a3a2598187352685e93d0e4f37b1f5abb86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-build-tests/1399954207917740032) | `/test pull-knative-sandbox-eventing-kafka-build-tests`
pull-knative-sandbox-eventing-kafka-integration-test-mt-source | 49867a3a2598187352685e93d0e4f37b1f5abb86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/677/pull-knative-sandbox-eventing-kafka-integration-test-mt-source/1399954207859019776) | `/test pull-knative-sandbox-eventing-kafka-integration-test-mt-source`

[Full PR test history](https://gubernator.knative.dev/pr/knative-sandbox_eventing-kafka/677). [Your PR dashboard](https://gubernator.knative.dev/pr/knative-automation).

<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 -->

Patch:
diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES
index fa6ad411c..8c287a123 100644
--- a/OWNERS_ALIASES
+++ b/OWNERS_ALIASES
@@ -126,7 +126,7 @@ aliases:
   - bsnchan
   - dprotaso
   - evankanderson
-  - fallback-notification-blocker
+  - julz
   - knative-prow-releaser-robot
   - knative-prow-robot
   - knative-prow-updater-robot
@@ -144,8 +144,10 @@ aliases:
   - aslom
   - chaodaiG
   - csantanapr
+  - dprotaso
   - evankanderson
   - josephburnett
+  - julz
   - k4leung4
   - lionelvillard
   - markusthoemmes
@@ -160,7 +162,6 @@ aliases:
   - vaikas
   knative-release-leads:
   - dprotaso
-  - fallback-notification-blocker
   - matzew
   knative-robots:
   - knative-prow-releaser-robot
@@ -190,7 +191,6 @@ aliases:
   networking-wg-leads:
   - ZhiminXiang
   - nak3
-  - tcnghia
   operations-wg-leads:
   - houshengbo
   operations-writers:
@@ -212,7 +212,6 @@ aliases:
   - dprotaso
   - markusthoemmes
   - nak3
-  - tcnghia
   - vagababov
   source-wg-leads:
   - lionelvillard
@@ -224,8 +223,9 @@ aliases:
   - thisisnotapril
   - vaikas
   technical-oversight-committee:
+  - dprotaso
   - evankanderson
-  - fallback-notification-blocker
+  - julz
   - markusthoemmes
   - rhuss
   ux-wg-leads:
diff --git a/go.mod b/go.mod
index bfaac2598..504996cc2 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
 module knative.dev/eventing-kafka
 
-go 1.15
+go 1.16
 
 require (
 	github.com/Azure/azure-event-hubs-go/v3 v3.3.2
@@ -34,10 +34,10 @@ require (
 	k8s.io/apimachinery v0.19.7
 	k8s.io/client-go v0.19.7
 	k8s.io/utils v0.0.0-20200729134348-d5654de09c73
-	knative.dev/control-protocol v0.0.0-20210526052828-61251f43cc8b
-	knative.dev/eventing v0.23.1-0.20210526131927-67767182db70
-	knative.dev/hack v0.0.0-20210428122153-93ad9129c268
-	knative.dev/networking v0.0.0-20210526142327-c90fe70eb354
-	knative.dev/pkg v0.0.0-20210526081028-980a33719a10
-	knative.dev/reconciler-test v0.0.0-20210526092928-e8f9d3453378
+	knative.dev/control-protocol v0.0.0-20210531073132-24802b5ab1b7
+	knative.dev/eventing v0.23.1-0.20210601200329-e27695be941d
+	knative.dev/hack v0.0.0-20210601210329-de04b70e00d0
+	knative.dev/networking v0.0.0-20210601151838-6ce35e5687a3
+	knative.dev/pkg v0.0.0-20210602044730-a2869ae1dce3
+	knative.dev/reconciler-test v0.0.0-20210528174829-f667a8f5433e
 )
diff --git a/go.sum b/go.sum
index 7cf76f6c8..472530180 100644
--- a/go.sum
+++ b/go.sum
@@ -440,9 +440,7 @@ github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z
 github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
 github.com/gorilla/mux v1.7.4 h1:VuZ8uybHlWmqV03+zRzdwKL4tUnIp1MAQtp1mIFE1bc=
 github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
-github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=
 github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
-github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=
 github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
 github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
 github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
@@ -1138,7 +1136,6 @@ gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY
 gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY=
 gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca h1:PupagGYwj8+I4ubCxcmcBRk3VlUWtTg5huQpZR9flmE=
 gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
-gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6 h1:4WsZyVtkthqrHTbDCJfiTs8IWNYE4uvsSDgaV6xpp+o=
 gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
 google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
 google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
@@ -1324,22 +1321,26 @@ k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL
 k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
 k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg=
 k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-knative.dev/control-protocol v0.0.0-20210526052828-61251f43cc8b h1:/uUrMK0WcsAdr1jN4Sxa9Eqx2VxuemmXBw+8q+qXrsU=
-knative.dev/control-protocol v0.0.0-20210526052828-61251f43cc8b/go.mod h1:0wWdmU5qSeoZa/5aq+TxIPLKmcblS2QM7u9YWNLuLM4=
-knative.dev/eventing v0.23.1-0.20210526131927-67767182db70 h1:84u5TWi755x1kaZtSj1jpTVNDA971sbm7+M0Ls1liGg=
-knative.dev/eventing v0.23.1-0.20210526131927-67767182db70/go.mod h1:ujROQAd9W1c9GJ15mLO3PKwBnlcZciYv8eyE8yK6xTs=
-knative.dev/hack v0.0.0-20210428122153-93ad9129c268 h1:lBIj9Epd9UQ55NEaHzAdY/UZbuaegCdGPKVC2+Z68Q0=
+knative.dev/control-protocol v0.0.0-20210531073132-24802b5ab1b7 h1:mr10RQ9c/exZTv6BrtVS85Pocly1s7vSfk5Pdvyxxlg=
+knative.dev/control-protocol v0.0.0-20210531073132-24802b5ab1b7/go.mod h1:0wWdmU5qSeoZa/5aq+TxIPLKmcblS2QM7u9YWNLuLM4=
+knative.dev/eventing v0.23.1-0.20210601200329-e27695be941d h1:tgmJ+VvyAhjRZeoamcCd4NNdtR3rlzLoDHEvAqj21R8=
+knative.dev/eventing v0.23.1-0.20210601200329-e27695be941d/go.mod h1:O98GF8T8V+5PNRt275lwyZUk76d7kiOgoWr6UZhs3nE=
 knative.dev/hack v0.0.0-20210428122153-93ad9129c268/go.mod h1:PHt8x8yX5Z9pPquBEfIj0X66f8iWkWfR0S/sarACJrI=
+knative.dev/hack v0.0.0-20210601210329-de04b70e00d0 h1:GXGtVDptFpq2aFTh/m+Xii0kvGIcGZQQtx/sHinZqZs=
+knative.dev/hack v0.0.0-20210601210329-de04b70e00d0/go.mod h1:PHt8x8yX5Z9pPquBEfIj0X66f8iWkWfR0S/sarACJrI=
 knative.dev/hack/schema v0.0.0-20210428122153-93ad9129c268/go.mod h1:ffjwmdcrH5vN3mPhO8RrF2KfNnbHeCE2C60A+2cv3U0=
-knative.dev/networking v0.0.0-20210526142327-c90fe70eb354 h1:3qt3rmWuRVWrQcTFT+voKJgRcMxypKLi9d1vjSemakM=
-knative.dev/networking v0.0.0-20210526142327-c90fe70eb354/go.mod h1:jHERS/qCx8Tpd06GJaUSlYuz8WMXwifpG2yZE9Ir7BQ=
+knative.dev/networking v0.0.0-20210601151838-6ce35e5687a3 h1:FZ73EXMISOi5iAva7SKAKnILkXDZ4hNd71o4YPrNk+A=
+knative.dev/networking v0.0.0-20210601151838-6ce35e5687a3/go.mod h1:jvbI0NjVQgob6VuRuf0reBSQv07LUNaBRvAAR3NWd9I=
 knative.dev/pkg v0.0.0-20210510175900-4564797bf3b7/go.mod h1:fIl4l4OmZodkElyaHoT0LCF5wT+3+P/kinawQ4XlLtE=
 knative.dev/pkg v0.0.0-20210525142738-ea766de6bdd1/go.mod h1:nOD9XjvR+UuO1fHZSaOhfTWDCIz06crh1qQppgZDzR0=
-knative.dev/pkg v0.0.0-20210526081028-980a33719a10 h1:4tC0TcIx4EU6PCcRwdIiCWuKI3vpOgpQUrF1nUeF1t8=
 knative.dev/pkg v0.0.0-20210526081028-980a33719a10/go.mod h1:nOD9XjvR+UuO1fHZSaOhfTWDCIz06crh1qQppgZDzR0=
+knative.dev/pkg v0.0.0-20210531134432-803d2ba3ba15/go.mod h1:nOD9XjvR+UuO1fHZSaOhfTWDCIz06crh1qQppgZDzR0=
+knative.dev/pkg v0.0.0-20210602044730-a2869ae1dce3 h1:eqQ1CS5CIXDhqLQvqpRUrrLSKxtx1tMby9vltWMgRRk=
+knative.dev/pkg v0.0.0-20210602044730-a2869ae1dce3/go.mod h1:SZuILeL4QaIG1mCKHQA285FmjdzPrixKwErYx5ZA7Kg=
 knative.dev/reconciler-test v0.0.0-20210520170117-ffe49e0e092f/go.mod h1:ZHvzjwe5aUnWDx+u5y9EPaZ++5PM9Yapp/IvBDiS+Yk=
-knative.dev/reconciler-test v0.0.0-20210526092928-e8f9d3453378 h1:o/rkg93VeLL0zQ0jZUF/cUSgFtb2N+rNL6xQhbmvhSM=
 knative.dev/reconciler-test v0.0.0-20210526092928-e8f9d3453378/go.mod h1:ZHvzjwe5aUnWDx+u5y9EPaZ++5PM9Yapp/IvBDiS+Yk=
+knative.dev/reconciler-test v0.0.0-20210528174829-f667a8f5433e h1:3/oAwHCmcSlwQ2U+o2y86jIUiIwnvWwcM6gVtbaux1M=
+knative.dev/reconciler-test v0.0.0-20210528174829-f667a8f5433e/go.mod h1:eT090ddGX9t191Vwt5sECwdV+jhD0vc4RPEOLrgqjoE=
 pgregory.net/rapid v0.3.3 h1:jCjBsY4ln4Atz78QoBWxUEvAHaFyNDQg9+WU62aCn1U=
 pgregory.net/rapid v0.3.3/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
diff --git a/vendor/knative.dev/eventing/pkg/channel/message_dispatcher.go b/vendor/knative.dev/eventing/pkg/channel/message_dispatcher.go
index baf98cfa7..e80ddafa1 100644
--- a/vendor/knative.dev/eventing/pkg/channel/message_dispatcher.go
+++ b/vendor/knative.dev/eventing/pkg/channel/message_dispatcher.go
@@ -264,7 +264,43 @@ func (d *MessageDispatcherImpl) sanitizeURL(u *url.URL) *url.URL {
 
 // dispatchExecutionTransformer returns Transformers based on the specified DispatchExecutionInfo
 func (d *MessageDispatcherImpl) dispatchExecutionInfoTransformers(dispatchExecutionInfo *DispatchExecutionInfo) binding.Transformers {
-	return attributes.KnativeErrorTransformers(dispatchExecutionInfo.ResponseCode, string(dispatchExecutionInfo.ResponseBody))
+	// Unprintable control characters are not allowed in header values
+	// and cause HTTP requests to fail if not removed.
+	// https://pkg.go.dev/golang.org/x/net/http/httpguts#ValidHeaderFieldValue
+	httpBody := sanitizeHTTPBody(dispatchExecutionInfo.ResponseBody)
+	return attributes.KnativeErrorTransformers(dispatchExecutionInfo.ResponseCode, httpBody)
+}
+
+func sanitizeHTTPBody(body []byte) string {
+	if !hasControlChars(body) {
+		return string(body)
+	}
+
+	sanitizedResponse := make([]byte, 0, len(body))
+	for _, v := range body {
+		if !isControl(v) {
+			sanitizedResponse = append(sanitizedResponse, v)
+		}
+	}
+	return string(sanitizedResponse)
+}
+
+func hasControlChars(data []byte) bool {
+	for _, v := range data {
+		if isControl(v) {
+			return true
+		}
+	}
+	return false
+}
+
+func isControl(c byte) bool {
+	// US ASCII codes range for printable graphic characters and a space.
+	// http://www.columbia.edu/kermit/ascii.html
+	const asciiUnitSeparator = 31
+	const asciiRubout = 127
+
+	return int(c) < asciiUnitSeparator || int(c) > asciiRubout
 }
 
 // isFailure returns true if the status code is not a successful HTTP status.
diff --git a/vendor/knative.dev/hack/release.sh b/vendor/knative.dev/hack/release.sh
index ffa5afd44..025fcab14 100644
--- a/vendor/knative.dev/hack/release.sh
+++ b/vendor/knative.dev/hack/release.sh
@@ -17,9 +17,6 @@
 # This is a helper script for Knative release scripts.
 # See README.md for instructions on how to use it.
 
-# Print commands
-set -x
-
 source $(dirname "${BASH_SOURCE[0]}")/library.sh
 
 # Organization name in GitHub; defaults to Knative.
diff --git a/vendor/knative.dev/pkg/apiextensions/storageversion/cmd/migrate/config.go b/vendor/knative.dev/pkg/apiextensions/storageversion/cmd/migrate/config.go
deleted file mode 100644
index 59fad9808..000000000
--- a/vendor/knative.dev/pkg/apiextensions/storageversion/cmd/migrate/config.go
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-Copyright 2020 The Knative Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package main
-
-import (
-	"flag"
-	"fmt"
-	"os"
-	"os/user"
-	"path/filepath"
-
-	"k8s.io/client-go/rest"
-	"k8s.io/client-go/tools/clientcmd"
-)
-
-// TODO - make a package that's reusable here and by sharedmain
-
-func configOrDie() *rest.Config {
-	var (
-		serverURL = flag.String("server", "",
-			"The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.")
-		kubeconfig = flag.String("kubeconfig", "",
-			"Path to a kubeconfig. Only required if out-of-cluster.")
-	)
-
-	flag.Parse()
-
-	cfg, err := getConfig(*serverURL, *kubeconfig)
-	if err != nil {
-		panic(fmt.Sprint("Error building kubeconfig:", err))
-	}
-
-	return cfg
-}
-
-// getConfig returns a rest.Config to be used for kubernetes client creation.
-// It does so in the following order:
-//   1. Use the passed kubeconfig/serverURL.
-//   2. Fallback to the KUBECONFIG environment variable.
-//   3. Fallback to in-cluster config.
-//   4. Fallback to the ~/.kube/config.
-func getConfig(serverURL, kubeconfig string) (*rest.Config, error) {
-	if kubeconfig == "" {
-		kubeconfig = os.Getenv("KUBECONFIG")
-	}
-	// If we have an explicit indication of where the kubernetes config lives, read that.
-	if kubeconfig != "" {
-		return clientcmd.BuildConfigFromFlags(serverURL, kubeconfig)
-	}
-	// If not, try the in-cluster config.
-	if c, err := rest.InClusterConfig(); err == nil {
-		return c, nil
-	}
-	// If no in-cluster config, try the default location in the user's home directory.
-	if usr, err := user.Current(); err == nil {
-		if c, err := clientcmd.BuildConfigFromFlags("", filepath.Join(usr.HomeDir, ".kube", "config")); err == nil {
-			return c, nil
-		}
-	}
-
-	return nil, fmt.Errorf("could not create a valid kubeconfig")
-}
diff --git a/vendor/knative.dev/pkg/apiextensions/storageversion/cmd/migrate/main.go b/vendor/knative.dev/pkg/apiextensions/storageversion/cmd/migrate/main.go
index acbe5a43f..81cd9b7ad 100644
--- a/vendor/knative.dev/pkg/apiextensions/storageversion/cmd/migrate/main.go
+++ b/vendor/knative.dev/pkg/apiextensions/storageversion/cmd/migrate/main.go
@@ -26,6 +26,7 @@ import (
 	"k8s.io/apimachinery/pkg/runtime/schema"
 	"k8s.io/client-go/dynamic"
 	"knative.dev/pkg/apiextensions/storageversion"
+	"knative.dev/pkg/environment"
 	"knative.dev/pkg/logging"
 	"knative.dev/pkg/signals"
 )
@@ -34,7 +35,16 @@ func main() {
 	logger := setupLogger()
 	defer logger.Sync()
 
-	config := configOrDie()
+	env := environment.ClientConfig{}
+	env.InitFlags(flag.CommandLine)
+
+	flag.Parse()
+
+	config, err := env.GetRESTConfig()
+	if err != nil {
+		logger.Fatalf("failed to get kubeconfig %s", err)
+	}
+
 	grs, err := parseResources(flag.Args())
 	if err != nil {
 		logger.Fatal(err)
diff --git a/vendor/knative.dev/pkg/apis/duck/v1/zz_generated.deepcopy.go b/vendor/knative.dev/pkg/apis/duck/v1/zz_generated.deepcopy.go
index f4da66047..ae98f0468 100644
--- a/vendor/knative.dev/pkg/apis/duck/v1/zz_generated.deepcopy.go
+++ b/vendor/knative.dev/pkg/apis/duck/v1/zz_generated.deepcopy.go
@@ -1,7 +1,7 @@
 // +build !ignore_autogenerated
 
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/apis/duck/v1alpha1/zz_generated.deepcopy.go b/vendor/knative.dev/pkg/apis/duck/v1alpha1/zz_generated.deepcopy.go
index 7718f84fa..2e98b4652 100644
--- a/vendor/knative.dev/pkg/apis/duck/v1alpha1/zz_generated.deepcopy.go
+++ b/vendor/knative.dev/pkg/apis/duck/v1alpha1/zz_generated.deepcopy.go
@@ -1,7 +1,7 @@
 // +build !ignore_autogenerated
 
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/apis/duck/v1beta1/zz_generated.deepcopy.go b/vendor/knative.dev/pkg/apis/duck/v1beta1/zz_generated.deepcopy.go
index d22c6724a..ad5486454 100644
--- a/vendor/knative.dev/pkg/apis/duck/v1beta1/zz_generated.deepcopy.go
+++ b/vendor/knative.dev/pkg/apis/duck/v1beta1/zz_generated.deepcopy.go
@@ -1,7 +1,7 @@
 // +build !ignore_autogenerated
 
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/apis/zz_generated.deepcopy.go b/vendor/knative.dev/pkg/apis/zz_generated.deepcopy.go
index e2b84acd2..1e060d9e0 100644
--- a/vendor/knative.dev/pkg/apis/zz_generated.deepcopy.go
+++ b/vendor/knative.dev/pkg/apis/zz_generated.deepcopy.go
@@ -1,7 +1,7 @@
 // +build !ignore_autogenerated
 
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/apiextensions/client/client.go b/vendor/knative.dev/pkg/client/injection/apiextensions/client/client.go
index e8695e03f..e8831fe6d 100644
--- a/vendor/knative.dev/pkg/client/injection/apiextensions/client/client.go
+++ b/vendor/knative.dev/pkg/client/injection/apiextensions/client/client.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/apiextensions/client/fake/fake.go b/vendor/knative.dev/pkg/client/injection/apiextensions/client/fake/fake.go
index 6b47e9de3..7de9b9aea 100644
--- a/vendor/knative.dev/pkg/client/injection/apiextensions/client/fake/fake.go
+++ b/vendor/knative.dev/pkg/client/injection/apiextensions/client/fake/fake.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/apiextensions/informers/apiextensions/v1/customresourcedefinition/customresourcedefinition.go b/vendor/knative.dev/pkg/client/injection/apiextensions/informers/apiextensions/v1/customresourcedefinition/customresourcedefinition.go
index 9c7757d3e..7dbb4f5b3 100644
--- a/vendor/knative.dev/pkg/client/injection/apiextensions/informers/apiextensions/v1/customresourcedefinition/customresourcedefinition.go
+++ b/vendor/knative.dev/pkg/client/injection/apiextensions/informers/apiextensions/v1/customresourcedefinition/customresourcedefinition.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/apiextensions/informers/factory/factory.go b/vendor/knative.dev/pkg/client/injection/apiextensions/informers/factory/factory.go
index 346d9b673..92d4d95da 100644
--- a/vendor/knative.dev/pkg/client/injection/apiextensions/informers/factory/factory.go
+++ b/vendor/knative.dev/pkg/client/injection/apiextensions/informers/factory/factory.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/ducks/duck/v1/addressable/addressable.go b/vendor/knative.dev/pkg/client/injection/ducks/duck/v1/addressable/addressable.go
index 09a21e06e..d40153e95 100644
--- a/vendor/knative.dev/pkg/client/injection/ducks/duck/v1/addressable/addressable.go
+++ b/vendor/knative.dev/pkg/client/injection/ducks/duck/v1/addressable/addressable.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/ducks/duck/v1/podspecable/podspecable.go b/vendor/knative.dev/pkg/client/injection/ducks/duck/v1/podspecable/podspecable.go
index 9ae0971da..096bbfe8e 100644
--- a/vendor/knative.dev/pkg/client/injection/ducks/duck/v1/podspecable/podspecable.go
+++ b/vendor/knative.dev/pkg/client/injection/ducks/duck/v1/podspecable/podspecable.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/client/client.go b/vendor/knative.dev/pkg/client/injection/kube/client/client.go
index b7994cb72..2c7be6d31 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/client/client.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/client/client.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/client/fake/fake.go b/vendor/knative.dev/pkg/client/injection/kube/client/fake/fake.go
index e16622294..4360b0ec4 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/client/fake/fake.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/client/fake/fake.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/admissionregistration/v1/mutatingwebhookconfiguration/mutatingwebhookconfiguration.go b/vendor/knative.dev/pkg/client/injection/kube/informers/admissionregistration/v1/mutatingwebhookconfiguration/mutatingwebhookconfiguration.go
index 27b95afa6..981a47b4a 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/admissionregistration/v1/mutatingwebhookconfiguration/mutatingwebhookconfiguration.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/admissionregistration/v1/mutatingwebhookconfiguration/mutatingwebhookconfiguration.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/admissionregistration/v1/validatingwebhookconfiguration/validatingwebhookconfiguration.go b/vendor/knative.dev/pkg/client/injection/kube/informers/admissionregistration/v1/validatingwebhookconfiguration/validatingwebhookconfiguration.go
index 7cc5ac316..08c3ac2bb 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/admissionregistration/v1/validatingwebhookconfiguration/validatingwebhookconfiguration.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/admissionregistration/v1/validatingwebhookconfiguration/validatingwebhookconfiguration.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment/deployment.go b/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment/deployment.go
index 066e592ab..de9ff5c8c 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment/deployment.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment/deployment.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment/fake/fake.go b/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment/fake/fake.go
index 88de49807..18922ee2a 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment/fake/fake.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment/fake/fake.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/statefulset/fake/fake.go b/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/statefulset/fake/fake.go
index 104f1e2c7..518d654ec 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/statefulset/fake/fake.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/statefulset/fake/fake.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/statefulset/statefulset.go b/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/statefulset/statefulset.go
index 1f25874dd..d1aae06b7 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/statefulset/statefulset.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/apps/v1/statefulset/statefulset.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/endpoints/endpoints.go b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/endpoints/endpoints.go
index 3b6a96742..daa392ae0 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/endpoints/endpoints.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/endpoints/endpoints.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/namespace/namespace.go b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/namespace/namespace.go
index f8a43dcc6..002980903 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/namespace/namespace.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/namespace/namespace.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/node/node.go b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/node/node.go
index cf5ef01fc..776fcc415 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/node/node.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/node/node.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/pod/pod.go b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/pod/pod.go
index 8f8a6fffb..0742ab1b0 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/pod/pod.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/pod/pod.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/service/fake/fake.go b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/service/fake/fake.go
index d7ecc65b5..27974c092 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/service/fake/fake.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/service/fake/fake.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/service/service.go b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/service/service.go
index e80633a33..1bc4a32b3 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/service/service.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/service/service.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/serviceaccount/serviceaccount.go b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/serviceaccount/serviceaccount.go
index 8505a10e7..2b9595654 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/serviceaccount/serviceaccount.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/serviceaccount/serviceaccount.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/factory/factory.go b/vendor/knative.dev/pkg/client/injection/kube/informers/factory/factory.go
index 7b9e9ab94..c1c136755 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/factory/factory.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/factory/factory.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/factory/fake/fake.go b/vendor/knative.dev/pkg/client/injection/kube/informers/factory/fake/fake.go
index 5784115fe..2c6161513 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/factory/fake/fake.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/factory/fake/fake.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/client/injection/kube/informers/rbac/v1/rolebinding/rolebinding.go b/vendor/knative.dev/pkg/client/injection/kube/informers/rbac/v1/rolebinding/rolebinding.go
index c5025e5a1..737360a58 100644
--- a/vendor/knative.dev/pkg/client/injection/kube/informers/rbac/v1/rolebinding/rolebinding.go
+++ b/vendor/knative.dev/pkg/client/injection/kube/informers/rbac/v1/rolebinding/rolebinding.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/environment/client_config.go b/vendor/knative.dev/pkg/environment/client_config.go
new file mode 100644
index 000000000..604f82ff8
--- /dev/null
+++ b/vendor/knative.dev/pkg/environment/client_config.go
@@ -0,0 +1,105 @@
+/*
+Copyright 2021 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package environment
+
+import (
+	"errors"
+	"flag"
+	"fmt"
+	"math"
+	"os"
+
+	"k8s.io/client-go/rest"
+	"k8s.io/client-go/tools/clientcmd"
+	clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
+)
+
+// ClientConfig holds the information about the environment and can be configured with flags
+type ClientConfig struct {
+	Cluster    string  // K8s cluster (defaults to cluster in kubeconfig)
+	ServerURL  string  // ServerURL - The address of the Kubernetes API server. Overrides any value in kubeconfig.
+	Burst      int     // Burst - Maximum burst for throttle.
+	QPS        float64 // QPS - Maximum QPS to the server from the client.
+	Kubeconfig string  // Kubeconfig - Path to a kubeconfig. Current casing is present for backwards compatibility
+}
+
+func (c *ClientConfig) InitFlags(fs *flag.FlagSet) {
+	fs.StringVar(&c.Cluster, "cluster", "", "Defaults to the current cluster in kubeconfig.")
+
+	fs.StringVar(&c.ServerURL, "server", "",
+		"The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.")
+
+	fs.StringVar(&c.Kubeconfig, "kubeconfig", os.Getenv("KUBECONFIG"),
+		"Path to a kubeconfig. Only required if out-of-cluster.")
+
+	fs.IntVar(&c.Burst, "kube-api-burst", 0, "Maximum burst for throttle.")
+
+	fs.Float64Var(&c.QPS, "kube-api-qps", 0, "Maximum QPS to the server from the client.")
+}
+
+func (c *ClientConfig) GetRESTConfig() (*rest.Config, error) {
+	if c.Burst < 0 {
+		return nil, fmt.Errorf("provided burst value %d must be > 0", c.Burst)
+	}
+	if c.QPS < 0 || c.QPS > math.MaxFloat32 {
+		return nil, fmt.Errorf("provided QPS value %f must be >0 and <3.4+e38", c.QPS)
+	}
+
+	// If we have an explicit indication of where the kubernetes config lives, read that.
+	if c.Kubeconfig != "" {
+		return c.configFromPath(c.Kubeconfig)
+	}
+
+	// If not, try the in-cluster config.
+	if rc, err := rest.InClusterConfig(); err == nil {
+		return c.applyOverrides(rc), nil
+	}
+
+	// If no in-cluster config, try the default location in the user's home directory.
+	if c, err := c.configFromPath(clientcmd.RecommendedHomeFile); err == nil {
+		return c, nil
+	}
+
+	return nil, errors.New("could not create a valid kubeconfig")
+}
+
+func (c *ClientConfig) configFromPath(path string) (*rest.Config, error) {
+	overrides := &clientcmd.ConfigOverrides{}
+
+	if c.Cluster != "" {
+		overrides.Context = clientcmdapi.Context{Cluster: c.Cluster}
+	} else if c.ServerURL != "" {
+		overrides.ClusterInfo = clientcmdapi.Cluster{Server: c.ServerURL}
+	}
+
+	config, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
+		&clientcmd.ClientConfigLoadingRules{ExplicitPath: path},
+		overrides,
+	).ClientConfig()
+
+	if err != nil {
+		return nil, err
+	}
+
+	return c.applyOverrides(config), nil
+}
+
+func (c *ClientConfig) applyOverrides(restCfg *rest.Config) *rest.Config {
+	restCfg.QPS = float32(c.QPS)
+	restCfg.Burst = c.Burst
+	return restCfg
+}
diff --git a/vendor/knative.dev/pkg/injection/config.go b/vendor/knative.dev/pkg/injection/config.go
index 2f1aab414..f54f84b45 100644
--- a/vendor/knative.dev/pkg/injection/config.go
+++ b/vendor/knative.dev/pkg/injection/config.go
@@ -17,102 +17,34 @@ limitations under the License.
 package injection
 
 import (
-	"errors"
 	"flag"
 	"log"
-	"math"
-	"os"
-	"sync"
 
 	"k8s.io/client-go/rest"
-	"k8s.io/client-go/tools/clientcmd"
 	"k8s.io/klog"
+	"knative.dev/pkg/environment"
 )
 
-// Environment holds the config for flag based config.
-type Environment struct {
-	// ServerURL - The address of the Kubernetes API server. Overrides any value in kubeconfig.
-	ServerURL string
-	// Kubeconfig - Path to a kubeconfig.
-	Kubeconfig string // Note: named Kubeconfig because of legacy reasons vs KubeConfig.
-	// Burst - Maximum burst for throttle.
-	Burst int
-	// QPS - Maximum QPS to the server from the client.
-	QPS float64
-}
-
-var (
-	env  *Environment
-	once sync.Once
-)
-
-func Flags() *Environment {
-	once.Do(func() {
-		env = new(Environment)
-
-		flag.StringVar(&env.ServerURL, "server", "",
-			"The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.")
-
-		flag.StringVar(&env.Kubeconfig, "kubeconfig", os.Getenv("KUBECONFIG"),
-			"Path to a kubeconfig. Only required if out-of-cluster.")
-
-		flag.IntVar(&env.Burst, "kube-api-burst", 0, "Maximum burst for throttle.")
-
-		flag.Float64Var(&env.QPS, "kube-api-qps", 0, "Maximum QPS to the server from the client.")
-	})
-	return env
-}
-
 // ParseAndGetRESTConfigOrDie parses the rest config flags and creates a client or
 // dies by calling log.Fatalf.
 func ParseAndGetRESTConfigOrDie() *rest.Config {
-	env := Flags()
-
+	env := new(environment.ClientConfig)
+	env.InitFlags(flag.CommandLine)
 	klog.InitFlags(flag.CommandLine)
 	flag.Parse()
-	if env.Burst < 0 {
-		log.Fatal("Invalid burst value", env.Burst)
-	}
-	if env.QPS < 0 || env.QPS > math.MaxFloat32 {
-		log.Fatal("Invalid QPS value", env.QPS)
-	}
-
-	cfg, err := GetRESTConfig(env.ServerURL, env.Kubeconfig)
+	cfg, err := env.GetRESTConfig()
 	if err != nil {
 		log.Fatal("Error building kubeconfig: ", err)
 	}
-
-	cfg.Burst = env.Burst
-	cfg.QPS = float32(env.QPS)
-
 	return cfg
 }
 
 // GetRESTConfig returns a rest.Config to be used for kubernetes client creation.
-// It does so in the following order:
-//   1. Use the passed kubeconfig/serverURL.
-//   2. Fallback to the KUBECONFIG environment variable.
-//   3. Fallback to in-cluster config.
-//   4. Fallback to the ~/.kube/config.
+// Deprecated: use environment.ClientConfig package
 func GetRESTConfig(serverURL, kubeconfig string) (*rest.Config, error) {
-	// If we have an explicit indication of where the kubernetes config lives, read that.
-	if kubeconfig != "" {
-		c, err := clientcmd.BuildConfigFromFlags(serverURL, kubeconfig)
-		if err != nil {
-			return nil, err
-		}
-		return c, nil
+	env := environment.ClientConfig{
+		Kubeconfig: kubeconfig,
+		ServerURL:  serverURL,
 	}
-
-	// If not, try the in-cluster config.
-	if c, err := rest.InClusterConfig(); err == nil {
-		return c, nil
-	}
-
-	// If no in-cluster config, try the default location in the user's home directory.
-	if c, err := clientcmd.BuildConfigFromFlags("", clientcmd.RecommendedHomeFile); err == nil {
-		return c, nil
-	}
-
-	return nil, errors.New("could not create a valid kubeconfig")
+	return env.GetRESTConfig()
 }
diff --git a/vendor/knative.dev/pkg/injection/sharedmain/main.go b/vendor/knative.dev/pkg/injection/sharedmain/main.go
index b2067bb1b..de49ae1a8 100644
--- a/vendor/knative.dev/pkg/injection/sharedmain/main.go
+++ b/vendor/knative.dev/pkg/injection/sharedmain/main.go
@@ -57,17 +57,6 @@ func init() {
 	maxprocs.Set()
 }
 
-// GetConfig returns a rest.Config to be used for kubernetes client creation.
-// It does so in the following order:
-//   1. Use the passed kubeconfig/serverURL.
-//   2. Fallback to the KUBECONFIG environment variable.
-//   3. Fallback to in-cluster config.
-//   4. Fallback to the ~/.kube/config.
-// Deprecated: use injection.GetRESTConfig
-func GetConfig(serverURL, kubeconfig string) (*rest.Config, error) {
-	return injection.GetRESTConfig(serverURL, kubeconfig)
-}
-
 // GetLoggingConfig gets the logging config from either the file system if present
 // or via reading a configMap from the API.
 // The context is expected to be initialized with injection.
@@ -253,13 +242,6 @@ func flush(logger *zap.SugaredLogger) {
 	metrics.FlushExporter()
 }
 
-// ParseAndGetConfigOrDie parses the rest config flags and creates a client or
-// dies by calling log.Fatalf.
-// Deprecated: use injection.ParseAndGetRESTConfigOrDie
-func ParseAndGetConfigOrDie() *rest.Config {
-	return injection.ParseAndGetRESTConfigOrDie()
-}
-
 // SetupLoggerOrDie sets up the logger using the config from the given context
 // and returns a logger and atomic level, or dies by calling log.Fatalf.
 func SetupLoggerOrDie(ctx context.Context, component string) (*zap.SugaredLogger, zap.AtomicLevel) {
diff --git a/vendor/knative.dev/pkg/logging/zz_generated.deepcopy.go b/vendor/knative.dev/pkg/logging/zz_generated.deepcopy.go
index 53345202c..79d26075a 100644
--- a/vendor/knative.dev/pkg/logging/zz_generated.deepcopy.go
+++ b/vendor/knative.dev/pkg/logging/zz_generated.deepcopy.go
@@ -1,7 +1,7 @@
 // +build !ignore_autogenerated
 
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/metrics/zz_generated.deepcopy.go b/vendor/knative.dev/pkg/metrics/zz_generated.deepcopy.go
index 822bb4db2..d9024668e 100644
--- a/vendor/knative.dev/pkg/metrics/zz_generated.deepcopy.go
+++ b/vendor/knative.dev/pkg/metrics/zz_generated.deepcopy.go
@@ -1,7 +1,7 @@
 // +build !ignore_autogenerated
 
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/tracker/zz_generated.deepcopy.go b/vendor/knative.dev/pkg/tracker/zz_generated.deepcopy.go
index 9494168c6..3b3e7a17a 100644
--- a/vendor/knative.dev/pkg/tracker/zz_generated.deepcopy.go
+++ b/vendor/knative.dev/pkg/tracker/zz_generated.deepcopy.go
@@ -1,7 +1,7 @@
 // +build !ignore_autogenerated
 
 /*
-Copyright 2020 The Knative Authors
+Copyright 2021 The Knative Authors
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/knative.dev/pkg/webhook/certificates/resources/certs.go b/vendor/knative.dev/pkg/webhook/certificates/resources/certs.go
index c7ab8f6a3..811eb569c 100644
--- a/vendor/knative.dev/pkg/webhook/certificates/resources/certs.go
+++ b/vendor/knative.dev/pkg/webhook/certificates/resources/certs.go
@@ -18,7 +18,8 @@ package resources
 
 import (
 	"context"
-	"crypto/ed25519"
+	"crypto/ecdsa"
+	"crypto/elliptic"
 	"crypto/rand"
 	"crypto/x509"
 	"crypto/x509/pkix"
@@ -62,7 +63,7 @@ func createCertTemplate(name, namespace string, notAfter time.Time) (*x509.Certi
 			Organization: []string{organization},
 			CommonName:   commonName,
 		},
-		SignatureAlgorithm:    x509.PureEd25519,
+		SignatureAlgorithm:    x509.ECDSAWithSHA256,
 		NotBefore:             time.Now(),
 		NotAfter:              notAfter,
 		BasicConstraintsValid: true,
@@ -112,13 +113,14 @@ func createCert(template, parent *x509.Certificate, pub, parentPriv interface{})
 	return
 }
 
-func createCA(ctx context.Context, name, namespace string, notAfter time.Time) (ed25519.PrivateKey, *x509.Certificate, []byte, error) {
+func createCA(ctx context.Context, name, namespace string, notAfter time.Time) (*ecdsa.PrivateKey, *x509.Certificate, []byte, error) {
 	logger := logging.FromContext(ctx)
-	publicKey, privateKey, err := ed25519.GenerateKey(rand.Reader)
+	privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
 	if err != nil {
 		logger.Errorw("error generating random key", zap.Error(err))
 		return nil, nil, nil, err
 	}
+	publicKey := privateKey.Public()
 
 	rootCertTmpl, err := createCACertTemplate(name, namespace, notAfter)
 	if err != nil {
@@ -148,11 +150,13 @@ func CreateCerts(ctx context.Context, name, namespace string, notAfter time.Time
 	}
 
 	// Then create the private key for the serving cert
-	publicKey, privateKey, err := ed25519.GenerateKey(rand.Reader)
+	privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
 	if err != nil {
 		logger.Errorw("error generating random key", zap.Error(err))
 		return nil, nil, nil, err
 	}
+	publicKey := privateKey.Public()
+
 	servCertTemplate, err := createServerCertTemplate(name, namespace, notAfter)
 	if err != nil {
 		logger.Errorw("failed to create the server certificate template", zap.Error(err))
diff --git a/vendor/modules.txt b/vendor/modules.txt
index e0a9d23c4..741aac057 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -1099,7 +1099,7 @@ k8s.io/utils/buffer
 k8s.io/utils/integer
 k8s.io/utils/pointer
 k8s.io/utils/trace
-# knative.dev/control-protocol v0.0.0-20210526052828-61251f43cc8b
+# knative.dev/control-protocol v0.0.0-20210531073132-24802b5ab1b7
 ## explicit
 knative.dev/control-protocol/pkg
 knative.dev/control-protocol/pkg/certificates
@@ -1107,7 +1107,7 @@ knative.dev/control-protocol/pkg/message
 knative.dev/control-protocol/pkg/network
 knative.dev/control-protocol/pkg/reconciler
 knative.dev/control-protocol/pkg/service
-# knative.dev/eventing v0.23.1-0.20210526131927-67767182db70
+# knative.dev/eventing v0.23.1-0.20210601200329-e27695be941d
 ## explicit
 knative.dev/eventing/pkg/adapter/v2
 knative.dev/eventing/pkg/adapter/v2/test
@@ -1224,14 +1224,14 @@ knative.dev/eventing/test/upgrade/prober/wathola/fetcher
 knative.dev/eventing/test/upgrade/prober/wathola/forwarder
 knative.dev/eventing/test/upgrade/prober/wathola/receiver
 knative.dev/eventing/test/upgrade/prober/wathola/sender
-# knative.dev/hack v0.0.0-20210428122153-93ad9129c268
+# knative.dev/hack v0.0.0-20210601210329-de04b70e00d0
 ## explicit
 knative.dev/hack
 knative.dev/hack/shell
-# knative.dev/networking v0.0.0-20210526142327-c90fe70eb354
+# knative.dev/networking v0.0.0-20210601151838-6ce35e5687a3
 ## explicit
 knative.dev/networking/pkg/prober
-# knative.dev/pkg v0.0.0-20210526081028-980a33719a10
+# knative.dev/pkg v0.0.0-20210602044730-a2869ae1dce3
 ## explicit
 knative.dev/pkg/apiextensions/storageversion
 knative.dev/pkg/apiextensions/storageversion/cmd/migrate
@@ -1275,6 +1275,7 @@ knative.dev/pkg/codegen/cmd/injection-gen/generators
 knative.dev/pkg/configmap
 knative.dev/pkg/configmap/informer
 knative.dev/pkg/controller
+knative.dev/pkg/environment
 knative.dev/pkg/hack
 knative.dev/pkg/hash
 knative.dev/pkg/injection
@@ -1304,7 +1305,7 @@ knative.dev/pkg/source
 knative.dev/pkg/system
 knative.dev/pkg/system/testing
 knative.dev/pkg/test
-knative.dev/pkg/test/flags
+knative.dev/pkg/test/environment
 knative.dev/pkg/test/gcs
 knative.dev/pkg/test/ghutil
 knative.dev/pkg/test/helpers
@@ -1335,7 +1336,7 @@ knative.dev/pkg/webhook/resourcesemantics
 knative.dev/pkg/webhook/resourcesemantics/conversion
 knative.dev/pkg/webhook/resourcesemantics/defaulting
 knative.dev/pkg/webhook/resourcesemantics/validation
-# knative.dev/reconciler-test v0.0.0-20210526092928-e8f9d3453378
+# knative.dev/reconciler-test v0.0.0-20210528174829-f667a8f5433e
 ## explicit
 knative.dev/reconciler-test/cmd/eventshub
 knative.dev/reconciler-test/pkg/environment


Test patch:
diff --git a/.github/workflows/kind-e2e.yaml b/.github/workflows/kind-e2e.yaml
index 4ab4c5101..b1a71af3a 100644
--- a/.github/workflows/kind-e2e.yaml
+++ b/.github/workflows/kind-e2e.yaml
@@ -60,10 +60,10 @@ jobs:
       ARTIFACTS: ${{ github.workspace }}/artifacts
 
     steps:
-    - name: Set up Go 1.15.x
+    - name: Set up Go 1.16.x
       uses: actions/setup-go@v2
       with:
-        go-version: 1.15.x
+        go-version: 1.16.x
 
     - name: Install Dependencies
       working-directory: ./
diff --git a/vendor/knative.dev/eventing/test/upgrade/prober/sut/broker.go b/vendor/knative.dev/eventing/test/upgrade/prober/sut/broker.go
index a468a3b4a..719df6185 100644
--- a/vendor/knative.dev/eventing/test/upgrade/prober/sut/broker.go
+++ b/vendor/knative.dev/eventing/test/upgrade/prober/sut/broker.go
@@ -109,7 +109,6 @@ func (b *BrokerAndTriggers) fetchURL(ctx Context) *apis.URL {
 }
 
 func (b *BrokerAndTriggers) deployTriggers(ctx Context, dest duckv1.Destination) {
-	triggers := make([]*eventingv1.Trigger, 0, len(b.Triggers.Types))
 	for _, eventType := range b.Triggers.Types {
 		name := fmt.Sprintf("%s-%s", b.Name, eventType)
 		subscriberOption := resources.WithSubscriberDestination(func(t *eventingv1.Trigger) duckv1.Destination {
@@ -117,7 +116,7 @@ func (b *BrokerAndTriggers) deployTriggers(ctx Context, dest duckv1.Destination)
 		})
 		ctx.Log.Debugf("Creating trigger \"%s\" for type %s to route to %#v",
 			name, eventType, dest)
-		trgr := ctx.Client.CreateTriggerOrFail(
+		_ = ctx.Client.CreateTriggerOrFail(
 			name,
 			resources.WithBroker(b.Name),
 			resources.WithAttributesTriggerFilter(
@@ -127,15 +126,5 @@ func (b *BrokerAndTriggers) deployTriggers(ctx Context, dest duckv1.Destination)
 			),
 			subscriberOption,
 		)
-		triggers = append(triggers, trgr)
-	}
-	for _, trgr := range triggers {
-		meta := resources.NewMetaResource(
-			trgr.Name, trgr.Namespace, testlib.TriggerTypeMeta,
-		)
-		err := duck.WaitForResourceReady(ctx.Client.Dynamic, meta)
-		if err != nil {
-			ctx.T.Fatal(err)
-		}
 	}
 }
diff --git a/vendor/knative.dev/pkg/test/README.md b/vendor/knative.dev/pkg/test/README.md
index c56070878..d54c9ae27 100644
--- a/vendor/knative.dev/pkg/test/README.md
+++ b/vendor/knative.dev/pkg/test/README.md
@@ -54,7 +54,7 @@ and tests can pass in `t.Logf` like this:
 
 ```go
 _, err = pkgTest.WaitForEndpointState(
-    clients.KubeClient,
+    kubeClient,
     t.Logf,
     ...),
 ```
diff --git a/vendor/knative.dev/pkg/test/clients.go b/vendor/knative.dev/pkg/test/clients.go
index e35a39045..37301ae4c 100644
--- a/vendor/knative.dev/pkg/test/clients.go
+++ b/vendor/knative.dev/pkg/test/clients.go
@@ -23,8 +23,6 @@ import (
 	"fmt"
 	"strings"
 
-	"knative.dev/pkg/test/flags"
-
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/client-go/kubernetes"
@@ -44,8 +42,8 @@ type KubeClient struct {
 // NewSpoofingClient returns a spoofing client to make requests
 func NewSpoofingClient(ctx context.Context, client kubernetes.Interface, logf logging.FormatLogger,
 	domain string, resolvable bool, opts ...spoof.TransportOption) (*spoof.SpoofingClient, error) {
-	return spoof.New(ctx, client, logf, domain, resolvable, flags.Flags().IngressEndpoint,
-		flags.Flags().SpoofRequestInterval, flags.Flags().SpoofRequestTimeout, opts...)
+	return spoof.New(ctx, client, logf, domain, resolvable, Flags.IngressEndpoint,
+		Flags.SpoofRequestInterval, Flags.SpoofRequestTimeout, opts...)
 }
 
 // NewKubeClient instantiates and returns several clientsets required for making request to the
diff --git a/vendor/knative.dev/pkg/test/e2e_flags.go b/vendor/knative.dev/pkg/test/e2e_flags.go
index d7233255a..648cb88d7 100644
--- a/vendor/knative.dev/pkg/test/e2e_flags.go
+++ b/vendor/knative.dev/pkg/test/e2e_flags.go
@@ -22,12 +22,11 @@ package test
 import (
 	"bytes"
 	"flag"
-	"os/user"
-	"path/filepath"
 	"text/template"
 
-	"knative.dev/pkg/injection"
-	testflags "knative.dev/pkg/test/flags"
+	"k8s.io/client-go/tools/clientcmd"
+	env "knative.dev/pkg/environment"
+	testenv "knative.dev/pkg/test/environment"
 	"knative.dev/pkg/test/logging"
 )
 
@@ -41,25 +40,21 @@ var (
 // EnvironmentFlags define the flags that are needed to run the e2e tests.
 // Deprecated: use test/flags.Flags() or injection.Flags()
 type EnvironmentFlags struct {
-	*injection.Environment
-	*testflags.TestEnvironment
+	env.ClientConfig
+	testenv.TestClientConfig
 }
 
 func initializeFlags() *EnvironmentFlags {
 	f := new(EnvironmentFlags)
 
-	testflags.InitFlags(flag.CommandLine)
-
-	f.TestEnvironment = testflags.Flags()
-	f.Environment = injection.Flags()
+	f.ClientConfig.InitFlags(flag.CommandLine)
+	f.TestClientConfig.InitFlags(flag.CommandLine)
 
 	// We want to do this defaulting for tests only. The flags are reused between tests
 	// and production code and we want to make sure that production code defaults to
 	// the in-cluster config correctly.
-	if f.Environment.Kubeconfig == "" {
-		if usr, err := user.Current(); err == nil {
-			f.Environment.Kubeconfig = filepath.Join(usr.HomeDir, ".kube", "config")
-		}
+	if f.Kubeconfig == "" {
+		f.Kubeconfig = clientcmd.RecommendedHomeFile
 	}
 
 	return f
@@ -73,7 +68,7 @@ func SetupLoggingFlags() {
 
 // ImagePath is a helper function to transform an image name into an image reference that can be pulled.
 func ImagePath(name string) string {
-	tpl, err := template.New("image").Parse(testflags.Flags().ImageTemplate)
+	tpl, err := template.New("image").Parse(Flags.ImageTemplate)
 	if err != nil {
 		panic("could not parse image template: " + err.Error())
 	}
@@ -84,9 +79,9 @@ func ImagePath(name string) string {
 		Name       string
 		Tag        string
 	}{
-		Repository: testflags.Flags().DockerRepo,
+		Repository: Flags.DockerRepo,
 		Name:       name,
-		Tag:        testflags.Flags().Tag,
+		Tag:        Flags.Tag,
 	}); err != nil {
 		panic("could not apply the image template: " + err.Error())
 	}
diff --git a/vendor/knative.dev/pkg/test/flags/e2e_flags.go b/vendor/knative.dev/pkg/test/environment/config.go
similarity index 59%
rename from vendor/knative.dev/pkg/test/flags/e2e_flags.go
rename to vendor/knative.dev/pkg/test/environment/config.go
index fc9032a78..39cfe9014 100644
--- a/vendor/knative.dev/pkg/test/flags/e2e_flags.go
+++ b/vendor/knative.dev/pkg/test/environment/config.go
@@ -25,9 +25,8 @@ import (
 	"time"
 )
 
-// TestEnvironment define the config that are needed to run the e2e tests.
-type TestEnvironment struct {
-	Cluster              string        // K8s cluster (defaults to cluster in kubeconfig)
+// TestClientConfig defines propertis about the test environment
+type TestClientConfig struct {
 	Namespace            string        // K8s namespace (blank by default, to be overwritten by test suite)
 	IngressEndpoint      string        // Host to use for ingress endpoint
 	ImageTemplate        string        // Template to build the image reference (defaults to {{.Repository}}/{{.Name}}:{{.Tag}})
@@ -37,43 +36,25 @@ type TestEnvironment struct {
 	SpoofRequestTimeout  time.Duration // SpoofRequestTimeout is the timeout for polling requests in SpoofingClient
 }
 
-var f *TestEnvironment
-
 // InitFlags is for explicitly initializing the flags.
-func InitFlags(flagset *flag.FlagSet) {
-	if flagset == nil {
-		flagset = flag.CommandLine
-	}
-
-	f = new(TestEnvironment)
-
-	flagset.StringVar(&f.Cluster, "cluster", "",
-		"Provide the cluster to test against. Defaults to the current cluster in kubeconfig.")
-
-	flagset.StringVar(&f.Namespace, "namespace", "",
+func (c *TestClientConfig) InitFlags(fs *flag.FlagSet) {
+	fs.StringVar(&c.Namespace, "namespace", "",
 		"Provide the namespace you would like to use for these tests.")
 
-	flagset.StringVar(&f.IngressEndpoint, "ingressendpoint", "", "Provide a static endpoint url to the ingress server used during tests.")
+	fs.StringVar(&c.IngressEndpoint, "ingressendpoint", "", "Provide a static endpoint url to the ingress server used during tests.")
 
-	flagset.StringVar(&f.ImageTemplate, "imagetemplate", "{{.Repository}}/{{.Name}}:{{.Tag}}",
+	fs.StringVar(&c.ImageTemplate, "imagetemplate", "{{.Repository}}/{{.Name}}:{{.Tag}}",
 		"Provide a template to generate the reference to an image from the test. Defaults to `{{.Repository}}/{{.Name}}:{{.Tag}}`.")
 
-	flagset.DurationVar(&f.SpoofRequestInterval, "spoofinterval", 1*time.Second,
+	fs.DurationVar(&c.SpoofRequestInterval, "spoofinterval", 1*time.Second,
 		"Provide an interval between requests for the SpoofingClient")
 
-	flagset.DurationVar(&f.SpoofRequestTimeout, "spooftimeout", 5*time.Minute,
+	fs.DurationVar(&c.SpoofRequestTimeout, "spooftimeout", 5*time.Minute,
 		"Provide a request timeout for the SpoofingClient")
 
 	defaultRepo := os.Getenv("KO_DOCKER_REPO")
-	flagset.StringVar(&f.DockerRepo, "dockerrepo", defaultRepo,
+	fs.StringVar(&c.DockerRepo, "dockerrepo", defaultRepo,
 		"Provide the uri of the docker repo you have uploaded the test image to using `uploadtestimage.sh`. Defaults to $KO_DOCKER_REPO")
 
-	flagset.StringVar(&f.Tag, "tag", "latest", "Provide the version tag for the test images.")
-}
-
-// Flags returns the command line flags or defaults for settings in the user's
-// environment. See TestEnvironment for a list of supported fields.
-// Caller must call InitFlags() and flags.Parse() before calling Flags().
-func Flags() *TestEnvironment {
-	return f
+	fs.StringVar(&c.Tag, "tag", "latest", "Provide the version tag for the test images.")
 }
diff --git a/vendor/knative.dev/pkg/test/kube_checks.go b/vendor/knative.dev/pkg/test/kube_checks.go
index 156a85968..30698e694 100644
--- a/vendor/knative.dev/pkg/test/kube_checks.go
+++ b/vendor/knative.dev/pkg/test/kube_checks.go
@@ -207,11 +207,11 @@ func DeploymentScaledToZeroFunc() func(d *appsv1.Deployment) (bool, error) {
 
 // WaitForLogContent waits until logs for given Pod/Container include the given content.
 // If the content is not present within timeout it returns error.
-func WaitForLogContent(ctx context.Context, client *KubeClient, podName, containerName, namespace, content string) error {
+func WaitForLogContent(ctx context.Context, client kubernetes.Interface, podName, containerName, namespace, content string) error {
 	var logs []byte
 	waitErr := wait.PollImmediate(interval, logTimeout, func() (bool, error) {
 		var err error
-		logs, err = client.PodLogs(ctx, podName, containerName, namespace)
+		logs, err = PodLogs(ctx, client, podName, containerName, namespace)
 		if err != nil {
 			return true, err
 		}
diff --git a/vendor/knative.dev/pkg/test/request.go b/vendor/knative.dev/pkg/test/request.go
index ecaecd68f..32a6a2053 100644
--- a/vendor/knative.dev/pkg/test/request.go
+++ b/vendor/knative.dev/pkg/test/request.go
@@ -24,8 +24,6 @@ import (
 	"strings"
 	"time"
 
-	"knative.dev/pkg/test/flags"
-
 	"k8s.io/client-go/kubernetes"
 	"knative.dev/pkg/test/logging"
 	"knative.dev/pkg/test/spoof"
@@ -102,7 +100,7 @@ func WaitForEndpointState(
 	resolvable bool,
 	opts ...interface{}) (*spoof.Response, error) {
 	return WaitForEndpointStateWithTimeout(ctx, kubeClient, logf, url, inState,
-		desc, resolvable, flags.Flags().SpoofRequestTimeout, opts...)
+		desc, resolvable, Flags.SpoofRequestTimeout, opts...)
 }
 
 // WaitForEndpointStateWithTimeout will poll an endpoint until inState indicates the state is achieved
diff --git a/vendor/knative.dev/reconciler-test/pkg/eventshub/prober.go b/vendor/knative.dev/reconciler-test/pkg/eventshub/prober.go
index d816eba88..a38b32453 100644
--- a/vendor/knative.dev/reconciler-test/pkg/eventshub/prober.go
+++ b/vendor/knative.dev/reconciler-test/pkg/eventshub/prober.go
@@ -264,6 +264,11 @@ func (p *EventProber) ExpectYAMLEvents(path string) error {
 	return nil
 }
 
+// ExpectEvents registers event IDs into the prober.
+func (p *EventProber) ExpectEvents(ids []string) {
+	p.ids = append(p.ids, ids...)
+}
+
 // SenderEventsFromURI configures a sender to send a url/yaml based events.
 func (p *EventProber) SenderEventsFromURI(uri string) {
 	p.senderOptions = append(p.senderOptions, InputYAML(uri))
diff --git a/vendor/knative.dev/reconciler-test/pkg/eventshub/resources.go b/vendor/knative.dev/reconciler-test/pkg/eventshub/resources.go
index aaa6a1e4c..6530227fb 100644
--- a/vendor/knative.dev/reconciler-test/pkg/eventshub/resources.go
+++ b/vendor/knative.dev/reconciler-test/pkg/eventshub/resources.go
@@ -18,6 +18,7 @@ package eventshub
 
 import (
 	"context"
+	"embed"
 	"strings"
 
 	"knative.dev/reconciler-test/pkg/environment"
@@ -27,8 +28,11 @@ import (
 	"knative.dev/reconciler-test/pkg/manifest"
 )
 
+//go:embed *.yaml
+var templates embed.FS
+
 func init() {
-	environment.RegisterPackage(manifest.ImagesLocalYaml()...)
+	environment.RegisterPackage(manifest.ImagesFromFS(templates)...)
 }
 
 // Install starts a new eventshub with the provided name
@@ -54,7 +58,7 @@ func Install(name string, options ...EventsHubOption) feature.StepFn {
 		envs[ConfigTracingEnv] = knative.TracingConfigFromContext(ctx)
 
 		// Deploy
-		if _, err := manifest.InstallLocalYaml(ctx, map[string]interface{}{
+		if _, err := manifest.InstallYamlFS(ctx, templates, map[string]interface{}{
 			"name": name,
 			"envs": envs,
 		}); err != nil {
diff --git a/vendor/knative.dev/reconciler-test/pkg/feature/feature.go b/vendor/knative.dev/reconciler-test/pkg/feature/feature.go
index 148d5a252..fdce51b58 100644
--- a/vendor/knative.dev/reconciler-test/pkg/feature/feature.go
+++ b/vendor/knative.dev/reconciler-test/pkg/feature/feature.go
@@ -144,10 +144,16 @@ func (f *Feature) Requirement(name string, fn StepFn) {
 	})
 }
 
-// Assert is a shortcut for Stable(name).Must(name, fn),
-// useful for developing integration tests that doesn't require assertion levels.
+// Assert is a shortcut for Stable().Must(name, fn),
+// useful for developing integration tests that don't require assertion levels.
 func (f *Feature) Assert(name string, fn StepFn) {
-	f.Stable(name).Must(name, fn)
+	f.AddStep(Step{
+		Name: name,
+		S:    Stable,
+		L:    Must,
+		T:    Assert,
+		Fn:   fn,
+	})
 }
 
 // Assert adds a step function to the feature set at the Assert timing phase.
diff --git a/vendor/knative.dev/reconciler-test/pkg/manifest/installer.go b/vendor/knative.dev/reconciler-test/pkg/manifest/installer.go
index f907a37f7..8057d6598 100644
--- a/vendor/knative.dev/reconciler-test/pkg/manifest/installer.go
+++ b/vendor/knative.dev/reconciler-test/pkg/manifest/installer.go
@@ -19,10 +19,10 @@ package manifest
 import (
 	"bufio"
 	"context"
+	"io/fs"
 	"log"
 	"os"
 	"path"
-	"path/filepath"
 	"runtime"
 	"strings"
 
@@ -34,12 +34,17 @@ import (
 // CfgFn is the function signature of configuration mutation options.
 type CfgFn func(map[string]interface{})
 
+// Deprecated: use InstallYamlFS
 func InstallYaml(ctx context.Context, dir string, base map[string]interface{}) (Manifest, error) {
+	return InstallYamlFS(ctx, os.DirFS(dir), base)
+}
+
+func InstallYamlFS(ctx context.Context, fsys fs.FS, base map[string]interface{}) (Manifest, error) {
 	env := environment.FromContext(ctx)
 	cfg := env.TemplateConfig(base)
 	f := feature.FromContext(ctx)
 
-	yamls, err := ParseTemplates(dir, env.Images(), cfg)
+	yamls, err := ParseTemplatesFS(fsys, env.Images(), cfg)
 	if err != nil {
 		return nil, err
 	}
@@ -67,7 +72,6 @@ func InstallYaml(ctx context.Context, dir string, base map[string]interface{}) (
 		log.Println(ref)
 	}
 	return manifest, nil
-
 }
 
 func InstallLocalYaml(ctx context.Context, base map[string]interface{}) (Manifest, error) {
@@ -76,23 +80,28 @@ func InstallLocalYaml(ctx context.Context, base map[string]interface{}) (Manifes
 	_, filename, _, _ := runtime.Caller(1)
 	log.Println("FILENAME: ", filename)
 
-	return InstallYaml(ctx, path.Dir(filename), base)
+	return InstallYamlFS(ctx, os.DirFS(path.Dir(filename)), base)
 }
 
+// Deprecated, use ImagesFromFS instead.
 func ImagesLocalYaml() []string {
 	pwd, _ := os.Getwd()
 	log.Println("PWD: ", pwd)
 	_, filename, _, _ := runtime.Caller(1)
 	log.Println("FILENAME: ", filename)
 
+	return ImagesFromFS(os.DirFS(path.Dir(filename)))
+}
+
+func ImagesFromFS(fsys fs.FS) []string {
 	var images []string
 
-	_ = filepath.Walk(path.Dir(filename), func(root string, info os.FileInfo, err error) error {
+	_ = fs.WalkDir(fsys, ".", func(path string, info fs.DirEntry, err error) error {
 		if info == nil || info.IsDir() {
 			return nil
 		}
 		if strings.HasSuffix(info.Name(), "yaml") {
-			file, err := os.Open(root)
+			file, err := fsys.Open(path)
 			if err != nil {
 				log.Fatal(err)
 			}
diff --git a/vendor/knative.dev/reconciler-test/pkg/manifest/templates.go b/vendor/knative.dev/reconciler-test/pkg/manifest/templates.go
index 5341eeee7..449e2813d 100644
--- a/vendor/knative.dev/reconciler-test/pkg/manifest/templates.go
+++ b/vendor/knative.dev/reconciler-test/pkg/manifest/templates.go
@@ -19,6 +19,7 @@ package manifest
 import (
 	"bytes"
 	"io"
+	"io/fs"
 	"io/ioutil"
 	"log"
 	"os"
@@ -33,15 +34,22 @@ import (
 
 // ExecuteTemplates executes a set of templates found at path, filtering on
 // suffix. Executed into memory and returned.
+// Deprecated: use ExecuteTemplatesFS.
 func ExecuteTemplates(path, suffix string, images map[string]string, data map[string]interface{}) (map[string]string, error) {
+	return ExecuteTemplatesFS(os.DirFS(path), suffix, images, data)
+}
+
+// ExecuteTemplatesFS executes a set of templates in the given filesystem, filtering on
+// suffix. Executed into memory and returned.
+func ExecuteTemplatesFS(fsys fs.FS, suffix string, images map[string]string, data map[string]interface{}) (map[string]string, error) {
 	files := make(map[string]string, 1)
 
-	err := filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
+	err := fs.WalkDir(fsys, ".", func(path string, info fs.DirEntry, err error) error {
 		if info == nil || info.IsDir() {
 			return nil
 		}
 		if strings.HasSuffix(info.Name(), suffix) {
-			t, err := template.ParseFiles(path)
+			t, err := template.ParseFS(fsys, path)
 			if err != nil {
 				log.Print("parse: ", err)
 				return err
@@ -74,9 +82,17 @@ func ExecuteTemplates(path, suffix string, images map[string]string, data map[st
 
 // ParseTemplates walks through all the template yaml file in the given directory
 // and produces instantiated yaml file in a temporary directory.
-// Return the name of the temporary directory
+// Returns the name of the temporary directory.
+// Deprecated: Use ParseTemplatesFS.
 func ParseTemplates(path string, images map[string]string, cfg map[string]interface{}) (string, error) {
-	files, err := ExecuteTemplates(path, "yaml", images, cfg)
+	return ParseTemplatesFS(os.DirFS(path), images, cfg)
+}
+
+// ParseTemplatesFS walks through all the template yaml file in the given FS
+// and produces instantiated yaml file in a temporary directory.
+// Returns the name of the temporary directory.
+func ParseTemplatesFS(fsys fs.FS, images map[string]string, cfg map[string]interface{}) (string, error) {
+	files, err := ExecuteTemplatesFS(fsys, "yaml", images, cfg)
 	if err != nil {
 		return "", err
 	}
@@ -101,14 +117,20 @@ func ParseTemplates(path string, images map[string]string, cfg map[string]interf
 	return tmpDir, nil
 }
 
+// ExecuteYAML process the templates found in files named "*.yaml" and return the f.
+func ExecuteYAML(fsys fs.FS, images map[string]string, cfg map[string]interface{}) (map[string]string, error) {
+	return ExecuteTemplatesFS(fsys, "yaml", images, cfg)
+}
+
 // ExecuteLocalYAML will look in the callers filesystem and process the
 // templates found in files named "*.yaml" and return the f.
+// Deprecated: Use ExecuteYAML instead.
 func ExecuteLocalYAML(images map[string]string, cfg map[string]interface{}) (map[string]string, error) {
 	pwd, _ := os.Getwd()
 	log.Println("PWD: ", pwd)
 	_, filename, _, _ := runtime.Caller(1)
 
-	return ExecuteTemplates(path.Dir(filename), "yaml", images, cfg)
+	return ExecuteYAML(os.DirFS(path.Dir(filename)), images, cfg)
 }
 
 func removeBlanks(in string) string {
diff --git a/vendor/knative.dev/reconciler-test/resources/svc/service.go b/vendor/knative.dev/reconciler-test/resources/svc/service.go
index 76d6fe8d9..e0d63b2f0 100644
--- a/vendor/knative.dev/reconciler-test/resources/svc/service.go
+++ b/vendor/knative.dev/reconciler-test/resources/svc/service.go
@@ -18,6 +18,7 @@ package svc
 
 import (
 	"context"
+	"embed"
 
 	"k8s.io/apimachinery/pkg/runtime/schema"
 	"knative.dev/pkg/apis"
@@ -29,6 +30,9 @@ import (
 	"knative.dev/reconciler-test/pkg/manifest"
 )
 
+//go:embed *.yaml
+var templates embed.FS
+
 func GVR() schema.GroupVersionResource {
 	return schema.GroupVersionResource{Group: "", Version: "v1", Resource: "services"}
 }
@@ -43,7 +47,7 @@ func Install(name, selectorKey, selectorValue string) feature.StepFn {
 	}
 
 	return func(ctx context.Context, t feature.T) {
-		if _, err := manifest.InstallLocalYaml(ctx, cfg); err != nil {
+		if _, err := manifest.InstallYamlFS(ctx, templates, cfg); err != nil {
 			t.Fatal(err)
 		}
 	}