Repository: knative-sandbox/eventing-kafka
Pull request #132 (2020-10-22 08:02:31)

Use CRD v1 API for KafkaChannel, KafkaSource and KafkaBinding
CRD v1beta1 API is deprecated and will be removed in [k8s 1.22](https://github.com/kubernetes/kubernetes/issues/82022).
Similar to https://github.com/knative/eventing/pull/3360.
Webhook API bump in a follow-up.

## Proposed Changes

- Use CRD v1 API for KafkaChannel, KafkaSource and KafkaBinding

<!--
If this change has user-visible impact, follow the instructions below.
Examples include:

- 🎁 Add new feature
- 🐛 Fix bug
- 🧽 Update or clean up current behavior
- 🗑️ Remove feature or internal logic

Otherwise delete the rest of this template.
-->

**Release Note**

<!--
🗒️ 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
- 🎁 Add new feature
KafkaChannel CustomResourceDefinition now uses apiextensions.k8s.io/v1 APIs
```

/cc slinkydeveloper matzew 

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

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

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

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

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

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":["davyodom"]} -->
codecov[bot]: # [Codecov](https://codecov.io/gh/knative-sandbox/eventing-kafka/pull/132?src=pr&el=h1) Report
> :exclamation: No coverage uploaded for pull request base (`master@668e98e`). [Click here to learn what that means](https://docs.codecov.io/docs/error-reference#section-missing-base-commit).
> The diff coverage is `n/a`.

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

```diff
@@            Coverage Diff            @@
##             master     #132   +/-   ##
=========================================
  Coverage          ?   74.92%           
=========================================
  Files             ?      110           
  Lines             ?     3944           
  Branches          ?        0           
=========================================
  Hits              ?     2955           
  Misses            ?      805           
  Partials          ?      184           
```



------

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

matzew: /hold

we need upgrade tests for that 

I think @aliok has some reference GH issue for this, what all needs to be done 
pierDipi: @matzew, would you mind helping me understand why? 
To clarify, I'm changing the CRD apiVersion (apiextensions.k8s.io/v1), not adding the KafkaChannel v1.
matzew: If we tackle this - can we also tackle the source ? 


Does it work when applying the `V1` based version on-top of a `v1beta` version?  and than "rolling back from V1 to beta` ? 

I think when I did that for "eventing" repo, the tests there were useful 
knative-prow-robot: @pierDipi: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-knative-sandbox-eventing-kafka-integration-test-channel-distributed | d6fe2b22abcc4469358fbdd3a301535cf02a8940 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/132/pull-knative-sandbox-eventing-kafka-integration-test-channel-distributed/1324075881617952768) | `/test pull-knative-sandbox-eventing-kafka-integration-test-channel-distributed`

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

<details>

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

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-knative-sandbox-eventing-kafka-integration-test-channel-distributed | d6fe2b22abcc4469358fbdd3a301535cf02a8940 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/132/pull-knative-sandbox-eventing-kafka-integration-test-channel-distributed/1324075881617952768) | `/test pull-knative-sandbox-eventing-kafka-integration-test-channel-distributed`
pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated | d6fe2b22abcc4469358fbdd3a301535cf02a8940 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/132/pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated/1324075881592786944) | `/test pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated`

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

<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 -->
matzew: @pierDipi  Getting back to this.

We we structure those CRDs, like we have them on "eventing" repo ? 

Like:
* have the versions after the `group` (see https://github.com/matzew/eventing/blob/3974f6c67372dbc02c2fb2a0c024390ea5725553/config/channels/in-memory-channel/300-in-memory-channel.yaml#L25-L56)
* have `names`, `scope` at the end, before the `conversion` 

Can we also have the same lifting for the binding, the source and the distributed channel? 

matzew: Does that make sense @pierDipi  ?
pierDipi: @matzew it makes sense to me.
knative-prow-robot: @pierDipi: The following tests **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-knative-sandbox-eventing-kafka-integration-test-channel-distributed | d6fe2b22abcc4469358fbdd3a301535cf02a8940 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/132/pull-knative-sandbox-eventing-kafka-integration-test-channel-distributed/1324075881617952768) | `/test pull-knative-sandbox-eventing-kafka-integration-test-channel-distributed`
pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated | d6fe2b22abcc4469358fbdd3a301535cf02a8940 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/132/pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated/1324075881592786944) | `/test pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated`
pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated-sasl | d6fe2b22abcc4469358fbdd3a301535cf02a8940 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/132/pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated-sasl/1329630374476648448) | `/test pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated-sasl`

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

