Repository: knative-sandbox/eventing-kafka-broker
Pull request #2979 (2023-02-22 14:45:14)

Do not inject namespace to additional resources using Manifestival's namespace injection
In EKB controller, we use Manifestival to create resources that are in "additional resources". When we have the RoleBinding like this in the Manifest:

```
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: knative-prometheus-k8s
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: knative-prometheus-k8s
subjects:
- kind: ServiceAccount
  name: prometheus-k8s
  namespace: openshift-monitoring           # --> changed
```

will become:

```
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: knative-prometheus-k8s
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: knative-prometheus-k8s
subjects:
- kind: ServiceAccount
  name: prometheus-k8s
  namespace: <user-namespace>        # --> changed
```

This is done here https://github.com/manifestival/manifestival/blob/82196bd303e23c641fda3d002c0663b892092e9c/transform.go#L66-L73 

To prevent this, we don't run the Manifestival's namespace injection on "additional resources". We can inject namespaces to them with templating anyway.

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

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

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

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

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

- ~~[OWNERS](https://github.com/knative-sandbox/eventing-kafka-broker/blob/main/OWNERS)~~ [aliok]

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":[]} -->
aliok: /cherrpick release-1.9
knative-prow[bot]: @aliok: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 4299d024bb6eef1603baef18de4021627362772e | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1628405570853670912) | true | `/test channel-integration-tests-sasl-plain`
unit-tests_eventing-kafka-broker_main | 8ebb9ff278f0156298a0c7c0d06ecb3f80f93d23 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/unit-tests_eventing-kafka-broker_main/1628702415089831936) | true | `/test unit-tests`

[Your PR dashboard](https://prow.knative.dev/pr).

<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-broker/pull/2979?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) Report
> Merging [#2979](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2979?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) (8ebb9ff) into [main](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/commit/a71a13c981079604287df7fc9d7a8a45a70ad364?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) (a71a13c) will **decrease** coverage by `5.38%`.
> The diff coverage is `61.36%`.

```diff
@@             Coverage Diff              @@
##               main    #2979      +/-   ##
============================================
- Coverage     64.18%   58.81%   -5.38%     
============================================
  Files           156       79      -77     
  Lines         10993     8391    -2602     
  Branches        231        0     -231     
============================================
- Hits           7056     4935    -2121     
+ Misses         3428     3078     -350     
+ Partials        509      378     -131     
```

| Flag | Coverage Δ | |
|---|---|---|
| java-unittests | `?` | |

Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#carryforward-flags-in-the-pull-request-comment) to find out more.

| [Impacted Files](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2979?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) | Coverage Δ | |
|---|---|---|
| [...l-plane/pkg/reconciler/broker/namespaced\_broker.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2979?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci9icm9rZXIvbmFtZXNwYWNlZF9icm9rZXIuZ28=) | `69.75% <61.36%> (-1.12%)` | :arrow_down: |
| [...venting/kafka/broker/dispatcher/DeliveryOrder.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2979?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9kaXNwYXRjaGVyL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2Rpc3BhdGNoZXIvRGVsaXZlcnlPcmRlci5qYXZh) | | |
| [...oker/dispatcher/main/ConsumerDeployerVerticle.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2979?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9kaXNwYXRjaGVyL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2Rpc3BhdGNoZXIvbWFpbi9Db25zdW1lckRlcGxveWVyVmVydGljbGUuamF2YQ==) | | |
| [...eceiver/impl/IngressProducerReconcilableStore.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2979?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9yZWNlaXZlci9zcmMvbWFpbi9qYXZhL2Rldi9rbmF0aXZlL2V2ZW50aW5nL2thZmthL2Jyb2tlci9yZWNlaXZlci9pbXBsL0luZ3Jlc3NQcm9kdWNlclJlY29uY2lsYWJsZVN0b3JlLmphdmE=) | | |
| [...broker/dispatcher/impl/consumer/OffsetManager.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2979?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9kaXNwYXRjaGVyL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2Rpc3BhdGNoZXIvaW1wbC9jb25zdW1lci9PZmZzZXRNYW5hZ2VyLmphdmE=) | | |
| [...nciler/impl/ResourcesReconcilerMessageHandler.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2979?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9jb3JlL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2NvcmUvcmVjb25jaWxlci9pbXBsL1Jlc291cmNlc1JlY29uY2lsZXJNZXNzYWdlSGFuZGxlci5qYXZh) | | |
| [...ve/eventing/kafka/broker/dispatcher/main/Main.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2979?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9kaXNwYXRjaGVyL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2Rpc3BhdGNoZXIvbWFpbi9NYWluLmphdmE=) | | |
| [...er/impl/consumer/InvalidCloudEventInterceptor.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2979?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9kaXNwYXRjaGVyL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2Rpc3BhdGNoZXIvaW1wbC9jb25zdW1lci9JbnZhbGlkQ2xvdWRFdmVudEludGVyY2VwdG9yLmphdmE=) | | |
| [...ka/broker/core/security/KubernetesCredentials.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2979?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9jb3JlL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2NvcmUvc2VjdXJpdHkvS3ViZXJuZXRlc0NyZWRlbnRpYWxzLmphdmE=) | | |
| ... and [69 more](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2979?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) | |

Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox)

aliok: /test unit-tests
knative-prow[bot]: @aliok: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit-tests_eventing-kafka-broker_main | 8ebb9ff278f0156298a0c7c0d06ecb3f80f93d23 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/unit-tests_eventing-kafka-broker_main/1628702415089831936) | true | `/test unit-tests`
reconciler-tests_eventing-kafka-broker_main | 8ebb9ff278f0156298a0c7c0d06ecb3f80f93d23 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/reconciler-tests_eventing-kafka-broker_main/1628702415383433216) | true | `/test reconciler-tests`

[Your PR dashboard](https://prow.knative.dev/pr).

<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[bot]: @aliok: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 8ebb9ff278f0156298a0c7c0d06ecb3f80f93d23 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/reconciler-tests_eventing-kafka-broker_main/1628702415383433216) | true | `/test reconciler-tests`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 8ebb9ff278f0156298a0c7c0d06ecb3f80f93d23 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1628702415492485120) | true | `/test reconciler-tests-namespaced-broker`

[Your PR dashboard](https://prow.knative.dev/pr).

<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[bot]: @aliok: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 8ebb9ff278f0156298a0c7c0d06ecb3f80f93d23 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/reconciler-tests_eventing-kafka-broker_main/1628702415383433216) | true | `/test reconciler-tests`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 8ebb9ff278f0156298a0c7c0d06ecb3f80f93d23 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1628702415492485120) | true | `/test reconciler-tests-namespaced-broker`
integration-tests_eventing-kafka-broker_main | 3ea1d46811a71b3bc9c73dad15810894281adbae | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/integration-tests_eventing-kafka-broker_main/1630643968213520384) | true | `/test integration-tests`

[Your PR dashboard](https://prow.knative.dev/pr).

<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[bot]: @aliok: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 8ebb9ff278f0156298a0c7c0d06ecb3f80f93d23 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/reconciler-tests_eventing-kafka-broker_main/1628702415383433216) | true | `/test reconciler-tests`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 8ebb9ff278f0156298a0c7c0d06ecb3f80f93d23 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1628702415492485120) | true | `/test reconciler-tests-namespaced-broker`
integration-tests_eventing-kafka-broker_main | 3ea1d46811a71b3bc9c73dad15810894281adbae | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/integration-tests_eventing-kafka-broker_main/1630643968213520384) | true | `/test integration-tests`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3ea1d46811a71b3bc9c73dad15810894281adbae | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/channel-integration-tests-ssl_eventing-kafka-broker_main/1630643968561647616) | true | `/test channel-integration-tests-ssl`

[Your PR dashboard](https://prow.knative.dev/pr).

<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[bot]: @aliok: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 8ebb9ff278f0156298a0c7c0d06ecb3f80f93d23 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1628702415492485120) | true | `/test reconciler-tests-namespaced-broker`
integration-tests_eventing-kafka-broker_main | 3ea1d46811a71b3bc9c73dad15810894281adbae | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/integration-tests_eventing-kafka-broker_main/1630643968213520384) | true | `/test integration-tests`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3ea1d46811a71b3bc9c73dad15810894281adbae | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/channel-integration-tests-ssl_eventing-kafka-broker_main/1630643968561647616) | true | `/test channel-integration-tests-ssl`
reconciler-tests_eventing-kafka-broker_main | 3ea1d46811a71b3bc9c73dad15810894281adbae | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/reconciler-tests_eventing-kafka-broker_main/1630643968423235584) | true | `/test reconciler-tests`

[Your PR dashboard](https://prow.knative.dev/pr).

<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[bot]: @aliok: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
integration-tests_eventing-kafka-broker_main | 3ea1d46811a71b3bc9c73dad15810894281adbae | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/integration-tests_eventing-kafka-broker_main/1630643968213520384) | true | `/test integration-tests`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3ea1d46811a71b3bc9c73dad15810894281adbae | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/channel-integration-tests-ssl_eventing-kafka-broker_main/1630643968561647616) | true | `/test channel-integration-tests-ssl`
reconciler-tests_eventing-kafka-broker_main | 3ea1d46811a71b3bc9c73dad15810894281adbae | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/reconciler-tests_eventing-kafka-broker_main/1630643968423235584) | true | `/test reconciler-tests`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3ea1d46811a71b3bc9c73dad15810894281adbae | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1630643968486150144) | true | `/test reconciler-tests-namespaced-broker`

[Your PR dashboard](https://prow.knative.dev/pr).

<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 -->
aliok: /retest
knative-prow[bot]: @aliok: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit-tests_eventing-kafka-broker_main | 6b3a7f68e7f138b936a7ab73c1785428c3c256a0 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2979/unit-tests_eventing-kafka-broker_main/1630885351880921088) | true | `/test unit-tests`

