Thursday, 2026-03-05

clifhuh small world, I briefly worked at apstra00:35
rpittaugood morning ironic! o/07:45
opendevreviewMerged openstack/sushy master: Update master for stable/2026.1  https://review.opendev.org/c/openstack/sushy/+/97864209:08
opendevreviewMerged openstack/sushy stable/2026.1: Update .gitreview for stable/2026.1  https://review.opendev.org/c/openstack/sushy/+/97864009:15
opendevreviewMerged openstack/sushy stable/2026.1: Update TOX_CONSTRAINTS_FILE for stable/2026.1  https://review.opendev.org/c/openstack/sushy/+/97864109:16
iurygregorygood morning Ironic o/11:47
* iurygregory is back from PTO o/11:47
rpittauiurygregory: welcome back!12:57
iurygregorytks rpittau o/12:58
rpittauIf any core has a moment to check the bifrost changes, we can release by tomorrow, thanks 15:41
iurygregoryrpittau, they are all tagged with the hashtag? I can check them after lunch15:43
rpittauYes they're all there15:50
opendevreviewStephen Finucane proposed openstack/ironic master: api: Add schema for events API  https://review.opendev.org/c/openstack/ironic/+/95988015:53
opendevreviewStephen Finucane proposed openstack/ironic master: WIP: api: Add schema for portgroups API  https://review.opendev.org/c/openstack/ironic/+/95988115:53
TheJuliagood morning Iury16:06
JayFworth saying again: vxlan feature is dope as hell 16:27
JayFpitching features in ironic that a decade+ ago would've felt like asking for a unicorn16:28
iurygregory++16:30
TheJuliaWell, to be honest, we did say "unicorn" when we were originally pitching/discussing 6 or so months ago16:33
TheJulia"Hi, I'd like a rainbow unicorn, now."16:33
shermanmI'm super excited to try out the vxlan stuff tbh16:34
shermanmand the trait based networking16:34
JayFHonestly all three of the big networking achievements were unicorn-y16:38
JayFSolving long-held pain points16:38
JayFHow do we feel about backporting docs?16:53
JayFI was writing docs for container hardware manager, and found a small bug in how it's opts are not registered properly.16:53
JayFI was thinking about making it a separate commit, but it seems like "feature not a bug" to backport good docs, too16:53
dtantsurI've never worried about backporting docs as long as they apply to the previous version17:00
JayFI think I'm going to split this because I wanna talk about a younger feature in the doc, but we should backport the docs back a couple of releases17:00
JayF[agent_containers] was never hooked into oslo_config.opts :( 17:00
dtantsurThis is a good argument17:00
dtantsuroh17:00
JayFso it's been completely undocumented in ironic.conf.sample17:00
JayFI'm writing a doc on use cases for container-based ipa stesp17:01
TheJuliaBut that also sounds like a fix, sucks, but fixes do sometimes need to be backported and makes some stuff *appear* in rendered output17:07
JayFoh I'm saying17:07
JayFfix is: the opt registered17:07
JayFdoc is: documentation 17:07
JayFI'm going to split it since I talk extensively about runbook cleaning and that's newer than container steps17:07
dtantsurSo, the runbook API. Can I use it to switch between metadata and full disk erasure on the node basis?17:08
JayFdtantsur: look at https://docs.openstack.org/ironic/latest/admin/cleaning.html#configuring-automated-cleaning-with-runbooks17:08
JayFyou can completely control automated cleaning with traits, runbooks, and API now17:09
dtantsurMmm, sweet! I'm embarassingly out of date on runbooks :(17:10
JayFIt's just [list of steps] as an object17:10
JayFwith various places you can use them in lieu of defaults/autogenerated steps17:10
JayFat this point, I think automated cleaning via runbook is probably as "out there" as it gets17:10
JayFoutside of the use cases when you enable a lessee project to run their own maintenance in service using a premade runbook17:11
JayFso to tie it all together with a bow:17:11
JayFcontainer-based hardware manager + automated cleaning via runbook == ability to do ANYTHING in cleaning without having to rebuild your ramdisk17:12
JayFsince conductor provides the allowlist config at lookup17:12
dtantsurAre there reasonable limits on the number of runbooks? Because of how Metal3 is organized, I may end up with one or two per K8s namespace17:13
JayFI mean, I don't think we put limits on it because it's not expensive17:13
JayFIt even has rbac support so if you want to allow projects to create their own runbooks that only apply to their own nodes, they can17:15
dtantsurDon't forget that we're pretty Keystoneless here :)17:15
JayFI think we added the knob as well to allow it so you could enable someone to run servicing or manual cleaning with a runbook but not with arbitrary steps17:15
JayFthat just means we need the unicorn feature to map roles coming in from basic auth (/s but not really)17:15
TheJuliaI frequently wonder if we should not focusing on our rbac model as being exclusively keystone17:16
dtantsurJayF: I unironically thought about the same already17:16
JayFI mean, I explicitly pitched that at last PTG17:16
TheJuliain that primitives/models map similarly to tohers17:16
dtantsurbut Metal3 is kinda special in that multi-tenancy is handled above Ironic17:16
TheJuliaDid we discuss it, I don't remember discusisng it during the last ptg17:16
JayFbut it ended up deprioritized in my downstream in favor of the network bits17:16
JayFwe talked about it $someTime if not PTG17:16
TheJuliayeah17:16
JayFbecause I have standalone use cases where I'd want RBAC, too17:16
JayFon a longer term horizon17:17
dtantsurJayF: I recall you had people eager to contribute to gophercloud. Has runbooks API ever been in the scope? ;)17:17
JayFif there are any ironic endpoints missing from gophercloud at this point17:17
JayFI need to waggle my finger at adam ;) 17:18
JayFI thought we got feature-complete over there before moving on to openstack-exporter17:18
JayFbut that /may/ have only been for reads17:18
dtantsurJayF: grepping for "runbook" does not yield anything, so if Adam has cycles..17:21
JayFdtantsur: can you put it in an issue or something?17:23
JayFdtantsur: I also know cid was looking to learn go in the next few months, so it might be a nice first task for him, especially if someone was willing to help out with mentoring him on the language generally17:24
* JayF pointed him at go.dev/tour already17:24
cid\o/17:25
dtantsurhttps://github.com/gophercloud/gophercloud/issues/364217:26
dtantsurI'm happy to help with reviews although I don't have any rights on gophercloud17:26
dtantsurI'm also happy to find some small task on Metal3 if that's of interest17:26
JayFI'm not going to ask my team to prioritize it, but as always I'm happy if someone over here has interest and wants to pick it up17:27
JayF(over here meaning IRC or GR-OSS, really)17:28
opendevreviewJay Faulkner proposed openstack/ironic master: Properly register [agent_container] config  https://review.opendev.org/c/openstack/ironic/+/97903417:31
opendevreviewJay Faulkner proposed openstack/ironic master: Add admin-guide documentation around container hwm  https://review.opendev.org/c/openstack/ironic/+/97903517:31
opendevreviewJay Faulkner proposed openstack/ironic master: Add admin-guide documentation around container hwm  https://review.opendev.org/c/openstack/ironic/+/97903517:42
opendevreviewJay Faulkner proposed openstack/ironic-python-agent-builder master: Move ironic-python-agent-podman element  https://review.opendev.org/c/openstack/ironic-python-agent-builder/+/97903717:45
TheJuliaJayF: you mentioned pushing forward on tbn stuff in the last bit of the cycle, anything specific to be reviewed?19:19
JayFdata model PR is up; https://review.opendev.org/c/openstack/ironic/+/978964 my understanding is clif is working to take it further this week19:35
clifyep, I'm working on a group_and_attach_ports commit on top of yours JayF 19:36
TheJuliaJayF: posted comment, requesting revision19:51
* JayF on it19:52
opendevreviewJay Faulkner proposed openstack/ironic master: Add dynamic portgroup fields (API 1.111)  https://review.opendev.org/c/openstack/ironic/+/97896419:57
JayFTheJulia: ^ tests added \o/ 19:57
TheJuliaThanks!19:57
JayFthanks for the quick review19:57
cardoeAnd I'm over here being difficult.20:03
cardoeGimme a way to default it to True.20:03
cardoeI add ports purely through inspection20:03
cardoeHaving to come back around and whack them all to True is gonna negate a lot of advantage for me.20:03
JayFthat's a reasonable ask for sure20:04
JayFI'll get one of those in once the data model lands20:04
cardoeI've already thought of inspection rules but unfortunately the port manipulation part of inspection rules can't work.20:05
cardoeYou have to specify the UUID of the port and it's impossible to do that programmatically.20:06
JayFI wonder if the solution (cc: TheJulia clif) is to just global default to true20:11
JayFI think we can justify that, and it reduces the complexity in your case20:11
JayFcardoe: ^20:11
cardoeThat'd work for me.20:12
clifI'm not against it20:12
cardoeFor the most part if you're using automated inspection port adding you should have rules defined to only add ports you want to work with.20:12
clifIf there's hesitation to default to True we could make it configurable20:12
JayFI'm mainly trying to dodge the need for another config flag20:13
JayFI am going to flip the default to true20:13
JayFIt also prevents an "N" api calls for "N" ports to enable dynamic portgroups for people migrating to tbn20:14
JayFif we default it all to true20:14
JayFaight, good callout cardoe and I think we're going to be a better solution with the default=true and non-nullable20:18
opendevreviewJay Faulkner proposed openstack/ironic master: Add dynamic portgroup fields (API 1.111)  https://review.opendev.org/c/openstack/ironic/+/97896420:24
JayFI also had to tell myself sternly to add a release note /o\20:24
opendevreviewAllain Legacy proposed openstack/ironic master: Refactor switchport config parsing into SwitchPortConfig dataclass  https://review.opendev.org/c/openstack/ironic/+/97907720:39
opendevreviewJay Faulkner proposed openstack/ironic master: Add dynamic portgroup fields (API 1.111)  https://review.opendev.org/c/openstack/ironic/+/97896420:41
opendevreviewAllain Legacy proposed openstack/ironic master: Increase networking-generic-switch version  https://review.opendev.org/c/openstack/ironic/+/97907920:42
TheJuliawho, what huh, what where did my brain go?!21:19
TheJuliaJayF: I'm fine with a global default21:20
JayFit's awaiting a re-review :)21:21
TheJuliaok21:21
TheJuliai was thinking a little differently, but lgtm21:22
JayFcurious what you were thinking21:23
TheJuliaoh, I was thinking set it based upon a config knob, but the more I think about it that approach is right for the db upgrade for sure21:42
TheJuliameaning, what you proposed is good21:42
cardoeJayF: one slight further tweak22:00
cardoeThe JSON schema says it can be null.22:01
cardoeOh speaking of JSON schema...22:01
cardoeSo Claude made a patch... and I know JayF hates it already but hear me out...22:01
cardoeI took all the JSON schema out of Python files and into standalone files. Then they're just loaded once. That let's me as a human edit them with an editor that can do JSON schema formatting.22:02
cardoeIt's also made a follow on that serves up /openapi.json and I can use https://redocly.github.io/redoc/ to call the Ironic API22:06
cardoeJayF: one small nit on that patch.22:07
JayFwe shouldn't touch anything schema-related until we complete the schema migrations.22:08
JayFin terms of refactoring22:08
* JayF has tests running on the pr fix22:10
cardoeI just hate trying to mess with the schemas embedded in a Python file.22:10
cardoeAnd I can load them up in other tools to do things with them.22:10
JayFhave you looked at the new style schema we're migrating to?22:11
cardoeLike I used them to audit python-ironicclient22:11
JayFI would suggest that using our json schemas to do cool things is not really a use case we should worry hard about optimizing for, even if cool :)22:11
JayFbut either way, I think we should complete the in-progress (For a year now?) migration before starting new things22:11
JayFin fact, prioritizing that would be wise for next cycle...22:12
opendevreviewJay Faulkner proposed openstack/ironic master: Add dynamic portgroup fields (API 1.111)  https://review.opendev.org/c/openstack/ironic/+/97896422:12
cardoeI'm using the new schemas. They're embedded in .py files?22:12
cardoeLike what you just edited for ports22:12
JayFI do not believe those are the new style22:13
JayFhttps://opendev.org/openstack/ironic/src/branch/master/ironic/api/schemas/v122:13
JayFI would argue we are making it worse for your use case, but this is the style stephenfin and friends have been pushing around the repos in an effort to get opendev api spec generation going project-wide22:14
JayF(you can see the usage w/decorators here https://opendev.org/openstack/ironic/src/branch/master/ironic/api/controllers/v1/bios.py#L80 )22:18
cardoeokay.22:18
cardoeI mean I have no idea how I'd write a correct schema in that case. Too much deepcopy and variables22:18
JayFit's because we don't have "a schema"22:19
JayFwe have "n" schemas for "n" microversions that a given endpoint have evolved through22:19
JayFthat code is working hard to DRY in a way that makes it tougher to read, but I'm not sure repeating it would be better :/22:19
cardoeYeah for micro version stuff I just use pydantic.22:21
cardoe+1 on the DRY stuff22:21
cardoehttps://www.irccloud.com/pastebin/CTpi6Xwg/22:24
cardoeAs an example. Stripe had a really good example cause they version each of their objects instead of their whole API.22:24
JayFTo be blunt, you're not going to make progress on a technical argument with me here because I value consistency and going along with what the rest of the openstack projects are doing -- including things like generating clients out of the openapi schemas that come out 22:25
JayFI like the way that code looks better, but that isn't the motivating factor for me in this case22:25
cardoeNot trying to win you over with anything.22:25
cardoeI'm giving an example of what I use.22:25
JayFI'm just trying to say I'm just pointing at reality not enjoying it :D 22:25
cardoeOpenStack loves to invent our own style.22:25
JayFpeople also love to accuse of of that when the "standard style" was created after ours (I don't think it's the case here, but I bristle against that statement generally)22:26
opendevreviewJay Faulkner proposed openstack/ironic master: Add admin-guide documentation around container hwm  https://review.opendev.org/c/openstack/ironic/+/97903523:29

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