Skip to content

Channel go definitions: ¯\_(ツ)_/¯ #5364

@evankanderson

Description

@evankanderson

Describe the bug
Hey, it looks like there might be an API bug in Channel:
ChannelableStatus contains a DeadLetterChannel of type *duckv1.KReference, documented as:

DeadLetterChannel is a KReference and is set by the channel when it supports native error handling via a channel
but ChannelableSpec contains a DeliverySpec which has a DeadLetterSink of type duckv1.Destination, which could be a URL.
This means that either spec.delivery.deadLetterSink.ref is unresolved in status, or that the status.deadLetterChannel refers to something different (or both).

Expected behavior
The status of the Channel to include a resolved URL of the spec.delivery.deadLetterSink, or that the spec.delivery.deadLetterSink was only permitted to use the ref form to point to a channel.

To Reproduce
(See the code)

Knative release version
main / release-0.22

Additional context
It's not clear to me what the original intent of these fields was; https://github.com/evankanderson/specs/blob/main/specs/eventing/spec.md#kind-channel references status.deadLetterChannel but does not define spec.delivery; https://github.com/knative/specs/blob/main/specs/eventing/channel.md#spec-requirements indicates the requirement for spec.delivery and hints at dead letter behavior, but does not mention status at all with respect to dead letter behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/eventingThe Eventing api groupkind/bugCategorizes issue or PR as related to a bug.kind/documentationpriority/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

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions