Thursday, 2024-10-31

cardoeJayF: speaking of Ubuntu. Need to add Qemu-Utils to the docs. This is a reminder for me tomorrow.02:48
masgharThanks for the discussion around python-ironicclient and openstacksdk - I see that there is some benefit to keeping python-ironicclient SDK code around, and its not really a community goal to remove it - so I got my answers :)10:11
masgharBut long-term, I think it would be beneficial to point all our development efforts and improvements in one direction, really10:14
opendevreviewOpenStack Release Bot proposed openstack/tenks stable/2.0: Update .gitreview for stable/2.0  https://review.opendev.org/c/openstack/tenks/+/92715911:07
opendevreviewOpenStack Release Bot proposed openstack/tenks stable/2.0: Update TOX_CONSTRAINTS_FILE for stable/2.0  https://review.opendev.org/c/openstack/tenks/+/92716011:07
opendevreviewOpenStack Release Bot proposed openstack/tenks master: Update master for stable/2.0  https://review.opendev.org/c/openstack/tenks/+/92716111:07
iurygregorygood morning ironic11:08
opendevreviewPierre Riteau proposed openstack/tenks master: Update list of supported Linux distributions  https://review.opendev.org/c/openstack/tenks/+/93385011:10
jovialAny chance of https://review.opendev.org/c/openstack/ironic/+/924887 making it back to 2024.1? It is labelled as a bug, but needs nova changes ported back too (which seem like more of a feature)11:35
opendevreviewMerged openstack/tenks master: Add Python 3.12 job  https://review.opendev.org/c/openstack/tenks/+/93327512:03
opendevreviewMerged openstack/tenks master: Update master for stable/2.0  https://review.opendev.org/c/openstack/tenks/+/92716112:03
opendevreviewVerification of a change to openstack/tenks master failed: Preserve assigned MAC on subsequent invocations  https://review.opendev.org/c/openstack/tenks/+/93181612:13
opendevreviewWill Szumski proposed openstack/tenks master: Adds a release note for mac address bugfix  https://review.opendev.org/c/openstack/tenks/+/93385612:13
opendevreviewMerged openstack/tenks master: Update list of supported Linux distributions  https://review.opendev.org/c/openstack/tenks/+/93385012:21
opendevreviewWill Szumski proposed openstack/tenks master: Remove deprecated use of include  https://review.opendev.org/c/openstack/tenks/+/93385812:28
opendevreviewWill Szumski proposed openstack/tenks master: Adds a release note for mac address bugfix  https://review.opendev.org/c/openstack/tenks/+/93385612:47
opendevreviewWill Szumski proposed openstack/tenks master: Preserve assigned MAC on subsequent invocations  https://review.opendev.org/c/openstack/tenks/+/93181612:48
TheJuliagood morning13:36
TheJuliamasghar: agree, and I think that direction is largely the openstacksdk. There are folks who really want to push for the elimination of all clients for perception reasons, but Ironic is definitely an "odd" project in some respects where it doesn't make as much sense13:37
JayFjovial: that is considered a feature and is ineligible for backport. And you're right that it wouldn't work without the accompanying Nova patch anyway, but we don't even have to get that far with this one because it's a feature on our end too 14:04
masgharTheJulia: ironic is definitely not too simple, so its own client for certain use cases does make sense14:23
opendevreviewMerged openstack/tenks master: Remove deprecated use of include  https://review.opendev.org/c/openstack/tenks/+/93385814:37
jovialCheers JayF - I thought that might be the case. Nice feature though :)14:38
JayFThanks! It's nice to hear other people have that use case too.14:39
cardoeshermanm: I'd definitely be interested in your experience with the custom hardware manager.15:38
cardoefree internet points for reviews and workflows for https://review.opendev.org/q/topic:%22remove-py38%22+hashtag:ironic-week-prio+status:open15:42
opendevreviewPierre Riteau proposed openstack/tenks stable/2.0: Update TOX_CONSTRAINTS_FILE for stable/2.0  https://review.opendev.org/c/openstack/tenks/+/92716016:15
JayFso update on virtualpdu: Itamar told me he has the actual program working, just down to testsuite fixes now16:19
JayFso the SNMP driver should be removed from the chopping block for the time being \o/16:20
JayF> This specification document, which someone should take over < gave me a real lol, I think I'm going to put that line in the top of the commit message for every spec I write from now on :D 16:20
*** edebeste2 is now known as edebeste16:35
opendevreviewMerged openstack/ironic master: Added missing fields in API Ref  https://review.opendev.org/c/openstack/ironic/+/93369916:36
JayFFound a new trick to make pre-commit more useful now that more openstack repos are using it: https://jay.jvf.cc/posts/openstack-pre-commit/ tl;dr you can setup the pre-commit hooks to automatically go into new repos16:39
opendevreviewPierre Riteau proposed openstack/tenks stable/2.0: Update TOX_CONSTRAINTS_FILE for stable/2.0  https://review.opendev.org/c/openstack/tenks/+/92716016:46
clarkbJayF: one thing to keep in mind is that hooks are not installed automatically by default in git because it would allow repos to perform local code execution16:51
clarkbdepending on what the repo is you may not want the hook to automatically get installed16:51
JayFyeah, that's the exception not the rule 16:51
JayFso I'd rather remember to delete it then16:51
JayFI can't think of a single time, ever, in my career I've committed code to a repo I haven't been involved enough in to see what it would do though16:52
clarkbya I dunno I have up my fancy git status stuff in my prompt because it too has been abused for these purposes... But I also sometimes have to fetch random repos/commits to debug things and thats probably not the case for you16:55
JayFI haven't committed to a repo that wasn't openstack, gentoo, or g-research related in ... as long as I can remember? 16:55
JayF(or my own, I guess, my blogpost is a repo)16:56
cardoeIf you don't wanna sudo stuff JayF. Set core.hooksPath in $HOME/.gitconfig to something in your user17:08
JayFyeah, I def put the heaviest handed method in there17:09
JayFif I was going to take more than 15 minutes to solve my problem+blog I'd probably do something more like a hook that was "if you have a pre-commit config but no pre-commit hook; angry message and exit" 17:09
JayF90% of the value with 5% of the effort is something I'm usually not good at, exercising discipline this time at least :D 17:10
opendevreviewMerged openstack/ironic-tempest-plugin master: Remove support for Python 3.8 and older  https://review.opendev.org/c/openstack/ironic-tempest-plugin/+/93326617:17
opendevreviewMerged openstack/ironic-prometheus-exporter master: docs: Updates configuration documentation  https://review.opendev.org/c/openstack/ironic-prometheus-exporter/+/93245817:22
opendevreviewMerged openstack/virtualpdu master: Remove Python 3.8 support  https://review.opendev.org/c/openstack/virtualpdu/+/93326017:24
opendevreviewMerged openstack/ironic-ui master: Remove Python 3.8 support  https://review.opendev.org/c/openstack/ironic-ui/+/93325817:31
opendevreviewMerged openstack/python-ironic-inspector-client master: Remove Python 3.8 support  https://review.opendev.org/c/openstack/python-ironic-inspector-client/+/93323217:33
opendevreviewMerged openstack/ironic-inspector master: Remove Python 3.8 support  https://review.opendev.org/c/openstack/ironic-inspector/+/93322817:41
opendevreviewMerged openstack/ironic-python-agent master: Remove Python 3.8 support  https://review.opendev.org/c/openstack/ironic-python-agent/+/93323017:44
opendevreviewMerged openstack/sushy-tools master: add pyproject.toml to support pip 23.1  https://review.opendev.org/c/openstack/sushy-tools/+/93359417:45
opendevreviewVerification of a change to openstack/ironic-lib master failed: Replace outdated python job template  https://review.opendev.org/c/openstack/ironic-lib/+/93324217:47
opendevreviewVerification of a change to openstack/ironic-lib master failed: Remove Python 3.8 support  https://review.opendev.org/c/openstack/ironic-lib/+/93322917:47
opendevreviewMerged openstack/sushy master: Make default request timeout configurable on Connector  https://review.opendev.org/c/openstack/sushy/+/92905517:54
shermanmso i'm unfortunately still running into issues with that custom hardware manager (code here https://github.com/ChameleonCloud/chi-hardware-manager/blob/main/chi_hardware_manager/fugaku.py)17:55
shermanmI do see log entries indicating that my manager loaded17:55
shermanmbut ipmitool is still running and timing out17:56
JayFplease supply full logs?17:56
shermanmsure, let me put a paste somewhere17:56
JayFAlso, I'd likely run a test with _detect_hardware() implemented as "Return True" if you haven't already17:57
JayFjust to limit the amount of moving parts17:57
shermanmlogs are here: https://gist.githubusercontent.com/msherman64/e0b5d1609d2c3effc969e64180114858/raw/eeaae77de0f3d31d3a01f94a7cf9f272ee67b866/agent.log17:58
shermanmand I do see my log entry "found Fugaku node! {'sys_vendor': 'FUJITSU\n', 'product_name': 'FX700\n'}", which is just before the return 17:59
shermanmand also get "Hardware manager found: chi_hardware_manager.fugaku:FugakuHardwareManager"17:59
JayF> Oct 31 17:41:28 ironic-agent ironic-python-agent[1095]: 2024-10-31 17:41:28.283 1095 INFO ironic_python_agent.inspector [-] inspection is enabled with collectors ['default', 'extra-hardware', 'pci-devices', 'dmi-decode', 'numa-topology', 'logs']18:00
JayFmakes me wonder if this is inspector, not the other code, that's doing it this time18:00
shermanmthat's a good point actually, I can dig into that, or at least test if the behavior is the same with deploy/cleaning 18:01
JayFyeah, lets figure out if it's happening with no inspection collectors enabled18:03
JayFif not; then we have problem 1 solves and can move to problem 218:04
shermanm+!18:04
shermanmyep, sounds like a plan18:04
shermanmI should probably also add debug logs to my overridden methods, to be sure they're getting executed18:05
JayF++18:06
opendevreviewMerged openstack/python-ironicclient master: Replace outdated python job template  https://review.opendev.org/c/openstack/python-ironicclient/+/93324418:06
opendevreviewMerged openstack/python-ironicclient master: Remove Python 3.8 support  https://review.opendev.org/c/openstack/python-ironicclient/+/93323118:06
opendevreviewItamar Turner-Trauring proposed openstack/virtualpdu master: Work with pysnmp 7.0.1  https://review.opendev.org/c/openstack/virtualpdu/+/93388218:12
opendevreviewMerged openstack/virtualbmc master: Remove Python 3.8 support  https://review.opendev.org/c/openstack/virtualbmc/+/93326318:14
JayFrpittau: ^^^ https://review.opendev.org/c/openstack/virtualpdu/+/933882 line 276 in pysnmp_handler.py makes everything make SO MUCH SENSE18:15
JayFrpittau: seeing itamar's fix made my mental model click into place18:16
shermanmis there an easy way to edit the contents of my initramfs instead of kicking off a dib-build every time?18:19
opendevreviewTakashi Kajinami proposed openstack/python-ironicclient stable/2024.2: Replace outdated python job template  https://review.opendev.org/c/openstack/python-ironicclient/+/93388318:24
JayFwhether or not it's easier is an exercise for the reader (I do not think it's easier), but you can extract and re-assemble initramfs files18:24
JayFusing cpio18:24
JayFI wonder if we have how to do that in contributor docs, probabyl not?18:24
JayFdoc/source/admin/troubleshooting.rst:179:39:    $ gzip -dc /path/to/the/ramdisk | cpio -id18:24
JayFbingo18:25
JayFhttps://docs.openstack.org/ironic/latest/admin/troubleshooting.html#patching-the-deploy-ramdisk shermanm 18:25
shermanmbam, I thought I'd seen it somewhere, thanks!18:26
shermanmI'm cross-compiling for arm64, so the build process is super-slow18:26
JayFoh yeah, that can be painful18:27
JayFI guess I don't think I've actually "cross-compiled" for arm64 directly; I have used the gentoo trick of qemu + binfmt_misc -> https://wiki.gentoo.org/wiki/Embedded_Handbook/General/Compiling_with_QEMU_user_chroot 18:28
JayFbasically it sets up your system so any arm64 binary automatically runs under qemu18:28
JayFso you can extract full OS images and chroot into them cross-arch18:28
JayF(those instructions, like many in gentoo wiki, are easily adaptable to other situations) ... not that this is useful for you, it's just cool :D 18:29
shermanmI should say that's what I actually meant, using that support that's currently in diskimage-builder for that18:29
JayFI didn't realize dib used that style too18:29
JayFI've not looked at any of the cross-arch stuff in dib18:30
shermanmat least it does with the debootstrap-based sources18:30
JayFthat's pretty cool18:30
JayFand makes double sense why it's so slow, too18:30
JayFreal cross compilation isn't that bad of a penalty18:30
clarkbyou can do similar with qcow2 images too via nbd or you can convert to raw and mount that and then back again etc18:38
clarkbthe dib approach is very heavy handed because it gives you a lot of flexibility in what you acn do, but for specific things you can usually take a short cut18:39
clarkbthere are image build tools out that there don't do any root and basically byte edit the filesystem out in userspace18:40
opendevreviewVerification of a change to openstack/ironic-lib master failed: Drop the unused capabilities module  https://review.opendev.org/c/openstack/ironic-lib/+/93302918:45
shermanmI  got debug logging turned on too, and I think I found at least a symptom: "HardwareManager <chi_hardware_manager.fugaku.FugakuHardwareManager object at 0xffff84041690> does not support list_hardware_info dispatch_to_managers"18:50
JayFyeah that's your problem, or at least a big'un18:51
JayFI don't know /why/ it'd think that18:51
JayFshermanm: dalmatian?18:52
shermanmno, we're still back on antelope18:52
JayFack18:53
JayFbtw that's about to turn into a pumpkin (unmaintained)18:54
shermanmyeah, just scrambling to the dev time to pull all of our forks up to caracal18:54
JayFhttps://opendev.org/openstack/ironic-python-agent/src/branch/stable/2023.1/ironic_python_agent/hardware.py#L308818:54
JayFso IncompatibleHardwareMethodError is what it /thinks/ it got returned18:55
JayFbecause that's the only way to get that log18:55
JayFwhich means it called that method, that method went boom18:55
JayFOH OH I bet I know18:56
JayFthis is crazypants, but I have your answer18:56
JayFlets walk thru it:18:56
JayFin master, GenericHardwareManager(HardwareManager) is what gets called18:56
JayFeven though it's using the implementation of list_hardware_info() it inherited18:56
JayFnot all of those self.BLAH() methods called for that info are18:57
JayFmany of those are coming from the GenericHardwareManager implementation18:57
opendevreviewMerged openstack/networking-baremetal master: Remove Python 3.8 support  https://review.opendev.org/c/openstack/networking-baremetal/+/93327318:57
JayFbecause that's the "self" in that case18:57
JayFif you follow18:57
JayFso, when self.get_cpus() is called from your HWM on line 8618:58
JayFit's calling this: https://opendev.org/openstack/ironic-python-agent/src/branch/stable/2023.1/ironic_python_agent/hardware.py#L86318:58
JayFwhich returns the failure18:58
JayFall this is to say: subclass from GenericHardwareManager instead for this one case18:58
shermanmugh, yeah, that's making sense now18:58
JayFOR rewrite those self.blah() calls to dispatch_to_manager() style calls so they can be farmed out to other managers18:58
JayF^^^ that is likely a fix I will write into master IPA if/when I get a chance (and I'm less likely to forget it if you file a bug)18:58
shermanmaand of course my unit tests didn't find those cause I mocked them, wasn't running on real hardware18:59
opendevreviewMerged openstack/ironic master: CI: Change 4k block device job to use LVM  https://review.opendev.org/c/openstack/ironic/+/93106118:59
JayFthis was a fun little one to debug18:59
shermanmlove the excitement when you realized lol18:59
JayFI really don't udnerstand why list_hardware_info looks the way it does18:59
JayFshermanm: history lesson: I'm a converted operator, and this hardwaremanager stuff is literally the first API of any kind I designed end to end18:59
JayF(11 years ago at this point?)18:59
JayFso I was happy to realize it all fit :D (and this is why I'm so annoyed that's not already dispatching those calls)19:00
shermanmriiight there with you on being a converted operator19:01
shermanmside note, HardwareManager.list_hardware_info calls "self.get_system_vendor_info()", but that method is only defined on GenericHardwareManager19:02
JayF+++ yep exactly why it should dispatch19:03
JayFand we likely should add that method to the base class, too19:03
JayFI am going to go grab lunch and work on my SCALE CfP before I get too distracted -- I will try to circle back around to fixing that weirdness in master IPA.19:04
shermanmno worries, I appreciate the help!19:04
opendevreviewMerged openstack/ironic-lib master: Replace outdated python job template  https://review.opendev.org/c/openstack/ironic-lib/+/93324220:30
shermanmthat pointer totally worked, I'm all set now21:14
opendevreviewDmitry Tantsur proposed openstack/ironic-lib master: Drop the unused capabilities module  https://review.opendev.org/c/openstack/ironic-lib/+/93302922:01
opendevreviewMerged openstack/ironic-lib master: Remove Python 3.8 support  https://review.opendev.org/c/openstack/ironic-lib/+/93322922:07
opendevreviewJay Faulkner proposed openstack/python-ironicclient master: WIP: Support /v1/shards  https://review.opendev.org/c/openstack/python-ironicclient/+/93389422:51
* JayF added support for node.shard + filtering on shard but never for /v1/shards :( 22:54
cardoeWhat’s shards?22:55
JayFhttps://specs.openstack.org/openstack/nova-specs/specs/2024.1/implemented/ironic-shards.html although I'm pretty sure we have ironic side docs somewhere22:57
JayFif not, another box I need to check apparently that I missed before22:57
JayFhttps://files.openstack.org/project/specs.openstack.org/openstack/ironic-specs/specs/approved/shard-key.html22:58
JayFthat's the ironic spec22:58
JayFtl;dr just an arbitrary field you set on node objects (and maybe one day things like ports?) that is indexed on22:58
JayFso if you have to do any /v1/nodes (no filter) querying, you can instead do e.g. /v1/nodes?shard=shard1 /v1/nodes?shard=shard222:58
JayFuseful for things like nova-compute which has a different scaling model than Ironic22:59
cardoeYeah makes sense.22:59
JayF(an ironic conductor group can outscale a nova-compute by an order of magnitude or more in some use cases)22:59
JayFand basically before this, folks were using conductor groups as psuedo-shards22:59
JayFwhich sorta eliminates their usefulness for what they are for22:59
cardoeThat’s what I’ve done.23:00
cardoeA nova-compute has one group.23:00
cardoeBut clearly I need to look at shards.23:00
JayFI mean, if it ain't broke don't fix it, but if you need to fix it, you can now :)23:00
opendevreviewVerification of a change to openstack/ironic-lib master failed: Drop the unused capabilities module  https://review.opendev.org/c/openstack/ironic-lib/+/93302923:55

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