Repository: knative-sandbox/eventing-kafka-broker
Pull request #2601 (2022-09-05 14:23:29)

Kafka Broker Triggers receive events from after they are Ready by default
So far, Kafka Broker Triggers receive events from the time before
they were ready by default, contrary to the eventing spec intent.

https://github.com/knative/specs/blob/main/specs/eventing/control-plane.md#trigger-lifecycle

> When a Trigger becomes associated with a Broker (either due to creating the Trigger or the Broker), the Trigger MUST only set the Ready condition to true after the Broker has been configured to send all future events matching the spec.filter to the Trigger's spec.subscriber. The Broker MAY send some events to the Trigger's spec.subscriber prior to the Trigger's Readycondition being set to true. When a Trigger is deleted, the Broker MAY send some additional events to the Trigger's spec.subscriber after the deletion.

(notice the terms "all future events" and "MAY send some events
... prior to the Trigger's Ready condition"), the spec clearly mean 
only future events should be sent, (allowing only "some prior events" 
because of the possible race between Readiness and actual 
broker setup... )

This behavior differs from the MTBroker behavior, so now
it's more consistent by default.

Users can still switch back to the previous behavior by changing the 
`auto.offset.reset=latest` to `earliest` in config-kafka-broker-data-plane

<!-- Please include the 'why' behind your changes if no issue exists -->

## Proposed Changes

- [Support initializing offsets in Trigger reconciler](https://github.com/knative-sandbox/eventing-kafka-broker/commit/4471293345dbf4149b7a9d42d0f3b939f4338b70)
- [Set auto.offset.reset to latest by default](https://github.com/knative-sandbox/eventing-kafka-broker/commit/113a804a87dcab674fc2c993b5e5143231257e51)
- [Add E2E test](https://github.com/knative-sandbox/eventing-kafka-broker/commit/db14c34d682a004f1d9950cf4e9c623bddefeae2)

<!--
If this change has user-visible impact, follow the instructions below.
Examples include:

- :gift: Add new feature
- :bug: Fix bug
- :broom: Update or clean up current behavior
- :wastebasket: Remove feature or internal logic

Otherwise delete the rest of this template.
-->

**Release Note**

<!--
:page_facing_up: If this change has user-visible impact, write a release note in the block
below. Include the string "action required" if additional action is required of
users switching to the new release, for example in case of a breaking change.

Write as if you are speaking to users, not other Knative contributors. If this
change has no user-visible impact, no release-note is needed.
-->

```release-note
Previously, triggers were receiving events that were sent to a Kafka Broker before they were created.
Now triggers receive events that are sent to the broker after the trigger is ready by default, skipping events that were sent previously.
To switch back to the previous behavior, you can change the `auto.offset.reset=latest` configuration to `earliest` in the `config-kafka-broker-data-plane` ConfigMap.
```


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/2601#" title="Author self-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":[]} -->
codecov[bot]: # [Codecov](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2601?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) Report
> Merging [#2601](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2601?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) (db14c34) into [main](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/commit/ce6febb01edc7195e9199a2ec27b4fedee18868e?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) (ce6febb) will **increase** coverage by `19.08%`.
> The diff coverage is `n/a`.

```diff
@@              Coverage Diff              @@
##               main    #2601       +/-   ##
=============================================
+ Coverage     62.48%   81.56%   +19.08%     
- Complexity      716      717        +1     
=============================================
  Files           146       72       -74     
  Lines         10147     2501     -7646     
  Branches        229      229               
=============================================
- Hits           6340     2040     -4300     
+ Misses         3374      328     -3046     
+ Partials        433      133      -300     
```

| Flag | Coverage Δ | |
|---|---|---|
| java-unittests | `81.56% <ø> (+0.15%)` | :arrow_up: |

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/2601?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox) | Coverage Δ | |
|---|---|---|
| [control-plane/pkg/kafka/topic.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2601/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-Y29udHJvbC1wbGFuZS9wa2cva2Fma2EvdG9waWMuZ28=) | | |
| [control-plane/pkg/reconciler/base/reconciler.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2601/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci9iYXNlL3JlY29uY2lsZXIuZ28=) | | |
| [control-plane/pkg/reconciler/broker/broker.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2601/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci9icm9rZXIvYnJva2VyLmdv) | | |
| [control-plane/pkg/reconciler/channel/channel.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2601/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci9jaGFubmVsL2NoYW5uZWwuZ28=) | | |
| [control-plane/pkg/reconciler/trigger/controller.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2601/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci90cmlnZ2VyL2NvbnRyb2xsZXIuZ28=) | | |
| [...ne/pkg/reconciler/trigger/namespaced\_controller.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2601/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci90cmlnZ2VyL25hbWVzcGFjZWRfY29udHJvbGxlci5nbw==) | | |
| [...plane/pkg/reconciler/trigger/namespaced\_trigger.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2601/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci90cmlnZ2VyL25hbWVzcGFjZWRfdHJpZ2dlci5nbw==) | | |
| [control-plane/pkg/reconciler/trigger/trigger.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2601/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci90cmlnZ2VyL3RyaWdnZXIuZ28=) | | |
| [...ol-plane/pkg/reconciler/trigger/v2/controllerv2.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2601/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci90cmlnZ2VyL3YyL2NvbnRyb2xsZXJ2Mi5nbw==) | | |
| [...ntrol-plane/pkg/reconciler/trigger/v2/triggerv2.go](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2601/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative-sandbox#diff-Y29udHJvbC1wbGFuZS9wa2cvcmVjb25jaWxlci90cmlnZ2VyL3YyL3RyaWdnZXJ2Mi5nbw==) | | |
| ... and [67 more](https://codecov.io/gh/knative-sandbox/eventing-kafka-broker/pull/2601/diff?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]: @pierDipi: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit-tests_eventing-kafka-broker_main | 2423a5cb0be4ce6e45c74be76e1b75f67b16a84f | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/unit-tests_eventing-kafka-broker_main/1566797600126930944) | true | `/test unit-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
aliok: Can you improve the release note? 

Something like:
```
Triggers were doing ...bla... which was not compliant with the Knative Eventing specification.
Now triggers will receive events that are sent to the broker after the trigger is ready by default, skipping events that were sent previously.
To switch back to the previous behavior, you can change the `auto.offset.reset=latest` configuration to `earliest` in the `config-kafka-broker-data-plane` ConfigMap.
```
knative-prow[bot]: @pierDipi: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

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

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
aliok: Is this a fair statement for what this PR is doing: When `auto.offset.reset=latest`, we set the offset to latest for the consumer group in **control-plane** before consumption starts. 

I couldn't really grasp how this would fix our issue here. We set the offset in control plane when trigger is still not ready. We might set the offset and then wait 5 mins before the trigger is ready.

Maybe instead of writing me a reply here, can you update the PR description?

/assign




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

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/unit-tests_eventing-kafka-broker_main/1566799737628135424) | true | `/test unit-tests_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1566799738462801920) | true | `/test integration-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/unit-tests_eventing-kafka-broker_main/1566799737628135424) | true | `/test unit-tests_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1566799738462801920) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1566799741147156480) | true | `/test reconciler-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/unit-tests_eventing-kafka-broker_main/1566799737628135424) | true | `/test unit-tests_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1566799738462801920) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1566799741147156480) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1566799745333071872) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/unit-tests_eventing-kafka-broker_main/1566799737628135424) | true | `/test unit-tests_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1566799738462801920) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1566799741147156480) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1566799745333071872) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1566799742812295168) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/unit-tests_eventing-kafka-broker_main/1566799737628135424) | true | `/test unit-tests_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1566799738462801920) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1566799741147156480) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1566799745333071872) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1566799742812295168) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1566799750001332224) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/unit-tests_eventing-kafka-broker_main/1566799737628135424) | true | `/test unit-tests_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1566799738462801920) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1566799741147156480) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1566799745333071872) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1566799742812295168) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1566799750001332224) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1566799747014987776) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/unit-tests_eventing-kafka-broker_main/1566799737628135424) | true | `/test unit-tests_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1566799738462801920) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1566799741147156480) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1566799745333071872) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1566799742812295168) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1566799750001332224) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1566799747014987776) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1566799748701097984) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/unit-tests_eventing-kafka-broker_main/1566799737628135424) | true | `/test unit-tests_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1566799738462801920) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1566799741147156480) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1566799745333071872) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1566799742812295168) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1566799750001332224) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1566799747014987776) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1566799748701097984) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1566799751658082304) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`

[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 -->
pierDipi: Waiting for https://github.com/knative-sandbox/eventing-kafka-broker/pull/2602 to go in.
knative-prow-robot: @pierDipi: PR needs rebase.

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

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
integration-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1566799738462801920) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1566799741147156480) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1566799745333071872) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1566799742812295168) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1566799750001332224) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1566799747014987776) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1566799748701097984) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1566799751658082304) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
unit-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/unit-tests_eventing-kafka-broker_main/1567142142587965440) | true | `/test unit-tests_eventing-kafka-broker_main`

[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 -->
pierDipi: Maven:
```
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.3.0:shade (default) on project receiver: Execution default of goal org.apache.maven.plugins:maven-shade-plugin:3.3.0:shade failed: Plugin org.apache.maven.plugins:maven-shade-plugin:3.3.0 or one of its dependencies could not be resolved: Could not transfer artifact org.apache.maven:maven-artifact:jar:3.0 from/to central (https://repo.maven.apache.org/maven2): transfer failed for https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.jar: Connection reset -> [Help 1]
```
/test unit-tests_eventing-kafka-broker_main
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1566799741147156480) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1566799745333071872) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1566799742812295168) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1566799750001332224) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1566799747014987776) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1566799748701097984) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1566799751658082304) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567142142650880000) | true | `/test integration-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1566799745333071872) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1566799742812295168) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1566799750001332224) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1566799747014987776) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1566799748701097984) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1566799751658082304) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567142142650880000) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567142142780903424) | true | `/test reconciler-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1566799745333071872) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1566799742812295168) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1566799750001332224) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1566799748701097984) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567142142650880000) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567142142780903424) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567142142969647104) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567142143376494592) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1566799745333071872) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1566799750001332224) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1566799748701097984) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567142142650880000) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567142142780903424) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567142142969647104) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567142143376494592) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567142142843817984) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1566799750001332224) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1566799748701097984) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567142142650880000) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567142142780903424) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567142142969647104) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567142143376494592) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567142142843817984) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567142142910926848) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
channel-reconciler-tests-ssl_eventing-kafka-broker_main | de92bb751124a1839854d8d2b52328b38ac37f86 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1566799748701097984) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567142142650880000) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567142142780903424) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567142142969647104) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567142143376494592) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567142142843817984) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567142142910926848) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1567142143087087616) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
integration-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567142142650880000) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567142142780903424) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567142142969647104) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567142143376494592) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567142142843817984) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567142142910926848) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1567142143087087616) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1567142143028367360) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
integration-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567142142650880000) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567142142780903424) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567142142969647104) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567142143376494592) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567142142843817984) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567142142910926848) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1567142143087087616) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1567142143028367360) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
unit-tests_eventing-kafka-broker_main | e19898dcdaea6bbae30d2208fd0313dba61fd27c | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/unit-tests_eventing-kafka-broker_main/1567154203510444032) | true | `/test unit-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
integration-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567142142650880000) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567142142780903424) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567142143376494592) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567142142843817984) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567142142910926848) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1567142143087087616) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
unit-tests_eventing-kafka-broker_main | f1a6acd880ed5ada51ec9f98fc7f20f58328f360 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/unit-tests_eventing-kafka-broker_main/1567159278823804928) | true | `/test unit-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
integration-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567142142650880000) | true | `/test integration-tests_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567142143376494592) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567142142910926848) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
integration-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567142142650880000) | true | `/test integration-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567142142910926848) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567161635280261120) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
integration-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567142142650880000) | true | `/test integration-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567142142910926848) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567161635280261120) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567161630624583680) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
integration-tests_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567142142650880000) | true | `/test integration-tests_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567142142910926848) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567161635280261120) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567161630624583680) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567161628108001280) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567142142910926848) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567161635280261120) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567161630624583680) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567161628108001280) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567161626426085376) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567161618880532480) | true | `/test integration-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 9655fc1af0622027a0584314f1cf3102201cead8 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567142142910926848) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567161635280261120) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567161630624583680) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567161628108001280) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567161626426085376) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567161618880532480) | true | `/test integration-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567161620562448384) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567161635280261120) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567161630624583680) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567161628108001280) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567161626426085376) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567161618880532480) | true | `/test integration-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567161620562448384) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567161629785722880) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567161635280261120) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567161630624583680) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567161628108001280) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567161626426085376) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567161618880532480) | true | `/test integration-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567161620562448384) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567161629785722880) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1567161632306499584) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567161635280261120) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567161630624583680) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567161628108001280) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567161626426085376) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567161618880532480) | true | `/test integration-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567161620562448384) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567161629785722880) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1567161632306499584) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1567161633581568000) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main/1567161635280261120) | true | `/test channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567161630624583680) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567161628108001280) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567161626426085376) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567161618880532480) | true | `/test integration-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567161620562448384) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567161629785722880) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1567161632306499584) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1567161633581568000) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
upgrade-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/upgrade-tests_eventing-kafka-broker_main/1567161623074836480) | true | `/test upgrade-tests_eventing-kafka-broker_main`

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

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567161626426085376) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567161618880532480) | true | `/test integration-tests_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1567161632306499584) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1567161633581568000) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
upgrade-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/upgrade-tests_eventing-kafka-broker_main/1567161623074836480) | true | `/test upgrade-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567176282653855744) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567161626426085376) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567161618880532480) | true | `/test integration-tests_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1567161632306499584) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1567161633581568000) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
upgrade-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/upgrade-tests_eventing-kafka-broker_main/1567161623074836480) | true | `/test upgrade-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567176282653855744) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567176291889713152) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567161618880532480) | true | `/test integration-tests_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1567161632306499584) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1567161633581568000) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
upgrade-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/upgrade-tests_eventing-kafka-broker_main/1567161623074836480) | true | `/test upgrade-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567176282653855744) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567176291889713152) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567176289360547840) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567161618880532480) | true | `/test integration-tests_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1567161632306499584) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main/1567161633581568000) | true | `/test channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main`
upgrade-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/upgrade-tests_eventing-kafka-broker_main/1567161623074836480) | true | `/test upgrade-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567176282653855744) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567176291889713152) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567176289360547840) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567176290690142208) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`

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

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 3c1dd4c78f9485bbd0ca1b194a064c15ffe5f004 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567161625167794176) | true | `/test reconciler-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567176282653855744) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567176291889713152) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567176289360547840) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567176290690142208) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567176281802412032) | true | `/test integration-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567176282653855744) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567176291889713152) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567176289360547840) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567176290690142208) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567176281802412032) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567176287351476224) | true | `/test reconciler-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-ssl_eventing-kafka-broker_main/1567176291889713152) | true | `/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567176289360547840) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
channel-integration-tests-ssl_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-ssl_eventing-kafka-broker_main/1567176290690142208) | true | `/test channel-integration-tests-ssl_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567176281802412032) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567176287351476224) | true | `/test reconciler-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567183037110685696) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
integration-tests_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567176281802412032) | true | `/test integration-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567176287351476224) | true | `/test reconciler-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567183037110685696) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567183037190377472) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`

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

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567176287351476224) | true | `/test reconciler-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567183037110685696) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567183037190377472) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 0c5d207c191f40bf810acd80af2cb0cb9af975c5 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567439138557267968) | true | `/test integration-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567176287351476224) | true | `/test reconciler-tests_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567183037190377472) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 0c5d207c191f40bf810acd80af2cb0cb9af975c5 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567439138557267968) | true | `/test integration-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 0c5d207c191f40bf810acd80af2cb0cb9af975c5 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567439138645348352) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 3053d4574c49057b7d597bda3000a11fd743f8d6 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567176287351476224) | true | `/test reconciler-tests_eventing-kafka-broker_main`
integration-tests_eventing-kafka-broker_main | 0c5d207c191f40bf810acd80af2cb0cb9af975c5 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567439138557267968) | true | `/test integration-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 0c5d207c191f40bf810acd80af2cb0cb9af975c5 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567439138645348352) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 0c5d207c191f40bf810acd80af2cb0cb9af975c5 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567439138829897728) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
integration-tests_eventing-kafka-broker_main | 0c5d207c191f40bf810acd80af2cb0cb9af975c5 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests_eventing-kafka-broker_main/1567439138557267968) | true | `/test integration-tests_eventing-kafka-broker_main`
integration-tests-namespaced-broker_eventing-kafka-broker_main | 0c5d207c191f40bf810acd80af2cb0cb9af975c5 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/integration-tests-namespaced-broker_eventing-kafka-broker_main/1567439138645348352) | true | `/test integration-tests-namespaced-broker_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 0c5d207c191f40bf810acd80af2cb0cb9af975c5 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567439138829897728) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 0c5d207c191f40bf810acd80af2cb0cb9af975c5 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567439138771177472) | true | `/test reconciler-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 0c5d207c191f40bf810acd80af2cb0cb9af975c5 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567439138829897728) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 7cb03a83e9f2fb992b636baf9eb63bb341d3ff10 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567456684119429120) | true | `/test reconciler-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 7cb03a83e9f2fb992b636baf9eb63bb341d3ff10 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567456684119429120) | true | `/test reconciler-tests_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 7cb03a83e9f2fb992b636baf9eb63bb341d3ff10 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567456684186537984) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
aliok: /lgtm
/approve
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/2601#issuecomment-1239290354" title="Approved">aliok</a>*, *<a href="https://github.com/knative-sandbox/eventing-kafka-broker/pull/2601#" title="Author self-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)~~ [aliok,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[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 7cb03a83e9f2fb992b636baf9eb63bb341d3ff10 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567456684186537984) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 7cb03a83e9f2fb992b636baf9eb63bb341d3ff10 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567472583878643712) | true | `/test reconciler-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 7cb03a83e9f2fb992b636baf9eb63bb341d3ff10 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567472583878643712) | true | `/test reconciler-tests_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 7cb03a83e9f2fb992b636baf9eb63bb341d3ff10 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567472764942553088) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: New changes are detected. LGTM label has been removed.
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 7cb03a83e9f2fb992b636baf9eb63bb341d3ff10 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567472583878643712) | true | `/test reconciler-tests_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 7cb03a83e9f2fb992b636baf9eb63bb341d3ff10 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567472764942553088) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
upgrade-tests_eventing-kafka-broker_main | 887c629baf38fe7fc4e90fde085f843d15639deb | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/upgrade-tests_eventing-kafka-broker_main/1567518977649807360) | true | `/test upgrade-tests_eventing-kafka-broker_main`

[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 -->
pierDipi: Failed https://github.com/knative-sandbox/eventing-kafka-broker/issues/2612 for unrelated error

/test upgrade-tests_eventing-kafka-broker_main
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 7cb03a83e9f2fb992b636baf9eb63bb341d3ff10 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567472764942553088) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
upgrade-tests_eventing-kafka-broker_main | 887c629baf38fe7fc4e90fde085f843d15639deb | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/upgrade-tests_eventing-kafka-broker_main/1567518977649807360) | true | `/test upgrade-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 887c629baf38fe7fc4e90fde085f843d15639deb | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567518977758859264) | true | `/test reconciler-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
upgrade-tests_eventing-kafka-broker_main | 887c629baf38fe7fc4e90fde085f843d15639deb | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/upgrade-tests_eventing-kafka-broker_main/1567518977649807360) | true | `/test upgrade-tests_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 887c629baf38fe7fc4e90fde085f843d15639deb | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567518977758859264) | true | `/test reconciler-tests_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 887c629baf38fe7fc4e90fde085f843d15639deb | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567518977851133952) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 887c629baf38fe7fc4e90fde085f843d15639deb | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567518977851133952) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 28f749f19e4b348ed7c171c2ae93d9226a3a424d | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567540081420406784) | true | `/test reconciler-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
reconciler-tests_eventing-kafka-broker_main | 28f749f19e4b348ed7c171c2ae93d9226a3a424d | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567540081420406784) | true | `/test reconciler-tests_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 28f749f19e4b348ed7c171c2ae93d9226a3a424d | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567540081491709952) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: 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
--- | --- | --- | --- | ---
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 67f5e9a539a2d3abc9fb90c23343d214ab516a56 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567562922903736320) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 67f5e9a539a2d3abc9fb90c23343d214ab516a56 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567562922903736320) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | 67f5e9a539a2d3abc9fb90c23343d214ab516a56 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1567562923750985728) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 67f5e9a539a2d3abc9fb90c23343d214ab516a56 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567562922903736320) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | 67f5e9a539a2d3abc9fb90c23343d214ab516a56 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1567562923750985728) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 67f5e9a539a2d3abc9fb90c23343d214ab516a56 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567562918285807616) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
channel-integration-tests-sasl-plain_eventing-kafka-broker_main | 67f5e9a539a2d3abc9fb90c23343d214ab516a56 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-integration-tests-sasl-plain_eventing-kafka-broker_main/1567562922903736320) | true | `/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main`
channel-reconciler-tests-ssl_eventing-kafka-broker_main | 67f5e9a539a2d3abc9fb90c23343d214ab516a56 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/channel-reconciler-tests-ssl_eventing-kafka-broker_main/1567562923750985728) | true | `/test channel-reconciler-tests-ssl_eventing-kafka-broker_main`
reconciler-tests-namespaced-broker_eventing-kafka-broker_main | 67f5e9a539a2d3abc9fb90c23343d214ab516a56 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567562918285807616) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`
reconciler-tests_eventing-kafka-broker_main | 67f5e9a539a2d3abc9fb90c23343d214ab516a56 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests_eventing-kafka-broker_main/1567562915769225216) | true | `/test reconciler-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
aliok: /retest
pierDipi: I rebased
knative-prow[bot]: @pierDipi: 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
--- | --- | --- | --- | ---
build-tests_eventing-kafka-broker_main | 62ed4d7dee2e9f8433f0563cb15ec1388de00637 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/build-tests_eventing-kafka-broker_main/1567765914810585088) | true | `/test build-tests_eventing-kafka-broker_main`

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

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
knative-prow[bot]: @pierDipi: 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 | 5ad47dbaeb57f2a30a2fa9643dfbd363dbaef15b | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2601/reconciler-tests-namespaced-broker_eventing-kafka-broker_main/1567771295364419584) | true | `/test reconciler-tests-namespaced-broker_eventing-kafka-broker_main`

