Tuesday, 2024-11-26

opendevreviewMerged openstack/networking-baremetal master: prevent break on communications failure  https://review.opendev.org/c/openstack/networking-baremetal/+/93314900:04
rpittaugood morning ironic! o/08:08
opendevreviewScott Solkhon proposed openstack/ironic-python-agent master: Add support for burnin-gpu  https://review.opendev.org/c/openstack/ironic-python-agent/+/92541511:44
dtantsurTheJulia: I've never considered anything like that. What's the use case?12:22
*** dking is now known as Guest112113:27
*** Guest1121 is now known as dking13:27
dkingGood morning. If anybody is in, or when they get in, I would like to ask some questions about https://opendev.org/openstack/requirements, specifically regarding branch master vs stable/2024.113:47
dkingI mean 2024.213:47
iurygregorydking, feel free to ask your question, hopefully we will have the answer for you =)13:50
iurygregorybut normally questions about requirements would be in #openstack-requirements 13:50
dkingiurygregory: Fair enough. But perhaps it might be helpful to start in here since it is affecting an ironic tool directly. The other day I was suggested to use upper constraints from 2024.2 because the ironic-lib version had been changed. I see that change is still in master, so it's causing ironic-python-agent-builder to build broken IPA images.13:54
iurygregorywe had a release of ironic-lib last week if I recall, wouldn't that be the reason? 13:55
* iurygregory checks ipa-b13:55
dkingdib/ironic-python-agent-ramdisk/source-repository-requirements pulls requirements at master, and therefore gets an ironic-lib==7.0.0, rather than 6.2.0, so when I try to deploy an IPA image built with ironic-python-agent-builder, it fails with an error from ironic_lib.13:56
dkingI see the problem, and for now I should be able to override the REPOREF, which I'm hoping will work, but it seems like there's a problem, and I don't know which is the correct way forward.13:57
iurygregorywell, 7.0.0 was released for master https://review.opendev.org/c/openstack/releases/+/934598/1/deliverables/epoxy/ironic-lib.yaml 13:57
iurygregoryso yeah, requirements from master will pull it directly 13:57
dkingWas it premature if ironic-python-agent still requires 6.2.0?13:57
iurygregoryI would say it was because at the time you tested we haven't released new IPA...13:59
iurygregoryand maybe we should update requirements in IPA to >= 7.0.0 cc rpittau 13:59
iurygregoryif I recall 7.0.0 ironic-lib had some breaking changes14:00
dkingDo you mean <=7.0.0 ?14:08
TheJuliagood morning14:09
TheJuliadtantsur:  well, under current modeling we would sort of have to expect it... kind of14:10
iurygregoryfor ipa master we have >= 6.0.0 https://github.com/openstack/ironic-python-agent/blob/master/requirements.txt#L1414:10
* TheJulia attempts to caffinate14:19
rpittaudking: new version of IPA fixes that behavior14:26
rpittauor should fix :D14:26
rpittauironic-lib 7.0.0 has breaking changes, as iurygregory mentioned14:28
rpittauwe recently released ironic 27.0 and ipa 10.0 to comply with those changes14:28
dkingrpittau: Fair enough. If we do have ipa updated, then I suppose that was the fix.14:31
rpittaudking: in short ipa < 10 is incompatible with ironic-lib >= 714:31
JayFWe probably /should/ ensure stable IPA-b gets stable requirements though15:04
JayFand/or that we document to set requirements repo to a ref that makes sense for your IPA ref15:04
iurygregoryI'm trying to figure out why firmware updates via servicing works but we don't update the DB with the newer info, I though it was because we wasn't caching the node information in servicing https://review.opendev.org/c/openstack/ironic/+/936009 but it didn't help on my tests =( , after the update finishes I don't see references for https://opendev.org/openstack/ironic/src/branch/master/ironic/drivers/modules/redfish/firmware.py#L66 (I 15:07
iurygregoryadded some debug locally) https://paste.opendev.org/show/b1dHkz1i1f5SnZZuTa9n/ , the only error in the ironic logs when we finish is about the Agent driver requiring agent_url, does anyone think this could be related to not having the DB updated? 15:07
JayFthat's just failed to collect system logs, probably doesn't matter15:08
iurygregoryyeah, same feeling here15:09
JayFI'd put a log in to make sure that method is being called at all15:09
JayFI bet there's some caching somewhere, perhaps15:09
JayFhttps://opendev.org/openstack/ironic/src/branch/master/ironic/drivers/modules/redfish/firmware.py#L150 honestly I'm perplexed at this15:09
JayFas since it's a decorator, doesn't it have to take the function as an argument and return a function15:10
JayFwhen that method doesn't look like it's doing that at all?15:10
JayFIDK if maybe there's some syntax around that I'm not familiar with though15:10
iurygregoryhummm15:13
JayFI think there's a functools which will do what seemingly is intended to be done here15:14
JayFbut again, this is the sorta thing I'd look up the one way to do it and do it that way, so there's a chance this is a red herring15:15
iurygregorytks JayF o/15:15
iurygregoryfunny that with cleaning it works "as expected" :D 15:18
JayFI think we explicitly cache firmware15:19
JayFduring the cleaning step15:19
JayFoutside of the decorator iirc15:19
JayFbut imbw15:19
iurygregorywe do15:19
iurygregoryin the cleaning we have utils.node_update_cache(task), we don't have in servicing, but after adding https://review.opendev.org/c/openstack/ironic/+/936009/1/ironic/conductor/servicing.py it didn't help XD15:20
JayFI think we're better off answering why the decorator is seemingly not working instead? 15:21
JayFRather than adding more explicit calls15:21
JayFhmmm I would expect that to work, though15:22
JayFI'd strongly suggest print line debugging if not actual debugging15:23
JayFadd so many log.debug around those calls that your head will spin :D 15:23
iurygregoryyeah, I'm planning on doing that :D15:23
dtantsurTheJulia: sorry, I don't quite get it. What modelling? Why?15:30
dtantsurIs it about OCI/docker images?15:31
TheJuliaSo presently we had to add "get checksum from a URL support, as the code base stands today, we'll likely need to emulate it or make the callers more available of the backend image services and what they can/cannot do/get15:31
dtantsurI only care about built-in checksums15:31
dtantsurHmm. I might see where you going with this.15:32
TheJuliaI can tell, and I'm also worried we'll create ourselves another CVE or hard break by just focusing on that as well15:32
dtantsurSupport for remote checksums was added very specifically because remote checksums are a thing15:32
dtantsuralready15:32
dtantsurwith the OCI work, it's a greenfield effort to a much larger extent15:32
TheJuliafrom my point of view, I've been bitten twice by stuff like this in the last few months, so I'm a bit... as is sometimes said, gunshy15:33
dtantsurI'd say, if you care seriously, provide an explicit value as string15:33
TheJuliaTrue, but greenfield stuff sometimes doesn't age well along side other patterns as well15:33
dtantsurIf care, but not super-super seriously, provide your docker:// URL using its hash15:33
dtantsurif you don't care at all.. well, we don't permit missing checksums right?15:33
TheJuliathat is just the artifact hint to the layer manifest15:33
TheJuliabut yeah :)15:33
JayFThis is a tough thing because15:33
JayFyou completely throw away any MITM type benefit of the checksum15:34
dtantsurAFAIK it's also a checksum of the layer15:34
JayFwhen you pull it in the same place15:34
TheJuliait is the checksum of the upper manifest file15:34
TheJuliaAIUI15:34
dtantsurJayF: same with remote checksums. It's a known trade-off15:34
TheJuliabased upon google's diagram, not the actual artifacts15:34
dtantsurif you care about MITM, you must use an explicit value15:34
TheJulia*but* you can use the checksums all the way down from that point15:34
TheJuliawhich is nice15:34
dtantsurTheJulia: I think the reason docker/podman can de-duplicate layers, even among several images, is because their ID is their checksum?15:35
dtantsurotherwise, how does it work?15:35
JayFdtantsur: I wasn't thrilled about support for those, either ;)15:35
dtantsurJayF: we need to accept that not everyone has MITM in their threat model15:36
JayFNote that I didn't say -1 or -2 or "no"; just that it's tough15:36
JayFBluntly; I don't always trust users to even think about threat models in many cases :)15:37
JayF"I want X because it's easier" beats security in 7 outta 10 corporate environments I've been around :)15:37
TheJuliadtantsur: that is how it works, but that is a completely different discusison than the internal details of how ironic handles things like adjacent features15:40
dtantsurbtw I've just found https://github.com/opencontainers/image-spec/blob/main/manifest.md#guidelines-for-artifact-usage (I assume you've seen it already, maybe worth linking in the spec?)15:42
dtantsurTheJulia: https://github.com/opencontainers/image-spec/blob/main/descriptor.md#digests15:43
dtantsurDigest "uniquely identifies content by taking a collision-resistant hash of the bytes. If the digest can be communicated in a secure manner, one can verify content from an insecure source by recalculating the digest independently, ensuring the content has not been modified."15:43
TheJulia... I'm not sure why your focusing on that when I'm trying to deal with the reality that when we fixed the last cve, we had to add url support into ironic to verify provided checksums. We're still going to get close to that code path, and what I'm ultimately worried about has nothing to do with the capabilities of the url form descriptor of a dockerv2+oci bits url form. I'm trying to focus on the existing technical debt 15:46
TheJuliaand if we're going to have to add "can I do this thing" logic to image services15:46
TheJuliawhich it is kind of clear, to cleanly guard, I'm going to have to15:46
dtantsurThen I'm still not sure what you're trying to do, and my answer to the "file attached to container" question is "rather no, unless someone is begging for that".15:47
dtantsurI'm pasting the links because they seem to prove (to me) that the only checksum we need to support is the one provided in the image reference. But I won't stop you or anyone from supporting as explicit image_checksum, as long as it's opt-in.15:49
iurygregory| bios      | 2.19.1          | 2.17.1          | 2.17.1               | 2024-11-26T12:20:26+00:00 | 2024-11-26T15:47:42+00:00 | 16:03
iurygregoryFINALLY!16:03
TheJuliadtantsur: I'll just have to make image service generally slightly more visible about interfaces supportable by url types for patterns of behavior16:06
TheJulia... which might actually be good... maybe16:06
iurygregorygoing to do more tests to be sure it's really working, because the firmware installed was 2.18.1 not 2.17.1 :facepalm: 16:08
TheJuliaiurygregory: congrats16:10
iurygregoryTheJulia, tks!, I'm just trying to understand why commenting https://opendev.org/openstack/ironic/src/branch/master/ironic/conductor/servicing.py#L183-L184 helped lol :D16:10
dtantsursooo strange16:16
dtantsurI mean, it cannot possibly help :D16:16
rpittauyeah that doesn't make sense :/16:18
iurygregoryyup totally agree16:21
iurygregoryI'm redeploying to see how it goes16:21
JayFWhy is it throwing an exception to end up in that codepath at all?16:24
* TheJulia is soooooooo confused16:25
* TheJulia goes back to email16:25
iurygregoryI'm still trying to understand that JayF 16:32
JayFI'm tied up until around noonish my time, but if you're still around poking at it then and need a rubber duck I'm happy to jump in a video call16:33
JayF(that is +3.5 hours from now)16:33
iurygregoryack o/16:36
iurygregoryok, I need coffee, the reason for the new data in the DB was because I restarted the ironic service :D (not related the L183 184)16:48
rpittau good night! o/16:57
TheJuliabllllaarg17:03
opendevreviewJulia Kreger proposed openstack/networking-baremetal stable/2024.2: prevent break on communications failure  https://review.opendev.org/c/openstack/networking-baremetal/+/93628917:30
opendevreviewJulia Kreger proposed openstack/networking-baremetal stable/2024.1: prevent break on communications failure  https://review.opendev.org/c/openstack/networking-baremetal/+/93629017:30
opendevreviewJulia Kreger proposed openstack/networking-baremetal stable/2023.2: prevent break on communications failure  https://review.opendev.org/c/openstack/networking-baremetal/+/93629117:31
opendevreviewJulia Kreger proposed openstack/networking-baremetal stable/2023.1: prevent break on communications failure  https://review.opendev.org/c/openstack/networking-baremetal/+/93629217:32
opendevreviewAdam McArthur proposed openstack/ironic-tempest-plugin master: Testing bad microversions on v1/allocations  https://review.opendev.org/c/openstack/ironic-tempest-plugin/+/93582717:41
opendevreviewAdam McArthur proposed openstack/ironic-tempest-plugin master: Testing bad microversions on v1/nodes/{uuid}/firmware  https://review.opendev.org/c/openstack/ironic-tempest-plugin/+/93607117:48
opendevreviewAdam McArthur proposed openstack/ironic-tempest-plugin master: Microversion Test Generator  https://review.opendev.org/c/openstack/ironic-tempest-plugin/+/93629318:11
opendevreviewAdam McArthur proposed openstack/ironic-tempest-plugin master: Microversion Test Generator  https://review.opendev.org/c/openstack/ironic-tempest-plugin/+/93629318:19
opendevreviewAdam McArthur proposed openstack/ironic master: api: Add schema validation framework  https://review.opendev.org/c/openstack/ironic/+/92892018:42
opendevreviewAdam McArthur proposed openstack/ironic-tempest-plugin master: Testing bad microversions on v1/allocations  https://review.opendev.org/c/openstack/ironic-tempest-plugin/+/93582718:54
opendevreviewAdam McArthur proposed openstack/ironic-tempest-plugin master: Microversion Test Generator  https://review.opendev.org/c/openstack/ironic-tempest-plugin/+/93629318:56
*** iurygregory__ is now known as iurygregory23:37
JayFadamcarthur5: cid: testcase version of assertRaises doesn't support the context manager syntax :-O 23:44
JayFvery annoying23:44
* JayF trying another construct for cid's I-T-P change23:48
opendevreviewJay Faulkner proposed openstack/ironic-tempest-plugin master: Test double encoding of error message  https://review.opendev.org/c/openstack/ironic-tempest-plugin/+/93574023:49

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