Repository: knative-sandbox/eventing-kafka-broker
Pull request #353 (2020-10-27 13:33:11)

[master] Upgrade to latest dependencies
Produced via:
```shell
./hack/update-deps.sh --upgrade
./hack/update-codegen.sh
```
/cc knative-sandbox/channel-wg-leads
/assign knative-sandbox/channel-wg-leads

knative-prow-robot: @knative-automation: GitHub didn't allow me to request PR reviews from the following users: knative-automation/channel-wg-leads.

Note that only [knative-sandbox members](https://github.com/orgs/knative-sandbox/people) and repo collaborators can review this PR, and authors cannot review their own PRs.

<details>

In response to [this](https://github.com/knative-sandbox/eventing-kafka-broker/pull/353):

>Produced via:
>```shell
>./hack/update-deps.sh --upgrade
>./hack/update-codegen.sh
>```
>/cc knative-automation/channel-wg-leads
>/assign knative-automation/channel-wg-leads


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

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

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

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

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

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":["tcnghia"]} -->
knative-prow-robot: Hi @knative-automation. Thanks for your PR.

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

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

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

<details>

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

codecov[bot]: # [Codecov](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353?src=pr&el=h1) Report
> Merging [#353](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353?src=pr&el=desc) into [master](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/commit/125347726deacc4222c43cf7f18bb15d37176272?el=desc) will **decrease** coverage by `0.84%`.
> The diff coverage is `n/a`.

[![Impacted file tree graph](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353/graphs/tree.svg?width=650&height=150&src=pr&token=xyPIgGOiwy)](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353?src=pr&el=tree)

```diff
@@             Coverage Diff              @@
##             master     #353      +/-   ##
============================================
- Coverage     76.27%   75.43%   -0.85%     
  Complexity      189      189              
============================================
  Files            51       29      -22     
  Lines          1564      806     -758     
  Branches         53       53              
============================================
- Hits           1193      608     -585     
+ Misses          291      167     -124     
+ Partials         80       31      -49     
```

| Flag | Coverage Δ | Complexity Δ | |
|---|---|---|---|
| #java-unittests | `75.43% <ø> (ø)` | `189.00 <ø> (ø)` | |

Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags#carryforward-flags-in-the-pull-request-comment) to find out more.

| [Impacted Files](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353?src=pr&el=tree) | Coverage Δ | Complexity Δ | |
|---|---|---|---|
| [...kg/apis/eventing/v1alpha1/kafka\_sink\_conversion.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353/diff?src=pr&el=tree#diff-Y29udHJvbC1wbGFuZS9wa2cvYXBpcy9ldmVudGluZy92MWFscGhhMS9rYWZrYV9zaW5rX2NvbnZlcnNpb24uZ28=) | | | |
| [control-plane/pkg/reconciler/kafka/topic.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353/diff?src=pr&el=tree#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci9rYWZrYS90b3BpYy5nbw==) | | | |
| [...-plane/pkg/reconciler/trigger/trigger\_lifecycle.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353/diff?src=pr&el=tree#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci90cmlnZ2VyL3RyaWdnZXJfbGlmZWN5Y2xlLmdv) | | | |
| [control-plane/pkg/reconciler/sink/controller.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353/diff?src=pr&el=tree#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci9zaW5rL2NvbnRyb2xsZXIuZ28=) | | | |
| [control-plane/pkg/config/env\_config.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353/diff?src=pr&el=tree#diff-Y29udHJvbC1wbGFuZS9wa2cvY29uZmlnL2Vudl9jb25maWcuZ28=) | | | |
| [control-plane/pkg/reconciler/broker/broker.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353/diff?src=pr&el=tree#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci9icm9rZXIvYnJva2VyLmdv) | | | |
| [...ntrol-plane/pkg/apis/eventing/v1alpha1/register.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353/diff?src=pr&el=tree#diff-Y29udHJvbC1wbGFuZS9wa2cvYXBpcy9ldmVudGluZy92MWFscGhhMS9yZWdpc3Rlci5nbw==) | | | |
| [...kg/apis/eventing/v1alpha1/kafka\_sink\_validation.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353/diff?src=pr&el=tree#diff-Y29udHJvbC1wbGFuZS9wa2cvYXBpcy9ldmVudGluZy92MWFscGhhMS9rYWZrYV9zaW5rX3ZhbGlkYXRpb24uZ28=) | | | |
| [...ane/pkg/apis/eventing/v1alpha1/kafka\_sink\_types.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353/diff?src=pr&el=tree#diff-Y29udHJvbC1wbGFuZS9wa2cvYXBpcy9ldmVudGluZy92MWFscGhhMS9rYWZrYV9zaW5rX3R5cGVzLmdv) | | | |
| [control-plane/pkg/reconciler/broker/controller.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353/diff?src=pr&el=tree#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci9icm9rZXIvY29udHJvbGxlci5nbw==) | | | |
| ... and [12 more](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353/diff?src=pr&el=tree-more) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353?src=pr&el=footer). Last update [1253477...f48c326](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/353?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

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

This pull-request has been approved by: *<a href="https://github.com/knative-sandbox/eventing-kafka-broker/pull/353#" title="Author self-approved">knative-automation</a>*, *<a href="https://github.com/knative-sandbox/eventing-kafka-broker/pull/353#pullrequestreview-517741078" 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/master/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":[]} -->
knative-prow-robot: [APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/knative-sandbox/eventing-kafka-broker/pull/353#" title="Author self-approved">knative-automation</a>*, *<a href="https://github.com/knative-sandbox/eventing-kafka-broker/pull/353#pullrequestreview-517945113" title="LGTM">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/master/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 d9a9b676b..725a775be 100644
--- a/go.mod
+++ b/go.mod
@@ -23,8 +23,8 @@ require (
 	k8s.io/apiserver v0.18.8
 	k8s.io/client-go v11.0.1-0.20190805182717-6502b5e7b1b5+incompatible
 	k8s.io/utils v0.0.0-20200603063816-c1c6865ac451
-	knative.dev/eventing v0.18.1-0.20201027014033-e72a17c5a20b
-	knative.dev/pkg v0.0.0-20201027020033-875095c42ee0
+	knative.dev/eventing v0.18.1-0.20201027155533-17e1562518ef
+	knative.dev/pkg v0.0.0-20201027160133-4ce8016d707c
 	knative.dev/test-infra v0.0.0-20201026182042-46291de4ab66
 )
 
diff --git a/go.sum b/go.sum
index 52f0658c2..394b1d4cd 100644
--- a/go.sum
+++ b/go.sum
@@ -606,7 +606,6 @@ github.com/google/go-containerregistry v0.0.0-20200115214256-379933c9c22b/go.mod
 github.com/google/go-containerregistry v0.0.0-20200123184029-53ce695e4179/go.mod h1:Wtl/v6YdQxv397EREtzwgd9+Ud7Q5D8XMbi3Zazgkrs=
 github.com/google/go-containerregistry v0.0.0-20200331213917-3d03ed9b1ca2/go.mod h1:pD1UFYs7MCAx+ZLShBdttcaOSbyc8F9Na/9IZLNwJeA=
 github.com/google/go-containerregistry v0.1.1/go.mod h1:npTSyywOeILcgWqd+rvtzGWflIPPcBQhYoOONaY4ltM=
-github.com/google/go-containerregistry v0.1.3/go.mod h1:3Wg/Hjgn/ZDxrYYhtzZJWdThOd8zeI2zAmn4oVfm1Wg=
 github.com/google/go-containerregistry v0.1.4/go.mod h1:6EGiuQp36pL82lX6rFN0s9AJOVL0Mlgx/DAsYZW5X3s=
 github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY=
 github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
@@ -1350,8 +1349,6 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh
 golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de h1:ikNHVSjEfnvz6sxdSPCaPt572qowuyMDMJLLm3Db3ig=
-golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0 h1:hb9wdF1z5waM+dSIICn1l0DkLVDT3hqhhQsDNUmHPRE=
 golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -1958,8 +1955,8 @@ k8s.io/utils v0.0.0-20200603063816-c1c6865ac451 h1:v8ud2Up6QK1lNOKFgiIVrZdMg7Mpm
 k8s.io/utils v0.0.0-20200603063816-c1c6865ac451/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
 knative.dev/caching v0.0.0-20190719140829-2032732871ff/go.mod h1:dHXFU6CGlLlbzaWc32g80cR92iuBSpsslDNBWI8C7eg=
 knative.dev/caching v0.0.0-20200116200605-67bca2c83dfa/go.mod h1:dHXFU6CGlLlbzaWc32g80cR92iuBSpsslDNBWI8C7eg=
-knative.dev/eventing v0.18.1-0.20201027014033-e72a17c5a20b h1:hjgihSUTjnaTY4lRThWwajidQ3rW9S7GZ+u5WdKc6sk=
-knative.dev/eventing v0.18.1-0.20201027014033-e72a17c5a20b/go.mod h1:SPQEV8jjU8nlkGJMMb1DAUr7z/jBYePc99LQZQ3QmrM=
+knative.dev/eventing v0.18.1-0.20201027155533-17e1562518ef h1:e6x55uOHRQc6kHVKse4tR1hzbL97vD/+zwS7FW/obes=
+knative.dev/eventing v0.18.1-0.20201027155533-17e1562518ef/go.mod h1:qdJt8Lo2ZsQZ/4YHG5bg5LkhpBhOjnjQA9NPyMSeOvY=
 knative.dev/eventing-contrib v0.6.1-0.20190723221543-5ce18048c08b/go.mod h1:SnXZgSGgMSMLNFTwTnpaOH7hXDzTFtw0J8OmHflNx3g=
 knative.dev/eventing-contrib v0.11.2/go.mod h1:SnXZgSGgMSMLNFTwTnpaOH7hXDzTFtw0J8OmHflNx3g=
 knative.dev/pkg v0.0.0-20191101194912-56c2594e4f11/go.mod h1:pgODObA1dTyhNoFxPZTTjNWfx6F0aKsKzn+vaT9XO/Q=
@@ -1970,16 +1967,14 @@ knative.dev/pkg v0.0.0-20200505191044-3da93ebb24c2/go.mod h1:Q6sL35DdGs8hIQZKdaC
 knative.dev/pkg v0.0.0-20200515002500-16d7b963416f/go.mod h1:tMOHGbxtRz8zYFGEGpV/bpoTEM1o89MwYFC4YJXl3GY=
 knative.dev/pkg v0.0.0-20200528142800-1c6815d7e4c9/go.mod h1:QgNZTxnwpB/oSpNcfnLVlw+WpEwwyKAvJlvR3hgeltA=
 knative.dev/pkg v0.0.0-20200711004937-22502028e31a/go.mod h1:AqAJV6rYi8IGikDjJ/9ZQd9qKdkXVlesVnVjwx62YB8=
-knative.dev/pkg v0.0.0-20201026232541-37583c54bfc3/go.mod h1:pc2VrtK69NrLtGMc6Gu0BL8IOfmph6KNvIDVrFqqW3Q=
-knative.dev/pkg v0.0.0-20201027020033-875095c42ee0 h1:wds7wavjBGM/5XszmdhMf+nP844AhxRQYM+SqoM77ok=
-knative.dev/pkg v0.0.0-20201027020033-875095c42ee0/go.mod h1:vytY2kpkAbUm8yDIzJrLEgJ7FK/ieWuQDo4cNavAwuc=
+knative.dev/pkg v0.0.0-20201027121533-273ba59a1132/go.mod h1:vytY2kpkAbUm8yDIzJrLEgJ7FK/ieWuQDo4cNavAwuc=
+knative.dev/pkg v0.0.0-20201027160133-4ce8016d707c h1:JkiOOFfY6fV+PWx5ImtzUIbu1T1AHc3STH/RiJ+kVJs=
+knative.dev/pkg v0.0.0-20201027160133-4ce8016d707c/go.mod h1:vytY2kpkAbUm8yDIzJrLEgJ7FK/ieWuQDo4cNavAwuc=
 knative.dev/test-infra v0.0.0-20200407185800-1b88cb3b45a5/go.mod h1:xcdUkMJrLlBswIZqL5zCuBFOC22WIPMQoVX1L35i0vQ=
 knative.dev/test-infra v0.0.0-20200505052144-5ea2f705bb55/go.mod h1:WqF1Azka+FxPZ20keR2zCNtiQA1MP9ZB4BH4HuI+SIU=
 knative.dev/test-infra v0.0.0-20200513011557-d03429a76034/go.mod h1:aMif0KXL4g19YCYwsy4Ocjjz5xgPlseYV+B95Oo4JGE=
 knative.dev/test-infra v0.0.0-20200519015156-82551620b0a9/go.mod h1:A5b2OAXTOeHT3hHhVQm3dmtbuWvIDP7qzgtqxA3/2pE=
 knative.dev/test-infra v0.0.0-20200707183444-aed09e56ddc7/go.mod h1:RjYAhXnZqeHw9+B0zsbqSPlae0lCvjekO/nw5ZMpLCs=
-knative.dev/test-infra v0.0.0-20201022003632-7d3ea6019158 h1:i6DIeWY1imJVNS6OH+VcBvYpVOkYWDe/AR2rUYTxcxE=
-knative.dev/test-infra v0.0.0-20201022003632-7d3ea6019158/go.mod h1:lm0U0k6ARXr8Po0LcSTCfETg63LOF3ajUxcoqy5JSH0=
 knative.dev/test-infra v0.0.0-20201026182042-46291de4ab66 h1:4GjjfWLzfsxN7xm+vkdC4AWqgTlw5mSQmTdSqPVfjlM=
 knative.dev/test-infra v0.0.0-20201026182042-46291de4ab66/go.mod h1:84HgSlMIp+oCx//g2Js61OxSVgdvrRYQMfMMr9kSSn4=
 modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
diff --git a/vendor/knative.dev/eventing/pkg/apis/duck/v1/fuzzer.go b/vendor/knative.dev/eventing/pkg/apis/duck/v1/fuzzer.go
deleted file mode 100644
index 919324b97..000000000
--- a/vendor/knative.dev/eventing/pkg/apis/duck/v1/fuzzer.go
+++ /dev/null
@@ -1,50 +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 v1
-
-import (
-	"math/rand"
-
-	fuzz "github.com/google/gofuzz"
-	"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
-	"k8s.io/apimachinery/pkg/runtime/serializer"
-)
-
-var linear = BackoffPolicyLinear
-var exponential = BackoffPolicyExponential
-var bops = []*BackoffPolicyType{nil, &linear, &exponential}
-
-// FuzzerFuncs includes fuzzing funcs for knative.dev/duck v1 types
-// In particular it makes sure that Delivery has only valid BackoffPolicyType in it.
-//
-// For other examples see
-// https://github.com/kubernetes/apimachinery/blob/master/pkg/apis/meta/fuzzer/fuzzer.go
-var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
-	func(codecs serializer.CodecFactory) []interface{} {
-		return []interface{}{
-			func(ds *DeliverySpec, c fuzz.Continue) {
-				c.FuzzNoCustom(ds) // fuzz the DeliverySpec
-				if ds.BackoffPolicy != nil && *ds.BackoffPolicy == "" {
-					ds.BackoffPolicy = nil
-				} else {
-					//nolint:gosec // Cryptographic randomness is not necessary.
-					ds.BackoffPolicy = bops[rand.Intn(3)]
-				}
-			},
-		}
-	},
-)
diff --git a/vendor/knative.dev/eventing/pkg/apis/eventing/v1/fuzzer.go b/vendor/knative.dev/eventing/pkg/apis/eventing/v1/fuzzer.go
deleted file mode 100644
index ef53d194b..000000000
--- a/vendor/knative.dev/eventing/pkg/apis/eventing/v1/fuzzer.go
+++ /dev/null
@@ -1,55 +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 v1
-
-import (
-	fuzz "github.com/google/gofuzz"
-	"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
-	"k8s.io/apimachinery/pkg/runtime/serializer"
-	pkgfuzzer "knative.dev/pkg/apis/testing/fuzzer"
-)
-
-// FuzzerFuncs includes fuzzing funcs for knative.dev/eventing v1 types
-//
-// For other examples see
-// https://github.com/kubernetes/apimachinery/blob/master/pkg/apis/meta/fuzzer/fuzzer.go
-var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
-	func(codecs serializer.CodecFactory) []interface{} {
-		return []interface{}{
-			func(s *TriggerStatus, c fuzz.Continue) {
-				c.FuzzNoCustom(s) // fuzz the status object
-
-				// Clear the random fuzzed condition
-				s.Status.SetConditions(nil)
-
-				// Fuzz the known conditions except their type value
-				s.InitializeConditions()
-				pkgfuzzer.FuzzConditions(&s.Status, c)
-			},
-			func(s *BrokerStatus, c fuzz.Continue) {
-				c.FuzzNoCustom(s) // fuzz the status object
-
-				// Clear the random fuzzed condition
-				s.Status.SetConditions(nil)
-
-				// Fuzz the known conditions except their type value
-				s.InitializeConditions()
-				pkgfuzzer.FuzzConditions(&s.Status, c)
-			},
-		}
-	},
-)
diff --git a/vendor/knative.dev/eventing/pkg/apis/flows/v1/fuzzer.go b/vendor/knative.dev/eventing/pkg/apis/flows/v1/fuzzer.go
deleted file mode 100644
index f859f94c4..000000000
--- a/vendor/knative.dev/eventing/pkg/apis/flows/v1/fuzzer.go
+++ /dev/null
@@ -1,55 +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 v1
-
-import (
-	fuzz "github.com/google/gofuzz"
-	"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
-	"k8s.io/apimachinery/pkg/runtime/serializer"
-	pkgfuzzer "knative.dev/pkg/apis/testing/fuzzer"
-)
-
-// FuzzerFuncs includes fuzzing funcs for knative.dev/flows v1 types
-//
-// For other examples see
-// https://github.com/kubernetes/apimachinery/blob/master/pkg/apis/meta/fuzzer/fuzzer.go
-var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
-	func(codecs serializer.CodecFactory) []interface{} {
-		return []interface{}{
-			func(s *SequenceStatus, c fuzz.Continue) {
-				c.FuzzNoCustom(s) // fuzz the status object
-
-				// Clear the random fuzzed condition
-				s.Status.SetConditions(nil)
-
-				// Fuzz the known conditions except their type value
-				s.InitializeConditions()
-				pkgfuzzer.FuzzConditions(&s.Status, c)
-			},
-			func(s *ParallelStatus, c fuzz.Continue) {
-				c.FuzzNoCustom(s) // fuzz the status object
-
-				// Clear the random fuzzed condition
-				s.Status.SetConditions(nil)
-
-				// Fuzz the known conditions except their type value
-				s.InitializeConditions()
-				pkgfuzzer.FuzzConditions(&s.Status, c)
-			},
-		}
-	},
-)
diff --git a/vendor/knative.dev/eventing/pkg/apis/messaging/v1/fuzzer.go b/vendor/knative.dev/eventing/pkg/apis/messaging/v1/fuzzer.go
deleted file mode 100644
index baecec17e..000000000
--- a/vendor/knative.dev/eventing/pkg/apis/messaging/v1/fuzzer.go
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-Copyright 2020 The Knative Authors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package v1
-
-import (
-	fuzz "github.com/google/gofuzz"
-	"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
-	"k8s.io/apimachinery/pkg/runtime/serializer"
-	"knative.dev/eventing/pkg/apis/messaging"
-	pkgfuzzer "knative.dev/pkg/apis/testing/fuzzer"
-)
-
-// FuzzerFuncs includes fuzzing funcs for knative.dev/messaging v1 types
-//
-// For other examples see
-// https://github.com/kubernetes/apimachinery/blob/master/pkg/apis/meta/fuzzer/fuzzer.go
-var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
-	func(codecs serializer.CodecFactory) []interface{} {
-		return []interface{}{
-			func(ch *Channel, c fuzz.Continue) {
-				c.FuzzNoCustom(ch) // fuzz the Channel
-				if ch != nil {
-					if ch.Annotations == nil {
-						ch.Annotations = make(map[string]string)
-					}
-					ch.Annotations[messaging.SubscribableDuckVersionAnnotation] = "v1"
-				}
-				// Clear the random fuzzed condition
-				ch.Status.SetConditions(nil)
-
-				// Fuzz the known conditions except their type value
-				ch.Status.InitializeConditions()
-				pkgfuzzer.FuzzConditions(&ch.Status, c)
-			},
-			func(imc *InMemoryChannel, c fuzz.Continue) {
-				c.FuzzNoCustom(imc) // fuzz the InMemoryChannel
-				if imc != nil {
-					if imc.Annotations == nil {
-						imc.Annotations = make(map[string]string)
-					}
-					imc.Annotations[messaging.SubscribableDuckVersionAnnotation] = "v1"
-				}
-				// Clear the random fuzzed condition
-				imc.Status.SetConditions(nil)
-
-				// Fuzz the known conditions except their type value
-				imc.Status.InitializeConditions()
-				pkgfuzzer.FuzzConditions(&imc.Status, c)
-			},
-			func(s *SubscriptionStatus, c fuzz.Continue) {
-				c.FuzzNoCustom(s) // fuzz the status object
-
-				// Clear the random fuzzed condition
-				s.Status.SetConditions(nil)
-
-				// Fuzz the known conditions except their type value
-				s.InitializeConditions()
-				pkgfuzzer.FuzzConditions(&s.Status, c)
-			},
-		}
-	},
-)
diff --git a/vendor/knative.dev/pkg/apis/duck/v1/fuzzer.go b/vendor/knative.dev/pkg/apis/duck/v1/fuzzer.go
deleted file mode 100644
index 4ef66e589..000000000
--- a/vendor/knative.dev/pkg/apis/duck/v1/fuzzer.go
+++ /dev/null
@@ -1,44 +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 v1
-
-import (
-	fuzz "github.com/google/gofuzz"
-	"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
-	"k8s.io/apimachinery/pkg/runtime/serializer"
-	"knative.dev/pkg/apis"
-	pkgfuzzer "knative.dev/pkg/apis/testing/fuzzer"
-)
-
-var testConditions = apis.Conditions{{Type: apis.ConditionReady}, {Type: apis.ConditionSucceeded}}
-
-// FuzzerFuncs includes fuzzing funcs for knative.dev/duck v1 types
-// In particular it makes sure that Delivery has only valid BackoffPolicyType in it.
-//
-// For other examples see
-// https://github.com/kubernetes/apimachinery/blob/master/pkg/apis/meta/fuzzer/fuzzer.go
-var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
-	func(codecs serializer.CodecFactory) []interface{} {
-		return []interface{}{
-			func(status *Status, c fuzz.Continue) {
-				c.FuzzNoCustom(status) // fuzz the Status
-				status.SetConditions(testConditions)
-				pkgfuzzer.FuzzConditions(status, c)
-			},
-		}
-	},
-)
diff --git a/vendor/knative.dev/pkg/apis/duck/v1beta1/fuzzer.go b/vendor/knative.dev/pkg/apis/duck/v1beta1/fuzzer.go
deleted file mode 100644
index efc8be973..000000000
--- a/vendor/knative.dev/pkg/apis/duck/v1beta1/fuzzer.go
+++ /dev/null
@@ -1,43 +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 v1beta1
-
-import (
-	fuzz "github.com/google/gofuzz"
-	"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
-	"k8s.io/apimachinery/pkg/runtime/serializer"
-	"knative.dev/pkg/apis"
-	pkgfuzzer "knative.dev/pkg/apis/testing/fuzzer"
-)
-
-var testConditions = apis.Conditions{{Type: apis.ConditionReady}, {Type: apis.ConditionSucceeded}}
-
-// FuzzerFuncs includes fuzzing funcs for knative.dev/duck v1beta1 Status types
-//
-// For other examples see
-// https://github.com/kubernetes/apimachinery/blob/master/pkg/apis/meta/fuzzer/fuzzer.go
-var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
-	func(codecs serializer.CodecFactory) []interface{} {
-		return []interface{}{
-			func(status *Status, c fuzz.Continue) {
-				c.FuzzNoCustom(status) // fuzz the Status
-				status.SetConditions(testConditions)
-				pkgfuzzer.FuzzConditions(status, c)
-			},
-		}
-	},
-)
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 3b8663a0c..5a10d648e 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -723,7 +723,6 @@ k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1
 k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1
 # k8s.io/apimachinery v0.19.2 => k8s.io/apimachinery v0.18.8
 ## explicit
-k8s.io/apimachinery/pkg/api/apitesting/fuzzer
 k8s.io/apimachinery/pkg/api/equality
 k8s.io/apimachinery/pkg/api/errors
 k8s.io/apimachinery/pkg/api/meta
@@ -1051,7 +1050,7 @@ k8s.io/utils/buffer
 k8s.io/utils/integer
 k8s.io/utils/pointer
 k8s.io/utils/trace
-# knative.dev/eventing v0.18.1-0.20201027014033-e72a17c5a20b
+# knative.dev/eventing v0.18.1-0.20201027155533-17e1562518ef
 ## explicit
 knative.dev/eventing/pkg/apis/config
 knative.dev/eventing/pkg/apis/configs
@@ -1157,6 +1156,7 @@ knative.dev/eventing/test/lib/dropevents/dropeventsfibonacci
 knative.dev/eventing/test/lib/dropevents/dropeventsfirst
 knative.dev/eventing/test/lib/duck
 knative.dev/eventing/test/lib/recordevents
+knative.dev/eventing/test/lib/recordevents/logger_vent
 knative.dev/eventing/test/lib/recordevents/observer
 knative.dev/eventing/test/lib/recordevents/recorder_vent
 knative.dev/eventing/test/lib/resources
@@ -1174,7 +1174,7 @@ knative.dev/eventing/test/test_images/performance
 knative.dev/eventing/test/test_images/print
 knative.dev/eventing/test/test_images/recordevents
 knative.dev/eventing/test/test_images/request-sender
-# knative.dev/pkg v0.0.0-20201027020033-875095c42ee0
+# knative.dev/pkg v0.0.0-20201027160133-4ce8016d707c
 ## explicit
 knative.dev/pkg/apis
 knative.dev/pkg/apis/duck
@@ -1182,7 +1182,6 @@ knative.dev/pkg/apis/duck/ducktypes
 knative.dev/pkg/apis/duck/v1
 knative.dev/pkg/apis/duck/v1alpha1
 knative.dev/pkg/apis/duck/v1beta1
-knative.dev/pkg/apis/testing/fuzzer
 knative.dev/pkg/changeset
 knative.dev/pkg/client/injection/apiextensions/client
 knative.dev/pkg/client/injection/apiextensions/client/fake


Test patch:
diff --git a/vendor/k8s.io/apimachinery/pkg/api/apitesting/fuzzer/fuzzer.go b/vendor/k8s.io/apimachinery/pkg/api/apitesting/fuzzer/fuzzer.go
deleted file mode 100644
index f528e9f92..000000000
--- a/vendor/k8s.io/apimachinery/pkg/api/apitesting/fuzzer/fuzzer.go
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-Copyright 2017 The Kubernetes 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 fuzzer
-
-import (
-	"math/rand"
-
-	"github.com/google/gofuzz"
-
-	runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
-)
-
-// FuzzerFuncs returns a list of func(*SomeType, c fuzz.Continue) functions.
-type FuzzerFuncs func(codecs runtimeserializer.CodecFactory) []interface{}
-
-// FuzzerFor can randomly populate api objects that are destined for version.
-func FuzzerFor(funcs FuzzerFuncs, src rand.Source, codecs runtimeserializer.CodecFactory) *fuzz.Fuzzer {
-	f := fuzz.New().NilChance(.5).NumElements(0, 1)
-	if src != nil {
-		f.RandSource(src)
-	}
-	f.Funcs(funcs(codecs)...)
-	return f
-}
-
-// MergeFuzzerFuncs will merge the given funcLists, overriding early funcs with later ones if there first
-// argument has the same type.
-func MergeFuzzerFuncs(funcs ...FuzzerFuncs) FuzzerFuncs {
-	return FuzzerFuncs(func(codecs runtimeserializer.CodecFactory) []interface{} {
-		result := []interface{}{}
-		for _, f := range funcs {
-			if f != nil {
-				result = append(result, f(codecs)...)
-			}
-		}
-		return result
-	})
-}
diff --git a/vendor/k8s.io/apimachinery/pkg/api/apitesting/fuzzer/valuefuzz.go b/vendor/k8s.io/apimachinery/pkg/api/apitesting/fuzzer/valuefuzz.go
deleted file mode 100644
index cd71c517d..000000000
--- a/vendor/k8s.io/apimachinery/pkg/api/apitesting/fuzzer/valuefuzz.go
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-Copyright 2017 The Kubernetes 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 fuzzer
-
-import (
-	"reflect"
-)
-
-// ValueFuzz recursively changes all basic type values in an object. Any kind of references will not
-// be touch, i.e. the addresses of slices, maps, pointers will stay unchanged.
-func ValueFuzz(obj interface{}) {
-	valueFuzz(reflect.ValueOf(obj))
-}
-
-func valueFuzz(obj reflect.Value) {
-	switch obj.Kind() {
-	case reflect.Array:
-		for i := 0; i < obj.Len(); i++ {
-			valueFuzz(obj.Index(i))
-		}
-	case reflect.Slice:
-		if obj.IsNil() {
-			// TODO: set non-nil value
-		} else {
-			for i := 0; i < obj.Len(); i++ {
-				valueFuzz(obj.Index(i))
-			}
-		}
-	case reflect.Interface, reflect.Ptr:
-		if obj.IsNil() {
-			// TODO: set non-nil value
-		} else {
-			valueFuzz(obj.Elem())
-		}
-	case reflect.Struct:
-		for i, n := 0, obj.NumField(); i < n; i++ {
-			valueFuzz(obj.Field(i))
-		}
-	case reflect.Map:
-		if obj.IsNil() {
-			// TODO: set non-nil value
-		} else {
-			for _, k := range obj.MapKeys() {
-				// map values are not addressable. We need a copy.
-				v := obj.MapIndex(k)
-				copy := reflect.New(v.Type())
-				copy.Elem().Set(v)
-				valueFuzz(copy.Elem())
-				obj.SetMapIndex(k, copy.Elem())
-			}
-			// TODO: set some new value
-		}
-	case reflect.Func: // ignore, we don't have function types in our API
-	default:
-		if !obj.CanSet() {
-			return
-		}
-		switch obj.Kind() {
-		case reflect.String:
-			obj.SetString(obj.String() + "x")
-		case reflect.Bool:
-			obj.SetBool(!obj.Bool())
-		case reflect.Float32, reflect.Float64:
-			obj.SetFloat(obj.Float()*2.0 + 1.0)
-		case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:
-			obj.SetInt(obj.Int() + 1)
-		case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:
-			obj.SetUint(obj.Uint() + 1)
-		default:
-		}
-	}
-}
diff --git a/vendor/knative.dev/eventing/test/conformance/helpers/broker_tracing_test_helper.go b/vendor/knative.dev/eventing/test/conformance/helpers/broker_tracing_test_helper.go
index 77c413bb7..4b0cb36bf 100644
--- a/vendor/knative.dev/eventing/test/conformance/helpers/broker_tracing_test_helper.go
+++ b/vendor/knative.dev/eventing/test/conformance/helpers/broker_tracing_test_helper.go
@@ -19,6 +19,7 @@ package helpers
 import (
 	"context"
 	"fmt"
+	"regexp"
 	"testing"
 
 	cloudevents "github.com/cloudevents/sdk-go/v2"
@@ -70,7 +71,6 @@ func setupBrokerTracing(_ context.Context, brokerClass string) SetupTracingTestI
 		client *testlib.Client,
 		loggerPodName string,
 		senderPublishTrace bool,
-		clusterDomain string,
 	) (tracinghelper.TestSpanTree, cetest.EventMatcher) {
 		// Create a configmap used by the broker.
 		client.CreateBrokerConfigMapOrFail("br", channel)
@@ -141,8 +141,8 @@ func setupBrokerTracing(_ context.Context, brokerClass string) SetupTracingTestI
 		// 6. Logger pod receives the event from the Broker Filter for the "logger" trigger.
 
 		// Useful constants we will use below.
-		loggerSVCHost := k8sServiceHost(clusterDomain, client.Namespace, loggerPodName)
-		transformerSVCHost := k8sServiceHost(clusterDomain, client.Namespace, eventTransformerPod.Name)
+		loggerSVCHost := k8sServiceHost(client.Namespace, loggerPodName)
+		transformerSVCHost := k8sServiceHost(client.Namespace, eventTransformerPod.Name)
 
 		transformerEventSentFromTrChannelToTransformer := tracinghelper.TestSpanTree{
 			Note: "3. Broker Filter for the 'transformer' trigger sends the event to the transformer pod.",
@@ -215,20 +215,20 @@ func setupBrokerTracing(_ context.Context, brokerClass string) SetupTracingTestI
 
 func ingressSpan(broker *v1beta1.Broker, eventID string) *tracinghelper.SpanMatcher {
 	return &tracinghelper.SpanMatcher{
-		Tags: map[string]string{
-			"messaging.system":      "knative",
-			"messaging.destination": fmt.Sprintf("broker:%s.%s", broker.Name, broker.Namespace),
-			"messaging.message_id":  eventID,
+		Tags: map[string]*regexp.Regexp{
+			"messaging.system":      regexp.MustCompile("^knative$"),
+			"messaging.destination": regexp.MustCompile(fmt.Sprintf("^broker:%s.%s$", broker.Name, broker.Namespace)),
+			"messaging.message_id":  regexp.MustCompile("^" + eventID + "$"),
 		},
 	}
 }
 
 func triggerSpan(trigger *v1beta1.Trigger, eventID string) *tracinghelper.SpanMatcher {
 	return &tracinghelper.SpanMatcher{
-		Tags: map[string]string{
-			"messaging.system":      "knative",
-			"messaging.destination": fmt.Sprintf("trigger:%s.%s", trigger.Name, trigger.Namespace),
-			"messaging.message_id":  eventID,
+		Tags: map[string]*regexp.Regexp{
+			"messaging.system":      regexp.MustCompile("^knative$"),
+			"messaging.destination": regexp.MustCompile(fmt.Sprintf("^trigger:%s.%s$", trigger.Name, trigger.Namespace)),
+			"messaging.message_id":  regexp.MustCompile("^" + eventID + "$"),
 		},
 	}
 }
diff --git a/vendor/knative.dev/eventing/test/conformance/helpers/channel_tracing_test_helper.go b/vendor/knative.dev/eventing/test/conformance/helpers/channel_tracing_test_helper.go
index 44d0b403d..2cecf0007 100644
--- a/vendor/knative.dev/eventing/test/conformance/helpers/channel_tracing_test_helper.go
+++ b/vendor/knative.dev/eventing/test/conformance/helpers/channel_tracing_test_helper.go
@@ -60,7 +60,6 @@ func setupChannelTracingWithReply(
 	client *testlib.Client,
 	recordEventsPodName string,
 	senderPublishTrace bool,
-	clusterDomain string,
 ) (tracinghelper.TestSpanTree, cetest.EventMatcher) {
 	eventSource := "sender"
 	// Create the Channels.
@@ -138,7 +137,7 @@ func setupChannelTracingWithReply(
 		Span: tracinghelper.MatchHTTPSpanNoReply(
 			model.Server,
 			tracinghelper.WithHTTPHostAndPath(
-				fmt.Sprintf("%s-kn-channel.%s.svc.%s", channelName, client.Namespace, clusterDomain),
+				fmt.Sprintf("%s-kn-channel.%s.svc", channelName, client.Namespace),
 				"/",
 			),
 		),
@@ -148,7 +147,7 @@ func setupChannelTracingWithReply(
 				Span: tracinghelper.MatchHTTPSpanWithReply(
 					model.Client,
 					tracinghelper.WithHTTPHostAndPath(
-						fmt.Sprintf("%s.%s.svc.%s", transformerPod.Name, client.Namespace, clusterDomain),
+						fmt.Sprintf("%s.%s.svc", transformerPod.Name, client.Namespace),
 						"/",
 					),
 				),
@@ -158,7 +157,7 @@ func setupChannelTracingWithReply(
 						Span: tracinghelper.MatchHTTPSpanWithReply(
 							model.Server,
 							tracinghelper.WithHTTPHostAndPath(
-								fmt.Sprintf("%s.%s.svc.%s", transformerPod.Name, client.Namespace, clusterDomain),
+								fmt.Sprintf("%s.%s.svc", transformerPod.Name, client.Namespace),
 								"/",
 							),
 							tracinghelper.WithLocalEndpointServiceName(transformerPod.Name),
@@ -171,7 +170,7 @@ func setupChannelTracingWithReply(
 				Span: tracinghelper.MatchHTTPSpanNoReply(
 					model.Client,
 					tracinghelper.WithHTTPHostAndPath(
-						fmt.Sprintf("%s-kn-channel.%s.svc.%s", replyChannelName, client.Namespace, clusterDomain),
+						fmt.Sprintf("%s-kn-channel.%s.svc", replyChannelName, client.Namespace),
 						"",
 					),
 				),
@@ -181,7 +180,7 @@ func setupChannelTracingWithReply(
 						Span: tracinghelper.MatchHTTPSpanNoReply(
 							model.Server,
 							tracinghelper.WithHTTPHostAndPath(
-								fmt.Sprintf("%s-kn-channel.%s.svc.%s", replyChannelName, client.Namespace, clusterDomain),
+								fmt.Sprintf("%s-kn-channel.%s.svc", replyChannelName, client.Namespace),
 								"/",
 							),
 						),
@@ -191,7 +190,7 @@ func setupChannelTracingWithReply(
 								Span: tracinghelper.MatchHTTPSpanNoReply(
 									model.Client,
 									tracinghelper.WithHTTPHostAndPath(
-										fmt.Sprintf("%s.%s.svc.%s", recordEventsPod.Name, client.Namespace, clusterDomain),
+										fmt.Sprintf("%s.%s.svc", recordEventsPod.Name, client.Namespace),
 										"/",
 									),
 								),
@@ -201,7 +200,7 @@ func setupChannelTracingWithReply(
 										Span: tracinghelper.MatchHTTPSpanNoReply(
 											model.Server,
 											tracinghelper.WithHTTPHostAndPath(
-												fmt.Sprintf("%s.%s.svc.%s", recordEventsPod.Name, client.Namespace, clusterDomain),
+												fmt.Sprintf("%s.%s.svc", recordEventsPod.Name, client.Namespace),
 												"/",
 											),
 											tracinghelper.WithLocalEndpointServiceName(recordEventsPod.Name),
@@ -222,7 +221,7 @@ func setupChannelTracingWithReply(
 			Span: tracinghelper.MatchHTTPSpanNoReply(
 				model.Client,
 				tracinghelper.WithHTTPHostAndPath(
-					fmt.Sprintf("%s-kn-channel.%s.svc.%s", channelName, client.Namespace, clusterDomain),
+					fmt.Sprintf("%s-kn-channel.%s.svc", channelName, client.Namespace),
 					"",
 				),
 				tracinghelper.WithLocalEndpointServiceName("sender"),
diff --git a/vendor/knative.dev/eventing/test/conformance/helpers/tracing/traces.go b/vendor/knative.dev/eventing/test/conformance/helpers/tracing/traces.go
index 63568a0dd..f244f94cf 100644
--- a/vendor/knative.dev/eventing/test/conformance/helpers/tracing/traces.go
+++ b/vendor/knative.dev/eventing/test/conformance/helpers/tracing/traces.go
@@ -21,6 +21,7 @@ import (
 	"errors"
 	"fmt"
 	"net/http"
+	"regexp"
 	"strconv"
 	"testing"
 
@@ -46,38 +47,9 @@ func (t SpanTree) String() string {
 }
 
 type SpanMatcher struct {
-	Kind                     *model.Kind       `json:"a_Kind,omitempty"`
-	LocalEndpointServiceName string            `json:"b_Name,omitempty"`
-	Tags                     map[string]string `json:"c_Tags,omitempty"`
-}
-
-func (m *SpanMatcher) Cmp(m2 *SpanMatcher) int {
-	if m == nil {
-		if m2 == nil {
-			return 0
-		}
-		return -1
-	}
-	if m2 == nil {
-		return 1
-	}
-
-	if *m.Kind < *m2.Kind {
-		return -1
-	} else if *m.Kind > *m2.Kind {
-		return 1
-	}
-
-	t1 := m.Tags
-	t2 := m2.Tags
-	for _, key := range []string{"http.url", "http.host", "http.path"} {
-		if t1[key] < t2[key] {
-			return -1
-		} else if t1[key] > t2[key] {
-			return 1
-		}
-	}
-	return 0
+	Kind                     *model.Kind               `json:"a_Kind,omitempty"`
+	LocalEndpointServiceName string                    `json:"b_Name,omitempty"`
+	Tags                     map[string]*regexp.Regexp `json:"c_Tags,omitempty"`
 }
 
 type SpanMatcherOption func(*SpanMatcher)
@@ -89,13 +61,24 @@ func WithLocalEndpointServiceName(s string) SpanMatcherOption {
 }
 
 func WithHTTPHostAndPath(host, path string) SpanMatcherOption {
+	// hostSuffix is an optional suffix that might appear at the end of hostnames.
+	// We supplement matches with this to allow matches for:
+	//    foo.bar
+	// to match all of:
+	//    foo.bar
+	//    foo.bar.svc
+	//    foo.bar.svc.cluster.local
+	// It's hardly perfect, but requires the suffix to start with the delimiter '.'
+	// and then match anything prior to the path starting, e.g. '/'
+	hostSuffix := "[.][^/]+"
+
 	return func(m *SpanMatcher) {
 		if m.Kind != nil {
 			if *m.Kind == model.Client {
-				m.Tags["http.url"] = fmt.Sprintf("http://%s%s", host, path)
+				m.Tags["http.url"] = regexp.MustCompile("^http://" + regexp.QuoteMeta(host) + hostSuffix + regexp.QuoteMeta(path) + "$")
 			} else if *m.Kind == model.Server {
-				m.Tags["http.host"] = host
-				m.Tags["http.path"] = path
+				m.Tags["http.host"] = regexp.MustCompile("^" + regexp.QuoteMeta(host) + hostSuffix + "$")
+				m.Tags["http.path"] = regexp.MustCompile("^" + regexp.QuoteMeta(path) + "$")
 			}
 		}
 	}
@@ -119,7 +102,7 @@ func (m *SpanMatcher) MatchesSpan(span *model.SpanModel) error {
 		}
 	}
 	for k, v := range m.Tags {
-		if t := span.Tags[k]; t != v {
+		if t := span.Tags[k]; !v.MatchString(t) {
 			return fmt.Errorf("unexpected tag %s: got %q, want %q", k, t, v)
 		}
 	}
@@ -129,9 +112,9 @@ func (m *SpanMatcher) MatchesSpan(span *model.SpanModel) error {
 func MatchHTTPSpanWithCode(kind model.Kind, statusCode int, opts ...SpanMatcherOption) *SpanMatcher {
 	m := &SpanMatcher{
 		Kind: &kind,
-		Tags: map[string]string{
-			"http.method":      http.MethodPost,
-			"http.status_code": strconv.Itoa(statusCode),
+		Tags: map[string]*regexp.Regexp{
+			"http.method":      regexp.MustCompile("^" + http.MethodPost + "$"),
+			"http.status_code": regexp.MustCompile("^" + strconv.Itoa(statusCode) + "$"),
 		},
 	}
 	for _, opt := range opts {
diff --git a/vendor/knative.dev/eventing/test/conformance/helpers/tracing/zipkin.go b/vendor/knative.dev/eventing/test/conformance/helpers/tracing/zipkin.go
index 1631c701a..e9783b122 100644
--- a/vendor/knative.dev/eventing/test/conformance/helpers/tracing/zipkin.go
+++ b/vendor/knative.dev/eventing/test/conformance/helpers/tracing/zipkin.go
@@ -18,17 +18,10 @@ package tracing
 
 import (
 	"context"
-	"fmt"
-	"net/url"
-	"strings"
 	"testing"
 
 	"knative.dev/pkg/system"
 
-	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	"k8s.io/client-go/kubernetes"
-	tracingconfig "knative.dev/pkg/tracing/config"
-
 	testlib "knative.dev/eventing/test/lib"
 	"knative.dev/pkg/test/zipkin"
 )
@@ -37,51 +30,3 @@ import (
 func Setup(t *testing.T, client *testlib.Client) {
 	zipkin.SetupZipkinTracingFromConfigTracingOrFail(context.Background(), t, client.Kube, system.Namespace())
 }
-
-// GetClusterDomain gets the Cluster's domain, e.g. 'cluster.local'.
-func GetClusterDomain(t *testing.T, client *testlib.Client) string {
-	d, err := getClusterDomain(context.Background(), client.Kube, system.Namespace())
-	if err != nil {
-		t.Fatal("Unable to get cluster domain:", err)
-	}
-	return d
-}
-
-func getClusterDomain(ctx context.Context, kubeClientset kubernetes.Interface, configMapNamespace string) (string, error) {
-	// This a lightly altered version of knative.dev/pkg/test/zipkin/util.go's
-	// SetupZipkinTracingFromConfigTracing.
-	// TODO Move this function to knative/pkg.
-	cm, err := kubeClientset.CoreV1().ConfigMaps(configMapNamespace).Get(ctx, "config-tracing", metav1.GetOptions{})
-	if err != nil {
-		return "", fmt.Errorf("error while retrieving config-tracing config map: %w", err)
-	}
-	c, err := tracingconfig.NewTracingConfigFromConfigMap(cm)
-	if err != nil {
-		return "", fmt.Errorf("error while parsing config-tracing config map: %w", err)
-	}
-	zipkinEndpointURL, err := url.Parse(c.ZipkinEndpoint)
-	if err != nil {
-		return "", fmt.Errorf("error while parsing the zipkin endpoint in config-tracing config map: %w", err)
-	}
-	domain, err := parseClusterDomainFromHostname(zipkinEndpointURL.Host)
-	if err != nil {
-		return "", fmt.Errorf("error while parsing the Zipkin endpoint in config-tracing config map: %w", err)
-	}
-
-	return domain, nil
-}
-
-func parseClusterDomainFromHostname(hostname string) (string, error) {
-	// hostname will be something like 'name.ns.svc.clusterDomain:port' where clusterDomain is something
-	// like 'cluster.local'.
-	hostAndPort := strings.SplitN(hostname, ":", 2)
-	host := hostAndPort[0]
-	parts := strings.SplitN(host, ".", 4)
-	if len(parts) < 3 || parts[2] != "svc" {
-		return "", fmt.Errorf("could not extract namespace/name from %s", hostname)
-	}
-	if len(parts) == 3 {
-		return "", nil
-	}
-	return parts[3], nil
-}
diff --git a/vendor/knative.dev/eventing/test/conformance/helpers/tracing_test_helper.go b/vendor/knative.dev/eventing/test/conformance/helpers/tracing_test_helper.go
index 6342263ee..f2fb9ef8c 100644
--- a/vendor/knative.dev/eventing/test/conformance/helpers/tracing_test_helper.go
+++ b/vendor/knative.dev/eventing/test/conformance/helpers/tracing_test_helper.go
@@ -42,7 +42,6 @@ type SetupTracingTestInfrastructureFunc func(
 	client *testlib.Client,
 	loggerPodName string,
 	senderPublishTrace bool,
-	clusterDomain string,
 ) (tracinghelper.TestSpanTree, cetest.EventMatcher)
 
 // tracingTest bootstraps the test and then executes the assertions on the received event and on the spans
@@ -63,7 +62,6 @@ func tracingTest(
 	// Do NOT call zipkin.CleanupZipkinTracingSetup. That will be called exactly once in
 	// TestMain.
 	tracinghelper.Setup(t, client)
-	clusterDomain := tracinghelper.GetClusterDomain(t, client)
 
 	// Start the event info store. Note this is done _before_ we setup the infrastructure, which
 	// sends the event.
@@ -73,7 +71,7 @@ func tracingTest(
 	}
 
 	// Setup the test infrastructure
-	expectedTestSpan, eventMatcher := setupInfrastructure(ctx, t, &channel, client, recordEventsPodName, true, clusterDomain)
+	expectedTestSpan, eventMatcher := setupInfrastructure(ctx, t, &channel, client, recordEventsPodName, true)
 
 	// Assert that the event was seen.
 	matches := targetTracker.AssertAtLeast(1, recordevents.MatchEvent(eventMatcher))
diff --git a/vendor/knative.dev/eventing/test/conformance/helpers/uri.go b/vendor/knative.dev/eventing/test/conformance/helpers/uri.go
index ed5c65ff5..4618f5033 100644
--- a/vendor/knative.dev/eventing/test/conformance/helpers/uri.go
+++ b/vendor/knative.dev/eventing/test/conformance/helpers/uri.go
@@ -20,6 +20,6 @@ import (
 	"fmt"
 )
 
-func k8sServiceHost(domain, namespace, svcName string) string {
-	return fmt.Sprintf("%s.%s.svc.%s", svcName, namespace, domain)
+func k8sServiceHost(namespace, svcName string) string {
+	return fmt.Sprintf("%s.%s.svc", svcName, namespace)
 }
diff --git a/vendor/knative.dev/eventing/test/lib/client.go b/vendor/knative.dev/eventing/test/lib/client.go
index f70dae52c..8d19bc142 100644
--- a/vendor/knative.dev/eventing/test/lib/client.go
+++ b/vendor/knative.dev/eventing/test/lib/client.go
@@ -24,6 +24,7 @@ import (
 	"fmt"
 	"testing"
 
+	"knative.dev/pkg/logging"
 	"knative.dev/pkg/system"
 
 	"github.com/pkg/errors"
@@ -57,6 +58,7 @@ type Client struct {
 	podsCreated []string
 
 	tracingEnv corev1.EnvVar
+	loggingEnv *corev1.EnvVar
 
 	cleanup func()
 }
@@ -104,6 +106,11 @@ func NewClient(configPath string, clusterName string, namespace string, t *testi
 		return nil, err
 	}
 
+	client.loggingEnv, err = getLoggingConfig(client.Kube)
+	if err != nil {
+		t.Log("Cannot retrieve the logging config map: ", err)
+	}
+
 	return client, nil
 }
 
@@ -150,3 +157,22 @@ func getTracingConfig(c kubernetes.Interface) (corev1.EnvVar, error) {
 
 	return corev1.EnvVar{Name: ti.ConfigTracingEnv, Value: configSerialized}, nil
 }
+
+func getLoggingConfig(c kubernetes.Interface) (*corev1.EnvVar, error) {
+	cm, err := c.CoreV1().ConfigMaps(system.Namespace()).Get(context.Background(), logging.ConfigMapName(), metav1.GetOptions{})
+	if err != nil {
+		return nil, fmt.Errorf("error while retrieving the %s config map: %+v", logging.ConfigMapName(), errors.WithStack(err))
+	}
+
+	config, err := logging.NewConfigFromMap(cm.Data)
+	if err != nil {
+		return nil, fmt.Errorf("error while parsing the %s config map: %+v", logging.ConfigMapName(), errors.WithStack(err))
+	}
+
+	configSerialized, err := logging.LoggingConfigToJson(config)
+	if err != nil {
+		return nil, fmt.Errorf("error while serializing the %s config map: %+v", logging.ConfigMapName(), errors.WithStack(err))
+	}
+
+	return &corev1.EnvVar{Name: ti.ConfigLoggingEnv, Value: configSerialized}, nil
+}
diff --git a/vendor/knative.dev/eventing/test/lib/creation.go b/vendor/knative.dev/eventing/test/lib/creation.go
index 69cc26290..8058cdb6c 100644
--- a/vendor/knative.dev/eventing/test/lib/creation.go
+++ b/vendor/knative.dev/eventing/test/lib/creation.go
@@ -751,7 +751,7 @@ func (c *Client) CreatePodOrFail(pod *corev1.Pod, options ...func(*corev1.Pod, *
 		}
 	}
 
-	c.applyTracingEnv(&pod.Spec)
+	c.applyAdditionalEnv(&pod.Spec)
 
 	err := reconciler.RetryUpdateConflicts(func(attempts int) (err error) {
 		c.T.Logf("Creating pod %+v", pod)
@@ -782,7 +782,7 @@ func (c *Client) CreateDeploymentOrFail(deploy *appsv1.Deployment, options ...fu
 		}
 	}
 
-	c.applyTracingEnv(&deploy.Spec.Template.Spec)
+	c.applyAdditionalEnv(&deploy.Spec.Template.Spec)
 
 	c.T.Logf("Creating deployment %+v", deploy)
 	if _, err := c.Kube.AppsV1().Deployments(deploy.Namespace).Create(context.Background(), deploy, metav1.CreateOptions{}); err != nil {
@@ -803,7 +803,7 @@ func (c *Client) CreateCronJobOrFail(cronjob *batchv1beta1.CronJob, options ...f
 		}
 	}
 
-	c.applyTracingEnv(&cronjob.Spec.JobTemplate.Spec.Template.Spec)
+	c.applyAdditionalEnv(&cronjob.Spec.JobTemplate.Spec.Template.Spec)
 
 	c.T.Logf("Creating cronjob %+v", cronjob)
 	if _, err := c.Kube.BatchV1beta1().CronJobs(cronjob.Namespace).Create(context.Background(), cronjob, metav1.CreateOptions{}); err != nil {
@@ -917,8 +917,11 @@ func (c *Client) CreateRBACResourcesForBrokers() {
 	)
 }
 
-func (c *Client) applyTracingEnv(pod *corev1.PodSpec) {
+func (c *Client) applyAdditionalEnv(pod *corev1.PodSpec) {
 	for i := 0; i < len(pod.Containers); i++ {
 		pod.Containers[i].Env = append(pod.Containers[i].Env, c.tracingEnv)
+		if c.loggingEnv != nil {
+			pod.Containers[i].Env = append(pod.Containers[i].Env, *c.loggingEnv)
+		}
 	}
 }
diff --git a/vendor/knative.dev/eventing/test/lib/dropevents/receiver.go b/vendor/knative.dev/eventing/test/lib/dropevents/receiver.go
index 4453b4f47..6b18f2be1 100644
--- a/vendor/knative.dev/eventing/test/lib/dropevents/receiver.go
+++ b/vendor/knative.dev/eventing/test/lib/dropevents/receiver.go
@@ -32,6 +32,20 @@ const (
 	NumberKey        = "NUMBER"
 )
 
+// count is only used for SKIP_ALGORITHM=Sequence.
+func SkipperAlgorithmWithCount(algorithm string, count uint64) Skipper {
+	switch algorithm {
+	case Fibonacci:
+		return &dropeventsfibonacci.Fibonacci{Prev: 1, Current: 1}
+
+	case Sequence:
+		return dropeventsfirst.First{N: count}
+
+	default:
+		panic("unknown algorithm: " + algorithm)
+	}
+}
+
 func SkipperAlgorithm(algorithm string) Skipper {
 
 	switch algorithm {
diff --git a/vendor/knative.dev/eventing/test/lib/recordevents/event_info.go b/vendor/knative.dev/eventing/test/lib/recordevents/event_info.go
index 4804a5353..e8e721fc4 100644
--- a/vendor/knative.dev/eventing/test/lib/recordevents/event_info.go
+++ b/vendor/knative.dev/eventing/test/lib/recordevents/event_info.go
@@ -42,6 +42,7 @@ type EventInfo struct {
 	Observer    string              `json:"observer,omitempty"`
 	Time        time.Time           `json:"time,omitempty"`
 	Sequence    uint64              `json:"sequence"`
+	Dropped     bool                `json:"dropped"`
 }
 
 // Pretty print the event. Meant for debugging.
@@ -69,6 +70,7 @@ func (ei *EventInfo) String() string {
 	sb.WriteString("--- Observer: '" + ei.Observer + "' ---\n")
 	sb.WriteString("--- Time: " + ei.Time.String() + " ---\n")
 	sb.WriteString(fmt.Sprintf("--- Sequence: %d ---\n", ei.Sequence))
+	sb.WriteString(fmt.Sprintf("--- Dropped: %v ---\n", ei.Dropped))
 	return sb.String()
 }
 
diff --git a/vendor/knative.dev/eventing/test/lib/recordevents/logger_vent/logger.go b/vendor/knative.dev/eventing/test/lib/recordevents/logger_vent/logger.go
new file mode 100644
index 000000000..95d7012f2
--- /dev/null
+++ b/vendor/knative.dev/eventing/test/lib/recordevents/logger_vent/logger.go
@@ -0,0 +1,27 @@
+/*
+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 logger_vent
+
+import "knative.dev/eventing/test/lib/recordevents"
+
+type Logger func(string, ...interface{})
+
+func (l Logger) Vent(observed recordevents.EventInfo) error {
+	l("Event: \n%s", observed.String())
+
+	return nil
+}
diff --git a/vendor/knative.dev/eventing/test/lib/recordevents/observer/observer.go b/vendor/knative.dev/eventing/test/lib/recordevents/observer/observer.go
index 9933542d9..58e40a1c5 100644
--- a/vendor/knative.dev/eventing/test/lib/recordevents/observer/observer.go
+++ b/vendor/knative.dev/eventing/test/lib/recordevents/observer/observer.go
@@ -19,9 +19,12 @@ package observer
 import (
 	"context"
 	"net/http"
+	"strings"
 	"sync/atomic"
 	"time"
 
+	"knative.dev/eventing/test/lib/dropevents"
+
 	cloudeventsbindings "github.com/cloudevents/sdk-go/v2/binding"
 	cloudeventshttp "github.com/cloudevents/sdk-go/v2/protocol/http"
 	"github.com/kelseyhightower/envconfig"
@@ -42,6 +45,7 @@ type Observer struct {
 	ctx       context.Context
 	seq       uint64
 	replyFunc func(context.Context, http.ResponseWriter, recordevents.EventInfo)
+	counter   *dropevents.CounterHandler
 }
 
 type envConfig struct {
@@ -63,6 +67,13 @@ type envConfig struct {
 	// This string to append in the data field in the reply, if enabled.
 	// This will threat the data as text/plain field
 	ReplyAppendData string `envconfig:"REPLY_APPEND_DATA" default:"" required:"false"`
+
+	// If events should be dropped, specify the strategy here.
+	SkipStrategy string `envconfig:"SKIP_ALGORITHM" default:"" required:"false"`
+
+	// If events should be dropped according to Linear policy, this controls
+	// how many events are dropped.
+	SkipCounter uint64 `envconfig:"SKIP_COUNTER" default:"0" required:"false"`
 }
 
 func NewFromEnv(ctx context.Context, eventLogs ...recordevents.EventLog) *Observer {
@@ -81,12 +92,25 @@ func NewFromEnv(ctx context.Context, eventLogs ...recordevents.EventLog) *Observ
 		logging.FromContext(ctx).Info("Observer won't reply with an event")
 		replyFunc = NoOpReply
 	}
+	var counter *dropevents.CounterHandler
+
+	if env.SkipStrategy != "" {
+		counter = &dropevents.CounterHandler{
+			Skipper: dropevents.SkipperAlgorithmWithCount(env.SkipStrategy, env.SkipCounter),
+		}
+	} else {
+		counter = &dropevents.CounterHandler{
+			// Don't skip anything, since count is 0. nop skipper.
+			Skipper: dropevents.SkipperAlgorithmWithCount(dropevents.Sequence, 0),
+		}
+	}
 
 	return &Observer{
 		Name:      env.ObserverName,
 		EventLogs: eventLogs,
 		ctx:       ctx,
 		replyFunc: replyFunc,
+		counter:   counter,
 	}
 }
 
@@ -119,29 +143,51 @@ func (o *Observer) ServeHTTP(writer http.ResponseWriter, request *http.Request)
 	defer m.Finish(nil)
 
 	event, eventErr := cloudeventsbindings.ToEvent(context.TODO(), m)
-	header := request.Header
+	headers := make(http.Header)
+	for k, v := range request.Header {
+		if !strings.HasPrefix(k, "Ce-") {
+			headers[k] = v
+		}
+	}
 	// Host header is removed from the request.Header map by net/http
 	if request.Host != "" {
-		header.Set("Host", request.Host)
+		headers.Set("Host", request.Host)
 	}
 
 	eventErrStr := ""
 	if eventErr != nil {
 		eventErrStr = eventErr.Error()
 	}
+
+	shouldSkip := o.counter.Skip()
+
 	eventInfo := recordevents.EventInfo{
 		Error:       eventErrStr,
 		Event:       event,
-		HTTPHeaders: header,
+		HTTPHeaders: headers,
 		Origin:      request.RemoteAddr,
 		Observer:    o.Name,
 		Time:        time.Now(),
 		Sequence:    atomic.AddUint64(&o.seq, 1),
+		Dropped:     shouldSkip,
+	}
+
+	// We still want to emit the event to make it easier to see what we had oberved, but
+	// we want to transform it a little bit before emitting so that it does not count
+	// as the real event that we want to emit.
+	if shouldSkip {
+		eventInfo.Event.SetType("dropped-" + eventInfo.Event.Type())
 	}
+
 	err := o.EventLogs.Vent(eventInfo)
 	if err != nil {
-		logging.FromContext(o.ctx).Warnw("Error while venting the recorded event", zap.Error(err))
+		logging.FromContext(o.ctx).Fatalw("Error while venting the recorded event", zap.Error(err))
 	}
 
-	o.replyFunc(o.ctx, writer, eventInfo)
+	if shouldSkip {
+		// Trigger a redelivery
+		writer.WriteHeader(http.StatusConflict)
+	} else {
+		o.replyFunc(o.ctx, writer, eventInfo)
+	}
 }
diff --git a/vendor/knative.dev/eventing/test/lib/recordevents/recorder_vent/constructor.go b/vendor/knative.dev/eventing/test/lib/recordevents/recorder_vent/constructor.go
index 157669e58..50c1acc3f 100644
--- a/vendor/knative.dev/eventing/test/lib/recordevents/recorder_vent/constructor.go
+++ b/vendor/knative.dev/eventing/test/lib/recordevents/recorder_vent/constructor.go
@@ -19,22 +19,16 @@ package recorder_vent
 import (
 	"context"
 	"log"
-	"math/rand"
 	"time"
 
 	"github.com/kelseyhightower/envconfig"
-	"k8s.io/apimachinery/pkg/api/errors"
-	restclient "k8s.io/client-go/rest"
 	"knative.dev/pkg/system"
 
-	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	"k8s.io/apimachinery/pkg/watch"
 	"k8s.io/client-go/kubernetes/scheme"
-	"k8s.io/client-go/tools/record"
+	ref "k8s.io/client-go/tools/reference"
 
 	kubeclient "knative.dev/pkg/client/injection/kube/client"
-	"knative.dev/pkg/controller"
 	"knative.dev/pkg/logging"
 
 	"knative.dev/eventing/test/lib/recordevents"
@@ -70,86 +64,15 @@ func NewEventLog(ctx context.Context, agentName string, podName string) recordev
 
 	logging.FromContext(ctx).Infof("Going to send events to pod '%s' in namespace '%s'", on.Name, on.Namespace)
 
-	return &recorder{out: createRecorder(ctx, agentName), on: on}
-}
-
-func createRecorder(ctx context.Context, agentName string) record.EventRecorder {
-	logger := logging.FromContext(ctx)
-
-	recorder := controller.GetEventRecorder(ctx)
-	if recorder == nil {
-		// Create event broadcaster
-		logger.Debug("Creating event broadcaster")
-		eventBroadcaster := record.NewBroadcaster()
-		watches := []watch.Interface{
-			eventBroadcaster.StartLogging(logger.Named("event-broadcaster").Infof),
-			eventBroadcaster.StartEventWatcher(
-				sendToSink(ctx, kubeclient.Get(ctx).CoreV1().Events(system.Namespace()).CreateWithEventNamespace),
-			),
-		}
-		recorder = eventBroadcaster.NewRecorder(scheme.Scheme, corev1.EventSource{Component: agentName})
-		go func() {
-			<-ctx.Done()
-			for _, w := range watches {
-				w.Stop()
-			}
-			logging.FromContext(ctx).Debug("Closed event-broadcaster")
-		}()
-	}
-
-	return recorder
-}
-
-func sendToSink(ctx context.Context, sender func(*corev1.Event) (*corev1.Event, error)) func(*corev1.Event) {
-	return func(event *corev1.Event) {
-		tries := 0
-		for {
-			if recordEvent(ctx, sender, event) {
-				break
-			}
-			tries++
-			if tries >= maxRetry {
-				logging.FromContext(ctx).Errorf("Unable to write event '%s' (retry limit exceeded!)", event.Name)
-				break
-			}
-			// Randomize the first sleep so that various clients won't all be
-			// synced up if the master goes down.
-			if tries == 1 {
-				time.Sleep(time.Duration(float64(sleepDuration) * rand.Float64()))
-			} else {
-				time.Sleep(sleepDuration)
-			}
-		}
-	}
-}
-
-func recordEvent(ctx context.Context, sender func(*corev1.Event) (*corev1.Event, error), event *corev1.Event) bool {
-	newEv, err := sender(event)
-	if err == nil {
-		logging.FromContext(ctx).Infof("Event '%s' sent correctly, uuid: %s", newEv.Name, newEv.UID)
-		return true
+	reference, err := ref.GetReference(scheme.Scheme, on)
+	if err != nil {
+		logging.FromContext(ctx).Fatalf("Could not construct reference to: '%#v' due to: '%v'", on, err)
 	}
 
-	// If we can't contact the server, then hold everything while we keep trying.
-	// Otherwise, something about the event is malformed and we should abandon it.
-	switch err.(type) {
-	case *restclient.RequestConstructionError:
-		// We will construct the request the same next time, so don't keep trying.
-		logging.FromContext(ctx).Errorf("Unable to construct event '%s': '%v' (will not retry!)", event.Name, err)
-		return true
-	case *errors.StatusError:
-		if errors.IsAlreadyExists(err) {
-			logging.FromContext(ctx).Infof("Server rejected event '%s': '%v' (will not retry!)", event.Name, err)
-		} else {
-			logging.FromContext(ctx).Errorf("Server rejected event '%s': '%v' (will not retry!)", event.Name, err)
-		}
-		return true
-	case *errors.UnexpectedObjectError:
-		// We don't expect this; it implies the server's response didn't match a
-		// known pattern. Go ahead and retry.
-	default:
-		// This case includes actual http transport errors. Go ahead and retry.
+	return &recorder{
+		ctx:       ctx,
+		namespace: system.Namespace(),
+		agentName: agentName,
+		ref:       reference,
 	}
-	logging.FromContext(ctx).Errorf("Unable to write event: '%v' (may retry after sleeping)", err)
-	return false
 }
diff --git a/vendor/knative.dev/eventing/test/lib/recordevents/recorder_vent/recorder.go b/vendor/knative.dev/eventing/test/lib/recordevents/recorder_vent/recorder.go
index 9669741f9..117ac2df1 100644
--- a/vendor/knative.dev/eventing/test/lib/recordevents/recorder_vent/recorder.go
+++ b/vendor/knative.dev/eventing/test/lib/recordevents/recorder_vent/recorder.go
@@ -17,18 +17,28 @@ limitations under the License.
 package recorder_vent
 
 import (
+	"context"
 	"encoding/json"
+	"fmt"
+	"math/rand"
+	"time"
 
 	corev1 "k8s.io/api/core/v1"
-	"k8s.io/apimachinery/pkg/runtime"
-	"k8s.io/client-go/tools/record"
+	apierrors "k8s.io/apimachinery/pkg/api/errors"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	restclient "k8s.io/client-go/rest"
+	kubeclient "knative.dev/pkg/client/injection/kube/client"
+	"knative.dev/pkg/logging"
 
 	"knative.dev/eventing/test/lib/recordevents"
 )
 
 type recorder struct {
-	out record.EventRecorder
-	on  runtime.Object
+	ctx       context.Context
+	namespace string
+	agentName string
+
+	ref *corev1.ObjectReference
 }
 
 func (r *recorder) Vent(observed recordevents.EventInfo) error {
@@ -36,8 +46,75 @@ func (r *recorder) Vent(observed recordevents.EventInfo) error {
 	if err != nil {
 		return err
 	}
+	message := string(b)
+
+	t := time.Now()
+	// Note: DO NOT SET EventTime, or you'll trigger k8s api server hilarity:
+	// - https://github.com/kubernetes/kubernetes/issues/95913
+	// - https://github.com/kubernetes/kubernetes/blob/master/pkg/apis/core/validation/events.go#L122
+	event := &corev1.Event{
+		ObjectMeta: metav1.ObjectMeta{
+			Name:      fmt.Sprintf("%v.%d", r.ref.Name, observed.Sequence),
+			Namespace: r.namespace,
+		},
+		InvolvedObject: *r.ref,
+		Reason:         recordevents.CloudEventObservedReason,
+		Message:        message,
+		Source:         corev1.EventSource{Component: r.agentName},
+		FirstTimestamp: metav1.Time{Time: t},
+		LastTimestamp:  metav1.Time{Time: t},
+		Count:          1,
+		Type:           corev1.EventTypeNormal,
+	}
+
+	return r.recordEvent(event)
+}
+
+func (r *recorder) recordEvent(event *corev1.Event) error {
+	tries := 0
+	for {
+		done, err := r.trySendEvent(event)
+		if done {
+			return nil
+		}
+		tries++
+		if tries >= maxRetry {
+			logging.FromContext(r.ctx).Errorf("Unable to write event '%s' (retry limit exceeded!)", event.Name)
+			return err
+		}
+		// Randomize the first sleep so that various clients won't all be
+		// synced up if the master goes down.
+		if tries == 1 {
+			time.Sleep(time.Duration(float64(sleepDuration) * rand.Float64()))
+		} else {
+			time.Sleep(sleepDuration)
+		}
+	}
+}
 
-	r.out.Eventf(r.on, corev1.EventTypeNormal, recordevents.CloudEventObservedReason, "%s", string(b))
+func (r *recorder) trySendEvent(event *corev1.Event) (bool, error) {
+	newEv, err := kubeclient.Get(r.ctx).CoreV1().Events(r.namespace).CreateWithEventNamespace(event)
+	if err == nil {
+		logging.FromContext(r.ctx).Infof("Event '%s' sent correctly, uuid: %s", newEv.Name, newEv.UID)
+		return true, nil
+	}
 
-	return nil
+	// If we can't contact the server, then hold everything while we keep trying.
+	// Otherwise, something about the event is malformed and we should abandon it.
+	switch err.(type) {
+	case *restclient.RequestConstructionError:
+		// We will construct the request the same next time, so don't keep trying.
+		logging.FromContext(r.ctx).Errorf("Unable to construct event '%s': '%v' (will not retry!)", event.Name, err)
+		return true, err
+	case *apierrors.StatusError:
+		logging.FromContext(r.ctx).Errorf("Server rejected event '%s'. Reason: '%v' (will not retry!). Event: %v", event.Name, err, event)
+		return true, err
+	case *apierrors.UnexpectedObjectError:
+		// We don't expect this; it implies the server's response didn't match a
+		// known pattern. Go ahead and retry.
+	default:
+		// This case includes actual http transport errors. Go ahead and retry.
+	}
+	logging.FromContext(r.ctx).Errorf("Unable to write event: '%v' (may retry after sleeping)", err)
+	return false, err
 }
diff --git a/vendor/knative.dev/eventing/test/test_images/recordevents/main.go b/vendor/knative.dev/eventing/test/test_images/recordevents/main.go
index 38445c45b..cd95e9563 100644
--- a/vendor/knative.dev/eventing/test/test_images/recordevents/main.go
+++ b/vendor/knative.dev/eventing/test/test_images/recordevents/main.go
@@ -18,8 +18,6 @@ package main
 
 import (
 	"log"
-	"net/http"
-	"os"
 
 	"k8s.io/client-go/rest"
 	"knative.dev/pkg/injection"
@@ -27,7 +25,7 @@ import (
 	_ "knative.dev/pkg/system/testing"
 
 	"knative.dev/eventing/pkg/kncloudevents"
-	"knative.dev/eventing/test/lib/dropevents"
+	"knative.dev/eventing/test/lib/recordevents/logger_vent"
 	"knative.dev/eventing/test/lib/recordevents/observer"
 	"knative.dev/eventing/test/lib/recordevents/recorder_vent"
 	"knative.dev/eventing/test/test_images"
@@ -40,33 +38,18 @@ func main() {
 	}
 	//nolint // nil ctx is fine here, look at the code of EnableInjectionOrDie
 	ctx, _ := injection.EnableInjectionOrDie(nil, cfg)
+	ctx = test_images.ConfigureLogging(ctx, "recordevents")
 
 	if err := test_images.ConfigureTracing(logging.FromContext(ctx), ""); err != nil {
 		logging.FromContext(ctx).Fatal("Unable to setup trace publishing", err)
 	}
 
 	obs := observer.NewFromEnv(ctx,
+		logger_vent.Logger(logging.FromContext(ctx).Infof),
 		recorder_vent.NewFromEnv(ctx),
 	)
 
-	algorithm, ok := os.LookupEnv(dropevents.SkipAlgorithmKey)
-	if ok {
-		skipper := dropevents.SkipperAlgorithm(algorithm)
-		counter := dropevents.CounterHandler{
-			Skipper: skipper,
-		}
-		err = obs.Start(ctx, kncloudevents.CreateHandler, func(handler http.Handler) http.Handler {
-			return http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
-				if counter.Skip() {
-					writer.WriteHeader(http.StatusConflict)
-					return
-				}
-				handler.ServeHTTP(writer, request)
-			})
-		})
-	} else {
-		err = obs.Start(ctx, kncloudevents.CreateHandler)
-	}
+	err = obs.Start(ctx, kncloudevents.CreateHandler)
 
 	if err != nil {
 		logging.FromContext(ctx).Fatal("Error during start", err)
diff --git a/vendor/knative.dev/eventing/test/test_images/utils.go b/vendor/knative.dev/eventing/test/test_images/utils.go
index 0fce61f32..12955201d 100644
--- a/vendor/knative.dev/eventing/test/test_images/utils.go
+++ b/vendor/knative.dev/eventing/test/test_images/utils.go
@@ -17,6 +17,7 @@ limitations under the License.
 package test_images
 
 import (
+	"context"
 	"net/http"
 	"os"
 	"strconv"
@@ -24,6 +25,7 @@ import (
 	"time"
 
 	"go.uber.org/zap"
+	"knative.dev/pkg/logging"
 	"knative.dev/pkg/tracing"
 	"knative.dev/pkg/tracing/config"
 )
@@ -47,7 +49,10 @@ func ParseDurationStr(durationStr string, defaultDuration int) time.Duration {
 	return duration
 }
 
-const ConfigTracingEnv = "K_CONFIG_TRACING"
+const (
+	ConfigTracingEnv = "K_CONFIG_TRACING"
+	ConfigLoggingEnv = "K_CONFIG_LOGGING"
+)
 
 // ConfigureTracing can be used in test-images to configure tracing
 func ConfigureTracing(logger *zap.SugaredLogger, serviceName string) error {
@@ -64,3 +69,15 @@ func ConfigureTracing(logger *zap.SugaredLogger, serviceName string) error {
 
 	return tracing.SetupStaticPublishing(logger, serviceName, conf)
 }
+
+// ConfigureTracing can be used in test-images to configure tracing
+func ConfigureLogging(ctx context.Context, name string) context.Context {
+	loggingEnv := os.Getenv(ConfigLoggingEnv)
+	conf, err := logging.JsonToLoggingConfig(loggingEnv)
+	if err != nil {
+		logging.FromContext(ctx).Warn("Error while trying to read the config logging env: ", err)
+		return ctx
+	}
+	l, _ := logging.NewLoggerFromConfig(conf, name)
+	return logging.WithLogger(ctx, l)
+}
diff --git a/vendor/knative.dev/pkg/apis/testing/fuzzer/fuzzer.go b/vendor/knative.dev/pkg/apis/testing/fuzzer/fuzzer.go
deleted file mode 100644
index ab7b71536..000000000
--- a/vendor/knative.dev/pkg/apis/testing/fuzzer/fuzzer.go
+++ /dev/null
@@ -1,103 +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 fuzzer
-
-import (
-	"math/rand"
-	"net/url"
-
-	fuzz "github.com/google/gofuzz"
-	corev1 "k8s.io/api/core/v1"
-	"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
-	"k8s.io/apimachinery/pkg/runtime/serializer"
-	"knative.dev/pkg/apis"
-)
-
-// Funcs includes fuzzing funcs for knative.dev/serving types
-//
-// For other examples see
-// https://github.com/kubernetes/apimachinery/blob/master/pkg/apis/meta/fuzzer/fuzzer.go
-var Funcs = fuzzer.MergeFuzzerFuncs(
-	func(codecs serializer.CodecFactory) []interface{} {
-		return []interface{}{
-			func(u *apis.URL, c fuzz.Continue) {
-				u.Scheme = randStringAtoZ(c.Rand)
-				u.Host = randStringAtoZ(c.Rand)
-				u.User = url.UserPassword(
-					randStringAtoZ(c.Rand), // username
-					randStringAtoZ(c.Rand), // password
-				)
-				u.RawPath = url.PathEscape(c.RandString())
-				u.RawQuery = url.QueryEscape(c.RandString())
-			},
-		}
-	},
-)
-
-// FuzzConditions fuzzes the values for the conditions. It doesn't add
-// any new condition types
-//
-// Consumers should initialize their conditions prior to fuzzing them.
-// For example:
-//
-// func(s *SomeStatus, c fuzz.Continue) {
-//   c.FuzzNoCustom(s) // fuzz the status object
-//
-//   // Clear the random fuzzed condition
-//   s.Status.SetConditions(nil)
-//
-//   // Fuzz the known conditions except their type value
-//   s.InitializeConditions()
-//   fuzz.Conditions(&s.Status, c)
-// }
-func FuzzConditions(accessor apis.ConditionsAccessor, c fuzz.Continue) {
-	conds := accessor.GetConditions()
-	for i, cond := range conds {
-		// Leave condition.Type untouched
-		cond.Status = corev1.ConditionStatus(c.RandString())
-		cond.Severity = apis.ConditionSeverity(c.RandString())
-		cond.Message = c.RandString()
-		cond.Reason = c.RandString()
-		c.FuzzNoCustom(&cond.LastTransitionTime)
-		conds[i] = cond
-	}
-	accessor.SetConditions(conds)
-}
-
-// taken from gofuzz internals for RandString
-type charRange struct {
-	first, last rune
-}
-
-func (c *charRange) choose(r *rand.Rand) rune {
-	count := int64(c.last - c.first + 1)
-	ch := c.first + rune(r.Int63n(count))
-
-	return ch
-}
-
-// not fully exhaustive
-func randStringAtoZ(r *rand.Rand) string {
-	hostCharRange := charRange{'a', 'z'}
-
-	n := r.Intn(20)
-	runes := make([]rune, n)
-	for i := range runes {
-		runes[i] = hostCharRange.choose(r)
-	}
-	return string(runes)
-}