-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Feature Flag Routing #4736
Copy link
Copy link
Open
Labels
area/APIAPI objects and controllersAPI objects and controllersarea/networkingkind/featureWell-understood/specified features, ready for coding.Well-understood/specified features, ready for coding.kind/specDiscussion of how a feature should be exposed to customers.Discussion of how a feature should be exposed to customers.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.Indicates that an issue or PR should not be auto-closed due to staleness.triage/acceptedIssues which should be fixed (post-triage)Issues which should be fixed (post-triage)
Milestone
Metadata
Metadata
Assignees
Labels
area/APIAPI objects and controllersAPI objects and controllersarea/networkingkind/featureWell-understood/specified features, ready for coding.Well-understood/specified features, ready for coding.kind/specDiscussion of how a feature should be exposed to customers.Discussion of how a feature should be exposed to customers.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.Indicates that an issue or PR should not be auto-closed due to staleness.triage/acceptedIssues which should be fixed (post-triage)Issues which should be fixed (post-triage)
In what area(s)?
/area API
/area networking
/kind spec
/kind proposal
Describe the feature
One of the things we hear from customers is that routing between revisions based on percentage isn't really of interest to them once in production. In practice they tend to lean more towards a model where only a select group of users are expected to use the latest versions so that everyone else (who need more stability) are not impacted during the testing phase. We call that "Feature Flag Routing". Where the routers (e.g. istio) route requests to certain versions based on some metadata in the message (e.g. perhaps some http header) rather than the random % based stuff. We'd like for Knative to eventually support this as an option. It's not clear if this can be done solely under the covers or whether it might result in an API change. If an API change might be needed it might be best to at least design it out prior to v1.0 when the API is locked down.
Some of the uses for the "select group":