Skip to content

Meta Channel doesn't conform the spec's CRD spec.subscribers requirement #3051

@aliok

Description

@aliok

Describe the bug
As noted in #3050 (comment), Channel doesn't doesn't allow subscribers in the spec.

Spec says this:

Spec Requirements
v1alpha1 Spec: each channel CRD MUST contain an array of subscribers: spec.subscribable.subscribers
v1beta1 Spec: each channel CRD MUST contain an array of subscribers: spec.subscribers

When a channel.messaging.knative.dev is created, by default Knative creates an InMemoryChannel. When we create a subscription against that Channel, InMemoryChannel will have the subscribers in the status, but it is not propagated to channel.messaging.knative.dev. Other fields like status.address are propagated fine.

Expected behavior
I should be able to create a channel.messaging.knative.dev with spec.subscribable.subscribers and #3050 should pass.

To Reproduce

cat <<EOS |kubectl apply -f -
---
apiVersion: messaging.knative.dev/v1alpha1
kind: Channel
metadata:
  name: foo
spec:
  subscribable:
    subscribers:
    - UID: "1234"
      ReplyUri: "foo.bar"
EOS

ends up in

Error from server (BadRequest): error when creating "channel_v1alpha1.yaml": admission webhook "validation.webhook.eventing.knative.dev" denied the request: validation failed: must not set the field(s): spec.subscribable.subscribers

Knative release version
0.14

Additional context
#3050

Metadata

Metadata

Assignees

Labels

area/channelskind/bugCategorizes issue or PR as related to a bug.priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions