Wednesday, 2025-04-02

freemanboss[m]queensly: Ayo: Amarachi Ordor: and all please have you ever used below 4 CPU to run ironic and it work well? Below 8gb ram also?03:22
AmarachiOrdor[m]Oh no I don't think I have03:23
jssfris the instance_uuid field used for anything by ironic?06:23
jssfrif you don't hook it up to nova, that is.06:23
jssfrreason I'm asking: We're using ironic to deploy nodes for two (potentially more) different bare-metal clusters. It would be good to have something in `openstack baremetal node list` which easily lets you see to which cluster a node belongs.06:24
jssfrI was thinking of using the instance UUID for that.06:24
queensly[m]<freemanboss[m]> "queensly: Ayo: Amarachi Ordor..." <- No I haven't.07:19
zigoironicclient is broken with cliff 4.9.1: https://bugs.launchpad.net/python-ironicclient/+bug/210597307:24
zigoHow come ironicclient isn't testing with the global upper-constraints.txt ?07:26
dtantsurit is https://opendev.org/openstack/python-ironicclient/src/branch/master/tox.ini#L1407:27
zigodtantsur: Right, so it should have catch the bug, no?07:55
dtantsurzigo: tests pass locally for me. are you sure you have all the latest patches?07:58
zigodtantsur: I'm using whatever is released as latest for Epoxy.07:59
zigoSame issue with ironic-inspector-client, so I filled-up: https://bugs.launchpad.net/python-ironic-inspector-client/+bug/210597807:59
zigoI'm using:08:00
zigopython-ironic-inspector-client_5.3.0-408:00
zigoand08:00
zigopython-ironic-inspector-client_5.3.008:00
* zigo looks at master branch history08:00
zigoAh ... https://github.com/openstack/python-ironicclient/commit/b969cc865ab7b59214fe3fa86115d88decfe282308:01
zigoIMO that's not a good patch, it should be ordering things in the test with sorted().08:01
opendevreviewQueensly Kyerewaa Acheampongmaa proposed openstack/bifrost master: Improve howto.rst with updated instructions  https://review.opendev.org/c/openstack/bifrost/+/94611608:06
rpittaugood morning ironic! o/08:13
rpittauzigo: ironicclient 5.10.0 is 4 months old, cliff in UC was updated 2 months ago :/08:40
rpittauI will propose a new release, latest works with cliff 4.9.108:40
kulsoomsHi everyone, i'm struggling at the enrollment step, having the same error "wait for the node to finish cleaning". I was following yesterday's discussion to resolve this issue but i'm not able to turn on the power state of any of the nodes?09:09
kulsoomscurrently it says None and I used the command "baremetal node power on testvm1"09:10
AmarachiOrdor[m]kulsooms: what does it say when you used it 09:10
kulsoomsAmarchi: currently it says nothing. if you can see this image: https://imgur.com/a/hYnlMPc09:14
Ayo[m]kulsooms: Have you tried to deploy at any point?09:16
kulsoomsAmarchi: I tried the deployment command which is in the docs but it also gave the same ""wait for the node to finish cleaning" output09:18
kulsoomsAyo*:09:21
Ayo[m]If you want to power on use the uuid of the server you want to target09:23
Ayo[m]Kindly open the inventory.json file and you should get the uuid for the server you want to power on09:24
Ayo[m]I think you’re restarting the process since you re enrolled09:24
Ayo[m]Probably cleaning the os image on the previous step you made09:24
Ayo[m]Hmmm09:27
queensly[m]Ayo[m]: with the command baremetal node show testvm1 will show you the uuid.09:27
queensly[m]* the command 'baremetal node, * show testvm1'  will09:28
Ayo[m]queensly[m]: Ok, thanks09:29
queensly[m]<kulsooms> "Amarchi: I tried the deployment..." <- Any update?09:33
kulsoomsAyo, queensly: thank you, let me try09:36
freemanboss[m]<rpittau> "good morning ironic! o/" <- Good morning rpittau: 09:47
freemanboss[m]rpittau: I noticed the 2025.1 release has been updated can we use it now?09:48
rpittaufreemanboss[m]: it should work now, give it a try :)09:50
freemanboss[m]rpittau: Alright thanks 09:52
cidrpittau, I marked 2105973 and https://bugs.launchpad.net/python-ironic-inspector-client/+bug/2105978 as fix released. Is that correct!11:00
kulsoomsqueensly, ayo: I tried using the uuid still its not working11:04
Ayo[m]Can you attach a screenshot?11:05
freemanboss[m]kulsooms: you're in enrollment?11:05
freemanboss[m]The show directive is just to show details it doesn't alter anything11:06
rpittauTheJulia: I saw you updated the schedule in the flamingo ptg etherpad, thanks! Will we have a neutron cross-team session?11:07
kulsoomsAyo: https://imgur.com/a/MMzLmQW11:08
freemanboss[m]kulsooms: try... (full message at <https://matrix.org/oftc/media/v1/media/download/AcTfNwfO778uuvV3FRZD0AkGFU6nXHJvXY-YELL3qKyeYtHDROmZR7zWgaKV7MVJdfvasH2YVRO9kVBNFwRCIm9CeWPkqAiAAG1hdHJpeC5vcmcvY09LZVpETnlBTmhiWG5SWWJLcWVsYk9y>)11:09
kulsoomsfreemanboss: yess11:10
kulsoomsfreemanboss:11:10
kulsoomsok thank you let me try11:10
freemanboss[m]If there's any error in any step please let's see11:10
kulsoomsfreemanboss: yess there is, if you can see this: https://imgur.com/a/TpBfr8011:14
freemanboss[m]Run the node list again 11:17
freemanboss[m]Let's see the status it'll change to after verifying 11:18
Ayo[m]What did the verifying change to kulsooms 11:20
kulsoomsfreemanboss, Ayo: it says "enroll" : https://imgur.com/a/XvL6El411:21
freemanboss[m]Good11:21
freemanboss[m]Try again11:22
freemanboss[m]Those step but if it's still enroll it enters11:23
freemanboss[m]baremetal node abort testvm1 and testvm2 before running the manage and provide step again 11:23
freemanboss[m]kulsooms: 11:23
kulsoomsfreemanboss: https://imgur.com/a/ZOtK7Ra11:26
freemanboss[m]Have you redo the manage and provide? kulsooms: 11:27
kulsoomsyess11:28
freemanboss[m]Ohhh try ./bifrost-cli enroll baremetal-inventory.json 11:29
Ayo[m]Freeman Boss: can’t he just delete the nodes and re enroll them?11:29
freemanboss[m]kulsooms: ohhh you're not in the bifrost directory?11:29
freemanboss[m]Ayo[m]: I don't see the need for that yet11:30
Ayo[m]There might be something off during his initial enrollment11:30
freemanboss[m]After verifying it should actually transit to manageable according to the docs but I don't understand 11:31
freemanboss[m]Ayo[m]: Yeah I guess so11:32
freemanboss[m]kulsooms: have you been using bifrost-cli??11:32
freemanboss[m]Ohhh now I understand testvm1 or testvm2 doesn't exist!!!11:32
Ayo[m]I think the logic is inspection is suppose to check for the state of the node and provide feedback11:33
freemanboss[m]Use the node id kulsooms: to manage and provide 11:33
freemanboss[m]But you've not been using bifrost-cli right? Which method did you install bifrost with?11:33
kulsoomsfreemanboss: yess i'm using bifrost-cli 11:33
freemanboss[m]kulsooms: Alright 11:34
freemanboss[m]* Alright11:35
freemanboss[m]Which command are you running no11:35
freemanboss[m]* Alright11:35
freemanboss[m]Which command are you running now?11:35
kulsoomsi switched to bifrost diectory and running the same commands but its the same11:37
freemanboss[m]Ayo[m]: Yeah the validate flag can help to confirm this 11:37
freemanboss[m]kulsooms: Run the ./bifrost-cli enroll baremetal-inventory.json11:37
Ayo[m]What .json file did you use to enroll kulsooms 11:38
Ayo[m]freemanboss[m]: Yeah I suspected he might have used the other one11:38
Ayo[m]But I thought that other file wouldn’t have brought him this far11:39
kulsoomsayo: I used both i think 11:39
Ayo[m]Use the inventory and enroll let’s see11:40
kulsoomsayo, freemanboss: https://imgur.com/a/N763RRt11:43
kulsoomsfreemanboss: what do mean by testvm1 or testvm2 doesn't exist, can you explain?11:44
freemanboss[m]Just let it finish 11:44
freemanboss[m]After it finishes this step should work fine... (full message at <https://matrix.org/oftc/media/v1/media/download/AdbwJtOyujiwgh5vAQQpYnQnduADSrG0k2ftIy0TfP7hlRBTpQKclQLGN6iAEtP7ojdJz2rxYPe76iLUCvKDQ3VCeWPms3jgAG1hdHJpeC5vcmcva0VpcFlMTk9uQ0ZiVVZYUlBoSGtVUmNq>)11:45
freemanboss[m]kulsooms: Sorry it's a mistake 11:46
freemanboss[m]I later saw it in the name session11:46
queensly[m]kulsooms: I had same error yesterday. Let it finish and follow the steps Freeman has provided.11:46
kulsoomsfreebossman: ok11:48
kulsoomsqueensly: yeah, I came here after following that discussion, cause i was't able to change the power state of any of the nodes.11:49
freemanboss[m]kulsooms: has it finished?12:05
rpittaucid: sorry I missed your message before, yes that's correct, thanks!12:06
kulsoomsfreemanboss: yess and it says : https://imgur.com/a/RADwAjd :'))12:15
freemanboss[m]<freemanboss[m]> "After it finishes this step..." <- > <@freemanboss:matrix.org> After it finishes this step should work fine... (full message at <https://matrix.org/oftc/media/v1/media/download/AeNH8jB3t0BH39P1qer6vEZUvR_85JWqMrAIeJOknQWeTD-FAFdk4uzfUb8949FtLZFR8QGdFwSA9s6dC296u1hCeWPoeUXQAG1hdHJpeC5vcmcvZEFUUHF2c1hwUWtBZmtyQ3lQWmtMYXBp>)12:16
kulsoomsqueensly: please find the last screenshot attached. did you also get the same output?12:17
kulsoomsfreemanboss: ok 12:17
freemanboss[m]kulsooms: Yeah I do. You still get error after following those steps I highlighted?12:20
freemanboss[m]<kulsooms> "freemanboss: yess and it says..." <- What are the resources of your VM? Ram and CPU and hard disk allocation?12:21
freemanboss[m]* Can you send the baremetal-inventory.json file also 12:26
kulsoomsmy VM has 4 processors and 100 GB of disk12:28
queensly[m]<kulsooms> "queensly: please find the last..." <- Yes, I did.12:30
kulsoomsfreemanboss: https://imgur.com/a/UWfHZOt12:30
kulsoomsqueensly: ok thank you12:32
freemanboss[m]kulsooms: what are you running now? The abort, manage and provide isn't working fine?12:34
queensly[m]queensly[m]: So after getting the error, I then used the command "baremetal node power on testvm1" to change the power state and also the manage and provide commands to change the provision state. 12:35
kulsoomsfreemanboss, queensly: https://imgur.com/a/IBjLwaO12:39
freemanboss[m]Check the status again kulsooms: 12:42
kulsoomsi think I would need to delete all of this and start again12:43
kulsoomsits the same pronvisioning state "enroll" and power state as "none"12:44
queensly[m]<kulsooms> "freemanboss, queensly: https://..." <- Alright. You keep getting the error about "the node is locked by another host" because there's an ongoing operation on the node, such as powering on or provisioning, and Ironic is preventing other actions from interfering with it until the current operation finishes. I will suggest that you wait until an action is executed before you move to the next step. You can use the12:46
queensly[m]"baremetal node list" to check on the status. 12:46
queensly[m]<kulsooms> "i think I would need to delete..." <- Alright. Ensure you restart your laptop too, sometimes it helps. After that begin the process and share your feedback with us. 12:49
kulsoomsqueensly: how to know when will the operation end cause i got this error yesterday too, it should have ended by now, no?12:50
kulsoomsqueensly: yeah, ok12:50
freemanboss[m]kulsooms: by check baremetal node list12:51
freemanboss[m]Actually I'll advise you start again too and follow the right step12:51
freemanboss[m]./baremetal testenv12:51
freemanboss[m]./baremetal install --testenv 12:51
freemanboss[m]Source the virtualenv12:52
freemanboss[m]Export the os_cloud12:52
freemanboss[m]And re-enroll12:52
freemanboss[m]Or just try the manage, and provide method 12:53
freemanboss[m]s/Or/And/, s/just//12:53
kulsoomsfreemanboss: i believe its ./bifrost-cli* testenv and ./bifrost-cli* install --testenv 13:22
freemanboss[m]Asterisk?13:23
Ayo[m]Nah kulsooms 13:24
Ayo[m]Freeman Boss: when you used ansible playbook13:27
Ayo[m]Did you run from the installation stage or you used it after running the cli installation 13:27
freemanboss[m]I used it after ./bifrost-cli testenv 13:27
Ayo[m]Ok, thanks13:28
Ayo[m]Have you started with the actual bifrost cli?13:28
TheJuliarpittau: Regarding a cross-team session, I'm not sure. That being said Cardoe did put the key topic into a RFE/Bug in launchpad with some background why... which would have largely been what such a session would have been for.13:30
rpittauack13:31
freemanboss[m]Ayo[m]: You're referring to me?13:31
Ayo[m]Freeman Boss: yeah13:32
freemanboss[m]It seems the cli also uses playbooks in the background. If using playbooks I don't using cli instead 13:33
cardoeTheJulia: So my RFE around physical networks / fabrics for VXLAN?13:33
TheJuliajssfr: if ironic is not hooked up to nova, nothing automatic uses it. We do semi-encourage its use but you really don't need to since its a indicator to someone interacting with the API that this node is getting used for a purpose as vifs get populated13:33
TheJuliacardoe: yes13:33
cardoeThey replied back that they'll make time in the PTG for me to present it.13:34
TheJuliacardoe: oh, excellent!13:34
TheJuliacardoe: can we get it noted on the schedule13:34
cardoeAs soon as I find out when, I'll share it.13:35
Ayo[m]freemanboss[m]: Ok13:35
cardoeDo we want to do something about adding the ability to have long operations for some of those things?13:35
TheJuliarpittau: so any thoughts on swapping Tuesday/Thursday ?13:36
TheJuliarpittau: specifically because https://board.openinfra.org/meetings/2025-04-08 conflicts for me13:36
rpittauTheJulia: I think it's ok13:37
TheJuliacardoe: I think there is already a bug out there for it. That being said, I don't think that is really a thing neutron *can* solve without substantial refactoring. From an ironic project standpoint, we do also want to see another network backend become a viable option for standalone usage and I suspect some of us might be trying to devote some cycles into it this cycle.13:38
cardoeYep makes sense.13:38
TheJuliarpittau: I swapped the topics around and around in order for now tuesday, since the topic I'm semi-championing, I suspect might be ~30 minutes and then we can switch gears to eventlet which I suspect JayF could likely drive that discussion. JayF if that is a problem let me know, but I have a board meeting conflict starting at 1500 UTC on Tuesday13:41
jssfrTheJulia, so if I were to fake a UUIDv4 where I put some hex-ified version of the use case in the first segment and fill the rest with random (e.g. f1c00000-fa4c-4d6f-86fe-fad4a205bbe6 for a cluster called f1c), that is not expected to break anything?13:45
TheJuliajssfr: no, that won't break anything13:46
jssfrexcellent :)13:46
rpittauTheJulia: sounds good, thanks :)13:53
JayFTheJulia: +114:00
opendevreviewSatoshi Shirosaka proposed openstack/ironic-python-agent master: Ironic Config Intergration for IPA  https://review.opendev.org/c/openstack/ironic-python-agent/+/94495114:17
opendevreviewSatoshi Shirosaka proposed openstack/ironic-python-agent master: Implement manual cleaning for ContainerHardwareManager  https://review.opendev.org/c/openstack/ironic-python-agent/+/94586214:36
masgharAyo, freemanboss, kulsooms, queensly - you may find the ironic logs useful, `sudo journalctl -u ironic`14:47
Ayo[m]<masghar> "Ayo, freemanboss, kulsooms..." <- Ok, I’ll look into it14:57
freemanboss[m]<masghar> "Ayo, freemanboss, kulsooms..." <- Yeah thank you 15:02
*** dmellado0755393737 is now known as dmellado15:03
mnaserI mentinoed this in the nova channel, but adding here since i think it might be relevant -- it seems in 2024.1 + neutron-dhcp-agent + routed provider networks + bonds = no go.  I dug a bit into the code and it seems the `network_info` that comes in looks like this: https://paste.openstack.org/show/b6wcQ0hWl9JvdpwHEOks/ which then returns a base_metadata of `{'links': [], 'networks': [], 'services': []}` ..15:14
mnaserit seems to me that somehow the network_info is passed on too early or something?15:14
mnaser(this ends up giving me a confgidrive with empty network_info)15:16
JayFmnaser: What's in the configdrive?15:19
opendevreviewSatoshi Shirosaka proposed openstack/ironic-python-agent master: Ironic Config Intergration for IPA  https://review.opendev.org/c/openstack/ironic-python-agent/+/94495115:19
mnaserJayF: only `{'links': [], 'networks': [], 'services': []}` eventually is what gets resolved15:20
mnaserso no networking :(15:20
fricklerI think there was some recentish fix for that, but likely in nova or maybe neutron? probably not backported. did you try with 2025.1 yet?15:21
JayFI see a fix in 2024.1 from mnaser 9 months ago in that area :/ 15:22
JayFI did check, 2024.1 is before the metadata refactor landed15:22
JayFit'd be interesting to see if it's differently broken before/after this https://opendev.org/openstack/nova/commit/93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af 15:22
mnaserJayF: yeah except this time i did some extra logs and its not the same issue, this time, its the metadata that comes _from_ nova that doesnt include any of the subnet stuff15:22
mnaserfrickler: i cant make that leap yet in this env :X so i'm stuck reading commit logs i guess :P15:23
mnaserthe thing is the network_info that gets passed to ironic driver from nova in the spawn method is what makes it way down to that function15:24
mnaserand that's what logged with no subnets there15:24
mnaserand im kinda wondering that "it works fine" in a metadata server scenario because eventually the metadata service will return the right info 15:24
mnaserbut config drive is immutable so it gets built incorrectly and never really goes past that15:25
frickleroh, maybe I also mixed up bonds with trunks. nevermind, then15:25
opendevreviewSatoshi Shirosaka proposed openstack/ironic-python-agent master: Implement manual cleaning for ContainerHardwareManager  https://review.opendev.org/c/openstack/ironic-python-agent/+/94586215:25
JayFmnaser: did the above linked commit change that, I wonder15:25
mnaserlet me double check if its in the image first...15:25
JayFit's not in 2024.115:26
mnaserah but you mean that this would resolve that issue?15:26
JayFIt's a refactor around that code15:26
JayFbut looking at it; I think we still use the same network_info source15:26
mnaseryeah it's the same one being passed around15:26
JayFI am not an expert in this area; but I'm happy to help review and backport patches if you find something15:27
JayFbasically my knowledge of nova stops at the virt driver interface, more or less :D 15:28
* TheJulia needs stronger coffee15:30
mnaseryeah I think I need to go a bit higher here ;(15:35
rpittaucongrats everyone! :)15:42
rpittauhttps://lists.openstack.org/archives/list/openstack-announce@lists.openstack.org/thread/ACVRVHIKT5K2TKZIPVT4P2OGAK3LZVVL/15:42
AmarachiOrdor[m]<masghar> "Ayo, freemanboss, kulsooms..." <- Thank you! For this 15:44
JayFSo question for something on satoshi's change, curious about behavior preference16:07
JayFhttps://review.opendev.org/c/openstack/ironic-python-agent/+/944951/11/ironic_python_agent/hardware_managers/container.py#6516:08
JayFI put it in gerrit; but basically trying to determine what we want the behavior to be if, effectively, the IPA ContainerHardwareManager has been misconfigured 16:09
JayFsatoshi: ^^ asking about your change here16:09
JayFhmmm maybe add a new class to IronicAPIError? StepError or something like that16:10
JayFs/to/of/16:10
* TheJulia focuses in on a different possible issue first16:12
JayFIt's not the most urgent change, and honestly probably 500'ing is OK as a fallback if there's no opinion16:13
JayFcardoe: did you ever document your ESXi install deal? Did we get all the patches merged for it to work?16:24
opendevreviewMerged openstack/ironic master: api: Correct types for validation decorators  https://review.opendev.org/c/openstack/ironic/+/94521616:44
Ayo[m]Hey Freeman Boss We’re you able to deploy with ansible?17:04
freemanboss[m]Ayo: yeah17:06
freemanboss[m]When you do ./bifrost-cli deploy baremetal-inventory.json17:06
freemanboss[m]If you get an error just use the ansible command that the error says it failed17:06
Ayo[m]I’ve been trying to enroll with the playbook but it’s not working17:08
Ayo[m]Just to confirm17:08
Ayo[m]The export command for ansible has to point at the inventory.json file right?17:08
opendevreviewMerged openstack/ironic-python-agent-builder master: Don't install biosdevname in arm64/aarch64 arches  https://review.opendev.org/c/openstack/ironic-python-agent-builder/+/94605717:09
freemanboss[m]Which export?17:09
Ayo[m]According to what I saw in the documentation17:10
* Ayo[m] uploaded an image: (22KiB) < https://matrix.org/oftc/media/v1/media/download/AeQmr0Cf1qpl14Yc2ZI3s5yOMyOOscy9Ih0wMQdRe3pCSst9Vh91mo-gbLzejYlLKroL-OMc0bsJTJXZF4X3l65CeWP5b_HgAG1hdHJpeC5vcmcvbVpsZWtKRUVxT0lHdXh0TkJ4Wm1pRVJv >17:13
Ayo[m]freemanboss[m]: Or is there another way?17:14
freemanboss[m]Alright 17:22
freemanboss[m]If created yes that's it 17:23
freemanboss[m]Else check the error you'll get as I suggested earlier 17:23
Ayo[m]freemanboss[m]: I don’t get you17:27
freemanboss[m]Just run ./bifrost-cli enroll baremetal-inventory.json17:28
freemanboss[m]And after a short while you can just ctrl c17:28
freemanboss[m]And check the error you get 17:28
Ayo[m]freemanboss[m]: > <@freemanboss:matrix.org> Just run ./bifrost-cli enroll baremetal-inventory.json17:29
Ayo[m]> And after a short while you can just ctrl c17:29
Ayo[m]I was talking about ansible playbook17:29
freemanboss[m]Yes I understand 17:30
Ayo[m]freemanboss[m]: > <@freemanboss:matrix.org> Just run ./bifrost-cli enroll baremetal-inventory.json17:30
Ayo[m]> And after a short while you can just ctrl c17:30
Ayo[m]This is with the cli17:30
kulsoomsmasghar: ok thank you17:37
opendevreviewMerged openstack/ironic master: Rename ironic cmd module  https://review.opendev.org/c/openstack/ironic/+/94599917:43
freemanboss[m]Ayo: that screenshot you sent did you also follow every step there? 17:45
Ayo[m]freemanboss[m]: For the export step I used my baremetal-inventory.JSON file 17:47
Ayo[m]Maybe I should check the inventory directory17:48
Ayo[m]This inventory file might probably not be the right file to export17:49
freemanboss[m]Alright 17:49
kulsoomsfreemanboss: you wrote ./baremetal testenv and i meant that the correct command is ./bifrost-cli testenv17:51
freemanboss[m]Yeah sorry kulsooms: 17:52
kulsoomsfreemanboss: also can you please tell, at what point i have to adjust the ssh keys?17:54
Ayo[m]kulsooms: So I got to understand that the networking issue you get when you try to use the testenv and run command after you log out and source back will be resolved when you rerun the testenv (not the install testenv)17:59
Ayo[m]It basically rework the inactive parts of the network17:59
Ayo[m]If you source back into the cli your commands should work17:59
freemanboss[m]I'm trying to write a quick start with bifrost. Things has been working fine though but I've to recreate some errors we do get18:02
freemanboss[m]I hope it's helpful when I'm fully done with it and test it as much as I can. 18:02
cardoeJayF: no I didn’t write it down. I’m a baddie. But every thing is merged.18:23
JayFcan I get a drawing in crayon or something?18:23
JayFmy downstream is asking18:23
cardoeYes. I’m at the gym so more when I get back to my desk. But the basics are https://github.com/rackerlabs/esxi-img18:24
cardoeI have some more improvements queued up18:25
freemanboss[m]Ayo: in the *how to* docs the way to use Ansible is there you can just use the baremetal-inventory.jwon18:26
freemanboss[m]Check the last headlines in the testing environment quick set up to follow the guidelines there too.18:27
freemanboss[m]I'm sure if you're meticulous and cautious following these steps you should get these right 18:27
JayFcardoe: were all those patches backportable? or is this a "it works in Epoxy forward" thing18:41
JayFcardoe: so take this image, feed it to kickstart and go? 18:44
cardoeI backported it all. It was all broken behavior that worked prior to Zed.18:44
JayFI guess I'm confused at an image generation repo being the answer for how to anaconda installer it18:44
cardoeNope. It’s an IPA regular OS deploy. We run the installer on first boot. We ditched anaconda entirely.18:44
JayFthe image you create is the analogue to the redhat installer image?18:44
JayFaha18:44
JayFokay18:44
JayFthis is going to make it less interesting for my downstream I suspect, but thanks for the detail18:45
cardoeI have it working with Anaconda as well. But that hasn’t landed18:45
JayFis it public?18:45
cardoeYep. They’re all on review.opendev18:46
JayF🔮 I see much code review feedback in your future18:46
JayFlol18:46
JayFthat requires a patched ipxe though, right? 18:47
JayFdidn't you say something like that? how they purposefully made the headers wrong or something?18:47
cardoeRequires a change to the template18:47
cardoeLet’s catch up in like an hour?18:47
JayFI'll be around on IRC. 18:48
JayFJust lmk when you have time to engage18:48
opendevreviewSatoshi Shirosaka proposed openstack/ironic-python-agent master: Ironic Config Intergration for IPA  https://review.opendev.org/c/openstack/ironic-python-agent/+/94495119:09
opendevreviewSatoshi Shirosaka proposed openstack/ironic-python-agent master: Implement manual cleaning for ContainerHardwareManager  https://review.opendev.org/c/openstack/ironic-python-agent/+/94586219:17
*** dking is now known as Guest1277219:30
*** Guest12772 is now known as dking19:36
opendevreviewSatoshi Shirosaka proposed openstack/ironic-python-agent master: Ironic Config Intergration for IPA  https://review.opendev.org/c/openstack/ironic-python-agent/+/94495119:38
opendevreviewSatoshi Shirosaka proposed openstack/ironic-python-agent master: Implement manual cleaning for ContainerHardwareManager  https://review.opendev.org/c/openstack/ironic-python-agent/+/94586219:39
cardoeJayF: I'm around20:36
JayFcardoe: me too, now21:00
cardoeSo basically you need to change https://github.com/openstack/ironic/blob/e05dc7d41f4c68591949b4a09d45162ff326b94d/ironic/drivers/modules/ipxe_config.template under the :boot_anaconda section21:03
cardoeBecause those args are very specific to RHEL Anaconda21:03
JayFso 1) patch ironic with your magic, 2) edit the ipxe template and replace the rh-specific options with esxi-specific options (which I'm assuming you know?) 3) ???? 4) profit?21:04
cardoeYep21:06
cardoeI never had to worry about the agent heartbeat timeout cause the install was fast enough.21:06
cardoeI'll link em for ya if you tell me what we need to do to +W https://review.opendev.org/c/openstack/ironic/+/944769 :-D 21:07
JayFI have a big review comment waiting on this information exchange21:08
cardoehttps://review.opendev.org/c/openstack/ironic/+/942590 So I needed that21:08
JayF-1 put all this information in a doc ;) 21:08
JayFlol21:08
cardoehttps://review.opendev.org/c/openstack/ironic/+/94284921:09
cardoeand that21:09
cardoeYou need the glance metadata fixes as well but I backported that to everywhere it was broken.21:09
cardoeYou also need some nova fixes which I've backported everywhere it was broken as well.21:10
JayFare those changes ready to review at all?21:11
JayFI notice they are all V-1 unsure if that's CI being CI or a sign :)21:11
cardoeSo the first one I needed to write a test and a release note.21:15
cardoeThe 2nd one was something we were gonna talk about at PTG21:15
JayFyah you now have two cores on 942590 just waiting for release note + commit message update + unit test21:16
JayFI'll read the other before PTG but withhold feedback if that's a topic21:16
cardoeBasically today Ironic creates a jinja variable that can be used inside of your kickstart template (and technically some other file too) that's a string blob that's RHEL6+ kickstart/anaconda syntax21:17
JayFhere's a tip as well: if you reply to my comment on 942590 with the specifics needed, a little birdie might write the docs portion for you :)21:17
JayFyeah; the vibe of 942849 seems good21:18
JayFfeedback from CERN (only really known user of this driver) might be worth grabbing as well if they aren't at PTG21:18
JayFbut really making this more overall useful is a laudable goal21:18
cardoeThat blob is basically taking every file that would be on a config_drive and base64's it and then writes a bash script that does echo "$BASE64_BLOB_FILEX" | base64 -d > filex21:18
cardoeMy change instead exposes a key:value pair list where key is the filename and value is the base64 blob21:19
cardoeAllowing you to craft your template in any syntax you need.21:19
JayFhave we validated that still works for rhel folks?21:19
JayF(with the default config, preferably)21:20
cardoeSo my default implementation results in a byte for byte identical kickstart file21:20
JayFgood stuff21:20
cardoeIt's a breaking change for anyone supplying their own kickstart template and using the variable.21:20
JayFwould it be possible to make a CONF that's like "plz to not break my existing stuff" for a migration?21:21
cardoeI'll find you the kickstart template that works for ESXi shortly as well.21:21
JayFbecause it's pretty rough to do a backwards incompatible change with no migration path that's live21:21
JayFlike, at least for a slurp release so folks could keep the old behavior if dependant upon it21:21
JayFjust avoiding someone having a "oh crap I have to upgrade my cluster and replace all these kickstart templates" moment :)21:22
JayFs/moment/flag day/21:22
cardoeYeah so my question on that patch was "should I call the new variable _v2 and leave the old one around? or is there another preferred method?"21:22
JayFI like that a lot21:23
JayFwith a deprecation notice of "we'll remove v1 around 2026.1 or later"21:23
JayFand then we'll remove it 17 years later as is our normal practice /s21:23
JayFI'm going to put a summary of this conversation as feedback on the change21:25
cardoeThe last patch that I never submitted I see now and I see why (cause it's not 100% done) renamed the anaconda deploy interface to "custom_agent" and allowed you to have another Image property that select a custom_agent ID. Instead of having to break RHEL anaconda by replacing the :boot_anaconda section in ipxe_template it instead loaded :boot_custom_agent_$ID21:25
cardoeI intended on adding back anaconda as a deploy interface that was a subclass of "custom_agent" so that it continued to behave the same21:25
JayFcustom_agent is a namespacing faux pas fwiw21:26
JayFwe already have that21:26
JayFagent_custom is agent deploy with no free steps21:26
JayFcustom_installer driver A+++ 21:26
cardoeHow about "indirect"? /s21:26
cardoeSo the last issue with all this is that you have to host the contents of the ESXi ISO somewhere and that top-level URL becomes an argument to boot from21:28
JayFold_school_pxe driver /s 21:28
cardoeBecause the anaconda interface hard codes specific filenames that get served up by conductor21:28
JayFI don't understand that last one21:29
cardoehttps://docs.openstack.org/ironic/latest/admin/anaconda-deploy-interface.html#configuring-the-os-image-in-glance21:30
cardoeSo the HTTP server that conductor has provides http://$ip/<node-uuid>/ right?21:31
cardoekernel_id -> http://$ip/<node-uuid>/kernel and then ramdisk_id -> http://$ip/<node-uuid>/initrd 21:32
JayFOH. So literally for the anaconda driver, you have to copy in the kernel/ramdisk from anaconda21:32
cardoeThen comes stage2_id -> http://$ip/<node-uuid>/LiveOS/squash.img21:32
JayFwait, those are in glance though?21:32
JayFshouldn't that make magic just work with conductor? 21:32
cardoeSo for ESXi we have to actually boot their version of syslinux21:33
cardoeThey then have a boot.cfg which lists out all the multi-boot modules they're going to load and the actual kernel21:34
cardoeIt's about 40 files. They're read from $prefix/$filename where prefix is set via a glance image property21:35
JayFc'mon, you've got enough constitution to run image create 40 times /s21:36
cardoeBut Ironic won't care21:36
JayFI'm almost worried they'll intentionally break us when this lands lol21:36
JayFbecause it's clearly not something they want automated21:36
cardoeIt only reads kernel_id, ramdisk_id, stage2_id and copies those to hardcoded paths21:36
cardoeand lastly there's ks_template (which is also an id but not suffixed by it) which gets exposed as ks.cfg21:36
JayFhow many weeks did it take your head to stop spinning once you figured this all out?21:37
cardoeWho says it stopped.21:37
cardoeSo my last PTG proposal that was dropped as well proposes doing "file_blah.id=$UUID" and "file_blah.name=myfile.txt" as properties on the image.21:39
cardoeAnd it would serve that up as http://$ip/<node-uuid>/myfile.txt21:39
JayFyeah I think just having someone provide the http host for the iso21:39
JayFis probably the more realistic shape21:39
cardoeYeah that's how we had it working.21:40
cardoeI was able to use the same kernel_id for ESXi 7 and 8 but different ramdisk_id (because that was the boot.cfg)21:40
cardoeI served up a 7 and an 8 ISO. I actually even shared the Dell specific one and the generic VMware one since they were identical except for their boot.cfg which on the Dell one loaded some extra files which weren't loaded in the generic one. But the files that both referenced had the same sha256sums21:42
JayFmakes sense21:42
JayFand for many folks, they often front ironic api with a nginx or similar service21:42
JayFyou could just have it serve up the static content to agents in prov network, ezpz21:42
cardoeAnyway, if there's interest I'll revive it21:42
JayFI already volunteered to help write the docs :D 21:42
cardoeRight and that's why I needed the provisioning network21:42
cardoeWell that's the brain dump for now at least.21:44
JayFI linked this IRC log on your post21:44
JayFso the context will live on21:45
cardoeI'll revive the branches and send ya something working with my notes Friday if that's okay? I've gotta be out for a funeral tomorrow.21:45
JayFPlease take the time ya need for that; this isn't so urgent for me so much as I said in passing to someone the other day that this is being built, and they showed interest much, much later 21:46
JayFso finding the shape of it21:46
JayFand given how close it is, with my upstream ironic hat on, hell yeah I want that feature21:46
JayFwho cares if you still run vmware21:46
JayFyou can still migrate to openstack :D21:47
JayFand not even have to go ten rounds with the nova vmware driver ;) 21:47
JayFJFYI; IPA python 3.13 (non-voting) unit tests have what appears to be a recurring failure, satoshi and I will poke at it tomorrow so if you see this, don't sweat the failures for now :)22:01
opendevreviewSatoshi Shirosaka proposed openstack/ironic-python-agent master: Implement manual cleaning for ContainerHardwareManager  https://review.opendev.org/c/openstack/ironic-python-agent/+/94586222:15

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