Repository: knative-sandbox/eventing-kafka-broker
Pull request #2947 (2023-02-09 11:46:05)

Migrate from `knative.dev/reconciler-test/resources/svc` to `knative.dev/reconciler-test/pkg/resources/service`
As `knative.dev/reconciler-test/resources/svc` is deprecated, we switch to `knative.dev/reconciler-test/pkg/resources/service`

Followup on knative-sandbox/reconciler-test/pull/457

/kind cleanup

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

This pull-request has been approved by: *<a href="https://github.com/knative-sandbox/eventing-kafka-broker/pull/2947#" title="Author self-approved">creydr</a>*
**Once this PR has been reviewed and has the lgtm label**, please assign matzew for approval by writing `/assign @matzew` in a comment. For more information see [the Kubernetes Code Review Process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process).

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

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

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

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":["matzew"]} -->
codecov[bot]: # [Codecov](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2947?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) Report
> Merging [#2947](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2947?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) (b15d3ff) into [main](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/commit/388c618723a9e348cb9cee20ddb6de3a364d60d0?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) (388c618) will **decrease** coverage by `5.51%`.
> The diff coverage is `n/a`.

```diff
@@             Coverage Diff              @@
##               main    #2947      +/-   ##
============================================
- Coverage     64.08%   58.57%   -5.51%     
============================================
  Files           155       78      -77     
  Lines         10873     8254    -2619     
  Branches        231        0     -231     
============================================
- Hits           6968     4835    -2133     
+ Misses         3407     3054     -353     
+ Partials        498      365     -133     
```

| 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/2947?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) | Coverage Δ | |
|---|---|---|
| [...nting/kafka/broker/core/tracing/TracingConfig.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2947?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9jb3JlL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2NvcmUvdHJhY2luZy9UcmFjaW5nQ29uZmlnLmphdmE=) | | |
| [...ative/eventing/kafka/broker/dispatcher/Filter.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2947?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9kaXNwYXRjaGVyL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2Rpc3BhdGNoZXIvRmlsdGVyLmphdmE=) | | |
| [...ng/kafka/broker/dispatcher/main/DispatcherEnv.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2947?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9kaXNwYXRjaGVyL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2Rpc3BhdGNoZXIvbWFpbi9EaXNwYXRjaGVyRW52LmphdmE=) | | |
| [...broker/dispatcher/impl/consumer/OffsetManager.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2947?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9kaXNwYXRjaGVyL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2Rpc3BhdGNoZXIvaW1wbC9jb25zdW1lci9PZmZzZXRNYW5hZ2VyLmphdmE=) | | |
| [...ka/broker/core/reconciler/ResourcesReconciler.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2947?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9jb3JlL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2NvcmUvcmVjb25jaWxlci9SZXNvdXJjZXNSZWNvbmNpbGVyLmphdmE=) | | |
| [...ker/receiver/impl/StrictRequestToRecordMapper.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2947?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9yZWNlaXZlci9zcmMvbWFpbi9qYXZhL2Rldi9rbmF0aXZlL2V2ZW50aW5nL2thZmthL2Jyb2tlci9yZWNlaXZlci9pbXBsL1N0cmljdFJlcXVlc3RUb1JlY29yZE1hcHBlci5qYXZh) | | |
| [...ispatcher/impl/http/WebClientCloudEventSender.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2947?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9kaXNwYXRjaGVyL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2Rpc3BhdGNoZXIvaW1wbC9odHRwL1dlYkNsaWVudENsb3VkRXZlbnRTZW5kZXIuamF2YQ==) | | |
| [...ker/dispatcher/impl/consumer/ConsumerVerticle.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2947?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9kaXNwYXRjaGVyL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2Rpc3BhdGNoZXIvaW1wbC9jb25zdW1lci9Db25zdW1lclZlcnRpY2xlLmphdmE=) | | |
| [...fka/broker/core/eventbus/ContractMessageCodec.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2947?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9jb3JlL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2NvcmUvZXZlbnRidXMvQ29udHJhY3RNZXNzYWdlQ29kZWMuamF2YQ==) | | |
| [...ting/kafka/broker/dispatcher/CloudEventSender.java](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2947?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-ZGF0YS1wbGFuZS9kaXNwYXRjaGVyL3NyYy9tYWluL2phdmEvZGV2L2tuYXRpdmUvZXZlbnRpbmcva2Fma2EvYnJva2VyL2Rpc3BhdGNoZXIvQ2xvdWRFdmVudFNlbmRlci5qYXZh) | | |
| ... and [67 more](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2947?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)

knative-prow[bot]: @creydr: 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
--- | --- | --- | --- | ---
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | b15d3ff6e23d16b392932e15ac4691da035d2da0 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2947/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1623649442605305856) | 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 -->
creydr: /retest
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/2947#" title="Author self-approved">creydr</a>*, *<a href="https://github.com/knative-sandbox/eventing-kafka-broker/pull/2947#pullrequestreview-1291215273" title="Approved">pierDipi</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)~~ [pierDipi]

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

Patch:
diff --git a/go.mod b/go.mod
index 9ce7f3e0b..629483d66 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.2
-	knative.dev/hack v0.0.0-20230113013652-c7cfcb062de9
-	knative.dev/pkg v0.0.0-20230117181655-247510c00e9d
-	knative.dev/reconciler-test v0.0.0-20230202091130-91d5fb069a48
+	knative.dev/eventing v0.36.1-0.20230209064847-37fa6e0d5eb6
+	knative.dev/hack v0.0.0-20230207150947-549c3605c670
+	knative.dev/pkg v0.0.0-20230207013346-decc1cc0acad
+	knative.dev/reconciler-test v0.0.0-20230208170347-40123076c964
 	sigs.k8s.io/controller-runtime v0.12.3
 )
 
diff --git a/go.sum b/go.sum
index 21b3a6190..84f715683 100644
--- a/go.sum
+++ b/go.sum
@@ -1514,14 +1514,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.2 h1:XrEnMUUTveZ/zEsikVggwC6J06pnrcMvrX3RfNwF8WE=
-knative.dev/eventing v0.36.2/go.mod h1:Qka5Z6+LeMoHGL1QAznVdmq5LAu21b4F3rgxc2AMgRg=
-knative.dev/hack v0.0.0-20230113013652-c7cfcb062de9 h1:CDa7s9KspEZqPhk7cN68ZypRLuAvSgr+knoOaXSsrHk=
-knative.dev/hack v0.0.0-20230113013652-c7cfcb062de9/go.mod h1:yk2OjGDsbEnQjfxdm0/HJKS2WqTLEFg/N6nUs6Rqx3Q=
-knative.dev/pkg v0.0.0-20230117181655-247510c00e9d h1:pjKDcvHoMib8nRp56eISRmMj/pFMzJljnzvMvGCIReI=
-knative.dev/pkg v0.0.0-20230117181655-247510c00e9d/go.mod h1:VO/fcEsq43seuONRQxZyftWHjpMabYzRHDtpSEQ/eoQ=
-knative.dev/reconciler-test v0.0.0-20230202091130-91d5fb069a48 h1:keolT8Eh8T/z+IyoXAtsxQmryrJNfEtktTbEtkfjr9Y=
-knative.dev/reconciler-test v0.0.0-20230202091130-91d5fb069a48/go.mod h1:ZPUBldkrSIOe0c57sDcnuM4bzQy16iTtvMV59nMPpfs=
+knative.dev/eventing v0.36.1-0.20230209064847-37fa6e0d5eb6 h1:94y36s/NAfFIkDTyaFUiiyXkfQMWgFqx+DWnQKB3g+w=
+knative.dev/eventing v0.36.1-0.20230209064847-37fa6e0d5eb6/go.mod h1:IFu3bFs6IcgvmcREPh/nazxJDLCHn0WteG31QevQXUQ=
+knative.dev/hack v0.0.0-20230207150947-549c3605c670 h1:1+DsejqC6ex9vq8kS9blFqsr/FEpSTR1hRdtFAm/iEA=
+knative.dev/hack v0.0.0-20230207150947-549c3605c670/go.mod h1:yk2OjGDsbEnQjfxdm0/HJKS2WqTLEFg/N6nUs6Rqx3Q=
+knative.dev/pkg v0.0.0-20230207013346-decc1cc0acad h1:jedK7bc5p5KtxJ5/qGvV3xtYuyddci/F8cynxyyOI6c=
+knative.dev/pkg v0.0.0-20230207013346-decc1cc0acad/go.mod h1:VO/fcEsq43seuONRQxZyftWHjpMabYzRHDtpSEQ/eoQ=
+knative.dev/reconciler-test v0.0.0-20230208170347-40123076c964 h1:TPU1Qzc3e5OP3P5BXbWNEHluPzG6T/Z0qpSczPqhnho=
+knative.dev/reconciler-test v0.0.0-20230208170347-40123076c964/go.mod h1:ZPUBldkrSIOe0c57sDcnuM4bzQy16iTtvMV59nMPpfs=
 pgregory.net/rapid v0.3.3 h1:jCjBsY4ln4Atz78QoBWxUEvAHaFyNDQg9+WU62aCn1U=
 pgregory.net/rapid v0.3.3/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
