-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Closed
Description
/area API
I dropped the ball regarding how we handled RevisionSpec.Timeout in the OSS implementation. We deviated from what was originally in the spec and opt'd to change the spec (#10806) rather than fix the behaviour.
We prioritized backwards compatibility over remaining conformant.
In hindsight this was a mistake since:
- This led us to introduced a new field to cover the functional gap - (Should be possible to set an actual revision timeout (max duration, not first byte) #10851)
TimeoutandMaxDurationbeing so similar is confusing and bad UX for end-users- Workloads running on the OSS implementation will behave differently on other compliant Knative offerings.
New plan is here: #12634 (comment)
I think the best path forward here is:
-
Drop MaxDurationSeconds from the RevisionSpec #12635Yes this is poor form but it's only been out for two weeks in the latest release at the time of writing and hasn't been documented
-
create a feature flag that enables the first byte timeout logic (on by default) -
notify users about this default and be explicit they should set it for compatibility -
after N releases we swap the default to be conformant to the spec's original intention -
For those who opt into the first-byte timeout we provide a maxDuration annotation so they still have that ability -
Allow a per-revision override via annotations so existing revisions can work independently of the operator settings
Metadata
Metadata
Assignees
Labels
area/APIAPI objects and controllersAPI objects and controllers