| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2025-04-03 | |||
| 00:45:36 | mnaser | i'll add it to my tomorrow list! | |
| 00:46:25 | cardoe | hmm. That's gonna be a tough one to solve cause config_drive is generated before the update_port_postcommit() which will resolve that deferred allocation no? | |
| 02:36:00 | opendevreview | Mohammed Naser proposed openstack/nova master: Add reproducer for bug#2106073 https://review.opendev.org/c/openstack/nova/+/946221 | |
| 02:37:33 | mnaser | https://bugs.launchpad.net/nova/+bug/2106073 - revised the bug, seems to be affecting nova at wide since it feeds in ports without ip allocation (and doesnt wait for it ip_allocation=deferred) and pushed another repro.. | |
| 03:14:35 | opendevreview | Yaguang Tang proposed openstack/nova stable/2024.1: Fix deepcopy usage for BlockDeviceMapping in get_root_info https://review.opendev.org/c/openstack/nova/+/926696 | |
| 03:35:03 | opendevreview | melanie witt proposed openstack/nova master: Call volume detach rollback API if detach fails https://review.opendev.org/c/openstack/nova/+/880399 | |
| 03:35:03 | opendevreview | melanie witt proposed openstack/nova master: Reproducer for bug 2016173 https://review.opendev.org/c/openstack/nova/+/946222 | |
| 03:52:56 | opendevreview | Masahito Muroi proposed openstack/nova master: Add check_instance_state validation to lock API https://review.opendev.org/c/openstack/nova/+/946223 | |
| 04:14:22 | opendevreview | Masahito Muroi proposed openstack/nova master: Add check_instance_state validation to lock API https://review.opendev.org/c/openstack/nova/+/946223 | |
| 08:46:07 | opendevreview | Masahito Muroi proposed openstack/nova master: Add check_instance_state validation to lock API https://review.opendev.org/c/openstack/nova/+/946223 | |
| 09:15:54 | opendevreview | Masahito Muroi proposed openstack/nova master: Use dict object for request_specs_dict in the _list_view https://review.opendev.org/c/openstack/nova/+/939658 | |
| 09:18:35 | masahito | gmann: sean-k-mooney: ack. thanks for the review. updated the commit. https://review.opendev.org/c/openstack/nova/+/939658 | |
| 10:47:00 | sean-k-mooney | mnaser: that not new | |
| 10:47:10 | sean-k-mooney | mnaser: there is already a older bug for that | |
| 10:48:39 | sean-k-mooney | mnaser: well or at least there have been some patches floating around for that issue for a while | |
| 10:50:45 | sean-k-mooney | mnaser: ah i twas a downstream only bug report https://bugzilla.redhat.com/show_bug.cgi?id=2276701 | |
| 10:51:02 | sean-k-mooney | which got moved to here https://issues.redhat.com/browse/OSP-33489 | |
| 10:51:22 | sean-k-mooney | ill add the upstream tracker to that | |
| 10:52:15 | sean-k-mooney | sorry https://issues.redhat.com/browse/OSPRH-13144 | |
| 13:18:59 | mnaser | sean-k-mooney: thanks for all those details | |
| 13:19:19 | mnaser | I wonder if can get away with deferring config drive creation till we get vif plugged event | |
| 13:19:32 | sean-k-mooney | for ironci we cant | |
| 13:19:42 | sean-k-mooney | for libvirt i think yes | |
| 13:19:54 | sean-k-mooney | the file just need to exist before we start the vm | |
| 13:20:01 | sean-k-mooney | so we can do that later | |
| 13:20:28 | mnaser | So then the only way we have for this in ironic would be some sort of polling for ports if they're ip address deferred | |
| 13:20:37 | sean-k-mooney | well we can look at the ironic situration but the ironci driver is "special" | |
| 13:21:29 | mnaser | It feels ugly but I guess we can just loop over the vifs | |
| 13:21:38 | sean-k-mooney | for ironic we are not really generting a config drive. what we are doign is generating the content we woudl provide and then passing that to there rest api | |
| 13:21:43 | mnaser | And check if any ports have deferred IP allocation, if so, wait for it to appear | |
| 13:22:08 | sean-k-mooney | its possibel we could add a call back ot update ironic if the metadata changes | |
| 13:22:13 | sean-k-mooney | but i dont knwo fi that woudl work | |
| 13:22:42 | sean-k-mooney | ideally you would use the metadat service instead of config drive with ironic if you need it to be up to date | |
| 13:22:57 | mnaser | That might be a lot of complexity and also still prone to race conditions cause then what will ironic do if it's mid provision and it changes? | |
| 13:23:05 | sean-k-mooney | ill quickly take a look at the driver and see if we can generate it slightly later | |
| 13:23:15 | mnaser | Yeah -- my issue is that I'm using bonds | |
| 13:23:22 | mnaser | AFAIK I need config drive for those | |
| 13:23:34 | sean-k-mooney | well bonds are not supprot in nova or neutron | |
| 13:23:47 | mnaser | Ironic port groups? | |
| 13:23:48 | sean-k-mooney | and its implemtned i think in ironci directly via port groups? | |
| 13:23:57 | sean-k-mooney | ya prot groups are not a thing in nova or neutron | |
| 13:24:07 | sean-k-mooney | its a purely ironic only network construct | |
| 13:24:28 | mnaser | Yeah and the only place that l | |
| 13:24:42 | mnaser | "Bond" network data is generated is config drive | |
| 13:25:04 | mnaser | So otherwise if I use metadata ill have to do this manually after system boot | |
| 13:25:34 | sean-k-mooney | so ironic has it own enrechment of the stand metadta https://github.com/openstack/nova/blob/master/nova/virt/ironic/driver.py#L1045-L1106 | |
| 13:25:37 | sean-k-mooney | for the network info | |
| 13:25:59 | sean-k-mooney | which is all custom for the ironic integration and not part of how this normally works | |
| 13:26:42 | mnaser | The enrichment relies on the get network metadata returning the right thing and that doesn't do that so that's how we end up where we are :p | |
| 13:27:39 | sean-k-mooney | right os most if not all other dirver use the commeon code that is shared with the api for generating this metadtaa | |
| 13:27:50 | sean-k-mooney | https://github.com/openstack/nova/blob/master/nova/api/metadata/base.py#L112 | |
| 13:29:04 | sean-k-mooney | so they generate there enriched config driver here when calling provision https://github.com/openstack/nova/blob/master/nova/virt/ironic/driver.py#L1239-L1258 | |
| 13:29:05 | mnaser | I think attach_interface is how ports are plugged? | |
| 13:30:06 | sean-k-mooney | so port bidnign is intened to happen in the compute manger and that is when the ip should be assigend | |
| 13:30:31 | sean-k-mooney | and then port pluggin is where we are ment to talk to the network backend to make sure the ports are conencted on the swtich | |
| 13:30:34 | sean-k-mooney | virutal or otherwise | |
| 13:30:58 | sean-k-mooney | and tha tis when we are ment to waith for the network-vif-plugged evnet | |
| 13:31:42 | sean-k-mooney | plug_vifs in the ironic driver is a noop | |
| 13:31:44 | sean-k-mooney | https://github.com/openstack/nova/blob/master/nova/virt/ironic/driver.py#L1567-L1638 | |
| 13:32:42 | sean-k-mooney | that is breakign the virt dirver contract by how its delegating the attachment | |
| 13:33:07 | dansmith | sean-k-mooney: juicy OTU series just waiting for +Ws :) https://review.opendev.org/c/openstack/nova/+/944148 | |
| 13:34:10 | sean-k-mooney | dansmith: yes... im aware. im slightly anooyed at you for askign for an os-traits release when i ask not to do that unlie we landed teh vdi traits but its on my list to look at before the ptg | |
| 13:34:52 | mnaser | Now I'm wondering where does it even get the ports from... Unless it doesn't and ironic does that stuff behind the scenes? | |
| 13:35:07 | sean-k-mooney | mnaser: so attach_interface is ment to be for adding/removing port after the "server" is created | |
| 13:35:21 | mnaser | That's what I thought... | |
| 13:35:30 | dansmith | sean-k-mooney: you did? I'm sorry | |
| 13:35:49 | mnaser | So that means the neutron vif plug happens when the spawn is called | |
| 13:35:50 | sean-k-mooney | dansmith: its fine, release are cheap | |
| 13:36:00 | sean-k-mooney | mnaser: ya internaly in ironic | |
| 13:36:16 | mnaser | So I think it might be impossible to get configdrive then | |
| 13:36:28 | dansmith | sean-k-mooney: yeah, I honestly never would have though it would be worth ever holding a release to batch up more than one | |
| 13:37:10 | mnaser | Because the plug happens after we call ironic to spawn with configdrive included. | |
| 13:37:17 | mnaser | I see what you mean about the whole callback thing now | |
| 13:37:20 | mnaser | Uuuuuugh | |
| 13:37:22 | sean-k-mooney | dansmith: well last time i ask peole said they woudl take a look at the traits patch and didnt. gibi did look this time to give them credit | |
| 13:37:51 | sean-k-mooney | mnaser: this is one of the large pices of technial debt with the ironic driver | |
| 13:37:59 | sean-k-mooney | its doign several things its not allowed to do | |
| 13:38:05 | dansmith | sean-k-mooney: link me | |
| 13:38:10 | sean-k-mooney | including changign the vnic type ot baremetal | |
| 13:38:33 | sean-k-mooney | dansmith: its no kind of blockd on use approving the specless blueprint which si now a ptg topic but sure on sec | |
| 13:39:21 | dansmith | sean-k-mooney: okay well if I had realized I would have argued not to block my thing on another blocked thing, especially since "releases are cheap" :) | |
| 13:39:25 | sean-k-mooney | dansmith: its https://review.opendev.org/c/openstack/os-traits/+/940418 | |
| 13:40:08 | sean-k-mooney | dansmith: we can wait till melwitt has a chance ot respond or till the ptg | |
| 13:40:26 | sean-k-mooney | dansmith: anyway ill try and get to the OTU device tommorw or this evening | |
| 13:40:27 | dansmith | yeah, sounds like that's the best idea | |
| 13:41:01 | sean-k-mooney | mnaser: i think port bidning is still done in nova. | |
| 13:41:33 | sean-k-mooney | mnaser: if we can confirm that we may be able ot tweak plug_vifs to refesh the cache or soemthign like that to get the ip in teh defered case | |
| 13:41:46 | sean-k-mooney | mnaser: but its kind of building one hack on top of anohter | |
| 13:42:09 | sean-k-mooney | unless we can do that in a common way in the compute manger of coruse | |
| 13:43:00 | mnaser | hmm yea | |
| 13:43:49 | mnaser | Do other drivers rely on compute manager to bind the ports? | |
| 13:44:01 | sean-k-mooney | yes | |
| 13:44:08 | sean-k-mooney | virt drivers are not allowed to do it | |
| 13:44:19 | sean-k-mooney | tehy can do port pluging | |
| 13:44:33 | sean-k-mooney | btu that a diffent thing | |
| 13:45:19 | sean-k-mooney | as i said the ironic dirver or ironci its self is doing thing that its not technailly allowed to do like modifyiing cidner volume attachmetn or neutron ports | |
| 13:45:24 | mnaser | I see, so then technically we should have a bound port at some point when we generate the config drive | |
| 13:45:51 | sean-k-mooney | i dont thinke we will | |
| 13:46:10 | mnaser | Like I know this sounds stupid but as a workaround for me now a sleep and a refresh of network info can potentially make the ip arrive? | |
| 13:46:13 | sean-k-mooney | because im not sure any of the prot groups stuff for the bonds will be done when we bind but i might be wrong | |