diff --git a/vendor/knative.dev/eventing/pkg/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/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/scheduler/scheduler.go b/vendor/knative.dev/eventing/pkg/scheduler/scheduler.go
index 6710d22b6..1092a312c 100644
--- a/vendor/knative.dev/eventing/pkg/scheduler/scheduler.go
+++ b/vendor/knative.dev/eventing/pkg/scheduler/scheduler.go
@@ -50,28 +50,28 @@ const (
 // Policy describes a struct of a policy resource.
 type SchedulerPolicy struct {
 	// Holds the information to configure the fit predicate functions.
-	Predicates []PredicatePolicy
+	Predicates []PredicatePolicy `json:"predicates"`
 	// Holds the information to configure the priority functions.
-	Priorities []PriorityPolicy
+	Priorities []PriorityPolicy `json:"priorities"`
 }
 
 // PredicatePolicy describes a struct of a predicate policy.
 type PredicatePolicy struct {
 	// Identifier of the predicate policy
-	Name string
+	Name string `json:"name"`
 	// Holds the parameters to configure the given predicate
-	Args interface{}
+	Args interface{} `json:"args"`
 }
 
 // PriorityPolicy describes a struct of a priority policy.
 type PriorityPolicy struct {
 	// Identifier of the priority policy
-	Name string
+	Name string `json:"name"`
 	// The numeric multiplier for the pod scores that the priority function generates
 	// The weight should be a positive integer
-	Weight uint64
+	Weight uint64 `json:"weight"`
 	// Holds the parameters to configure the given priority function
-	Args interface{}
+	Args interface{} `json:"args"`
 }
 
 // VPodLister is the function signature for returning a list of VPods
diff --git a/vendor/knative.dev/eventing/pkg/scheduler/state/state.go b/vendor/knative.dev/eventing/pkg/scheduler/state/state.go
index 38eaa5e68..fcc758cd3 100644
--- a/vendor/knative.dev/eventing/pkg/scheduler/state/state.go
+++ b/vendor/knative.dev/eventing/pkg/scheduler/state/state.go
@@ -18,8 +18,8 @@ package state
 
 import (
 	"context"
+	"encoding/json"
 	"errors"
-	"fmt"
 	"strconv"
 	"time"
 
@@ -135,6 +135,15 @@ func (s *State) GetPodInfo(podName string) (zoneName string, nodeName string, er
 	return zoneName, nodeName, nil
 }
 
+func (s *State) IsSchedulablePod(ordinal int32) bool {
+	for _, x := range s.SchedulablePods {
+		if x == ordinal {
+			return true
+		}
+	}
+	return false
+}
+
 // stateBuilder reconstruct the state from scratch, by listing vpods
 type stateBuilder struct {
 	ctx               context.Context
@@ -310,10 +319,13 @@ func (s *stateBuilder) State(reserved map[types.NamespacedName]map[string]int32)
 		}
 	}
 
-	s.logger.Infow("cluster state info", zap.String("NumPods", fmt.Sprint(scale.Spec.Replicas)), zap.String("NumZones", fmt.Sprint(len(zoneMap))), zap.String("NumNodes", fmt.Sprint(len(nodeToZoneMap))), zap.String("Schedulable", fmt.Sprint(schedulablePods)))
-	return &State{FreeCap: free, SchedulablePods: schedulablePods.List(), LastOrdinal: last, Capacity: s.capacity, Replicas: scale.Spec.Replicas, NumZones: int32(len(zoneMap)), NumNodes: int32(len(nodeToZoneMap)),
+	state := &State{FreeCap: free, SchedulablePods: schedulablePods.List(), LastOrdinal: last, Capacity: s.capacity, Replicas: scale.Spec.Replicas, NumZones: int32(len(zoneMap)), NumNodes: int32(len(nodeToZoneMap)),
 		SchedulerPolicy: s.schedulerPolicy, SchedPolicy: s.schedPolicy, DeschedPolicy: s.deschedPolicy, NodeToZoneMap: nodeToZoneMap, StatefulSetName: s.statefulSetName, PodLister: s.podLister,
-		PodSpread: podSpread, NodeSpread: nodeSpread, ZoneSpread: zoneSpread}, nil
+		PodSpread: podSpread, NodeSpread: nodeSpread, ZoneSpread: zoneSpread}
+
+	s.logger.Infow("cluster state info", zap.Any("state", state), zap.Any("reserved", toJSONable(reserved)))
+
+	return state, nil
 }
 
 func (s *stateBuilder) updateFreeCapacity(free []int32, last int32, podName string, vreplicas int32) ([]int32, int32) {
@@ -404,3 +416,52 @@ func contains(taints []v1.Taint, taint *v1.Taint) bool {
 	}
 	return false
 }