[Your PR dashboard](https://prow.knative.dev/pr).

<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/control-plane/pkg/reconciler/broker/namespaced_broker.go b/control-plane/pkg/reconciler/broker/namespaced_broker.go
index befaf78a4..2c3679eaa 100644
--- a/control-plane/pkg/reconciler/broker/namespaced_broker.go
+++ b/control-plane/pkg/reconciler/broker/namespaced_broker.go
@@ -244,11 +244,65 @@ func (r *NamespacedReconciler) createReconcilerForBrokerInstance(broker *eventin
 // getManifest returns the manifest that is transformed from the BaseDataPlaneManifest with the changes
 // for the given broker
 func (r *NamespacedReconciler) getManifest(ctx context.Context, broker *eventing.Broker) (mf.Manifest, error) {
+	// Get the namespace of the broker in advance as we will need it later. Fail early if the namespace cannot be fetched.
 	namespace, err := r.NamespaceLister.Get(broker.Namespace)
 	if err != nil {
 		return mf.Manifest{}, fmt.Errorf("failed to get namespace of the broker: %w", err)
 	}
 
+	// Get the transformed manifest from the system namespace.
+	manifest, err := r.getManifestFromSystemNamespace(broker)
+	if err != nil {
+		return mf.Manifest{}, fmt.Errorf("unable to get manifest from system namespace: %w", err)
+	}
+
+	// Get the manifest from additional resources.
+	// This is a manifest that is not part of the base manifest, but is added by the user.
+	// Not all transformations are good for the additional resources, so we apply them separately.
+	// One specific example is that we don't want to use Manifestival's namespace injection for the additional resources.
+	// Because, it touches e.g. the subjects' namespace of the ClusterRoleBindings, which is not desired.
+	manifestFromAdditionalResources, err := r.getManifestFromAdditionalResources(broker)
+	if err != nil {
+		return mf.Manifest{}, fmt.Errorf("unable to get manifest from additional resources: %w", err)
+	}
+
+	manifest = manifest.Append(manifestFromAdditionalResources)
+
+	// this transformation is always applied to the all resources; doesn't matter if they are from the base manifest or additional resources
+	manifest, err = manifest.Transform(appendNewOwnerRefsToPersisted(manifest.Client, broker))
+	if err != nil {
+		return mf.Manifest{}, fmt.Errorf("unable to append owner ref: %w", err)
+	}
+
+	// Set the namespace as owner ref to cluster-scoped resources. We delete them manually, but as a safety net we set
+	// the namespace as owner ref so that even when cluster scoped resources cannot be deleted, they will be garbage
+	// collected when the namespace is deleted.
+	// this transformation is always applied to the all resources; doesn't matter if they are from the base manifest or additional resources
+	manifest, err = manifest.Transform(appendNamespaceAsOwnerRefsToClusterScoped(namespace))
+	if err != nil {
+		return mf.Manifest{}, fmt.Errorf("unable to set namespace as owner ref to cluster-scoped resources: %w", err)
+	}
+
+	// this transformation is always applied to the all resources; doesn't matter if they are from the base manifest or additional resources
+	manifest, err = manifest.Transform(setLabel)
+	if err != nil {
+		return mf.Manifest{}, fmt.Errorf("unable to set label: %w", err)
+	}
+
+	logger := logging.FromContext(ctx).Desugar()
+
+	for _, res := range manifest.Resources() {
+		logger.Debug("Resource",
+			zap.String("gvk", res.GroupVersionKind().String()),
+			zap.String("resource.name", res.GetName()),
+			zap.String("resource.namespace", res.GetNamespace()),
+		)
+	}
+
+	return manifest, nil
+}
+
+func (r *NamespacedReconciler) getManifestFromSystemNamespace(broker *eventing.Broker) (mf.Manifest, error) {
 	var resources []unstructured.Unstructured
 
 	additionalConfigMaps, err := r.configMapsFromSystemNamespace(broker)
@@ -281,12 +335,6 @@ func (r *NamespacedReconciler) getManifest(ctx context.Context, broker *eventing
 	}
 	resources = append(resources, additionalRoleBindings...)
 
-	additionalResources, err := r.resourcesFromConfigMap(NamespacedBrokerAdditionalResourcesConfigMapName, broker.Namespace)
-	if err != nil {
-		return mf.Manifest{}, err
-	}
-	resources = append(resources, additionalResources...)
-
 	manifest, err := mf.ManifestFrom(mf.Slice(resources), mf.UseClient(r.ManifestivalClient))
 	if err != nil {
 		return mf.Manifest{}, fmt.Errorf("unable to load dataplane manifest: %w", err)
@@ -297,40 +345,20 @@ func (r *NamespacedReconciler) getManifest(ctx context.Context, broker *eventing
 		return mf.Manifest{}, fmt.Errorf("unable to transform base dataplane manifest with namespace injection. namespace: %s, error: %v", broker.Namespace, err)
 	}
 
-	manifest, err = manifest.Transform(appendNewOwnerRefsToPersisted(manifest.Client, broker))
-	if err != nil {
-		return mf.Manifest{}, fmt.Errorf("unable to append owner ref: %w", err)
-	}
-
-	// Set the namespace as owner ref to cluster-scoped resources. We delete them manually, but as a safety net we set
-	// the namespace as owner ref so that even when cluster scoped resources cannot be deleted, they will be garbage
-	// collected when the namespace is deleted.
-	manifest, err = manifest.Transform(appendNamespaceAsOwnerRefsToClusterScoped(namespace))
-	if err != nil {
-		return mf.Manifest{}, fmt.Errorf("unable to set namespace as owner ref to cluster-scoped resources: %w", err)
-	}
-
 	manifest, err = manifest.Transform(filterMetadata)
 	if err != nil {
 		return mf.Manifest{}, fmt.Errorf("unable to filter metadata: %w", err)
 	}
 
-	manifest, err = manifest.Transform(setLabel)
-	if err != nil {
-		return mf.Manifest{}, fmt.Errorf("unable to set label: %w", err)
-	}
-
-	logger := logging.FromContext(ctx).Desugar()
+	return manifest, nil
+}
 
-	for _, res := range manifest.Resources() {
-		logger.Debug("Resource",
-			zap.String("gvk", res.GroupVersionKind().String()),
-			zap.String("resource.name", res.GetName()),
-			zap.String("resource.namespace", res.GetNamespace()),
-		)
+func (r *NamespacedReconciler) getManifestFromAdditionalResources(broker *eventing.Broker) (mf.Manifest, error) {
+	additionalResources, err := r.resourcesFromConfigMap(NamespacedBrokerAdditionalResourcesConfigMapName, broker.Namespace)
+	if err != nil {
+		return mf.Manifest{}, err
 	}
-
-	return manifest, nil
+	return mf.ManifestFrom(mf.Slice(additionalResources), mf.UseClient(r.ManifestivalClient))
 }
 
 func (r *NamespacedReconciler) deploymentsFromSystemNamespace(broker *eventing.Broker) ([]unstructured.Unstructured, error) {
@@ -624,6 +652,9 @@ func filterMetadata(u *unstructured.Unstructured) error {
 
 func setLabel(u *unstructured.Unstructured) error {
 	labels := u.GetLabels()
+	if labels == nil {
+		labels = make(map[string]string)
+	}
 	labels[kafka.NamespacedBrokerDataplaneLabelKey] = kafka.NamespacedBrokerDataplaneLabelValue
 	u.SetLabels(labels)
 	return nil
diff --git a/go.mod b/go.mod
index a80791aba..2a6bf475a 100644
--- a/go.mod
+++ b/go.mod
@@ -39,10 +39,10 @@ require (
 	github.com/davecgh/go-spew v1.1.1
 	github.com/google/gofuzz v1.2.0
 	github.com/kedacore/keda/v2 v2.8.1
-	knative.dev/eventing v0.36.5
-	knative.dev/hack v0.0.0-20230217131352-f2f3107be156
+	knative.dev/eventing v0.36.1-0.20230228094553-c5847a9d6d1b
+	knative.dev/hack v0.0.0-20230228173453-3de51aff69a3
 	knative.dev/pkg v0.0.0-20230224190030-645afb2d5dad
-	knative.dev/reconciler-test v0.0.0-20230223145336-9b63f8408409
+	knative.dev/reconciler-test v0.0.0-20230227121134-83f751282b88
 	sigs.k8s.io/controller-runtime v0.12.3
 )
 
diff --git a/go.sum b/go.sum
index 402673536..592a2ff01 100644
--- a/go.sum
+++ b/go.sum
@@ -1518,14 +1518,14 @@ k8s.io/utils v0.0.0-20200912215256-4140de9c8800/go.mod h1:jPW/WVKK9YHAvNhRxK0md/
 k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
 k8s.io/utils v0.0.0-20221108210102-8e77b1f39fe2 h1:GfD9OzL11kvZN5iArC6oTS7RTj7oJOIfnislxYlqTj8=
 k8s.io/utils v0.0.0-20221108210102-8e77b1f39fe2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
-knative.dev/eventing v0.36.5 h1:iP0bjP4K5QMJ+MkRTEpPNrOvO0CmeGeGulQ8ECMJrS0=
-knative.dev/eventing v0.36.5/go.mod h1:Qka5Z6+LeMoHGL1QAznVdmq5LAu21b4F3rgxc2AMgRg=
-knative.dev/hack v0.0.0-20230217131352-f2f3107be156 h1:l4/KJeKC7Nrm9WUF3AhAnvoj00OogWfPJKrBP8tbN8c=
-knative.dev/hack v0.0.0-20230217131352-f2f3107be156/go.mod h1:yk2OjGDsbEnQjfxdm0/HJKS2WqTLEFg/N6nUs6Rqx3Q=
+knative.dev/eventing v0.36.1-0.20230228094553-c5847a9d6d1b h1:0VA2rnzO5GKyIn0XbFs1y6IIywbIr5cDyuplezLexrA=
+knative.dev/eventing v0.36.1-0.20230228094553-c5847a9d6d1b/go.mod h1:KdJr+MAkvWJJqRcyN0i1i9FIT3SMkxx9mEW8aR2E1KQ=
+knative.dev/hack v0.0.0-20230228173453-3de51aff69a3 h1:Jt3n+AZsZHZaFhk/A1NnboAvgjV+hvvyeyyuIX/hUx0=
+knative.dev/hack v0.0.0-20230228173453-3de51aff69a3/go.mod h1:yk2OjGDsbEnQjfxdm0/HJKS2WqTLEFg/N6nUs6Rqx3Q=
 knative.dev/pkg v0.0.0-20230224190030-645afb2d5dad h1:RIjysOocoRfalLJgaSBkKHf6NrgdvAagF1x2CNihjqc=
 knative.dev/pkg v0.0.0-20230224190030-645afb2d5dad/go.mod h1:TlO24rbgdsfqpkwZi1Ddue/LiVbvzankhaXpVdP+Nok=
-knative.dev/reconciler-test v0.0.0-20230223145336-9b63f8408409 h1:PZW3aWPuZeWwym9uyxady0jNp5ga4mCHC0ZZjxmd+M8=
-knative.dev/reconciler-test v0.0.0-20230223145336-9b63f8408409/go.mod h1:NPZaUCaPRnT0KpJf/drvgKQ570oJxkNwHdpfb+MM9wo=
+knative.dev/reconciler-test v0.0.0-20230227121134-83f751282b88 h1:3oBPzrmwGarLm61ph6/Uno3J+7BTw6ejDbKUw29Kupc=
+knative.dev/reconciler-test v0.0.0-20230227121134-83f751282b88/go.mod h1:HphpqxnHUn3cHxqIeDpZa3eet1t3TehpAqgLUA+oLjQ=
 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/cmd/event_display/main.go b/vendor/knative.dev/eventing/cmd/event_display/main.go
index e18adfbd9..4c3c41c8d 100644
--- a/vendor/knative.dev/eventing/cmd/event_display/main.go
+++ b/vendor/knative.dev/eventing/cmd/event_display/main.go
@@ -17,11 +17,16 @@ limitations under the License.
 package main
 
 import (
+	"bytes"
 	"context"
+	"encoding/json"
 	"fmt"
+	"io"
 	"log"
 	"net/http"
+	"net/url"
 	"os"
+	"strconv"
 
 	"github.com/cloudevents/sdk-go/observability/opencensus/v2/client"
 	cloudevents "github.com/cloudevents/sdk-go/v2"
@@ -65,8 +70,17 @@ func main() {
 }
 
 func run(ctx context.Context) {
+
+	requestLoggingEnabled, _ := strconv.ParseBool(os.Getenv("REQUEST_LOGGING_ENABLED"))
+	if requestLoggingEnabled {
+		log.Println("Request logging enabled, request logging is not recommended for production since it might log sensitive information")
+	}
+
 	c, err := client.NewClientHTTP(
-		[]cehttp.Option{cehttp.WithMiddleware(healthzMiddleware)}, nil,
+		[]cehttp.Option{
+			cehttp.WithMiddleware(healthzMiddleware),
+			cehttp.WithMiddleware(requestLoggingMiddleware(requestLoggingEnabled)),
+		}, nil,
 	)
 	if err != nil {
 		log.Fatal("Failed to create client: ", err)
@@ -99,3 +113,65 @@ func healthzMiddleware(next http.Handler) http.Handler {
 		}
 	})
 }
+
+// requestLoggingMiddleware is a cehttp.Middleware which logs incoming requests.
+func requestLoggingMiddleware(enabled bool) func(next http.Handler) http.Handler {
+	return func(next http.Handler) http.Handler {
+		return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
+			if enabled {
+				logRequest(req)
+			}
+			next.ServeHTTP(w, req)
+		})
+	}
+}
+
+type LoggableRequest struct {
+	Method           string      `json:"method,omitempty"`
+	URL              *url.URL    `json:"URL,omitempty"`
+	Proto            string      `json:"proto,omitempty"`
+	ProtoMajor       int         `json:"protoMajor,omitempty"`
+	ProtoMinor       int         `json:"protoMinor,omitempty"`
+	Header           http.Header `json:"headers,omitempty"`
+	Body             string      `json:"body,omitempty"`
+	ContentLength    int64       `json:"contentLength,omitempty"`
+	TransferEncoding []string    `json:"transferEncoding,omitempty"`
+	Host             string      `json:"host,omitempty"`
+	Trailer          http.Header `json:"trailer,omitempty"`
+	RemoteAddr       string      `json:"remoteAddr"`
+	RequestURI       string      `json:"requestURI"`
+}
+
+func logRequest(req *http.Request) {
+	b, err := json.MarshalIndent(toReq(req), "", "  ")
+	if err != nil {
+		log.Println("failed to marshal request", err)
+	}
+
+	log.Println(string(b))
+}
+
+func toReq(req *http.Request) LoggableRequest {
+	body, err := io.ReadAll(req.Body)
+	if err != nil {
+		log.Println("failed to read request body")
+	}
+	_ = req.Body.Close()
+	// Replace the body with a new reader after reading from the original
+	req.Body = io.NopCloser(bytes.NewBuffer(body))
+	return LoggableRequest{
+		Method:           req.Method,
+		URL:              req.URL,
+		Proto:            req.Proto,
+		ProtoMajor:       req.ProtoMajor,
+		ProtoMinor:       req.ProtoMinor,
+		Header:           req.Header,
+		Body:             string(body),
+		ContentLength:    req.ContentLength,
+		TransferEncoding: req.TransferEncoding,
+		Host:             req.Host,
+		Trailer:          req.Trailer,
+		RemoteAddr:       req.RemoteAddr,
+		RequestURI:       req.RequestURI,
+	}
+}
diff --git a/vendor/knative.dev/eventing/pkg/apis/messaging/v1/subscription_defaults.go b/vendor/knative.dev/eventing/pkg/apis/messaging/v1/subscription_defaults.go
index 0e894fc63..c2e5e38be 100644
--- a/vendor/knative.dev/eventing/pkg/apis/messaging/v1/subscription_defaults.go
+++ b/vendor/knative.dev/eventing/pkg/apis/messaging/v1/subscription_defaults.go
@@ -34,5 +34,8 @@ func (ss *SubscriptionSpec) SetDefaults(ctx context.Context) {
 	if ss == nil {
 		return
 	}
+
+	ss.Subscriber.SetDefaults(ctx)
+	ss.Reply.SetDefaults(ctx)
 	ss.Delivery.SetDefaults(ctx)
 }
diff --git a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/broker/controller.go b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/broker/controller.go
index 8586a68ac..5e1865985 100644
--- a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/broker/controller.go
+++ b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/broker/controller.go
@@ -67,10 +67,15 @@ func NewImpl(ctx context.Context, r Interface, classValue string, optionsFns ...
 	lister := brokerInformer.Lister()
 
 	var promoteFilterFunc func(obj interface{}) bool
+	var promoteFunc = func(bkt reconciler.Bucket) {}
 
 	rec := &reconcilerImpl{
 		LeaderAwareFuncs: reconciler.LeaderAwareFuncs{
 			PromoteFunc: func(bkt reconciler.Bucket, enq func(reconciler.Bucket, types.NamespacedName)) error {
+
+				// Signal promotion event
+				promoteFunc(bkt)
+
 				all, err := lister.List(labels.Everything())
 				if err != nil {
 					return err
@@ -129,6 +134,9 @@ func NewImpl(ctx context.Context, r Interface, classValue string, optionsFns ...
 		if opts.PromoteFilterFunc != nil {
 			promoteFilterFunc = opts.PromoteFilterFunc
 		}
+		if opts.PromoteFunc != nil {
+			promoteFunc = opts.PromoteFunc
+		}
 	}
 
 	rec.Recorder = createRecorder(ctx, agentName)
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 7d45bc48c..5ae50f59f 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
@@ -24,6 +24,7 @@ import (
 	fmt "fmt"
 
 	zap "go.uber.org/zap"
+	"go.uber.org/zap/zapcore"
 	corev1 "k8s.io/api/core/v1"
 	equality "k8s.io/apimachinery/pkg/api/equality"
 	errors "k8s.io/apimachinery/pkg/api/errors"
@@ -283,7 +284,7 @@ func (r *reconcilerImpl) Reconcile(ctx context.Context, key string) error {
 		// the elected leader is expected to write modifications.
 		logger.Warn("Saw status changes when we aren't the leader!")
 	default:
-		if err = r.updateStatus(ctx, original, resource); err != nil {
+		if err = r.updateStatus(ctx, logger, original, resource); err != nil {
 			logger.Warnw("Failed to update resource status", zap.Error(err))
 			r.Recorder.Eventf(resource, corev1.EventTypeWarning, "UpdateFailed",
 				"Failed to update status for %q: %v", resource.Name, err)
@@ -319,7 +320,7 @@ func (r *reconcilerImpl) Reconcile(ctx context.Context, key string) error {
 	return nil
 }
 
-func (r *reconcilerImpl) updateStatus(ctx context.Context, existing *v1.Broker, desired *v1.Broker) error {
+func (r *reconcilerImpl) updateStatus(ctx context.Context, logger *zap.SugaredLogger, existing *v1.Broker, desired *v1.Broker) 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.
@@ -338,8 +339,10 @@ func (r *reconcilerImpl) updateStatus(ctx context.Context, existing *v1.Broker,
 			return nil
 		}
 
-		if diff, err := kmp.SafeDiff(existing.Status, desired.Status); err == nil && diff != "" {
-			logging.FromContext(ctx).Debug("Updating status with: ", diff)
+		if logger.Desugar().Core().Enabled(zapcore.DebugLevel) {
+			if diff, err := kmp.SafeDiff(existing.Status, desired.Status); err == nil && diff != "" {
+				logger.Debug("Updating status with: ", diff)
+			}
 		}
 
 		existing.Status = desired.Status
diff --git a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/controller.go b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/controller.go
index 81c543f8e..89f35be5f 100644
--- a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/controller.go
+++ b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/controller.go
@@ -64,10 +64,15 @@ func NewImpl(ctx context.Context, r Interface, optionsFns ...controller.OptionsF
 	lister := triggerInformer.Lister()
 
 	var promoteFilterFunc func(obj interface{}) bool
+	var promoteFunc = func(bkt reconciler.Bucket) {}
 
 	rec := &reconcilerImpl{
 		LeaderAwareFuncs: reconciler.LeaderAwareFuncs{
 			PromoteFunc: func(bkt reconciler.Bucket, enq func(reconciler.Bucket, types.NamespacedName)) error {
+
+				// Signal promotion event
+				promoteFunc(bkt)
+
 				all, err := lister.List(labels.Everything())
 				if err != nil {
 					return err
@@ -125,6 +130,9 @@ func NewImpl(ctx context.Context, r Interface, optionsFns ...controller.OptionsF
 		if opts.PromoteFilterFunc != nil {
 			promoteFilterFunc = opts.PromoteFilterFunc
 		}
+		if opts.PromoteFunc != nil {
+			promoteFunc = opts.PromoteFunc
+		}
 	}
 
 	rec.Recorder = createRecorder(ctx, agentName)
diff --git a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/reconciler.go b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/reconciler.go
index 63f70f9c4..9d96e3699 100644
--- a/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/reconciler.go
+++ b/vendor/knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger/reconciler.go
@@ -24,6 +24,7 @@ import (
 	fmt "fmt"
 
 	zap "go.uber.org/zap"
+	"go.uber.org/zap/zapcore"
 	corev1 "k8s.io/api/core/v1"
 	equality "k8s.io/apimachinery/pkg/api/equality"
 	errors "k8s.io/apimachinery/pkg/api/errors"
@@ -272,7 +273,7 @@ func (r *reconcilerImpl) Reconcile(ctx context.Context, key string) error {
 		// the elected leader is expected to write modifications.
 		logger.Warn("Saw status changes when we aren't the leader!")
 	default:
-		if err = r.updateStatus(ctx, original, resource); err != nil {
+		if err = r.updateStatus(ctx, logger, original, resource); err != nil {
 			logger.Warnw("Failed to update resource status", zap.Error(err))
 			r.Recorder.Eventf(resource, corev1.EventTypeWarning, "UpdateFailed",
 				"Failed to update status for %q: %v", resource.Name, err)
@@ -308,7 +309,7 @@ func (r *reconcilerImpl) Reconcile(ctx context.Context, key string) error {
 	return nil
 }
 
-func (r *reconcilerImpl) updateStatus(ctx context.Context, existing *v1.Trigger, desired *v1.Trigger) error {
+func (r *reconcilerImpl) updateStatus(ctx context.Context, logger *zap.SugaredLogger, 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.
@@ -327,8 +328,10 @@ func (r *reconcilerImpl) updateStatus(ctx context.Context, existing *v1.Trigger,
 			return nil
 		}
 
-		if diff, err := kmp.SafeDiff(existing.Status, desired.Status); err == nil && diff != "" {
-			logging.FromContext(ctx).Debug("Updating status with: ", diff)
+		if logger.Desugar().Core().Enabled(zapcore.DebugLevel) {
+			if diff, err := kmp.SafeDiff(existing.Status, desired.Status); err == nil && diff != "" {
+				logger.Debug("Updating status with: ", diff)
+			}
 		}
 
 		existing.Status = desired.Status
diff --git a/vendor/knative.dev/eventing/pkg/duck/listable.go b/vendor/knative.dev/eventing/pkg/duck/listable.go
index 94c0455e2..4bb9262c5 100644
--- a/vendor/knative.dev/eventing/pkg/duck/listable.go
+++ b/vendor/knative.dev/eventing/pkg/duck/listable.go
@@ -20,7 +20,6 @@ import (
 	"context"
 	"fmt"
 	"sync"
-	"time"
 
 	"github.com/pkg/errors"
 	corev1 "k8s.io/api/core/v1"
@@ -28,7 +27,6 @@ import (
 	"k8s.io/apimachinery/pkg/api/meta"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/runtime/schema"
-	"k8s.io/apimachinery/pkg/types"
 	"k8s.io/client-go/tools/cache"
 	"knative.dev/pkg/apis/duck"
 	duckv1 "knative.dev/pkg/apis/duck/v1"
@@ -57,12 +55,6 @@ type ListableTracker interface {
 type Track func(corev1.ObjectReference) error
 type TrackKReference func(duckv1.KReference) error
 
-// NewListableTracker creates a new ListableTracker, backed by a TypedInformerFactory.
-// Deprecated: use NewListableTrackerFromTracker instead.
-func NewListableTracker(ctx context.Context, getter func(context.Context) duck.InformerFactory, callback func(types.NamespacedName), lease time.Duration) ListableTracker {
-	return NewListableTrackerFromTracker(ctx, getter, tracker.New(callback, lease))
-}
-
 // NewListableTrackerFromTracker creates a new ListableTracker, backed by a TypedInformerFactory.
 func NewListableTrackerFromTracker(ctx context.Context, getter func(context.Context) duck.InformerFactory, t tracker.Interface) ListableTracker {
 	return &listableTracker{
diff --git a/vendor/knative.dev/eventing/pkg/kncloudevents/message_sender.go b/vendor/knative.dev/eventing/pkg/kncloudevents/message_sender.go
index 2eeecef51..1940439ad 100644
--- a/vendor/knative.dev/eventing/pkg/kncloudevents/message_sender.go
+++ b/vendor/knative.dev/eventing/pkg/kncloudevents/message_sender.go
@@ -34,12 +34,6 @@ type HTTPMessageSender struct {
 	Target string
 }
 
-// Deprecated: Don't use this anymore, now it has the same effect of NewHTTPMessageSenderWithTarget
-// If you need to modify the connection args, use ConfigureConnectionArgs sparingly.
-func NewHTTPMessageSender(ca *ConnectionArgs, target string) (*HTTPMessageSender, error) {
-	return NewHTTPMessageSenderWithTarget(target)
-}
-
 func NewHTTPMessageSenderWithTarget(target string) (*HTTPMessageSender, error) {
 	return &HTTPMessageSender{Client: getClient(), Target: target}, nil
 }
diff --git a/vendor/knative.dev/eventing/pkg/utils/secret.go b/vendor/knative.dev/eventing/pkg/utils/secret.go
index 26e24ce37..b8063edd9 100644
--- a/vendor/knative.dev/eventing/pkg/utils/secret.go
+++ b/vendor/knative.dev/eventing/pkg/utils/secret.go
@@ -66,11 +66,26 @@ func CopySecret(corev1Input clientcorev1.CoreV1Interface, srcNS string, srcSecre
 		return nil, fmt.Errorf("error copying the Secret: %s", err)
 	}
 
-	_, err = tgtNamespaceSvcAcct.Patch(context.Background(), svcAccount, types.StrategicMergePatchType,
-		[]byte(`{"imagePullSecrets":[{"name":"`+srcSecretName+`"}]}`), metav1.PatchOptions{})
+	tgtSvcAccount, err := tgtNamespaceSvcAcct.Get(context.Background(), svcAccount, metav1.GetOptions{})
 	if err != nil {
-		return nil, fmt.Errorf("patch failed on NS/SA (%s/%s): %s",
-			tgtNS, srcSecretName, err)
+		return nil, fmt.Errorf("error getting service account %s: %w", svcAccount, err)
+	}
+
+	for _, secret := range tgtSvcAccount.ImagePullSecrets {
+		if secret.Name == srcSecretName {
+			return newSecret, nil
+		}
+	}
+	// Prevent overwriting existing imagePullSecrets
+	patch := `[{"op":"add","path":"/imagePullSecrets/-","value":{"name":"` + srcSecretName + `"}}]`
+	if len(tgtSvcAccount.ImagePullSecrets) == 0 {
+		patch = `[{"op":"add","path":"/imagePullSecrets","value":[{"name":"` + srcSecretName + `"}]}]`
+	}
+	_, err = tgtNamespaceSvcAcct.Patch(context.Background(), svcAccount, types.JSONPatchType,
+		[]byte(patch), metav1.PatchOptions{})
+	if err != nil {
+		return nil, fmt.Errorf("patch failed on NS/SA (%s/%s): %w",
+			tgtNS, svcAccount, err)
 	}
 	return newSecret, nil
 }
diff --git a/vendor/knative.dev/hack/release.sh b/vendor/knative.dev/hack/release.sh
index 41d76d6ea..135fa8b7c 100644
--- a/vendor/knative.dev/hack/release.sh
+++ b/vendor/knative.dev/hack/release.sh
@@ -730,7 +730,7 @@ function main() {
 # Parameters: $1..$n - files to add to the release.
 function publish_to_github() {
   (( PUBLISH_TO_GITHUB )) || return 0
-  local title="${REPO_NAME_FORMATTED} release ${TAG}"
+  local title="${TAG}"
   local attachments=()
   local description="$(mktemp)"
   local attachments_dir="$(mktemp -d)"
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 013c545f7..ed04a1f22 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -1221,7 +1221,7 @@ k8s.io/utils/net
 k8s.io/utils/pointer
 k8s.io/utils/strings/slices
 k8s.io/utils/trace
-# knative.dev/eventing v0.36.5
+# knative.dev/eventing v0.36.1-0.20230228094553-c5847a9d6d1b
 ## explicit; go 1.18
 knative.dev/eventing/cmd/event_display
 knative.dev/eventing/pkg/apis/config
@@ -1343,7 +1343,6 @@ knative.dev/eventing/test/rekt/resources/channel
 knative.dev/eventing/test/rekt/resources/channel_impl
 knative.dev/eventing/test/rekt/resources/containersource
 knative.dev/eventing/test/rekt/resources/delivery
-knative.dev/eventing/test/rekt/resources/flaker
 knative.dev/eventing/test/rekt/resources/pingsource
 knative.dev/eventing/test/rekt/resources/source
 knative.dev/eventing/test/rekt/resources/subscription
@@ -1369,7 +1368,7 @@ 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-20230217131352-f2f3107be156
+# knative.dev/hack v0.0.0-20230228173453-3de51aff69a3
 ## explicit; go 1.18
 knative.dev/hack
 knative.dev/hack/shell
@@ -1483,7 +1482,7 @@ knative.dev/pkg/webhook/json
 knative.dev/pkg/webhook/resourcesemantics
 knative.dev/pkg/webhook/resourcesemantics/defaulting
 knative.dev/pkg/webhook/resourcesemantics/validation
-# knative.dev/reconciler-test v0.0.0-20230223145336-9b63f8408409
+# knative.dev/reconciler-test v0.0.0-20230227121134-83f751282b88
 ## explicit; go 1.18
 knative.dev/reconciler-test/cmd/eventshub
 knative.dev/reconciler-test/pkg/environment


Test patch:
diff --git a/control-plane/pkg/reconciler/broker/namespaced_broker_test.go b/control-plane/pkg/reconciler/broker/namespaced_broker_test.go
index 7da4b1e5d..935acd7b9 100644
--- a/control-plane/pkg/reconciler/broker/namespaced_broker_test.go
+++ b/control-plane/pkg/reconciler/broker/namespaced_broker_test.go
@@ -131,6 +131,20 @@ func namespacedBrokerReconciliation(t *testing.T, format string, env config.Env)
         - pods
       verbs:
         - get
+- apiVersion: rbac.authorization.k8s.io/v1
+  kind: RoleBinding
+  metadata:
+    creationTimestamp: null
+    name: test-role
+    namespace: {{.Namespace}}
+  roleRef:
+    apiGroup: rbac.authorization.k8s.io
+    kind: ClusterRole
+    name: test-role
+  subjects:
+    - kind: ServiceAccount
+      name: test-sa
+      namespace: not-to-be-overridden
 `,
 				}),
 			},
@@ -199,6 +213,12 @@ func namespacedBrokerReconciliation(t *testing.T, format string, env config.Env)
 					WithNamespacedBrokerNamespaceAsOwnerRef,
 					WithNamespacedLabel,
 				),
+				ToManifestivalResource(t, NewRoleBinding(BrokerNamespace, "test-role",
+					WithRoleBindingSubjectServiceAccount("not-to-be-overridden", "test-sa"),
+					WithRoleBindingClusterRoleRef("test-role")),
+					WithNamespacedBrokerOwnerRef,
+					WithNamespacedLabel,
+				),
 				NewConfigMapWithBinaryData(BrokerNamespace, env.ContractConfigMapName, nil,
 					reconcilertesting.WithConfigMapLabels(metav1.LabelSelector{MatchLabels: map[string]string{"eventing.knative.dev/namespaced": "true"}}),
 					WithConfigmapOwnerRef(&metav1.OwnerReference{
diff --git a/test/e2e_broker/broker_with_many_triggers_test.go b/test/e2e_broker/broker_with_many_triggers_test.go
deleted file mode 100644
index 06b116e34..000000000
--- a/test/e2e_broker/broker_with_many_triggers_test.go
+++ /dev/null
@@ -1,35 +0,0 @@
-//go:build e2e
-// +build e2e
-
-/*
- * 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 e2e_broker
-
-import (
-	"context"
-	"testing"
-
-	"knative.dev/eventing/test/e2e/helpers"
-
-	testbroker "knative.dev/eventing-kafka-broker/test/pkg/broker"
-)
-
-func TestBrokerWithManyTriggers(t *testing.T) {
-	t.Skip("Pass more events than necessary (related? https://knative.slack.com/archives/C9JP909F0/p1595244377489600)")
-
-	helpers.TestBrokerWithManyTriggers(context.Background(), t, testbroker.Creator, false)
-}
diff --git a/test/pkg/tracing/zipkin.go b/test/pkg/tracing/zipkin.go
index 5bf507e05..35f2d794d 100644
--- a/test/pkg/tracing/zipkin.go
+++ b/test/pkg/tracing/zipkin.go
@@ -31,6 +31,5 @@ func WithZipkin(ctx context.Context, env environment.Environment) (context.Conte
 		kubeclient.Get(ctx),
 		logging.FromContext(ctx).Infof,
 		knative.KnativeNamespaceFromContext(ctx))
-	zipkin.ZipkinTracingEnabled = true
 	return ctx, err
 }
diff --git a/test/rekt/features/namespaced_broker.go b/test/rekt/features/namespaced_broker.go
index ec1b927ba..9ff8de0d7 100644
--- a/test/rekt/features/namespaced_broker.go
+++ b/test/rekt/features/namespaced_broker.go
@@ -21,7 +21,6 @@ import (
 
 	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 	"knative.dev/eventing/test/rekt/resources/broker"
-	"knative.dev/pkg/system"
 	"knative.dev/reconciler-test/pkg/feature"
 
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/kafka"
@@ -63,7 +62,7 @@ func NamespacedBrokerResourcesPropagation() *feature.Feature {
 			"kind":       "ConfigMap",
 			"metadata": map[string]interface{}{
 				"name":      additionalCMName,
-				"namespace": system.Namespace(),
+				"namespace": "{{.Namespace}}",
 			},
 			"data": map[string]string{
 				"config":           "x-unknown-config",
@@ -91,9 +90,6 @@ func NamespacedBrokerResourcesPropagation() *feature.Feature {
 	f.Requirement("Broker is ready", broker.IsReady(br))
 	f.Requirement("Broker is addressable", broker.IsAddressable(br))
 
-	f.Assert(fmt.Sprintf("%s ConfigMap is not present in %s as we override the namespace with the broker namespace",
-		additionalCMName, system.Namespace()),
-		configmap.DoesNotExist(additionalCMName, system.Namespace()))
 	f.Assert(fmt.Sprintf("%s ConfigMap is present in test namespace", additionalCMName),
 		configmap.ExistsInTestNamespace(additionalCMName))
 
diff --git a/vendor/knative.dev/eventing/test/e2e/helpers/broker_event_transformation_test_helper.go b/vendor/knative.dev/eventing/test/e2e/helpers/broker_event_transformation_test_helper.go
index db93f6f76..bbfae53b3 100644
--- a/vendor/knative.dev/eventing/test/e2e/helpers/broker_event_transformation_test_helper.go
+++ b/vendor/knative.dev/eventing/test/e2e/helpers/broker_event_transformation_test_helper.go
@@ -17,11 +17,13 @@ package helpers
 
 import (
 	"context"
+	"strings"
 	"testing"
 
 	cloudevents "github.com/cloudevents/sdk-go/v2"
 	. "github.com/cloudevents/sdk-go/v2/test"
 	"github.com/google/uuid"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
 	testlib "knative.dev/eventing/test/lib"
 	"knative.dev/eventing/test/lib/recordevents"
@@ -44,6 +46,7 @@ EventSource ---> Broker ---> Trigger1 -------> Service(Transformation)
 
 Note: the number denotes the sequence of the event that flows in this test case.
 */
+// Deprecated, use reconciler-test based tests.
 func EventTransformationForTriggerTestHelper(
 	ctx context.Context,
 	t *testing.T,
@@ -130,3 +133,28 @@ func EventTransformationForTriggerTestHelper(
 		HasData([]byte(eventBody)),
 	))
 }
+
+// BrokerCreator creates a broker and returns its broker name.
+type BrokerCreator func(client *testlib.Client, version string) string
+
+// ChannelBasedBrokerCreator creates a BrokerCreator that creates a broker based on the channel parameter.
+func ChannelBasedBrokerCreator(channel metav1.TypeMeta, brokerClass string) BrokerCreator {
+	return func(client *testlib.Client, version string) string {
+		brokerName := strings.ToLower(channel.Kind)
+
+		// create a ConfigMap used by the broker.
+		config := client.CreateBrokerConfigMapOrFail("config-"+brokerName, &channel)
+
+		switch version {
+		case "v1":
+			client.CreateBrokerOrFail(brokerName,
+				resources.WithBrokerClassForBroker(brokerClass),
+				resources.WithConfigForBroker(config),
+			)
+		default:
+			panic("unknown version: " + version)
+		}
+
+		return brokerName
+	}
+}
diff --git a/vendor/knative.dev/eventing/test/e2e/helpers/broker_test_helper.go b/vendor/knative.dev/eventing/test/e2e/helpers/broker_test_helper.go
deleted file mode 100644
index cc2b3c5b5..000000000
--- a/vendor/knative.dev/eventing/test/e2e/helpers/broker_test_helper.go
+++ /dev/null
@@ -1,347 +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 helpers
-
-import (
-	"context"
-	"fmt"
-	"net/url"
-	"sort"
-	"strings"
-	"testing"
-
-	cloudevents "github.com/cloudevents/sdk-go/v2"
-	"github.com/cloudevents/sdk-go/v2/binding/spec"
-	cetest "github.com/cloudevents/sdk-go/v2/test"
-	"github.com/google/uuid"
-
-	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
-	v1 "knative.dev/eventing/pkg/apis/eventing/v1"
-	testlib "knative.dev/eventing/test/lib"
-	"knative.dev/eventing/test/lib/recordevents"
-	"knative.dev/eventing/test/lib/resources"
-)
-
-type eventTestCase struct {
-	Type       string
-	Source     string
-	Extensions map[string]interface{}
-}
-
-// ToString converts the test case to a string to create names for different objects (e.g., triggers, services, etc.).
-func (tc eventTestCase) String() string {
-	eventType := tc.Type
-	eventSource := tc.Source
-	extensions := tc.Extensions
-	// Pod names need to be lowercase. We might have an eventType as Any, that is why we lowercase them.
-	if eventType == v1.TriggerAnyFilter {
-		eventType = "testany"
-	}
-	if eventSource == v1.TriggerAnyFilter {
-		eventSource = "testany"
-	} else {
-		u, _ := url.Parse(eventSource)
-		eventSource = strings.Split(u.Host, ".")[0]
-	}
-	name := strings.ToLower(fmt.Sprintf("%s-%s", eventType, eventSource))
-	if len(extensions) > 0 {
-		name = strings.ToLower(fmt.Sprintf("%s-%s", name, extensionsToString(extensions)))
-	}
-	return name
-}
-
-// ToEventMatcher converts the test case to the event matcher
-func (tc eventTestCase) ToEventMatcher() cetest.EventMatcher {
-	var matchers []cetest.EventMatcher
-	if tc.Type == v1.TriggerAnyFilter {
-		matchers = append(matchers, cetest.ContainsAttributes(spec.Type))
-	} else {
-		matchers = append(matchers, cetest.HasType(tc.Type))
-	}
-
-	if tc.Source == v1.TriggerAnyFilter {
-		matchers = append(matchers, cetest.ContainsAttributes(spec.Source))
-	} else {
-		matchers = append(matchers, cetest.HasSource(tc.Source))
-	}
-
-	for k, v := range tc.Extensions {
-		if v == v1.TriggerAnyFilter {
-			matchers = append(matchers, cetest.ContainsExtensions(k))
-		} else {
-			matchers = append(matchers, cetest.HasExtension(k, v))
-		}
-	}
-
-	return cetest.AllOf(matchers...)
-}
-
-// BrokerCreator creates a broker and returns its broker name.
-// TestBrokerWithManyTriggers will wait for the broker to become ready.
-type BrokerCreator func(client *testlib.Client, version string) string
-
-// ChannelBasedBrokerCreator creates a BrokerCreator that creates a broker based on the channel parameter.
-func ChannelBasedBrokerCreator(channel metav1.TypeMeta, brokerClass string) BrokerCreator {
-	return func(client *testlib.Client, version string) string {
-		brokerName := strings.ToLower(channel.Kind)
-
-		// create a ConfigMap used by the broker.
-		config := client.CreateBrokerConfigMapOrFail("config-"+brokerName, &channel)
-
-		switch version {
-		case "v1":
-			client.CreateBrokerOrFail(brokerName,
-				resources.WithBrokerClassForBroker(brokerClass),
-				resources.WithConfigForBroker(config),
-			)
-		default:
-			panic("unknown version: " + version)
-		}
-
-		return brokerName
-	}
-}
-
-// If shouldLabelNamespace is set to true this test annotates the testing namespace so that a default broker is created.
-// It then binds many triggers with different filtering patterns to the broker created by brokerCreator, and sends
-// different events to the broker's address.
-// Finally, it verifies that only the appropriate events are routed to the subscribers.
-func TestBrokerWithManyTriggers(ctx context.Context, t *testing.T, brokerCreator BrokerCreator, shouldLabelNamespace bool) {
-	const (
-		any          = v1.TriggerAnyFilter
-		eventType1   = "type1"
-		eventType2   = "type2"
-		eventSource1 = "http://source1.com"
-		eventSource2 = "http://source2.com"
-		// Be careful with the length of extension name and values,
-		// we use extension name and value as a part of the name of resources like subscriber and trigger,
-		// the maximum characters allowed of resource name is 63
-		extensionName1            = "extname1"
-		extensionValue1           = "extval1"
-		extensionName2            = "extname2"
-		extensionValue2           = "extvalue2"
-		nonMatchingExtensionName  = "nonmatchingextname"
-		nonMatchingExtensionValue = "nonmatchingextval"
-	)
-	tests := []struct {
-		name string
-		// These are the event context attributes and extension attributes that will be send.
-		eventsToSend []eventTestCase
-		// These are the event context attributes and extension attributes that triggers will listen to,
-		// to set in the subscriber and services pod
-		// The attributes in these test cases will be used as assertions on the receivers
-		eventFilters []eventTestCase
-		// TriggerFilter with DeprecatedSourceAndType or not
-		deprecatedTriggerFilter bool
-	}{
-		{
-			name: "test default broker with many deprecated triggers",
-			eventsToSend: []eventTestCase{
-				{Type: eventType1, Source: eventSource1},
-				{Type: eventType1, Source: eventSource2},
-				{Type: eventType2, Source: eventSource1},
-				{Type: eventType2, Source: eventSource2},
-			},
-			eventFilters: []eventTestCase{
-				{Type: any, Source: any},
-				{Type: eventType1, Source: any},
-				{Type: any, Source: eventSource1},
-				{Type: eventType1, Source: eventSource1},
-			},
-			deprecatedTriggerFilter: true,
-		}, {
-			name: "test default broker with many attribute triggers",
-			eventsToSend: []eventTestCase{
-				{Type: eventType1, Source: eventSource1},
-				{Type: eventType1, Source: eventSource2},
-				{Type: eventType2, Source: eventSource1},
-				{Type: eventType2, Source: eventSource2},
-			},
-			eventFilters: []eventTestCase{
-				{Type: any, Source: any},
-				{Type: eventType1, Source: any},
-				{Type: any, Source: eventSource1},
-				{Type: eventType1, Source: eventSource1},
-			},
-			deprecatedTriggerFilter: false,
-		}, {
-			name: "test default broker with many attribute and extension triggers",
-			eventsToSend: []eventTestCase{
-				{Type: eventType1, Source: eventSource1, Extensions: map[string]interface{}{extensionName1: extensionValue1}},
-				{Type: eventType1, Source: eventSource1, Extensions: map[string]interface{}{extensionName1: extensionValue1, extensionName2: extensionValue2}},
-				{Type: eventType1, Source: eventSource1, Extensions: map[string]interface{}{extensionName2: extensionValue2}},
-				{Type: eventType1, Source: eventSource2, Extensions: map[string]interface{}{extensionName1: extensionValue1}},
-				{Type: eventType2, Source: eventSource1, Extensions: map[string]interface{}{extensionName1: nonMatchingExtensionValue}},
-				{Type: eventType2, Source: eventSource2, Extensions: map[string]interface{}{nonMatchingExtensionName: extensionValue1}},
-				{Type: eventType2, Source: eventSource2, Extensions: map[string]interface{}{extensionName1: extensionValue1, extensionName2: extensionValue2}},
-				{Type: eventType2, Source: eventSource2, Extensions: map[string]interface{}{extensionName1: extensionValue1, nonMatchingExtensionName: extensionValue2}},
-			},
-			eventFilters: []eventTestCase{
-				{Type: any, Source: any, Extensions: map[string]interface{}{extensionName1: extensionValue1}},
-				{Type: any, Source: any, Extensions: map[string]interface{}{extensionName1: extensionValue1, extensionName2: extensionValue2}},
-				{Type: any, Source: any, Extensions: map[string]interface{}{extensionName2: extensionValue2}},
-				{Type: eventType1, Source: any, Extensions: map[string]interface{}{extensionName1: extensionValue1}},
-				{Type: any, Source: any, Extensions: map[string]interface{}{extensionName1: any}},
-				{Type: any, Source: eventSource1, Extensions: map[string]interface{}{extensionName1: extensionValue1}},
-				{Type: any, Source: eventSource1, Extensions: map[string]interface{}{extensionName1: extensionValue1, extensionName2: extensionValue2}},
-			},
-			deprecatedTriggerFilter: false,
-		},
-	}
-	for _, test := range tests {
-		t.Run(test.name, func(t *testing.T) {
-			client := testlib.Setup(t, true)
-			defer testlib.TearDown(client)
-
-			if shouldLabelNamespace {
-				// Label namespace so that it creates the default broker.
-				if err := client.LabelNamespace(map[string]string{InjectionLabelKey: InjectionEnabledLabelValue}); err != nil {
-					t.Fatal("Error labeling namespace:", err)
-				}
-			}
-
-			brokerName := brokerCreator(client, "v1")
-
-			// Wait for broker ready.
-			client.WaitForResourceReadyOrFail(brokerName, testlib.BrokerTypeMeta)
-
-			if shouldLabelNamespace {
-				// Test if namespace reconciler would recreate broker once broker was deleted.
-				if err := client.Eventing.EventingV1().Brokers(client.Namespace).Delete(context.Background(), brokerName, metav1.DeleteOptions{}); err != nil {
-					t.Fatal("Can't delete default broker in namespace:", client.Namespace)
-				}
-				client.WaitForResourceReadyOrFail(brokerName, testlib.BrokerTypeMeta)
-			}
-
-			// Let's start event recorders and triggers
-			eventTrackers := make(map[string]*recordevents.EventInfoStore, len(test.eventFilters))
-			for _, event := range test.eventFilters {
-				// Create event recorder pod and service
-				subscriberName := "dumper-" + event.String()
-				eventTracker, _ := recordevents.StartEventRecordOrFail(ctx, client, subscriberName)
-				eventTrackers[subscriberName] = eventTracker
-				// Create trigger.
-				triggerName := "trigger-" + event.String()
-				client.CreateTriggerOrFail(triggerName,
-					resources.WithSubscriberServiceRefForTrigger(subscriberName),
-					resources.WithAttributesTriggerFilter(event.Source, event.Type, event.Extensions),
-					resources.WithBroker(brokerName),
-				)
-			}
-			// Wait for all test resources to become ready before sending the events.
-			client.WaitForAllTestResourcesReadyOrFail(ctx)
-
-			// Map to save the expected matchers per dumper so that we can verify the delivery.
-			expectedMatchers := make(map[string][]recordevents.EventInfoMatcher)
-			// Map to save the unexpected matchers per dumper so that we can verify that they weren't delivered.
-			unexpectedMatchers := make(map[string][]recordevents.EventInfoMatcher)
-
-			// Now we need to send events and populate the expectedMatcher/unexpectedMatchers map,
-			// in order to assert if I correctly receive only the expected events
-			for _, eventTestCase := range test.eventsToSend {
-				// Create cloud event.
-				// Using event type, source and extensions as part of the body for easier debugging.
-				eventToSend := cloudevents.NewEvent()
-				eventToSend.SetID(uuid.New().String())
-				eventToSend.SetType(eventTestCase.Type)
-				eventToSend.SetSource(eventTestCase.Source)
-				for k, v := range eventTestCase.Extensions {
-					eventToSend.SetExtension(k, v)
-				}
-
-				data := fmt.Sprintf(`{"msg":"%s"}`, eventTestCase.String())
-				if err := eventToSend.SetData(cloudevents.ApplicationJSON, []byte(data)); err != nil {
-					t.Fatal("Cannot set the payload of the event:", err.Error())
-				}
-
-				// Send event
-				senderPodName := "sender-" + eventTestCase.String()
-				client.SendEventToAddressable(ctx, senderPodName, brokerName, testlib.BrokerTypeMeta, eventToSend)
-
-				// Sent event matcher
-				sentEventMatcher := cetest.AllOf(
-					cetest.HasId(eventToSend.ID()),
-					eventTestCase.ToEventMatcher(),
-				)
-
-				// Check on every dumper whether we should expect this event or not
-				for _, eventFilter := range test.eventFilters {
-					subscriberName := "dumper-" + eventFilter.String()
-
-					if eventFilter.ToEventMatcher()(eventToSend) == nil {
-						// This filter should match this event
-						expectedMatchers[subscriberName] = append(
-							expectedMatchers[subscriberName],
-							recordevents.MatchEvent(sentEventMatcher),
-						)
-					} else {
-						// This filter should not match this event
-						unexpectedMatchers[subscriberName] = append(
-							unexpectedMatchers[subscriberName],
-							recordevents.MatchEvent(sentEventMatcher),
-						)
-					}
-				}
-			}
-
-			// Let's check that all expected matchers are fulfilled
-			for subscriberName, matchers := range expectedMatchers {
-				eventTracker := eventTrackers[subscriberName]
-
-				for _, matcher := range matchers {
-					// One match per event is enough
-					eventTracker.AssertAtLeast(1, matcher)
-				}
-			}
-
-			// Let's check the unexpected matchers
-			// NOTE: this check is not really robust because we could receive
-			// an unexpected event after the check is done
-			for subscriberName, matchers := range unexpectedMatchers {
-				eventTracker := eventTrackers[subscriberName]
-
-				for _, matcher := range matchers {
-					eventTracker.AssertNot(matcher)
-				}
-			}
-		})
-	}
-}
-
-func extensionsToString(extensions map[string]interface{}) string {
-	// Sort extension keys
-	sortedExtensionNames := make([]string, 0)
-	for k := range extensions {
-		sortedExtensionNames = append(sortedExtensionNames, k)
-	}
-	sort.Strings(sortedExtensionNames)
-
-	// Write map as string
-	var sb strings.Builder
-	for _, sortedExtensionName := range sortedExtensionNames {
-		sb.WriteString("-")
-		sb.WriteString(sortedExtensionName)
-		sb.WriteString("-")
-		vStr := fmt.Sprintf("%v", extensions[sortedExtensionName])
-		if vStr == v1.TriggerAnyFilter {
-			vStr = "testany"
-		}
-		sb.WriteString(vStr)
-	}
-	return sb.String()
-}
diff --git a/vendor/knative.dev/eventing/test/e2e/helpers/channel_chain_test_helper.go b/vendor/knative.dev/eventing/test/e2e/helpers/channel_chain_test_helper.go
deleted file mode 100644
index 3f5f8e114..000000000
--- a/vendor/knative.dev/eventing/test/e2e/helpers/channel_chain_test_helper.go
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
-Copyright 2019 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 helpers
-
-import (
-	"context"
-	"fmt"
-	"testing"
-
-	cloudevents "github.com/cloudevents/sdk-go/v2"
-	. "github.com/cloudevents/sdk-go/v2/test"
-	"github.com/google/uuid"
-	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
-	testlib "knative.dev/eventing/test/lib"
-	"knative.dev/eventing/test/lib/recordevents"
-	"knative.dev/eventing/test/lib/resources"
-)
-
-// ChannelChainTestHelper is the helper function for channel_chain_test
-// Deprecated, use reconciler-test based tests.
-func ChannelChainTestHelper(
-	ctx context.Context,
-	t *testing.T,
-	subscriptionVersion SubscriptionVersion,
-	channelTestRunner testlib.ComponentsTestRunner,
-	options ...testlib.SetupClientOption) {
-	const (
-		senderName          = "e2e-channelchain-sender"
-		recordEventsPodName = "e2e-channelchain-recordevents-pod"
-	)
-	channelNames := []string{"e2e-channelchain1", "e2e-channelchain2"}
-	// subscriptionNames1 corresponds to Subscriptions on channelNames[0]
-	subscriptionNames1 := []string{"e2e-channelchain-subs11", "e2e-channelchain-subs12"}
-	// subscriptionNames2 corresponds to Subscriptions on channelNames[1]
-	subscriptionNames2 := []string{"e2e-channelchain-subs21"}
-	eventSource := fmt.Sprintf("http://%s.svc/", senderName)
-
-	channelTestRunner.RunTests(t, testlib.FeatureBasic, func(st *testing.T, channel metav1.TypeMeta) {
-		client := testlib.Setup(st, true, options...)
-		defer testlib.TearDown(client)
-
-		// create channels
-		client.CreateChannelsOrFail(channelNames, &channel)
-		client.WaitForResourcesReadyOrFail(&channel)
-
-		// create loggerPod and expose it as a service
-		eventTracker, _ := recordevents.StartEventRecordOrFail(ctx, client, recordEventsPodName)
-		// create subscription to subscribe the channel, and forward the received events to the logger service
-		switch subscriptionVersion {
-		case SubscriptionV1:
-			// create subscriptions that subscribe the first channel, and reply events directly to the second channel
-			client.CreateSubscriptionsOrFail(
-				subscriptionNames1,
-				channelNames[0],
-				&channel,
-				resources.WithReplyForSubscription(channelNames[1], &channel),
-			)
-			// create subscriptions that subscribe the second channel, and call the logging service
-			client.CreateSubscriptionsOrFail(
-				subscriptionNames2,
-				channelNames[1],
-				&channel,
-				resources.WithSubscriberForSubscription(recordEventsPodName),
-			)
-		default:
-			t.Fatalf("Invalid subscription version")
-		}
-		// wait for all test resources to be ready, so that we can start sending events
-		client.WaitForAllTestResourcesReadyOrFail(ctx)
-
-		// send CloudEvent to the first channel
-		event := cloudevents.NewEvent()
-		event.SetID("test")
-		event.SetSource(eventSource)
-		event.SetType(testlib.DefaultEventType)
-
-		body := fmt.Sprintf(`{"msg":"TestSingleEvent %s"}`, uuid.New().String())
-		if err := event.SetData(cloudevents.ApplicationJSON, []byte(body)); err != nil {
-			st.Fatalf("Cannot set the payload of the event: %s", err.Error())
-		}
-
-		client.SendEventToAddressable(ctx, senderName, channelNames[0], &channel, event)
-
-		// verify the logger service receives the event
-		eventTracker.AssertAtLeast(len(subscriptionNames1)*len(subscriptionNames2), recordevents.MatchEvent(
-			HasSource(eventSource),
-			HasData([]byte(body)),
-		))
-	})
-}
diff --git a/vendor/knative.dev/eventing/test/e2e/helpers/channel_dls_test_helper.go b/vendor/knative.dev/eventing/test/e2e/helpers/channel_dls_test_helper.go
index 7aca4f83b..cc1004ae2 100644
--- a/vendor/knative.dev/eventing/test/e2e/helpers/channel_dls_test_helper.go
+++ b/vendor/knative.dev/eventing/test/e2e/helpers/channel_dls_test_helper.go
@@ -24,14 +24,7 @@ import (
 	cloudevents "github.com/cloudevents/sdk-go/v2"
 	. "github.com/cloudevents/sdk-go/v2/test"
 	"github.com/google/uuid"
-	"k8s.io/apimachinery/pkg/api/equality"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	"k8s.io/utils/pointer"
-
-	duckv1 "knative.dev/pkg/apis/duck/v1"
-
-	eventingduckv1 "knative.dev/eventing/pkg/apis/duck/v1"
-	messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
 	testlib "knative.dev/eventing/test/lib"
 	"knative.dev/eventing/test/lib/recordevents"
 	"knative.dev/eventing/test/lib/resources"
@@ -99,84 +92,3 @@ func ChannelDeadLetterSinkTestHelper(
 		))
 	})
 }
-
-// ChannelDeadLetterDefaultSinkTestHelper is the helper function for channel_deadlettersink_test, but setting the delivery from the channel spec
-// Deprecated, use reconciler-test based tests.
-func ChannelDeadLetterSinkDefaultTestHelper(
-	ctx context.Context,
-	t *testing.T,
-	channelTestRunner testlib.ComponentsTestRunner,
-	options ...testlib.SetupClientOption) {
-	const (
-		senderName          = "e2e-channelchain-sender"
-		recordEventsPodName = "e2e-channel-dls-recordevents-pod"
-		channelName         = "e2e-channel-dls"
-	)
-	channelGK := messagingv1.SchemeGroupVersion.WithKind("Channel").GroupKind()
-	// subscriptionNames corresponds to Subscriptions
-	subscriptionNames := []string{"e2e-channel-dls-subs1"}
-
-	channelTestRunner.RunTests(t, testlib.FeatureBasic, func(st *testing.T, channel metav1.TypeMeta) {
-		thisChannelGk := channel.GroupVersionKind().GroupKind()
-		if equality.Semantic.DeepEqual(thisChannelGk, channelGK) {
-			st.Skip("It doesn't make sense to create a messaging.Channel with a backing messaging.Channel")
-			return
-		}
-
-		client := testlib.Setup(st, true, options...)
-		defer testlib.TearDown(client)
-
-		// create channel
-		client.CreateChannelWithDefaultOrFail(&messagingv1.Channel{
-			ObjectMeta: metav1.ObjectMeta{
-				Name:      channelName,
-				Namespace: client.Namespace,
-			},
-			Spec: messagingv1.ChannelSpec{
-				ChannelTemplate: &messagingv1.ChannelTemplateSpec{
-					TypeMeta: channel,
-				},
-				ChannelableSpec: eventingduckv1.ChannelableSpec{
-					Delivery: &eventingduckv1.DeliverySpec{
-						DeadLetterSink: &duckv1.Destination{
-							Ref: resources.KnativeRefForService(recordEventsPodName, client.Namespace),
-						},
-						Retry: pointer.Int32(10),
-					},
-				},
-			},
-		})
-		client.WaitForResourcesReadyOrFail(&channel)
-
-		// create event logger pod and service as the subscriber
-		eventTracker, _ := recordevents.StartEventRecordOrFail(ctx, client, recordEventsPodName)
-		// create subscriptions that subscribe to a service that does not exist
-		client.CreateSubscriptionsOrFail(
-			subscriptionNames,
-			channelName,
-			&channel,
-			resources.WithSubscriberForSubscription("does-not-exist"),
-		)
-
-		// wait for all test resources to be ready, so that we can start sending events
-		client.WaitForAllTestResourcesReadyOrFail(ctx)
-
-		// send CloudEvent to the first channel
-		event := cloudevents.NewEvent()
-		event.SetID("test")
-		eventSource := fmt.Sprintf("http://%s.svc/", senderName)
-		event.SetSource(eventSource)
-		event.SetType(testlib.DefaultEventType)
-		body := fmt.Sprintf(`{"msg":"TestChannelDeadLetterSink %s"}`, uuid.New().String())
-		if err := event.SetData(cloudevents.ApplicationJSON, []byte(body)); err != nil {
-			t.Fatal("Cannot set the payload of the event:", err.Error())
-		}
-		client.SendEventToAddressable(ctx, senderName, channelName, &channel, event)
-
-		// check if the logging service receives the correct number of event messages
-		eventTracker.AssertAtLeast(len(subscriptionNames), recordevents.MatchEvent(
-			HasSource(eventSource),
-			HasData([]byte(body)),
-		))
-	})
-}
diff --git a/vendor/knative.dev/eventing/test/experimental/features/new_trigger_filters/filters.go b/vendor/knative.dev/eventing/test/experimental/features/new_trigger_filters/filters.go
index 7a6de223d..0417f3fe9 100644
--- a/vendor/knative.dev/eventing/test/experimental/features/new_trigger_filters/filters.go
+++ b/vendor/knative.dev/eventing/test/experimental/features/new_trigger_filters/filters.go
@@ -25,7 +25,7 @@ import (
 	. "knative.dev/reconciler-test/pkg/eventshub/assert"
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/manifest"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	"knative.dev/eventing/test/rekt/resources/broker"
 	"knative.dev/eventing/test/rekt/resources/trigger"
@@ -72,7 +72,7 @@ func FiltersFeatureSet(brokerName string) *feature.FeatureSet {
 
 		// Set the Trigger subscriber.
 		cfg := []manifest.CfgFn{
-			trigger.WithSubscriber(svc.AsKReference(subscriber), ""),
+			trigger.WithSubscriber(service.AsKReference(subscriber), ""),
 			WithNewFilters(fs.filters),
 		}
 
diff --git a/vendor/knative.dev/eventing/test/rekt/features/broker/control_plane.go b/vendor/knative.dev/eventing/test/rekt/features/broker/control_plane.go
index 95b20831e..fd9240011 100644
--- a/vendor/knative.dev/eventing/test/rekt/features/broker/control_plane.go
+++ b/vendor/knative.dev/eventing/test/rekt/features/broker/control_plane.go
@@ -33,8 +33,8 @@ import (
 	"knative.dev/reconciler-test/pkg/environment"
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/manifest"
+	"knative.dev/reconciler-test/pkg/resources/service"
 	"knative.dev/reconciler-test/pkg/state"
-	"knative.dev/reconciler-test/resources/svc"
 
 	v1 "knative.dev/eventing/pkg/apis/duck/v1"
 	eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
@@ -83,9 +83,10 @@ func ControlPlaneBroker(brokerName string, brokerOpts ...manifest.CfgFn) *featur
 
 	f.Setup("Set Broker Name", setBrokerName(bName))
 
-	f.Setup("install a service", svc.Install(sink, "app", "rekt"))
+	f.Setup("install a service", service.Install(sink,
+		service.WithSelectors(map[string]string{"app": "rekt"})))
 	brokerOpts = append(brokerOpts, brokerresources.WithEnvConfig()...)
-	brokerOpts = append(brokerOpts, delivery.WithDeadLetterSink(svc.AsKReference(sink), ""))
+	brokerOpts = append(brokerOpts, delivery.WithDeadLetterSink(service.AsKReference(sink), ""))
 	f.Setup("update broker", broker.Install(bName, brokerOpts...))
 	f.Setup("broker goes ready", broker.IsReady(bName))
 
@@ -108,11 +109,12 @@ func ControlPlaneTrigger_GivenBroker(brokerName string) *feature.Feature {
 	f.Setup("Set Broker Name", setBrokerName(brokerName))
 
 	subscriberName := feature.MakeRandomK8sName("sub")
-	f.Setup("Install Subscriber", svc.Install(subscriberName, "bad", "svc"))
+	f.Setup("Install Subscriber", service.Install(subscriberName,
+		service.WithSelectors(map[string]string{"bad": "svc"})))
 
 	triggerName := feature.MakeRandomK8sName("trigger")
 	f.Setup("Create a Trigger", triggerresources.Install(triggerName, brokerName,
-		triggerresources.WithSubscriber(svc.AsKReference(subscriberName), ""),
+		triggerresources.WithSubscriber(service.AsKReference(subscriberName), ""),
 	))
 
 	f.Setup("Set Trigger Name", triggerfeatures.SetTriggerName(triggerName))
@@ -135,11 +137,12 @@ func ControlPlaneTrigger_GivenBrokerTriggerReady(brokerName string) *feature.Fea
 	f.Setup("Set Broker Name", setBrokerName(brokerName))
 
 	subscriberName := feature.MakeRandomK8sName("sub")
-	f.Setup("Install Subscriber", svc.Install(subscriberName, "bad", "svc"))
+	f.Setup("Install Subscriber", service.Install(subscriberName,
+		service.WithSelectors(map[string]string{"bad": "svc"})))
 
 	triggerName := feature.MakeRandomK8sName("trigger")
 	f.Setup("Create a Trigger", triggerresources.Install(triggerName, brokerName,
-		triggerresources.WithSubscriber(svc.AsKReference(subscriberName), ""),
+		triggerresources.WithSubscriber(service.AsKReference(subscriberName), ""),
 	))
 
 	f.Setup("Set Trigger Name", triggerfeatures.SetTriggerName(triggerName))
@@ -157,13 +160,14 @@ func ControlPlaneTrigger_WithBrokerLifecycle(brokerOpts ...manifest.CfgFn) *feat
 	f := feature.NewFeatureNamed("Trigger, With Broker Lifecycle")
 
 	subscriberName := feature.MakeRandomK8sName("sub")
-	f.Setup("Install Subscriber", svc.Install(subscriberName, "bad", "svc"))
+	f.Setup("Install Subscriber", service.Install(subscriberName,
+		service.WithSelectors(map[string]string{"bad": "svc"})))
 
 	brokerName := feature.MakeRandomK8sName("broker")
 
 	triggerName := feature.MakeRandomK8sName("trigger")
 	f.Setup("Create a Trigger", triggerresources.Install(triggerName, brokerName,
-		triggerresources.WithSubscriber(svc.AsKReference(subscriberName), ""),
+		triggerresources.WithSubscriber(service.AsKReference(subscriberName), ""),
 	))
 
 	f.Setup("Set Trigger Name", triggerfeatures.SetTriggerName(triggerName))
@@ -187,7 +191,8 @@ func ControlPlaneTrigger_WithValidFilters(brokerName string) *feature.Feature {
 	f.Setup("Set Broker Name", setBrokerName(brokerName))
 
 	subscriberName := feature.MakeRandomK8sName("sub")
-	f.Setup("Install Subscriber", svc.Install(subscriberName, "bad", "svc"))
+	f.Setup("Install Subscriber", service.Install(subscriberName,
+		service.WithSelectors(map[string]string{"bad": "svc"})))
 
 	// CloudEvents attribute names MUST consist of lower-case letters ('a' to 'z') or digits ('0' to '9') from the ASCII character set. Attribute names SHOULD be descriptive and terse and SHOULD NOT exceed 20 characters in length.
 	filters := map[string]string{
@@ -206,7 +211,7 @@ func ControlPlaneTrigger_WithValidFilters(brokerName string) *feature.Feature {
 
 	triggerName := feature.MakeRandomK8sName("trigger")
 	f.Setup("Create a Trigger", triggerresources.Install(triggerName, brokerName,
-		triggerresources.WithSubscriber(svc.AsKReference(subscriberName), ""),
+		triggerresources.WithSubscriber(service.AsKReference(subscriberName), ""),
 		triggerresources.WithFilter(filters),
 	))
 
@@ -237,7 +242,8 @@ func ControlPlaneTrigger_WithInvalidFilters(brokerName string) *feature.Feature
 	f.Setup("Set Broker Name", setBrokerName(brokerName))
 
 	subscriberName := feature.MakeRandomK8sName("sub")
-	f.Setup("Install Subscriber", svc.Install(subscriberName, "bad", "svc"))
+	f.Setup("Install Subscriber", service.Install(subscriberName,
+		service.WithSelectors(map[string]string{"bad": "svc"})))
 
 	// CloudEvents attribute names MUST consist of lower-case letters ('a' to 'z') or digits ('0' to '9') from the ASCII character set. Attribute names SHOULD be descriptive and terse and SHOULD NOT exceed 20 characters in length.
 	filters := map[string]string{
@@ -255,7 +261,7 @@ func ControlPlaneTrigger_WithInvalidFilters(brokerName string) *feature.Feature
 
 	triggerName := feature.MakeRandomK8sName("trigger")
 	f.Setup("Create a Trigger", triggerresources.Install(triggerName, brokerName,
-		triggerresources.WithSubscriber(svc.AsKReference(subscriberName), ""),
+		triggerresources.WithSubscriber(service.AsKReference(subscriberName), ""),
 	))
 
 	f.Setup("Set Trigger Name", triggerfeatures.SetTriggerName(triggerName))
diff --git a/vendor/knative.dev/eventing/test/rekt/features/broker/feature.go b/vendor/knative.dev/eventing/test/rekt/features/broker/feature.go
index 318a47997..58ff8bc2b 100644
--- a/vendor/knative.dev/eventing/test/rekt/features/broker/feature.go
+++ b/vendor/knative.dev/eventing/test/rekt/features/broker/feature.go
@@ -19,10 +19,11 @@ package broker
 import (
 	"context"
 	"encoding/base64"
+	"fmt"
 	"strings"
 
 	cloudevents "github.com/cloudevents/sdk-go/v2"
-
+	"github.com/cloudevents/sdk-go/v2/binding/spec"
 	"github.com/cloudevents/sdk-go/v2/test"
 	"github.com/google/uuid"
 
@@ -32,16 +33,185 @@ import (
 	"knative.dev/eventing/test/rekt/resources/channel"
 	"knative.dev/eventing/test/rekt/resources/subscription"
 	"knative.dev/eventing/test/rekt/resources/trigger"
-	eventingduckv1 "knative.dev/pkg/apis/duck/v1"
+
+	v1 "knative.dev/pkg/apis/duck/v1"
 	"knative.dev/pkg/ptr"
 
 	"knative.dev/reconciler-test/pkg/eventshub"
 	eventasssert "knative.dev/reconciler-test/pkg/eventshub/assert"
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/manifest"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 )
 
+func BrokerWithManyTriggers() *feature.Feature {
+	f := feature.NewFeatureNamed("broker With Many Triggers")
+
+	// Construct different type, source and extensions of events
+	any := eventingv1.TriggerAnyFilter
+	eventType1 := "type1"
+	eventType2 := "type2"
+	eventSource1 := "http://source1.com"
+	eventSource2 := "http://source2.com"
+	// Be careful with the length of extension name and values,
+	// we use extension name and value as a part of the name of resources like subscriber and trigger,
+	// the maximum characters allowed of resource name is 63
+	extensionName1 := "extname1"
+	extensionValue1 := "extval1"
+	extensionName2 := "extname2"
+	extensionValue2 := "extvalue2"
+	nonMatchingExtensionName := "nonmatchingextname"
+	nonMatchingExtensionValue := "nonmatchingextval"
+
+	eventFilters1 := make(map[string]eventTestCase)
+	eventFilters1["dumper-1"] = neweventTestCase(any, any)
+	eventFilters1["dumper-12"] = neweventTestCase(eventType1, any)
+	eventFilters1["dumper-123"] = neweventTestCase(any, eventSource1)
+	eventFilters1["dumper-1234"] = neweventTestCase(eventType1, eventSource1)
+
+	eventFilters2 := make(map[string]eventTestCase)
+	eventFilters2["dumper-12345"] = neweventTestCaseWithExtensions(any, any, map[string]interface{}{extensionName1: extensionValue1})
+	eventFilters2["dumper-123456"] = neweventTestCaseWithExtensions(any, any, map[string]interface{}{extensionName1: extensionValue1, extensionName2: extensionValue2})
+	eventFilters2["dumper-1234567"] = neweventTestCaseWithExtensions(any, any, map[string]interface{}{extensionName2: extensionValue2})
+	eventFilters2["dumper-654321"] = neweventTestCaseWithExtensions(eventType1, any, map[string]interface{}{extensionName1: extensionValue1})
+	eventFilters2["dumper-54321"] = neweventTestCaseWithExtensions(any, any, map[string]interface{}{extensionName1: any})
+	eventFilters2["dumper-4321"] = neweventTestCaseWithExtensions(any, eventSource1, map[string]interface{}{extensionName1: extensionValue1})
+	eventFilters2["dumper-321"] = neweventTestCaseWithExtensions(any, eventSource1, map[string]interface{}{extensionName1: extensionValue1, extensionName2: extensionValue2})
+	eventFilters2["dumper-21"] = neweventTestCaseWithExtensions(any, eventSource2, map[string]interface{}{extensionName1: extensionValue1, extensionName2: extensionValue1})
+
+	tests := []struct {
+		name string
+		// These are the event context attributes and extension attributes that will be send.
+		eventsToSend []eventTestCase
+		// These are the event context attributes and extension attributes that triggers will listen to
+		// This map is to configure sink and corresponding filter to construct trigger
+		eventFilters map[string]eventTestCase
+	}{
+		{
+			name: "test default broker with many attribute triggers",
+			eventsToSend: []eventTestCase{
+				{Type: eventType1, Source: eventSource1},
+				{Type: eventType1, Source: eventSource2},
+				{Type: eventType2, Source: eventSource1},
+				{Type: eventType2, Source: eventSource2},
+			},
+			eventFilters: eventFilters1,
+		},
+		{
+			name: "test default broker with many attribute and extension triggers",
+			eventsToSend: []eventTestCase{
+				{Type: eventType1, Source: eventSource1, Extensions: map[string]interface{}{extensionName1: extensionValue1}},
+				{Type: eventType1, Source: eventSource1, Extensions: map[string]interface{}{extensionName1: extensionValue1, extensionName2: extensionValue2}},
+				{Type: eventType1, Source: eventSource1, Extensions: map[string]interface{}{extensionName2: extensionValue2}},
+				{Type: eventType1, Source: eventSource2, Extensions: map[string]interface{}{extensionName1: extensionValue1}},
+				{Type: eventType2, Source: eventSource1, Extensions: map[string]interface{}{extensionName1: nonMatchingExtensionValue}},
+				{Type: eventType2, Source: eventSource2, Extensions: map[string]interface{}{nonMatchingExtensionName: extensionValue1}},
+				{Type: eventType2, Source: eventSource2, Extensions: map[string]interface{}{extensionName1: extensionValue1, extensionName2: extensionValue2}},
+				{Type: eventType2, Source: eventSource2, Extensions: map[string]interface{}{extensionName1: extensionValue1, nonMatchingExtensionName: extensionValue2}},
+			},
+			eventFilters: eventFilters2,
+		},
+	}
+
+	// Map to save the expected matchers per dumper so that we can verify the delivery.
+	// matcherBySink is to verify the sink and corresponding matcher
+	matcherBySink := make(map[string][]eventshub.EventInfoMatcher)
+
+	// Create the broker
+	brokerName := feature.MakeRandomK8sName("broker")
+	f.Setup("install broker", broker.Install(brokerName, broker.WithEnvConfig()...))
+	f.Setup("broker is ready", broker.IsReady(brokerName))
+	f.Setup("broker is addressable", broker.IsAddressable(brokerName))
+
+	for _, testcase := range tests {
+		for sink, eventFilter := range testcase.eventFilters {
+			f.Setup("install sink", eventshub.Install(sink, eventshub.StartReceiver))
+			filter := eventingv1.TriggerFilterAttributes{
+				"type":   eventFilter.Type,
+				"source": eventFilter.Source,
+			}
+
+			// Point the Trigger subscriber to the sink svc.
+			cfg := []manifest.CfgFn{
+				trigger.WithSubscriber(service.AsKReference(sink), ""),
+				trigger.WithFilter(filter),
+				trigger.WithExtensions(eventFilter.Extensions),
+			}
+
+			// Install the trigger
+			via := feature.MakeRandomK8sName("via")
+			f.Setup("install trigger", trigger.Install(via, brokerName, cfg...))
+			f.Setup("trigger goes ready", trigger.IsReady(via))
+		}
+
+		for _, event := range testcase.eventsToSend {
+			eventToSend := cloudevents.NewEvent()
+			eventToSend.SetID(uuid.New().String())
+			eventToSend.SetType(event.Type)
+			eventToSend.SetSource(event.Source)
+			for k, v := range event.Extensions {
+				eventToSend.SetExtension(k, v)
+			}
+			data := fmt.Sprintf(`{"msg":"%s"}`, uuid.New())
+			eventToSend.SetData(cloudevents.ApplicationJSON, []byte(data))
+
+			source := feature.MakeRandomK8sName("source")
+			f.Requirement("install source", eventshub.Install(
+				source,
+				eventshub.StartSenderToResource(broker.GVR(), brokerName),
+				eventshub.InputEvent(eventToSend),
+			))
+
+			// Sent event matcher
+			sentEventMatcher := test.AllOf(
+				test.HasId(eventToSend.ID()),
+				event.toEventMatcher(),
+			)
+
+			// Check on every dumper whether we should expect this event or not
+			for sink, eventFilter := range testcase.eventFilters {
+
+				if eventFilter.toEventMatcher()(eventToSend) == nil {
+					// This filter should match this event
+					matcherBySink[sink] = append(
+						matcherBySink[sink],
+						eventasssert.MatchEvent(sentEventMatcher),
+					)
+				}
+			}
+		}
+
+		// Let's check that all expected matchers are fulfilled
+		for sink, matchers := range matcherBySink {
+			for _, matcher := range matchers {
+				// One match per event is enough
+				f.Stable("test message without explicit prefer header should have the header").
+					Must("delivers events",
+						eventasssert.OnStore(sink).Match(
+							matcher,
+						).AtLeast(1))
+			}
+		}
+	}
+
+	return f
+}
+
+func BrokerWorkFlowWithTransformation() *feature.FeatureSet {
+	createSubscriberFn := func(ref *v1.KReference, uri string) manifest.CfgFn {
+		return subscription.WithSubscriber(ref, uri)
+	}
+	fs := &feature.FeatureSet{
+		Name: "Knative Broker - Transformation - Channel flow and Trigger event flow",
+
+		Features: []*feature.Feature{
+			brokerChannelFlowWithTransformation(createSubscriberFn),
+			brokerEventTransformationForTrigger(),
+		},
+	}
+	return fs
+}
+
 /*
 BrokerChannelFlowWithTransformation tests the following topology:
 	------------- ----------------------
@@ -60,7 +230,7 @@ Trigger2 logs all events,
 Trigger3 filters the transformed event and sends it to Channel.
 */
 
-func BrokerChannelFlowWithTransformation(createSubscriberFn func(ref *eventingduckv1.KReference, uri string) manifest.CfgFn) *feature.Feature {
+func brokerChannelFlowWithTransformation(createSubscriberFn func(ref *v1.KReference, uri string) manifest.CfgFn) *feature.Feature {
 	f := feature.NewFeatureNamed("Broker topology of transformation")
 
 	source := feature.MakeRandomK8sName("source")
@@ -121,7 +291,7 @@ func BrokerChannelFlowWithTransformation(createSubscriberFn func(ref *eventingdu
 		trigger1,
 		brokerName,
 		trigger.WithFilter(filter1),
-		trigger.WithSubscriber(svc.AsKReference(sink1), ""),
+		trigger.WithSubscriber(service.AsKReference(sink1), ""),
 	))
 	f.Setup("trigger1 goes ready", trigger.IsReady(trigger1))
 	// Install the trigger2 point to Broker to filter all the events
@@ -129,7 +299,7 @@ func BrokerChannelFlowWithTransformation(createSubscriberFn func(ref *eventingdu
 		trigger2,
 		brokerName,
 		trigger.WithFilter(filter2),
-		trigger.WithSubscriber(svc.AsKReference(sink2), ""),
+		trigger.WithSubscriber(service.AsKReference(sink2), ""),
 	))
 	f.Setup("trigger2 goes ready", trigger.IsReady(trigger2))
 
@@ -141,7 +311,7 @@ func BrokerChannelFlowWithTransformation(createSubscriberFn func(ref *eventingdu
 	sub := feature.MakeRandomK8sName("subscription")
 	f.Setup("install subscription", subscription.Install(sub,
 		subscription.WithChannel(channel.AsRef(channelName)),
-		createSubscriberFn(svc.AsKReference(sink3), ""),
+		createSubscriberFn(service.AsKReference(sink3), ""),
 	))
 	f.Setup("subscription is ready", subscription.IsReady(sub))
 	f.Setup("channel is ready", channel.IsReady(channelName))
@@ -191,6 +361,117 @@ func BrokerChannelFlowWithTransformation(createSubscriberFn func(ref *eventingdu
 	return f
 }
 
+/*
+BrokerEventTransformationForTrigger tests the following scenario:
+
+	            5                 4
+	      ------------- ----------------------
+	      |           | |                    |
+	1     v	 2     | v        3           |
+
+EventSource ---> Broker ---> Trigger1 -------> Sink1(Transformation)
+
+	|
+	| 6                   7
+	|-------> Trigger2 -------> Sink2(Logger)
+
+Note: the number denotes the sequence of the event that flows in this test case.
+*/
+func brokerEventTransformationForTrigger() *feature.Feature {
+	f := feature.NewFeatureNamed("Broker event transformation for trigger")
+
+	source := feature.MakeRandomK8sName("source")
+	sink1 := feature.MakeRandomK8sName("sink1")
+	sink2 := feature.MakeRandomK8sName("sink2")
+
+	trigger1 := feature.MakeRandomK8sName("trigger1")
+	trigger2 := feature.MakeRandomK8sName("trigger2")
+
+	// Construct original cloudevent message
+	eventType := "type1"
+	eventSource := "http://source1.com"
+	eventBody := `{"msg":"e2e-brokerchannel-body"}`
+	// Construct cloudevent message after transformation
+	transformedEventType := "type2"
+	transformedEventSource := "http://source2.com"
+	transformedBody := `{"msg":"transformed body"}`
+
+	// Construct eventToSend
+	eventToSend := cloudevents.NewEvent()
+	eventToSend.SetID(uuid.New().String())
+	eventToSend.SetType(eventType)
+	eventToSend.SetSource(eventSource)
+	eventToSend.SetData(cloudevents.ApplicationJSON, []byte(eventBody))
+
+	//Install the broker
+	brokerName := feature.MakeRandomK8sName("broker")
+	f.Setup("install broker", broker.Install(brokerName, broker.WithEnvConfig()...))
+	f.Setup("broker is ready", broker.IsReady(brokerName))
+	f.Setup("broker is addressable", broker.IsAddressable(brokerName))
+
+	f.Setup("install sink1", eventshub.Install(sink1,
+		eventshub.ReplyWithTransformedEvent(transformedEventType, transformedEventSource, transformedBody),
+		eventshub.StartReceiver),
+	)
+	f.Setup("install sink2", eventshub.Install(sink2, eventshub.StartReceiver))
+
+	// filter1 filters the original events
+	filter1 := eventingv1.TriggerFilterAttributes{
+		"type":   eventType,
+		"source": eventSource,
+	}
+	// filter2 filters events after transformation
+	filter2 := eventingv1.TriggerFilterAttributes{
+		"type":   transformedEventType,
+		"source": transformedEventSource,
+	}
+
+	// Install the trigger1 point to Broker and transform the original events to new events
+	f.Setup("install trigger1", trigger.Install(
+		trigger1,
+		brokerName,
+		trigger.WithFilter(filter1),
+		trigger.WithSubscriber(service.AsKReference(sink1), ""),
+	))
+	f.Setup("trigger1 goes ready", trigger.IsReady(trigger1))
+	// Install the trigger2 point to Broker to filter all the events
+	f.Setup("install trigger2", trigger.Install(
+		trigger2,
+		brokerName,
+		trigger.WithFilter(filter2),
+		trigger.WithSubscriber(service.AsKReference(sink2), ""),
+	))
+	f.Setup("trigger2 goes ready", trigger.IsReady(trigger2))
+
+	f.Requirement("install source", eventshub.Install(
+		source,
+		eventshub.StartSenderToResource(broker.GVR(), brokerName),
+		eventshub.InputEvent(eventToSend),
+	))
+
+	eventMatcher := eventasssert.MatchEvent(
+		test.HasSource(eventSource),
+		test.HasType(eventType),
+		test.HasData([]byte(eventBody)),
+	)
+	transformEventMatcher := eventasssert.MatchEvent(
+		test.HasSource(transformedEventSource),
+		test.HasType(transformedEventType),
+		test.HasData([]byte(transformedBody)),
+	)
+
+	f.Stable("Trigger2 has filtered all transformed events").
+		Must("delivers original events",
+			eventasssert.OnStore(sink2).Match(transformEventMatcher).AtLeast(1))
+
+	f.Stable("Trigger2 has no original events").
+		Must("delivers original events",
+			eventasssert.OnStore(sink2).Match(eventMatcher).Not())
+
+	return f
+
+}
+
 func BrokerPreferHeaderCheck() *feature.Feature {
 	f := feature.NewFeatureNamed("Broker PreferHeader Check")
 
@@ -216,7 +497,7 @@ func BrokerPreferHeaderCheck() *feature.Feature {
 	f.Setup("install sink", eventshub.Install(sink, eventshub.StartReceiver))
 
 	// Point the Trigger subscriber to the sink svc.
-	cfg := []manifest.CfgFn{trigger.WithSubscriber(svc.AsKReference(sink), "")}
+	cfg := []manifest.CfgFn{trigger.WithSubscriber(service.AsKReference(sink), "")}
 
 	// Install the trigger
 	f.Setup("install trigger", trigger.Install(via, brokerName, cfg...))
@@ -277,7 +558,7 @@ func brokerRedeliveryFibonacci(retryNum int32) *feature.Feature {
 	f.Setup("install sink", eventshub.Install(sink, eventshub.StartReceiver))
 
 	// Point the Trigger subscriber to the sink svc.
-	cfg := []manifest.CfgFn{trigger.WithSubscriber(svc.AsKReference(sink), "")}
+	cfg := []manifest.CfgFn{trigger.WithSubscriber(service.AsKReference(sink), "")}
 
 	// Install the trigger
 	f.Setup("install trigger", trigger.Install(via, brokerName, cfg...))
@@ -332,7 +613,7 @@ func brokerRedeliveryDropN(retryNum int32, dropNum uint) *feature.Feature {
 	f.Setup("install sink", eventshub.Install(sink, eventshub.StartReceiver))
 
 	// Point the Trigger subscriber to the sink svc.
-	cfg := []manifest.CfgFn{trigger.WithSubscriber(svc.AsKReference(sink), "")}
+	cfg := []manifest.CfgFn{trigger.WithSubscriber(service.AsKReference(sink), "")}
 
 	// Install the trigger
 	f.Setup("install trigger", trigger.Install(via, brokerName, cfg...))
@@ -401,7 +682,7 @@ func brokerSubscriberUnreachable() *feature.Feature {
 		triggerName,
 		brokerName,
 		trigger.WithSubscriber(nil, "http://fake.svc.cluster.local"),
-		trigger.WithDeadLetterSink(svc.AsKReference(sink), ""),
+		trigger.WithDeadLetterSink(service.AsKReference(sink), ""),
 	))
 	f.Setup("trigger goes ready", trigger.IsReady(triggerName))
 
@@ -456,8 +737,8 @@ func brokerSubscriberErrorNodata() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(failer), ""),
-		trigger.WithDeadLetterSink(svc.AsKReference(sink), ""),
+		trigger.WithSubscriber(service.AsKReference(failer), ""),
+		trigger.WithDeadLetterSink(service.AsKReference(sink), ""),
 	))
 	f.Setup("trigger goes ready", trigger.IsReady(triggerName))
 
@@ -470,7 +751,7 @@ func brokerSubscriberErrorNodata() *feature.Feature {
 	f.Assert("Receives dls extensions without errordata", assertEnhancedWithKnativeErrorExtensions(
 		sink,
 		func(ctx context.Context) test.EventMatcher {
-			failerAddress, _ := svc.Address(ctx, failer)
+			failerAddress, _ := service.Address(ctx, failer)
 			return test.HasExtension("knativeerrordest", failerAddress.String())
 		},
 		func(ctx context.Context) test.EventMatcher {
@@ -518,8 +799,8 @@ func brokerSubscriberErrorWithdata() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(failer), ""),
-		trigger.WithDeadLetterSink(svc.AsKReference(sink), ""),
+		trigger.WithSubscriber(service.AsKReference(failer), ""),
+		trigger.WithDeadLetterSink(service.AsKReference(sink), ""),
 	))
 	f.Setup("trigger goes ready", trigger.IsReady(triggerName))
 
@@ -532,7 +813,7 @@ func brokerSubscriberErrorWithdata() *feature.Feature {
 	f.Assert("Receives dls extensions with errordata", assertEnhancedWithKnativeErrorExtensions(
 		sink,
 		func(ctx context.Context) test.EventMatcher {
-			failerAddress, _ := svc.Address(ctx, failer)
+			failerAddress, _ := service.Address(ctx, failer)
 			return test.HasExtension("knativeerrordest", failerAddress.String())
 		},
 		func(ctx context.Context) test.EventMatcher {
@@ -600,7 +881,7 @@ func brokerSubscriberLongMessage() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sink), ""),
+		trigger.WithSubscriber(service.AsKReference(sink), ""),
 	))
 	f.Setup("trigger goes ready", trigger.IsReady(triggerName))
 
@@ -617,3 +898,135 @@ func brokerSubscriberLongMessage() *feature.Feature {
 	)
 	return f
 }
+
+/*
+Following test sends an event to the first sink, Sink1, which will send a long response destined to Sink2.
+The test will assert that the long response is received by Sink2
+EventSource ---> Broker ---> Trigger1 ---> Sink1(Transformation) ---> Trigger2 --> Sink2
+*/
+
+func BrokerDeliverLongResponseMessage() *feature.FeatureSet {
+	fs := &feature.FeatureSet{
+		Name: "Knative Broker - Long Response Message",
+
+		Features: []*feature.Feature{
+			brokerSubscriberLongResponseMessage(),
+		},
+	}
+	return fs
+}
+
+func brokerSubscriberLongResponseMessage() *feature.Feature {
+	f := feature.NewFeatureNamed("Broker, chain of Triggers, long response message from first subscriber")
+
+	source := feature.MakeRandomK8sName("source")
+	sink1 := feature.MakeRandomK8sName("sink1")
+	sink2 := feature.MakeRandomK8sName("sink2")
+	trigger1 := feature.MakeRandomK8sName("trigger1")
+	trigger2 := feature.MakeRandomK8sName("trigger2")
+
+	eventSource1 := "source1"
+	eventSource2 := "source2"
+	eventType1 := "type1"
+	eventType2 := "type2"
+	eventBody := `{"msg":"eventBody"}`
+	transformedEventBody := `{"msg":"` + strings.Repeat("X", 36000) + `"}`
+	event := cloudevents.NewEvent()
+	event.SetID(uuid.New().String())
+	event.SetType(eventType1)
+	event.SetSource(eventSource1)
+	event.SetData(cloudevents.TextPlain, []byte(eventBody))
+
+	//Install the broker
+	brokerName := feature.MakeRandomK8sName("broker")
+	f.Setup("install broker", broker.Install(brokerName, broker.WithEnvConfig()...))
+	f.Requirement("broker is ready", broker.IsReady(brokerName))
+	f.Requirement("broker is addressable", broker.IsAddressable(brokerName))
+
+	// Sink1 will transform the event so it can be filtered by Trigger2
+	f.Setup("install sink1", eventshub.Install(
+		sink1,
+		eventshub.ReplyWithTransformedEvent(eventType2, eventSource2, transformedEventBody),
+		eventshub.StartReceiver,
+	))
+
+	f.Setup("install sink2", eventshub.Install(sink2, eventshub.StartReceiver))
+
+	// Install the Triggers with appropriate Sinks and filters
+	f.Setup("install trigger1", trigger.Install(
+		trigger1,
+		brokerName,
+		trigger.WithSubscriber(service.AsKReference(sink1), ""),
+		trigger.WithFilter(map[string]string{"type": eventType1, "source": eventSource1}),
+	))
+	f.Setup("trigger1 goes ready", trigger.IsReady(trigger1))
+
+	f.Setup("install trigger2", trigger.Install(
+		trigger2,
+		brokerName,
+		trigger.WithSubscriber(service.AsKReference(sink2), ""),
+		trigger.WithFilter(map[string]string{"type": eventType2, "source": eventSource2}),
+	))
+	f.Setup("trigger2 goes ready", trigger.IsReady(trigger2))
+
+	// Install the Source
+	f.Requirement("install source", eventshub.Install(
+		source,
+		eventshub.StartSenderToResource(broker.GVR(), brokerName),
+		eventshub.InputEvent(event),
+	))
+
+	f.Assert("receive long event on sink1 exactly once",
+		eventasssert.OnStore(sink1).
+			MatchEvent(test.HasData([]byte(eventBody))).
+			Exact(1),
+	)
+
+	f.Assert("receive long event on sink2 exactly once",
+		eventasssert.OnStore(sink2).
+			MatchEvent(test.HasData([]byte(transformedEventBody))).
+			Exact(1),
+	)
+
+	return f
+}
+
+type eventTestCase struct {
+	Type       string
+	Source     string
+	Extensions map[string]interface{}
+}
+
+func neweventTestCase(tp, source string) eventTestCase {
+	return eventTestCase{Type: tp, Source: source}
+}
+
+func neweventTestCaseWithExtensions(tp string, source string, extensions map[string]interface{}) eventTestCase {
+	return eventTestCase{Type: tp, Source: source, Extensions: extensions}
+}
+
+// toEventMatcher converts the test case to the event matcher
+func (tc eventTestCase) toEventMatcher() test.EventMatcher {
+	var matchers []test.EventMatcher
+	if tc.Type == eventingv1.TriggerAnyFilter {
+		matchers = append(matchers, test.ContainsAttributes(spec.Type))
+	} else {
+		matchers = append(matchers, test.HasType(tc.Type))
+	}
+
+	if tc.Source == eventingv1.TriggerAnyFilter {
+		matchers = append(matchers, test.ContainsAttributes(spec.Source))
+	} else {
+		matchers = append(matchers, test.HasSource(tc.Source))
+	}
+
+	for k, v := range tc.Extensions {
+		if v == eventingv1.TriggerAnyFilter {
+			matchers = append(matchers, test.ContainsExtensions(k))
+		} else {
+			matchers = append(matchers, test.HasExtension(k, v))
+		}
+	}
+
+	return test.AllOf(matchers...)
+}
diff --git a/vendor/knative.dev/eventing/test/rekt/features/broker/readyness.go b/vendor/knative.dev/eventing/test/rekt/features/broker/readyness.go
index c2427a218..bce002cfd 100644
--- a/vendor/knative.dev/eventing/test/rekt/features/broker/readyness.go
+++ b/vendor/knative.dev/eventing/test/rekt/features/broker/readyness.go
@@ -21,7 +21,7 @@ import (
 
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/manifest"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	"knative.dev/eventing/test/rekt/resources/broker"
 	"knative.dev/eventing/test/rekt/resources/trigger"
@@ -34,9 +34,10 @@ func TriggerGoesReady(name, brokerName string, cfg ...manifest.CfgFn) *feature.F
 
 	// The test needs a subscriber.
 	sub := feature.MakeRandomK8sName("sub")
-	f.Setup("install a service", svc.Install(sub, "app", "rekt"))
+	f.Setup("install a service", service.Install(sub,
+		service.WithSelectors(map[string]string{"app": "rekt"})))
 	// Append user-provided cfg to the end, in case they are providing their own subscriber.
-	cfg = append([]manifest.CfgFn{trigger.WithSubscriber(svc.AsKReference(sub), "")}, cfg...)
+	cfg = append([]manifest.CfgFn{trigger.WithSubscriber(service.AsKReference(sub), "")}, cfg...)
 
 	// Install the trigger
 	f.Setup(fmt.Sprintf("install trigger %q", name), trigger.Install(name, brokerName, cfg...))
diff --git a/vendor/knative.dev/eventing/test/rekt/features/broker/source_to_sink.go b/vendor/knative.dev/eventing/test/rekt/features/broker/source_to_sink.go
index 25634098a..c3a7d50f7 100644
--- a/vendor/knative.dev/eventing/test/rekt/features/broker/source_to_sink.go
+++ b/vendor/knative.dev/eventing/test/rekt/features/broker/source_to_sink.go
@@ -17,20 +17,16 @@ limitations under the License.
 package broker
 
 import (
-	"context"
-	"fmt"
 	"time"
 
 	"github.com/google/uuid"
-	"knative.dev/reconciler-test/pkg/environment"
 	"knative.dev/reconciler-test/pkg/eventshub"
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/manifest"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	"knative.dev/eventing/test/rekt/resources/broker"
 	"knative.dev/eventing/test/rekt/resources/delivery"
-	"knative.dev/eventing/test/rekt/resources/flaker"
 	"knative.dev/eventing/test/rekt/resources/trigger"
 
 	. "github.com/cloudevents/sdk-go/v2/test"
@@ -50,7 +46,7 @@ func SourceToSink(brokerName string) *feature.Feature {
 	f.Setup("install sink", eventshub.Install(sink, eventshub.StartReceiver))
 
 	// Point the Trigger subscriber to the sink svc.
-	cfg := []manifest.CfgFn{trigger.WithSubscriber(svc.AsKReference(sink), "")}
+	cfg := []manifest.CfgFn{trigger.WithSubscriber(service.AsKReference(sink), "")}
 
 	// Install the trigger
 	f.Setup("install trigger", trigger.Install(via, brokerName, cfg...))
@@ -86,7 +82,7 @@ func SourceToSinkWithDLQ() *feature.Feature {
 
 	f.Setup("install dead letter sink service", eventshub.Install(dls, eventshub.StartReceiver))
 
-	brokerConfig := append(broker.WithEnvConfig(), delivery.WithDeadLetterSink(svc.AsKReference(dls), ""))
+	brokerConfig := append(broker.WithEnvConfig(), delivery.WithDeadLetterSink(service.AsKReference(dls), ""))
 	f.Setup("install broker", broker.Install(brokerName, brokerConfig...))
 	f.Setup("Broker is ready", broker.IsReady(brokerName))
 	f.Setup("install trigger", trigger.Install(triggerName, brokerName, trigger.WithSubscriber(nil, "bad://uri")))
@@ -117,7 +113,6 @@ func SourceToSinkWithDLQ() *feature.Feature {
 func SourceToSinkWithFlakyDLQ(brokerName string) *feature.Feature {
 	source := feature.MakeRandomK8sName("source")
 	sink := feature.MakeRandomK8sName("sink")
-	flake := feature.MakeRandomK8sName("flake")
 	dlq := feature.MakeRandomK8sName("dlq")
 	via := feature.MakeRandomK8sName("via")
 
@@ -125,16 +120,10 @@ func SourceToSinkWithFlakyDLQ(brokerName string) *feature.Feature {
 
 	f.Setup("install sink", eventshub.Install(sink, eventshub.StartReceiver))
 
-	f.Setup("install flake", func(ctx context.Context, t feature.T) {
-		env := environment.FromContext(ctx)
-		u := fmt.Sprintf("%s.%s.svc.cluster.local", sink, env.Namespace()) // HACK HACK HACK, could replace with SinkBinding.
-		flaker.Install(flake, u)(ctx, t)
-	})
-
 	f.Setup("install dlq", eventshub.Install(dlq, eventshub.StartReceiver))
 	f.Setup("install sink", eventshub.Install(sink, eventshub.StartReceiver, eventshub.DropFirstN(2)))
-	f.Setup("update broker with DLQ", broker.Install(brokerName, broker.WithDeadLetterSink(svc.AsKReference(dlq), "")))
-	f.Setup("install trigger", trigger.Install(via, brokerName, trigger.WithSubscriber(svc.AsKReference(sink), "")))
+	f.Setup("update broker with DLQ", broker.Install(brokerName, broker.WithDeadLetterSink(service.AsKReference(dlq), "")))
+	f.Setup("install trigger", trigger.Install(via, brokerName, trigger.WithSubscriber(service.AsKReference(sink), "")))
 	f.Setup("trigger goes ready", trigger.IsReady(via))
 	f.Setup("broker goes ready", broker.IsReady(via))
 
diff --git a/vendor/knative.dev/eventing/test/rekt/features/channel/control_plane.go b/vendor/knative.dev/eventing/test/rekt/features/channel/control_plane.go
index 4abcab91f..f6c19b5f1 100644
--- a/vendor/knative.dev/eventing/test/rekt/features/channel/control_plane.go
+++ b/vendor/knative.dev/eventing/test/rekt/features/channel/control_plane.go
@@ -27,7 +27,7 @@ import (
 	"knative.dev/pkg/apis/duck"
 	"knative.dev/reconciler-test/pkg/environment"
 	"knative.dev/reconciler-test/pkg/feature"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	duckv1 "knative.dev/eventing/pkg/apis/duck/v1"
 	"knative.dev/eventing/pkg/apis/messaging"
@@ -106,8 +106,9 @@ func ControlPlaneChannel(channelName string) *feature.Feature {
 	cName := feature.MakeRandomK8sName("channel")
 	sink := feature.MakeRandomK8sName("sink")
 
-	f.Setup("install a service", svc.Install(sink, "app", "rekt"))
-	f.Setup("update Channel", channel_impl.Install(cName, delivery.WithDeadLetterSink(svc.AsKReference(sink), "")))
+	f.Setup("install a service", service.Install(sink,
+		service.WithSelectors(map[string]string{"app": "rekt"})))
+	f.Setup("update Channel", channel_impl.Install(cName, delivery.WithDeadLetterSink(service.AsKReference(sink), "")))
 	f.Setup("Channel goes ready", channel_impl.IsReady(cName))
 	f.Setup("Channel is addressable", channel_impl.IsAddressable(cName))
 
diff --git a/vendor/knative.dev/eventing/test/rekt/features/channel/features.go b/vendor/knative.dev/eventing/test/rekt/features/channel/features.go
index 75d2da134..0384403ac 100644
--- a/vendor/knative.dev/eventing/test/rekt/features/channel/features.go
+++ b/vendor/knative.dev/eventing/test/rekt/features/channel/features.go
@@ -30,7 +30,7 @@ import (
 	"knative.dev/reconciler-test/pkg/eventshub/assert"
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/manifest"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	eventasssert "knative.dev/reconciler-test/pkg/eventshub/assert"
 
@@ -67,7 +67,7 @@ func ChannelChain(length int, createSubscriberFn func(ref *duckv1.KReference, ur
 			// install the final connection to the sink
 			f.Setup("install sink subscription", subscription.Install(sub,
 				subscription.WithChannel(channel_impl.AsRef(channels[i])),
-				createSubscriberFn(svc.AsKReference(sink), ""),
+				createSubscriberFn(service.AsKReference(sink), ""),
 			))
 		} else {
 			f.Setup("install subscription", subscription.Install(sub,
@@ -93,10 +93,10 @@ func DeadLetterSink(createSubscriberFn func(ref *duckv1.KReference, uri string)
 
 	f.Setup("install sink", eventshub.Install(sink, eventshub.StartReceiver))
 	f.Setup("install failing receiver", eventshub.Install(failer, eventshub.StartReceiver, eventshub.DropFirstN(1)))
-	f.Setup("install channel", channel_impl.Install(name, delivery.WithDeadLetterSink(svc.AsKReference(sink), "")))
+	f.Setup("install channel", channel_impl.Install(name, delivery.WithDeadLetterSink(service.AsKReference(sink), "")))
 	f.Setup("install subscription", subscription.Install(sub,
 		subscription.WithChannel(channel_impl.AsRef(name)),
-		createSubscriberFn(svc.AsKReference(failer), ""),
+		createSubscriberFn(service.AsKReference(failer), ""),
 	))
 	f.Setup("channel is ready", channel_impl.IsReady(name))
 	f.Setup("subscription is ready", subscription.IsReady(sub))
@@ -125,11 +125,11 @@ func DeadLetterSinkGenericChannel(createSubscriberFn func(ref *duckv1.KReference
 	f.Setup("install failing receiver", eventshub.Install(failer, eventshub.StartReceiver, eventshub.DropFirstN(1)))
 	f.Setup("install channel", channel.Install(name,
 		channel.WithTemplate(),
-		delivery.WithDeadLetterSink(svc.AsKReference(sink), "")),
+		delivery.WithDeadLetterSink(service.AsKReference(sink), "")),
 	)
 	f.Setup("install subscription", subscription.Install(sub,
 		subscription.WithChannel(channel.AsRef(name)),
-		createSubscriberFn(svc.AsKReference(failer), ""),
+		createSubscriberFn(service.AsKReference(failer), ""),
 	))
 	f.Setup("channel is ready", channel.IsReady(name))
 	f.Setup("subscription is ready", subscription.IsReady(sub))
@@ -165,7 +165,7 @@ func AsDeadLetterSink(createSubscriberFn func(ref *duckv1.KReference, uri string
 	)
 	f.Setup("install subscription", subscription.Install(feature.MakeRandomK8sName("subscription"),
 		subscription.WithChannel(channel.AsRef(name)),
-		createSubscriberFn(svc.AsKReference(failer), ""),
+		createSubscriberFn(service.AsKReference(failer), ""),
 	))
 
 	f.Setup("install DLS channel", channel.Install(dls,
@@ -173,7 +173,7 @@ func AsDeadLetterSink(createSubscriberFn func(ref *duckv1.KReference, uri string
 	))
 	f.Setup("install DLS subscription", subscription.Install(feature.MakeRandomK8sName("dls-subscription"),
 		subscription.WithChannel(channel.AsRef(dls)),
-		createSubscriberFn(svc.AsKReference(sink), ""),
+		createSubscriberFn(service.AsKReference(sink), ""),
 	))
 
 	f.Setup("install sink", eventshub.Install(sink, eventshub.StartReceiver))
@@ -291,7 +291,7 @@ func ChannelPreferHeaderCheck(createSubscriberFn func(ref *duckv1.KReference, ur
 	))
 	f.Setup("install subscription", subscription.Install(sub,
 		subscription.WithChannel(channel.AsRef(channelName)),
-		createSubscriberFn(svc.AsKReference(sink), ""),
+		createSubscriberFn(service.AsKReference(sink), ""),
 	))
 
 	f.Setup("subscription is ready", subscription.IsReady(sub))
@@ -336,7 +336,7 @@ func channelSubscriberUnreachable(createSubscriberFn func(ref *duckv1.KReference
 
 	f.Setup("install sink", eventshub.Install(sink, eventshub.StartReceiver))
 
-	f.Setup("install channel", channel_impl.Install(channelName, delivery.WithDeadLetterSink(svc.AsKReference(sink), "")))
+	f.Setup("install channel", channel_impl.Install(channelName, delivery.WithDeadLetterSink(service.AsKReference(sink), "")))
 
 	f.Setup("install subscription", subscription.Install(sub,
 		subscription.WithChannel(channel_impl.AsRef(channelName)),
@@ -381,11 +381,11 @@ func channelSubscriberReturnedErrorNoData(createSubscriberFn func(ref *duckv1.KR
 		eventshub.DropFirstN(1),
 		eventshub.DropEventsResponseCode(422),
 	))
-	f.Setup("install channel", channel_impl.Install(channelName, delivery.WithDeadLetterSink(svc.AsKReference(sink), "")))
+	f.Setup("install channel", channel_impl.Install(channelName, delivery.WithDeadLetterSink(service.AsKReference(sink), "")))
 
 	f.Setup("install subscription", subscription.Install(sub,
 		subscription.WithChannel(channel_impl.AsRef(channelName)),
-		createSubscriberFn(svc.AsKReference(failer), ""),
+		createSubscriberFn(service.AsKReference(failer), ""),
 	))
 	f.Setup("channel is ready", channel_impl.IsReady(channelName))
 	f.Setup("channel is addressable", channel_impl.IsAddressable(channelName))
@@ -402,7 +402,7 @@ func channelSubscriberReturnedErrorNoData(createSubscriberFn func(ref *duckv1.KR
 	f.Assert("Receives dls extensions without errordata", assertEnhancedWithKnativeErrorExtensions(
 		sink,
 		func(ctx context.Context) test.EventMatcher {
-			failerAddress, _ := svc.Address(ctx, failer)
+			failerAddress, _ := service.Address(ctx, failer)
 			return test.HasExtension("knativeerrordest", failerAddress.String())
 		},
 		func(ctx context.Context) test.EventMatcher {
@@ -434,10 +434,10 @@ func channelSubscriberReturnedErrorWithData(createSubscriberFn func(ref *duckv1.
 		eventshub.DropEventsResponseCode(422),
 		eventshub.DropEventsResponseBody(errorData),
 	))
-	f.Setup("install channel", channel_impl.Install(channelName, delivery.WithDeadLetterSink(svc.AsKReference(sink), "")))
+	f.Setup("install channel", channel_impl.Install(channelName, delivery.WithDeadLetterSink(service.AsKReference(sink), "")))
 	f.Setup("install subscription", subscription.Install(sub,
 		subscription.WithChannel(channel_impl.AsRef(channelName)),
-		createSubscriberFn(svc.AsKReference(failer), ""),
+		createSubscriberFn(service.AsKReference(failer), ""),
 	))
 	f.Setup("channel is ready", channel_impl.IsReady(channelName))
 	f.Setup("channel is addressable", channel_impl.IsAddressable(channelName))
@@ -454,7 +454,7 @@ func channelSubscriberReturnedErrorWithData(createSubscriberFn func(ref *duckv1.
 	f.Assert("Receives dls extensions with errordata Base64encoding", assertEnhancedWithKnativeErrorExtensions(
 		sink,
 		func(ctx context.Context) test.EventMatcher {
-			failerAddress, _ := svc.Address(ctx, failer)
+			failerAddress, _ := service.Address(ctx, failer)
 			return test.HasExtension("knativeerrordest", failerAddress.String())
 		},
 		func(ctx context.Context) test.EventMatcher {
diff --git a/vendor/knative.dev/eventing/test/rekt/features/trigger/control_plane.go b/vendor/knative.dev/eventing/test/rekt/features/trigger/control_plane.go
index 1aacae738..bd3c70be2 100644
--- a/vendor/knative.dev/eventing/test/rekt/features/trigger/control_plane.go
+++ b/vendor/knative.dev/eventing/test/rekt/features/trigger/control_plane.go
@@ -24,7 +24,7 @@ import (
 	eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
 	triggerresources "knative.dev/eventing/test/rekt/resources/trigger"
 	"knative.dev/reconciler-test/pkg/feature"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 )
 
 func Defaulting() *feature.FeatureSet {
@@ -44,7 +44,7 @@ func Defaulting_Filter() *feature.Feature {
 
 	resourceName := feature.MakeRandomK8sName("trigger")
 
-	withSubscriber := triggerresources.WithSubscriber(svc.AsKReference("sub"), "")
+	withSubscriber := triggerresources.WithSubscriber(service.AsKReference("sub"), "")
 
 	f.Setup("Set Trigger name", SetTriggerName(resourceName))
 	f.Setup("Create a Trigger with empty spec.filter",
@@ -61,7 +61,7 @@ func Defaulting_SubscriberNamespace() *feature.Feature {
 
 	resourceName := feature.MakeRandomK8sName("trigger")
 
-	withSubscriber := triggerresources.WithSubscriber(svc.AsKReference("sub"), "")
+	withSubscriber := triggerresources.WithSubscriber(service.AsKReference("sub"), "")
 
 	f.Setup("Set Trigger name", SetTriggerName(resourceName))
 	f.Setup("Create a Trigger with empty subscriber namespace",
diff --git a/vendor/knative.dev/eventing/test/rekt/features/trigger/feature.go b/vendor/knative.dev/eventing/test/rekt/features/trigger/feature.go
index c7a03e735..8c853b47d 100644
--- a/vendor/knative.dev/eventing/test/rekt/features/trigger/feature.go
+++ b/vendor/knative.dev/eventing/test/rekt/features/trigger/feature.go
@@ -24,7 +24,7 @@ import (
 	"knative.dev/reconciler-test/pkg/eventshub/assert"
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/manifest"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	"knative.dev/eventing/test/rekt/resources/broker"
 	"knative.dev/eventing/test/rekt/resources/pingsource"
@@ -53,7 +53,7 @@ func TriggerDependencyAnnotation() *feature.Feature {
 	// Add the annotation to trigger and point the Trigger subscriber to the sink svc.
 	f.Setup("install sink", eventshub.Install(sink, eventshub.StartReceiver))
 	cfg := []manifest.CfgFn{
-		trigger.WithSubscriber(svc.AsKReference(sink), ""),
+		trigger.WithSubscriber(service.AsKReference(sink), ""),
 		trigger.WithAnnotations(annotations),
 	}
 
diff --git a/vendor/knative.dev/eventing/test/rekt/resources/flaker/flaker.go b/vendor/knative.dev/eventing/test/rekt/resources/flaker/flaker.go
deleted file mode 100644
index 4b6f8d4c6..000000000
--- a/vendor/knative.dev/eventing/test/rekt/resources/flaker/flaker.go
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-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 flaker
-
-import (
-	"context"
-	"embed"
-
-	duckv1 "knative.dev/pkg/apis/duck/v1"
-	"knative.dev/reconciler-test/pkg/environment"
-	"knative.dev/reconciler-test/pkg/feature"
-	"knative.dev/reconciler-test/pkg/manifest"
-)
-
-//go:embed *.yaml
-var yaml embed.FS
-
-// Install
-func Install(name, sink string) feature.StepFn {
-	cfg := map[string]interface{}{
-		"name": name,
-		"sink": sink,
-	}
-
-	return func(ctx context.Context, t feature.T) {
-		if err := registerImage(ctx); err != nil {
-			t.Fatal(err)
-		}
-		manifest.PodSecurityCfgFn(ctx, t)(cfg)
-		if _, err := manifest.InstallYamlFS(ctx, yaml, cfg); err != nil {
-			t.Fatal(err)
-		}
-	}
-}
-
-// AsRef returns a KRef for a Service without namespace.
-func AsRef(name string) *duckv1.KReference {
-	return &duckv1.KReference{
-		Kind:       "Service",
-		APIVersion: "v1",
-		Name:       name,
-	}
-}
-
-func registerImage(ctx context.Context) error {
-	im := manifest.ImagesFromFS(ctx, yaml)
-	reg := environment.RegisterPackage(im...)
-	_, err := reg(ctx, environment.FromContext(ctx))
-	return err
-}
diff --git a/vendor/knative.dev/eventing/test/rekt/resources/flaker/flaker.yaml b/vendor/knative.dev/eventing/test/rekt/resources/flaker/flaker.yaml
deleted file mode 100644
index 69aba2123..000000000
--- a/vendor/knative.dev/eventing/test/rekt/resources/flaker/flaker.yaml
+++ /dev/null
@@ -1,66 +0,0 @@
-# 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.
-
-apiVersion: v1
-kind: Pod
-metadata:
-  name: {{ .name }}
-  namespace: {{ .namespace }}
-  labels:
-    app: flaker-{{ .name }}
-spec:
-  {{ if .podSecurityContext }}
-  securityContext:
-    runAsNonRoot: {{ .podSecurityContext.runAsNonRoot }}
-    seccompProfile:
-      type: {{ .podSecurityContext.seccompProfile.type }}
-  {{ end }}
-  restartPolicy: "Never"
-  containers:
-    - name: flaker
-      image: ko://knative.dev/eventing/test/test_images/event-flaker
-      imagePullPolicy: "IfNotPresent"
-      {{ if .containerSecurityContext }}
-      securityContext:
-        capabilities:
-          {{ if .containerSecurityContext.capabilities.drop }}
-          drop:
-            {{ range $_, $value := .containerSecurityContext.capabilities.drop }}
-            - {{ $value }}
-            {{ end }}
-          {{ end }}
-          {{ if .containerSecurityContext.capabilities.add }}
-          add:
-            {{ range $_, $value := .containerSecurityContext.capabilities.add }}
-            - {{ $value }}
-            {{ end }}
-          {{ end }}
-        allowPrivilegeEscalation: {{ .containerSecurityContext.allowPrivilegeEscalation }}
-      {{ end }}
-      env:
-        - name: "K_SINK"
-          value: "{{ .sink }}"
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ .name }}
-  namespace: {{ .namespace }}
-spec:
-  selector:
-    app: flaker-{{ .name }}
-  ports:
-    - protocol: TCP
-      port: 80
-      targetPort: 8080
diff --git a/vendor/knative.dev/eventing/test/rekt/resources/svc/service.go b/vendor/knative.dev/eventing/test/rekt/resources/svc/service.go
index f453045d8..8db20bebd 100644
--- a/vendor/knative.dev/eventing/test/rekt/resources/svc/service.go
+++ b/vendor/knative.dev/eventing/test/rekt/resources/svc/service.go
@@ -17,72 +17,37 @@ limitations under the License.
 package svc
 
 import (
-	"context"
-	"embed"
-
-	"k8s.io/apimachinery/pkg/runtime/schema"
-	"knative.dev/pkg/apis"
-	duckv1 "knative.dev/pkg/apis/duck/v1"
-	"knative.dev/pkg/tracker"
+	v1 "k8s.io/api/core/v1"
+	"k8s.io/apimachinery/pkg/util/intstr"
 	"knative.dev/reconciler-test/pkg/feature"
-	"knative.dev/reconciler-test/pkg/k8s"
-	"knative.dev/reconciler-test/pkg/manifest"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 )
 
-//go:embed *.yaml
-var yaml embed.FS
-
-// Deprecated, use reconciler-test/resources/svc
-func Gvr() schema.GroupVersionResource {
-	return schema.GroupVersionResource{Group: "", Version: "v1", Resource: "services"}
-}
+// Deprecated, use reconciler-test/pkg/resources/service
+var Gvr = service.GVR
 
 // Install will create a Service resource mapping :80 to :8080 on the provided
 // selector for pods.
-// Deprecated, use reconciler-test/resources/svc
+// Deprecated, use reconciler-test/pkg/resources/service
 func Install(name, selectorKey, selectorValue string) feature.StepFn {
-	cfg := map[string]interface{}{
-		"name":          name,
-		"selectorKey":   selectorKey,
-		"selectorValue": selectorValue,
-	}
-
-	return func(ctx context.Context, t feature.T) {
-		if _, err := manifest.InstallYamlFS(ctx, yaml, cfg); err != nil {
-			t.Fatal(err)
-		}
-	}
+	return service.Install(name,
+		service.WithSelectors(map[string]string{selectorKey: selectorValue}),
+		service.WithPorts([]v1.ServicePort{{
+			Port:       80,
+			TargetPort: intstr.FromInt(8080),
+		}}))
 }
 
 // AsRef returns a KRef for a Service without namespace.
-// Deprecated, use reconciler-test/resources/svc
-func AsRef(name string) *duckv1.KReference {
-	return &duckv1.KReference{
-		Kind:       "Service",
-		Name:       name,
-		APIVersion: "v1",
-	}
-}
+// Deprecated, use reconciler-test/pkg/resources/service
+var AsRef = service.AsKReference
 
-// Deprecated, use reconciler-test/resources/svc
-func AsTrackerReference(name string) *tracker.Reference {
-	return &tracker.Reference{
-		Kind:       "Service",
-		Name:       name,
-		APIVersion: "v1",
-	}
-}
+// Deprecated, use reconciler-test/pkg/resources/service
+var AsTrackerReference = service.AsTrackerReference
 
-// Deprecated, use reconciler-test/resources/svc
-func AsDestinationRef(name string) *duckv1.Destination {
-	return &duckv1.Destination{
-		Ref: AsRef(name),
-	}
-}
+// Deprecated, use reconciler-test/pkg/resources/service
+var AsDestinationRef = service.AsDestinationRef
 
 // Address
-// Deprecated, use reconciler-test/resources/svc
-func Address(ctx context.Context, name string) (*apis.URL, error) {
-	return k8s.Address(ctx, svc.GVR(), name)
-}
+// Deprecated, use reconciler-test/pkg/resources/service
+var Address = service.Address
diff --git a/vendor/knative.dev/eventing/test/rekt/resources/svc/service.yaml b/vendor/knative.dev/eventing/test/rekt/resources/svc/service.yaml
deleted file mode 100644
index e61cd1bfb..000000000
--- a/vendor/knative.dev/eventing/test/rekt/resources/svc/service.yaml
+++ /dev/null
@@ -1,26 +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.
-
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ .name }}
-  namespace: {{ .namespace }}
-spec:
-  selector:
-    {{ .selectorKey }}: {{ .selectorValue }}
-  ports:
-    - protocol: TCP
-      port: 80
-      targetPort: 8080
diff --git a/vendor/knative.dev/eventing/test/upgrade/prober/verify.go b/vendor/knative.dev/eventing/test/upgrade/prober/verify.go
index 5f4ef72b2..b855826aa 100644
--- a/vendor/knative.dev/eventing/test/upgrade/prober/verify.go
+++ b/vendor/knative.dev/eventing/test/upgrade/prober/verify.go
@@ -58,9 +58,6 @@ func (p *prober) Verify() (eventErrs []error, eventsSent int) {
 	if err := zipkin.SetupZipkinTracingFromConfigTracing(p.config.Ctx,
 		p.client.Kube, p.client.T.Logf, system.Namespace()); err != nil {
 		p.log.Warnf("Failed to setup Zipkin tracing. Traces for events won't be available.")
-	} else {
-		// Required for proper cleanup.
-		zipkin.ZipkinTracingEnabled = true
 	}
 	p.log.Info("Waiting for complete report from receiver...")
 	start := time.Now()