<details>

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

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-knative-sandbox-eventing-kafka-integration-test-channel-distributed | d6fe2b22abcc4469358fbdd3a301535cf02a8940 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/132/pull-knative-sandbox-eventing-kafka-integration-test-channel-distributed/1324075881617952768) | `/test pull-knative-sandbox-eventing-kafka-integration-test-channel-distributed`
pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated | d6fe2b22abcc4469358fbdd3a301535cf02a8940 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/132/pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated/1324075881592786944) | `/test pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated`
pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated-sasl | d6fe2b22abcc4469358fbdd3a301535cf02a8940 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/132/pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated-sasl/1329630374476648448) | `/test pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated-sasl`
pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated-tls | d6fe2b22abcc4469358fbdd3a301535cf02a8940 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka/132/pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated-tls/1329630374455676928) | `/test pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated-tls`

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

<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 -->
matzew: /retest
matzew: @pierDipi I think this needs a rebase
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-robot: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

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

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

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

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

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":["aliok"]} -->
knative-prow-robot: @pierDipi: The following test **failed**, say `/retest` to rerun all failed tests:

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

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

<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: Flaky, I opened an issue: https://github.com/knative-sandbox/eventing-kafka/issues/218
/retest
matzew: VEry cool! 
travis-minke-sap: Seem fine to me!   I had the same questions regarding `conversionReviewVersions` and so learned something from the conversation above ; )
matzew: /lgtm

/assign for @aliok to approve and unhold

