Thursday, 2023-01-12

arne_wiebalckGood morning, Ironic!07:26
rpittaugood morning ironic! o/08:05
iurygregorygood morning Ironic11:19
opendevreviewMerged openstack/sushy stable/xena: Retry on iDRAC SYS518 errors for all requests  https://review.opendev.org/c/openstack/sushy/+/86877811:25
opendevreviewMerged openstack/sushy stable/wallaby: Retry on iDRAC SYS518 errors for all requests  https://review.opendev.org/c/openstack/sushy/+/86877911:25
opendevreviewkamlesh chauvhan proposed openstack/sushy stable/xena: Fix volume deletion on newer iDRACs  https://review.opendev.org/c/openstack/sushy/+/86931311:32
rpittauso futures does not compile on py3.10 , and we can't move jobs to jammy because we depend on virtualpdu that depends on futures (still uses python 2)12:04
rpittauis virtualpdu under our umbrella ?12:04
rpittauprobably not, development stopped roughly 3-4 years ago12:07
rpittauanyway you can see the failure here https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_b05/869052/7/check/ironic-tempest-wholedisk-bios-snmp-pxe/b0558b5/job-output.txt12:07
opendevreviewRiccardo Pittau proposed openstack/sushy master: Remove setuptools workaround  https://review.opendev.org/c/openstack/sushy/+/86997112:23
opendevreviewkamlesh chauvhan proposed openstack/sushy stable/wallaby: Fix volume deletion on newer iDRACs  https://review.opendev.org/c/openstack/sushy/+/86993412:34
opendevreviewDenys Mishchenko proposed openstack/sushy-tools master: Save previous hd boot device when setting Pxe  https://review.opendev.org/c/openstack/sushy-tools/+/86937912:51
opendevreviewkamlesh chauvhan proposed openstack/ironic stable/zed: Fix "'NoneType' object is not iterable" in RAID  https://review.opendev.org/c/openstack/ironic/+/86993512:52
iurygregoryrpittau, virtualpdu is not under our umbrella afaik =)12:52
opendevreviewkamlesh chauvhan proposed openstack/ironic stable/yoga: Fix "'NoneType' object is not iterable" in RAID  https://review.opendev.org/c/openstack/ironic/+/86993613:02
kubajjhello everybody13:21
kubajjdtantsur: 13:22
kubajjdtantsur: after the api change, I would like to come back to the swift issue you pointed out. If I recall correctly, it was that the data does not get deleted when the node does?13:23
stephenfinTheJulia: You should be able to revert the other changes made in https://review.opendev.org/c/openstack/ironic-inspector/+/869198/ now. I fixed that bug in tox also https://github.com/tox-dev/tox/pull/284913:23
dtantsurkubajj: correct13:23
kubajjdtantsur: is there anything else that would be missing from the changes I did? How difficult do you think it would be to allow fetching introspection data from Redfish or iDRAC (I think you mentioned this at some point).13:26
dtantsurkubajj: it's not hard as in "complicated architecture", but it will require you to do some intensive reading on Redfish :) how much time do you have left on the project?13:28
kubajjdtantsur: I need to submit on the 24th of March, but by then I need to write up ~ 40 pages and also do some evaluation (do you reckon I could run some performance comparisons or there would not be any difference - I think you mentioned that having inspector and ironic separate had impact on metal3?)13:30
dtantsurkubajj: it does have an impact, but so far we didn't get rid of inspector completely, so we cannot measure that. what else could you do for evaluation?13:31
kubajjdtantsur: so in short, I think I have 2-4 weeks of development if I don't want to stress about it13:31
kubajjdtantsur: my supervisor suggested that I could do a quantitative one and ask some of you questions about what I did13:32
dtantsurokay. the next step would be to extract the generic code to store introspection data and put it outside of inspector.py (for other drivers to use)13:32
dtantsur(I'll be happy to answer any questions)13:32
dtantsurkubajj: also (and this is totally my fault), we have placed https://opendev.org/openstack/ironic/src/branch/master/ironic/conf/inspector.py#L42-L52 in the wrong section. It should be generic for all inspection methods.13:33
dtantsurwe'll need to move them with deprecation13:33
kubajjdtantsur: should I move it in a dedicated follow-up or can I do it with the deletion of data on node deletion13:35
kubajjdtantsur: I guess a dedicated one would be more clean13:35
dtantsuragreed13:36
kubajjdtantsur: about the next step, this is still on the ironic side, right? just extract the methods I created from ironic/drivers/modules/inspector.py right?13:38
dtantsuryep. just so that other drivers don't need to import inspector.py. I think we have a suitable utils module13:39
dtantsuryeah https://opendev.org/openstack/ironic/src/branch/master/ironic/drivers/modules/inspect_utils.py13:40
dtantsurkubajj: ^^13:40
kubajjdtantsur: also, where should I move the CONF parameters to? I assume some new file for all the inspection methods?13:40
dtantsurlet me think13:41
dtantsurkubajj: my first reaction is to great [inspection], but I wonder if people are going to confuse it with [inspector]13:41
dtantsurwe also have [conductor], which is a garbage bin for all options we never cared to sort better :D13:42
dtantsurkubajj: [inventory] is a good candidate, what do you think? then we can also shorted the option names.13:45
kubajjdtantsur: yeah, sounds great13:46
kubajjdtantsur: could you please have a look at https://review.opendev.org/c/openstack/ironic/+/866876 once you have a minute as I will need to change all the occurrences of the parameter in there which would be a lot easier if it was merged13:47
dtantsurright13:49
opendevreviewRiccardo Pittau proposed openstack/sushy master: Remove setuptools workaround  https://review.opendev.org/c/openstack/sushy/+/86997113:53
dtantsurkubajj: left comments. I've spotted an issue with API versions and also marked the places to move around in your next patch.13:55
rpittauso this should bring virtualpdu into Python 3 era and let us use jammy -> https://review.opendev.org/c/x/virtualpdu/+/86998313:57
rpittauprobably needs more work13:57
dtantsurI wonder who has +2 there13:58
rpittauI'm trying to find out13:58
kubajjdtantsur: should I change all of that in the same patch or do some of it in a follow up? I guess I can just do all of it (including the move to [inventory] there, right?)13:58
dtantsurrpittau: maybe mgoddard 13:58
rpittauroup virtualpdu-core13:58
dtantsurkubajj: no, let's do a follow-up at this point13:58
dtantsurthe API version fix is very small, will be easy to re-review13:58
dtantsurotherwise we're risking to get stuck with it for longer13:59
kubajjdtantsur: Is the API version fix the comment on #1978?13:59
dtantsurkubajj: together with #205614:00
kubajjdtantsur: Oh, so I should remove the error  (the whole else block) and the add the check behind allow_node_history. On it now14:01
dtantsurright14:01
kubajjdtantsur: any clue why it would return 200 for the old version test after I changed it? It should check that the minor version is >= 1.81 right?14:15
dtantsurkubajj: I suspect you may move creation of NodeInventoryController to _subcontroller_map14:17
dtantsurmaybe otherwise lookup does not happen14:17
kubajjdtantsur: I see. That might be the problem14:18
dtantsur(so, from line 2006 to line 2033)14:18
mgoddarddtantsur, rpittau: no +2 for me there14:19
dtantsurhmmmmm14:19
rpittaudtantsur, mgoddard, I found the group14:19
rpittauhttps://review.opendev.org/admin/groups/66d40bfe0feebc21c0edccea9b495cfff3f5960a,members14:19
mgoddardshould it be under ironic project governance?14:19
dtantsurwe could check with them14:20
rpittauI can send an email to them, at least to explain the situation14:20
dtantsur++14:24
* TheJulia tries to wake up14:32
TheJuliaI don't remember getting any responses from the virtualpdu folks when I reached out when I was PTL :(14:32
kubajjdtantsur: do I need to tell it somewhere that inventory is valid once it is in the _subcontroller_map? I am getting loads of 400 errors14:32
dtantsurkubajj: I don't think so.. could you show me the diff?14:33
kubajjdtantsur: https://paste.opendev.org/show/bVd7CKpwuoiPo0n3R34Q/14:34
* TheJulia tries to wake up14:35
dtantsurkubajj: it's a bit suspicious that you removed 'else', but not 'if'14:35
dtantsurthat's the only thing I can spot14:35
dtantsurare there any error messages?14:36
kubajjhttps://www.irccloud.com/pastebin/Xeymx7we/14:37
kubajjeven after I remove the if14:37
* dtantsur blinks14:37
dtantsurkubajj: TheJulia has a suggestion on line 1859, maybe you're missing it?14:38
TheJuliasomething written using the subcontroller pattern?14:38
dtantsurI have.. opinions... about our subcontrollers :)14:39
dtantsurTheJulia: it's about the inventory API and passing node_ident through14:39
kubajjdtantsur: same errors after I added it14:41
kubajjI remember this was an issue when I was implementing it.14:43
kubajjdtantsur: could I not call the not api_utils.allow_node_inventory() from the controller itself? Might solve these problems. But would still need the error message there.14:44
rpittauneed to split, I'm out tomorrow, see you on monday! o/14:55
JayFdtantsur: rpittau: I'll look into virtualpdu from a governance standpoint and see if I can get anywhere15:00
opendevreviewVincent proposed openstack/bifrost master: Feature: Enable user_data's file generation  https://review.opendev.org/c/openstack/bifrost/+/87001715:26
opendevreviewVincent proposed openstack/bifrost master: Feature: Enable user_data's file generation  https://review.opendev.org/c/openstack/bifrost/+/87001715:32
JayFTheJulia: iurygregory: So, once I remove Aija from sushy-core, there are only two remaining members; the only one of whom is active is iurygregory 16:41
JayFDo we anticipate continuing to need/desire a separate sushy-core group?16:41
JayFbecause sushy-core will just be identical to ironic-core16:42
dtantsurI would love to.. but I don't anticipate16:42
JayFyeah; that's sorta where I land16:42
JayFI'm going to make sushy-core into a group only inherited from ironic-core; it's likely easier to leave it that way than to remove the separate group for now16:42
JayFbut it might be valuable to do a pass and consolidate; I think we have more complexity in our number of core groups than we need given the number and nature of contribution now16:43
JayFrunning ironic-inspector bugfix branch cleanups now16:44
TheJuliaThat aligns with what we've generally done, so sounds good to me16:45
JayFcomplete16:46
JayFbugfix branch cleanup is complete16:46
JayFhopefully we won't be the #1 star in zuul-config-errors anymore lol16:46
JayFinspector and IPE both have active branches that still need ci love16:50
JayFhttps://etherpad.opendev.org/p/IronicZuulConfErrs is a curated list of the repos we are responsible for that are still misconfigured in zuul16:50
TheJuliaat least we can now see the wheat from the chaff17:04
JayFyeah exactly, I am surprised we actually only had that small of a number of broken things still17:04
opendevreviewkamlesh chauvhan proposed openstack/ironic stable/xena: Fix "'NoneType' object is not iterable" in RAID  https://review.opendev.org/c/openstack/ironic/+/87002517:41
jrosserdoes anyone know how to specify the baremetal api version in clouds.yml?18:18
NobodyCamGood Morning OpenStack Folks... Happy New years18:18
JayFNobodyCam: o/ 18:45
JayFjrosser: I don't even know what clouds.yml refers to in this context18:46
NobodyCamMorning JayF 18:46
NobodyCam\018:46
jrosserJayF: like a yaml version of openrc where your credentials go when using the cli or sdk18:46
JayFah, yeah I haven't used that much sorry18:47
jrosseransible ironic modules are hard to use :(18:47
JayFthere are some docs up about that, pending landing18:48
JayFwere those yours (?) 18:48
* JayF finds the link18:48
jrosserno that’s for deploying ironic with OSA18:48
jrosserif you want to then use ansible to define all your baremetal nodes post deployment then there are ansible modules for that18:49
JayFoh; you're trying to integrate ironic and ansible in a different way18:49
JayFI don't have specific tips about that, ansible is a giant blind spot for me :( sorry18:50
jrosserbut ironic seems to want system_scope:all where no other arrive does (on Y at least) and then there is no version negotiation between sdk and ironic api which leads to very surprising results18:50
jrosser*no other service18:50
JayFwhat specific API things are you trying to do with ansible+ironic? 18:50
JayFwe have a system role and project role; the service role is up for review now18:51
JayFbut the difference between system:admin and service:admin is extremely minimal aiui18:51
jrossercreate my nodes with this for example https://docs.ansible.com/ansible/latest/collections/openstack/cloud/baremetal_node_module.html18:51
jrosserthat fails on both token scope and api version as far as we can see18:52
JayFcreating nodes will require you to use a system:admin I believe; you could use the service:admin for that in the future18:52
JayFcreation/deletion of nodes is one of the most sensitive parts of Ironic's API18:52
jrosserright, but my naive expectation was that the admin token that I can use for everything else would be also good here18:53
JayFTheJulia: you have a sec? You'd know a lot more about the state of RBAC across services in Y to help jrosser 18:53
TheJuliao/18:53
JayFjrosser: I think you're literally running a release dead in the middle of the RBAC work across services, and I think that might be some of the complexity18:53
JayFbut I'm not sure18:53
TheJuliahow goes it18:54
jrosserso eventually we make a specific system scope token just to use with ironic and now we can at least authenticate18:54
TheJuliaokay, so your enforcing scope with yoga?18:54
jrosserbut it took a lot of debug to find out what was going on18:54
jrosserI am not sure18:55
TheJuliaif it is complaining about wanting system scope, then you are most likely18:55
jrosserthe rbac thing is pretty opaque to me as an operator / deployer18:55
TheJuliaahh18:55
TheJuliaokay18:55
TheJuliaso lets see18:55
jrossereven as core on OSA I have almost no clue about it :(18:55
JayFjrosser: I think "no clue about RBAC" is the default state for most of us ;) 18:56
jrosseranyway, Z looked different again in the policy definition18:56
TheJuliaso, ironic as a traditionally admin scoped service, we initially went in the direction relying upon the system scope which was for the direct management of the system, originally18:56
TheJuliathat since changed18:56
TheJuliayeah, it has evolved some, z has manager role as well18:57
jrosserI think now I know what kind of token I need I’m happy with that and I’lol write docs for OSA about it18:57
jrosserbut the api version I don’t know what to do about18:57
TheJuliawhat do you mean?18:57
jrosserwhen we use the openstack.cloud.baremetal_node ansible module it appears to use an early api version18:58
jrosserfor example moving the node directly to available18:58
* TheJulia raises a huge eyebrow18:58
jrosserdifferent state machine behaviour I think18:58
* TheJulia pulls up the module code18:59
jrosserwell it’s not just the module, it’s the interaction between sdk and api primarily I think18:59
jrosserthe module will be quite thin I think18:59
TheJuliayeah, that sounds like a huge issue18:59
TheJuliawhat sdk version do you have?19:00
jrosserso I wanted to set the equivalent of OS_BAREMETAL_API_VERSION in the auth parameters to the module19:00
jrossernot sure right now, just travelling but I can look later19:01
TheJuliathe sdk has changed a *ton* since the module was originally written19:01
jrosseryes it has19:02
jrosserso maybe another question would be should I expect auto negotiation if I have a new enough sdk?19:02
JayFin context of an ansible module; auto negotiation seems nondesirable19:03
JayFalthough maybe better than using an API microversion from 2015 :P19:04
TheJuliaeh... I need to check the sdk code19:04
TheJuliabut one oddball thing about RBAC, is you can't use the api version to try and bypass RBAC19:04
jrosseroh no that’s not what I want to do19:04
TheJuliabut... defaulting to old versions, it shouldn't be doing afaik19:04
TheJuliaoh, good :)19:04
jrosserjust automate what I would otherwise do with the cli19:05
TheJuliaack19:05
TheJuliaahh, sort of like what we do with bifrost19:05
JayFOS_API_VERSION=before_auth # checkmate, security :P 19:05
* TheJulia momentarilly steps away to try and get into a bios setup over ipmi sol19:06
TheJuliaso yeah, the max version it should auto-negotiate is 1.7619:08
TheJuliaat least with latest sdk19:08
TheJuliasame for yoga19:08
TheJuliaugh....19:12
jrosserhmm I will check what sdk we have later19:13
jrosserit might be <0.99 because it’s been “fluid” beyond that19:13
JayFTheJulia: there's an ipmi command to boot into bios next boot19:14
JayFTheJulia: as with all IPMI commands, you have a .0005% chance it'll do what's on the tin19:14
TheJuliaJayF: my half crashed/bricked idrac wouldn't accept it19:14
TheJuliawheeeeeeeeeee19:14
TheJuliajrosser: maybe... looks like the versioning stuff has been heavily rewritten so the sdk maintainers might have decided to take a different path19:15
jrosseris there an easy way I can check what api version I end up with?19:15
TheJuliano, but what exactly are you seeing error/response wise when your trying to use the module?19:16
jrosserwell that the state ends up immediately as available19:17
jrosserthen the next step to set up ports or whatever all blows up as you can’t do that in available state19:17
TheJuliaahhh19:17
jrosserso translating what we do on the cli to the equivalent set of ansible modules does not end with success19:18
jrosserand debugging what was going on shows an early api version19:20
TheJuliahmm19:21
TheJuliathat is ddefinitely an early api version19:21
jrosserwe have a similar thing with nova where to create a resource class we have to specify a new enough api version19:21
TheJuliaso we may have never seen this in bifrost because we create the nodes with the ports upfront in one command invocation19:23
jrosserwith the cli?19:23
TheJuliamodule19:23
jrosserah interesting19:23
TheJuliahttps://github.com/openstack/bifrost/blob/master/playbooks/roles/ironic-enroll-dynamic/tasks/main.yml#L3219:23
TheJuliait doesn't have the ability to set all of the parameters, but it does create the ports19:50
* TheJulia raises eyebrow at server now saying fans have failed19:54
jrosserTheJulia: it is definitely constrained to openstacksdk<0.99.0\20:01
TheJuliahappier universe with 1.x?20:09
jrosserI will try tomorrow - it’s getting late now20:12
jrosserthough 1.x as it’s own issues, and * else works, like images, flavours, users, projects blah blah so I’m hesitant to just use the latest20:13
jrosserplus I think there is coupling between the ansible collection version and sdk version20:14
* NobodyCam waves at TheJulia 20:29
TheJuliao/ NobodyCam 20:29
NobodyCam:)20:30
TheJuliaI *do* remember some weirdness there, but I've not been in the middle of that in a long time20:30
jrosseri right it is worse than i thought https://github.com/openstack/ansible-collections-openstack#branches-and-non-backward-compatibility-%EF%B8%8F20:42
TheJuliahttps://thumbs.gfycat.com/AdmiredEarlyDegus-mobile.mp421:41
TheJuliaThat is how my brain responds to the sdk right now21:41

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