| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-sdks - 2019-01-17 | |||
| 16:00:46 | edleafe | You'd think moving from a WG to a SIG would be a step up, right? | |
| 16:00:50 | tosky | :D | |
| 16:01:23 | elmiko | o/ | |
| 16:01:34 | elmiko | someone say drinks? | |
| 16:02:15 | dtantsur | lol | |
| 16:56:45 | elmiko | heads up edleafe dtantsur, i'll be on CET next week so i will most likely show up for the early session (gonna be at a conference) | |
| 16:56:55 | edleafe | elmiko: ack | |
| 17:03:07 | aspiers | hi... we have a question about what the path for the new version of the oslo.middleware healthcheck API should be | |
| 17:03:30 | aspiers | IIUC the current one is /healthcheck | |
| 17:04:14 | aspiers | no doubt I'm about to ask a stupid question as never worked with OpenStack API code before | |
| 17:04:18 | aspiers | but I guess /v2/healthcheck is a bad idea since that stomps on the whole microversion thing? | |
| 17:04:30 | edleafe | aspiers: I'm not familiar with the usage. Do users specify a version for the healthcheck call? | |
| 17:04:38 | evrardjp | edleafe: not right nwo | |
| 17:04:41 | aspiers | I think the idea was to specify it in the path | |
| 17:04:47 | aspiers | but we're open to recommendations | |
| 17:04:59 | aspiers | https://review.openstack.org/#/c/617924/1/oslo_middleware/healthcheck/__init__.py | |
| 17:05:09 | aspiers | is the WIP prototype from mugsie | |
| 17:05:14 | edleafe | Generally a header is preferred over mangling the path with version info | |
| 17:05:17 | aspiers | I'm just polishing it up now | |
| 17:05:20 | dtantsur | elmiko: cool! | |
| 17:05:32 | aspiers | edleafe: OK, but this would be a different header to the normal microversion? | |
| 17:05:52 | elmiko | dtantsur: you gonna be at devconf? | |
| 17:05:52 | dtantsur | "normal microversion"? :D | |
| 17:05:59 | dtantsur | elmiko: devconf.cz - yep | |
| 17:06:02 | evrardjp | aspiers: it could technically be the same header, it's a different path | |
| 17:06:20 | mugsie | in this case, there is a pre-existing URL, so it should be something like /status - move away from the /healthcheck that v1 uses | |
| 17:06:22 | dtantsur | OpenStack-Api-Version: compute 2.42, healthcheck 1.1\ | |
| 17:06:24 | dtantsur | or something | |
| 17:06:25 | elmiko | dtantsur: \o/ | |
| 17:06:28 | aspiers | right, that one | |
| 17:06:40 | evrardjp | mugsie: I like that idea | |
| 17:06:40 | edleafe | aspiers: microversions are per-call | |
| 17:06:51 | aspiers | edleafe: sure | |
| 17:06:58 | aspiers | evrardjp: me too | |
| 17:07:04 | aspiers | status can be about more than just health | |
| 17:07:09 | cdent | I think if we want the middleware to be super easy, all it should be is a path | |
| 17:07:09 | mugsie | and microversions make it unusable for a lot of monitoring application uses - so we should avodi it if possible | |
| 17:07:15 | dtantsur | just a word of caution: obvious things like /status may clash with services that do not use major versions | |
| 17:07:18 | evrardjp | mugsie: agreed again | |
| 17:07:27 | mugsie | dtantsur: true | |
| 17:07:28 | evrardjp | cdent: ok | |
| 17:07:37 | aspiers | ah ok | |
| 17:07:56 | aspiers | Apache has mod_status.so which uses /status IIRC | |
| 17:07:58 | edleafe | mugsie: my only concern is when you run out of synonyms for 'healthcheck' :) | |
| 17:07:58 | dtantsur | so if we declare a standard endpoint, we may want it verbose. something like /openstack-status | |
| 17:08:02 | aspiers | although that is optional | |
| 17:08:06 | mugsie | /statuscheck /superhealthcheck | |
| 17:08:33 | dtantsur | just to make sure e.g. Placement never wants to introduce its own /status :) | |
| 17:08:37 | evrardjp | dtantsur: thanks for the advice here , I would totally have forgotten that | |
| 17:09:10 | dtantsur | now, if you do insist on major versions (we you shouldn't), it could be /openstack-status/v1 | |
| 17:09:39 | evrardjp | haha | |
| 17:09:42 | aspiers | there is some benefit to being somewhat consistent with the existing /healthcheck | |
| 17:09:48 | aspiers | /healthcheck-v2 ? | |
| 17:10:05 | dtantsur | what is this benefit? | |
| 17:10:08 | aspiers | and we want to leave room for v3 somehow :) | |
| 17:10:29 | dtantsur | if you want to leave room for large changes, use microversions | |
| 17:10:34 | mugsie | dont | |
| 17:10:35 | aspiers | dtantsur: so that people aren't confused about two totally different endpoints coming from the same oslo.middleware code | |
| 17:10:51 | elmiko | mugsie: ++ for /superhealthcheck XD | |
| 17:10:56 | mugsie | microversions will make it really hard for a lot of monitoring tools | |
| 17:10:59 | evrardjp | I think it would be fine to later add different path for different /superhealthchecks | |
| 17:11:11 | evrardjp | mugsie: I agree with you there | |
| 17:11:12 | dtantsur | mugsie: microversions are hard for everything, essentially | |
| 17:11:19 | evrardjp | we need the simplest thing for monitoring | |
| 17:11:30 | mugsie | personally, I am OK with /v<number>, but thats just me | |
| 17:11:43 | aspiers | I don't want to have to write a doc which says "for v1, use /healthcheck, for v2 use /openstack-status, and for v3 use /superawesomebunchofchecks" | |
| 17:11:55 | dtantsur | I don't see a problem with ^^ tbh | |
| 17:12:08 | dtantsur | especially if openstack-status is broader than healthcheck | |
| 17:12:17 | aspiers | OK I can try to privately deal with my OCD about inconsistency then :) | |
| 17:12:26 | edleafe | The problem is the repeated change of the API. | |
| 17:12:27 | dtantsur | I hear you, it can be painful | |
| 17:12:45 | elmiko | i'm more in favor of a commonly known path that could live outside of any path-based versioning scheme, but that's just my opinion | |
| 17:12:53 | dtantsur | hmm, we can do /healthcheck/v2 even while keeping /healthcheck | |
| 17:12:55 | elmiko | i don't have a strong technical argument | |
| 17:13:07 | aspiers | dtantsur: if that works, it sounds good | |
| 17:13:09 | evrardjp | elmiko: /healthcheck-v2.0 then /healthcheck-v3.0 ? | |
| 17:13:13 | mugsie | elmiko: this should be independant of the API version | |
| 17:13:16 | evrardjp | should that happen later? | |
| 17:13:17 | dtantsur | just make /healthcheck/(?!v2) redirect to /healthcheck/v1 and move the old stuff to /v1 | |
| 17:13:29 | elmiko | honestly, we should get this stuff written into the proposed spec/guideline for health checks | |
| 17:13:43 | elmiko | mugsie: right, that's why i like it to live on a consistent endpoint | |
| 17:13:44 | edleafe | dtantsur: that's the least terrible so far | |
| 17:13:49 | dtantsur | so e.g. /healthcheck/foo/bar redirects to /healthcheck/v1/foo/bar | |
| 17:13:51 | evrardjp | elmiko: it sounds like we're gonna get 10 different answers | |
| 17:13:56 | dtantsur | but /healthcheck/v2/foo/bar is just v2 | |
| 17:13:58 | aspiers | LOL, we're back where we were in the same bikeshed as 2 years ago XD | |
| 17:14:08 | elmiko | evrardjp: imo, /healthcheck/v{whatever} is preferable | |
| 17:14:18 | elmiko | evrardjp: yup, pretty much | |
| 17:14:23 | aspiers | I like /healthcheck/v$NUMBER | |
| 17:14:30 | dtantsur | I think we actually do it in ironic with our only major version (/nodes equivalent to /v1/nodes) | |
| 17:14:31 | mugsie | +1 | |
| 17:14:32 | aspiers | mugsie: that work for you? | |
| 17:14:35 | edleafe | Not to divert the conversation, but what is driving the need for new healthcheck versions? | |
| 17:14:50 | dtantsur | edleafe: it's a good question actually | |
| 17:14:53 | mugsie | edleafe: the old one misses some information, and the body changes | |
| 17:14:53 | aspiers | edleafe: https://storyboard.openstack.org/#!/story/2001439 | |
| 17:15:01 | aspiers | please read that first :) | |
| 17:15:06 | aspiers | there's a lot of history here | |
| 17:15:09 | aspiers | a *lot* | |
| 17:15:23 | aspiers | about 2+ years of bikeshedding | |