+
+func (s *State) MarshalJSON() ([]byte, error) {
+
+	type S struct {
+		FreeCap         []int32                       `json:"freeCap"`
+		SchedulablePods []int32                       `json:"schedulablePods"`
+		LastOrdinal     int32                         `json:"lastOrdinal"`
+		Capacity        int32                         `json:"capacity"`
+		Replicas        int32                         `json:"replicas"`
+		NumZones        int32                         `json:"numZones"`
+		NumNodes        int32                         `json:"numNodes"`
+		NodeToZoneMap   map[string]string             `json:"nodeToZoneMap"`
+		StatefulSetName string                        `json:"statefulSetName"`
+		PodSpread       map[string]map[string]int32   `json:"podSpread"`
+		NodeSpread      map[string]map[string]int32   `json:"nodeSpread"`
+		ZoneSpread      map[string]map[string]int32   `json:"zoneSpread"`
+		SchedulerPolicy scheduler.SchedulerPolicyType `json:"schedulerPolicy"`
+		SchedPolicy     *scheduler.SchedulerPolicy    `json:"schedPolicy"`
+		DeschedPolicy   *scheduler.SchedulerPolicy    `json:"deschedPolicy"`
+	}
+
+	sj := S{
+		FreeCap:         s.FreeCap,
+		SchedulablePods: s.SchedulablePods,
+		LastOrdinal:     s.LastOrdinal,
+		Capacity:        s.Capacity,
+		Replicas:        s.Replicas,
+		NumZones:        s.NumZones,
+		NumNodes:        s.NumNodes,
+		NodeToZoneMap:   s.NodeToZoneMap,
+		StatefulSetName: s.StatefulSetName,
+		PodSpread:       toJSONable(s.PodSpread),
+		NodeSpread:      toJSONable(s.NodeSpread),
+		ZoneSpread:      toJSONable(s.ZoneSpread),
+		SchedulerPolicy: s.SchedulerPolicy,
+		SchedPolicy:     s.SchedPolicy,
+		DeschedPolicy:   s.DeschedPolicy,
+	}
+
+	return json.Marshal(sj)
+}
+
+func toJSONable(ps map[types.NamespacedName]map[string]int32) map[string]map[string]int32 {
+	r := make(map[string]map[string]int32, len(ps))
+	for k, v := range ps {
+		r[k.String()] = v
+	}
+	return r
+}
diff --git a/vendor/knative.dev/eventing/pkg/scheduler/statefulset/autoscaler.go b/vendor/knative.dev/eventing/pkg/scheduler/statefulset/autoscaler.go
index 6b66a0584..a829668d3 100644
--- a/vendor/knative.dev/eventing/pkg/scheduler/statefulset/autoscaler.go
+++ b/vendor/knative.dev/eventing/pkg/scheduler/statefulset/autoscaler.go
@@ -28,10 +28,11 @@ import (
 	"k8s.io/apimachinery/pkg/util/wait"
 	clientappsv1 "k8s.io/client-go/kubernetes/typed/apps/v1"
 
-	"knative.dev/eventing/pkg/scheduler"
-	st "knative.dev/eventing/pkg/scheduler/state"
 	kubeclient "knative.dev/pkg/client/injection/kube/client"
 	"knative.dev/pkg/logging"
+
+	"knative.dev/eventing/pkg/scheduler"
+	st "knative.dev/eventing/pkg/scheduler/state"
 )
 
 type Autoscaler interface {
@@ -60,24 +61,17 @@ type autoscaler struct {
 	lock          sync.Locker
 }
 
-func NewAutoscaler(ctx context.Context,
-	namespace, name string,
-	lister scheduler.VPodLister,
-	stateAccessor st.StateAccessor,
-	evictor scheduler.Evictor,
-	refreshPeriod time.Duration,
-	capacity int32) Autoscaler {
-
+func newAutoscaler(ctx context.Context, cfg *Config, stateAccessor st.StateAccessor) Autoscaler {
 	return &autoscaler{
 		logger:            logging.FromContext(ctx),
-		statefulSetClient: kubeclient.Get(ctx).AppsV1().StatefulSets(namespace),
-		statefulSetName:   name,
-		vpodLister:        lister,
+		statefulSetClient: kubeclient.Get(ctx).AppsV1().StatefulSets(cfg.StatefulSetNamespace),
+		statefulSetName:   cfg.StatefulSetName,
+		vpodLister:        cfg.VPodLister,
 		stateAccessor:     stateAccessor,
-		evictor:           evictor,
+		evictor:           cfg.Evictor,
 		trigger:           make(chan int32, 1),
-		capacity:          capacity,
-		refreshPeriod:     refreshPeriod,
+		capacity:          cfg.PodCapacity,
+		refreshPeriod:     cfg.RefreshPeriod,
 		lock:              new(sync.Mutex),
 	}
 }
diff --git a/vendor/knative.dev/eventing/pkg/scheduler/statefulset/scheduler.go b/vendor/knative.dev/eventing/pkg/scheduler/statefulset/scheduler.go
index 556c22080..f3ecb7c0c 100644
--- a/vendor/knative.dev/eventing/pkg/scheduler/statefulset/scheduler.go
+++ b/vendor/knative.dev/eventing/pkg/scheduler/statefulset/scheduler.go
@@ -57,7 +57,40 @@ import (
 	_ "knative.dev/eventing/pkg/scheduler/plugins/kafka/nomaxresourcecount"
 )
 
+type Config struct {
+	StatefulSetNamespace string `json:"statefulSetNamespace"`
+	StatefulSetName      string `json:"statefulSetName"`
+
+	// PodCapacity max capacity for each StatefulSet's pod.
+	PodCapacity int32 `json:"podCapacity"`
+	// Autoscaler refresh period
+	RefreshPeriod time.Duration `json:"refreshPeriod"`
+
+	SchedulerPolicy scheduler.SchedulerPolicyType `json:"schedulerPolicy"`
+	SchedPolicy     *scheduler.SchedulerPolicy    `json:"schedPolicy"`
+	DeschedPolicy   *scheduler.SchedulerPolicy    `json:"deschedPolicy"`
+
+	Evictor scheduler.Evictor `json:"-"`
+
+	VPodLister scheduler.VPodLister     `json:"-"`
+	NodeLister corev1listers.NodeLister `json:"-"`
+}
+
+func New(ctx context.Context, cfg *Config) (scheduler.Scheduler, error) {
+
+	podInformer := podinformer.Get(ctx)
+	podLister := podInformer.Lister().Pods(cfg.StatefulSetNamespace)
+
+	stateAccessor := st.NewStateBuilder(ctx, cfg.StatefulSetNamespace, cfg.StatefulSetName, cfg.VPodLister, cfg.PodCapacity, cfg.SchedulerPolicy, cfg.SchedPolicy, cfg.DeschedPolicy, podLister, cfg.NodeLister)
+	autoscaler := newAutoscaler(ctx, cfg, stateAccessor)
+
+	go autoscaler.Start(ctx)
+
+	return newStatefulSetScheduler(ctx, cfg, stateAccessor, autoscaler, podLister), nil
+}
+
 // NewScheduler creates a new scheduler with pod autoscaling enabled.
+// Deprecated: Use New
 func NewScheduler(ctx context.Context,
 	namespace, name string,
 	lister scheduler.VPodLister,
@@ -69,15 +102,21 @@ func NewScheduler(ctx context.Context,
 	schedPolicy *scheduler.SchedulerPolicy,
 	deschedPolicy *scheduler.SchedulerPolicy) scheduler.Scheduler {
 
-	podInformer := podinformer.Get(ctx)
-	podLister := podInformer.Lister().Pods(namespace)
-
-	stateAccessor := st.NewStateBuilder(ctx, namespace, name, lister, capacity, schedulerPolicy, schedPolicy, deschedPolicy, podLister, nodeLister)
-	autoscaler := NewAutoscaler(ctx, namespace, name, lister, stateAccessor, evictor, refreshPeriod, capacity)
-
-	go autoscaler.Start(ctx)
+	cfg := &Config{
+		StatefulSetNamespace: namespace,
+		StatefulSetName:      name,
+		PodCapacity:          capacity,
+		RefreshPeriod:        refreshPeriod,
+		SchedulerPolicy:      schedulerPolicy,
+		SchedPolicy:          schedPolicy,
+		DeschedPolicy:        deschedPolicy,
+		Evictor:              evictor,
+		VPodLister:           lister,
+		NodeLister:           nodeLister,
+	}
 
-	return NewStatefulSetScheduler(ctx, namespace, name, lister, stateAccessor, autoscaler, podLister)
+	s, _ := New(ctx, cfg)
+	return s
 }
 
 // StatefulSetScheduler is a scheduler placing VPod into statefulset-managed set of pods
@@ -106,20 +145,20 @@ type StatefulSetScheduler struct {
 	reserved map[types.NamespacedName]map[string]int32
 }
 
-func NewStatefulSetScheduler(ctx context.Context,
-	namespace, name string,
-	lister scheduler.VPodLister,
+func newStatefulSetScheduler(ctx context.Context,
+	cfg *Config,
 	stateAccessor st.StateAccessor,
-	autoscaler Autoscaler, podlister corev1listers.PodNamespaceLister) scheduler.Scheduler {
+	autoscaler Autoscaler,
+	podlister corev1listers.PodNamespaceLister) scheduler.Scheduler {
 
 	scheduler := &StatefulSetScheduler{
 		ctx:                  ctx,
 		logger:               logging.FromContext(ctx),
-		statefulSetNamespace: namespace,
-		statefulSetName:      name,
-		statefulSetClient:    kubeclient.Get(ctx).AppsV1().StatefulSets(namespace),
+		statefulSetNamespace: cfg.StatefulSetNamespace,
+		statefulSetName:      cfg.StatefulSetName,
+		statefulSetClient:    kubeclient.Get(ctx).AppsV1().StatefulSets(cfg.StatefulSetNamespace),
 		podLister:            podlister,
-		vpodLister:           lister,
+		vpodLister:           cfg.VPodLister,
 		pending:              make(map[types.NamespacedName]int32),
 		lock:                 new(sync.Mutex),
 		stateAccessor:        stateAccessor,
@@ -130,7 +169,7 @@ func NewStatefulSetScheduler(ctx context.Context,
 	// Monitor our statefulset
 	statefulsetInformer := statefulsetinformer.Get(ctx)
 	statefulsetInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
-		FilterFunc: controller.FilterWithNameAndNamespace(namespace, name),
+		FilterFunc: controller.FilterWithNameAndNamespace(cfg.StatefulSetNamespace, cfg.StatefulSetName),
 		Handler:    controller.HandleAll(scheduler.updateStatefulset),
 	})
 
@@ -167,7 +206,7 @@ func (s *StatefulSetScheduler) Schedule(vpod scheduler.VPod) ([]duckv1alpha1.Pla
 
 func (s *StatefulSetScheduler) scheduleVPod(vpod scheduler.VPod) ([]duckv1alpha1.Placement, error) {
 	logger := s.logger.With("key", vpod.GetKey())
-	logger.Info("scheduling")
+	logger.Infow("scheduling", zap.Any("pending", toJSONable(s.pending)))
 
 	// Get the current placements state
 	// Quite an expensive operation but safe and simple.
@@ -177,10 +216,20 @@ func (s *StatefulSetScheduler) scheduleVPod(vpod scheduler.VPod) ([]duckv1alpha1
 		return nil, err
 	}
 
-	placements := vpod.GetPlacements()
-	existingPlacements := placements
+	existingPlacements := vpod.GetPlacements()
 	var left int32
 
+	// Remove unschedulable pods from placements
+	var placements []duckv1alpha1.Placement
+	if len(existingPlacements) > 0 {
+		placements = make([]duckv1alpha1.Placement, 0, len(existingPlacements))
+		for _, p := range existingPlacements {
+			if state.IsSchedulablePod(st.OrdinalFromPodName(p.PodName)) {
+				placements = append(placements, *p.DeepCopy())
+			}
+		}
+	}
+
 	// The scheduler when policy type is
 	// Policy: MAXFILLUP (SchedulerPolicyType == MAXFILLUP)
 	// - allocates as many vreplicas as possible to the same pod(s)
@@ -261,6 +310,14 @@ func (s *StatefulSetScheduler) scheduleVPod(vpod scheduler.VPod) ([]duckv1alpha1
 	return placements, nil
 }
 
+func toJSONable(pending map[types.NamespacedName]int32) map[string]int32 {
+	r := make(map[string]int32, len(pending))
+	for k, v := range pending {
+		r[k.String()] = v
+	}
+	return r
+}
+
 func (s *StatefulSetScheduler) rebalanceReplicasWithPolicy(vpod scheduler.VPod, diff int32, placements []duckv1alpha1.Placement) ([]duckv1alpha1.Placement, int32) {
 	s.makeZeroPlacements(vpod, placements)
 	placements, diff = s.addReplicasWithPolicy(vpod, diff, make([]duckv1alpha1.Placement, 0)) //start fresh with a new placements list
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/shell/executor.go b/vendor/knative.dev/hack/shell/executor.go
index e6308a070..059631dd5 100644
--- a/vendor/knative.dev/hack/shell/executor.go
+++ b/vendor/knative.dev/hack/shell/executor.go
@@ -19,7 +19,6 @@ package shell
 import (
 	"errors"
 	"fmt"
-	"io/ioutil"
 	"os"
 	"os/exec"
 	"strings"
@@ -134,7 +133,7 @@ func defaultPrefixFunc(st StreamType, label string, cfg ExecutorConfig) string {
 }
 
 func withTempScript(contents string, fn func(bin string) error) error {
-	tmpfile, err := ioutil.TempFile("", "shellout-*.sh")
+	tmpfile, err := os.CreateTemp("", "shellout-*.sh")
 	if err != nil {
 		return err
 	}
diff --git a/vendor/knative.dev/pkg/apis/duck/v1/destination.go b/vendor/knative.dev/pkg/apis/duck/v1/destination.go
index 87f0983fd..c895e6d29 100644
--- a/vendor/knative.dev/pkg/apis/duck/v1/destination.go
+++ b/vendor/knative.dev/pkg/apis/duck/v1/destination.go
@@ -73,6 +73,10 @@ func (d *Destination) GetRef() *KReference {
 }
 
 func (d *Destination) SetDefaults(ctx context.Context) {
+	if d == nil {
+		return
+	}
+
 	if d.Ref != nil && d.Ref.Namespace == "" {
 		d.Ref.Namespace = apis.ParentMeta(ctx).Namespace
 	}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index f6a3818c4..b06e9d10c 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.2
+# knative.dev/eventing v0.36.1-0.20230209064847-37fa6e0d5eb6
 ## explicit; go 1.18
 knative.dev/eventing/cmd/event_display
 knative.dev/eventing/pkg/apis/config
@@ -1370,11 +1370,11 @@ 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-20230113013652-c7cfcb062de9
+# knative.dev/hack v0.0.0-20230207150947-549c3605c670
 ## explicit; go 1.18
 knative.dev/hack
 knative.dev/hack/shell
-# knative.dev/pkg v0.0.0-20230117181655-247510c00e9d
+# knative.dev/pkg v0.0.0-20230207013346-decc1cc0acad
 ## explicit; go 1.18
 knative.dev/pkg/apiextensions/storageversion
 knative.dev/pkg/apiextensions/storageversion/cmd/migrate
@@ -1483,7 +1483,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-20230202091130-91d5fb069a48
+# knative.dev/reconciler-test v0.0.0-20230208170347-40123076c964
 ## explicit; go 1.18
 knative.dev/reconciler-test/cmd/eventshub
 knative.dev/reconciler-test/pkg/environment
@@ -1505,6 +1505,7 @@ knative.dev/reconciler-test/pkg/logging
 knative.dev/reconciler-test/pkg/manifest
 knative.dev/reconciler-test/pkg/milestone
 knative.dev/reconciler-test/pkg/resources/job
+knative.dev/reconciler-test/pkg/resources/service
 knative.dev/reconciler-test/pkg/state
 knative.dev/reconciler-test/resources/svc
 # sigs.k8s.io/controller-runtime v0.12.3


Test patch:
diff --git a/test/e2e_new/broker_delete_config_map_test.go b/test/e2e_new/broker_delete_config_map_test.go
index 7ba1a8866..4f75e82aa 100644
--- a/test/e2e_new/broker_delete_config_map_test.go
+++ b/test/e2e_new/broker_delete_config_map_test.go
@@ -32,7 +32,7 @@ import (
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/k8s"
 	"knative.dev/reconciler-test/pkg/knative"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	"knative.dev/eventing-kafka-broker/test/rekt/resources/configmap"
 )
@@ -77,7 +77,7 @@ func BrokerDeleteContractConfigMap() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
 	))
 	f.Setup("trigger is ready", trigger.IsReady(triggerName))
 
diff --git a/test/e2e_new/dls_extensions_test.go b/test/e2e_new/dls_extensions_test.go
index 008c3d41e..54ec29d57 100644
--- a/test/e2e_new/dls_extensions_test.go
+++ b/test/e2e_new/dls_extensions_test.go
@@ -40,7 +40,7 @@ import (
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/k8s"
 	"knative.dev/reconciler-test/pkg/knative"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 )
 
 func TestDeadLetterSinkExtensions(t *testing.T) {
@@ -89,7 +89,7 @@ func SubscriberUnreachable() *feature.Feature {
 		triggerName,
 		brokerName,
 		trigger.WithSubscriber(nil, "http://fake.svc.cluster.local"),
-		trigger.WithDeadLetterSink(svc.AsKReference(deadLetterSinkName), ""),
+		trigger.WithDeadLetterSink(service.AsKReference(deadLetterSinkName), ""),
 	))
 	f.Setup("trigger is ready", trigger.IsReady(triggerName))
 
@@ -146,8 +146,8 @@ func SubscriberReturnedErrorNoData() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
-		trigger.WithDeadLetterSink(svc.AsKReference(deadLetterSinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
+		trigger.WithDeadLetterSink(service.AsKReference(deadLetterSinkName), ""),
 	))
 	f.Setup("trigger is ready", trigger.IsReady(triggerName))
 
@@ -160,7 +160,7 @@ func SubscriberReturnedErrorNoData() *feature.Feature {
 	f.Assert("knativeerrordest & knativeerrorcode added", assertEnhancedWithKnativeErrorExtensions(
 		deadLetterSinkName,
 		func(ctx context.Context) cetest.EventMatcher {
-			sinkAddress, _ := svc.Address(ctx, sinkName)
+			sinkAddress, _ := service.Address(ctx, sinkName)
 			return cetest.HasExtension("knativeerrordest", sinkAddress.String())
 		},
 
@@ -207,8 +207,8 @@ func SubscriberReturnedErrorSmallData() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
-		trigger.WithDeadLetterSink(svc.AsKReference(deadLetterSinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
+		trigger.WithDeadLetterSink(service.AsKReference(deadLetterSinkName), ""),
 	))
 	f.Setup("trigger is ready", trigger.IsReady(triggerName))
 
@@ -221,7 +221,7 @@ func SubscriberReturnedErrorSmallData() *feature.Feature {
 	f.Assert("knativeerrordest, knativeerrorcode, knativeerrordata added", assertEnhancedWithKnativeErrorExtensions(
 		deadLetterSinkName,
 		func(ctx context.Context) cetest.EventMatcher {
-			sinkAddress, _ := svc.Address(ctx, sinkName)
+			sinkAddress, _ := service.Address(ctx, sinkName)
 			return cetest.HasExtension("knativeerrordest", sinkAddress.String())
 		},
 		func(ctx context.Context) cetest.EventMatcher {
@@ -271,8 +271,8 @@ func SubscriberReturnedErrorLargeData() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
-		trigger.WithDeadLetterSink(svc.AsKReference(deadLetterSinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
+		trigger.WithDeadLetterSink(service.AsKReference(deadLetterSinkName), ""),
 	))
 	f.Setup("trigger is ready", trigger.IsReady(triggerName))
 
@@ -285,7 +285,7 @@ func SubscriberReturnedErrorLargeData() *feature.Feature {
 	f.Assert("knativeerrordest, knativeerrorcode, truncated knativeerrordata added", assertEnhancedWithKnativeErrorExtensions(
 		deadLetterSinkName,
 		func(ctx context.Context) cetest.EventMatcher {
-			sinkAddress, _ := svc.Address(ctx, sinkName)
+			sinkAddress, _ := service.Address(ctx, sinkName)
 			return cetest.HasExtension("knativeerrordest", sinkAddress.String())
 		},
 		func(ctx context.Context) cetest.EventMatcher {
@@ -334,8 +334,8 @@ func SubscriberReturnedHtmlWebpage() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
-		trigger.WithDeadLetterSink(svc.AsKReference(deadLetterSinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
+		trigger.WithDeadLetterSink(service.AsKReference(deadLetterSinkName), ""),
 	))
 	f.Setup("trigger is ready", trigger.IsReady(triggerName))
 
@@ -348,7 +348,7 @@ func SubscriberReturnedHtmlWebpage() *feature.Feature {
 	f.Assert("knativeerrordest, knativeerrorcode, knativeerrordata added", assertEnhancedWithKnativeErrorExtensions(
 		deadLetterSinkName,
 		func(ctx context.Context) cetest.EventMatcher {
-			sinkAddress, _ := svc.Address(ctx, sinkName)
+			sinkAddress, _ := service.Address(ctx, sinkName)
 			return cetest.HasExtension("knativeerrordest", sinkAddress.String())
 		},
 		func(ctx context.Context) cetest.EventMatcher {
@@ -398,8 +398,8 @@ func SubscriberReturnedCustomExtensionHeader() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
-		trigger.WithDeadLetterSink(svc.AsKReference(deadLetterSinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
+		trigger.WithDeadLetterSink(service.AsKReference(deadLetterSinkName), ""),
 	))
 	f.Setup("trigger is ready", trigger.IsReady(triggerName))
 
@@ -412,7 +412,7 @@ func SubscriberReturnedCustomExtensionHeader() *feature.Feature {
 	f.Assert("knativeerrordest, knativeerrorcode, knativeerrordata and custom extension header added", assertEnhancedWithKnativeErrorExtensions(
 		deadLetterSinkName,
 		func(ctx context.Context) cetest.EventMatcher {
-			sinkAddress, _ := svc.Address(ctx, sinkName)
+			sinkAddress, _ := service.Address(ctx, sinkName)
 			return cetest.HasExtension("knativeerrordest", sinkAddress.String())
 		},
 		func(ctx context.Context) cetest.EventMatcher {
diff --git a/test/e2e_new/dls_test.go b/test/e2e_new/dls_test.go
index efa26b6b5..1059a5d07 100644
--- a/test/e2e_new/dls_test.go
+++ b/test/e2e_new/dls_test.go
@@ -38,7 +38,7 @@ import (
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/k8s"
 	"knative.dev/reconciler-test/pkg/knative"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	. "knative.dev/reconciler-test/pkg/eventshub/assert"
 )
@@ -97,8 +97,8 @@ func SendsEventWithRetries() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
-		trigger.WithDeadLetterSink(svc.AsKReference(deadLetterSinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
+		trigger.WithDeadLetterSink(service.AsKReference(deadLetterSinkName), ""),
 	))
 	f.Setup("trigger is ready", trigger.IsReady(triggerName))
 
@@ -162,8 +162,8 @@ func SendsEventErrorWithoutRetries() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
-		trigger.WithDeadLetterSink(svc.AsKReference(deadLetterSinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
+		trigger.WithDeadLetterSink(service.AsKReference(deadLetterSinkName), ""),
 	))
 	f.Setup("trigger is ready", trigger.IsReady(triggerName))
 
@@ -224,8 +224,8 @@ func SendsEventNoRetries() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
-		trigger.WithDeadLetterSink(svc.AsKReference(deadLetterSinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
+		trigger.WithDeadLetterSink(service.AsKReference(deadLetterSinkName), ""),
 	))
 	f.Setup("trigger is ready", trigger.IsReady(triggerName))
 
diff --git a/test/e2e_new/ordered_test.go b/test/e2e_new/ordered_test.go
index c9406b58f..76c9b5784 100644
--- a/test/e2e_new/ordered_test.go
+++ b/test/e2e_new/ordered_test.go
@@ -38,7 +38,7 @@ import (
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/k8s"
 	"knative.dev/reconciler-test/pkg/knative"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	"knative.dev/eventing-kafka-broker/test/e2e_new/multiple_partition_config"
 	"knative.dev/eventing-kafka-broker/test/e2e_new/single_partition_config"
@@ -90,7 +90,7 @@ func SinglePartitionOrderedDelivery() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
 		trigger.WithAnnotations(map[string]interface{}{
 			"kafka.eventing.knative.dev/delivery.order": "ordered",
 		}),
@@ -148,7 +148,7 @@ func MultiplePartitionOrderedDelivery() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
 		trigger.WithAnnotations(map[string]interface{}{
 			"kafka.eventing.knative.dev/delivery.order": "ordered",
 		}),
diff --git a/test/e2e_new/tracing_test.go b/test/e2e_new/tracing_test.go
index cf3c7388b..745de683f 100644
--- a/test/e2e_new/tracing_test.go
+++ b/test/e2e_new/tracing_test.go
@@ -43,7 +43,7 @@ import (
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/k8s"
 	"knative.dev/reconciler-test/pkg/knative"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	. "knative.dev/reconciler-test/pkg/eventshub/assert"
 )
@@ -100,7 +100,7 @@ func TracingHeadersUsingOrderedDeliveryWithTraceExported() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
 		trigger.WithAnnotations(map[string]interface{}{
 			"kafka.eventing.knative.dev/delivery.order": "ordered",
 		}),
@@ -235,7 +235,7 @@ func TracingHeadersUsingUnorderedDelivery() *feature.Feature {
 	f.Setup("install trigger", trigger.Install(
 		triggerName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
 	))
 	f.Setup("trigger is ready", trigger.IsReady(triggerName))
 
@@ -289,12 +289,12 @@ func TracingHeadersUsingUnorderedDeliveryWithMultipleTriggers() *feature.Feature
 	f.Setup("install trigger a", trigger.Install(
 		triggerAName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
 	))
 	f.Setup("install trigger b", trigger.Install(
 		triggerBName,
 		brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
 	))
 	f.Setup("trigger is ready", trigger.IsReady(triggerAName))
 
diff --git a/test/e2e_new/trigger_finalizer_test.go b/test/e2e_new/trigger_finalizer_test.go
index 2dbbf84d6..512ae79f4 100644
--- a/test/e2e_new/trigger_finalizer_test.go
+++ b/test/e2e_new/trigger_finalizer_test.go
@@ -35,7 +35,7 @@ import (
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/k8s"
 	"knative.dev/reconciler-test/pkg/knative"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	triggerreconciler "knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/trigger"
 )
@@ -68,7 +68,7 @@ func triggerNoFinalizerOnBrokerNotFound() *feature.Feature {
 
 	f.Setup("install sink", eventshub.Install(sinkName, eventshub.StartReceiver))
 	f.Setup("install trigger", trigger.Install(triggerName, brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sinkName), ""),
+		trigger.WithSubscriber(service.AsKReference(sinkName), ""),
 	))
 	f.Setup("set trigger name", triggerfeatures.SetTriggerName(triggerName))
 
@@ -87,7 +87,7 @@ func unknownBrokerClass(brokerClass string) *feature.Feature {
 	f.Setup("Install Broker", broker.Install(brokerName, broker.WithBrokerClass(brokerClass)))
 	f.Setup("Install events hub", eventshub.Install(sink, eventshub.StartReceiver))
 	f.Setup("Install Trigger", trigger.Install(triggerName, brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sink), ""),
+		trigger.WithSubscriber(service.AsKReference(sink), ""),
 	))
 	f.Setup("set trigger name", triggerfeatures.SetTriggerName(triggerName))
 
diff --git a/test/rekt/features/broker_deleted_recreated.go b/test/rekt/features/broker_deleted_recreated.go
index 0386a82fb..a243b4b36 100644
--- a/test/rekt/features/broker_deleted_recreated.go
+++ b/test/rekt/features/broker_deleted_recreated.go
@@ -28,7 +28,7 @@ import (
 	"knative.dev/eventing/test/rekt/resources/trigger"
 	"knative.dev/reconciler-test/pkg/eventshub"
 	"knative.dev/reconciler-test/pkg/feature"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	testpkg "knative.dev/eventing-kafka-broker/test/pkg"
 	"knative.dev/eventing-kafka-broker/test/rekt/features/featuressteps"
@@ -77,7 +77,7 @@ func BrokerConfigMapDeletedFirst() *feature.Feature {
 	))
 	f.Setup("install broker", broker.Install(brokerName, append(broker.WithEnvConfig(), broker.WithConfig(cmName))...))
 	f.Setup("install trigger", trigger.Install(triggerName, brokerName,
-		trigger.WithSubscriber(svc.AsKReference(sink), "")),
+		trigger.WithSubscriber(service.AsKReference(sink), "")),
 	)
 
 	f.Requirement("delete Broker ConfigMap", featuressteps.DeleteConfigMap(cmName))
diff --git a/test/rekt/features/featuressteps/broker.go b/test/rekt/features/featuressteps/broker.go
index ac7cc3cd9..6c6f97061 100644
--- a/test/rekt/features/featuressteps/broker.go
+++ b/test/rekt/features/featuressteps/broker.go
@@ -49,7 +49,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"
 )
 
 func compose(steps ...feature.StepFn) feature.StepFn {
@@ -92,7 +92,7 @@ func BrokerSmokeTest(brokerName, triggerName string) feature.StepFn {
 			triggerName,
 			brokerName,
 			trigger.WithRetry(3, &backoffPolicy, pointer.String("PT1S")),
-			trigger.WithSubscriber(svc.AsKReference(sink), ""),
+			trigger.WithSubscriber(service.AsKReference(sink), ""),
 		),
 		trigger.IsReady(triggerName),
 		eventshub.Install(
diff --git a/test/rekt/features/kafka_source.go b/test/rekt/features/kafka_source.go
index c3a8cade2..e89b9c049 100644
--- a/test/rekt/features/kafka_source.go
+++ b/test/rekt/features/kafka_source.go
@@ -29,7 +29,7 @@ import (
 	"knative.dev/reconciler-test/pkg/environment"
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/knative"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	sources "knative.dev/eventing-kafka-broker/control-plane/pkg/apis/sources/v1beta1"
 	kafkaclient "knative.dev/eventing-kafka-broker/control-plane/pkg/client/injection/client"
@@ -52,7 +52,8 @@ func SetupKafkaSources(prefix string, n int) *feature.Feature {
 	sink := "sink"
 	f := feature.NewFeatureNamed("KafkaSources")
 
-	f.Setup("install a sink", svc.Install(sink, "app", "rekt"))
+	f.Setup("install a sink", service.Install(sink,
+		service.WithSelectors(map[string]string{"app": "rekt"})))
 
 	for i := 0; i < n; i++ {
 		topicName := feature.MakeRandomK8sName("topic") // A k8s name is also a valid topic name.
@@ -155,12 +156,13 @@ func ScaleKafkaSource() *feature.Feature {
 	topicName := feature.MakeRandomK8sName("scale-topic")
 	sink := feature.MakeRandomK8sName("sink")
 
-	f.Setup("install a sink", svc.Install(sink, "app", "rekt"))
+	f.Setup("install a sink", service.Install(sink,
+		service.WithSelectors(map[string]string{"app": "rekt"})))
 	f.Setup("install kafka topic", kafkatopic.Install(topicName))
 	f.Setup("scale kafkasource", kafkasource.Install(source,
 		kafkasource.WithBootstrapServers(testingpkg.BootstrapServersPlaintextArr),
 		kafkasource.WithTopics([]string{topicName}),
-		kafkasource.WithSink(svc.AsKReference(sink), ""),
+		kafkasource.WithSink(service.AsKReference(sink), ""),
 		kafkasource.WithAnnotations(map[string]string{
 			// Disable autoscaling for this KafkaSource since we want to have the expected replicas
 			// in the status reflected without the autoscaler intervention.
diff --git a/test/rekt/features/kafka_source_create_secrets_after.go b/test/rekt/features/kafka_source_create_secrets_after.go
index ac62d56c6..069b24341 100644
--- a/test/rekt/features/kafka_source_create_secrets_after.go
+++ b/test/rekt/features/kafka_source_create_secrets_after.go
@@ -21,7 +21,7 @@ import (
 	"knative.dev/pkg/system"
 	"knative.dev/reconciler-test/pkg/feature"
 	"knative.dev/reconciler-test/pkg/k8s"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	"knative.dev/eventing-kafka-broker/test/rekt/resources/kafkasource"
 	"knative.dev/eventing-kafka-broker/test/rekt/resources/kafkatopic"
@@ -41,7 +41,8 @@ func CreateSecretsAfterKafkaSource() *feature.Feature {
 	saslSecretName := "strimzi-sasl-secret"
 
 	f.Setup("install kafka topic", kafkatopic.Install(topicName))
-	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"})))
 	f.Setup("install a KafkaSource", kafkasource.Install(name,
 		kafkasource.WithSink(&duckv1.KReference{Kind: "Service", Name: sink, APIVersion: "v1"}, ""),
 		kafkasource.WithBootstrapServers(testingpkg.BootstrapServersSslSaslScramArr),
diff --git a/test/rekt/features/trigger_offset_reset.go b/test/rekt/features/trigger_offset_reset.go
index 2946b7d70..0b77c3fbd 100644
--- a/test/rekt/features/trigger_offset_reset.go
+++ b/test/rekt/features/trigger_offset_reset.go
@@ -29,7 +29,7 @@ import (
 	"knative.dev/reconciler-test/pkg/eventshub"
 	"knative.dev/reconciler-test/pkg/eventshub/assert"
 	"knative.dev/reconciler-test/pkg/feature"
-	"knative.dev/reconciler-test/resources/svc"
+	"knative.dev/reconciler-test/pkg/resources/service"
 
 	"knative.dev/eventing-kafka-broker/test/rekt/resources/configmap"
 )
@@ -64,13 +64,13 @@ func TriggerLatestOffset() *feature.Feature {
 
 	f.Setup("install sink1", eventshub.Install(sink1, eventshub.StartReceiver))
 	f.Setup("install sink2", eventshub.Install(sink2, eventshub.StartReceiver))
-	f.Setup("install trigger 1", trigger.Install(trigger1Name, brokerName, trigger.WithSubscriber(svc.AsKReference(sink1), "")))
+	f.Setup("install trigger 1", trigger.Install(trigger1Name, brokerName, trigger.WithSubscriber(service.AsKReference(sink1), "")))
 	f.Setup("trigger 1 is ready", trigger.IsReady(trigger1Name))
 
 	f.Requirement("send event 1", eventshub.Install(source1, eventshub.InputEvent(event1), eventshub.StartSenderToResource(broker.GVR(), brokerName)))
 	f.Requirement("event 1 received", assert.OnStore(sink1).MatchEvent(test.HasId(eventID1)).Exact(1))
 
-	f.Assert("install trigger 2", trigger.Install(trigger2Name, brokerName, trigger.WithSubscriber(svc.AsKReference(sink2), "")))
+	f.Assert("install trigger 2", trigger.Install(trigger2Name, brokerName, trigger.WithSubscriber(service.AsKReference(sink2), "")))
 	f.Assert("trigger 2 is ready", trigger.IsReady(trigger2Name))
 
 	f.Assert("send event 2", func(ctx context.Context, t feature.T) {
diff --git a/vendor/knative.dev/eventing/pkg/reconciler/testing/v1/subscription.go b/vendor/knative.dev/eventing/pkg/reconciler/testing/v1/subscription.go
index aa3690ec0..b42e75967 100644
--- a/vendor/knative.dev/eventing/pkg/reconciler/testing/v1/subscription.go
+++ b/vendor/knative.dev/eventing/pkg/reconciler/testing/v1/subscription.go
@@ -250,12 +250,6 @@ func MarkNotAddedToChannel(reason, msg string) SubscriptionOption {
 	}
 }
 
-func MarkChannelFailed(reason, msg string) SubscriptionOption {
-	return func(s *v1.Subscription) {
-		s.Status.MarkChannelFailed(reason, msg)
-	}
-}
-
 func MarkReferencesResolved(s *v1.Subscription) {
 	s.Status.MarkReferencesResolved()
 }
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..1763c7ee9 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
@@ -44,6 +44,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,
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/rekt/features/broker/feature.go b/vendor/knative.dev/eventing/test/rekt/features/broker/feature.go
index 318a47997..496130424 100644
--- a/vendor/knative.dev/eventing/test/rekt/features/broker/feature.go
+++ b/vendor/knative.dev/eventing/test/rekt/features/broker/feature.go
@@ -32,7 +32,7 @@ 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"
@@ -42,6 +42,21 @@ import (
 	"knative.dev/reconciler-test/resources/svc"
 )
 
+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 +75,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")
@@ -191,6 +206,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(svc.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(svc.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")
 
diff --git a/vendor/knative.dev/eventing/test/rekt/resources/broker/broker.go b/vendor/knative.dev/eventing/test/rekt/resources/broker/broker.go
index d6d00c176..f557cbb33 100644
--- a/vendor/knative.dev/eventing/test/rekt/resources/broker/broker.go
+++ b/vendor/knative.dev/eventing/test/rekt/resources/broker/broker.go
@@ -147,6 +147,11 @@ func IsReady(name string, timing ...time.Duration) feature.StepFn {
 	return k8s.IsReady(GVR(), name, timing...)
 }
 
+// IsNotReady tests to see if a Broker becomes NotReady within the time given.
+func IsNotReady(name string, timing ...time.Duration) feature.StepFn {
+	return k8s.IsNotReady(GVR(), name, timing...)
+}
+
 // IsAddressable tests to see if a Broker becomes addressable within the  time
 // given.
 func IsAddressable(name string, timings ...time.Duration) feature.StepFn {
diff --git a/vendor/knative.dev/reconciler-test/pkg/resources/service/options.go b/vendor/knative.dev/reconciler-test/pkg/resources/service/options.go
new file mode 100644
index 000000000..ae2559490
--- /dev/null
+++ b/vendor/knative.dev/reconciler-test/pkg/resources/service/options.go
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2023 The Knative Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package service
+
+import (
+	corev1 "k8s.io/api/core/v1"
+	"knative.dev/reconciler-test/pkg/manifest"
+)
+
+func WithAnnotations(annotations map[string]interface{}) manifest.CfgFn {
+	return func(cfg map[string]interface{}) {
+		if annotations != nil {
+			cfg["annotations"] = annotations
+		}
+	}
+}
+
+func WithLabels(labels map[string]string) manifest.CfgFn {
+	return func(cfg map[string]interface{}) {
+		if labels != nil {
+			cfg["labels"] = labels
+		}
+	}
+}
+
+func WithSelectors(selectors map[string]string) manifest.CfgFn {
+	return func(cfg map[string]interface{}) {
+		if selectors != nil {
+			cfg["selectors"] = selectors
+		}
+	}
+}
+
+func WithPorts(ports []corev1.ServicePort) manifest.CfgFn {
+	return func(cfg map[string]interface{}) {
+		if ports != nil {
+			cfg["ports"] = ports
+		}
+	}
+}
+
+func WithType(serviceType corev1.ServiceType) manifest.CfgFn {
+	return func(cfg map[string]interface{}) {
+		cfg["type"] = serviceType
+	}
+}
+
+func WithExternalName(externalName string) manifest.CfgFn {
+	return func(cfg map[string]interface{}) {
+		cfg["externalName"] = externalName
+	}
+}
diff --git a/vendor/knative.dev/reconciler-test/pkg/resources/service/service.go b/vendor/knative.dev/reconciler-test/pkg/resources/service/service.go
new file mode 100644
index 000000000..883409769
--- /dev/null
+++ b/vendor/knative.dev/reconciler-test/pkg/resources/service/service.go
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2023 The Knative Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package service
+
+import (
+	"context"
+	"embed"
+
+	corev1 "k8s.io/api/core/v1"
+	"k8s.io/apimachinery/pkg/runtime/schema"
+	"k8s.io/apimachinery/pkg/util/intstr"
+	"knative.dev/pkg/apis"
+	duckv1 "knative.dev/pkg/apis/duck/v1"
+	"knative.dev/pkg/tracker"
+
+	"knative.dev/reconciler-test/pkg/feature"
+	"knative.dev/reconciler-test/pkg/k8s"
+	"knative.dev/reconciler-test/pkg/manifest"
+)
+
+//go:embed *.yaml
+var templates embed.FS
+
+func GVR() schema.GroupVersionResource {
+	return corev1.SchemeGroupVersion.WithResource("services")
+}
+
+// Install will create a Service resource. If no ports where defined via the
+// WithPorts option, a default mapping 80:8080 will be used.
+func Install(name string, opts ...manifest.CfgFn) feature.StepFn {
+	cfg := map[string]interface{}{
+		"name": name,
+	}
+
+	for _, fn := range opts {
+		fn(cfg)
+	}
+
+	if _, ok := cfg["ports"]; !ok {
+		// no ports are provided, so use the default 80:8080 ones
+		// to be compatible with deprecated resources/svc package
+		cfg["ports"] = []corev1.ServicePort{{
+			Port:       80,
+			TargetPort: intstr.FromInt(8080),
+		}}
+	}
+
+	return func(ctx context.Context, t feature.T) {
+		if _, err := manifest.InstallYamlFS(ctx, templates, cfg); err != nil {
+			t.Fatal(err)
+		}
+	}
+}
+
+// AsKReference returns a KReference for a Service without namespace.
+func AsKReference(name string) *duckv1.KReference {
+	return &duckv1.KReference{
+		Kind:       "Service",
+		Name:       name,
+		APIVersion: "v1",
+	}
+}
+
+func AsTrackerReference(name string) *tracker.Reference {
+	return &tracker.Reference{
+		Kind:       "Service",
+		Name:       name,
+		APIVersion: "v1",
+	}
+}
+
+func AsDestinationRef(name string) *duckv1.Destination {
+	return &duckv1.Destination{
+		Ref: AsKReference(name),
+	}
+}
+
+// Address
+func Address(ctx context.Context, name string) (*apis.URL, error) {
+	return k8s.Address(ctx, GVR(), name)
+}
diff --git a/vendor/knative.dev/reconciler-test/pkg/resources/service/service.yaml b/vendor/knative.dev/reconciler-test/pkg/resources/service/service.yaml
new file mode 100644
index 000000000..90646a409
--- /dev/null
+++ b/vendor/knative.dev/reconciler-test/pkg/resources/service/service.yaml
@@ -0,0 +1,57 @@
+# 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: Service
+metadata:
+  name: {{ .name }}
+  namespace: {{ .namespace }}
+  {{ if .annotations }}
+  annotations:
+    {{ range $key, $value := .annotations }}
+    {{ $key }}: "{{ $value }}"
+    {{ end }}
+  {{ end }}
+  {{ if .labels }}
+  labels:
+    {{ range $key, $value := .labels }}
+    {{ $key }}: {{ $value }}
+    {{ end }}
+  {{ end }}
+spec:
+  {{ if .selectors }}
+  selector:
+    {{ range $key, $value := .selectors }}
+    {{ $key }}: {{ $value }}
+    {{ end }}
+  {{ end }}
+  ports:
+    {{ range .ports }}
+      {{ if .Protocol }}
+    - protocol: {{ .Protocol }}
+      {{ else }}
+    - protocol: TCP
+      {{ end }}
+      port: {{ .Port }}
+      targetPort: {{ .TargetPort }}
+      {{ if .Name }}
+      name: {{ .Name }}
+      {{ end }}
+    {{ end }}
+  {{ if .type }}
+  type: {{ .type }}
+  {{ end }}
+  {{ if .externalName }}
+  externalName: {{ .externalName }}
+  {{ end }}
diff --git a/vendor/knative.dev/reconciler-test/resources/svc/service.go b/vendor/knative.dev/reconciler-test/resources/svc/service.go
index e0d63b2f0..b8a944f15 100644
--- a/vendor/knative.dev/reconciler-test/resources/svc/service.go
+++ b/vendor/knative.dev/reconciler-test/resources/svc/service.go
@@ -17,66 +17,31 @@ 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"
-
 	"knative.dev/reconciler-test/pkg/feature"
-	"knative.dev/reconciler-test/pkg/k8s"
-	"knative.dev/reconciler-test/pkg/manifest"
+	"knative.dev/reconciler-test/pkg/resources/service"
 )
 
-//go:embed *.yaml
-var templates embed.FS
-
-func GVR() schema.GroupVersionResource {
-	return schema.GroupVersionResource{Group: "", Version: "v1", Resource: "services"}
-}
+// Deprecated: use knative.dev/reconciler-test/pkg/resources/service.GVR
+var GVR = service.GVR
 
 // Install will create a Service resource mapping :80 to :8080 on the provided
 // selector for pods.
+// Deprecated: use knative.dev/reconciler-test/pkg/resources/service.Install
 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, templates, cfg); err != nil {
-			t.Fatal(err)
-		}
-	}
+	return service.Install(name, service.WithSelectors(map[string]string{
+		selectorKey: selectorValue,
+	}))
 }
 
 // AsKReference returns a KReference for a Service without namespace.
-func AsKReference(name string) *duckv1.KReference {
-	return &duckv1.KReference{
-		Kind:       "Service",
-		Name:       name,
-		APIVersion: "v1",
-	}
-}
+// Deprecated: use knative.dev/reconciler-test/pkg/resources/service.AsKReference
+var AsKReference = service.AsKReference
 
-func AsTrackerReference(name string) *tracker.Reference {
-	return &tracker.Reference{
-		Kind:       "Service",
-		Name:       name,
-		APIVersion: "v1",
-	}
-}
+// Deprecated: use knative.dev/reconciler-test/pkg/resources/service.AsTrackerReference
+var AsTrackerReference = service.AsTrackerReference
 
-func AsDestinationRef(name string) *duckv1.Destination {
-	return &duckv1.Destination{
-		Ref: AsKReference(name),
-	}
-}
+// Deprecated: use knative.dev/reconciler-test/pkg/resources/service.AsDestinationRef
+var AsDestinationRef = service.AsDestinationRef
 
-// Address
-func Address(ctx context.Context, name string) (*apis.URL, error) {
-	return k8s.Address(ctx, GVR(), name)
-}
+// Deprecated: use knative.dev/reconciler-test/pkg/resources/service.Address
+var Address = service.Address
diff --git a/vendor/knative.dev/reconciler-test/resources/svc/service.yaml b/vendor/knative.dev/reconciler-test/resources/svc/service.yaml
deleted file mode 100644
index e96ad589a..000000000
--- a/vendor/knative.dev/reconciler-test/resources/svc/service.yaml
+++ /dev/null
@@ -1,26 +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: Service
-metadata:
-  name: {{ .name }}
-  namespace: {{ .namespace }}
-spec:
-  selector:
-    {{ .selectorKey }}: {{ .selectorValue }}
-  ports:
-    - protocol: TCP
-      port: 80
-      targetPort: 8080