| clif | huh small world, I briefly worked at apstra | 00:35 |
|---|---|---|
| rpittau | good morning ironic! o/ | 07:45 |
| opendevreview | Merged openstack/sushy master: Update master for stable/2026.1 https://review.opendev.org/c/openstack/sushy/+/978642 | 09:08 |
| opendevreview | Merged openstack/sushy stable/2026.1: Update .gitreview for stable/2026.1 https://review.opendev.org/c/openstack/sushy/+/978640 | 09:15 |
| opendevreview | Merged openstack/sushy stable/2026.1: Update TOX_CONSTRAINTS_FILE for stable/2026.1 https://review.opendev.org/c/openstack/sushy/+/978641 | 09:16 |
| iurygregory | good morning Ironic o/ | 11:47 |
| * iurygregory is back from PTO o/ | 11:47 | |
| rpittau | iurygregory: welcome back! | 12:57 |
| iurygregory | tks rpittau o/ | 12:58 |
| rpittau | If any core has a moment to check the bifrost changes, we can release by tomorrow, thanks | 15:41 |
| iurygregory | rpittau, they are all tagged with the hashtag? I can check them after lunch | 15:43 |
| rpittau | Yes they're all there | 15:50 |
| opendevreview | Stephen Finucane proposed openstack/ironic master: api: Add schema for events API https://review.opendev.org/c/openstack/ironic/+/959880 | 15:53 |
| opendevreview | Stephen Finucane proposed openstack/ironic master: WIP: api: Add schema for portgroups API https://review.opendev.org/c/openstack/ironic/+/959881 | 15:53 |
| TheJulia | good morning Iury | 16:06 |
| JayF | worth saying again: vxlan feature is dope as hell | 16:27 |
| JayF | pitching features in ironic that a decade+ ago would've felt like asking for a unicorn | 16:28 |
| iurygregory | ++ | 16:30 |
| TheJulia | Well, to be honest, we did say "unicorn" when we were originally pitching/discussing 6 or so months ago | 16:33 |
| TheJulia | "Hi, I'd like a rainbow unicorn, now." | 16:33 |
| shermanm | I'm super excited to try out the vxlan stuff tbh | 16:34 |
| shermanm | and the trait based networking | 16:34 |
| JayF | Honestly all three of the big networking achievements were unicorn-y | 16:38 |
| JayF | Solving long-held pain points | 16:38 |
| JayF | How do we feel about backporting docs? | 16:53 |
| JayF | I was writing docs for container hardware manager, and found a small bug in how it's opts are not registered properly. | 16:53 |
| JayF | I was thinking about making it a separate commit, but it seems like "feature not a bug" to backport good docs, too | 16:53 |
| dtantsur | I've never worried about backporting docs as long as they apply to the previous version | 17:00 |
| JayF | I 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 releases | 17:00 |
| JayF | [agent_containers] was never hooked into oslo_config.opts :( | 17:00 |
| dtantsur | This is a good argument | 17:00 |
| dtantsur | oh | 17:00 |
| JayF | so it's been completely undocumented in ironic.conf.sample | 17:00 |
| JayF | I'm writing a doc on use cases for container-based ipa stesp | 17:01 |
| TheJulia | But that also sounds like a fix, sucks, but fixes do sometimes need to be backported and makes some stuff *appear* in rendered output | 17:07 |
| JayF | oh I'm saying | 17:07 |
| JayF | fix is: the opt registered | 17:07 |
| JayF | doc is: documentation | 17:07 |
| JayF | I'm going to split it since I talk extensively about runbook cleaning and that's newer than container steps | 17:07 |
| dtantsur | So, the runbook API. Can I use it to switch between metadata and full disk erasure on the node basis? | 17:08 |
| JayF | dtantsur: look at https://docs.openstack.org/ironic/latest/admin/cleaning.html#configuring-automated-cleaning-with-runbooks | 17:08 |
| JayF | you can completely control automated cleaning with traits, runbooks, and API now | 17:09 |
| dtantsur | Mmm, sweet! I'm embarassingly out of date on runbooks :( | 17:10 |
| JayF | It's just [list of steps] as an object | 17:10 |
| JayF | with various places you can use them in lieu of defaults/autogenerated steps | 17:10 |
| JayF | at this point, I think automated cleaning via runbook is probably as "out there" as it gets | 17:10 |
| JayF | outside of the use cases when you enable a lessee project to run their own maintenance in service using a premade runbook | 17:11 |
| JayF | so to tie it all together with a bow: | 17:11 |
| JayF | container-based hardware manager + automated cleaning via runbook == ability to do ANYTHING in cleaning without having to rebuild your ramdisk | 17:12 |
| JayF | since conductor provides the allowlist config at lookup | 17:12 |
| dtantsur | Are there reasonable limits on the number of runbooks? Because of how Metal3 is organized, I may end up with one or two per K8s namespace | 17:13 |
| JayF | I mean, I don't think we put limits on it because it's not expensive | 17:13 |
| JayF | It even has rbac support so if you want to allow projects to create their own runbooks that only apply to their own nodes, they can | 17:15 |
| dtantsur | Don't forget that we're pretty Keystoneless here :) | 17:15 |
| JayF | I 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 steps | 17:15 |
| JayF | that just means we need the unicorn feature to map roles coming in from basic auth (/s but not really) | 17:15 |
| TheJulia | I frequently wonder if we should not focusing on our rbac model as being exclusively keystone | 17:16 |
| dtantsur | JayF: I unironically thought about the same already | 17:16 |
| JayF | I mean, I explicitly pitched that at last PTG | 17:16 |
| TheJulia | in that primitives/models map similarly to tohers | 17:16 |
| dtantsur | but Metal3 is kinda special in that multi-tenancy is handled above Ironic | 17:16 |
| TheJulia | Did we discuss it, I don't remember discusisng it during the last ptg | 17:16 |
| JayF | but it ended up deprioritized in my downstream in favor of the network bits | 17:16 |
| JayF | we talked about it $someTime if not PTG | 17:16 |
| TheJulia | yeah | 17:16 |
| JayF | because I have standalone use cases where I'd want RBAC, too | 17:16 |
| JayF | on a longer term horizon | 17:17 |
| dtantsur | JayF: I recall you had people eager to contribute to gophercloud. Has runbooks API ever been in the scope? ;) | 17:17 |
| JayF | if there are any ironic endpoints missing from gophercloud at this point | 17:17 |
| JayF | I need to waggle my finger at adam ;) | 17:18 |
| JayF | I thought we got feature-complete over there before moving on to openstack-exporter | 17:18 |
| JayF | but that /may/ have only been for reads | 17:18 |
| dtantsur | JayF: grepping for "runbook" does not yield anything, so if Adam has cycles.. | 17:21 |
| JayF | dtantsur: can you put it in an issue or something? | 17:23 |
| JayF | dtantsur: 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 generally | 17:24 |
| * JayF pointed him at go.dev/tour already | 17:24 | |
| cid | \o/ | 17:25 |
| dtantsur | https://github.com/gophercloud/gophercloud/issues/3642 | 17:26 |
| dtantsur | I'm happy to help with reviews although I don't have any rights on gophercloud | 17:26 |
| dtantsur | I'm also happy to find some small task on Metal3 if that's of interest | 17:26 |
| JayF | I'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 up | 17:27 |
| JayF | (over here meaning IRC or GR-OSS, really) | 17:28 |
| opendevreview | Jay Faulkner proposed openstack/ironic master: Properly register [agent_container] config https://review.opendev.org/c/openstack/ironic/+/979034 | 17:31 |
| opendevreview | Jay Faulkner proposed openstack/ironic master: Add admin-guide documentation around container hwm https://review.opendev.org/c/openstack/ironic/+/979035 | 17:31 |
| opendevreview | Jay Faulkner proposed openstack/ironic master: Add admin-guide documentation around container hwm https://review.opendev.org/c/openstack/ironic/+/979035 | 17:42 |
| opendevreview | Jay Faulkner proposed openstack/ironic-python-agent-builder master: Move ironic-python-agent-podman element https://review.opendev.org/c/openstack/ironic-python-agent-builder/+/979037 | 17:45 |
| TheJulia | JayF: you mentioned pushing forward on tbn stuff in the last bit of the cycle, anything specific to be reviewed? | 19:19 |
| JayF | data model PR is up; https://review.opendev.org/c/openstack/ironic/+/978964 my understanding is clif is working to take it further this week | 19:35 |
| clif | yep, I'm working on a group_and_attach_ports commit on top of yours JayF | 19:36 |
| TheJulia | JayF: posted comment, requesting revision | 19:51 |
| * JayF on it | 19:52 | |
| opendevreview | Jay Faulkner proposed openstack/ironic master: Add dynamic portgroup fields (API 1.111) https://review.opendev.org/c/openstack/ironic/+/978964 | 19:57 |
| JayF | TheJulia: ^ tests added \o/ | 19:57 |
| TheJulia | Thanks! | 19:57 |
| JayF | thanks for the quick review | 19:57 |
| cardoe | And I'm over here being difficult. | 20:03 |
| cardoe | Gimme a way to default it to True. | 20:03 |
| cardoe | I add ports purely through inspection | 20:03 |
| cardoe | Having to come back around and whack them all to True is gonna negate a lot of advantage for me. | 20:03 |
| JayF | that's a reasonable ask for sure | 20:04 |
| JayF | I'll get one of those in once the data model lands | 20:04 |
| cardoe | I've already thought of inspection rules but unfortunately the port manipulation part of inspection rules can't work. | 20:05 |
| cardoe | You have to specify the UUID of the port and it's impossible to do that programmatically. | 20:06 |
| JayF | I wonder if the solution (cc: TheJulia clif) is to just global default to true | 20:11 |
| JayF | I think we can justify that, and it reduces the complexity in your case | 20:11 |
| JayF | cardoe: ^ | 20:11 |
| cardoe | That'd work for me. | 20:12 |
| clif | I'm not against it | 20:12 |
| cardoe | For 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 |
| clif | If there's hesitation to default to True we could make it configurable | 20:12 |
| JayF | I'm mainly trying to dodge the need for another config flag | 20:13 |
| JayF | I am going to flip the default to true | 20:13 |
| JayF | It also prevents an "N" api calls for "N" ports to enable dynamic portgroups for people migrating to tbn | 20:14 |
| JayF | if we default it all to true | 20:14 |
| JayF | aight, good callout cardoe and I think we're going to be a better solution with the default=true and non-nullable | 20:18 |
| opendevreview | Jay Faulkner proposed openstack/ironic master: Add dynamic portgroup fields (API 1.111) https://review.opendev.org/c/openstack/ironic/+/978964 | 20:24 |
| JayF | I also had to tell myself sternly to add a release note /o\ | 20:24 |
| opendevreview | Allain Legacy proposed openstack/ironic master: Refactor switchport config parsing into SwitchPortConfig dataclass https://review.opendev.org/c/openstack/ironic/+/979077 | 20:39 |
| opendevreview | Jay Faulkner proposed openstack/ironic master: Add dynamic portgroup fields (API 1.111) https://review.opendev.org/c/openstack/ironic/+/978964 | 20:41 |
| opendevreview | Allain Legacy proposed openstack/ironic master: Increase networking-generic-switch version https://review.opendev.org/c/openstack/ironic/+/979079 | 20:42 |
| TheJulia | who, what huh, what where did my brain go?! | 21:19 |
| TheJulia | JayF: I'm fine with a global default | 21:20 |
| JayF | it's awaiting a re-review :) | 21:21 |
| TheJulia | ok | 21:21 |
| TheJulia | i was thinking a little differently, but lgtm | 21:22 |
| JayF | curious what you were thinking | 21:23 |
| TheJulia | oh, 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 sure | 21:42 |
| TheJulia | meaning, what you proposed is good | 21:42 |
| cardoe | JayF: one slight further tweak | 22:00 |
| cardoe | The JSON schema says it can be null. | 22:01 |
| cardoe | Oh speaking of JSON schema... | 22:01 |
| cardoe | So Claude made a patch... and I know JayF hates it already but hear me out... | 22:01 |
| cardoe | I 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 |
| cardoe | It's also made a follow on that serves up /openapi.json and I can use https://redocly.github.io/redoc/ to call the Ironic API | 22:06 |
| cardoe | JayF: one small nit on that patch. | 22:07 |
| JayF | we shouldn't touch anything schema-related until we complete the schema migrations. | 22:08 |
| JayF | in terms of refactoring | 22:08 |
| * JayF has tests running on the pr fix | 22:10 | |
| cardoe | I just hate trying to mess with the schemas embedded in a Python file. | 22:10 |
| cardoe | And I can load them up in other tools to do things with them. | 22:10 |
| JayF | have you looked at the new style schema we're migrating to? | 22:11 |
| cardoe | Like I used them to audit python-ironicclient | 22:11 |
| JayF | I 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 |
| JayF | but either way, I think we should complete the in-progress (For a year now?) migration before starting new things | 22:11 |
| JayF | in fact, prioritizing that would be wise for next cycle... | 22:12 |
| opendevreview | Jay Faulkner proposed openstack/ironic master: Add dynamic portgroup fields (API 1.111) https://review.opendev.org/c/openstack/ironic/+/978964 | 22:12 |
| cardoe | I'm using the new schemas. They're embedded in .py files? | 22:12 |
| cardoe | Like what you just edited for ports | 22:12 |
| JayF | I do not believe those are the new style | 22:13 |
| JayF | https://opendev.org/openstack/ironic/src/branch/master/ironic/api/schemas/v1 | 22:13 |
| JayF | I 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-wide | 22: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 |
| cardoe | okay. | 22:18 |
| cardoe | I mean I have no idea how I'd write a correct schema in that case. Too much deepcopy and variables | 22:18 |
| JayF | it's because we don't have "a schema" | 22:19 |
| JayF | we have "n" schemas for "n" microversions that a given endpoint have evolved through | 22:19 |
| JayF | that 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 |
| cardoe | Yeah for micro version stuff I just use pydantic. | 22:21 |
| cardoe | +1 on the DRY stuff | 22:21 |
| cardoe | https://www.irccloud.com/pastebin/CTpi6Xwg/ | 22:24 |
| cardoe | As an example. Stripe had a really good example cause they version each of their objects instead of their whole API. | 22:24 |
| JayF | To 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 |
| JayF | I like the way that code looks better, but that isn't the motivating factor for me in this case | 22:25 |
| cardoe | Not trying to win you over with anything. | 22:25 |
| cardoe | I'm giving an example of what I use. | 22:25 |
| JayF | I'm just trying to say I'm just pointing at reality not enjoying it :D | 22:25 |
| cardoe | OpenStack loves to invent our own style. | 22:25 |
| JayF | people 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 |
| opendevreview | Jay Faulkner proposed openstack/ironic master: Add admin-guide documentation around container hwm https://review.opendev.org/c/openstack/ironic/+/979035 | 23:29 |
Generated by irclog2html.py 4.1.0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!