Patch:
diff --git a/cmd/webhook/main.go b/cmd/webhook/main.go
index ef98e2976..6af200566 100644
--- a/cmd/webhook/main.go
+++ b/cmd/webhook/main.go
@@ -17,7 +17,6 @@ package main
 
 import (
 	channelwebhook "knative.dev/eventing-kafka/pkg/channel/webhook"
-	"knative.dev/eventing/pkg/logconfig"
 	"knative.dev/pkg/injection/sharedmain"
 	"knative.dev/pkg/signals"
 	"knative.dev/pkg/webhook"
@@ -33,7 +32,7 @@ func main() {
 
 	// Define Webhook Options
 	options := webhook.Options{
-		ServiceName: logconfig.WebhookName(),
+		ServiceName: webhook.NameFromEnv(),
 		Port:        webhook.PortFromEnv(8443),
 		SecretName:  Secret,
 	}
diff --git a/config/channel/distributed/300-eventing-kafka-configmap.yaml b/config/channel/distributed/300-eventing-kafka-configmap.yaml
index 6c106e3a7..f46fd7d7b 100644
--- a/config/channel/distributed/300-eventing-kafka-configmap.yaml
+++ b/config/channel/distributed/300-eventing-kafka-configmap.yaml
@@ -59,5 +59,5 @@ data:
       adminType: kafka # One of "kafka", "azure", "custom"
 kind: ConfigMap
 metadata:
-  name: config-eventing-kafka
+  name: config-kafka
   namespace: knative-eventing
diff --git a/config/channel/resources/kafkachannel-crd.yaml b/config/channel/resources/kafkachannel-crd.yaml
index a2340b8c6..441a288f8 100644
--- a/config/channel/resources/kafkachannel-crd.yaml
+++ b/config/channel/resources/kafkachannel-crd.yaml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: apiextensions.k8s.io/v1beta1
+apiVersion: apiextensions.k8s.io/v1
 kind: CustomResourceDefinition
 metadata:
   name: kafkachannels.messaging.knative.dev
@@ -23,53 +23,58 @@ metadata:
     duck.knative.dev/addressable: "true"
 spec:
   group: messaging.knative.dev
-  preserveUnknownFields: false
-  validation:
-    openAPIV3Schema:
-      type: object
-        # this is a work around so we don't need to flush out the
-        # schema for each version at this time
-        #
-        # see issue: https://github.com/knative/serving/issues/912
-      x-kubernetes-preserve-unknown-fields: true
+  versions:
+    - &version
+      name: v1alpha1
+      served: true
+      storage: true
+      subresources:
+        status: { }
+      schema:
+        openAPIV3Schema: &openAPIV3Schema
+          type: object
+          # this is a work around so we don't need to flush out the
+          # schema for each version at this time
+          #
+          # see issue: https://github.com/knative/serving/issues/912
+          x-kubernetes-preserve-unknown-fields: true
+      additionalPrinterColumns:
+        - name: Ready
+          type: string
+          jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
+        - name: Reason
+          type: string
+          jsonPath: ".status.conditions[?(@.type==\"Ready\")].reason"
+        - name: URL
+          type: string
+          jsonPath: .status.address.url
+        - name: Age
+          type: date
+          jsonPath: .metadata.creationTimestamp
+    - <<: *version
+      name: v1beta1
+      served: true
+      storage: false
+      schema:
+        openAPIV3Schema:
+          <<: *openAPIV3Schema
   names:
     kind: KafkaChannel
     plural: kafkachannels
     singular: kafkachannel
     categories:
-    - all
-    - knative
-    - messaging
-    - channel
+      - all
+      - knative
+      - messaging
+      - channel
     shortNames:
-    - kc
+      - kc
   scope: Namespaced
-  subresources:
-    status: {}
-  additionalPrinterColumns:
-    - name: Ready
-      type: string
-      JSONPath: ".status.conditions[?(@.type==\"Ready\")].status"
-    - name: Reason
-      type: string
-      JSONPath: ".status.conditions[?(@.type==\"Ready\")].reason"
-    - name: URL
-      type: string
-      JSONPath: .status.address.url
-    - name: Age
-      type: date
-      JSONPath: .metadata.creationTimestamp
-  versions:
-  - name: v1alpha1
-    served: true
-    storage: true
-  - name: v1beta1
-    served: true
-    storage: false
   conversion:
     strategy: Webhook
-    conversionReviewVersions: ["v1beta1", "v1alpha1"]
-    webhookClientConfig:
-      service:
-        name: kafka-webhook
-        namespace: knative-eventing
+    webhook:
+      conversionReviewVersions: [ "v1", "v1beta1" ]
+      clientConfig:
+        service:
+          name: kafka-webhook
+          namespace: knative-eventing
diff --git a/config/source/resources/kafkabinding.yaml b/config/source/resources/kafkabinding.yaml
index 5424d282e..11dd5a619 100644
--- a/config/source/resources/kafkabinding.yaml
+++ b/config/source/resources/kafkabinding.yaml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: apiextensions.k8s.io/v1beta1
+apiVersion: apiextensions.k8s.io/v1
 kind: CustomResourceDefinition
 metadata:
   labels:
@@ -22,49 +22,55 @@ metadata:
   name: kafkabindings.bindings.knative.dev
 spec:
   group: bindings.knative.dev
-  preserveUnknownFields: false
-  validation:
-    openAPIV3Schema:
-      type: object
-      # this is a work around so we don't need to flush out the
-      # schema for each version at this time
-      #
-      # see issue: https://github.com/knative/serving/issues/912
-      x-kubernetes-preserve-unknown-fields: true
+  versions:
+    - &version
+      name: v1alpha1
+      served: true
+      storage: true
+      subresources:
+        status: { }
+      schema:
+        openAPIV3Schema: &openAPIV3Schema
+          type: object
+          # this is a work around so we don't need to flush out the
+          # schema for each version at this time
+          #
+          # see issue: https://github.com/knative/serving/issues/912
+          x-kubernetes-preserve-unknown-fields: true
+      additionalPrinterColumns:
+        - name: BootstrapServers
+          type: string
+          jsonPath: ".spec.bootstrapServers"
+        - name: Ready
+          type: string
+          jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
+        - name: Reason
+          type: string
+          jsonPath: ".status.conditions[?(@.type==\"Ready\")].reason"
+        - name: Age
+          type: date
+          jsonPath: .metadata.creationTimestamp
+    - <<: *version
+      name: v1beta1
+      served: true
+      storage: false
+      schema:
+        openAPIV3Schema:
+          <<: *openAPIV3Schema
   names:
     categories:
-    - all
-    - knative
-    - eventing
-    - bindings
+      - all
+      - knative
+      - eventing
+      - bindings
     kind: KafkaBinding
     plural: kafkabindings
   scope: Namespaced
-  subresources:
-    status: {}
   conversion:
     strategy: Webhook
-    webhookClientConfig:
-      service:
-        name: kafka-source-webhook
-        namespace: knative-sources
-  additionalPrinterColumns:
-    - name: BootstrapServers
-      type: string
-      JSONPath: ".spec.bootstrapServers"
-    - name: Ready
-      type: string
-      JSONPath: ".status.conditions[?(@.type==\"Ready\")].status"
-    - name: Reason
-      type: string
-      JSONPath: ".status.conditions[?(@.type==\"Ready\")].reason"
-    - name: Age
-      type: date
-      JSONPath: .metadata.creationTimestamp
-  versions:
-  - name: v1alpha1
-    served: true
-    storage: true
-  - name: v1beta1
-    served: true
-    storage: false
+    webhook:
+      conversionReviewVersions: [ "v1", "v1beta1" ]
+      clientConfig:
+        service:
+          name: kafka-source-webhook
+          namespace: knative-sources
diff --git a/config/source/resources/kafkasource.yaml b/config/source/resources/kafkasource.yaml
index 9dd8221dc..8f75b44c9 100644
--- a/config/source/resources/kafkasource.yaml
+++ b/config/source/resources/kafkasource.yaml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: apiextensions.k8s.io/v1beta1
+apiVersion: apiextensions.k8s.io/v1
 kind: CustomResourceDefinition
 metadata:
   labels:
@@ -28,57 +28,63 @@ metadata:
   name: kafkasources.sources.knative.dev
 spec:
   group: sources.knative.dev
-  preserveUnknownFields: false
-  validation:
-    openAPIV3Schema:
-      type: object
-        # this is a work around so we don't need to flush out the
-        # schema for each version at this time
-        #
-        # see issue: https://github.com/knative/serving/issues/912
-      x-kubernetes-preserve-unknown-fields: true
+  versions:
+    - &version
+      name: v1alpha1
+      served: true
+      storage: true
+      schema:
+        openAPIV3Schema: &openAPIV3Schema
+          type: object
+          # this is a work around so we don't need to flush out the
+          # schema for each version at this time
+          #
+          # see issue: https://github.com/knative/serving/issues/912
+          x-kubernetes-preserve-unknown-fields: true
+      subresources:
+        status: { }
+        scale:
+          # specReplicasPath defines the JSONPath inside of a custom resource that corresponds to Scale.Spec.Replicas.
+          specReplicasPath: .spec.consumers
+          # statusReplicasPath defines the JSONPath inside of a custom resource that corresponds to Scale.Status.Replicas.
+          statusReplicasPath: .status.consumers
+      additionalPrinterColumns:
+        - name: Topics
+          type: string
+          jsonPath: ".spec.topics"
+        - name: BootstrapServers
+          type: string
+          jsonPath: ".spec.bootstrapServers"
+        - name: Ready
+          type: string
+          jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
+        - name: Reason
+          type: string
+          jsonPath: ".status.conditions[?(@.type==\"Ready\")].reason"
+        - name: Age
+          type: date
+          jsonPath: .metadata.creationTimestamp
+    - <<: *version
+      name: v1beta1
+      served: true
+      storage: false
+      schema:
+        openAPIV3Schema:
+          <<: *openAPIV3Schema
   names:
     categories:
-    - all
-    - knative
-    - eventing
-    - sources
+      - all
+      - knative
+      - eventing
+      - sources
     kind: KafkaSource
     plural: kafkasources
   scope: Namespaced
-  subresources:
-    status: {}
-    scale:
-      # specReplicasPath defines the JSONPath inside of a custom resource that corresponds to Scale.Spec.Replicas.
-      specReplicasPath: .spec.consumers
-      # statusReplicasPath defines the JSONPath inside of a custom resource that corresponds to Scale.Status.Replicas.
-      statusReplicasPath: .status.consumers
   conversion:
     strategy: Webhook
-    webhookClientConfig:
-      service:
-        name: kafka-source-webhook
-        namespace: knative-sources
-  additionalPrinterColumns:
-    - name: Topics
-      type: string
-      JSONPath: ".spec.topics"
-    - name: BootstrapServers
-      type: string
-      JSONPath: ".spec.bootstrapServers"
-    - name: Ready
-      type: string
-      JSONPath: ".status.conditions[?(@.type==\"Ready\")].status"
-    - name: Reason
-      type: string
-      JSONPath: ".status.conditions[?(@.type==\"Ready\")].reason"
-    - name: Age
-      type: date
-      JSONPath: .metadata.creationTimestamp
-  versions:
-  - name: v1alpha1
-    served: true
-    storage: true
-  - name: v1beta1
-    served: true
-    storage: false
+    webhook:
+      conversionReviewVersions: [ "v1", "v1beta1" ]
+      clientConfig:
+        service:
+          name: kafka-source-webhook
+          namespace: knative-sources
diff --git a/pkg/channel/distributed/common/config/configwatcher.go b/pkg/channel/distributed/common/config/configwatcher.go
index aa2de8fb7..3cedada30 100644
--- a/pkg/channel/distributed/common/config/configwatcher.go
+++ b/pkg/channel/distributed/common/config/configwatcher.go
@@ -30,7 +30,7 @@ import (
 )
 
 // The EventingKafkaConfig and these EK sub-structs contain our custom configuration settings,
-// stored in the config-eventing-kafka configmap.  The sub-structs are explicitly declared so that they
+// stored in the config-kafka configmap.  The sub-structs are explicitly declared so that they
 // can have their own JSON tags in the overall EventingKafkaConfig
 type EKKubernetesConfig struct {
 	CpuLimit      resource.Quantity `json:"cpuLimit,omitempty"`
diff --git a/pkg/channel/distributed/common/config/constants.go b/pkg/channel/distributed/common/config/constants.go
index af53d434f..af2d7ad0c 100644
--- a/pkg/channel/distributed/common/config/constants.go
+++ b/pkg/channel/distributed/common/config/constants.go
@@ -19,7 +19,7 @@ package config
 // Package Constants
 const (
 	// The name of the configmap used to hold eventing-kafka settings
-	SettingsConfigMapName = "config-eventing-kafka"
+	SettingsConfigMapName = "config-kafka"
 	// The name of the keys in the Data section of the eventing-kafka configmap that holds Sarama and Eventing-Kafka configuration YAML
 	SaramaSettingsConfigKey        = "sarama"
 	EventingKafkaSettingsConfigKey = "eventing-kafka"
diff --git a/pkg/channel/distributed/common/kafka/sarama/sarama.go b/pkg/channel/distributed/common/kafka/sarama/sarama.go
index b66f148cb..6ebc55561 100644
--- a/pkg/channel/distributed/common/kafka/sarama/sarama.go
+++ b/pkg/channel/distributed/common/kafka/sarama/sarama.go
@@ -131,7 +131,7 @@ The following shows an example of the expected usage...
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: config-eventing-kafka
+  name: config-kafka
   namespace: knative-eventing
 data:
   sarama: |
diff --git a/vendor/knative.dev/eventing/pkg/logconfig/config.go b/vendor/knative.dev/eventing/pkg/logconfig/config.go
deleted file mode 100644
index 4678db8af..000000000
--- a/vendor/knative.dev/eventing/pkg/logconfig/config.go
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-Copyright 2018 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 logconfig
-
-import (
-	"fmt"
-	"os"
-)
-
-const (
-	// Named Loggers are used to override the default log level. config-logging.yaml will use the follow:
-	//
-	// loglevel.controller: "info"
-	// loglevel.webhook: "info"
-
-	// Controller is the name of the override key used inside of the logging config for Controller.
-	Controller = "controller"
-
-	// Webhook is the name of the override key used inside of the logging config for Webhook Controller.
-	WebhookNameEnv = "WEBHOOK_NAME"
-)
-
-func WebhookName() string {
-	if webhook := os.Getenv(WebhookNameEnv); webhook != "" {
-		return webhook
-	}
-
-	panic(fmt.Sprintf(`The environment variable %q is not set
-
-If this is a process running on Kubernetes, then it should be using the downward
-API to initialize this variable via:
-
-  env:
-  - name: WEBHOOK_NAME
-    value: webhook
-`, WebhookNameEnv))
-}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 3b281c8e1..97578334d 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -1167,7 +1167,6 @@ knative.dev/eventing/pkg/client/listers/sources/v1alpha2
 knative.dev/eventing/pkg/client/listers/sources/v1beta1
 knative.dev/eventing/pkg/client/listers/sources/v1beta2
 knative.dev/eventing/pkg/kncloudevents
-knative.dev/eventing/pkg/logconfig
 knative.dev/eventing/pkg/reconciler/source
 knative.dev/eventing/pkg/reconciler/sugar
 knative.dev/eventing/pkg/reconciler/testing


Test patch:
diff --git a/pkg/channel/distributed/common/metrics/stats_reporter_test.go b/pkg/channel/distributed/common/metrics/stats_reporter_test.go
index a9b9b0a64..cce90f6c9 100644
--- a/pkg/channel/distributed/common/metrics/stats_reporter_test.go
+++ b/pkg/channel/distributed/common/metrics/stats_reporter_test.go
@@ -44,6 +44,8 @@ import (
 
 // Test The MetricsServer's Report() Functionality
 func TestMetricsServer_Report(t *testing.T) {
+	// see https://github.com/knative-sandbox/eventing-kafka/issues/218
+	t.Skip("Flaky test, therefore skipping for now")
 
 	// Test Data
 	metricsPort := 9878
diff --git a/pkg/channel/distributed/common/testing/constants.go b/pkg/channel/distributed/common/testing/constants.go
index 2bfccd75e..4da092a7b 100644
--- a/pkg/channel/distributed/common/testing/constants.go
+++ b/pkg/channel/distributed/common/testing/constants.go
@@ -25,7 +25,7 @@ const (
 	NewPassword = "TestNewPassword"
 
 	KnativeEventingNamespace       = "knative-eventing"
-	SettingsConfigMapName          = "config-eventing-kafka"
+	SettingsConfigMapName          = "config-kafka"
 	SaramaSettingsConfigKey        = "sarama"
 	EventingKafkaSettingsConfigKey = "eventing-kafka"
 
diff --git a/test/e2e-tests.sh b/test/e2e-tests.sh
index 99e1052f1..aefa076f1 100755
--- a/test/e2e-tests.sh
+++ b/test/e2e-tests.sh
@@ -299,7 +299,7 @@ function install_distributed_channel_crds() {
   # Update The Kafka Secret With Strimzi Kafka Cluster Brokers (No Authentication)
   sed -i "s/brokers: \"\"/brokers: ${STRIMZI_KAFKA_CLUSTER_BROKERS_ENCODED}/" "${KAFKA_CRD_CONFIG_DIR}/${EVENTING_KAFKA_SECRET_TEMPLATE}"
 
-  # Update the config-eventing-kafka configmap to disable SASL/TLS for the tests
+  # Update the config-kafka configmap to disable SASL/TLS for the tests
   sed -i '/^ *TLS:/{n;s/true/false/};/^ *SASL:/{n;s/true/false/}' "${KAFKA_CRD_CONFIG_DIR}/${EVENTING_KAFKA_CONFIG_TEMPLATE}"
 
   # Install The eventing-kafka KafkaChannel Implementation