-
Notifications
You must be signed in to change notification settings - Fork 475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Versioning cincinnati api and json schema #870
Versioning cincinnati api and json schema #870
Conversation
9d40c5e
to
4871b92
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The linter job is failing because some headers that are required from the template are missing in this doc. Please restore those headers and leave an explicit comment if you believe that section does not apply to this change.
enhancements/update/versioning-cincinnati-api.md missing "### User Stories"
enhancements/update/versioning-cincinnati-api.md missing "#### Dev Preview -> Tech Preview"
enhancements/update/versioning-cincinnati-api.md missing "#### Tech Preview -> GA"
enhancements/update/versioning-cincinnati-api.md missing "#### Removing a deprecated feature"
enhancements/update/versioning-cincinnati-api.md missing "### Upgrade / Downgrade Strategy"
Mostly looks good to me. Also we should include #870 (comment) |
603db2c
to
f96d7c6
Compare
f96d7c6
to
3b1ce92
Compare
Version the Cincinnati API and JSON for easy pass around and managing new version releases.
3b1ce92
to
40366bf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
#### URI Change | ||
The current URI follows `{URL}/v1/graph`. The new un-versioned URI will follow `{URL}/graph`. The existing URI can be | ||
redirected to the new URI. This can be done through cincinnati. In the case where an old URI is being called, cincinnati | ||
will by default return the graph that is compatible with the oldest supported version. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The oldest being v1 specifically or would a backwards compatible v1.1 be available at this endpoint too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we are gonna consider both the endpoints as one. Backward compatible v1.1 will be available at this endpoint as well. Currently, we will be supporting v1
as that's the oldest graph we know. But going forward we can make decisions when to drop specific versions based on their usage.
|
||
|
||
### Risks and Mitigations | ||
* As there are some customers that have old URI hardcoded while creating the cluster, we will have to support old URI |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we consider installer validation to block new installs using the versioned URI when the client expects a newer version than v1? For example if 4.10 CVO uses a v2 API we don't want to allow them to inadvertantly downrev to v1 and lose targetted edge blocking due to their configuration.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we are moving away from versioned URI to unversioned. So all requests from /v1/graph
will be handled as if they're coming to /graph
. Going forward we will be accepting the version using Media Type Versioning.
So, if someone hits the old URI with a correct media type version, they'll end up getting the intended graph or if someone hits the new URI without the media type version, they'll end up getting the oldest supported graph.
Installer validation will speed up the process of shifting to the new URI!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So the conclusion is that we'd never get rid of the legacy URL. That's fine.
Cincinnati should also implement a way to understand how many clients are consuming the various versions. | ||
This can be done by implementing metrics for old URI vs new URI in Cincinnati. Similarly, metrics should be implemented | ||
to understand the consumption of various media types (versions). This will help us to make decisions on deprecating the | ||
old versions and URI. For example, a single `cincinnati_pe_http_response_total` counter with labels for `uri` and `version` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: line is missing a terminal period .
.
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: LalatenduMohanty, sdodson The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
No description provided.