[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 -->
pierDipi: /retest-required 
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/2601#pullrequestreview-1100431113" title="Approved">aliok</a>*, *<a href="https://github.com/knative-sandbox/eventing-kafka-broker/pull/2601#" title="Author self-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)~~ [aliok,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/control-plane/config/eventing-kafka-broker/200-controller/500-controller.yaml b/control-plane/config/eventing-kafka-broker/200-controller/500-controller.yaml
index 26234a4a8..a39868289 100644
--- a/control-plane/config/eventing-kafka-broker/200-controller/500-controller.yaml
+++ b/control-plane/config/eventing-kafka-broker/200-controller/500-controller.yaml
@@ -78,6 +78,15 @@ spec:
             - name: SOURCE_CONTRACT_CONFIG_MAP_NAME
               value: kafka-source-sources
 
+            - name: BROKER_DATA_PLANE_CONFIG_CONFIG_MAP_NAME
+              value: config-kafka-broker-data-plane
+            - name: SOURCE_DATA_PLANE_CONFIG_CONFIG_MAP_NAME
+              value: config-kafka-source-data-plane
+            - name: SINK_DATA_PLANE_CONFIG_CONFIG_MAP_NAME
+              value: config-kafka-source-data-plane
+            - name: CHANNEL_DATA_PLANE_CONFIG_CONFIG_MAP_NAME
+              value: config-kafka-source-data-plane
+
             - name: BROKER_CONTRACT_CONFIG_MAP_FORMAT
               value: json
             - name: CHANNEL_CONTRACT_CONFIG_MAP_FORMAT
diff --git a/control-plane/pkg/config/env_config.go b/control-plane/pkg/config/env_config.go
index 0bd404f76..770e17e99 100644
--- a/control-plane/pkg/config/env_config.go
+++ b/control-plane/pkg/config/env_config.go
@@ -32,6 +32,9 @@ type Env struct {
 	// and the data plane.
 	ContractConfigMapName string `required:"true" split_words:"true"` // example: kafka-broker-brokers-triggers
 
+	// DataPlaneConfigConfigMapName is the name of the configmap that holds the data plane configurations.
+	DataPlaneConfigConfigMapName string `required:"true" split_words:"true"` // example: config-kafka-broker-data-plane
+
 	// GeneralConfigMapName is the name of the configmap that holds configuration that affects the control plane
 	// and the data plane. For example, Kafka bootstrap server information could be in here for broker configuration.
 	GeneralConfigMapName string `required:"true" split_words:"true"` // example: kafka-broker-config
diff --git a/control-plane/pkg/kafka/data_plane_config.go b/control-plane/pkg/kafka/data_plane_config.go
new file mode 100644
index 000000000..d38f656f1
--- /dev/null
+++ b/control-plane/pkg/kafka/data_plane_config.go
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2022 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 kafka
+
+import (
+	"fmt"
+
+	"github.com/magiconair/properties"
+	corelisters "k8s.io/client-go/listers/core/v1"
+)
+
+// IsOffsetLatest returns whether the configured `auto.offset.reset` it set to latest in the given ConfigMap.
+func IsOffsetLatest(lister corelisters.ConfigMapLister, namespace, name, key string) (bool, error) {
+	cm, err := lister.ConfigMaps(namespace).Get(name)
+	if err != nil {
+		return false, fmt.Errorf("failed to get configmap %s/%s: %w", namespace, name, err)
+	}
+
+	consumerConfig, ok := cm.Data[key]
+	if !ok {
+		// latest by default
+		return true, nil
+	}
+
+	consumerConfigProps, err := properties.LoadString(consumerConfig)
+	if err != nil {
+		// latest by default
+		return true, fmt.Errorf("failed to read consumer configurations: %w", err)
+	}
+
+	offsetResetPolicy, ok := consumerConfigProps.Get("auto.offset.reset")
+	if !ok {
+		return true, nil
+	}
+
+	return offsetResetPolicy == "latest", nil
+}
diff --git a/control-plane/pkg/kafka/topic.go b/control-plane/pkg/kafka/topic.go
index 8cdb421b3..ba20afed9 100644
--- a/control-plane/pkg/kafka/topic.go
+++ b/control-plane/pkg/kafka/topic.go
@@ -31,7 +31,10 @@ const (
 	DefaultTopicNumPartitionConfigMapKey      = "default.topic.partitions"
 	DefaultTopicReplicationFactorConfigMapKey = "default.topic.replication.factor"
 	BootstrapServersConfigMapKey              = "bootstrap.servers"
-	GroupIDConfigMapKey                       = "group.id"
+
+	GroupIDConfigMapKey = "group.id"
+
+	TopicAnnotation = "default.topic"
 )
 
 // TopicConfig contains configurations for creating a topic.
diff --git a/control-plane/pkg/reconciler/base/reconciler.go b/control-plane/pkg/reconciler/base/reconciler.go
index 3f3cca0d0..e447f8c55 100644
--- a/control-plane/pkg/reconciler/base/reconciler.go
+++ b/control-plane/pkg/reconciler/base/reconciler.go
@@ -79,10 +79,12 @@ type Reconciler struct {
 	ConfigMapTracker tracker.Interface
 
 	DataPlaneConfigMapNamespace string
-	DataPlaneConfigMapName      string
-	DataPlaneConfigFormat       string
+	ContractConfigMapName       string
+	ContractConfigMapFormat     string
 	DataPlaneNamespace          string
 
+	DataPlaneConfigConfigMapName string
+
 	DispatcherLabel string
 	ReceiverLabel   string
 
@@ -125,7 +127,7 @@ func (r *Reconciler) GetOrCreateDataPlaneConfigMap(ctx context.Context) (*corev1
 
 	cm, err := r.KubeClient.CoreV1().
 		ConfigMaps(r.DataPlaneConfigMapNamespace).
-		Get(ctx, r.DataPlaneConfigMapName, metav1.GetOptions{})
+		Get(ctx, r.ContractConfigMapName, metav1.GetOptions{})
 
 	if apierrors.IsNotFound(err) {
 		cm, err = r.createDataPlaneConfigMap(ctx)
@@ -142,7 +144,7 @@ func (r *Reconciler) createDataPlaneConfigMap(ctx context.Context) (*corev1.Conf
 	cm := &corev1.ConfigMap{
 		TypeMeta: metav1.TypeMeta{},
 		ObjectMeta: metav1.ObjectMeta{
-			Name:      r.DataPlaneConfigMapName,
+			Name:      r.ContractConfigMapName,
 			Namespace: r.DataPlaneConfigMapNamespace,
 		},
 		BinaryData: map[string][]byte{
@@ -155,7 +157,7 @@ func (r *Reconciler) createDataPlaneConfigMap(ctx context.Context) (*corev1.Conf
 
 // GetDataPlaneConfigMapData extracts contract from the given config map.
 func (r *Reconciler) GetDataPlaneConfigMapData(logger *zap.Logger, dataPlaneConfigMap *corev1.ConfigMap) (*contract.Contract, error) {
-	return GetDataPlaneConfigMapData(logger, dataPlaneConfigMap, r.DataPlaneConfigFormat)
+	return GetDataPlaneConfigMapData(logger, dataPlaneConfigMap, r.ContractConfigMapFormat)
 }
 
 func GetDataPlaneConfigMapData(logger *zap.Logger, dataPlaneConfigMap *corev1.ConfigMap, format string) (*contract.Contract, error) {
@@ -209,11 +211,13 @@ func (r *Reconciler) UpdateDataPlaneConfigMap(ctx context.Context, contract *con
 
 	var data []byte
 	var err error
-	switch r.DataPlaneConfigFormat {
+	switch r.ContractConfigMapFormat {
 	case Protobuf:
 		data, err = proto.Marshal(contract)
 	case Json:
 		data, err = protojson.Marshal(contract)
+	default:
+		return fmt.Errorf("unknown contract format %s", r.ContractConfigMapFormat)
 	}
 	if err != nil {
 		return fmt.Errorf("failed to marshal contract: %w", err)
diff --git a/control-plane/pkg/reconciler/broker/broker.go b/control-plane/pkg/reconciler/broker/broker.go
index 2fef78ed7..2f6b635af 100644
--- a/control-plane/pkg/reconciler/broker/broker.go
+++ b/control-plane/pkg/reconciler/broker/broker.go
@@ -52,6 +52,9 @@ const (
 
 	// ExternalTopicAnnotation for using external kafka topic for the broker
 	ExternalTopicAnnotation = "kafka.eventing.knative.dev/external.topic"
+
+	// ConsumerConfigKey is the key for Kafka Broker consumer configurations
+	ConsumerConfigKey = "config-kafka-broker-consumer.properties"
 )
 
 type Reconciler struct {
@@ -271,6 +274,9 @@ func (r *Reconciler) reconcileBrokerTopic(broker *eventing.Broker, securityOptio
 
 	statusConditionManager.TopicReady(topicName)
 	logger.Debug("Topic created", zap.Any("topic", topicName))
+
+	broker.Status.Annotations[kafka.TopicAnnotation] = topicName
+
 	return topicName, nil
 }
 
diff --git a/control-plane/pkg/reconciler/broker/controller.go b/control-plane/pkg/reconciler/broker/controller.go
index 2dcdb5449..3e0afb602 100644
--- a/control-plane/pkg/reconciler/broker/controller.go
+++ b/control-plane/pkg/reconciler/broker/controller.go
@@ -62,8 +62,8 @@ func NewController(ctx context.Context, watcher configmap.Watcher, env *config.E
 			PodLister:                   podinformer.Get(ctx).Lister(),
 			SecretLister:                secretinformer.Get(ctx).Lister(),
 			DataPlaneConfigMapNamespace: env.DataPlaneConfigMapNamespace,
-			DataPlaneConfigMapName:      env.ContractConfigMapName,
-			DataPlaneConfigFormat:       env.ContractConfigMapFormat,
+			ContractConfigMapName:       env.ContractConfigMapName,
+			ContractConfigMapFormat:     env.ContractConfigMapFormat,
 			DataPlaneNamespace:          env.SystemNamespace,
 			DispatcherLabel:             base.BrokerDispatcherLabel,
 			ReceiverLabel:               base.BrokerReceiverLabel,
diff --git a/control-plane/pkg/reconciler/broker/namespaced_broker.go b/control-plane/pkg/reconciler/broker/namespaced_broker.go
index 943dd23b4..6b3db178d 100644
--- a/control-plane/pkg/reconciler/broker/namespaced_broker.go
+++ b/control-plane/pkg/reconciler/broker/namespaced_broker.go
@@ -110,15 +110,15 @@ func (r *NamespacedReconciler) createReconcilerForBrokerInstance(broker *eventin
 
 	return &Reconciler{
 		Reconciler: &base.Reconciler{
-			KubeClient:             r.Reconciler.KubeClient,
-			PodLister:              r.Reconciler.PodLister,
-			SecretLister:           r.Reconciler.SecretLister,
-			SecretTracker:          r.Reconciler.SecretTracker,
-			ConfigMapTracker:       r.Reconciler.ConfigMapTracker,
-			DataPlaneConfigMapName: r.Reconciler.DataPlaneConfigMapName,
-			DataPlaneConfigFormat:  r.Reconciler.DataPlaneConfigFormat,
-			DispatcherLabel:        r.Reconciler.DispatcherLabel,
-			ReceiverLabel:          r.Reconciler.ReceiverLabel,
+			KubeClient:              r.Reconciler.KubeClient,
+			PodLister:               r.Reconciler.PodLister,
+			SecretLister:            r.Reconciler.SecretLister,
+			SecretTracker:           r.Reconciler.SecretTracker,
+			ConfigMapTracker:        r.Reconciler.ConfigMapTracker,
+			ContractConfigMapName:   r.Reconciler.ContractConfigMapName,
+			ContractConfigMapFormat: r.Reconciler.ContractConfigMapFormat,
+			DispatcherLabel:         r.Reconciler.DispatcherLabel,
+			ReceiverLabel:           r.Reconciler.ReceiverLabel,
 
 			DataPlaneNamespace:          broker.Namespace,
 			DataPlaneConfigMapNamespace: broker.Namespace,
diff --git a/control-plane/pkg/reconciler/broker/namespaced_controller.go b/control-plane/pkg/reconciler/broker/namespaced_controller.go
index 148560c05..214e8ba46 100644
--- a/control-plane/pkg/reconciler/broker/namespaced_controller.go
+++ b/control-plane/pkg/reconciler/broker/namespaced_controller.go
@@ -75,8 +75,8 @@ func NewNamespacedController(ctx context.Context, watcher configmap.Watcher, env
 			PodLister:                   podinformer.Get(ctx).Lister(),
 			SecretLister:                secretinformer.Get(ctx).Lister(),
 			DataPlaneConfigMapNamespace: env.DataPlaneConfigMapNamespace,
-			DataPlaneConfigMapName:      env.ContractConfigMapName,
-			DataPlaneConfigFormat:       env.ContractConfigMapFormat,
+			ContractConfigMapName:       env.ContractConfigMapName,
+			ContractConfigMapFormat:     env.ContractConfigMapFormat,
 			DataPlaneNamespace:          env.SystemNamespace,
 			DispatcherLabel:             base.BrokerDispatcherLabel,
 			ReceiverLabel:               base.BrokerReceiverLabel,
diff --git a/control-plane/pkg/reconciler/channel/channel.go b/control-plane/pkg/reconciler/channel/channel.go
index 2cab70d39..2b56db32f 100644
--- a/control-plane/pkg/reconciler/channel/channel.go
+++ b/control-plane/pkg/reconciler/channel/channel.go
@@ -176,13 +176,13 @@ func (r *Reconciler) reconcileKind(ctx context.Context, channel *messagingv1beta
 
 	kafkaClusterAdminClient, err := r.NewKafkaClusterAdminClient(topicConfig.BootstrapServers, kafkaClusterAdminSaramaConfig)
 	if err != nil {
-		return statusConditionManager.FailedToCreateTopic(topicName, fmt.Errorf("cannot obtain Kafka cluster admin, %w", err))
+		return statusConditionManager.FailedToCreateTopic(topicName, fmt.Errorf("cannot obtain Kafka cluster admin: %w", err))
 	}
 	defer kafkaClusterAdminClient.Close()
 
 	kafkaClient, err := r.NewKafkaClient(topicConfig.BootstrapServers, kafkaClientSaramaConfig)
 	if err != nil {
-		return statusConditionManager.FailedToCreateTopic(topicName, fmt.Errorf("error getting sarama config: %w", err))
+		return statusConditionManager.FailedToCreateTopic(topicName, fmt.Errorf("cannot obtain Kafka client: %w", err))
 	}
 	defer kafkaClient.Close()
 
diff --git a/control-plane/pkg/reconciler/channel/controller.go b/control-plane/pkg/reconciler/channel/controller.go
index d91a7b5fd..bc1a55ea5 100644
--- a/control-plane/pkg/reconciler/channel/controller.go
+++ b/control-plane/pkg/reconciler/channel/controller.go
@@ -59,8 +59,8 @@ func NewController(ctx context.Context, configs *config.Env) *controller.Impl {
 			PodLister:                   podinformer.Get(ctx).Lister(),
 			SecretLister:                secretinformer.Get(ctx).Lister(),
 			DataPlaneConfigMapNamespace: configs.DataPlaneConfigMapNamespace,
-			DataPlaneConfigMapName:      configs.ContractConfigMapName,
-			DataPlaneConfigFormat:       configs.ContractConfigMapFormat,
+			ContractConfigMapName:       configs.ContractConfigMapName,
+			ContractConfigMapFormat:     configs.ContractConfigMapFormat,
 			DataPlaneNamespace:          configs.SystemNamespace,
 			DispatcherLabel:             base.ChannelDispatcherLabel,
 			ReceiverLabel:               base.ChannelReceiverLabel,
diff --git a/control-plane/pkg/reconciler/channel/v2/controllerv2.go b/control-plane/pkg/reconciler/channel/v2/controllerv2.go
index 898692497..aff8854e8 100644
--- a/control-plane/pkg/reconciler/channel/v2/controllerv2.go
+++ b/control-plane/pkg/reconciler/channel/v2/controllerv2.go
@@ -61,8 +61,8 @@ func NewController(ctx context.Context, configs *config.Env) *controller.Impl {
 			PodLister:                   podinformer.Get(ctx).Lister(),
 			SecretLister:                secretinformer.Get(ctx).Lister(),
 			DataPlaneConfigMapNamespace: configs.DataPlaneConfigMapNamespace,
-			DataPlaneConfigMapName:      configs.ContractConfigMapName,
-			DataPlaneConfigFormat:       configs.ContractConfigMapFormat,
+			ContractConfigMapName:       configs.ContractConfigMapName,
+			ContractConfigMapFormat:     configs.ContractConfigMapFormat,
 			DataPlaneNamespace:          configs.SystemNamespace,
 		},
 		NewKafkaClient:             sarama.NewClient,
diff --git a/control-plane/pkg/reconciler/consumer/consumer.go b/control-plane/pkg/reconciler/consumer/consumer.go
index 7c791b71a..551baec02 100644
--- a/control-plane/pkg/reconciler/consumer/consumer.go
+++ b/control-plane/pkg/reconciler/consumer/consumer.go
@@ -374,8 +374,8 @@ func (r Reconciler) commonReconciler(p *corev1.Pod, cmName string) base.Reconcil
 		SecretTracker:                 r.Tracker,
 		ConfigMapTracker:              r.Tracker,
 		DataPlaneConfigMapNamespace:   p.GetNamespace(),
-		DataPlaneConfigMapName:        cmName,
-		DataPlaneConfigFormat:         string(r.SerDe.Format),
+		ContractConfigMapName:         cmName,
+		ContractConfigMapFormat:       string(r.SerDe.Format),
 		DataPlaneNamespace:            p.GetNamespace(),
 		DispatcherLabel:               "",
 		ReceiverLabel:                 "",
diff --git a/control-plane/pkg/reconciler/sink/controller.go b/control-plane/pkg/reconciler/sink/controller.go
index 44a8616de..8defeece6 100644
--- a/control-plane/pkg/reconciler/sink/controller.go
+++ b/control-plane/pkg/reconciler/sink/controller.go
@@ -57,8 +57,8 @@ func NewController(ctx context.Context, _ configmap.Watcher, configs *config.Env
 			PodLister:                   podinformer.Get(ctx).Lister(),
 			SecretLister:                secretinformer.Get(ctx).Lister(),
 			DataPlaneConfigMapNamespace: configs.DataPlaneConfigMapNamespace,
-			DataPlaneConfigMapName:      configs.ContractConfigMapName,
-			DataPlaneConfigFormat:       configs.ContractConfigMapFormat,
+			ContractConfigMapName:       configs.ContractConfigMapName,
+			ContractConfigMapFormat:     configs.ContractConfigMapFormat,
 			DataPlaneNamespace:          configs.SystemNamespace,
 			ReceiverLabel:               base.SinkReceiverLabel,
 		},
diff --git a/control-plane/pkg/reconciler/trigger/controller.go b/control-plane/pkg/reconciler/trigger/controller.go
index d0e1494a0..6300dc428 100644
--- a/control-plane/pkg/reconciler/trigger/controller.go
+++ b/control-plane/pkg/reconciler/trigger/controller.go
@@ -19,9 +19,11 @@ package trigger
 import (
 	"context"
 
+	"github.com/Shopify/sarama"
 	"go.uber.org/zap"
 	"k8s.io/apimachinery/pkg/labels"
 	"k8s.io/client-go/tools/cache"
+	"knative.dev/eventing-kafka/pkg/common/kafka/offset"
 	v1 "knative.dev/eventing/pkg/client/informers/externalversions/eventing/v1"
 	kubeclient "knative.dev/pkg/client/injection/kube/client"
 	configmapinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/configmap"
@@ -63,24 +65,29 @@ func NewController(ctx context.Context, watcher configmap.Watcher, configs *conf
 
 	reconciler := &Reconciler{
 		Reconciler: &base.Reconciler{
-			KubeClient:                  kubeclient.Get(ctx),
-			PodLister:                   podinformer.Get(ctx).Lister(),
-			SecretLister:                secretinformer.Get(ctx).Lister(),
-			DataPlaneConfigMapNamespace: configs.DataPlaneConfigMapNamespace,
-			DataPlaneConfigMapName:      configs.ContractConfigMapName,
-			DataPlaneConfigFormat:       configs.ContractConfigMapFormat,
-			DataPlaneNamespace:          configs.SystemNamespace,
-			DispatcherLabel:             base.BrokerDispatcherLabel,
-			ReceiverLabel:               base.BrokerReceiverLabel,
+			KubeClient:                   kubeclient.Get(ctx),
+			PodLister:                    podinformer.Get(ctx).Lister(),
+			SecretLister:                 secretinformer.Get(ctx).Lister(),
+			DataPlaneConfigMapNamespace:  configs.DataPlaneConfigMapNamespace,
+			DataPlaneConfigConfigMapName: configs.DataPlaneConfigConfigMapName,
+			ContractConfigMapName:        configs.ContractConfigMapName,
+			ContractConfigMapFormat:      configs.ContractConfigMapFormat,
+			DataPlaneNamespace:           configs.SystemNamespace,
+			DispatcherLabel:              base.BrokerDispatcherLabel,
+			ReceiverLabel:                base.BrokerReceiverLabel,
 		},
 		FlagsHolder: &FlagsHolder{
 			Flags: feature.Flags{},
 		},
-		BrokerLister:              brokerInformer.Lister(),
-		EventingClient:            eventingclient.Get(ctx),
-		Env:                       configs,
-		BrokerClass:               kafka.BrokerClass,
-		DataPlaneConfigMapLabeler: base.NoopConfigmapOption,
+		BrokerLister:               brokerInformer.Lister(),
+		ConfigMapLister:            configmapInformer.Lister(),
+		EventingClient:             eventingclient.Get(ctx),
+		Env:                        configs,
+		BrokerClass:                kafka.BrokerClass,
+		DataPlaneConfigMapLabeler:  base.NoopConfigmapOption,
+		NewKafkaClient:             sarama.NewClient,
+		NewKafkaClusterAdminClient: sarama.NewClusterAdmin,
+		InitOffsetsFunc:            offset.InitOffsets,
 	}
 
 	impl := triggerreconciler.NewImpl(ctx, reconciler, func(impl *controller.Impl) controller.Options {
@@ -119,6 +126,9 @@ func NewController(ctx context.Context, watcher configmap.Watcher, configs *conf
 		},
 	})
 
+	reconciler.SecretTracker = impl.Tracker
+	secretinformer.Get(ctx).Informer().AddEventHandler(controller.HandleAll(reconciler.SecretTracker.OnChanged))
+
 	return impl
 }
 
diff --git a/control-plane/pkg/reconciler/trigger/namespaced_controller.go b/control-plane/pkg/reconciler/trigger/namespaced_controller.go
index 3f0fd15a0..09870d026 100644
--- a/control-plane/pkg/reconciler/trigger/namespaced_controller.go
+++ b/control-plane/pkg/reconciler/trigger/namespaced_controller.go
@@ -29,14 +29,15 @@ import (
 	"knative.dev/pkg/logging"
 	"knative.dev/pkg/resolver"
 
-	"knative.dev/eventing-kafka-broker/control-plane/pkg/config"
-	"knative.dev/eventing-kafka-broker/control-plane/pkg/kafka"
-	"knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/base"
 	"knative.dev/eventing/pkg/apis/feature"
 	eventingclient "knative.dev/eventing/pkg/client/injection/client"
 	brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker"
 	triggerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger"
 	triggerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger"
+
+	"knative.dev/eventing-kafka-broker/control-plane/pkg/config"
+	"knative.dev/eventing-kafka-broker/control-plane/pkg/kafka"
+	"knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/base"
 )
 
 const (
@@ -60,8 +61,8 @@ func NewNamespacedController(ctx context.Context, watcher configmap.Watcher, con
 			PodLister:                   podinformer.Get(ctx).Lister(),
 			SecretLister:                secretinformer.Get(ctx).Lister(),
 			DataPlaneConfigMapNamespace: configs.DataPlaneConfigMapNamespace,
-			DataPlaneConfigMapName:      configs.ContractConfigMapName,
-			DataPlaneConfigFormat:       configs.ContractConfigMapFormat,
+			ContractConfigMapName:       configs.ContractConfigMapName,
+			ContractConfigMapFormat:     configs.ContractConfigMapFormat,
 			DataPlaneNamespace:          configs.SystemNamespace,
 			DispatcherLabel:             base.BrokerDispatcherLabel,
 			ReceiverLabel:               base.BrokerReceiverLabel,
@@ -69,9 +70,10 @@ func NewNamespacedController(ctx context.Context, watcher configmap.Watcher, con
 		FlagsHolder: &FlagsHolder{
 			Flags: feature.Flags{},
 		},
-		BrokerLister:   brokerInformer.Lister(),
-		EventingClient: eventingclient.Get(ctx),
-		Env:            configs,
+		BrokerLister:    brokerInformer.Lister(),
+		ConfigMapLister: configmapInformer.Lister(),
+		EventingClient:  eventingclient.Get(ctx),
+		Env:             configs,
 	}
 
 	impl := triggerreconciler.NewImpl(ctx, reconciler, func(impl *controller.Impl) controller.Options {
diff --git a/control-plane/pkg/reconciler/trigger/namespaced_trigger.go b/control-plane/pkg/reconciler/trigger/namespaced_trigger.go
index b995090ad..369a6afa1 100644
--- a/control-plane/pkg/reconciler/trigger/namespaced_trigger.go
+++ b/control-plane/pkg/reconciler/trigger/namespaced_trigger.go
@@ -19,6 +19,7 @@ package trigger
 import (
 	"context"
 
+	corelisters "k8s.io/client-go/listers/core/v1"
 	"knative.dev/pkg/reconciler"
 	"knative.dev/pkg/resolver"
 
@@ -35,11 +36,16 @@ type NamespacedReconciler struct {
 	*base.Reconciler
 	*FlagsHolder
 
-	BrokerLister   eventinglisters.BrokerLister
-	EventingClient eventingclientset.Interface
-	Resolver       *resolver.URIResolver
+	BrokerLister    eventinglisters.BrokerLister
+	ConfigMapLister corelisters.ConfigMapLister
+	EventingClient  eventingclientset.Interface
+	Resolver        *resolver.URIResolver
 
 	Env *config.Env
+
+	NewKafkaClusterAdminClient kafka.NewClusterAdminClientFunc
+	NewKafkaClient             kafka.NewClientFunc
+	InitOffsetsFunc            kafka.InitOffsetsFunc
 }
 
 func (r *NamespacedReconciler) ReconcileKind(ctx context.Context, trigger *eventing.Trigger) reconciler.Event {
@@ -57,13 +63,14 @@ func (r *NamespacedReconciler) FinalizeKind(ctx context.Context, trigger *eventi
 func (r *NamespacedReconciler) createReconcilerForTriggerInstance(trigger *eventing.Trigger) *Reconciler {
 	return &Reconciler{
 		Reconciler: &base.Reconciler{
-			KubeClient:             r.Reconciler.KubeClient,
-			PodLister:              r.Reconciler.PodLister,
-			SecretLister:           r.Reconciler.SecretLister,
-			DataPlaneConfigMapName: r.Reconciler.DataPlaneConfigMapName,
-			DataPlaneConfigFormat:  r.Reconciler.DataPlaneConfigFormat,
-			DispatcherLabel:        r.DispatcherLabel,
-			ReceiverLabel:          r.ReceiverLabel,
+			KubeClient:                   r.Reconciler.KubeClient,
+			PodLister:                    r.Reconciler.PodLister,
+			SecretLister:                 r.Reconciler.SecretLister,
+			ContractConfigMapName:        r.Reconciler.ContractConfigMapName,
+			ContractConfigMapFormat:      r.Reconciler.ContractConfigMapFormat,
+			DataPlaneConfigConfigMapName: r.DataPlaneConfigConfigMapName,
+			DispatcherLabel:              r.DispatcherLabel,
+			ReceiverLabel:                r.ReceiverLabel,
 
 			// override
 			DataPlaneNamespace:          trigger.Namespace,
@@ -72,13 +79,16 @@ func (r *NamespacedReconciler) createReconcilerForTriggerInstance(trigger *event
 		FlagsHolder: &FlagsHolder{
 			Flags: r.Flags,
 		},
-		BrokerLister:   r.BrokerLister,
-		EventingClient: r.EventingClient,
-		Env:            r.Env,
-		Resolver:       r.Resolver,
-
+		BrokerLister:    r.BrokerLister,
+		ConfigMapLister: r.ConfigMapLister,
+		EventingClient:  r.EventingClient,
+		Resolver:        r.Resolver,
+		Env:             r.Env,
 		// override
-		BrokerClass:               kafka.NamespacedBrokerClass,
-		DataPlaneConfigMapLabeler: kafka.NamespacedDataplaneLabelConfigmapOption,
+		BrokerClass:                kafka.NamespacedBrokerClass,
+		DataPlaneConfigMapLabeler:  kafka.NamespacedDataplaneLabelConfigmapOption,
+		NewKafkaClusterAdminClient: r.NewKafkaClusterAdminClient,
+		NewKafkaClient:             r.NewKafkaClient,
+		InitOffsetsFunc:            r.InitOffsetsFunc,
 	}
 }
diff --git a/control-plane/pkg/reconciler/trigger/trigger.go b/control-plane/pkg/reconciler/trigger/trigger.go
index 45c32e2f9..98d0d4378 100644
--- a/control-plane/pkg/reconciler/trigger/trigger.go
+++ b/control-plane/pkg/reconciler/trigger/trigger.go
@@ -25,6 +25,7 @@ import (
 	"go.uber.org/zap"
 	apierrors "k8s.io/apimachinery/pkg/api/errors"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	corelisters "k8s.io/client-go/listers/core/v1"
 	"k8s.io/client-go/util/retry"
 	"knative.dev/pkg/controller"
 	"knative.dev/pkg/reconciler"
@@ -39,8 +40,11 @@ import (
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/config"
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/contract"
 	coreconfig "knative.dev/eventing-kafka-broker/control-plane/pkg/core/config"
+	"knative.dev/eventing-kafka-broker/control-plane/pkg/kafka"
 	kafkalogging "knative.dev/eventing-kafka-broker/control-plane/pkg/logging"
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/base"
+	brokerreconciler "knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/broker"
+	"knative.dev/eventing-kafka-broker/control-plane/pkg/security"
 )
 
 const (
@@ -56,15 +60,27 @@ type Reconciler struct {
 	*base.Reconciler
 	*FlagsHolder
 
-	BrokerLister   eventinglisters.BrokerLister
-	EventingClient eventingclientset.Interface
-	Resolver       *resolver.URIResolver
+	BrokerLister    eventinglisters.BrokerLister
+	ConfigMapLister corelisters.ConfigMapLister
+	EventingClient  eventingclientset.Interface
+	Resolver        *resolver.URIResolver
 
 	Env *config.Env
 
 	BrokerClass string
 
 	DataPlaneConfigMapLabeler base.ConfigMapOption
+
+	// NewKafkaClusterAdminClient creates new sarama ClusterAdmin. It's convenient to add this as Reconciler field so that we can
+	// mock the function used during the reconciliation loop.
+	NewKafkaClusterAdminClient kafka.NewClusterAdminClientFunc
+	// NewKafkaClient creates new sarama Client. It's convenient to add this as Reconciler field so that we can
+	// mock the function used during the reconciliation loop.
+	NewKafkaClient kafka.NewClientFunc
+	// InitOffsetsFunc initialize offsets for a provided set of topics and a provided consumer group id.
+	// It's convenient to add this as Reconciler field so that we can mock the function used during the
+	// reconciliation loop.
+	InitOffsetsFunc kafka.InitOffsetsFunc
 }
 
 func (r *Reconciler) ReconcileKind(ctx context.Context, trigger *eventing.Trigger) reconciler.Event {
@@ -122,6 +138,12 @@ func (r *Reconciler) reconcileKind(ctx context.Context, trigger *eventing.Trigge
 		return nil
 	}
 
+	if ok, err := r.reconcileInitialOffset(ctx, broker, trigger); err != nil {
+		return statusConditionManager.failedToResolveTriggerConfig(err)
+	} else if !ok {
+		return statusConditionManager.failedToResolveTriggerConfig(fmt.Errorf("missing broker status annotations, waiting"))
+	}
+
 	// Get data plane config map.
 	contractConfigMap, err := r.GetOrCreateDataPlaneConfigMap(ctx)
 	if err != nil {
@@ -352,6 +374,76 @@ func (r *Reconciler) hasRelevantBrokerClass(broker *eventing.Broker) (bool, stri
 	return brokerClass == r.BrokerClass, brokerClass
 }
 
+func (r *Reconciler) reconcileInitialOffset(ctx context.Context, broker *eventing.Broker, trigger *eventing.Trigger) (bool, error) {
+	isLatest, err := kafka.IsOffsetLatest(r.ConfigMapLister, r.DataPlaneConfigMapNamespace, r.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey)
+	if err != nil {
+		return false, err
+	}
+	if isLatest {
+		return r.reconcileLatestInitialOffset(ctx, broker, trigger)
+	}
+	return true, nil
+}
+
+func (r *Reconciler) reconcileLatestInitialOffset(ctx context.Context, broker *eventing.Broker, trigger *eventing.Trigger) (bool, error) {
+	// Existing Brokers might not yet have this annotation
+	topicName, ok := broker.Status.Annotations[kafka.TopicAnnotation]
+	if !ok {
+		return false, nil
+	}
+	groupID := string(trigger.UID)
+
+	namespace := broker.GetNamespace()
+	if broker.Spec.Config.Namespace != "" {
+		namespace = broker.Spec.Config.Namespace
+	}
+
+	secret, err := security.Secret(ctx, &security.AnnotationsSecretLocator{Annotations: broker.Status.Annotations, Namespace: namespace}, r.SecretProviderFunc())
+	if err != nil {
+		return false, fmt.Errorf("failed to get secret: %w", err)
+	}
+	if err := r.TrackSecret(secret, broker); err != nil {
+		return false, fmt.Errorf("failed to track secret: %w", err)
+	}
+
+	bootstrapServers, ok := broker.Status.Annotations[kafka.BootstrapServersConfigMapKey]
+	if !ok {
+		return false, nil
+	}
+	bootstrapServersArr := kafka.BootstrapServersArray(bootstrapServers)
+
+	saramaConfig, err := kafka.GetSaramaConfig(security.NewSaramaSecurityOptionFromSecret(secret))
+	if err != nil {
+		return false, fmt.Errorf("failed to get sarama config: %w", err)
+	}
+
+	kafkaClient, err := r.NewKafkaClient(bootstrapServersArr, saramaConfig)
+	if err != nil {
+		return false, fmt.Errorf("cannot obtain Kafka client, %w", err)
+	}
+	defer kafkaClient.Close()
+
+	kafkaClusterAdmin, err := r.NewKafkaClusterAdminClient(bootstrapServersArr, saramaConfig)
+	if err != nil {
+		return false, fmt.Errorf("cannot obtain Kafka cluster admin, %w", err)
+	}
+	defer kafkaClusterAdmin.Close()
+
+	isPresentAndValid, err := kafka.AreTopicsPresentAndValid(kafkaClusterAdmin, topicName)
+	if err != nil {
+		return false, fmt.Errorf("topic %s doesn't exist or is invalid: %w", topicName, err)
+	}
+	if !isPresentAndValid {
+		return false, fmt.Errorf("topic %s is invalid", topicName)
+	}
+
+	if _, err := r.InitOffsetsFunc(ctx, kafkaClient, kafkaClusterAdmin, []string{topicName}, groupID); err != nil {
+		return false, fmt.Errorf("failed to initialize initial offsets: %w", err)
+	}
+
+	return true, nil
+}
+
 func deliveryOrderFromString(val string) (contract.DeliveryOrder, error) {
 	switch strings.ToLower(val) {
 	case string(internals.Ordered):
diff --git a/control-plane/pkg/reconciler/trigger/v2/controllerv2.go b/control-plane/pkg/reconciler/trigger/v2/controllerv2.go
index 6d1194b0d..b4ed114dc 100644
--- a/control-plane/pkg/reconciler/trigger/v2/controllerv2.go
+++ b/control-plane/pkg/reconciler/trigger/v2/controllerv2.go
@@ -22,6 +22,7 @@ import (
 	"go.uber.org/zap"
 	"k8s.io/apimachinery/pkg/labels"
 	"k8s.io/client-go/tools/cache"
+	configmapinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/configmap"
 	"knative.dev/pkg/controller"
 	"knative.dev/pkg/logging"
 
@@ -58,6 +59,7 @@ func NewController(ctx context.Context, configs *config.Env) *controller.Impl {
 
 	reconciler := &Reconciler{
 		BrokerLister:        brokerInformer.Lister(),
+		ConfigMapLister:     configmapinformer.Get(ctx).Lister(),
 		EventingClient:      eventingclient.Get(ctx),
 		Env:                 configs,
 		ConsumerGroupLister: consumerGroupInformer.Lister(),
diff --git a/control-plane/pkg/reconciler/trigger/v2/triggerv2.go b/control-plane/pkg/reconciler/trigger/v2/triggerv2.go
index c2a95da3c..5ed1d53e3 100644
--- a/control-plane/pkg/reconciler/trigger/v2/triggerv2.go
+++ b/control-plane/pkg/reconciler/trigger/v2/triggerv2.go
@@ -25,6 +25,8 @@ import (
 	"k8s.io/apimachinery/pkg/api/equality"
 	apierrors "k8s.io/apimachinery/pkg/api/errors"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	corelisters "k8s.io/client-go/listers/core/v1"
+	sources "knative.dev/eventing-kafka/pkg/apis/sources/v1beta1"
 	eventingduck "knative.dev/eventing/pkg/apis/duck/v1"
 	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 	eventingclientset "knative.dev/eventing/pkg/client/clientset/versioned"
@@ -47,6 +49,7 @@ const (
 
 type Reconciler struct {
 	BrokerLister        eventinglisters.BrokerLister
+	ConfigMapLister     corelisters.ConfigMapLister
 	EventingClient      eventingclientset.Interface
 	Env                 *config.Env
 	ConsumerGroupLister internalslst.ConsumerGroupLister
@@ -106,6 +109,15 @@ func (r Reconciler) reconcileConsumerGroup(ctx context.Context, broker *eventing
 		}
 	}
 
+	offset := sources.OffsetLatest
+	isLatestOffset, err := kafka.IsOffsetLatest(r.ConfigMapLister, r.Env.DataPlaneConfigMapNamespace, r.Env.ContractConfigMapName, "config-kafka-broker-consumer.properties")
+	if err != nil {
+		return nil, fmt.Errorf("failed to determine initial offset: %w", err)
+	}
+	if !isLatestOffset {
+		offset = sources.OffsetEarliest
+	}
+
 	newcg := &internalscg.ConsumerGroup{
 		ObjectMeta: metav1.ObjectMeta{
 			Name:      string(trigger.UID),
@@ -128,8 +140,9 @@ func (r Reconciler) reconcileConsumerGroup(ctx context.Context, broker *eventing
 					Topics:  []string{},                                                                               //todo get topics from broker resource
 					Configs: internalscg.ConsumerConfigs{Configs: map[string]string{"group.id": string(trigger.UID)}}, //todo get bootstrap.servers from broker resource
 					Delivery: &internalscg.DeliverySpec{
-						DeliverySpec: deliverySpec(broker, trigger),
-						Ordering:     deliveryOrdering,
+						DeliverySpec:  deliverySpec(broker, trigger),
+						Ordering:      deliveryOrdering,
+						InitialOffset: offset,
 					},
 					Filters: &internalscg.Filters{
 						Filter:  trigger.Spec.Filter,
diff --git a/control-plane/pkg/security/config.go b/control-plane/pkg/security/config.go
index 0c76404d5..ca6a9f7db 100644
--- a/control-plane/pkg/security/config.go
+++ b/control-plane/pkg/security/config.go
@@ -124,3 +124,21 @@ func (cmp *MTConfigMapSecretLocator) SecretNamespace() (string, bool) {
 
 	return cmp.Namespace, true
 }
+
+type AnnotationsSecretLocator struct {
+	Annotations map[string]string
+	Namespace   string
+}
+
+func (a *AnnotationsSecretLocator) SecretName() (string, bool) {
+	v, ok := a.Annotations[AuthSecretNameKey]
+	if ok && v != "" {
+		return v, ok
+	}
+	return "", false
+}
+
+func (a *AnnotationsSecretLocator) SecretNamespace() (string, bool) {
+	name, ok := a.SecretName()
+	return a.Namespace, len(a.Namespace) > 0 && ok && len(name) > 0
+}
diff --git a/data-plane/config/broker/100-config-kafka-broker-data-plane.yaml b/data-plane/config/broker/100-config-kafka-broker-data-plane.yaml
index f3cbd9989..d036a71a8 100644
--- a/data-plane/config/broker/100-config-kafka-broker-data-plane.yaml
+++ b/data-plane/config/broker/100-config-kafka-broker-data-plane.yaml
@@ -123,7 +123,7 @@ data:
     # ssl.truststore.location=
     # ssl.truststore.password=
     allow.auto.create.topics=true
-    auto.offset.reset=earliest
+    auto.offset.reset=latest
     client.dns.lookup=use_all_dns_ips
     connections.max.idle.ms=540000
     default.api.timeout.ms=2000
diff --git a/go.mod b/go.mod
index 9a59d7542..3430bd4e7 100644
--- a/go.mod
+++ b/go.mod
@@ -39,6 +39,7 @@ require (
 require (
 	github.com/hashicorp/errwrap v1.1.0
 	github.com/hashicorp/golang-lru v0.5.4
+	github.com/magiconair/properties v1.8.5
 	knative.dev/eventing v0.34.1
 )
 
diff --git a/go.sum b/go.sum
index b8577a2ef..ff52990b6 100644
--- a/go.sum
+++ b/go.sum
@@ -637,6 +637,7 @@ github.com/lightstep/tracecontext.go v0.0.0-20181129014701-1757c391b1ac/go.mod h
 github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
 github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
 github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
+github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls=
 github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
 github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
diff --git a/third_party/VENDOR-LICENSE/github.com/magiconair/properties/LICENSE.md b/third_party/VENDOR-LICENSE/github.com/magiconair/properties/LICENSE.md
new file mode 100644
index 000000000..79c87e3e6
--- /dev/null
+++ b/third_party/VENDOR-LICENSE/github.com/magiconair/properties/LICENSE.md
@@ -0,0 +1,24 @@
+Copyright (c) 2013-2020, Frank Schroeder
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/github.com/magiconair/properties/.gitignore b/vendor/github.com/magiconair/properties/.gitignore
new file mode 100644
index 000000000..e7081ff52
--- /dev/null
+++ b/vendor/github.com/magiconair/properties/.gitignore
@@ -0,0 +1,6 @@
+*.sublime-project
+*.sublime-workspace
+*.un~
+*.swp
+.idea/
+*.iml
diff --git a/vendor/github.com/magiconair/properties/.travis.yml b/vendor/github.com/magiconair/properties/.travis.yml
new file mode 100644
index 000000000..baf9031df
--- /dev/null
+++ b/vendor/github.com/magiconair/properties/.travis.yml
@@ -0,0 +1,17 @@
+language: go
+go:
+    - 1.3.x
+    - 1.4.x
+    - 1.5.x
+    - 1.6.x
+    - 1.7.x
+    - 1.8.x
+    - 1.9.x
+    - "1.10.x"
+    - "1.11.x"
+    - "1.12.x"
+    - "1.13.x"
+    - "1.14.x"
+    - "1.15.x"
+    - "1.16.x"
+    - tip
diff --git a/vendor/github.com/magiconair/properties/CHANGELOG.md b/vendor/github.com/magiconair/properties/CHANGELOG.md
new file mode 100644
index 000000000..ff8d02535
--- /dev/null
+++ b/vendor/github.com/magiconair/properties/CHANGELOG.md
@@ -0,0 +1,160 @@
+## Changelog
+
+### [1.8.2](https://github.com/magiconair/properties/tree/v1.8.2) - 25 Aug 2020
+
+ * [PR #36](https://github.com/magiconair/properties/pull/36): Escape backslash on write
+
+   This patch ensures that backslashes are escaped on write. Existing applications which
+   rely on the old behavior may need to be updated.
+
+   Thanks to [@apesternikov](https://github.com/apesternikov) for the patch.
+
+ * [PR #42](https://github.com/magiconair/properties/pull/42): Made Content-Type check whitespace agnostic in LoadURL()
+
+   Thanks to [@aliras1](https://github.com/aliras1) for the patch.
+
+ * [PR #41](https://github.com/magiconair/properties/pull/41): Make key/value separator configurable on Write()
+
+   Thanks to [@mkjor](https://github.com/mkjor) for the patch.
+
+ * [PR #40](https://github.com/magiconair/properties/pull/40): Add method to return a sorted list of keys
+
+   Thanks to [@mkjor](https://github.com/mkjor) for the patch.
+
+### [1.8.1](https://github.com/magiconair/properties/tree/v1.8.1) - 10 May 2019
+
+ * [PR #35](https://github.com/magiconair/properties/pull/35): Close body always after request
+
+   This patch ensures that in `LoadURL` the response body is always closed.
+
+   Thanks to [@liubog2008](https://github.com/liubog2008) for the patch.
+
+### [1.8](https://github.com/magiconair/properties/tree/v1.8) - 15 May 2018
+
+ * [PR #26](https://github.com/magiconair/properties/pull/26): Disable expansion during loading
+
+   This adds the option to disable property expansion during loading.
+
+   Thanks to [@kmala](https://github.com/kmala) for the patch.
+
+### [1.7.6](https://github.com/magiconair/properties/tree/v1.7.6) - 14 Feb 2018
+
+ * [PR #29](https://github.com/magiconair/properties/pull/29): Reworked expansion logic to handle more complex cases.
+
+   See PR for an example.
+
+   Thanks to [@yobert](https://github.com/yobert) for the fix.
+
+### [1.7.5](https://github.com/magiconair/properties/tree/v1.7.5) - 13 Feb 2018
+
+ * [PR #28](https://github.com/magiconair/properties/pull/28): Support duplicate expansions in the same value
+
+   Values which expand the same key multiple times (e.g. `key=${a} ${a}`) will no longer fail
+   with a `circular reference error`.
+
+   Thanks to [@yobert](https://github.com/yobert) for the fix.
+
+### [1.7.4](https://github.com/magiconair/properties/tree/v1.7.4) - 31 Oct 2017
+
+ * [Issue #23](https://github.com/magiconair/properties/issues/23): Ignore blank lines with whitespaces
+
+ * [PR #24](https://github.com/magiconair/properties/pull/24): Update keys when DisableExpansion is enabled
+
+   Thanks to [@mgurov](https://github.com/mgurov) for the fix.
+
+### [1.7.3](https://github.com/magiconair/properties/tree/v1.7.3) - 10 Jul 2017
+
+ * [Issue #17](https://github.com/magiconair/properties/issues/17): Add [SetValue()](http://godoc.org/github.com/magiconair/properties#Properties.SetValue) method to set values generically
+ * [Issue #22](https://github.com/magiconair/properties/issues/22): Add [LoadMap()](http://godoc.org/github.com/magiconair/properties#LoadMap) function to load properties from a string map
+
+### [1.7.2](https://github.com/magiconair/properties/tree/v1.7.2) - 20 Mar 2017
+
+ * [Issue #15](https://github.com/magiconair/properties/issues/15): Drop gocheck dependency
+ * [PR #21](https://github.com/magiconair/properties/pull/21): Add [Map()](http://godoc.org/github.com/magiconair/properties#Properties.Map) and [FilterFunc()](http://godoc.org/github.com/magiconair/properties#Properties.FilterFunc)
+
+### [1.7.1](https://github.com/magiconair/properties/tree/v1.7.1) - 13 Jan 2017
+
+ * [Issue #14](https://github.com/magiconair/properties/issues/14): Decouple TestLoadExpandedFile from `$USER`
+ * [PR #12](https://github.com/magiconair/properties/pull/12): Load from files and URLs
+ * [PR #16](https://github.com/magiconair/properties/pull/16): Keep gofmt happy
+ * [PR #18](https://github.com/magiconair/properties/pull/18): Fix Delete() function
+
+### [1.7.0](https://github.com/magiconair/properties/tree/v1.7.0) - 20 Mar 2016
+
+ * [Issue #10](https://github.com/magiconair/properties/issues/10): Add [LoadURL,LoadURLs,MustLoadURL,MustLoadURLs](http://godoc.org/github.com/magiconair/properties#LoadURL) method to load properties from a URL.
+ * [Issue #11](https://github.com/magiconair/properties/issues/11): Add [LoadString,MustLoadString](http://godoc.org/github.com/magiconair/properties#LoadString) method to load properties from an UTF8 string.
+ * [PR #8](https://github.com/magiconair/properties/pull/8): Add [MustFlag](http://godoc.org/github.com/magiconair/properties#Properties.MustFlag) method to provide overrides via command line flags. (@pascaldekloe)
+
+### [1.6.0](https://github.com/magiconair/properties/tree/v1.6.0) - 11 Dec 2015
+
+ * Add [Decode](http://godoc.org/github.com/magiconair/properties#Properties.Decode) method to populate struct from properties via tags.
+
+### [1.5.6](https://github.com/magiconair/properties/tree/v1.5.6) - 18 Oct 2015
+
+ * Vendored in gopkg.in/check.v1
+
+### [1.5.5](https://github.com/magiconair/properties/tree/v1.5.5) - 31 Jul 2015
+
+ * [PR #6](https://github.com/magiconair/properties/pull/6): Add [Delete](http://godoc.org/github.com/magiconair/properties#Properties.Delete) method to remove keys including comments. (@gerbenjacobs)
+
+### [1.5.4](https://github.com/magiconair/properties/tree/v1.5.4) - 23 Jun 2015
+
+ * [Issue #5](https://github.com/magiconair/properties/issues/5): Allow disabling of property expansion [DisableExpansion](http://godoc.org/github.com/magiconair/properties#Properties.DisableExpansion). When property expansion is disabled Properties become a simple key/value store and don't check for circular references.
+
+### [1.5.3](https://github.com/magiconair/properties/tree/v1.5.3) - 02 Jun 2015
+
+ * [Issue #4](https://github.com/magiconair/properties/issues/4): Maintain key order in [Filter()](http://godoc.org/github.com/magiconair/properties#Properties.Filter), [FilterPrefix()](http://godoc.org/github.com/magiconair/properties#Properties.FilterPrefix) and [FilterRegexp()](http://godoc.org/github.com/magiconair/properties#Properties.FilterRegexp)
+
+### [1.5.2](https://github.com/magiconair/properties/tree/v1.5.2) - 10 Apr 2015
+
+ * [Issue #3](https://github.com/magiconair/properties/issues/3): Don't print comments in [WriteComment()](http://godoc.org/github.com/magiconair/properties#Properties.WriteComment) if they are all empty
+ * Add clickable links to README
+
+### [1.5.1](https://github.com/magiconair/properties/tree/v1.5.1) - 08 Dec 2014
+
+ * Added [GetParsedDuration()](http://godoc.org/github.com/magiconair/properties#Properties.GetParsedDuration) and [MustGetParsedDuration()](http://godoc.org/github.com/magiconair/properties#Properties.MustGetParsedDuration) for values specified compatible with
+   [time.ParseDuration()](http://golang.org/pkg/time/#ParseDuration).
+
+### [1.5.0](https://github.com/magiconair/properties/tree/v1.5.0) - 18 Nov 2014
+
+ * Added support for single and multi-line comments (reading, writing and updating)
+ * The order of keys is now preserved
+ * Calling [Set()](http://godoc.org/github.com/magiconair/properties#Properties.Set) with an empty key now silently ignores the call and does not create a new entry
+ * Added a [MustSet()](http://godoc.org/github.com/magiconair/properties#Properties.MustSet) method
+ * Migrated test library from launchpad.net/gocheck to [gopkg.in/check.v1](http://gopkg.in/check.v1)
+
+### [1.4.2](https://github.com/magiconair/properties/tree/v1.4.2) - 15 Nov 2014
+
+ * [Issue #2](https://github.com/magiconair/properties/issues/2): Fixed goroutine leak in parser which created two lexers but cleaned up only one
+
+### [1.4.1](https://github.com/magiconair/properties/tree/v1.4.1) - 13 Nov 2014
+
+ * [Issue #1](https://github.com/magiconair/properties/issues/1): Fixed bug in Keys() method which returned an empty string
+
+### [1.4.0](https://github.com/magiconair/properties/tree/v1.4.0) - 23 Sep 2014
+
+ * Added [Keys()](http://godoc.org/github.com/magiconair/properties#Properties.Keys) to get the keys
+ * Added [Filter()](http://godoc.org/github.com/magiconair/properties#Properties.Filter), [FilterRegexp()](http://godoc.org/github.com/magiconair/properties#Properties.FilterRegexp) and [FilterPrefix()](http://godoc.org/github.com/magiconair/properties#Properties.FilterPrefix) to get a subset of the properties
+
+### [1.3.0](https://github.com/magiconair/properties/tree/v1.3.0) - 18 Mar 2014
+
+* Added support for time.Duration
+* Made MustXXX() failure beha[ior configurable (log.Fatal, panic](https://github.com/magiconair/properties/tree/vior configurable (log.Fatal, panic) - custom)
+* Changed default of MustXXX() failure from panic to log.Fatal
+
+### [1.2.0](https://github.com/magiconair/properties/tree/v1.2.0) - 05 Mar 2014
+
+* Added MustGet... functions
+* Added support for int and uint with range checks on 32 bit platforms
+
+### [1.1.0](https://github.com/magiconair/properties/tree/v1.1.0) - 20 Jan 2014
+
+* Renamed from goproperties to properties
+* Added support for expansion of environment vars in
+  filenames and value expressions
+* Fixed bug where value expressions were not at the
+  start of the string
+
+### [1.0.0](https://github.com/magiconair/properties/tree/v1.0.0) - 7 Jan 2014
+
+* Initial release
diff --git a/vendor/github.com/magiconair/properties/LICENSE.md b/vendor/github.com/magiconair/properties/LICENSE.md
new file mode 100644
index 000000000..79c87e3e6
--- /dev/null
+++ b/vendor/github.com/magiconair/properties/LICENSE.md
@@ -0,0 +1,24 @@
+Copyright (c) 2013-2020, Frank Schroeder
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/github.com/magiconair/properties/README.md b/vendor/github.com/magiconair/properties/README.md
new file mode 100644
index 000000000..e2edda025
--- /dev/null
+++ b/vendor/github.com/magiconair/properties/README.md
@@ -0,0 +1,128 @@
+[![](https://img.shields.io/github/tag/magiconair/properties.svg?style=flat-square&label=release)](https://github.com/magiconair/properties/releases)
+[![Travis CI Status](https://img.shields.io/travis/magiconair/properties.svg?branch=master&style=flat-square&label=travis)](https://travis-ci.org/magiconair/properties)
+[![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg?style=flat-square)](https://raw.githubusercontent.com/magiconair/properties/master/LICENSE)
+[![GoDoc](http://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square)](http://godoc.org/github.com/magiconair/properties)
+
+# Overview
+
+#### Please run `git pull --tags` to update the tags. See [below](#updated-git-tags) why.
+
+properties is a Go library for reading and writing properties files.
+
+It supports reading from multiple files or URLs and Spring style recursive
+property expansion of expressions like `${key}` to their corresponding value.
+Value expressions can refer to other keys like in `${key}` or to environment
+variables like in `${USER}`.  Filenames can also contain environment variables
+like in `/home/${USER}/myapp.properties`.
+
+Properties can be decoded into structs, maps, arrays and values through
+struct tags.
+
+Comments and the order of keys are preserved. Comments can be modified
+and can be written to the output.
+
+The properties library supports both ISO-8859-1 and UTF-8 encoded data.
+
+Starting from version 1.3.0 the behavior of the MustXXX() functions is
+configurable by providing a custom `ErrorHandler` function. The default has
+changed from `panic` to `log.Fatal` but this is configurable and custom
+error handling functions can be provided. See the package documentation for
+details.
+
+Read the full documentation on [![GoDoc](http://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square)](http://godoc.org/github.com/magiconair/properties)
+
+## Getting Started
+
+```go
+import (
+	"flag"
+	"github.com/magiconair/properties"
+)
+
+func main() {
+	// init from a file
+	p := properties.MustLoadFile("${HOME}/config.properties", properties.UTF8)
+
+	// or multiple files
+	p = properties.MustLoadFiles([]string{
+			"${HOME}/config.properties",
+			"${HOME}/config-${USER}.properties",
+		}, properties.UTF8, true)
+
+	// or from a map
+	p = properties.LoadMap(map[string]string{"key": "value", "abc": "def"})
+
+	// or from a string
+	p = properties.MustLoadString("key=value\nabc=def")
+
+	// or from a URL
+	p = properties.MustLoadURL("http://host/path")
+
+	// or from multiple URLs
+	p = properties.MustLoadURL([]string{
+			"http://host/config",
+			"http://host/config-${USER}",
+		}, true)
+
+	// or from flags
+	p.MustFlag(flag.CommandLine)
+
+	// get values through getters
+	host := p.MustGetString("host")
+	port := p.GetInt("port", 8080)
+
+	// or through Decode
+	type Config struct {
+		Host    string        `properties:"host"`
+		Port    int           `properties:"port,default=9000"`
+		Accept  []string      `properties:"accept,default=image/png;image;gif"`
+		Timeout time.Duration `properties:"timeout,default=5s"`
+	}
+	var cfg Config
+	if err := p.Decode(&cfg); err != nil {
+		log.Fatal(err)
+	}
+}
+
+```
+
+## Installation and Upgrade
+
+```
+$ go get -u github.com/magiconair/properties
+```
+
+## License
+
+2 clause BSD license. See [LICENSE](https://github.com/magiconair/properties/blob/master/LICENSE) file for details.
+
+## ToDo
+
+* Dump contents with passwords and secrets obscured
+
+## Updated Git tags
+
+#### 13 Feb 2018
+
+I realized that all of the git tags I had pushed before v1.7.5 were lightweight tags
+and I've only recently learned that this doesn't play well with `git describe` 😞
+
+I have replaced all lightweight tags with signed tags using this script which should
+retain the commit date, name and email address. Please run `git pull --tags` to update them.
+
+Worst case you have to reclone the repo.
+
+```shell
+#!/bin/bash
+tag=$1
+echo "Updating $tag"
+date=$(git show ${tag}^0 --format=%aD | head -1)
+email=$(git show ${tag}^0 --format=%aE | head -1)
+name=$(git show ${tag}^0 --format=%aN | head -1)
+GIT_COMMITTER_DATE="$date" GIT_COMMITTER_NAME="$name" GIT_COMMITTER_EMAIL="$email" git tag -s -f ${tag} ${tag}^0 -m ${tag}
+```
+
+I apologize for the inconvenience.
+
+Frank
+
diff --git a/vendor/github.com/magiconair/properties/decode.go b/vendor/github.com/magiconair/properties/decode.go
new file mode 100644
index 000000000..3ebf8049c
--- /dev/null
+++ b/vendor/github.com/magiconair/properties/decode.go
@@ -0,0 +1,289 @@
+// Copyright 2018 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package properties
+
+import (
+	"fmt"
+	"reflect"
+	"strconv"
+	"strings"
+	"time"
+)
+
+// Decode assigns property values to exported fields of a struct.
+//
+// Decode traverses v recursively and returns an error if a value cannot be
+// converted to the field type or a required value is missing for a field.
+//
+// The following type dependent decodings are used:
+//
+// String, boolean, numeric fields have the value of the property key assigned.
+// The property key name is the name of the field. A different key and a default
+// value can be set in the field's tag. Fields without default value are
+// required. If the value cannot be converted to the field type an error is
+// returned.
+//
+// time.Duration fields have the result of time.ParseDuration() assigned.
+//
+// time.Time fields have the vaule of time.Parse() assigned. The default layout
+// is time.RFC3339 but can be set in the field's tag.
+//
+// Arrays and slices of string, boolean, numeric, time.Duration and time.Time
+// fields have the value interpreted as a comma separated list of values. The
+// individual values are trimmed of whitespace and empty values are ignored. A
+// default value can be provided as a semicolon separated list in the field's
+// tag.
+//
+// Struct fields are decoded recursively using the field name plus "." as
+// prefix. The prefix (without dot) can be overridden in the field's tag.
+// Default values are not supported in the field's tag. Specify them on the
+// fields of the inner struct instead.
+//
+// Map fields must have a key of type string and are decoded recursively by
+// using the field's name plus ".' as prefix and the next element of the key
+// name as map key. The prefix (without dot) can be overridden in the field's
+// tag. Default values are not supported.
+//
+// Examples:
+//
+//     // Field is ignored.
+//     Field int `properties:"-"`
+//
+//     // Field is assigned value of 'Field'.
+//     Field int
+//
+//     // Field is assigned value of 'myName'.
+//     Field int `properties:"myName"`
+//
+//     // Field is assigned value of key 'myName' and has a default
+//     // value 15 if the key does not exist.
+//     Field int `properties:"myName,default=15"`
+//
+//     // Field is assigned value of key 'Field' and has a default
+//     // value 15 if the key does not exist.
+//     Field int `properties:",default=15"`
+//
+//     // Field is assigned value of key 'date' and the date
+//     // is in format 2006-01-02
+//     Field time.Time `properties:"date,layout=2006-01-02"`
+//
+//     // Field is assigned the non-empty and whitespace trimmed
+//     // values of key 'Field' split by commas.
+//     Field []string
+//
+//     // Field is assigned the non-empty and whitespace trimmed
+//     // values of key 'Field' split by commas and has a default
+//     // value ["a", "b", "c"] if the key does not exist.
+//     Field []string `properties:",default=a;b;c"`
+//
+//     // Field is decoded recursively with "Field." as key prefix.
+//     Field SomeStruct
+//
+//     // Field is decoded recursively with "myName." as key prefix.
+//     Field SomeStruct `properties:"myName"`
+//
+//     // Field is decoded recursively with "Field." as key prefix
+//     // and the next dotted element of the key as map key.
+//     Field map[string]string
+//
+//     // Field is decoded recursively with "myName." as key prefix
+//     // and the next dotted element of the key as map key.
+//     Field map[string]string `properties:"myName"`
+func (p *Properties) Decode(x interface{}) error {
+	t, v := reflect.TypeOf(x), reflect.ValueOf(x)
+	if t.Kind() != reflect.Ptr || v.Elem().Type().Kind() != reflect.Struct {
+		return fmt.Errorf("not a pointer to struct: %s", t)
+	}
+	if err := dec(p, "", nil, nil, v); err != nil {
+		return err
+	}
+	return nil
+}
+
+func dec(p *Properties, key string, def *string, opts map[string]string, v reflect.Value) error {
+	t := v.Type()
+
+	// value returns the property value for key or the default if provided.
+	value := func() (string, error) {
+		if val, ok := p.Get(key); ok {
+			return val, nil
+		}
+		if def != nil {
+			return *def, nil
+		}
+		return "", fmt.Errorf("missing required key %s", key)
+	}
+
+	// conv converts a string to a value of the given type.
+	conv := func(s string, t reflect.Type) (val reflect.Value, err error) {
+		var v interface{}
+
+		switch {
+		case isDuration(t):
+			v, err = time.ParseDuration(s)
+
+		case isTime(t):
+			layout := opts["layout"]
+			if layout == "" {
+				layout = time.RFC3339
+			}
+			v, err = time.Parse(layout, s)
+
+		case isBool(t):
+			v, err = boolVal(s), nil
+
+		case isString(t):
+			v, err = s, nil
+
+		case isFloat(t):
+			v, err = strconv.ParseFloat(s, 64)
+
+		case isInt(t):
+			v, err = strconv.ParseInt(s, 10, 64)
+
+		case isUint(t):
+			v, err = strconv.ParseUint(s, 10, 64)
+
+		default:
+			return reflect.Zero(t), fmt.Errorf("unsupported type %s", t)
+		}
+		if err != nil {
+			return reflect.Zero(t), err
+		}
+		return reflect.ValueOf(v).Convert(t), nil
+	}
+
+	// keydef returns the property key and the default value based on the
+	// name of the struct field and the options in the tag.
+	keydef := func(f reflect.StructField) (string, *string, map[string]string) {
+		_key, _opts := parseTag(f.Tag.Get("properties"))
+
+		var _def *string
+		if d, ok := _opts["default"]; ok {
+			_def = &d
+		}
+		if _key != "" {
+			return _key, _def, _opts
+		}
+		return f.Name, _def, _opts
+	}
+
+	switch {
+	case isDuration(t) || isTime(t) || isBool(t) || isString(t) || isFloat(t) || isInt(t) || isUint(t):
+		s, err := value()
+		if err != nil {
+			return err
+		}
+		val, err := conv(s, t)
+		if err != nil {
+			return err
+		}
+		v.Set(val)
+
+	case isPtr(t):
+		return dec(p, key, def, opts, v.Elem())
+
+	case isStruct(t):
+		for i := 0; i < v.NumField(); i++ {
+			fv := v.Field(i)
+			fk, def, opts := keydef(t.Field(i))
+			if !fv.CanSet() {
+				return fmt.Errorf("cannot set %s", t.Field(i).Name)
+			}
+			if fk == "-" {
+				continue
+			}
+			if key != "" {
+				fk = key + "." + fk
+			}
+			if err := dec(p, fk, def, opts, fv); err != nil {
+				return err
+			}
+		}
+		return nil
+
+	case isArray(t):
+		val, err := value()
+		if err != nil {
+			return err
+		}
+		vals := split(val, ";")
+		a := reflect.MakeSlice(t, 0, len(vals))
+		for _, s := range vals {
+			val, err := conv(s, t.Elem())
+			if err != nil {
+				return err
+			}
+			a = reflect.Append(a, val)
+		}
+		v.Set(a)
+
+	case isMap(t):
+		valT := t.Elem()
+		m := reflect.MakeMap(t)
+		for postfix := range p.FilterStripPrefix(key + ".").m {
+			pp := strings.SplitN(postfix, ".", 2)
+			mk, mv := pp[0], reflect.New(valT)
+			if err := dec(p, key+"."+mk, nil, nil, mv); err != nil {
+				return err
+			}
+			m.SetMapIndex(reflect.ValueOf(mk), mv.Elem())
+		}
+		v.Set(m)
+
+	default:
+		return fmt.Errorf("unsupported type %s", t)
+	}
+	return nil
+}
+
+// split splits a string on sep, trims whitespace of elements
+// and omits empty elements
+func split(s string, sep string) []string {
+	var a []string
+	for _, v := range strings.Split(s, sep) {
+		if v = strings.TrimSpace(v); v != "" {
+			a = append(a, v)
+		}
+	}
+	return a
+}
+
+// parseTag parses a "key,k=v,k=v,..."
+func parseTag(tag string) (key string, opts map[string]string) {
+	opts = map[string]string{}
+	for i, s := range strings.Split(tag, ",") {
+		if i == 0 {
+			key = s
+			continue
+		}
+
+		pp := strings.SplitN(s, "=", 2)
+		if len(pp) == 1 {
+			opts[pp[0]] = ""
+		} else {
+			opts[pp[0]] = pp[1]
+		}
+	}
+	return key, opts
+}
+
+func isArray(t reflect.Type) bool    { return t.Kind() == reflect.Array || t.Kind() == reflect.Slice }
+func isBool(t reflect.Type) bool     { return t.Kind() == reflect.Bool }
+func isDuration(t reflect.Type) bool { return t == reflect.TypeOf(time.Second) }
+func isMap(t reflect.Type) bool      { return t.Kind() == reflect.Map }
+func isPtr(t reflect.Type) bool      { return t.Kind() == reflect.Ptr }
+func isString(t reflect.Type) bool   { return t.Kind() == reflect.String }
+func isStruct(t reflect.Type) bool   { return t.Kind() == reflect.Struct }
+func isTime(t reflect.Type) bool     { return t == reflect.TypeOf(time.Time{}) }
+func isFloat(t reflect.Type) bool {
+	return t.Kind() == reflect.Float32 || t.Kind() == reflect.Float64
+}
+func isInt(t reflect.Type) bool {
+	return t.Kind() == reflect.Int || t.Kind() == reflect.Int8 || t.Kind() == reflect.Int16 || t.Kind() == reflect.Int32 || t.Kind() == reflect.Int64
+}
+func isUint(t reflect.Type) bool {
+	return t.Kind() == reflect.Uint || t.Kind() == reflect.Uint8 || t.Kind() == reflect.Uint16 || t.Kind() == reflect.Uint32 || t.Kind() == reflect.Uint64
+}
diff --git a/vendor/github.com/magiconair/properties/doc.go b/vendor/github.com/magiconair/properties/doc.go
new file mode 100644
index 000000000..f8822da2b
--- /dev/null
+++ b/vendor/github.com/magiconair/properties/doc.go
@@ -0,0 +1,156 @@
+// Copyright 2018 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package properties provides functions for reading and writing
+// ISO-8859-1 and UTF-8 encoded .properties files and has
+// support for recursive property expansion.
+//
+// Java properties files are ISO-8859-1 encoded and use Unicode
+// literals for characters outside the ISO character set. Unicode
+// literals can be used in UTF-8 encoded properties files but
+// aren't necessary.
+//
+// To load a single properties file use MustLoadFile():
+//
+//   p := properties.MustLoadFile(filename, properties.UTF8)
+//
+// To load multiple properties files use MustLoadFiles()
+// which loads the files in the given order and merges the
+// result. Missing properties files can be ignored if the
+// 'ignoreMissing' flag is set to true.
+//
+// Filenames can contain environment variables which are expanded
+// before loading.
+//
+//   f1 := "/etc/myapp/myapp.conf"
+//   f2 := "/home/${USER}/myapp.conf"
+//   p := MustLoadFiles([]string{f1, f2}, properties.UTF8, true)
+//
+// All of the different key/value delimiters ' ', ':' and '=' are
+// supported as well as the comment characters '!' and '#' and
+// multi-line values.
+//
+//   ! this is a comment
+//   # and so is this
+//
+//   # the following expressions are equal
+//   key value
+//   key=value
+//   key:value
+//   key = value
+//   key : value
+//   key = val\
+//         ue
+//
+// Properties stores all comments preceding a key and provides
+// GetComments() and SetComments() methods to retrieve and
+// update them. The convenience functions GetComment() and
+// SetComment() allow access to the last comment. The
+// WriteComment() method writes properties files including
+// the comments and with the keys in the original order.
+// This can be used for sanitizing properties files.
+//
+// Property expansion is recursive and circular references
+// and malformed expressions are not allowed and cause an
+// error. Expansion of environment variables is supported.
+//
+//   # standard property
+//   key = value
+//
+//   # property expansion: key2 = value
+//   key2 = ${key}
+//
+//   # recursive expansion: key3 = value
+//   key3 = ${key2}
+//
+//   # circular reference (error)
+//   key = ${key}
+//
+//   # malformed expression (error)
+//   key = ${ke
+//
+//   # refers to the users' home dir
+//   home = ${HOME}
+//
+//   # local key takes precedence over env var: u = foo
+//   USER = foo
+//   u = ${USER}
+//
+// The default property expansion format is ${key} but can be
+// changed by setting different pre- and postfix values on the
+// Properties object.
+//
+//   p := properties.NewProperties()
+//   p.Prefix = "#["
+//   p.Postfix = "]#"
+//
+// Properties provides convenience functions for getting typed
+// values with default values if the key does not exist or the
+// type conversion failed.
+//
+//   # Returns true if the value is either "1", "on", "yes" or "true"
+//   # Returns false for every other value and the default value if
+//   # the key does not exist.
+//   v = p.GetBool("key", false)
+//
+//   # Returns the value if the key exists and the format conversion
+//   # was successful. Otherwise, the default value is returned.
+//   v = p.GetInt64("key", 999)
+//   v = p.GetUint64("key", 999)
+//   v = p.GetFloat64("key", 123.0)
+//   v = p.GetString("key", "def")
+//   v = p.GetDuration("key", 999)
+//
+// As an alternative properties may be applied with the standard
+// library's flag implementation at any time.
+//
+//   # Standard configuration
+//   v = flag.Int("key", 999, "help message")
+//   flag.Parse()
+//
+//   # Merge p into the flag set
+//   p.MustFlag(flag.CommandLine)
+//
+// Properties provides several MustXXX() convenience functions
+// which will terminate the app if an error occurs. The behavior
+// of the failure is configurable and the default is to call
+// log.Fatal(err). To have the MustXXX() functions panic instead
+// of logging the error set a different ErrorHandler before
+// you use the Properties package.
+//
+//   properties.ErrorHandler = properties.PanicHandler
+//
+//   # Will panic instead of logging an error
+//   p := properties.MustLoadFile("config.properties")
+//
+// You can also provide your own ErrorHandler function. The only requirement
+// is that the error handler function must exit after handling the error.
+//
+//   properties.ErrorHandler = func(err error) {
+//	     fmt.Println(err)
+//       os.Exit(1)
+//   }
+//
+//   # Will write to stdout and then exit
+//   p := properties.MustLoadFile("config.properties")
+//
+// Properties can also be loaded into a struct via the `Decode`
+// method, e.g.
+//
+//   type S struct {
+//       A string        `properties:"a,default=foo"`
+//       D time.Duration `properties:"timeout,default=5s"`
+//       E time.Time     `properties:"expires,layout=2006-01-02,default=2015-01-01"`
+//   }
+//
+// See `Decode()` method for the full documentation.
+//
+// The following documents provide a description of the properties
+// file format.
+//
+// http://en.wikipedia.org/wiki/.properties
+//
+// http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load%28java.io.Reader%29
+//
+package properties
diff --git a/vendor/github.com/magiconair/properties/integrate.go b/vendor/github.com/magiconair/properties/integrate.go
new file mode 100644
index 000000000..74d38dc67
--- /dev/null
+++ b/vendor/github.com/magiconair/properties/integrate.go
@@ -0,0 +1,34 @@
+// Copyright 2018 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package properties
+
+import "flag"
+
+// MustFlag sets flags that are skipped by dst.Parse when p contains
+// the respective key for flag.Flag.Name.
+//
+// It's use is recommended with command line arguments as in:
+// 	flag.Parse()
+// 	p.MustFlag(flag.CommandLine)
+func (p *Properties) MustFlag(dst *flag.FlagSet) {
+	m := make(map[string]*flag.Flag)
+	dst.VisitAll(func(f *flag.Flag) {
+		m[f.Name] = f
+	})
+	dst.Visit(func(f *flag.Flag) {
+		delete(m, f.Name) // overridden
+	})
+
+	for name, f := range m {
+		v, ok := p.Get(name)
+		if !ok {
+			continue
+		}
+
+		if err := f.Value.Set(v); err != nil {
+			ErrorHandler(err)
+		}
+	}
+}
diff --git a/vendor/github.com/magiconair/properties/lex.go b/vendor/github.com/magiconair/properties/lex.go
new file mode 100644
index 000000000..367166d58
--- /dev/null
+++ b/vendor/github.com/magiconair/properties/lex.go
@@ -0,0 +1,407 @@
+// Copyright 2018 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+//
+// Parts of the lexer are from the template/text/parser package
+// For these parts the following applies:
+//
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file of the go 1.2
+// distribution.
+
+package properties
+
+import (
+	"fmt"
+	"strconv"
+	"strings"
+	"unicode/utf8"
+)
+
+// item represents a token or text string returned from the scanner.
+type item struct {
+	typ itemType // The type of this item.
+	pos int      // The starting position, in bytes, of this item in the input string.
+	val string   // The value of this item.
+}
+
+func (i item) String() string {
+	switch {
+	case i.typ == itemEOF:
+		return "EOF"
+	case i.typ == itemError:
+		return i.val
+	case len(i.val) > 10:
+		return fmt.Sprintf("%.10q...", i.val)
+	}
+	return fmt.Sprintf("%q", i.val)
+}
+
+// itemType identifies the type of lex items.
+type itemType int
+
+const (
+	itemError itemType = iota // error occurred; value is text of error
+	itemEOF
+	itemKey     // a key
+	itemValue   // a value
+	itemComment // a comment
+)
+
+// defines a constant for EOF
+const eof = -1
+
+// permitted whitespace characters space, FF and TAB
+const whitespace = " \f\t"
+
+// stateFn represents the state of the scanner as a function that returns the next state.
+type stateFn func(*lexer) stateFn
+
+// lexer holds the state of the scanner.
+type lexer struct {
+	input   string    // the string being scanned
+	state   stateFn   // the next lexing function to enter
+	pos     int       // current position in the input
+	start   int       // start position of this item
+	width   int       // width of last rune read from input
+	lastPos int       // position of most recent item returned by nextItem
+	runes   []rune    // scanned runes for this item
+	items   chan item // channel of scanned items
+}
+
+// next returns the next rune in the input.
+func (l *lexer) next() rune {
+	if l.pos >= len(l.input) {
+		l.width = 0
+		return eof
+	}
+	r, w := utf8.DecodeRuneInString(l.input[l.pos:])
+	l.width = w
+	l.pos += l.width
+	return r
+}
+
+// peek returns but does not consume the next rune in the input.
+func (l *lexer) peek() rune {
+	r := l.next()
+	l.backup()
+	return r
+}
+
+// backup steps back one rune. Can only be called once per call of next.
+func (l *lexer) backup() {
+	l.pos -= l.width
+}
+
+// emit passes an item back to the client.
+func (l *lexer) emit(t itemType) {
+	i := item{t, l.start, string(l.runes)}
+	l.items <- i
+	l.start = l.pos
+	l.runes = l.runes[:0]
+}
+
+// ignore skips over the pending input before this point.
+func (l *lexer) ignore() {
+	l.start = l.pos
+}
+
+// appends the rune to the current value
+func (l *lexer) appendRune(r rune) {
+	l.runes = append(l.runes, r)
+}
+
+// accept consumes the next rune if it's from the valid set.
+func (l *lexer) accept(valid string) bool {
+	if strings.ContainsRune(valid, l.next()) {
+		return true
+	}
+	l.backup()
+	return false
+}
+
+// acceptRun consumes a run of runes from the valid set.
+func (l *lexer) acceptRun(valid string) {
+	for strings.ContainsRune(valid, l.next()) {
+	}
+	l.backup()
+}
+
+// acceptRunUntil consumes a run of runes up to a terminator.
+func (l *lexer) acceptRunUntil(term rune) {
+	for term != l.next() {
+	}
+	l.backup()
+}
+
+// hasText returns true if the current parsed text is not empty.
+func (l *lexer) isNotEmpty() bool {
+	return l.pos > l.start
+}
+
+// lineNumber reports which line we're on, based on the position of
+// the previous item returned by nextItem. Doing it this way
+// means we don't have to worry about peek double counting.
+func (l *lexer) lineNumber() int {
+	return 1 + strings.Count(l.input[:l.lastPos], "\n")
+}
+
+// errorf returns an error token and terminates the scan by passing
+// back a nil pointer that will be the next state, terminating l.nextItem.
+func (l *lexer) errorf(format string, args ...interface{}) stateFn {
+	l.items <- item{itemError, l.start, fmt.Sprintf(format, args...)}
+	return nil
+}
+
+// nextItem returns the next item from the input.
+func (l *lexer) nextItem() item {
+	i := <-l.items
+	l.lastPos = i.pos
+	return i
+}
+
+// lex creates a new scanner for the input string.
+func lex(input string) *lexer {
+	l := &lexer{
+		input: input,
+		items: make(chan item),
+		runes: make([]rune, 0, 32),
+	}
+	go l.run()
+	return l
+}
+
+// run runs the state machine for the lexer.
+func (l *lexer) run() {
+	for l.state = lexBeforeKey(l); l.state != nil; {
+		l.state = l.state(l)
+	}
+}
+
+// state functions
+
+// lexBeforeKey scans until a key begins.
+func lexBeforeKey(l *lexer) stateFn {
+	switch r := l.next(); {
+	case isEOF(r):
+		l.emit(itemEOF)
+		return nil
+
+	case isEOL(r):
+		l.ignore()
+		return lexBeforeKey
+
+	case isComment(r):
+		return lexComment
+
+	case isWhitespace(r):
+		l.ignore()
+		return lexBeforeKey
+
+	default:
+		l.backup()
+		return lexKey
+	}
+}
+
+// lexComment scans a comment line. The comment character has already been scanned.
+func lexComment(l *lexer) stateFn {
+	l.acceptRun(whitespace)
+	l.ignore()
+	for {
+		switch r := l.next(); {
+		case isEOF(r):
+			l.ignore()
+			l.emit(itemEOF)
+			return nil
+		case isEOL(r):
+			l.emit(itemComment)
+			return lexBeforeKey
+		default:
+			l.appendRune(r)
+		}
+	}
+}
+
+// lexKey scans the key up to a delimiter
+func lexKey(l *lexer) stateFn {
+	var r rune
+
+Loop:
+	for {
+		switch r = l.next(); {
+
+		case isEscape(r):
+			err := l.scanEscapeSequence()
+			if err != nil {
+				return l.errorf(err.Error())
+			}
+
+		case isEndOfKey(r):
+			l.backup()
+			break Loop
+
+		case isEOF(r):
+			break Loop
+
+		default:
+			l.appendRune(r)
+		}
+	}
+
+	if len(l.runes) > 0 {
+		l.emit(itemKey)
+	}
+
+	if isEOF(r) {
+		l.emit(itemEOF)
+		return nil
+	}
+
+	return lexBeforeValue
+}
+
+// lexBeforeValue scans the delimiter between key and value.
+// Leading and trailing whitespace is ignored.
+// We expect to be just after the key.
+func lexBeforeValue(l *lexer) stateFn {
+	l.acceptRun(whitespace)
+	l.accept(":=")
+	l.acceptRun(whitespace)
+	l.ignore()
+	return lexValue
+}
+
+// lexValue scans text until the end of the line. We expect to be just after the delimiter.
+func lexValue(l *lexer) stateFn {
+	for {
+		switch r := l.next(); {
+		case isEscape(r):
+			if isEOL(l.peek()) {
+				l.next()
+				l.acceptRun(whitespace)
+			} else {
+				err := l.scanEscapeSequence()
+				if err != nil {
+					return l.errorf(err.Error())
+				}
+			}
+
+		case isEOL(r):
+			l.emit(itemValue)
+			l.ignore()
+			return lexBeforeKey
+
+		case isEOF(r):
+			l.emit(itemValue)
+			l.emit(itemEOF)
+			return nil
+
+		default:
+			l.appendRune(r)
+		}
+	}
+}
+
+// scanEscapeSequence scans either one of the escaped characters
+// or a unicode literal. We expect to be after the escape character.
+func (l *lexer) scanEscapeSequence() error {
+	switch r := l.next(); {
+
+	case isEscapedCharacter(r):
+		l.appendRune(decodeEscapedCharacter(r))
+		return nil
+
+	case atUnicodeLiteral(r):
+		return l.scanUnicodeLiteral()
+
+	case isEOF(r):
+		return fmt.Errorf("premature EOF")
+
+	// silently drop the escape character and append the rune as is
+	default:
+		l.appendRune(r)
+		return nil
+	}
+}
+
+// scans a unicode literal in the form \uXXXX. We expect to be after the \u.
+func (l *lexer) scanUnicodeLiteral() error {
+	// scan the digits
+	d := make([]rune, 4)
+	for i := 0; i < 4; i++ {
+		d[i] = l.next()
+		if d[i] == eof || !strings.ContainsRune("0123456789abcdefABCDEF", d[i]) {
+			return fmt.Errorf("invalid unicode literal")
+		}
+	}
+
+	// decode the digits into a rune
+	r, err := strconv.ParseInt(string(d), 16, 0)
+	if err != nil {
+		return err
+	}
+
+	l.appendRune(rune(r))
+	return nil
+}
+
+// decodeEscapedCharacter returns the unescaped rune. We expect to be after the escape character.
+func decodeEscapedCharacter(r rune) rune {
+	switch r {
+	case 'f':
+		return '\f'
+	case 'n':
+		return '\n'
+	case 'r':
+		return '\r'
+	case 't':
+		return '\t'
+	default:
+		return r
+	}
+}
+
+// atUnicodeLiteral reports whether we are at a unicode literal.
+// The escape character has already been consumed.
+func atUnicodeLiteral(r rune) bool {
+	return r == 'u'
+}
+
+// isComment reports whether we are at the start of a comment.
+func isComment(r rune) bool {
+	return r == '#' || r == '!'
+}
+
+// isEndOfKey reports whether the rune terminates the current key.
+func isEndOfKey(r rune) bool {
+	return strings.ContainsRune(" \f\t\r\n:=", r)
+}
+
+// isEOF reports whether we are at EOF.
+func isEOF(r rune) bool {
+	return r == eof
+}
+
+// isEOL reports whether we are at a new line character.
+func isEOL(r rune) bool {
+	return r == '\n' || r == '\r'
+}
+
+// isEscape reports whether the rune is the escape character which
+// prefixes unicode literals and other escaped characters.
+func isEscape(r rune) bool {
+	return r == '\\'
+}
+
+// isEscapedCharacter reports whether we are at one of the characters that need escaping.
+// The escape character has already been consumed.
+func isEscapedCharacter(r rune) bool {
+	return strings.ContainsRune(" :=fnrt", r)
+}
+
+// isWhitespace reports whether the rune is a whitespace character.
+func isWhitespace(r rune) bool {
+	return strings.ContainsRune(whitespace, r)
+}
diff --git a/vendor/github.com/magiconair/properties/load.go b/vendor/github.com/magiconair/properties/load.go
new file mode 100644
index 000000000..c83c2dadd
--- /dev/null
+++ b/vendor/github.com/magiconair/properties/load.go
@@ -0,0 +1,293 @@
+// Copyright 2018 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package properties
+
+import (
+	"fmt"
+	"io/ioutil"
+	"net/http"
+	"os"
+	"strings"
+)
+
+// Encoding specifies encoding of the input data.
+type Encoding uint
+
+const (
+	// utf8Default is a private placeholder for the zero value of Encoding to
+	// ensure that it has the correct meaning. UTF8 is the default encoding but
+	// was assigned a non-zero value which cannot be changed without breaking
+	// existing code. Clients should continue to use the public constants.
+	utf8Default Encoding = iota
+
+	// UTF8 interprets the input data as UTF-8.
+	UTF8
+
+	// ISO_8859_1 interprets the input data as ISO-8859-1.
+	ISO_8859_1
+)
+
+type Loader struct {
+	// Encoding determines how the data from files and byte buffers
+	// is interpreted. For URLs the Content-Type header is used
+	// to determine the encoding of the data.
+	Encoding Encoding
+
+	// DisableExpansion configures the property expansion of the
+	// returned property object. When set to true, the property values
+	// will not be expanded and the Property object will not be checked
+	// for invalid expansion expressions.
+	DisableExpansion bool
+
+	// IgnoreMissing configures whether missing files or URLs which return
+	// 404 are reported as errors. When set to true, missing files and 404
+	// status codes are not reported as errors.
+	IgnoreMissing bool
+}
+
+// Load reads a buffer into a Properties struct.
+func (l *Loader) LoadBytes(buf []byte) (*Properties, error) {
+	return l.loadBytes(buf, l.Encoding)
+}
+
+// LoadAll reads the content of multiple URLs or files in the given order into
+// a Properties struct. If IgnoreMissing is true then a 404 status code or
+// missing file will not be reported as error. Encoding sets the encoding for
+// files. For the URLs see LoadURL for the Content-Type header and the
+// encoding.
+func (l *Loader) LoadAll(names []string) (*Properties, error) {
+	all := NewProperties()
+	for _, name := range names {
+		n, err := expandName(name)
+		if err != nil {
+			return nil, err
+		}
+
+		var p *Properties
+		switch {
+		case strings.HasPrefix(n, "http://"):
+			p, err = l.LoadURL(n)
+		case strings.HasPrefix(n, "https://"):
+			p, err = l.LoadURL(n)
+		default:
+			p, err = l.LoadFile(n)
+		}
+		if err != nil {
+			return nil, err
+		}
+		all.Merge(p)
+	}
+
+	all.DisableExpansion = l.DisableExpansion
+	if all.DisableExpansion {
+		return all, nil
+	}
+	return all, all.check()
+}
+
+// LoadFile reads a file into a Properties struct.
+// If IgnoreMissing is true then a missing file will not be
+// reported as error.
+func (l *Loader) LoadFile(filename string) (*Properties, error) {
+	data, err := ioutil.ReadFile(filename)
+	if err != nil {
+		if l.IgnoreMissing && os.IsNotExist(err) {
+			LogPrintf("properties: %s not found. skipping", filename)
+			return NewProperties(), nil
+		}
+		return nil, err
+	}
+	return l.loadBytes(data, l.Encoding)
+}
+
+// LoadURL reads the content of the URL into a Properties struct.
+//
+// The encoding is determined via the Content-Type header which
+// should be set to 'text/plain'. If the 'charset' parameter is
+// missing, 'iso-8859-1' or 'latin1' the encoding is set to
+// ISO-8859-1. If the 'charset' parameter is set to 'utf-8' the
+// encoding is set to UTF-8. A missing content type header is
+// interpreted as 'text/plain; charset=utf-8'.
+func (l *Loader) LoadURL(url string) (*Properties, error) {
+	resp, err := http.Get(url)
+	if err != nil {
+		return nil, fmt.Errorf("properties: error fetching %q. %s", url, err)
+	}
+	defer resp.Body.Close()
+
+	if resp.StatusCode == 404 && l.IgnoreMissing {
+		LogPrintf("properties: %s returned %d. skipping", url, resp.StatusCode)
+		return NewProperties(), nil
+	}
+
+	if resp.StatusCode != 200 {
+		return nil, fmt.Errorf("properties: %s returned %d", url, resp.StatusCode)
+	}
+
+	body, err := ioutil.ReadAll(resp.Body)
+	if err != nil {
+		return nil, fmt.Errorf("properties: %s error reading response. %s", url, err)
+	}
+
+	ct := resp.Header.Get("Content-Type")
+	ct = strings.Join(strings.Fields(ct), "")
+	var enc Encoding
+	switch strings.ToLower(ct) {
+	case "text/plain", "text/plain;charset=iso-8859-1", "text/plain;charset=latin1":
+		enc = ISO_8859_1
+	case "", "text/plain;charset=utf-8":
+		enc = UTF8
+	default:
+		return nil, fmt.Errorf("properties: invalid content type %s", ct)
+	}
+
+	return l.loadBytes(body, enc)
+}
+
+func (l *Loader) loadBytes(buf []byte, enc Encoding) (*Properties, error) {
+	p, err := parse(convert(buf, enc))
+	if err != nil {
+		return nil, err
+	}
+	p.DisableExpansion = l.DisableExpansion
+	if p.DisableExpansion {
+		return p, nil
+	}
+	return p, p.check()
+}
+
+// Load reads a buffer into a Properties struct.
+func Load(buf []byte, enc Encoding) (*Properties, error) {
+	l := &Loader{Encoding: enc}
+	return l.LoadBytes(buf)
+}
+
+// LoadString reads an UTF8 string into a properties struct.
+func LoadString(s string) (*Properties, error) {
+	l := &Loader{Encoding: UTF8}
+	return l.LoadBytes([]byte(s))
+}
+
+// LoadMap creates a new Properties struct from a string map.
+func LoadMap(m map[string]string) *Properties {
+	p := NewProperties()
+	for k, v := range m {
+		p.Set(k, v)
+	}
+	return p
+}
+
+// LoadFile reads a file into a Properties struct.
+func LoadFile(filename string, enc Encoding) (*Properties, error) {
+	l := &Loader{Encoding: enc}
+	return l.LoadAll([]string{filename})
+}
+
+// LoadFiles reads multiple files in the given order into
+// a Properties struct. If 'ignoreMissing' is true then
+// non-existent files will not be reported as error.
+func LoadFiles(filenames []string, enc Encoding, ignoreMissing bool) (*Properties, error) {
+	l := &Loader{Encoding: enc, IgnoreMissing: ignoreMissing}
+	return l.LoadAll(filenames)
+}
+
+// LoadURL reads the content of the URL into a Properties struct.
+// See Loader#LoadURL for details.
+func LoadURL(url string) (*Properties, error) {
+	l := &Loader{Encoding: UTF8}
+	return l.LoadAll([]string{url})
+}
+
+// LoadURLs reads the content of multiple URLs in the given order into a
+// Properties struct. If IgnoreMissing is true then a 404 status code will
+// not be reported as error. See Loader#LoadURL for the Content-Type header
+// and the encoding.
+func LoadURLs(urls []string, ignoreMissing bool) (*Properties, error) {
+	l := &Loader{Encoding: UTF8, IgnoreMissing: ignoreMissing}
+	return l.LoadAll(urls)
+}
+
+// LoadAll reads the content of multiple URLs or files in the given order into a
+// Properties struct. If 'ignoreMissing' is true then a 404 status code or missing file will
+// not be reported as error. Encoding sets the encoding for files. For the URLs please see
+// LoadURL for the Content-Type header and the encoding.
+func LoadAll(names []string, enc Encoding, ignoreMissing bool) (*Properties, error) {
+	l := &Loader{Encoding: enc, IgnoreMissing: ignoreMissing}
+	return l.LoadAll(names)
+}
+
+// MustLoadString reads an UTF8 string into a Properties struct and
+// panics on error.
+func MustLoadString(s string) *Properties {
+	return must(LoadString(s))
+}
+
+// MustLoadFile reads a file into a Properties struct and
+// panics on error.
+func MustLoadFile(filename string, enc Encoding) *Properties {
+	return must(LoadFile(filename, enc))
+}
+
+// MustLoadFiles reads multiple files in the given order into
+// a Properties struct and panics on error. If 'ignoreMissing'
+// is true then non-existent files will not be reported as error.
+func MustLoadFiles(filenames []string, enc Encoding, ignoreMissing bool) *Properties {
+	return must(LoadFiles(filenames, enc, ignoreMissing))
+}
+
+// MustLoadURL reads the content of a URL into a Properties struct and
+// panics on error.
+func MustLoadURL(url string) *Properties {
+	return must(LoadURL(url))
+}
+
+// MustLoadURLs reads the content of multiple URLs in the given order into a
+// Properties struct and panics on error. If 'ignoreMissing' is true then a 404
+// status code will not be reported as error.
+func MustLoadURLs(urls []string, ignoreMissing bool) *Properties {
+	return must(LoadURLs(urls, ignoreMissing))
+}
+
+// MustLoadAll reads the content of multiple URLs or files in the given order into a
+// Properties struct. If 'ignoreMissing' is true then a 404 status code or missing file will
+// not be reported as error. Encoding sets the encoding for files. For the URLs please see
+// LoadURL for the Content-Type header and the encoding. It panics on error.
+func MustLoadAll(names []string, enc Encoding, ignoreMissing bool) *Properties {
+	return must(LoadAll(names, enc, ignoreMissing))
+}
+
+func must(p *Properties, err error) *Properties {
+	if err != nil {
+		ErrorHandler(err)
+	}
+	return p
+}
+
+// expandName expands ${ENV_VAR} expressions in a name.
+// If the environment variable does not exist then it will be replaced
+// with an empty string. Malformed expressions like "${ENV_VAR" will
+// be reported as error.
+func expandName(name string) (string, error) {
+	return expand(name, []string{}, "${", "}", make(map[string]string))
+}
+
+// Interprets a byte buffer either as an ISO-8859-1 or UTF-8 encoded string.
+// For ISO-8859-1 we can convert each byte straight into a rune since the
+// first 256 unicode code points cover ISO-8859-1.
+func convert(buf []byte, enc Encoding) string {
+	switch enc {
+	case utf8Default, UTF8:
+		return string(buf)
+	case ISO_8859_1:
+		runes := make([]rune, len(buf))
+		for i, b := range buf {
+			runes[i] = rune(b)
+		}
+		return string(runes)
+	default:
+		ErrorHandler(fmt.Errorf("unsupported encoding %v", enc))
+	}
+	panic("ErrorHandler should exit")
+}
diff --git a/vendor/github.com/magiconair/properties/parser.go b/vendor/github.com/magiconair/properties/parser.go
new file mode 100644
index 000000000..cdc4a8034
--- /dev/null
+++ b/vendor/github.com/magiconair/properties/parser.go
@@ -0,0 +1,95 @@
+// Copyright 2018 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package properties
+
+import (
+	"fmt"
+	"runtime"
+)
+
+type parser struct {
+	lex *lexer
+}
+
+func parse(input string) (properties *Properties, err error) {
+	p := &parser{lex: lex(input)}
+	defer p.recover(&err)
+
+	properties = NewProperties()
+	key := ""
+	comments := []string{}
+
+	for {
+		token := p.expectOneOf(itemComment, itemKey, itemEOF)
+		switch token.typ {
+		case itemEOF:
+			goto done
+		case itemComment:
+			comments = append(comments, token.val)
+			continue
+		case itemKey:
+			key = token.val
+			if _, ok := properties.m[key]; !ok {
+				properties.k = append(properties.k, key)
+			}
+		}
+
+		token = p.expectOneOf(itemValue, itemEOF)
+		if len(comments) > 0 {
+			properties.c[key] = comments
+			comments = []string{}
+		}
+		switch token.typ {
+		case itemEOF:
+			properties.m[key] = ""
+			goto done
+		case itemValue:
+			properties.m[key] = token.val
+		}
+	}
+
+done:
+	return properties, nil
+}
+
+func (p *parser) errorf(format string, args ...interface{}) {
+	format = fmt.Sprintf("properties: Line %d: %s", p.lex.lineNumber(), format)
+	panic(fmt.Errorf(format, args...))
+}
+
+func (p *parser) expect(expected itemType) (token item) {
+	token = p.lex.nextItem()
+	if token.typ != expected {
+		p.unexpected(token)
+	}
+	return token
+}
+
+func (p *parser) expectOneOf(expected ...itemType) (token item) {
+	token = p.lex.nextItem()
+	for _, v := range expected {
+		if token.typ == v {
+			return token
+		}
+	}
+	p.unexpected(token)
+	panic("unexpected token")
+}
+
+func (p *parser) unexpected(token item) {
+	p.errorf(token.String())
+}
+
+// recover is the handler that turns panics into returns from the top level of Parse.
+func (p *parser) recover(errp *error) {
+	e := recover()
+	if e != nil {
+		if _, ok := e.(runtime.Error); ok {
+			panic(e)
+		}
+		*errp = e.(error)
+	}
+	return
+}
diff --git a/vendor/github.com/magiconair/properties/properties.go b/vendor/github.com/magiconair/properties/properties.go
new file mode 100644
index 000000000..1529e7223
--- /dev/null
+++ b/vendor/github.com/magiconair/properties/properties.go
@@ -0,0 +1,854 @@
+// Copyright 2018 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package properties
+
+// BUG(frank): Set() does not check for invalid unicode literals since this is currently handled by the lexer.
+// BUG(frank): Write() does not allow to configure the newline character. Therefore, on Windows LF is used.
+
+import (
+	"bytes"
+	"fmt"
+	"io"
+	"log"
+	"os"
+	"regexp"
+	"sort"
+	"strconv"
+	"strings"
+	"time"
+	"unicode/utf8"
+)
+
+const maxExpansionDepth = 64
+
+// ErrorHandlerFunc defines the type of function which handles failures
+// of the MustXXX() functions. An error handler function must exit
+// the application after handling the error.
+type ErrorHandlerFunc func(error)
+
+// ErrorHandler is the function which handles failures of the MustXXX()
+// functions. The default is LogFatalHandler.
+var ErrorHandler ErrorHandlerFunc = LogFatalHandler
+
+// LogHandlerFunc defines the function prototype for logging errors.
+type LogHandlerFunc func(fmt string, args ...interface{})
+
+// LogPrintf defines a log handler which uses log.Printf.
+var LogPrintf LogHandlerFunc = log.Printf
+
+// LogFatalHandler handles the error by logging a fatal error and exiting.
+func LogFatalHandler(err error) {
+	log.Fatal(err)
+}
+
+// PanicHandler handles the error by panicking.
+func PanicHandler(err error) {
+	panic(err)
+}
+
+// -----------------------------------------------------------------------------
+
+// A Properties contains the key/value pairs from the properties input.
+// All values are stored in unexpanded form and are expanded at runtime
+type Properties struct {
+	// Pre-/Postfix for property expansion.
+	Prefix  string
+	Postfix string
+
+	// DisableExpansion controls the expansion of properties on Get()
+	// and the check for circular references on Set(). When set to
+	// true Properties behaves like a simple key/value store and does
+	// not check for circular references on Get() or on Set().
+	DisableExpansion bool
+
+	// Stores the key/value pairs
+	m map[string]string
+
+	// Stores the comments per key.
+	c map[string][]string
+
+	// Stores the keys in order of appearance.
+	k []string
+
+	// WriteSeparator specifies the separator of key and value while writing the properties.
+	WriteSeparator string
+}
+
+// NewProperties creates a new Properties struct with the default
+// configuration for "${key}" expressions.
+func NewProperties() *Properties {
+	return &Properties{
+		Prefix:  "${",
+		Postfix: "}",
+		m:       map[string]string{},
+		c:       map[string][]string{},
+		k:       []string{},
+	}
+}
+
+// Load reads a buffer into the given Properties struct.
+func (p *Properties) Load(buf []byte, enc Encoding) error {
+	l := &Loader{Encoding: enc, DisableExpansion: p.DisableExpansion}
+	newProperties, err := l.LoadBytes(buf)
+	if err != nil {
+		return err
+	}
+	p.Merge(newProperties)
+	return nil
+}
+
+// Get returns the expanded value for the given key if exists.
+// Otherwise, ok is false.
+func (p *Properties) Get(key string) (value string, ok bool) {
+	v, ok := p.m[key]
+	if p.DisableExpansion {
+		return v, ok
+	}
+	if !ok {
+		return "", false
+	}
+
+	expanded, err := p.expand(key, v)
+
+	// we guarantee that the expanded value is free of
+	// circular references and malformed expressions
+	// so we panic if we still get an error here.
+	if err != nil {
+		ErrorHandler(err)
+	}
+
+	return expanded, true
+}
+
+// MustGet returns the expanded value for the given key if exists.
+// Otherwise, it panics.
+func (p *Properties) MustGet(key string) string {
+	if v, ok := p.Get(key); ok {
+		return v
+	}
+	ErrorHandler(invalidKeyError(key))
+	panic("ErrorHandler should exit")
+}
+
+// ----------------------------------------------------------------------------
+
+// ClearComments removes the comments for all keys.
+func (p *Properties) ClearComments() {
+	p.c = map[string][]string{}
+}
+
+// ----------------------------------------------------------------------------
+
+// GetComment returns the last comment before the given key or an empty string.
+func (p *Properties) GetComment(key string) string {
+	comments, ok := p.c[key]
+	if !ok || len(comments) == 0 {
+		return ""
+	}
+	return comments[len(comments)-1]
+}
+
+// ----------------------------------------------------------------------------
+
+// GetComments returns all comments that appeared before the given key or nil.
+func (p *Properties) GetComments(key string) []string {
+	if comments, ok := p.c[key]; ok {
+		return comments
+	}
+	return nil
+}
+
+// ----------------------------------------------------------------------------
+
+// SetComment sets the comment for the key.
+func (p *Properties) SetComment(key, comment string) {
+	p.c[key] = []string{comment}
+}
+
+// ----------------------------------------------------------------------------
+
+// SetComments sets the comments for the key. If the comments are nil then
+// all comments for this key are deleted.
+func (p *Properties) SetComments(key string, comments []string) {
+	if comments == nil {
+		delete(p.c, key)
+		return
+	}
+	p.c[key] = comments
+}
+
+// ----------------------------------------------------------------------------
+
+// GetBool checks if the expanded value is one of '1', 'yes',
+// 'true' or 'on' if the key exists. The comparison is case-insensitive.
+// If the key does not exist the default value is returned.
+func (p *Properties) GetBool(key string, def bool) bool {
+	v, err := p.getBool(key)
+	if err != nil {
+		return def
+	}
+	return v
+}
+
+// MustGetBool checks if the expanded value is one of '1', 'yes',
+// 'true' or 'on' if the key exists. The comparison is case-insensitive.
+// If the key does not exist the function panics.
+func (p *Properties) MustGetBool(key string) bool {
+	v, err := p.getBool(key)
+	if err != nil {
+		ErrorHandler(err)
+	}
+	return v
+}
+
+func (p *Properties) getBool(key string) (value bool, err error) {
+	if v, ok := p.Get(key); ok {
+		return boolVal(v), nil
+	}
+	return false, invalidKeyError(key)
+}
+
+func boolVal(v string) bool {
+	v = strings.ToLower(v)
+	return v == "1" || v == "true" || v == "yes" || v == "on"
+}
+
+// ----------------------------------------------------------------------------
+
+// GetDuration parses the expanded value as an time.Duration (in ns) if the
+// key exists. If key does not exist or the value cannot be parsed the default
+// value is returned. In almost all cases you want to use GetParsedDuration().
+func (p *Properties) GetDuration(key string, def time.Duration) time.Duration {
+	v, err := p.getInt64(key)
+	if err != nil {
+		return def
+	}
+	return time.Duration(v)
+}
+
+// MustGetDuration parses the expanded value as an time.Duration (in ns) if
+// the key exists. If key does not exist or the value cannot be parsed the
+// function panics. In almost all cases you want to use MustGetParsedDuration().
+func (p *Properties) MustGetDuration(key string) time.Duration {
+	v, err := p.getInt64(key)
+	if err != nil {
+		ErrorHandler(err)
+	}
+	return time.Duration(v)
+}
+
+// ----------------------------------------------------------------------------
+
+// GetParsedDuration parses the expanded value with time.ParseDuration() if the key exists.
+// If key does not exist or the value cannot be parsed the default
+// value is returned.
+func (p *Properties) GetParsedDuration(key string, def time.Duration) time.Duration {
+	s, ok := p.Get(key)
+	if !ok {
+		return def
+	}
+	v, err := time.ParseDuration(s)
+	if err != nil {
+		return def
+	}
+	return v
+}
+
+// MustGetParsedDuration parses the expanded value with time.ParseDuration() if the key exists.
+// If key does not exist or the value cannot be parsed the function panics.
+func (p *Properties) MustGetParsedDuration(key string) time.Duration {
+	s, ok := p.Get(key)
+	if !ok {
+		ErrorHandler(invalidKeyError(key))
+	}
+	v, err := time.ParseDuration(s)
+	if err != nil {
+		ErrorHandler(err)
+	}
+	return v
+}
+
+// ----------------------------------------------------------------------------
+
+// GetFloat64 parses the expanded value as a float64 if the key exists.
+// If key does not exist or the value cannot be parsed the default
+// value is returned.
+func (p *Properties) GetFloat64(key string, def float64) float64 {
+	v, err := p.getFloat64(key)
+	if err != nil {
+		return def
+	}
+	return v
+}
+
+// MustGetFloat64 parses the expanded value as a float64 if the key exists.
+// If key does not exist or the value cannot be parsed the function panics.
+func (p *Properties) MustGetFloat64(key string) float64 {
+	v, err := p.getFloat64(key)
+	if err != nil {
+		ErrorHandler(err)
+	}
+	return v
+}
+
+func (p *Properties) getFloat64(key string) (value float64, err error) {
+	if v, ok := p.Get(key); ok {
+		value, err = strconv.ParseFloat(v, 64)
+		if err != nil {
+			return 0, err
+		}
+		return value, nil
+	}
+	return 0, invalidKeyError(key)
+}
+
+// ----------------------------------------------------------------------------
+
+// GetInt parses the expanded value as an int if the key exists.
+// If key does not exist or the value cannot be parsed the default
+// value is returned. If the value does not fit into an int the
+// function panics with an out of range error.
+func (p *Properties) GetInt(key string, def int) int {
+	v, err := p.getInt64(key)
+	if err != nil {
+		return def
+	}
+	return intRangeCheck(key, v)
+}
+
+// MustGetInt parses the expanded value as an int if the key exists.
+// If key does not exist or the value cannot be parsed the function panics.
+// If the value does not fit into an int the function panics with
+// an out of range error.
+func (p *Properties) MustGetInt(key string) int {
+	v, err := p.getInt64(key)
+	if err != nil {
+		ErrorHandler(err)
+	}
+	return intRangeCheck(key, v)
+}
+
+// ----------------------------------------------------------------------------
+
+// GetInt64 parses the expanded value as an int64 if the key exists.
+// If key does not exist or the value cannot be parsed the default
+// value is returned.
+func (p *Properties) GetInt64(key string, def int64) int64 {
+	v, err := p.getInt64(key)
+	if err != nil {
+		return def
+	}
+	return v
+}
+
+// MustGetInt64 parses the expanded value as an int if the key exists.
+// If key does not exist or the value cannot be parsed the function panics.
+func (p *Properties) MustGetInt64(key string) int64 {
+	v, err := p.getInt64(key)
+	if err != nil {
+		ErrorHandler(err)
+	}
+	return v
+}
+
+func (p *Properties) getInt64(key string) (value int64, err error) {
+	if v, ok := p.Get(key); ok {
+		value, err = strconv.ParseInt(v, 10, 64)
+		if err != nil {
+			return 0, err
+		}
+		return value, nil
+	}
+	return 0, invalidKeyError(key)
+}
+
+// ----------------------------------------------------------------------------
+
+// GetUint parses the expanded value as an uint if the key exists.
+// If key does not exist or the value cannot be parsed the default
+// value is returned. If the value does not fit into an int the
+// function panics with an out of range error.
+func (p *Properties) GetUint(key string, def uint) uint {
+	v, err := p.getUint64(key)
+	if err != nil {
+		return def
+	}
+	return uintRangeCheck(key, v)
+}
+
+// MustGetUint parses the expanded value as an int if the key exists.
+// If key does not exist or the value cannot be parsed the function panics.
+// If the value does not fit into an int the function panics with
+// an out of range error.
+func (p *Properties) MustGetUint(key string) uint {
+	v, err := p.getUint64(key)
+	if err != nil {
+		ErrorHandler(err)
+	}
+	return uintRangeCheck(key, v)
+}
+
+// ----------------------------------------------------------------------------
+
+// GetUint64 parses the expanded value as an uint64 if the key exists.
+// If key does not exist or the value cannot be parsed the default
+// value is returned.
+func (p *Properties) GetUint64(key string, def uint64) uint64 {
+	v, err := p.getUint64(key)
+	if err != nil {
+		return def
+	}
+	return v
+}
+
+// MustGetUint64 parses the expanded value as an int if the key exists.
+// If key does not exist or the value cannot be parsed the function panics.
+func (p *Properties) MustGetUint64(key string) uint64 {
+	v, err := p.getUint64(key)
+	if err != nil {
+		ErrorHandler(err)
+	}
+	return v
+}
+
+func (p *Properties) getUint64(key string) (value uint64, err error) {
+	if v, ok := p.Get(key); ok {
+		value, err = strconv.ParseUint(v, 10, 64)
+		if err != nil {
+			return 0, err
+		}
+		return value, nil
+	}
+	return 0, invalidKeyError(key)
+}
+
+// ----------------------------------------------------------------------------
+
+// GetString returns the expanded value for the given key if exists or
+// the default value otherwise.
+func (p *Properties) GetString(key, def string) string {
+	if v, ok := p.Get(key); ok {
+		return v
+	}
+	return def
+}
+
+// MustGetString returns the expanded value for the given key if exists or
+// panics otherwise.
+func (p *Properties) MustGetString(key string) string {
+	if v, ok := p.Get(key); ok {
+		return v
+	}
+	ErrorHandler(invalidKeyError(key))
+	panic("ErrorHandler should exit")
+}
+
+// ----------------------------------------------------------------------------
+
+// Filter returns a new properties object which contains all properties
+// for which the key matches the pattern.
+func (p *Properties) Filter(pattern string) (*Properties, error) {
+	re, err := regexp.Compile(pattern)
+	if err != nil {
+		return nil, err
+	}
+
+	return p.FilterRegexp(re), nil
+}
+
+// FilterRegexp returns a new properties object which contains all properties
+// for which the key matches the regular expression.
+func (p *Properties) FilterRegexp(re *regexp.Regexp) *Properties {
+	pp := NewProperties()
+	for _, k := range p.k {
+		if re.MatchString(k) {
+			// TODO(fs): we are ignoring the error which flags a circular reference.
+			// TODO(fs): since we are just copying a subset of keys this cannot happen (fingers crossed)
+			pp.Set(k, p.m[k])
+		}
+	}
+	return pp
+}
+
+// FilterPrefix returns a new properties object with a subset of all keys
+// with the given prefix.
+func (p *Properties) FilterPrefix(prefix string) *Properties {
+	pp := NewProperties()
+	for _, k := range p.k {
+		if strings.HasPrefix(k, prefix) {
+			// TODO(fs): we are ignoring the error which flags a circular reference.
+			// TODO(fs): since we are just copying a subset of keys this cannot happen (fingers crossed)
+			pp.Set(k, p.m[k])
+		}
+	}
+	return pp
+}
+
+// FilterStripPrefix returns a new properties object with a subset of all keys
+// with the given prefix and the prefix removed from the keys.
+func (p *Properties) FilterStripPrefix(prefix string) *Properties {
+	pp := NewProperties()
+	n := len(prefix)
+	for _, k := range p.k {
+		if len(k) > len(prefix) && strings.HasPrefix(k, prefix) {
+			// TODO(fs): we are ignoring the error which flags a circular reference.
+			// TODO(fs): since we are modifying keys I am not entirely sure whether we can create a circular reference
+			// TODO(fs): this function should probably return an error but the signature is fixed
+			pp.Set(k[n:], p.m[k])
+		}
+	}
+	return pp
+}
+
+// Len returns the number of keys.
+func (p *Properties) Len() int {
+	return len(p.m)
+}
+
+// Keys returns all keys in the same order as in the input.
+func (p *Properties) Keys() []string {
+	keys := make([]string, len(p.k))
+	copy(keys, p.k)
+	return keys
+}
+
+// Set sets the property key to the corresponding value.
+// If a value for key existed before then ok is true and prev
+// contains the previous value. If the value contains a
+// circular reference or a malformed expression then
+// an error is returned.
+// An empty key is silently ignored.
+func (p *Properties) Set(key, value string) (prev string, ok bool, err error) {
+	if key == "" {
+		return "", false, nil
+	}
+
+	// if expansion is disabled we allow circular references
+	if p.DisableExpansion {
+		prev, ok = p.Get(key)
+		p.m[key] = value
+		if !ok {
+			p.k = append(p.k, key)
+		}
+		return prev, ok, nil
+	}
+
+	// to check for a circular reference we temporarily need
+	// to set the new value. If there is an error then revert
+	// to the previous state. Only if all tests are successful
+	// then we add the key to the p.k list.
+	prev, ok = p.Get(key)
+	p.m[key] = value
+
+	// now check for a circular reference
+	_, err = p.expand(key, value)
+	if err != nil {
+
+		// revert to the previous state
+		if ok {
+			p.m[key] = prev
+		} else {
+			delete(p.m, key)
+		}
+
+		return "", false, err
+	}
+
+	if !ok {
+		p.k = append(p.k, key)
+	}
+
+	return prev, ok, nil
+}
+
+// SetValue sets property key to the default string value
+// as defined by fmt.Sprintf("%v").
+func (p *Properties) SetValue(key string, value interface{}) error {
+	_, _, err := p.Set(key, fmt.Sprintf("%v", value))
+	return err
+}
+
+// MustSet sets the property key to the corresponding value.
+// If a value for key existed before then ok is true and prev
+// contains the previous value. An empty key is silently ignored.
+func (p *Properties) MustSet(key, value string) (prev string, ok bool) {
+	prev, ok, err := p.Set(key, value)
+	if err != nil {
+		ErrorHandler(err)
+	}
+	return prev, ok
+}
+
+// String returns a string of all expanded 'key = value' pairs.
+func (p *Properties) String() string {
+	var s string
+	for _, key := range p.k {
+		value, _ := p.Get(key)
+		s = fmt.Sprintf("%s%s = %s\n", s, key, value)
+	}
+	return s
+}
+
+// Sort sorts the properties keys in alphabetical order.
+// This is helpfully before writing the properties.
+func (p *Properties) Sort() {
+	sort.Strings(p.k)
+}
+
+// Write writes all unexpanded 'key = value' pairs to the given writer.
+// Write returns the number of bytes written and any write error encountered.
+func (p *Properties) Write(w io.Writer, enc Encoding) (n int, err error) {
+	return p.WriteComment(w, "", enc)
+}
+
+// WriteComment writes all unexpanced 'key = value' pairs to the given writer.
+// If prefix is not empty then comments are written with a blank line and the
+// given prefix. The prefix should be either "# " or "! " to be compatible with
+// the properties file format. Otherwise, the properties parser will not be
+// able to read the file back in. It returns the number of bytes written and
+// any write error encountered.
+func (p *Properties) WriteComment(w io.Writer, prefix string, enc Encoding) (n int, err error) {
+	var x int
+
+	for _, key := range p.k {
+		value := p.m[key]
+
+		if prefix != "" {
+			if comments, ok := p.c[key]; ok {
+				// don't print comments if they are all empty
+				allEmpty := true
+				for _, c := range comments {
+					if c != "" {
+						allEmpty = false
+						break
+					}
+				}
+
+				if !allEmpty {
+					// add a blank line between entries but not at the top
+					if len(comments) > 0 && n > 0 {
+						x, err = fmt.Fprintln(w)
+						if err != nil {
+							return
+						}
+						n += x
+					}
+
+					for _, c := range comments {
+						x, err = fmt.Fprintf(w, "%s%s\n", prefix, c)
+						if err != nil {
+							return
+						}
+						n += x
+					}
+				}
+			}
+		}
+		sep := " = "
+		if p.WriteSeparator != "" {
+			sep = p.WriteSeparator
+		}
+		x, err = fmt.Fprintf(w, "%s%s%s\n", encode(key, " :", enc), sep, encode(value, "", enc))
+		if err != nil {
+			return
+		}
+		n += x
+	}
+	return
+}
+
+// Map returns a copy of the properties as a map.
+func (p *Properties) Map() map[string]string {
+	m := make(map[string]string)
+	for k, v := range p.m {
+		m[k] = v
+	}
+	return m
+}
+
+// FilterFunc returns a copy of the properties which includes the values which passed all filters.
+func (p *Properties) FilterFunc(filters ...func(k, v string) bool) *Properties {
+	pp := NewProperties()
+outer:
+	for k, v := range p.m {
+		for _, f := range filters {
+			if !f(k, v) {
+				continue outer
+			}
+			pp.Set(k, v)
+		}
+	}
+	return pp
+}
+
+// ----------------------------------------------------------------------------
+
+// Delete removes the key and its comments.
+func (p *Properties) Delete(key string) {
+	delete(p.m, key)
+	delete(p.c, key)
+	newKeys := []string{}
+	for _, k := range p.k {
+		if k != key {
+			newKeys = append(newKeys, k)
+		}
+	}
+	p.k = newKeys
+}
+
+// Merge merges properties, comments and keys from other *Properties into p
+func (p *Properties) Merge(other *Properties) {
+	for k, v := range other.m {
+		p.m[k] = v
+	}
+	for k, v := range other.c {
+		p.c[k] = v
+	}
+
+outer:
+	for _, otherKey := range other.k {
+		for _, key := range p.k {
+			if otherKey == key {
+				continue outer
+			}
+		}
+		p.k = append(p.k, otherKey)
+	}
+}
+
+// ----------------------------------------------------------------------------
+
+// check expands all values and returns an error if a circular reference or
+// a malformed expression was found.
+func (p *Properties) check() error {
+	for key, value := range p.m {
+		if _, err := p.expand(key, value); err != nil {
+			return err
+		}
+	}
+	return nil
+}
+
+func (p *Properties) expand(key, input string) (string, error) {
+	// no pre/postfix -> nothing to expand
+	if p.Prefix == "" && p.Postfix == "" {
+		return input, nil
+	}
+
+	return expand(input, []string{key}, p.Prefix, p.Postfix, p.m)
+}
+
+// expand recursively expands expressions of '(prefix)key(postfix)' to their corresponding values.
+// The function keeps track of the keys that were already expanded and stops if it
+// detects a circular reference or a malformed expression of the form '(prefix)key'.
+func expand(s string, keys []string, prefix, postfix string, values map[string]string) (string, error) {
+	if len(keys) > maxExpansionDepth {
+		return "", fmt.Errorf("expansion too deep")
+	}
+
+	for {
+		start := strings.Index(s, prefix)
+		if start == -1 {
+			return s, nil
+		}
+
+		keyStart := start + len(prefix)
+		keyLen := strings.Index(s[keyStart:], postfix)
+		if keyLen == -1 {
+			return "", fmt.Errorf("malformed expression")
+		}
+
+		end := keyStart + keyLen + len(postfix) - 1
+		key := s[keyStart : keyStart+keyLen]
+
+		// fmt.Printf("s:%q pp:%q start:%d end:%d keyStart:%d keyLen:%d key:%q\n", s, prefix + "..." + postfix, start, end, keyStart, keyLen, key)
+
+		for _, k := range keys {
+			if key == k {
+				var b bytes.Buffer
+				b.WriteString("circular reference in:\n")
+				for _, k1 := range keys {
+					fmt.Fprintf(&b, "%s=%s\n", k1, values[k1])
+				}
+				return "", fmt.Errorf(b.String())
+			}
+		}
+
+		val, ok := values[key]
+		if !ok {
+			val = os.Getenv(key)
+		}
+		new_val, err := expand(val, append(keys, key), prefix, postfix, values)
+		if err != nil {
+			return "", err
+		}
+		s = s[:start] + new_val + s[end+1:]
+	}
+	return s, nil
+}
+
+// encode encodes a UTF-8 string to ISO-8859-1 and escapes some characters.
+func encode(s string, special string, enc Encoding) string {
+	switch enc {
+	case UTF8:
+		return encodeUtf8(s, special)
+	case ISO_8859_1:
+		return encodeIso(s, special)
+	default:
+		panic(fmt.Sprintf("unsupported encoding %v", enc))
+	}
+}
+
+func encodeUtf8(s string, special string) string {
+	v := ""
+	for pos := 0; pos < len(s); {
+		r, w := utf8.DecodeRuneInString(s[pos:])
+		pos += w
+		v += escape(r, special)
+	}
+	return v
+}
+
+func encodeIso(s string, special string) string {
+	var r rune
+	var w int
+	var v string
+	for pos := 0; pos < len(s); {
+		switch r, w = utf8.DecodeRuneInString(s[pos:]); {
+		case r < 1<<8: // single byte rune -> escape special chars only
+			v += escape(r, special)
+		case r < 1<<16: // two byte rune -> unicode literal
+			v += fmt.Sprintf("\\u%04x", r)
+		default: // more than two bytes per rune -> can't encode
+			v += "?"
+		}
+		pos += w
+	}
+	return v
+}
+
+func escape(r rune, special string) string {
+	switch r {
+	case '\f':
+		return "\\f"
+	case '\n':
+		return "\\n"
+	case '\r':
+		return "\\r"
+	case '\t':
+		return "\\t"
+	case '\\':
+		return "\\\\"
+	default:
+		if strings.ContainsRune(special, r) {
+			return "\\" + string(r)
+		}
+		return string(r)
+	}
+}
+
+func invalidKeyError(key string) error {
+	return fmt.Errorf("unknown property: %s", key)
+}
diff --git a/vendor/github.com/magiconair/properties/rangecheck.go b/vendor/github.com/magiconair/properties/rangecheck.go
new file mode 100644
index 000000000..b013a2e5e
--- /dev/null
+++ b/vendor/github.com/magiconair/properties/rangecheck.go
@@ -0,0 +1,31 @@
+// Copyright 2018 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package properties
+
+import (
+	"fmt"
+	"math"
+)
+
+// make this a var to overwrite it in a test
+var is32Bit = ^uint(0) == math.MaxUint32
+
+// intRangeCheck checks if the value fits into the int type and
+// panics if it does not.
+func intRangeCheck(key string, v int64) int {
+	if is32Bit && (v < math.MinInt32 || v > math.MaxInt32) {
+		panic(fmt.Sprintf("Value %d for key %s out of range", v, key))
+	}
+	return int(v)
+}
+
+// uintRangeCheck checks if the value fits into the uint type and
+// panics if it does not.
+func uintRangeCheck(key string, v uint64) uint {
+	if is32Bit && v > math.MaxUint32 {
+		panic(fmt.Sprintf("Value %d for key %s out of range", v, key))
+	}
+	return uint(v)
+}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index d7877ead0..38c1f66ff 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -301,6 +301,9 @@ github.com/klauspost/compress/internal/cpuinfo
 github.com/klauspost/compress/internal/snapref
 github.com/klauspost/compress/zstd
 github.com/klauspost/compress/zstd/internal/xxhash
+# github.com/magiconair/properties v1.8.5
+## explicit; go 1.13
+github.com/magiconair/properties
 # github.com/mailru/easyjson v0.7.7
 ## explicit; go 1.12
 github.com/mailru/easyjson


Test patch:
diff --git a/control-plane/pkg/config/env_config_test.go b/control-plane/pkg/config/env_config_test.go
index 541675dd0..a82a9fdee 100644
--- a/control-plane/pkg/config/env_config_test.go
+++ b/control-plane/pkg/config/env_config_test.go
@@ -37,16 +37,18 @@ func TestGetEnvConfig(t *testing.T) {
 			name:   "broker prefix",
 			prefix: "BROKER",
 			want: &Env{
-				DataPlaneConfigMapNamespace: "knative-eventing",
-				ContractConfigMapName:       "kafka-brokers-triggers",
-				GeneralConfigMapName:        "kafka-config",
-				IngressName:                 "kafka-broker-ingress",
-				SystemNamespace:             "knative-eventing",
-				ContractConfigMapFormat:     "json",
+				DataPlaneConfigMapNamespace:  "knative-eventing",
+				ContractConfigMapName:        "kafka-brokers-triggers",
+				GeneralConfigMapName:         "kafka-config",
+				IngressName:                  "kafka-broker-ingress",
+				SystemNamespace:              "knative-eventing",
+				ContractConfigMapFormat:      "json",
+				DataPlaneConfigConfigMapName: "config-kafka-broker-data-plane",
 			},
 			setEnv: func() {
 				_ = os.Setenv("BROKER_DATA_PLANE_CONFIG_MAP_NAMESPACE", "knative-eventing")
 				_ = os.Setenv("BROKER_CONTRACT_CONFIG_MAP_NAME", "kafka-brokers-triggers")
+				_ = os.Setenv("BROKER_DATA_PLANE_CONFIG_CONFIG_MAP_NAME", "config-kafka-broker-data-plane")
 				_ = os.Setenv("BROKER_GENERAL_CONFIG_MAP_NAME", "kafka-config")
 				_ = os.Setenv("BROKER_INGRESS_NAME", "kafka-broker-ingress")
 				_ = os.Setenv("BROKER_SYSTEM_NAMESPACE", "knative-eventing")
@@ -58,17 +60,19 @@ func TestGetEnvConfig(t *testing.T) {
 			name:   "sink prefix",
 			prefix: "SINK",
 			want: &Env{
-				DataPlaneConfigMapNamespace: "knative-eventing",
-				ContractConfigMapName:       "kafka-sinks",
-				GeneralConfigMapName:        "kafka-config",
-				IngressName:                 "kafka-sink-ingress",
-				SystemNamespace:             "knative-eventing",
-				ContractConfigMapFormat:     "json",
+				DataPlaneConfigMapNamespace:  "knative-eventing",
+				ContractConfigMapName:        "kafka-sinks",
+				DataPlaneConfigConfigMapName: "config-kafka-sink-data-plane",
+				GeneralConfigMapName:         "kafka-config",
+				IngressName:                  "kafka-sink-ingress",
+				SystemNamespace:              "knative-eventing",
+				ContractConfigMapFormat:      "json",
 			},
 			setEnv: func() {
 				_ = os.Setenv("SINK_DATA_PLANE_CONFIG_MAP_NAMESPACE", "knative-eventing")
 				_ = os.Setenv("SINK_CONTRACT_CONFIG_MAP_NAME", "kafka-sinks")
 				_ = os.Setenv("SINK_GENERAL_CONFIG_MAP_NAME", "kafka-config")
+				_ = os.Setenv("SINK_DATA_PLANE_CONFIG_CONFIG_MAP_NAME", "config-kafka-sink-data-plane")
 				_ = os.Setenv("SINK_INGRESS_NAME", "kafka-sink-ingress")
 				_ = os.Setenv("SINK_SYSTEM_NAMESPACE", "knative-eventing")
 				_ = os.Setenv("SINK_CONTRACT_CONFIG_MAP_FORMAT", "json")
diff --git a/control-plane/pkg/kafka/testing/admin_mock.go b/control-plane/pkg/kafka/testing/admin_mock.go
index df414881b..6e281a5c4 100644
--- a/control-plane/pkg/kafka/testing/admin_mock.go
+++ b/control-plane/pkg/kafka/testing/admin_mock.go
@@ -99,7 +99,7 @@ func (m *MockKafkaClusterAdmin) ListTopics() (map[string]sarama.TopicDetail, err
 func (m *MockKafkaClusterAdmin) DescribeTopics(topics []string) (metadata []*sarama.TopicMetadata, err error) {
 
 	if !sets.NewString(m.ExpectedTopics...).HasAll(topics...) {
-		m.T.Errorf("unexpected topics %v", topics)
+		m.T.Errorf("unexpected topics %v, expected %v", topics, m.ExpectedTopics)
 	}
 
 	return m.ExpectedTopicsMetadataOnDescribeTopics, m.ExpectedErrorOnDescribeTopics
diff --git a/control-plane/pkg/reconciler/base/reconciler_test.go b/control-plane/pkg/reconciler/base/reconciler_test.go
index 2b5af4bc0..f51567644 100644
--- a/control-plane/pkg/reconciler/base/reconciler_test.go
+++ b/control-plane/pkg/reconciler/base/reconciler_test.go
@@ -124,8 +124,8 @@ func TestGetDataPlaneConfigMapData(t *testing.T) {
 	ctx, _ := reconcilertesting.SetupFakeContext(t)
 
 	r := &base.Reconciler{
-		KubeClient:            kubeclient.Get(ctx),
-		DataPlaneConfigFormat: base.Json,
+		KubeClient:              kubeclient.Get(ctx),
+		ContractConfigMapFormat: base.Json,
 	}
 
 	ct := &contract.Contract{}
@@ -170,8 +170,8 @@ func TestUpdateDataPlaneConfigMap(t *testing.T) {
 	require.Nil(t, err)
 
 	r := &base.Reconciler{
-		KubeClient:            kubeclient.Get(ctx),
-		DataPlaneConfigFormat: base.Json,
+		KubeClient:              kubeclient.Get(ctx),
+		ContractConfigMapFormat: base.Json,
 	}
 
 	ct := &contract.Contract{}
@@ -185,8 +185,8 @@ func TestGetDataPlaneConfigMapDataCorrupted(t *testing.T) {
 	ctx, _ := reconcilertesting.SetupFakeContext(t)
 
 	r := &base.Reconciler{
-		KubeClient:            kubeclient.Get(ctx),
-		DataPlaneConfigFormat: base.Json,
+		KubeClient:              kubeclient.Get(ctx),
+		ContractConfigMapFormat: base.Json,
 	}
 
 	cm := &corev1.ConfigMap{
diff --git a/control-plane/pkg/reconciler/broker/broker_test.go b/control-plane/pkg/reconciler/broker/broker_test.go
index 2e32e4b91..19a161ecb 100644
--- a/control-plane/pkg/reconciler/broker/broker_test.go
+++ b/control-plane/pkg/reconciler/broker/broker_test.go
@@ -25,6 +25,7 @@ import (
 	"k8s.io/apimachinery/pkg/runtime/schema"
 
 	"k8s.io/utils/pointer"
+
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/config"
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/kafka"
 	kafkatesting "knative.dev/eventing-kafka-broker/control-plane/pkg/kafka/testing"
@@ -171,6 +172,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 					),
 				},
 			},
@@ -233,6 +235,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(ExternalTopicName),
 					),
 				},
 			},
@@ -340,6 +343,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerTopicReady,
 						StatusBrokerProbeFailed(prober.StatusNotReady),
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 					),
 				},
 			},
@@ -401,6 +405,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerConfigParsed,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						StatusBrokerProbeFailed(prober.StatusUnknown),
 					),
 				},
@@ -460,6 +465,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerDataPlaneAvailable,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						StatusBrokerConfigParsed,
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
@@ -519,6 +525,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerDataPlaneAvailable,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						StatusBrokerConfigParsed,
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
@@ -627,6 +634,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerConfigMapUpdatedReady(&env),
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
 						BrokerDLSResolved(ServiceURL),
@@ -682,6 +690,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerConfigParsed,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
 					),
@@ -763,6 +772,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerConfigParsed,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
 					),
@@ -860,6 +870,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerConfigParsed,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
 						BrokerDLSResolved("http://www.my-sink.com/api"),
@@ -945,6 +956,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerConfigParsed,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
 					),
@@ -1022,6 +1034,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerConfigParsed,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
 					),
@@ -1091,6 +1104,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerConfigNotParsed("failed to resolve Spec.Delivery.DeadLetterSink: destination missing Ref and URI, expected at least one"),
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 					),
 				},
 			},
@@ -1191,6 +1205,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerConfigParsed,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
 					),
@@ -1272,6 +1287,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerConfigParsed,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						BrokerConfigMapSecretAnnotation("secret-1"),
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
@@ -1489,6 +1505,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerConfigParsed,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
 						BrokerDLSResolved(ServiceURL),
@@ -1586,6 +1603,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerDataPlaneAvailable,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						StatusBrokerConfigParsed,
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
@@ -1652,6 +1670,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerDataPlaneAvailable,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						StatusBrokerConfigParsed,
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
@@ -1715,6 +1734,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerDataPlaneAvailable,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						StatusBrokerConfigParsed,
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
@@ -1781,6 +1801,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerDataPlaneAvailable,
 						StatusBrokerTopicReady,
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 						StatusBrokerConfigParsed,
 						BrokerAddressable(&env),
 						StatusBrokerProbeSucceeded,
@@ -1834,6 +1855,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerProbeSucceeded,
 						BrokerDLSResolved(ServiceURL),
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 					),
 				},
 			},
@@ -1886,6 +1908,7 @@ func brokerReconciliation(t *testing.T, format string, env config.Env) {
 						StatusBrokerProbeSucceeded,
 						BrokerDLSResolved(ServiceURL),
 						BrokerConfigMapAnnotations(),
+						WithTopicStatusAnnotation(BrokerTopic()),
 					),
 				},
 			},
@@ -2337,8 +2360,8 @@ func useTable(t *testing.T, table TableTest, env *config.Env) {
 				PodLister:                   listers.GetPodLister(),
 				SecretLister:                listers.GetSecretLister(),
 				DataPlaneConfigMapNamespace: env.DataPlaneConfigMapNamespace,
-				DataPlaneConfigMapName:      env.ContractConfigMapName,
-				DataPlaneConfigFormat:       env.ContractConfigMapFormat,
+				ContractConfigMapName:       env.ContractConfigMapName,
+				ContractConfigMapFormat:     env.ContractConfigMapFormat,
 				DataPlaneNamespace:          env.SystemNamespace,
 				DispatcherLabel:             base.BrokerDispatcherLabel,
 				ReceiverLabel:               base.BrokerReceiverLabel,
diff --git a/control-plane/pkg/reconciler/channel/channel_test.go b/control-plane/pkg/reconciler/channel/channel_test.go
index 41adb3899..b72a68540 100644
--- a/control-plane/pkg/reconciler/channel/channel_test.go
+++ b/control-plane/pkg/reconciler/channel/channel_test.go
@@ -1621,8 +1621,8 @@ func useTable(t *testing.T, table TableTest, env config.Env) {
 				PodLister:                   listers.GetPodLister(),
 				SecretLister:                listers.GetSecretLister(),
 				DataPlaneConfigMapNamespace: env.DataPlaneConfigMapNamespace,
-				DataPlaneConfigMapName:      env.ContractConfigMapName,
-				DataPlaneConfigFormat:       env.ContractConfigMapFormat,
+				ContractConfigMapName:       env.ContractConfigMapName,
+				ContractConfigMapFormat:     env.ContractConfigMapFormat,
 				DataPlaneNamespace:          env.SystemNamespace,
 				DispatcherLabel:             base.ChannelDispatcherLabel,
 				ReceiverLabel:               base.ChannelReceiverLabel,
diff --git a/control-plane/pkg/reconciler/channel/v2/channelv2_test.go b/control-plane/pkg/reconciler/channel/v2/channelv2_test.go
index 44f7df994..ab267d9f8 100644
--- a/control-plane/pkg/reconciler/channel/v2/channelv2_test.go
+++ b/control-plane/pkg/reconciler/channel/v2/channelv2_test.go
@@ -1336,8 +1336,8 @@ func TestReconcileKind(t *testing.T) {
 				PodLister:                   listers.GetPodLister(),
 				SecretLister:                listers.GetSecretLister(),
 				DataPlaneConfigMapNamespace: env.DataPlaneConfigMapNamespace,
-				DataPlaneConfigMapName:      env.ContractConfigMapName,
-				DataPlaneConfigFormat:       env.ContractConfigMapFormat,
+				ContractConfigMapName:       env.ContractConfigMapName,
+				ContractConfigMapFormat:     env.ContractConfigMapFormat,
 				DataPlaneNamespace:          env.SystemNamespace,
 				DispatcherLabel:             base.ChannelDispatcherLabel,
 				ReceiverLabel:               base.ChannelReceiverLabel,
diff --git a/control-plane/pkg/reconciler/sink/kafka_sink_test.go b/control-plane/pkg/reconciler/sink/kafka_sink_test.go
index dc88866ea..0fbe39937 100644
--- a/control-plane/pkg/reconciler/sink/kafka_sink_test.go
+++ b/control-plane/pkg/reconciler/sink/kafka_sink_test.go
@@ -1377,8 +1377,8 @@ func useTable(t *testing.T, table TableTest, env *config.Env) {
 				PodLister:                   listers.GetPodLister(),
 				SecretLister:                listers.GetSecretLister(),
 				DataPlaneConfigMapNamespace: env.DataPlaneConfigMapNamespace,
-				DataPlaneConfigMapName:      env.ContractConfigMapName,
-				DataPlaneConfigFormat:       env.ContractConfigMapFormat,
+				ContractConfigMapName:       env.ContractConfigMapName,
+				ContractConfigMapFormat:     env.ContractConfigMapFormat,
 				DataPlaneNamespace:          env.SystemNamespace,
 				ReceiverLabel:               base.SinkReceiverLabel,
 			},
diff --git a/control-plane/pkg/reconciler/testing/objects_broker.go b/control-plane/pkg/reconciler/testing/objects_broker.go
index 2aca5f9f4..51c821832 100644
--- a/control-plane/pkg/reconciler/testing/objects_broker.go
+++ b/control-plane/pkg/reconciler/testing/objects_broker.go
@@ -55,8 +55,7 @@ const (
 )
 
 func BrokerTopic() string {
-	broker := NewBroker().(metav1.Object)
-	return kafka.BrokerTopic(TopicPrefix, broker)
+	return fmt.Sprintf("%s%s-%s", TopicPrefix, BrokerNamespace, BrokerName)
 }
 
 // NewBroker creates a new Broker with broker class equals to kafka.BrokerClass.
@@ -169,6 +168,25 @@ func WithExternalTopic(topic string) func(*eventing.Broker) {
 		}
 		annotations[ExternalTopicAnnotation] = topic
 		broker.SetAnnotations(annotations)
+		WithTopicStatusAnnotation(topic)(broker)
+	}
+}
+
+func WithTopicStatusAnnotation(topic string) reconcilertesting.BrokerOption {
+	return func(broker *eventing.Broker) {
+		if broker.Status.Annotations == nil {
+			broker.Status.Annotations = make(map[string]string, 1)
+		}
+		broker.Status.Annotations[kafka.TopicAnnotation] = topic
+	}
+}
+
+func WithBootstrapServerStatusAnnotation(servers string) reconcilertesting.BrokerOption {
+	return func(broker *eventing.Broker) {
+		if broker.Status.Annotations == nil {
+			broker.Status.Annotations = make(map[string]string, 1)
+		}
+		broker.Status.Annotations[kafka.BootstrapServersConfigMapKey] = servers
 	}
 }
 
diff --git a/control-plane/pkg/reconciler/testing/objects_common.go b/control-plane/pkg/reconciler/testing/objects_common.go
index 6b92f6b94..f66c2247c 100644
--- a/control-plane/pkg/reconciler/testing/objects_common.go
+++ b/control-plane/pkg/reconciler/testing/objects_common.go
@@ -21,9 +21,11 @@ import (
 	"io/ioutil"
 	"time"
 
+	"github.com/magiconair/properties"
 	appsv1 "k8s.io/api/apps/v1"
 	rbacv1 "k8s.io/api/rbac/v1"
 	"k8s.io/apimachinery/pkg/types"
+	sources "knative.dev/eventing-kafka/pkg/apis/sources/v1beta1"
 	eventing "knative.dev/eventing/pkg/apis/eventing/v1"
 
 	"google.golang.org/protobuf/encoding/protojson"
@@ -566,3 +568,29 @@ func PodAnnotations(annotations map[string]string) PodOption {
 		pod.Annotations = annotations
 	}
 }
+
+func DataPlaneConfigMap(namespace, name, key string, options ...base.ConfigMapOption) *corev1.ConfigMap {
+	cm := &corev1.ConfigMap{
+		ObjectMeta: metav1.ObjectMeta{
+			Namespace: namespace,
+			Name:      name,
+		},
+		Data: map[string]string{
+			key: "",
+		},
+	}
+
+	for _, opt := range options {
+		opt(cm)
+	}
+
+	return cm
+}
+
+func DataPlaneConfigInitialOffset(key string, offset sources.Offset) base.ConfigMapOption {
+	return func(cm *corev1.ConfigMap) {
+		props := properties.MustLoadString(cm.Data[key])
+		_, _, _ = props.Set("auto.offset.reset", string(offset))
+		cm.Data[key] = props.String()
+	}
+}
diff --git a/control-plane/pkg/reconciler/trigger/namespaced_trigger_test.go b/control-plane/pkg/reconciler/trigger/namespaced_trigger_test.go
index ba3df6765..e77d079da 100644
--- a/control-plane/pkg/reconciler/trigger/namespaced_trigger_test.go
+++ b/control-plane/pkg/reconciler/trigger/namespaced_trigger_test.go
@@ -21,9 +21,11 @@ import (
 	"fmt"
 	"testing"
 
+	"github.com/Shopify/sarama"
 	"k8s.io/apimachinery/pkg/runtime"
 	"k8s.io/apimachinery/pkg/types"
 	clientgotesting "k8s.io/client-go/testing"
+	sources "knative.dev/eventing-kafka/pkg/apis/sources/v1beta1"
 	kubeclient "knative.dev/pkg/client/injection/kube/client/fake"
 	"knative.dev/pkg/controller"
 	"knative.dev/pkg/logging"
@@ -38,8 +40,10 @@ import (
 
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/config"
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/contract"
+	kafkatesting "knative.dev/eventing-kafka-broker/control-plane/pkg/kafka/testing"
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/receiver"
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/base"
+	brokerreconciler "knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/broker"
 	. "knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/testing"
 )
 
@@ -65,6 +69,11 @@ func namespacedTriggerReconciliation(t *testing.T, format string, env config.Env
 			Objects: []runtime.Object{
 				NewNamespacedBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(BrokerNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(),
 				NewService(),
@@ -139,23 +148,46 @@ func useNamespacedTable(t *testing.T, table TableTest, env *config.Env) {
 
 		reconciler := &NamespacedReconciler{
 			Reconciler: &base.Reconciler{
-				KubeClient:                  kubeclient.Get(ctx),
-				PodLister:                   listers.GetPodLister(),
-				SecretLister:                listers.GetSecretLister(),
-				DataPlaneConfigMapNamespace: env.DataPlaneConfigMapNamespace,
-				DataPlaneConfigMapName:      env.ContractConfigMapName,
-				DataPlaneConfigFormat:       env.ContractConfigMapFormat,
-				DataPlaneNamespace:          env.SystemNamespace,
-				DispatcherLabel:             base.BrokerDispatcherLabel,
-				ReceiverLabel:               base.BrokerReceiverLabel,
+				KubeClient:                   kubeclient.Get(ctx),
+				PodLister:                    listers.GetPodLister(),
+				SecretLister:                 listers.GetSecretLister(),
+				DataPlaneConfigMapNamespace:  env.DataPlaneConfigMapNamespace,
+				ContractConfigMapName:        env.ContractConfigMapName,
+				ContractConfigMapFormat:      env.ContractConfigMapFormat,
+				DataPlaneConfigConfigMapName: env.DataPlaneConfigConfigMapName,
+				DataPlaneNamespace:           env.SystemNamespace,
+				DispatcherLabel:              base.BrokerDispatcherLabel,
+				ReceiverLabel:                base.BrokerReceiverLabel,
 			},
 			FlagsHolder: &FlagsHolder{
 				Flags: nil,
 			},
-			BrokerLister:   listers.GetBrokerLister(),
-			EventingClient: eventingclient.Get(ctx),
-			Resolver:       nil,
-			Env:            env,
+			BrokerLister:    listers.GetBrokerLister(),
+			ConfigMapLister: listers.GetConfigMapLister(),
+			EventingClient:  eventingclient.Get(ctx),
+			Resolver:        nil,
+			Env:             env,
+			InitOffsetsFunc: func(ctx context.Context, kafkaClient sarama.Client, kafkaAdminClient sarama.ClusterAdmin, topics []string, consumerGroup string) (int32, error) {
+				return 1, nil
+			},
+			NewKafkaClient: func(addrs []string, config *sarama.Config) (sarama.Client, error) {
+				return &kafkatesting.MockKafkaClient{}, nil
+			},
+			NewKafkaClusterAdminClient: func(_ []string, _ *sarama.Config) (sarama.ClusterAdmin, error) {
+				return &kafkatesting.MockKafkaClusterAdmin{
+					ExpectedTopicName: BrokerTopic(),
+					ExpectedTopics:    []string{BrokerTopic()},
+					ExpectedTopicsMetadataOnDescribeTopics: []*sarama.TopicMetadata{
+						{
+							Err:        0,
+							Name:       BrokerTopic(),
+							IsInternal: false,
+							Partitions: []*sarama.PartitionMetadata{{}},
+						},
+					},
+					T: t,
+				}, nil
+			},
 		}
 
 		reconciler.Resolver = resolver.NewURIResolverFromTracker(ctx, tracker.New(func(name types.NamespacedName) {}, 0))
diff --git a/control-plane/pkg/reconciler/trigger/trigger_test.go b/control-plane/pkg/reconciler/trigger/trigger_test.go
index 68a7f5c3d..932ef33b0 100644
--- a/control-plane/pkg/reconciler/trigger/trigger_test.go
+++ b/control-plane/pkg/reconciler/trigger/trigger_test.go
@@ -22,6 +22,7 @@ import (
 	"testing"
 	"time"
 
+	"github.com/Shopify/sarama"
 	"github.com/google/go-cmp/cmp"
 	"google.golang.org/protobuf/testing/protocmp"
 	corev1 "k8s.io/api/core/v1"
@@ -29,6 +30,7 @@ import (
 	"k8s.io/apimachinery/pkg/types"
 	clientgotesting "k8s.io/client-go/testing"
 	"k8s.io/utils/pointer"
+	sources "knative.dev/eventing-kafka/pkg/apis/sources/v1beta1"
 	"knative.dev/pkg/apis"
 	duckv1 "knative.dev/pkg/apis/duck/v1"
 	kubeclient "knative.dev/pkg/client/injection/kube/client/fake"
@@ -49,6 +51,8 @@ import (
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/config"
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/contract"
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/kafka"
+	kafkatesting "knative.dev/eventing-kafka-broker/control-plane/pkg/kafka/testing"
+	brokerreconciler "knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/broker"
 
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/receiver"
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/base"
@@ -56,13 +60,14 @@ import (
 )
 
 var DefaultEnv = &config.Env{
-	DataPlaneConfigMapNamespace: "knative-eventing",
-	ContractConfigMapName:       "kafka-broker-brokers-triggers",
-	GeneralConfigMapName:        "kafka-broker-config",
-	IngressName:                 "kafka-broker-ingress",
-	SystemNamespace:             "knative-eventing",
-	ContractConfigMapFormat:     base.Json,
-	DefaultBackoffDelayMs:       1000,
+	DataPlaneConfigMapNamespace:  "knative-eventing",
+	ContractConfigMapName:        "kafka-broker-brokers-triggers",
+	GeneralConfigMapName:         "kafka-broker-config",
+	DataPlaneConfigConfigMapName: "config-kafka-broker-data-plane",
+	IngressName:                  "kafka-broker-ingress",
+	SystemNamespace:              "knative-eventing",
+	ContractConfigMapFormat:      base.Json,
+	DefaultBackoffDelayMs:        1000,
 }
 
 var (
@@ -79,6 +84,8 @@ var (
 	}
 
 	exponential = eventingduck.BackoffPolicyExponential
+
+	bootstrapServers = "kafka-1:9092,kafka-2:9093"
 )
 
 type EgressBuilder struct {
@@ -126,6 +133,8 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
 				),
 				newTrigger(),
 				NewService(),
@@ -139,6 +148,9 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 					},
 				}, env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, env.ContractConfigMapFormat),
 				BrokerDispatcherPod(env.SystemNamespace, nil),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
+				),
 			},
 			Key: testKey,
 			WantEvents: []string{
@@ -190,6 +202,8 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 				NewBroker(
 					BrokerReady,
 					WithDelivery(),
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
 				),
 				newTrigger(),
 				NewService(),
@@ -203,6 +217,9 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 					},
 				}, env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, env.ContractConfigMapFormat),
 				BrokerDispatcherPod(env.SystemNamespace, nil),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetEarliest),
+				),
 			},
 			Key: testKey,
 			WantEvents: []string{
@@ -254,6 +271,8 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
 				),
 				newTrigger(withDelivery),
 				NewService(),
@@ -267,6 +286,9 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 					},
 				}, env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, env.ContractConfigMapFormat),
 				BrokerDispatcherPod(env.SystemNamespace, nil),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
+				),
 			},
 			Key: testKey,
 			WantEvents: []string{
@@ -325,6 +347,8 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
 				),
 				newTrigger(reconcilertesting.WithAnnotation(deliveryOrderAnnotation, string(internals.Ordered))),
 				NewService(),
@@ -338,6 +362,9 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 					},
 				}, env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, env.ContractConfigMapFormat),
 				BrokerDispatcherPod(env.SystemNamespace, nil),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
+				),
 			},
 			Key: testKey,
 			WantEvents: []string{
@@ -390,6 +417,8 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
 				),
 				newTrigger(reconcilertesting.WithAnnotation(deliveryOrderAnnotation, string(internals.Unordered))),
 				NewService(),
@@ -403,6 +432,9 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 					},
 				}, env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, env.ContractConfigMapFormat),
 				BrokerDispatcherPod(env.SystemNamespace, nil),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
+				),
 			},
 			Key: testKey,
 			WantEvents: []string{
@@ -455,6 +487,8 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
 				),
 				newTrigger(withDelivery),
 				NewService(),
@@ -468,6 +502,9 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 					},
 				}, env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, env.ContractConfigMapFormat),
 				BrokerDispatcherPod(env.SystemNamespace, nil),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
+				),
 			},
 			Key: testKey,
 			WantEvents: []string{
@@ -527,6 +564,8 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
 				),
 				newTrigger(),
 				NewService(),
@@ -595,6 +634,9 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 					Generation: 2,
 				}, env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, env.ContractConfigMapFormat),
 				BrokerDispatcherPod(env.SystemNamespace, nil),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
+				),
 			},
 			Key: testKey,
 			WantEvents: []string{
@@ -677,6 +719,11 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(),
 				NewService(),
@@ -716,7 +763,14 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 		{
 			Name: "Empty data plane config map",
 			Objects: []runtime.Object{
-				NewBroker(BrokerReady),
+				NewBroker(
+					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
+				),
 				newTrigger(),
 				NewService(),
 				NewConfigMapWithBinaryData(env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, nil),
@@ -918,6 +972,8 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
 				),
 				newTrigger(
 					withFilters(
@@ -965,6 +1021,9 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 					},
 				}, env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, env.ContractConfigMapFormat),
 				BrokerDispatcherPod(env.SystemNamespace, nil),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
+				),
 			},
 			Key: testKey,
 			WantEvents: []string{
@@ -1004,6 +1063,8 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
 				),
 				newTrigger(
 					withFilters(
@@ -1019,6 +1080,9 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 					),
 				),
 				NewService(),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
+				),
 				NewConfigMapFromContract(&contract.Contract{
 					Resources: []*contract.Resource{
 						{
@@ -1308,6 +1372,11 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(
 					withFilters(
@@ -1606,6 +1675,11 @@ func triggerReconciliation(t *testing.T, format string, env config.Env, useNewFi
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.DataPlaneConfigConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(),
 				NewService(),
@@ -2755,25 +2829,48 @@ func useTableWithFlags(t *testing.T, table TableTest, env *config.Env, flags fea
 
 		reconciler := &Reconciler{
 			Reconciler: &base.Reconciler{
-				KubeClient:                  kubeclient.Get(ctx),
-				PodLister:                   listers.GetPodLister(),
-				SecretLister:                listers.GetSecretLister(),
-				DataPlaneConfigMapNamespace: env.DataPlaneConfigMapNamespace,
-				DataPlaneConfigMapName:      env.ContractConfigMapName,
-				DataPlaneConfigFormat:       env.ContractConfigMapFormat,
-				DataPlaneNamespace:          env.SystemNamespace,
-				DispatcherLabel:             base.BrokerDispatcherLabel,
-				ReceiverLabel:               base.BrokerReceiverLabel,
+				KubeClient:                   kubeclient.Get(ctx),
+				PodLister:                    listers.GetPodLister(),
+				SecretLister:                 listers.GetSecretLister(),
+				DataPlaneConfigMapNamespace:  env.DataPlaneConfigMapNamespace,
+				ContractConfigMapName:        env.ContractConfigMapName,
+				ContractConfigMapFormat:      env.ContractConfigMapFormat,
+				DataPlaneConfigConfigMapName: env.DataPlaneConfigConfigMapName,
+				DataPlaneNamespace:           env.SystemNamespace,
+				DispatcherLabel:              base.BrokerDispatcherLabel,
+				ReceiverLabel:                base.BrokerReceiverLabel,
 			},
 			FlagsHolder: &FlagsHolder{
 				Flags: flags,
 			},
 			BrokerLister:              listers.GetBrokerLister(),
+			ConfigMapLister:           listers.GetConfigMapLister(),
 			EventingClient:            eventingclient.Get(ctx),
 			Resolver:                  nil,
 			Env:                       env,
 			BrokerClass:               kafka.BrokerClass,
 			DataPlaneConfigMapLabeler: base.NoopConfigmapOption,
+			InitOffsetsFunc: func(ctx context.Context, kafkaClient sarama.Client, kafkaAdminClient sarama.ClusterAdmin, topics []string, consumerGroup string) (int32, error) {
+				return 1, nil
+			},
+			NewKafkaClient: func(addrs []string, config *sarama.Config) (sarama.Client, error) {
+				return &kafkatesting.MockKafkaClient{}, nil
+			},
+			NewKafkaClusterAdminClient: func(_ []string, _ *sarama.Config) (sarama.ClusterAdmin, error) {
+				return &kafkatesting.MockKafkaClusterAdmin{
+					ExpectedTopicName: BrokerTopic(),
+					ExpectedTopics:    []string{BrokerTopic()},
+					ExpectedTopicsMetadataOnDescribeTopics: []*sarama.TopicMetadata{
+						{
+							Err:        0,
+							Name:       BrokerTopic(),
+							IsInternal: false,
+							Partitions: []*sarama.PartitionMetadata{{}},
+						},
+					},
+					T: t,
+				}, nil
+			},
 		}
 
 		reconciler.Resolver = resolver.NewURIResolverFromTracker(ctx, tracker.New(func(name types.NamespacedName) {}, 0))
diff --git a/control-plane/pkg/reconciler/trigger/v2/triggerv2_test.go b/control-plane/pkg/reconciler/trigger/v2/triggerv2_test.go
index fd0fd9b43..5f66ca8ec 100644
--- a/control-plane/pkg/reconciler/trigger/v2/triggerv2_test.go
+++ b/control-plane/pkg/reconciler/trigger/v2/triggerv2_test.go
@@ -22,10 +22,13 @@ import (
 	"testing"
 
 	"k8s.io/utils/pointer"
+	sources "knative.dev/eventing-kafka/pkg/apis/sources/v1beta1"
 	eventingduck "knative.dev/eventing/pkg/apis/duck/v1"
 
 	internals "knative.dev/eventing-kafka-broker/control-plane/pkg/apis/internals/kafka/eventing"
 	"knative.dev/eventing-kafka-broker/control-plane/pkg/config"
+	"knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/base"
+	brokerreconciler "knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/broker"
 
 	corev1 "k8s.io/api/core/v1"
 	"k8s.io/apimachinery/pkg/runtime"
@@ -50,11 +53,14 @@ const (
 	triggerName = "test-trigger"
 	// namespace of the trigger under test
 	triggerNamespace = "test-namespace"
+
+	bootstrapServers = "kafka-1:9092,kafka-2:9093"
 )
 
 var DefaultEnv = &config.Env{
 	DataPlaneConfigMapNamespace: "knative-eventing",
 	ContractConfigMapName:       "kafka-broker-brokers-triggers",
+	ContractConfigMapFormat:     base.Json,
 	GeneralConfigMapName:        "kafka-broker-config",
 	SystemNamespace:             "knative-eventing",
 }
@@ -71,6 +77,8 @@ var (
 
 func TestReconcileKind(t *testing.T) {
 
+	env := DefaultEnv
+
 	testKey := fmt.Sprintf("%s/%s", triggerNamespace, triggerName)
 
 	table := TableTest{
@@ -79,8 +87,13 @@ func TestReconcileKind(t *testing.T) {
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
 				),
 				newTrigger(),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
+				),
 			},
 			Key: testKey,
 			WantCreates: []runtime.Object{
@@ -95,7 +108,7 @@ func TestReconcileKind(t *testing.T) {
 						ConsumerConfigs(
 							ConsumerGroupIdConfig(TriggerUUID),
 						),
-						ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered)),
+						ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered, ConsumerInitialOffset(sources.OffsetLatest))),
 						ConsumerFilters(NewConsumerSpecFilters()),
 						ConsumerReply(ConsumerTopicReply()),
 					)),
@@ -119,6 +132,11 @@ func TestReconcileKind(t *testing.T) {
 				NewBroker(
 					BrokerReady,
 					WithRetry(pointer.Int32Ptr(10), &exponential, pointer.StringPtr("PT2S")),
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(),
 			},
@@ -140,6 +158,7 @@ func TestReconcileKind(t *testing.T) {
 							NewConsumerRetry(10),
 							NewConsumerBackoffDelay("PT2S"),
 							NewConsumerBackoffPolicy(eventingduck.BackoffPolicyExponential),
+							ConsumerInitialOffset(sources.OffsetLatest),
 						)),
 						ConsumerFilters(NewConsumerSpecFilters()),
 						ConsumerReply(ConsumerTopicReply()),
@@ -163,6 +182,11 @@ func TestReconcileKind(t *testing.T) {
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(reconcilertesting.WithAnnotation(deliveryOrderAnnotation, string(internals.Ordered))),
 			},
@@ -179,7 +203,7 @@ func TestReconcileKind(t *testing.T) {
 						ConsumerConfigs(
 							ConsumerGroupIdConfig(TriggerUUID),
 						),
-						ConsumerDelivery(NewConsumerSpecDelivery(internals.Ordered)),
+						ConsumerDelivery(NewConsumerSpecDelivery(internals.Ordered, ConsumerInitialOffset(sources.OffsetLatest))),
 						ConsumerFilters(NewConsumerSpecFilters()),
 						ConsumerReply(ConsumerTopicReply()),
 					)),
@@ -203,6 +227,11 @@ func TestReconcileKind(t *testing.T) {
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(reconcilertesting.WithAnnotation(deliveryOrderAnnotation, string(internals.Unordered))),
 			},
@@ -219,7 +248,7 @@ func TestReconcileKind(t *testing.T) {
 						ConsumerConfigs(
 							ConsumerGroupIdConfig(TriggerUUID),
 						),
-						ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered)),
+						ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered, ConsumerInitialOffset(sources.OffsetLatest))),
 						ConsumerFilters(NewConsumerSpecFilters()),
 						ConsumerReply(ConsumerTopicReply()),
 					)),
@@ -243,6 +272,11 @@ func TestReconcileKind(t *testing.T) {
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(reconcilertesting.WithAnnotation(deliveryOrderAnnotation, "invalid")),
 			},
@@ -274,6 +308,11 @@ func TestReconcileKind(t *testing.T) {
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(),
 				NewConsumerGroup(
@@ -300,7 +339,7 @@ func TestReconcileKind(t *testing.T) {
 							ConsumerConfigs(
 								ConsumerGroupIdConfig(TriggerUUID),
 							),
-							ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered)),
+							ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered, ConsumerInitialOffset(sources.OffsetLatest))),
 							ConsumerFilters(NewConsumerSpecFilters()),
 							ConsumerReply(ConsumerTopicReply()),
 						)),
@@ -325,6 +364,11 @@ func TestReconcileKind(t *testing.T) {
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(),
 				NewConsumerGroup(
@@ -350,7 +394,7 @@ func TestReconcileKind(t *testing.T) {
 							ConsumerConfigs(
 								ConsumerGroupIdConfig(TriggerUUID),
 							),
-							ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered)),
+							ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered, ConsumerInitialOffset(sources.OffsetLatest))),
 							ConsumerFilters(NewConsumerSpecFilters()),
 							ConsumerReply(ConsumerTopicReply()),
 						)),
@@ -374,6 +418,11 @@ func TestReconcileKind(t *testing.T) {
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(),
 				NewConsumerGroup(
@@ -387,7 +436,7 @@ func TestReconcileKind(t *testing.T) {
 						ConsumerConfigs(
 							ConsumerGroupIdConfig(TriggerUUID),
 						),
-						ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered)),
+						ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered, ConsumerInitialOffset(sources.OffsetLatest))),
 						ConsumerFilters(NewConsumerSpecFilters()),
 						ConsumerReply(ConsumerTopicReply()),
 					)),
@@ -412,6 +461,11 @@ func TestReconcileKind(t *testing.T) {
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(),
 				NewConsumerGroup(
@@ -425,7 +479,7 @@ func TestReconcileKind(t *testing.T) {
 						ConsumerConfigs(
 							ConsumerGroupIdConfig(TriggerUUID),
 						),
-						ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered)),
+						ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered, ConsumerInitialOffset(sources.OffsetLatest))),
 						ConsumerFilters(NewConsumerSpecFilters()),
 						ConsumerReply(ConsumerTopicReply()),
 					)),
@@ -449,6 +503,11 @@ func TestReconcileKind(t *testing.T) {
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(),
 				NewConsumerGroup(
@@ -462,7 +521,7 @@ func TestReconcileKind(t *testing.T) {
 						ConsumerConfigs(
 							ConsumerGroupIdConfig(TriggerUUID),
 						),
-						ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered)),
+						ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered, ConsumerInitialOffset(sources.OffsetLatest))),
 						ConsumerFilters(NewConsumerSpecFilters()),
 						ConsumerReply(ConsumerTopicReply()),
 					)),
@@ -487,6 +546,11 @@ func TestReconcileKind(t *testing.T) {
 			Objects: []runtime.Object{
 				NewBroker(
 					BrokerReady,
+					WithTopicStatusAnnotation(BrokerTopic()),
+					WithBootstrapServerStatusAnnotation(bootstrapServers),
+				),
+				DataPlaneConfigMap(env.DataPlaneConfigMapNamespace, env.ContractConfigMapName, brokerreconciler.ConsumerConfigKey,
+					DataPlaneConfigInitialOffset(brokerreconciler.ConsumerConfigKey, sources.OffsetLatest),
 				),
 				newTrigger(),
 				NewConsumerGroup(
@@ -500,7 +564,7 @@ func TestReconcileKind(t *testing.T) {
 						ConsumerConfigs(
 							ConsumerGroupIdConfig(TriggerUUID),
 						),
-						ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered)),
+						ConsumerDelivery(NewConsumerSpecDelivery(internals.Unordered, ConsumerInitialOffset(sources.OffsetLatest))),
 						ConsumerFilters(NewConsumerSpecFilters()),
 						ConsumerReply(ConsumerTopicReply()),
 					)),
@@ -600,12 +664,13 @@ func TestReconcileKind(t *testing.T) {
 		},
 	}
 
-	table.Test(t, NewFactory(nil, func(ctx context.Context, listers *Listers, env *config.Env, row *TableRow) controller.Reconciler {
+	table.Test(t, NewFactory(env, func(ctx context.Context, listers *Listers, env *config.Env, row *TableRow) controller.Reconciler {
 
 		logger := logging.FromContext(ctx)
 
 		reconciler := &Reconciler{
 			BrokerLister:        listers.GetBrokerLister(),
+			ConfigMapLister:     listers.GetConfigMapLister(),
 			EventingClient:      eventingclient.Get(ctx),
 			Env:                 env,
 			ConsumerGroupLister: listers.GetConsumerGroupLister(),
diff --git a/test/config/cm-watcher-broker.yaml b/test/config/cm-watcher-broker.yaml
index a4d7d3032..83a552f88 100644
--- a/test/config/cm-watcher-broker.yaml
+++ b/test/config/cm-watcher-broker.yaml
@@ -48,6 +48,8 @@ spec:
               value: knative-eventing
             - name: CONTRACT_CONFIG_MAP_NAME
               value: kafka-broker-brokers-triggers
+            - name: DATA_PLANE_CONFIG_CONFIG_MAP_NAME
+              value: config-kafka-broker-data-plane
             - name: CONFIG_LOGGING_NAME
               value: config-logging
             - name: CONFIG_OBSERVABILITY_NAME
diff --git a/test/config/cm-watcher-channel.yaml b/test/config/cm-watcher-channel.yaml
index 13c10941f..fd48971a5 100644
--- a/test/config/cm-watcher-channel.yaml
+++ b/test/config/cm-watcher-channel.yaml
@@ -48,6 +48,8 @@ spec:
               value: knative-eventing
             - name: CONTRACT_CONFIG_MAP_NAME
               value: kafka-channel-channels-subscriptions
+            - name: DATA_PLANE_CONFIG_CONFIG_MAP_NAME
+              value: config-kafka-broker-data-plane
             - name: CONFIG_LOGGING_NAME
               value: config-logging
             - name: CONFIG_OBSERVABILITY_NAME
diff --git a/test/config/cm-watcher-sink.yaml b/test/config/cm-watcher-sink.yaml
index d26a23422..6d6250921 100644
--- a/test/config/cm-watcher-sink.yaml
+++ b/test/config/cm-watcher-sink.yaml
@@ -46,6 +46,8 @@ spec:
           env:
             - name: DATA_PLANE_CONFIG_MAP_NAMESPACE
               value: knative-eventing
+            - name: DATA_PLANE_CONFIG_CONFIG_MAP_NAME
+              value: config-kafka-broker-data-plane
             - name: CONTRACT_CONFIG_MAP_NAME
               value: kafka-sink-sinks
             - name: CONFIG_LOGGING_NAME
diff --git a/test/e2e_new/broker_test.go b/test/e2e_new/broker_test.go
index 8d997dc00..7cb5f0256 100644
--- a/test/e2e_new/broker_test.go
+++ b/test/e2e_new/broker_test.go
@@ -71,3 +71,17 @@ func TestBrokerConfigMapDoesNotExist(t *testing.T) {
 
 	env.Test(ctx, t, features.BrokerConfigMapDoesNotExist())
 }
+
+func TestTriggerLatestOffset(t *testing.T) {
+	t.Parallel()
+
+	ctx, env := global.Environment(
+		knative.WithKnativeNamespace(system.Namespace()),
+		knative.WithLoggingConfig,
+		knative.WithTracingConfig,
+		k8s.WithEventListener,
+		environment.Managed(t),
+	)
+
+	env.Test(ctx, t, features.TriggerLatestOffset())
+}
diff --git a/test/e2e_new/features/trigger_offset_reset.go b/test/e2e_new/features/trigger_offset_reset.go
new file mode 100644
index 000000000..13e86d4a3
--- /dev/null
+++ b/test/e2e_new/features/trigger_offset_reset.go
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2022 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 features
+
+import (
+	"context"
+	"time"
+
+	"github.com/cloudevents/sdk-go/v2/test"
+	"github.com/google/uuid"
+	"k8s.io/apimachinery/pkg/types"
+	"knative.dev/eventing/test/rekt/resources/broker"
+	"knative.dev/eventing/test/rekt/resources/trigger"
+	"knative.dev/pkg/system"
+	"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/eventing-kafka-broker/test/e2e_new/resources/configmap"
+)
+
+// TriggerLatestOffset tests that a Trigger receives only new events.
+func TriggerLatestOffset() *feature.Feature {
+	f := feature.NewFeatureNamed("Consumer latest auto.offset.reset config")
+
+	brokerName := feature.MakeRandomK8sName("broker")
+	cmName := feature.MakeRandomK8sName("cm-config")
+
+	source1 := feature.MakeRandomK8sName("source1")
+	source2 := feature.MakeRandomK8sName("source2")
+
+	trigger1Name := feature.MakeRandomK8sName("trigger1")
+	sink1 := feature.MakeRandomK8sName("sink1")
+
+	trigger2Name := feature.MakeRandomK8sName("trigger2")
+	sink2 := feature.MakeRandomK8sName("sink2")
+
+	event1 := test.FullEvent()
+	eventID1 := uuid.New().String()
+	event1.SetID(eventID1)
+
+	event2 := test.FullEvent()
+	eventID2 := uuid.New().String()
+	event2.SetID(eventID2)
+
+	f.Setup("install config", configmap.Copy(types.NamespacedName{Namespace: system.Namespace(), Name: "kafka-broker-config"}, cmName))
+	f.Setup("install broker", broker.Install(brokerName, append(broker.WithEnvConfig(), broker.WithConfig(cmName))...))
+	f.Setup("broker is ready", broker.IsReady(brokerName))
+
+	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("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("trigger 2 is ready", trigger.IsReady(trigger2Name))
+
+	f.Assert("send event 2", func(ctx context.Context, t feature.T) {
+		trigger.IsReady(trigger2Name)(ctx, t) // Wait for trigger ready
+		eventshub.Install(source2, eventshub.InputEvent(event2), eventshub.StartSenderToResource(broker.GVR(), brokerName))(ctx, t)
+	})
+
+	// Both triggers receive event 1 and 2.
+	f.Assert("event 2 is received by sink 1", assert.OnStore(sink1).MatchEvent(test.HasId(eventID2)).Exact(1))
+	f.Assert("event 2 is received by sink 2", assert.OnStore(sink2).MatchEvent(test.HasId(eventID2)).Exact(1))
+
+	// Trigger 2 doesn't receive event 1 (sent before it was ready)
+	f.Assert("event 1 is not received by sink 2", func(ctx context.Context, t feature.T) {
+		trigger.IsReady(trigger2Name)(ctx, t) // Wait for trigger ready
+		time.Sleep(20 * time.Second)          // eventually
+		assert.OnStore(sink2).MatchEvent(test.HasId(eventID1)).Not()(ctx, t)
+	})
+
+	return f
+}