| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-06-20 | |||
| 10:17:48 | johnthetubaguy | checking if its in a new microversion | |
| 10:17:56 | mgoddard | ah | |
| 10:18:15 | mgoddard | I'd quite like to not need to care what the latest version is | |
| 10:19:09 | johnthetubaguy | so if you do controllers upgrade, then wait for them all to be the same | |
| 10:19:12 | johnthetubaguy | its quite close | |
| 10:19:17 | johnthetubaguy | but I get your point | |
| 10:19:39 | mgoddard | service_version = service_obj.get_minimum_version_all_cells( | |
| 10:19:42 | mgoddard | context.get_admin_context(), ['nova-compute']) | |
| 10:19:58 | mgoddard | I'd quite like a command that does that, compares with the latest version and says yes/no | |
| 10:20:13 | johnthetubaguy | yeah, that would be a good nova-manage cmd | |
| 10:20:15 | mgoddard | or even waits with a timeout | |
| 10:20:43 | mgoddard | I'm leaning towards short sleep + nova RFE at this point :) | |
| 10:21:29 | johnthetubaguy | RFE? what is that | |
| 10:22:30 | mgoddard | blueprint | |
| 10:22:37 | mgoddard | :p | |
| 10:22:49 | johnthetubaguy | yeah, I am wondering about nova status as a place for this kind of thing | |
| 10:22:56 | johnthetubaguy | "is every upgraded" check, makes sense | |
| 10:23:06 | mgoddard | yeah | |
| 10:24:57 | johnthetubaguy | i am not seeing anything useful just yet | |
| 10:27:25 | johnthetubaguy | I am sure we used to have a nova-manage cmd for this, I guess we killed it | |
| 10:27:49 | mgoddard | that's a shame | |
| 10:30:25 | johnthetubaguy | https://github.com/openstack/nova/blob/fc8cd8f3b346c8f53e2dfc8e3de9fdcaedb0d35d/nova/cmd/manage.py#L613 | |
| 10:30:38 | johnthetubaguy | although doesn't seem like that had the version either | |
| 10:32:52 | mgoddard | that was just pushed into the API wasn't it? | |
| 10:34:00 | mgoddard | if the version was available in the service API that would be fine, but ideally I'd want a way to discover what the version should be | |
| 10:34:35 | mgoddard | Looks like it takes 10+ seconds to update the service version in an AIO setup | |
| 10:36:11 | johnthetubaguy | there is a reporting delay config | |
| 10:36:33 | johnthetubaguy | yeah, so I can't find anything useful in the API or nova-manage, need to add a new thing | |
| 10:36:59 | johnthetubaguy | I mean SIGHUP should be enough, but not sure how we do that via docker? | |
| 10:37:39 | mgoddard | no SIGHUP, it's busted. Need to restart | |
| 10:37:59 | mgoddard | we do that already in kolla, the problem is we're not waiting long enough to actually uncap | |
| 10:38:19 | johnthetubaguy | ah, right | |
| 10:39:11 | johnthetubaguy | https://github.com/openstack/nova/blob/74aebe0d4e5a978a40011e890aee9e70e98246c4/nova/servicegroup/api.py#L35 | |
| 10:39:13 | mgoddard | so I think my band aid is 'sleep ${nova_compute_startup_delay:-30}' | |
| 10:39:25 | johnthetubaguy | so we do wait 5 seconds before reporting | |
| 10:39:40 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Ignore hw_vif_type for direct, direct-physical vNIC types https://review.opendev.org/609460 | |
| 10:39:51 | johnthetubaguy | that is once its called, and in a timer that might trigger at somepoint after that | |
| 10:40:26 | mgoddard | although I think the thing I'm waiting for happens here: https://github.com/openstack/nova/blob/74aebe0d4e5a978a40011e890aee9e70e98246c4/nova/service.py#L77 | |
| 10:41:20 | johnthetubaguy | init_host is quite expensive | |
| 10:41:33 | johnthetubaguy | it might be just the cost of waiting for that to finish | |
| 10:41:50 | johnthetubaguy | but yeah, its not affected by what I was pointing at | |
| 10:43:33 | mgoddard | would you call this a bug or blueprint? | |
| 10:44:27 | johnthetubaguy | its either really, the release notes are independent these days, so it matters little | |
| 10:44:32 | johnthetubaguy | (to me) | |
| 10:45:19 | johnthetubaguy | the API change would be a spec, but that is a separate issue, a quick fix to nova-manage to list all the services not currently at the latest version would be a simple enough patch | |
| 10:46:20 | johnthetubaguy | you have to target a cell with hosts in it, so maybe its a cell command? | |
| 10:46:47 | johnthetubaguy | get_non_upgrade_cell_computes() or ideally some less rubbish name | |
| 10:48:26 | mgoddard | so there are two cases. API, scheduler & super conductor need to wait for all computes. Cell conductor & computes need to wait just for the cell | |
| 10:48:51 | mgoddard | similar logic to https://github.com/openstack/nova/blob/74aebe0d4e5a978a40011e890aee9e70e98246c4/nova/compute/rpcapi.py#L412 | |
| 10:49:41 | johnthetubaguy | hmm... eek | |
| 10:49:52 | mgoddard | which does mean that we shouldn't restart the API etc until all cells have been upgraded | |
| 10:50:03 | mgoddard | quite the ballet we have going on here | |
| 10:51:01 | johnthetubaguy | yeah, I think that is correct... | |
| 10:51:20 | openstackgerrit | Ghanshyam Mann proposed openstack/nova master: Fix test_flavors to run with correct microversion https://review.opendev.org/666536 | |
| 10:51:39 | johnthetubaguy | I think its that --cascade argument, one just checks the local cell, the other checks all cells | |
| 10:52:12 | johnthetubaguy | it is correct though, no compute <-> compute communication between cells | |
| 10:52:32 | johnthetubaguy | and after the pin is lifted, compute still accepts older version of requests coming from the API | |
| 10:52:57 | johnthetubaguy | till everyone is done... then boom off we go | |
| 10:53:26 | johnthetubaguy | does kolla give the child cells a connection to the API database? | |
| 10:53:36 | johnthetubaguy | that is going to breaking this logic, interestingly | |
| 10:53:54 | mgoddard | it did until recently | |
| 10:54:08 | mgoddard | actually that was something different | |
| 10:54:27 | johnthetubaguy | yeah, there is a strong assumption about that now | |
| 10:54:30 | mgoddard | we don't have a conductor/superconductor split currently | |
| 10:55:04 | mgoddard | not even sure how that distinction is made TBH, is it just the presence of an API DB connection? | |
| 10:55:36 | johnthetubaguy | yeah | |
| 10:55:40 | johnthetubaguy | in the nova.conf | |
| 10:56:12 | johnthetubaguy | if not empty, check all cells is what it does there | |
| 10:56:48 | johnthetubaguy | I mean nova-compute shouldn't have any database strings, I think, so this is about the conductor really | |
| 10:57:12 | mgoddard | right | |
| 10:58:20 | johnthetubaguy | hmm, is that a recent change in kolla-ansible, removing the db conf from nova-compute? | |
| 11:03:49 | mgoddard | johnthetubaguy: yeah, but backported | |
| 11:08:41 | johnthetubaguy | mgoddard: ah, cool, I guess I might see that fix soon | |
| 11:12:21 | jroll | kashyap: thanks! | |
| 11:23:59 | kashyap | jroll: So, from discussion in #qemu (OFTC network): | |
| 11:24:31 | kashyap | jroll: It _is_ on disk (as you guessed): libvirt stores the state under: /var/lib/libvirt/swtpm/. It is *not* encrypted yet; however, libvirt is *capable* of it | |
| 11:25:01 | kashyap | jroll: And the relevant libvirt/QEMU devs seem to discuss the design of it, as we speak | |
| 11:26:52 | kashyap | jroll: LOL, and the QEMU dev asks me to file a libvirt RFE. Now I need to read up the relevant context to file a meaningful bug | |
| 11:29:04 | jroll | kashyap: oof, sorry I got you roped into that :/ | |
| 11:33:33 | kashyap | jroll: Apparently _another_ RFE is also required, for "swtpm" -- to let us pass keys without them being on disk. | |
| 11:34:30 | kashyap | jroll: Regardless, your question was interesting, and I learned something new. I'll let you know once the RFE bugs are filed (see how carefully I dodge the question of _who_ might file them :D) | |
| 11:35:27 | jroll | kashyap: thanks for your help with it, I do appreciate it :) | |
| 11:36:04 | jroll | now the question is, do we implement tpm passthrough in nova for the time being? or do I carry that patch downstream? :/ | |
| 11:36:59 | kashyap | jroll: Might want to also ask on the upstream list -- some operators might chime in | |
| 11:37:14 | jroll | kashyap: sorry, yes, I meant I'll email the upstream list today :) | |
| 11:38:18 | kashyap | Ah, okay :-) | |
| 11:39:32 | efried | stephenfin: I sleep. I'm actually (usually) very careful about getting enough sleep, as I find it makes all other things better. | |
| 11:51:33 | kashyap | Yes! | |
| 11:51:39 | aspiers | stephenfin: you need to try stestr run -n path.to.module.Class.test, it really does work ... | |
| 11:52:12 | kashyap | efried: In your copious free time, I vehemently suggest to read this (by a real sleep scientist, engagingly written): https://www.penguin.co.uk/books/295/295665/why-we-sleep/9780141983769.html | |
| 11:52:43 | aspiers | /dev/cft: device full | |
| 11:52:58 | kashyap | [Don't let "impressions" from the title come in your way. He writes, and speaks very engagingly and is _full_ of "signal".] | |
| 11:53:21 | efried | kashyap: oo | |
| 11:56:04 | mgoddard | that is an excellent book | |
| 11:59:18 | kashyap | Yeah, as the author, Matt Walker, dedicated 20 years (and still on going) studying sleep. | |
| 12:01:49 | stephenfin | aspiers: o rly? | |
| 12:03:33 | efried | aspiers, stephenfin: Are we highlighting -n (don't do discovery) here? | |
| 12:03:39 | stephenfin | Yuuup | |
| 12:03:44 | stephenfin | I knew it worked for files | |
| 12:03:44 | efried | ++ | |