Tuesday, 2023-12-12

*** tosky_ is now known as tosky00:25
opendevreviewOpenStack Proposal Bot proposed openstack/nova master: Imported Translations from Zanata  https://review.opendev.org/c/openstack/nova/+/90342702:33
opendevreviewalisafari proposed openstack/nova stable/2023.2: Fix traits to cpu flags mapping  https://review.opendev.org/c/openstack/nova/+/90344305:26
opendevreviewalisafari proposed openstack/nova stable/2023.1: Fix traits to cpu flags mapping  https://review.opendev.org/c/openstack/nova/+/90344405:27
opendevreviewAlex Welsh proposed openstack/nova master: Make map_cell0 command update existing mappings  https://review.opendev.org/c/openstack/nova/+/90314009:42
opendevreviewAlex Welsh proposed openstack/nova master: Make map_cell0 command update existing mappings  https://review.opendev.org/c/openstack/nova/+/90314010:13
*** l8 is now known as layer811:05
*** layer8 is now known as Guest1007511:06
Guest10075register11:08
opendevreviewAlex Welsh proposed openstack/nova master: Make map_cell0 command update existing mappings  https://review.opendev.org/c/openstack/nova/+/90314013:47
bauzassean-k-mooney: could I ask a gentle lift for https://review.opendev.org/c/openstack/nova-specs/+/900636 ?14:05
opendevreviewAlex Welsh proposed openstack/nova master: Make map_cell0 command update existing mappings  https://review.opendev.org/c/openstack/nova/+/90314014:17
opendevreviewStephen Finucane proposed openstack/nova master: docs: Revamp the security groups guide  https://review.opendev.org/c/openstack/nova/+/90350714:36
stephenfinNice doc improvement there (IMO) based on some testing I did recently ^14:40
opendevreviewMerged openstack/nova master: Support setting alias on libvirt disks  https://review.opendev.org/c/openstack/nova/+/89280014:43
opendevreviewMerged openstack/nova master: Set libvirt device alias for volumes  https://review.opendev.org/c/openstack/nova/+/89280114:53
opendevreviewMerged openstack/nova master: Detach disks using alias when possible  https://review.opendev.org/c/openstack/nova/+/89306814:54
bauzasgibi: sean-k-mooney: like  I said above, could you please swing my nova spec for gpu live-migration ? https://review.opendev.org/c/openstack/nova-specs/+/90063615:10
opendevreviewTakashi Kajinami proposed openstack/nova master: Remove deprecated [api] use_forwarded_for  https://review.opendev.org/c/openstack/nova/+/90333915:13
*** layer8 is now known as Guest1009715:29
*** Guest10097 is now known as layer_815:38
bauzasreminder : nova meeting in 20 mins15:40
bauzas*her15:40
gibiI will need to disappear 17:30 CET 15:50
bauzasack15:59
bauzas#startmeeting nova16:01
opendevmeetMeeting started Tue Dec 12 16:01:15 2023 UTC and is due to finish in 60 minutes.  The chair is bauzas. Information about MeetBot at http://wiki.debian.org/MeetBot.16:01
opendevmeetUseful Commands: #action #agreed #help #info #idea #link #topic #startvote.16:01
opendevmeetThe meeting name has been set to 'nova'16:01
bauzassorry folks for the delay, I had to write the agenda :D16:01
bauzas#link https://wiki.openstack.org/wiki/Meetings/Nova#Agenda_for_next_meeting16:01
bauzaswho's around ?16:01
fwieselo/16:01
grandchildo/16:01
JayFo/16:02
bauzaslet's slowly start16:04
bauzashopefully people will join16:04
bauzas#topic Bugs (stuck/critical) 16:04
bauzas#info No Critical bug16:05
bauzas#link https://bugs.launchpad.net/nova/+bugs?search=Search&field.status=New 41 new untriaged bugs (+3 since the last meeting)16:05
bauzasnot sure anyone had time to look at bugs this week16:05
bauzas#info Add yourself in the team bug roster if you want to help https://etherpad.opendev.org/p/nova-bug-triage-roster16:05
bauzasmelwitt is on the next round for the bug baton but she's off16:05
bauzasI'll ask her later iirc16:06
bauzasanything about bugs ?16:06
bauzaslooks not16:06
bauzasmoving on16:06
bauzas#topic Gate status 16:06
bauzas#link https://bugs.launchpad.net/nova/+bugs?field.tag=gate-failure Nova gate bugs 16:06
bauzaslooks like the gate is more stable today16:06
* gibi had not time to look at bugs sorry16:07
bauzasI was able to recheck a few changes without issues16:07
bauzas#link https://etherpad.opendev.org/p/nova-ci-failures-minimal16:07
bauzasmost of the patches from https://review.opendev.org/q/topic:%22nova-ci-improvements%22 are now merged16:08
JayFI'll note that Ironic's gate was broken with some of the recent Ironic<>Nova driver changes; there's a small fix in the gate now we've been trying to merge since yesterday. I don't think there's an action for Nova team as it was quickly approved and I'm rechecking.16:08
bauzasJayF: ack thanks16:09
bauzas#link https://zuul.openstack.org/builds?project=openstack%2Fnova&project=openstack%2Fplacement&pipeline=periodic-weekly Nova&Placement periodic jobs status16:09
bauzasall greens for master16:09
bauzasnova-emulation continues to fail on stable/zed, but that's not a problem16:09
bauzas#info Please look at the gate failures and file a bug report with the gate-failure tag.16:10
bauzasanything about the gate ? 16:10
bauzaslooks not16:10
bauzas#topic Release Planning 16:10
bauzas#link https://releases.openstack.org/caracal/schedule.html#nova16:10
bauzas#info Caracal-2 (and spec freeze) milestone in 4 weeks16:10
bauzastime flies16:10
bauzaslast week, we had a good spec review day with 3 specs merged16:10
bauzasbut I beg here cores to look at other specs :)16:11
bauzasfwiw, I'll do my duty16:11
bauzashttps://review.opendev.org/q/project:openstack/nova-specs+is:open+file:%5Especs/2024.1/.* is the list of open specs for 2024.116:12
bauzasthat's it for me on the release cadence16:13
bauzasnothing really important else16:13
bauzasmoving on16:13
bauzas#topic Review priorities 16:13
Ugglao/16:13
bauzasone important thing16:13
bauzas#link https://etherpad.opendev.org/p/nova-caracal-status16:13
bauzasI updated the etherpad16:13
bauzas#info please use and reuse this etherpad by looking at both the specs and the bugfixes16:14
sean-k-mooneydo we want to add a fixed/merged section in that16:14
bauzassean-k-mooney: we have it16:14
bauzasbut not for the bugfixes16:14
bauzasI can add it16:14
sean-k-mooneyya we have feature compelte16:15
sean-k-mooneybasically it might be a nice refernce for the prolog or release summary16:15
bauzasyes16:15
bauzasanyway, moving on16:16
bauzas#topic Stable Branches 16:16
bauzaselodilles_pto: oh, he's on PTO16:16
bauzas#info stable gates don't seem blocked16:16
bauzas#info stable release patches still open for review: https://review.opendev.org/q/project:openstack/releases+is:open+intopic:nova16:17
bauzas#info yoga is going to be unmaintained, so final stable/yoga release should happen ASAP - https://etherpad.opendev.org/p/nova-stable-yoga-eom16:17
bauzasalso, I'll add my own point16:17
bauzas#link Yoga EOL change https://review.opendev.org/c/openstack/releases/+/90327816:18
bauzasfolks, if you want to wait to merge the EOL change until some change, please tell it above ^16:19
bauzasfor me, I already +1d this EOL change16:19
bauzasoh shit16:19
JayFI'll note that's the Ussuri EOL change if you wanna fix the minutes16:19
bauzas#undo16:19
opendevmeetRemoving item from minutes: #link https://review.opendev.org/c/openstack/releases/+/90327816:19
JayFjinx :)16:19
bauzas#link *Ussuri* EOL change https://review.opendev.org/c/openstack/releases/+/90327816:19
bauzasvoila16:20
bauzasfor Yoga, that's for EM16:20
bauzas#info stable branch status / gate failures tracking etherpad: https://etherpad.opendev.org/p/nova-stable-branch-ci16:20
bauzasthat's it I guess for the stable topic16:20
bauzasanything else for stable branches ?16:20
sean-k-mooneyone thing16:21
sean-k-mooneydependign on how the new images work on master16:21
sean-k-mooneywe may want to consider backporting those changes to stabel branches if we see 16:21
sean-k-mooneykernel panics there16:21
sean-k-mooneyso we should revisit this topic in a few weeks16:21
sean-k-mooneynothing to do now16:21
bauzaswe should wait a bit until we backport them16:22
bauzasbut sure16:22
bauzaslooks to me the gate is better by now16:22
bauzasok, then moving to the next topic16:23
bauzas#topic vmwareapi 3rd-party CI efforts Highlights 16:23
fwiesel#Info Fully working devstack in lab environment manually set up. Now working on automatic setup / teardown for CI16:23
bauzasfwiesel: grandchild: anything you want to tell ?16:23
bauzasfwiesel: ++16:23
bauzasthanks !16:23
fwieselSo, "fully working" meaning, we can spin up an instance and it has network, etc..., but....16:23
fwiesel#Info Initial test runs show vmwareapi is broken (only boot from volume works, not nova boot), bugfixes will come after working CI16:23
bauzasahah16:24
fwieselWe cannot simply boot from an image16:24
bauzasso that's why we need a 3rd party CI :)à16:24
bauzaslooks like we regressed during some time16:24
fwieselSo probably the CI needs to be non-voting in the beginning, I assume16:24
bauzasfwiesel: will you be able to provide some bugfixes ? have you found the root cause ?16:24
bauzasfwiesel: oh yeah, definitely16:25
bauzaswe'll run the job as non-voting first16:25
fwieselbauzas: I haven't looked at the root cause yet, as I thought a working CI has priority. Then we tackle the bugs one by one.16:25
bauzasfwiesel: cool, no worries16:25
sean-k-mooneyfwiesel: third party ci cannot be voting16:25
bauzasfwiesel: in case you need help, we can discuss those in your topic next weeks16:25
fwieselbauzas: But yes, we will be able to provide the bug fixes. It should be not terribly difficult16:25
sean-k-mooneyyou can leave code review +1 or -116:25
sean-k-mooneybut never verifed +1 or -116:26
sean-k-mooneyor at least in a way that will prevent a patch merging16:26
fwieselsean-k-mooney: Ah, thanks for the explanation. Then I got the terminology wrong.16:26
sean-k-mooneyno worries16:26
bauzassean-k-mooney: I think we had 3rd-party CI jobs voting before ? (with zuul 2)16:26
sean-k-mooneyno16:26
sean-k-mooneynever16:26
sean-k-mooneywe disucssed it in the past and said that was not ok16:27
sean-k-mooneyas we cant have the gate blocked by a third party ci16:27
sean-k-mooneyif we are revieing a vmware patch and it breaks the vmware ci16:27
fwieselI meant, it probably shouldn't even leave a -1 in the beginning16:27
sean-k-mooneywe are very unlikely to merge it16:27
sean-k-mooneybut htat was left to cores to judge16:27
clarkbyou can haev a third party CI -1 and +1 without blocking anything. Only -2 blocks16:27
bauzasokay, maybe this was in 2015 or earlier, but IIRC we had a job that was testing the DB time when upgrading and it was a 3rd-party CI16:28
sean-k-mooneyclarkb: we can yes16:28
sean-k-mooneysince gate only looks form verified form zuul16:28
bauzasbut maybe it never voted, can't exactly remember the details16:28
sean-k-mooneybauzas: as far as i am aware we have never had third party voting ci and16:29
sean-k-mooneyi am not sure i want to change that in the future16:29
bauzasanyway, this is not a problem16:29
sean-k-mooneysure we just need to see the logs and if it passed or failed16:29
bauzaslet's see what fwiesel and grandchild can do with their CI and what they can provide for regression bugfixes 16:29
fwieselThat's from my side. Any questions?16:30
sean-k-mooneyyep16:30
sean-k-mooneyfwiesel: just one thing16:30
bauzasfwiw, I'm okay with verifying some link every week during our meeting about how many job runs failed16:30
sean-k-mooneyyou said local images dont work16:30
sean-k-mooneydid you make sure to use vmdks16:30
sean-k-mooneyinstead of qcow16:30
bauzasso even if we don't make them voting, we could continue to check those jobs continue to work16:30
fwieselsean-k-mooney: Sure, we only run with vmdks.16:31
sean-k-mooneyok i was wondering if it was a simple format issue16:31
sean-k-mooneyfeel free to file a bug with details when you have time16:31
bauzasfwiesel: do you know we changed the VDMK types ?16:31
sean-k-mooneyo we blocked one of the times right16:32
bauzashttps://bugs.launchpad.net/nova/+bug/1996188 for the context16:32
fwieselbauzas: No, I don't. Thanks for the info16:32
bauzasso you now need to pass an allowed list of vdmk types16:32
fwieselAh, no. That one is fine... The same check is in cinder, and it works with boot from volume16:32
bauzasmaybe this is the root cause, maybe not16:32
bauzasfwiesel: nova has its own config option16:33
bauzashttps://review.opendev.org/c/openstack/nova/+/87161216:33
fwieselSure, but we use the image subformat that isn't blocked16:33
bauzascool16:33
fwiesel(streamOptimized or something)16:33
bauzaswas more a fyi, just in case 16:34
bauzasthe vdmk bug hit me before :)16:34
bauzasand when we had it, noone was around for telling us whether it was a problem for vmwareapi :)16:34
bauzasanyway16:34
bauzasshouldn't be a problem16:35
bauzasfwiesel: thanks for the report, greatly appreciated16:35
fwieselyou're welcome16:35
bauzasfwiesel: someone also freaked out in the mailing list16:35
bauzasI haven't replied but you could16:35
fwieselbauzas: Good idea, I will16:35
fwieselbauzas: openstack-discuss?16:36
bauzasoh sean-k-mooney did16:36
bauzasfwiesel: yup https://lists.openstack.org/archives/list/openstack-discuss@lists.openstack.org/message/DLTQ2KHQPFD4S7LLYKTWUPNFXRSTRTHU/16:36
sean-k-mooneyya i just said what we dicussed before16:36
sean-k-mooneyi.e. we wont remvoe anything until at least m2 depending on the ci status16:37
sean-k-mooneyand advies that  while peopel can deprecate support16:37
bauzasfwiw, I see a good progress16:37
sean-k-mooneythey shoudl not remove it16:37
bauzasbut let's continue to discuss it every week16:37
sean-k-mooneyyep16:37
bauzasanyway, good talks16:37
bauzasfwiw, I also advertised in the previous OpenInfraLive episode about what we agreed at the PTG and I explained verbally our current state, which is good for telling 'if you care about something, come tell us'16:38
bauzastaking vmwareapi non-removal as an example of a working effort16:39
bauzasanyway, time flis16:39
bauzasflies*16:39
bauzas#topic Open discussion 16:39
bauzaswe have two topics16:39
bauzasthat we punted from last week16:40
bauzas(artom) Specless blueprint for persistent mdevs 16:40
bauzashttps://blueprints.launchpad.net/nova/+spec/persistent-mdevs16:40
bauzasartom: around ?16:40
artomHeya16:40
artomTo basically yeah - from memory, this would be limited to the libvirt driver, the idea is to persist mdevs when an instance is booted that uses an mdev16:41
bauzasI'm maybe opiniated, so I won't really tell a lot, but I think this is a simple specless feature that only touches how our virt driver is creating a mdev16:41
artomSo that in case of a host reboot, the instances can come back without operator intervention16:41
artomThere might be operator intervention necessary to manually clean mdevs in certain cases16:42
bauzasI don't see any upgrade concerns about it, the fact is that we will start persisting mdevs upon reboot by every compute that's upgraded16:42
artomBecause the mdevs would outlive their instances and host reboots16:42
artomSo for instance, changing the enabled mdev types (after draining the host), the operator would need to clean up the old mdevs16:42
sean-k-mooneyone thing you need to be careful of16:42
bauzasartom: surely this will require a releasenote and some upstream docs, but this doesn't require to add a new DB model or anything about RPC16:42
gibias draining the host will not remove mdevs?16:42
sean-k-mooneyis on restating nova to a version with this support16:43
sean-k-mooneyif we have vms using mdevs created via sysfs16:43
sean-k-mooneywe need to supprot cretign the libvirt nodedev object to persist them16:43
bauzassean-k-mooney: I see the upgrade path for persisting the mdevs to restart the instances16:44
sean-k-mooneyi.e. we need to supprot upgrade in place without restarts16:44
sean-k-mooneywhy?16:44
sean-k-mooneywe shoudl not need vm downtime or move operations16:44
bauzasoh my bad, I was wrong16:44
bauzasthe mdev would already be created16:44
sean-k-mooneyyep16:44
sean-k-mooneyand in use by the vm16:44
sean-k-mooneywe jsut need to create the mdev with the same uuid in the libvirt api16:45
sean-k-mooneyto have it persited16:45
bauzasso, I think this feature requires some upgrade doc that explains how to persist the mdecv16:45
sean-k-mooneywell nova can do it16:45
bauzasI mean, an admin doc16:45
sean-k-mooneybut we can have n upgade doc to cover how this works16:45
sean-k-mooneyi would hope its litrally just update the nova-compute binary adn restart the compute agent 16:46
sean-k-mooneyno other upgrade impact16:46
bauzassean-k-mooney: do you think of a nova-compute startup method that would check every single mdev and would persist it ?16:46
sean-k-mooneyinit host can reconsile what we expect based on teh current xmls16:46
sean-k-mooneyya16:46
sean-k-mooneythat is what i was thinking16:46
bauzasthat's an additional effort, sure, still specless I think16:46
sean-k-mooneywe can defer that to impelmation review if we like16:46
sean-k-mooneybut i woudl ike to see upgrade in place support with or without a hard reboot i guess16:47
bauzassounds acceptable o me16:47
bauzaswe already have a broken method that's run on init_host16:47
bauzaswe could amend it to persist the mdev instead16:47
bauzas(ie. delete and recreate it using libvirt API with the same uuid)16:48
bauzasartom: does that sound reasonable to you ?16:48
artomSorry, reading back, in multiple places at the same time16:49
bauzasIRC meetings are good, but people do many things at the same time :)16:49
bauzasI wish we could be more in sync somehow :)16:49
bauzasgiven we only have 10 mins left and anther procedural approval to do 16:50
bauzaslemme summarize16:50
bauzas1/ the feature will ensure that every new mdev to create will use the libvirt API16:51
bauzas2/ at compute restart, the implementation will check every mdev that's created and will recreate it using the libvirt API 16:51
artomOK, yeah, I think that makes sense, though the mechanics of persisting existing transient mdevs are less obvious to me at this time16:52
bauzas3/ documentation will address the fact that operator needs some cleanup (unpersisting the mdevs) in case they want to change the type, additional to the fact they need to drain vgpu instances from that host16:52
sean-k-mooneyi would hope its just generateing an xml and asking livbirt to create it16:52
bauzasartom: don't be afraid, I exactly see what, where and how to do it16:52
sean-k-mooneyit should see that it already exist and i hope just write the mdevctl file16:52
sean-k-mooneywe can do this at the end of the seriese16:53
sean-k-mooneyto not blcoke the over all feature16:53
bauzasbased on those 3 bullet points, I don't see anything that requires a spec16:53
bauzasanyone disagreeing ?16:53
bauzaslooks not16:53
bauzasand as a reminder, a specless approval isn't a blank check about design16:54
bauzasif something controversial comes up, we could revisit that and ask for a spec16:54
bauzasbased on that16:54
gibilooks OK to me16:54
bauzas#agreed https://blueprints.launchpad.net/nova/+spec/persistent-mdevs accepted as a specless blueprint 16:54
gibiIm not clear about when manual cleanup is needed but we can discuss that in the review16:55
bauzas#action artom to amend the blueprint description to note what we agreed 16:55
bauzasmoving on16:55
bauzasI really want the last item to be discussed16:55
bauzas(JayF/johnthetubaguy) Specless blueprint for ironic guest metadata 16:55
JayFo/16:55
bauzasJayF: 'sup ?16:55
JayFI am unsure if John will be here, but I am.16:55
bauzashttps://blueprints.launchpad.net/nova/+spec/ironic-guest-metadata16:55
bauzasshot16:55
bauzasshoot* even16:55
sean-k-mooneyreading it quickly it looks reasonable but i would use flavor uuid instead of name or both16:56
bauzasditto here16:56
JayFEssentially, libvirt instances get a large amount of useful metadata that Ironic would like to get as well for various uses -- the primary case that drove us to this was implementing Ironic's "automatic_lessee" support, allowing Ironic to use the project that provisioned an instance some RBAC access to it16:57
JayFbut generally many of those metadata items map to previous feature requests / things that operators have asked for in node instance_info for troubleshooting in the past (like flavor)16:57
bauzasI only care about the upgrade path16:57
JayFso it seemed like a good fit/easy win16:57
sean-k-mooneyso i guess my request woudl be can we update the decription with the full list of things we want to be set16:57
bauzaswould we need some interim period to ensure all computes report that metadata ?16:58
JayFEssentially this is just additional metadata you'd set on deploy16:58
JayFit'd be Ironic's job to do the right thing if it's set/not set16:58
sean-k-mooneyso this is settign metadta on the ironic nodes right 16:58
sean-k-mooneynot the compute nodes16:58
JayFfrom a Nova standpoint, it should be 100% backwards compatible16:58
sean-k-mooneyas in when an instnace is shcudled ot a node16:58
sean-k-mooneyso for upgrade i guess we coudl have a nova-manage command16:58
sean-k-mooneyto set it for existing instnces16:58
JayFoh, you mean for backfilling instance metadata, I understand16:59
sean-k-mooneyyep16:59
JayFthat's a case I hadn't even consideredd!16:59
sean-k-mooneyso i assume this would normally only be set on spawn16:59
sean-k-mooneysince ironci dose not support resize16:59
sean-k-mooneywell spawn or rebuild/evacuate16:59
JayFAlright, looks like I have two actions: 1) List all the specific fields and 2) add details about migration path for preexisting instances and how/if they get metadata17:00
JayFsean-k-mooney: we do rebuild, very common use case17:00
sean-k-mooneyya so we would want to update it on rebuild right17:00
sean-k-mooneyso 3 actions. list the data to set, list when it will be set17:00
bauzassounds then an implementation detail to me17:00
sean-k-mooneyand then if we want to have a nova-manage command to backfile then detail that too17:00
JayFyeah but one I don't mind enumerated in the blueprint to ensure I don't miss it17:00
bauzasnova-manage what ? fill my ironic stuff for that instance ?17:01
sean-k-mooneybauzas: ya set the metadtaa on the corresponding ironc node for an existing instance17:02
bauzascouldn't it be some ironic script that would gather the details from the nova API ?17:02
sean-k-mooneythat shoudl be pretty simple to do its just a ironic api call17:02
sean-k-mooneyit could btu that feels liek a worse soultion to me17:02
JayFSo I'll note17:02
bauzassean-k-mooney: I'm not 100% happy with a very specific virt driver method in our nova-manage command17:02
JayFFrom an Ironic standpoint, having the data backfilled is not super awesome17:03
sean-k-mooneyim pretty sure it woould not be the first17:03
JayFwe aren't going to do much with it17:03
bauzasthis would require nova-manage to be able to speak the ironic language17:03
sean-k-mooneybut this feels like the volume refesh commands to me17:03
sean-k-mooneybauzas: it already can talk to ironci 17:03
JayFso while I'm happy to implement it, and I'm sure someone would find a use for it, I don't think it's in the primary path for enabling the sorta features we want17:03
sean-k-mooneyso i dont really mind where it ends up i guess but i think it woudl be nice to have17:03
bauzassean-k-mooney: creds and all the likes are set on nova.conf that nova-manage reads ?17:03
JayFbauzas: you already have creds on nova-computes to do the calls you need17:04
JayFPATCH calls to /v1/node/{UUID}17:04
bauzasJayF: nova-manage isn't meant to be run on nova computes17:04
JayFack17:04
sean-k-mooneybauzas: well its normally run on the contoler which often by acidnet is where nova-compute with ironic runs17:05
bauzasdespite we shipped that sail with the volume attach command :)17:05
sean-k-mooneybut we cant assume it will be colocated17:05
bauzasdid I say " we shipped that sail" ? oh gosh, I'm tired17:06
bauzasanyway17:06
bauzassounds there is kind of a grey path about what we would for non-greenfields instances17:06
bauzaswould do*17:06
JayFI like the idea of Ironic owning the migratino script17:07
bauzastime is flying tho and we're *again* late17:07
JayFand will think abuot it further and likely propose that17:07
sean-k-mooneywe shoudl figure our a solution to exisitng instnace but we dont need to do that now17:07
bauzas(I'm really sorry about it)17:07
bauzasJayF: what would you be your preference ?17:07
sean-k-mooneyJayF: do you want to think about that for a few days and let use knwo what you think is the best approch17:07
bauzasapproving the blueprint with a note saying "this is only a path for new instances, the migration path is yet to be defined" ?17:08
sean-k-mooneyim kind of feeling liek a spec would help by the way17:08
bauzasor we could revisit the approval in later meetings17:08
JayFYeah I'm thinking Ironic side script, because then we can allow the Ironic-side actions to be done, too17:08
JayFI'd say lets revisit17:08
sean-k-mooneybut if other are ok im not going to say we must have one17:08
JayFI think I'll get to talk to John in the intervening week17:08
bauzasokay, I'll keep the bleuprint in the agenda17:08
JayFI wasn't sure what the edges were on this, now I know what they are and can file them down :)17:08
JayFthank you17:08
bauzasand we could revisit it next week17:08
bauzasthanks17:09
sean-k-mooneyi just dont knwo this code as well as other so it would help me to have a little more detail. but we coudl just put more detail in the blueprint 17:09
bauzasand because we're horribly late, I'll end the meeting now17:09
sean-k-mooneyo/17:09
bauzasthanks all17:09
bauzasand sorry again 17:09
bauzas#endmeeting17:09
opendevmeetMeeting ended Tue Dec 12 17:09:32 2023 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)17:09
opendevmeetMinutes:        https://meetings.opendev.org/meetings/nova/2023/nova.2023-12-12-16.01.html17:09
opendevmeetMinutes (text): https://meetings.opendev.org/meetings/nova/2023/nova.2023-12-12-16.01.txt17:09
opendevmeetLog:            https://meetings.opendev.org/meetings/nova/2023/nova.2023-12-12-16.01.log.html17:09
gibithanks bauzas17:09
* bauzas switches to advent of code17:09
JayFsean-k-mooney: the base feature in Ironic we want to hook into is right now, w/standalone ironic, you set [conductor]automatic_lessee=true, you get node.lessee={project_id that spawned it} set automatically by Ironic, and you can use RBAC to give some Ironic API access to that node (anything from read access to ability to self-serve some maintenance items)17:10
JayFsean-k-mooney: so doing a backfill using nova-based script would be awkward, because we could backfill the nova half but the Ironic side wouldn't have taken the "on spawn" action... but if we do it from Ironic side, it can pull info from Nova, make the change to put the metadata on the node, and also use Ironic config to flip other node settings as needed (for example: setting17:11
JayFnode lessee)17:11
sean-k-mooneyJayF: ok so you think it would be better to have an ironic-manage or even an ironic api endpoint17:12
sean-k-mooneyto trigger the backfile or just od it with a script17:12
sean-k-mooneyi tought it might be simlpel to just have nova-manage call the function that normally generates the metatada we would set and call the ironic api with that17:13
JayFA script, for sure, and I could see the shape of that script being such that nova-backfill is an option on it17:13
sean-k-mooneybut  if that is not simple then no need to do it in nova17:13
JayFYeah but like I said, that's only like, half of the equation and alone is not super valuable17:13
sean-k-mooneyack17:14
sean-k-mooneyfor what its wroth you have remined me that i have wanted to extend the metadata in the libvirt xml for years17:14
sean-k-mooneysepeicicly i want to have both the image and flagor  (name and uuid) and have the image /falvor extra specs direclly in the metadata17:14
JayFwell that's like, another thing I wanted to say17:14
JayFWhy do we want a libvirt metadata list and an Ironic metadata list?17:15
JayFcan there not just be a "here's a big list of instance metadata that hypervisors that care about metadata cna have"17:15
sean-k-mooneywe coudld have this in common code yes17:15
JayFJohn and I were looking at this, and that's where the bp came from17:16
sean-k-mooneyall the dirver need to do is transform the dic of metadta to where it stores it17:16
JayF++ that would be ideal17:16
sean-k-mooneyso the reaosn i want to add both the name and uuid is the image uses one and the flavor uese the other17:16
sean-k-mooneyboth shoudl use both17:16
sean-k-mooneyand the extra_specs/image properties are so if you dont ahve a db dump17:17
JayFthe only fields I have strong feelings about are any-flavor-identifier-at-all and the project information17:17
sean-k-mooneyyou can just look at the xml and know everything about it17:17
JayFthe rest of them are things that are situationally useful17:17
JayFalmost all of those metadata fields in the libvirt driver, I was able to think of a time troubleshooting when that in node.instance_info would've been useful :)17:18
sean-k-mooneyJayF: related question17:18
sean-k-mooneyout of interest why do you care about the flavor17:18
JayFSuper common support question for Ironic admins17:18
sean-k-mooneywhat will it be used for?17:18
JayFthat's the answer17:18
JayF'what flavor did you use to boot this' often dictates some actions Ironic takes on spawn17:19
sean-k-mooneyoh ok so the resouce class on the node is not enough17:19
JayFyep17:19
sean-k-mooneyok makes sense17:19
sean-k-mooneythis is why its there in the libvirt xml17:19
sean-k-mooneybut often i get a comptue log with no flavor info17:19
JayFbecause resource_class + capabilities (not sure I'm using right nova term ?) means you might have the same node17:19
sean-k-mooneyso that why the flavor detail like the extra spec are useful to me17:19
JayFbut it gets a different deployment template, giving it different bios config on spawn17:19
johnthetubaguysean-k-mooney: FWIW, I feel like this should be "similar" to what we do with libvirt xml, to get the extra info in there.17:20
JayFso you might have, supersize-node-configa supersize-node-configb and both are node.resource_class=supersize-node17:20
sean-k-mooneyjohnthetubaguy: ya so the libvirt part is just using the flavor and image + the project id i think17:20
JayFjohnthetubaguy: we were just talking about maybe that code becoming common17:20
JayFjohnthetubaguy: so the ironic/libvirt driver code would just be taking a dict of metadata and putting it in the right place17:21
johnthetubaguysean-k-mooney: yeah, I think it makes sense to be the same, or at least similar.17:21
sean-k-mooneyhttps://github.com/openstack/nova/blob/master/nova/virt/libvirt/config.py#L3600-L364217:22
sean-k-mooneywell actuly https://github.com/openstack/nova/blob/master/nova/virt/libvirt/config.py#L3600-L369917:22
sean-k-mooneyi have been meing to extend that for a while but it was never a high enough priority17:23
sean-k-mooneyi think that ahs most of what you want already 17:23
JayFI'm pretty sure that's *exactly* the code we had up in the meeting when we made this bp17:24
johnthetubaguyJayF: what is missing? yeah, that is the code I was thinking about before.17:24
JayFas long as it has the project that spawned it and the flavor that's the primary things we care about17:26
JayFand I see a self.owner and a self.flavor17:26
johnthetubaguyJayF: +1 I think that has it all. Feels like a case of adding to_dict(), in a way.17:28
sean-k-mooneyhttps://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L578017:28
sean-k-mooneyso this is where we generate this today17:28
johnthetubaguyah, that was it.17:28
sean-k-mooneywe could move that up to the base virt dirver17:28
sean-k-mooneyit just taks the instance and network info today17:28
sean-k-mooneyok so not quite17:29
sean-k-mooneyits currently building livbirt objects17:29
johnthetubaguyYeah, if we have something generating a dict we can both use, that would have everything we need17:29
sean-k-mooneybut we coudl build a dict or other object that is not libvirt specific17:29
JayFand then the MVP for the Ironic change becomes "toss that metadata into the instance_info patch on spawn" and "do the proper $whatever on rebuild/other non-spawn instance modifying actions"17:31
sean-k-mooneybasically ya17:31
JayFthen we'll have an Ironic side change to respect that metadata for automatic_lessee and to add a backfill script17:31
sean-k-mooneythe libvirt driver just generate it every time we generate an xml17:31
JayF(which the backfill script will also backfill node.lessee if configured to do so, which is why having it in Ironic is great)17:32
sean-k-mooneyso on reboot as well17:32
sean-k-mooneyim not sure if you just want to do that17:32
sean-k-mooneyand say reboot the node to backfile or not17:32
sean-k-mooneythat is how we handlel it when we add more metadata for libvirt17:32
sean-k-mooneyjust tell people reboot, cold migate or anything else that updates the xml17:33
JayFWhat kind of actions cause metadata to change?17:33
JayFLet me ask that differently.17:33
JayFWhat kind of non-API-initiated-actions can cause metadata to change?17:33
JayF     ^ user17:33
sean-k-mooneyinterface attach/detach, resize, rebuild and evcauate17:33
sean-k-mooneytechnially it wont change on reboot but we just do that anyway because its simpelr since we deltee and recreate the xml on every reboot17:34
JayFwe'd may want to consider filtering interface metadata in ironic instance_info, because ironic has it's own network info17:34
JayFand rebuild is the only other case that impacts Ironic17:34
sean-k-mooneyi think its ok for a virt direr to profject a view of the metdata that only has the filed that makes sense to it17:35
JayFso I think we should be able to get it to a case where Ironic instnace metadata would only change meaningfully on rebuild/spawn/destroy17:35
sean-k-mooneyya that sounds about right17:35
johnthetubaguysean-k-mooney: yeah, I think the common code can provide the set of metadata allowed, Ironic can pick a subset of that, I think skipping the network bits makes sense.17:36
sean-k-mooneywith that said17:36
sean-k-mooneyon the network side i know ironci suport portgroups17:36
sean-k-mooneybut when an ironic node is assocated with a nova instance17:36
sean-k-mooneythe only addtion or remoavl of interface 17:37
sean-k-mooneyshould be done via nova api17:37
sean-k-mooneyim aware that vif plug in the ironic driver calls ironic which does thign with neutron17:38
sean-k-mooneybtu it shoudl not really affect which ports/port groups are assocated with the instance form a nutron point of view 17:38
JayFYes. The feeling behind not wanting to pass thru the network metadata is much, much more basic than that: there's already like, three views to networks when people come to Ironic with support: Nova's view, Neutron's view, Ironic's view (port object)... not even counting various bifrost/whatever type of configs17:39
JayFI just don't want to see any bugs with "here's the node.instance_info['meta']['network']" or pollute the DB with more redundant info :)17:40
sean-k-mooney:)17:40
sean-k-mooneywell the metadta does not ahve the full network object17:40
sean-k-mooneyjust the ip s17:40
sean-k-mooneyassocated with an instance17:40
sean-k-mooneybut if you already have that no need to duplciate it as you said17:41
JayFwhich is actually information that people might want17:41
JayFIP is in neutron, we don't have it in Ironic17:41
JayFIronic holds more of the information about the physical port: mac address, binding profile/metadata about how it's physically connected to switches, etc17:41
sean-k-mooneythe ip stuff was a relitivly late addtion17:45
sean-k-mooneyhttps://github.com/openstack/nova/commit/838370a49014351051bbef2d1c2ada1f47ac2bfb17:45
sean-k-mooneyit was added in wallaby17:46
sean-k-mooneyanyway that data would be avialable for you to consume if it was useful17:46
sean-k-mooneyJayF: this is the spec we used to add that https://specs.openstack.org/openstack/nova-specs/specs/wallaby/implemented/libvirt-driver-ip-metadata.html17:47
opendevreviewStephen Finucane proposed openstack/nova master: Bump hacking version  https://review.opendev.org/c/openstack/nova/+/90352918:39
opendevreviewStephen Finucane proposed openstack/nova master: Resolve mypy error  https://review.opendev.org/c/openstack/nova/+/90353018:39
stephenfinThat mypy fix is required to unblock an u-c bump, while the other fix and the u-c bump are required to fix installing nova (for unit tests) on Python 3.12 (Fedora 39) ^18:46
JayFsean-k-mooney: johnthetubaguy: Is there anything I can do to help get https://review.opendev.org/c/openstack/nova/+/900831 landed? Was hoping to get this in front of the sharding re-proposal patch, which I was hoping to do this week (about to go rev the spec)22:01
opendevreviewMerged openstack/nova master: Fix regression breaking Ironic boot-from-volume  https://review.opendev.org/c/openstack/nova/+/90332422:41
JayFHuzzah!22:41
opendevreviewJay Faulkner proposed openstack/nova-specs master: Re-submit Ironic-shards for Caracal  https://review.opendev.org/c/openstack/nova-specs/+/90269823:25
opendevreviewJay Faulkner proposed openstack/nova master: [ironic] Partition & use cache for list_instance*  https://review.opendev.org/c/openstack/nova/+/90083123:51
*** haleyb is now known as haleyb|out23:53

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!