)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6961b8906995906da615a4a34dc88ff995b9d883","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"31b075f4_fdf42aba","updated":"2025-01-27 14:51:55.000000000","message":"recheck unrelated job failure with a tempest scenario","commit_id":"03d28645781a9b273e4f7965274cb7c708432fea"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8b2c6f766d0d77909b8e3f6030faad937aa1ad87","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"d7e3c920_535c20c7","updated":"2025-01-28 17:00:48.000000000","message":"Hey folks, just for clarity, I\u0027m not going to build a CI job for this because in order to deploy centos9 stream locally, I had to give my node-0 VM *10* GB of RAM. Some of this can be reduced/fixed most likely, but the overall bar and memory footprint overhead is just operationally prohibitive. I think the idea as a result is extensive in-development testing, which has been underway as part of development. We should discuss further.","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"452534d529e83c7cf9c3236f6bc11301f725c07a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c1206345_88d402ad","updated":"2025-02-06 00:05:31.000000000","message":"Minor issues/questions","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e9d9664260e774359cd6e38801e62fc568e8063e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"39687a58_7dc4e8fa","updated":"2025-02-03 14:22:03.000000000","message":"boop","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"77ae597731d05fbfcde073eb212e836aca2c5837","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"d5b5da70_8dbb56bf","updated":"2025-02-06 16:24:58.000000000","message":"+2 to indicate my agreement; but generally I\u0027m not sure this should mer","commit_id":"31f892d96aff176247b1dd0faf0e5242c464ec0d"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"ce1e6cda545938ac6c22a7ec202d91798973620c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"44057cde_e65f3eac","in_reply_to":"d5b5da70_8dbb56bf","updated":"2025-02-06 16:33:14.000000000","message":"**merge until the spec merges","commit_id":"31f892d96aff176247b1dd0faf0e5242c464ec0d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"691860bbccc7ddab57703e091e7a582d2e6e734e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"55eed3d9_d20a87b0","updated":"2025-02-10 04:19:49.000000000","message":"I think documentation tweaks could be done and then this self-approved","commit_id":"b18aa87b8b0e659bd05bb767a989ab397ebb50ad"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"9c7e39c23083a7657d7bcb67fde6d170f42b137a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"9017b59c_dfea8b5a","updated":"2025-02-08 18:47:03.000000000","message":"just a suggestion on docs wording.","commit_id":"b18aa87b8b0e659bd05bb767a989ab397ebb50ad"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"bbe41e7b5c6dd9e04fc6f1228836addd95878ac4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"e123ed81_9b1c3815","updated":"2025-02-10 20:22:51.000000000","message":"Marking approved since it was approved prior to the change to the commit message. I\u0027ll follow-up with a docs revision.","commit_id":"c7fa447ab6d6d49e574f9d7fef45b1fcfa1b53db"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"eca559457871b97f00b82b1f41b98500ab9e62ec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"46069434_42e14385","updated":"2025-02-11 14:20:13.000000000","message":"recheck kernel: ovs-node-0i1: dropped over-mtu packet: 1340 \u003e 1294","commit_id":"c7fa447ab6d6d49e574f9d7fef45b1fcfa1b53db"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"611fcc8a0abd8fee2e7eb8329c3f55c840fd8ba6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"40e59800_62fa6935","updated":"2025-02-11 00:06:38.000000000","message":"recheck known mtu issue being fixed in another patch","commit_id":"c7fa447ab6d6d49e574f9d7fef45b1fcfa1b53db"}],"doc/source/admin/interfaces/deploy.rst":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"452534d529e83c7cf9c3236f6bc11301f725c07a","unresolved":true,"context_lines":[{"line_number":191,"context_line":"61 and 99 (see :ref:`node-deployment-core-steps` for information on"},{"line_number":192,"context_line":"priorities)."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"Bootc Agent Deploy"},{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"The ``bootc`` deploy interface is designed to enable operators to deploy"}],"source_content_type":"text/x-rst","patch_set":8,"id":"a2fd5dbc_b75f7542","line":194,"updated":"2025-02-06 00:05:31.000000000","message":"Can we put a link to upstream bootc docs somewhere in here?","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"9a7f17227b8c45ce09b386a50249cda28f786d62","unresolved":false,"context_lines":[{"line_number":191,"context_line":"61 and 99 (see :ref:`node-deployment-core-steps` for information on"},{"line_number":192,"context_line":"priorities)."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"Bootc Agent Deploy"},{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"The ``bootc`` deploy interface is designed to enable operators to deploy"}],"source_content_type":"text/x-rst","patch_set":8,"id":"f73c0ea8_fee753b5","line":194,"in_reply_to":"a2fd5dbc_b75f7542","updated":"2025-02-06 16:31:39.000000000","message":"Done","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"452534d529e83c7cf9c3236f6bc11301f725c07a","unresolved":true,"context_lines":[{"line_number":209,"context_line":"interface consumes the entire target disk on the host being deployed"},{"line_number":210,"context_line":"and offers no customization in terms of partitioning. This is largely"},{"line_number":211,"context_line":"because the overall security model of a bootc deployment, which leverages"},{"line_number":212,"context_line":"os-tree, is also fundimentally different than the model to leverage"},{"line_number":213,"context_line":"partition separation."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":".. NOTE::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"d2748b0e_c65352c8","line":212,"updated":"2025-02-06 00:05:31.000000000","message":"spelling: fundamentally","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"9a7f17227b8c45ce09b386a50249cda28f786d62","unresolved":false,"context_lines":[{"line_number":209,"context_line":"interface consumes the entire target disk on the host being deployed"},{"line_number":210,"context_line":"and offers no customization in terms of partitioning. This is largely"},{"line_number":211,"context_line":"because the overall security model of a bootc deployment, which leverages"},{"line_number":212,"context_line":"os-tree, is also fundimentally different than the model to leverage"},{"line_number":213,"context_line":"partition separation."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":".. NOTE::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"0499ccf7_d80bc0e4","line":212,"in_reply_to":"d2748b0e_c65352c8","updated":"2025-02-06 16:31:39.000000000","message":"Done","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e9d9664260e774359cd6e38801e62fc568e8063e","unresolved":true,"context_lines":[{"line_number":213,"context_line":"partition separation."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":".. NOTE::"},{"line_number":216,"context_line":"   This interface should be considered experimental and may evolve"},{"line_number":217,"context_line":"   to include additional features as the Ironic project maintainers"},{"line_number":218,"context_line":"   receive additional feedback."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Features"},{"line_number":221,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"b565ea6c_9c381030","line":218,"range":{"start_line":216,"start_character":2,"end_line":218,"end_character":31},"updated":"2025-02-03 14:22:03.000000000","message":"We might want to expand on this and note limited upstream CI testing, maybe?","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"14b3dca4d7d6d2445e395ba6e43697c80a2d87f0","unresolved":true,"context_lines":[{"line_number":213,"context_line":"partition separation."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":".. NOTE::"},{"line_number":216,"context_line":"   This interface should be considered experimental and may evolve"},{"line_number":217,"context_line":"   to include additional features as the Ironic project maintainers"},{"line_number":218,"context_line":"   receive additional feedback."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Features"},{"line_number":221,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"b14b0920_c903abed","line":218,"range":{"start_line":216,"start_character":2,"end_line":218,"end_character":31},"in_reply_to":"639bd593_e0a70a1e","updated":"2025-02-06 15:02:16.000000000","message":"We\u0027re not going to CI test it without spinning a host with a bunch of ram. My devstack VM had 16GB and my node-0 was 10GB for the demo. The memory footprint due to the unpacking/assembly is really just quite memory heavy, unfortunately.","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"9a7f17227b8c45ce09b386a50249cda28f786d62","unresolved":false,"context_lines":[{"line_number":213,"context_line":"partition separation."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":".. NOTE::"},{"line_number":216,"context_line":"   This interface should be considered experimental and may evolve"},{"line_number":217,"context_line":"   to include additional features as the Ironic project maintainers"},{"line_number":218,"context_line":"   receive additional feedback."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Features"},{"line_number":221,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"0431ee94_76dda499","line":218,"range":{"start_line":216,"start_character":2,"end_line":218,"end_character":31},"in_reply_to":"b14b0920_c903abed","updated":"2025-02-06 16:31:39.000000000","message":"Done","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"452534d529e83c7cf9c3236f6bc11301f725c07a","unresolved":true,"context_lines":[{"line_number":213,"context_line":"partition separation."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":".. NOTE::"},{"line_number":216,"context_line":"   This interface should be considered experimental and may evolve"},{"line_number":217,"context_line":"   to include additional features as the Ironic project maintainers"},{"line_number":218,"context_line":"   receive additional feedback."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Features"},{"line_number":221,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"639bd593_e0a70a1e","line":218,"range":{"start_line":216,"start_character":2,"end_line":218,"end_character":31},"in_reply_to":"b565ea6c_9c381030","updated":"2025-02-06 00:05:31.000000000","message":"Maybe even note that most of the logic is inside the container itself, so many failure modes will be image-centric? I guess that\u0027s mostly true today, too.\n\nIs there a reason we aren\u0027t CI testing this?","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"452534d529e83c7cf9c3236f6bc11301f725c07a","unresolved":true,"context_lines":[{"line_number":272,"context_line":"  post-deployment."},{"line_number":273,"context_line":"* If you intend SELinux to be enabled on the deployed host, it must also"},{"line_number":274,"context_line":"  be enabled inside of the ironic-python-agent ramdisk. This is a design"},{"line_number":275,"context_line":"  limitation of bootc outside of Ironic\u0027s control."},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"Limitations"},{"line_number":278,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"8c062637_cfe7a294","line":275,"updated":"2025-02-06 00:05:31.000000000","message":"I wonder if there\u0027s some math we can provide to shine more light on ram requirements; e.g. \"for an image sized X, you need Y amount of ram\"","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"77ae597731d05fbfcde073eb212e836aca2c5837","unresolved":false,"context_lines":[{"line_number":272,"context_line":"  post-deployment."},{"line_number":273,"context_line":"* If you intend SELinux to be enabled on the deployed host, it must also"},{"line_number":274,"context_line":"  be enabled inside of the ironic-python-agent ramdisk. This is a design"},{"line_number":275,"context_line":"  limitation of bootc outside of Ironic\u0027s control."},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"Limitations"},{"line_number":278,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"8aad54cb_17b86a21","line":275,"in_reply_to":"8c062637_cfe7a294","updated":"2025-02-06 16:24:58.000000000","message":"Done","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"9a7f17227b8c45ce09b386a50249cda28f786d62","unresolved":false,"context_lines":[{"line_number":272,"context_line":"  post-deployment."},{"line_number":273,"context_line":"* If you intend SELinux to be enabled on the deployed host, it must also"},{"line_number":274,"context_line":"  be enabled inside of the ironic-python-agent ramdisk. This is a design"},{"line_number":275,"context_line":"  limitation of bootc outside of Ironic\u0027s control."},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"Limitations"},{"line_number":278,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"a85c4e3d_a71feae5","line":275,"in_reply_to":"8c062637_cfe7a294","updated":"2025-02-06 16:31:39.000000000","message":"So, I can\u0027t really whip up a formula because it is largely driven *also* by the size of the initramfs. For example, if podman is in tinycore, it might partially work by the overall initramfs filesystem free space is going to be based upon the percentage of free ram also considering the amount of bytes we start with.\n\nUpdated to provide an example.","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de62e542f8d8c44ea27b27c5a82b29372c4f37d0","unresolved":true,"context_lines":[{"line_number":283,"context_line":"  Container Registry. Caching the container artifacts on the"},{"line_number":284,"context_line":"  ``ironic-conductor`` host is not available. If you need the contaitainer"},{"line_number":285,"context_line":"  content localized to the conductor, consider utilizing your own container"},{"line_number":286,"context_line":"  registry."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7706def7_f925aac2","line":286,"updated":"2025-01-27 22:05:09.000000000","message":"So,","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3419381c8a382a242b41a8ba2bd1a16f93878a13","unresolved":false,"context_lines":[{"line_number":283,"context_line":"  Container Registry. Caching the container artifacts on the"},{"line_number":284,"context_line":"  ``ironic-conductor`` host is not available. If you need the contaitainer"},{"line_number":285,"context_line":"  content localized to the conductor, consider utilizing your own container"},{"line_number":286,"context_line":"  registry."}],"source_content_type":"text/x-rst","patch_set":8,"id":"d9e26773_13eebceb","line":286,"in_reply_to":"7706def7_f925aac2","updated":"2025-01-28 16:06:59.000000000","message":"No idea where this came from, closing out.","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"77ae597731d05fbfcde073eb212e836aca2c5837","unresolved":true,"context_lines":[{"line_number":228,"context_line":"   The possible failure modes of this interface are mainly focused upon"},{"line_number":229,"context_line":"   the ability of the ramdisk being able to download, launch, and"},{"line_number":230,"context_line":"   run bootc to trigger the installation which also isolates most risk"},{"line_number":231,"context_line":"   to the actual bootc process execution."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Features"},{"line_number":234,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a63b994_b5a8ea51","line":231,"updated":"2025-02-06 16:24:58.000000000","message":"👍","commit_id":"31f892d96aff176247b1dd0faf0e5242c464ec0d"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"9c7e39c23083a7657d7bcb67fde6d170f42b137a","unresolved":true,"context_lines":[{"line_number":212,"context_line":"and offers no customization in terms of partitioning. This is largely"},{"line_number":213,"context_line":"because the overall security model of a bootc deployment, which leverages"},{"line_number":214,"context_line":"os-tree, is also fundamentally different than the model to leverage"},{"line_number":215,"context_line":"partition separation."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":".. NOTE::"},{"line_number":218,"context_line":"   This interface should be considered experimental and may evolve"}],"source_content_type":"text/x-rst","patch_set":11,"id":"f06d9b34_49f33143","line":215,"updated":"2025-02-08 18:47:03.000000000","message":"Maybe combine the above two paragraphs like.... (just because it felt duplicated from the first line)\n\nThis interface facilitates a seamless deployment process, allowing users to quickly create and deploy updated container images without generating intermediate disk images or managing their storage for accessibility. While efficient, this approach offers limited flexibility in deployment models. It consumes the entire target disk on the deployed host, providing no options for custom partitioning. This design choice aligns with the security model of a bootc deployment, which relies on os-tree and fundamentally differs from traditional partition-based separation.","commit_id":"b18aa87b8b0e659bd05bb767a989ab397ebb50ad"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"691860bbccc7ddab57703e091e7a582d2e6e734e","unresolved":true,"context_lines":[{"line_number":300,"context_line":"  may be addressed in the future."},{"line_number":301,"context_line":"* This deployment interface directly downloads artifacts from the requested"},{"line_number":302,"context_line":"  Container Registry. Caching the container artifacts on the"},{"line_number":303,"context_line":"  ``ironic-conductor`` host is not available. If you need the contaitainer"},{"line_number":304,"context_line":"  content localized to the conductor, consider utilizing your own container"},{"line_number":305,"context_line":"  registry."}],"source_content_type":"text/x-rst","patch_set":11,"id":"8ca0fe54_1c0a9e3e","line":303,"range":{"start_line":303,"start_character":62,"end_line":303,"end_character":74},"updated":"2025-02-10 04:19:49.000000000","message":"nit: container","commit_id":"b18aa87b8b0e659bd05bb767a989ab397ebb50ad"}],"ironic/drivers/generic.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"452534d529e83c7cf9c3236f6bc11301f725c07a","unresolved":true,"context_lines":[{"line_number":51,"context_line":"        \"\"\"List of supported deploy interfaces.\"\"\""},{"line_number":52,"context_line":"        return [agent.AgentDeploy, ansible_deploy.AnsibleDeploy,"},{"line_number":53,"context_line":"                ramdisk.RamdiskDeploy, pxe.PXEAnacondaDeploy,"},{"line_number":54,"context_line":"                agent.CustomAgentDeploy, agent.BootcAgentDeploy]"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @property"},{"line_number":57,"context_line":"    def supported_inspect_interfaces(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"bb60b0a4_a69bf151","line":54,"updated":"2025-02-06 00:05:31.000000000","message":"this seems like it should be higher priority than CustomAgent, but at this level it probably doesn\u0027t matter so much","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"77ae597731d05fbfcde073eb212e836aca2c5837","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \"\"\"List of supported deploy interfaces.\"\"\""},{"line_number":52,"context_line":"        return [agent.AgentDeploy, ansible_deploy.AnsibleDeploy,"},{"line_number":53,"context_line":"                ramdisk.RamdiskDeploy, pxe.PXEAnacondaDeploy,"},{"line_number":54,"context_line":"                agent.CustomAgentDeploy, agent.BootcAgentDeploy]"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @property"},{"line_number":57,"context_line":"    def supported_inspect_interfaces(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"8caadb90_6cd93f46","line":54,"in_reply_to":"96bbe6bd_95f92456","updated":"2025-02-06 16:24:58.000000000","message":"Done","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"9a7f17227b8c45ce09b386a50249cda28f786d62","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \"\"\"List of supported deploy interfaces.\"\"\""},{"line_number":52,"context_line":"        return [agent.AgentDeploy, ansible_deploy.AnsibleDeploy,"},{"line_number":53,"context_line":"                ramdisk.RamdiskDeploy, pxe.PXEAnacondaDeploy,"},{"line_number":54,"context_line":"                agent.CustomAgentDeploy, agent.BootcAgentDeploy]"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @property"},{"line_number":57,"context_line":"    def supported_inspect_interfaces(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ccf009e6_0a500270","line":54,"in_reply_to":"96bbe6bd_95f92456","updated":"2025-02-06 16:31:39.000000000","message":"Done","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"14b3dca4d7d6d2445e395ba6e43697c80a2d87f0","unresolved":true,"context_lines":[{"line_number":51,"context_line":"        \"\"\"List of supported deploy interfaces.\"\"\""},{"line_number":52,"context_line":"        return [agent.AgentDeploy, ansible_deploy.AnsibleDeploy,"},{"line_number":53,"context_line":"                ramdisk.RamdiskDeploy, pxe.PXEAnacondaDeploy,"},{"line_number":54,"context_line":"                agent.CustomAgentDeploy, agent.BootcAgentDeploy]"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @property"},{"line_number":57,"context_line":"    def supported_inspect_interfaces(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"96bbe6bd_95f92456","line":54,"in_reply_to":"bb60b0a4_a69bf151","updated":"2025-02-06 15:02:16.000000000","message":"Yeah, you have a good point there. We do likely want to have it first since it is an integrated interface, where as the existing base custom deploy requires *something else*.","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"}],"ironic/drivers/modules/agent.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"75ff61aa1dfa40e4200066e8be95e9049bb89d91","unresolved":true,"context_lines":[{"line_number":992,"context_line":"        configdrive \u003d manager_utils.get_configdrive_image(node)"},{"line_number":993,"context_line":"        # Now switch into the corresponding in-band deploy step and let the"},{"line_number":994,"context_line":"        # result be polled normally."},{"line_number":995,"context_line":"        new_step \u003d {\u0027interface\u0027: \u0027deploy\u0027,"},{"line_number":996,"context_line":"                    \u0027step\u0027: \u0027execute_bootc_install\u0027,"},{"line_number":997,"context_line":"                    \u0027args\u0027: {\u0027image_source\u0027: image_source,"},{"line_number":998,"context_line":"                             \u0027configdrive\u0027: configdrive}}"},{"line_number":999,"context_line":"        client \u003d agent_client.get_client(task)"},{"line_number":1000,"context_line":"        return agent_base.execute_step(task, new_step, \u0027deploy\u0027,"},{"line_number":1001,"context_line":"                                       client\u003dclient)"},{"line_number":1002,"context_line":""},{"line_number":1003,"context_line":"    @METRICS.timer(\u0027AgentBootcDeploy.configure_local_boot\u0027)"},{"line_number":1004,"context_line":"    @base.deploy_step(priority\u003d60)"}],"source_content_type":"text/x-python","patch_set":1,"id":"0838bcd9_fe1a0190","line":1001,"range":{"start_line":995,"start_character":0,"end_line":1001,"end_character":53},"updated":"2025-01-06 19:47:46.000000000","message":"Internally, in the agent, we should execute bootc-install-to-disk once launching the container via podman.\n\nThat process likely needs to establish a specific root_size to enable the base image to be written out, and *then* do the configuration drive injection.\n\nhttps://containers.github.io/bootc/man/bootc-install-to-disk.html\n\nIt appears that, at least based upon reviewing the bootc code and the bootupd code which it uses. (yay for hidden details), that it dorectly injects a new UEFI record for UEFI hosts.","commit_id":"9cb74eae2e16afb553ffaaca8aa3e40e3f8acca5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c8f7435cf12f256ae9e5f22af9cdfd779ed26ad2","unresolved":false,"context_lines":[{"line_number":992,"context_line":"        configdrive \u003d manager_utils.get_configdrive_image(node)"},{"line_number":993,"context_line":"        # Now switch into the corresponding in-band deploy step and let the"},{"line_number":994,"context_line":"        # result be polled normally."},{"line_number":995,"context_line":"        new_step \u003d {\u0027interface\u0027: \u0027deploy\u0027,"},{"line_number":996,"context_line":"                    \u0027step\u0027: \u0027execute_bootc_install\u0027,"},{"line_number":997,"context_line":"                    \u0027args\u0027: {\u0027image_source\u0027: image_source,"},{"line_number":998,"context_line":"                             \u0027configdrive\u0027: configdrive}}"},{"line_number":999,"context_line":"        client \u003d agent_client.get_client(task)"},{"line_number":1000,"context_line":"        return agent_base.execute_step(task, new_step, \u0027deploy\u0027,"},{"line_number":1001,"context_line":"                                       client\u003dclient)"},{"line_number":1002,"context_line":""},{"line_number":1003,"context_line":"    @METRICS.timer(\u0027AgentBootcDeploy.configure_local_boot\u0027)"},{"line_number":1004,"context_line":"    @base.deploy_step(priority\u003d60)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5c7919f2_ed35bfe8","line":1001,"range":{"start_line":995,"start_character":0,"end_line":1001,"end_character":53},"in_reply_to":"0838bcd9_fe1a0190","updated":"2025-01-27 14:53:36.000000000","message":"Done","commit_id":"9cb74eae2e16afb553ffaaca8aa3e40e3f8acca5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"75ff61aa1dfa40e4200066e8be95e9049bb89d91","unresolved":true,"context_lines":[{"line_number":999,"context_line":"        client \u003d agent_client.get_client(task)"},{"line_number":1000,"context_line":"        return agent_base.execute_step(task, new_step, \u0027deploy\u0027,"},{"line_number":1001,"context_line":"                                       client\u003dclient)"},{"line_number":1002,"context_line":""},{"line_number":1003,"context_line":"    @METRICS.timer(\u0027AgentBootcDeploy.configure_local_boot\u0027)"},{"line_number":1004,"context_line":"    @base.deploy_step(priority\u003d60)"},{"line_number":1005,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":1006,"context_line":"    def configure_local_boot(self, task):"},{"line_number":1007,"context_line":"        node \u003d task.node"},{"line_number":1008,"context_line":"        # FIXME(TheJulia): This is a stub from AgentDeploy, we likely need"},{"line_number":1009,"context_line":"        # to make this pattern common code due to Lenovo BMC behavior."},{"line_number":1010,"context_line":"        try:"},{"line_number":1011,"context_line":"            persistent \u003d True"},{"line_number":1012,"context_line":"            # NOTE(TheJulia): We *really* only should be doing this in bios"},{"line_number":1013,"context_line":"            # boot mode. In UEFI this might just get disregarded, or cause"},{"line_number":1014,"context_line":"            # issues/failures."},{"line_number":1015,"context_line":"            if node.driver_info.get(\u0027force_persistent_boot_device\u0027,"},{"line_number":1016,"context_line":"                                    \u0027Default\u0027) \u003d\u003d \u0027Never\u0027:"},{"line_number":1017,"context_line":"                persistent \u003d False"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"            vendor \u003d task.node.properties.get(\u0027vendor\u0027, None)"},{"line_number":1020,"context_line":"            if not (vendor and vendor.lower() \u003d\u003d \u0027lenovo\u0027):"},{"line_number":1021,"context_line":"                # Lenovo hardware is modeled on a \"just update\""},{"line_number":1022,"context_line":"                # UEFI nvram model of use, and if multiple actions"},{"line_number":1023,"context_line":"                # get requested, you can end up in cases where NVRAM"},{"line_number":1024,"context_line":"                # changes are deleted as the host \"restores\" to the"},{"line_number":1025,"context_line":"                # backup. For more information see"},{"line_number":1026,"context_line":"                # https://bugs.launchpad.net/ironic/+bug/2053064"},{"line_number":1027,"context_line":"                # NOTE(TheJulia): We likely just need to do this with"},{"line_number":1028,"context_line":"                # all hosts in uefi mode, but libvirt VMs don\u0027t handle"},{"line_number":1029,"context_line":"                # nvram only changes *and* this pattern is known to generally"},{"line_number":1030,"context_line":"                # work for Ironic operators."},{"line_number":1031,"context_line":"                deploy_utils.try_set_boot_device(task, boot_devices.DISK,"},{"line_number":1032,"context_line":"                                                 persistent\u003dpersistent)"},{"line_number":1033,"context_line":"        except Exception as e:"},{"line_number":1034,"context_line":"            msg \u003d (_(\"Failed to change the boot device to %(boot_dev)s \""},{"line_number":1035,"context_line":"                     \"when deploying node %(node)s: %(error)s\") %"},{"line_number":1036,"context_line":"                   {\u0027boot_dev\u0027: boot_devices.DISK, \u0027node\u0027: node.uuid,"},{"line_number":1037,"context_line":"                    \u0027error\u0027: e})"},{"line_number":1038,"context_line":"            agent_base.log_and_raise_deployment_error(task, msg, exc\u003de)"},{"line_number":1039,"context_line":""},{"line_number":1040,"context_line":""},{"line_number":1041,"context_line":"class AgentRAID(base.RAIDInterface):"}],"source_content_type":"text/x-python","patch_set":1,"id":"f7f1f85b_ff14560e","line":1038,"range":{"start_line":1002,"start_character":0,"end_line":1038,"end_character":71},"updated":"2025-01-06 19:47:46.000000000","message":"I\u0027m not 100% sure this is even needed, but is good to have around.\n\nUltimately, somehow. if someone manages to deploy a bios booting thing, or something on a non-efi platform, this is basically needed... and kind of provides consistency which is also nice.  Kind of.\n\nWe might be able to get away with not having it though.","commit_id":"9cb74eae2e16afb553ffaaca8aa3e40e3f8acca5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c8f7435cf12f256ae9e5f22af9cdfd779ed26ad2","unresolved":false,"context_lines":[{"line_number":999,"context_line":"        client \u003d agent_client.get_client(task)"},{"line_number":1000,"context_line":"        return agent_base.execute_step(task, new_step, \u0027deploy\u0027,"},{"line_number":1001,"context_line":"                                       client\u003dclient)"},{"line_number":1002,"context_line":""},{"line_number":1003,"context_line":"    @METRICS.timer(\u0027AgentBootcDeploy.configure_local_boot\u0027)"},{"line_number":1004,"context_line":"    @base.deploy_step(priority\u003d60)"},{"line_number":1005,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":1006,"context_line":"    def configure_local_boot(self, task):"},{"line_number":1007,"context_line":"        node \u003d task.node"},{"line_number":1008,"context_line":"        # FIXME(TheJulia): This is a stub from AgentDeploy, we likely need"},{"line_number":1009,"context_line":"        # to make this pattern common code due to Lenovo BMC behavior."},{"line_number":1010,"context_line":"        try:"},{"line_number":1011,"context_line":"            persistent \u003d True"},{"line_number":1012,"context_line":"            # NOTE(TheJulia): We *really* only should be doing this in bios"},{"line_number":1013,"context_line":"            # boot mode. In UEFI this might just get disregarded, or cause"},{"line_number":1014,"context_line":"            # issues/failures."},{"line_number":1015,"context_line":"            if node.driver_info.get(\u0027force_persistent_boot_device\u0027,"},{"line_number":1016,"context_line":"                                    \u0027Default\u0027) \u003d\u003d \u0027Never\u0027:"},{"line_number":1017,"context_line":"                persistent \u003d False"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"            vendor \u003d task.node.properties.get(\u0027vendor\u0027, None)"},{"line_number":1020,"context_line":"            if not (vendor and vendor.lower() \u003d\u003d \u0027lenovo\u0027):"},{"line_number":1021,"context_line":"                # Lenovo hardware is modeled on a \"just update\""},{"line_number":1022,"context_line":"                # UEFI nvram model of use, and if multiple actions"},{"line_number":1023,"context_line":"                # get requested, you can end up in cases where NVRAM"},{"line_number":1024,"context_line":"                # changes are deleted as the host \"restores\" to the"},{"line_number":1025,"context_line":"                # backup. For more information see"},{"line_number":1026,"context_line":"                # https://bugs.launchpad.net/ironic/+bug/2053064"},{"line_number":1027,"context_line":"                # NOTE(TheJulia): We likely just need to do this with"},{"line_number":1028,"context_line":"                # all hosts in uefi mode, but libvirt VMs don\u0027t handle"},{"line_number":1029,"context_line":"                # nvram only changes *and* this pattern is known to generally"},{"line_number":1030,"context_line":"                # work for Ironic operators."},{"line_number":1031,"context_line":"                deploy_utils.try_set_boot_device(task, boot_devices.DISK,"},{"line_number":1032,"context_line":"                                                 persistent\u003dpersistent)"},{"line_number":1033,"context_line":"        except Exception as e:"},{"line_number":1034,"context_line":"            msg \u003d (_(\"Failed to change the boot device to %(boot_dev)s \""},{"line_number":1035,"context_line":"                     \"when deploying node %(node)s: %(error)s\") %"},{"line_number":1036,"context_line":"                   {\u0027boot_dev\u0027: boot_devices.DISK, \u0027node\u0027: node.uuid,"},{"line_number":1037,"context_line":"                    \u0027error\u0027: e})"},{"line_number":1038,"context_line":"            agent_base.log_and_raise_deployment_error(task, msg, exc\u003de)"},{"line_number":1039,"context_line":""},{"line_number":1040,"context_line":""},{"line_number":1041,"context_line":"class AgentRAID(base.RAIDInterface):"}],"source_content_type":"text/x-python","patch_set":1,"id":"0ccf7e43_19974efe","line":1038,"range":{"start_line":1002,"start_character":0,"end_line":1038,"end_character":71},"in_reply_to":"0ff8577a_26af7b59","updated":"2025-01-27 14:53:36.000000000","message":"Done","commit_id":"9cb74eae2e16afb553ffaaca8aa3e40e3f8acca5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d8ff2cef57a7faedff1264e732a55b45a264cbb2","unresolved":true,"context_lines":[{"line_number":999,"context_line":"        client \u003d agent_client.get_client(task)"},{"line_number":1000,"context_line":"        return agent_base.execute_step(task, new_step, \u0027deploy\u0027,"},{"line_number":1001,"context_line":"                                       client\u003dclient)"},{"line_number":1002,"context_line":""},{"line_number":1003,"context_line":"    @METRICS.timer(\u0027AgentBootcDeploy.configure_local_boot\u0027)"},{"line_number":1004,"context_line":"    @base.deploy_step(priority\u003d60)"},{"line_number":1005,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":1006,"context_line":"    def configure_local_boot(self, task):"},{"line_number":1007,"context_line":"        node \u003d task.node"},{"line_number":1008,"context_line":"        # FIXME(TheJulia): This is a stub from AgentDeploy, we likely need"},{"line_number":1009,"context_line":"        # to make this pattern common code due to Lenovo BMC behavior."},{"line_number":1010,"context_line":"        try:"},{"line_number":1011,"context_line":"            persistent \u003d True"},{"line_number":1012,"context_line":"            # NOTE(TheJulia): We *really* only should be doing this in bios"},{"line_number":1013,"context_line":"            # boot mode. In UEFI this might just get disregarded, or cause"},{"line_number":1014,"context_line":"            # issues/failures."},{"line_number":1015,"context_line":"            if node.driver_info.get(\u0027force_persistent_boot_device\u0027,"},{"line_number":1016,"context_line":"                                    \u0027Default\u0027) \u003d\u003d \u0027Never\u0027:"},{"line_number":1017,"context_line":"                persistent \u003d False"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"            vendor \u003d task.node.properties.get(\u0027vendor\u0027, None)"},{"line_number":1020,"context_line":"            if not (vendor and vendor.lower() \u003d\u003d \u0027lenovo\u0027):"},{"line_number":1021,"context_line":"                # Lenovo hardware is modeled on a \"just update\""},{"line_number":1022,"context_line":"                # UEFI nvram model of use, and if multiple actions"},{"line_number":1023,"context_line":"                # get requested, you can end up in cases where NVRAM"},{"line_number":1024,"context_line":"                # changes are deleted as the host \"restores\" to the"},{"line_number":1025,"context_line":"                # backup. For more information see"},{"line_number":1026,"context_line":"                # https://bugs.launchpad.net/ironic/+bug/2053064"},{"line_number":1027,"context_line":"                # NOTE(TheJulia): We likely just need to do this with"},{"line_number":1028,"context_line":"                # all hosts in uefi mode, but libvirt VMs don\u0027t handle"},{"line_number":1029,"context_line":"                # nvram only changes *and* this pattern is known to generally"},{"line_number":1030,"context_line":"                # work for Ironic operators."},{"line_number":1031,"context_line":"                deploy_utils.try_set_boot_device(task, boot_devices.DISK,"},{"line_number":1032,"context_line":"                                                 persistent\u003dpersistent)"},{"line_number":1033,"context_line":"        except Exception as e:"},{"line_number":1034,"context_line":"            msg \u003d (_(\"Failed to change the boot device to %(boot_dev)s \""},{"line_number":1035,"context_line":"                     \"when deploying node %(node)s: %(error)s\") %"},{"line_number":1036,"context_line":"                   {\u0027boot_dev\u0027: boot_devices.DISK, \u0027node\u0027: node.uuid,"},{"line_number":1037,"context_line":"                    \u0027error\u0027: e})"},{"line_number":1038,"context_line":"            agent_base.log_and_raise_deployment_error(task, msg, exc\u003de)"},{"line_number":1039,"context_line":""},{"line_number":1040,"context_line":""},{"line_number":1041,"context_line":"class AgentRAID(base.RAIDInterface):"}],"source_content_type":"text/x-python","patch_set":1,"id":"0ff8577a_26af7b59","line":1038,"range":{"start_line":1002,"start_character":0,"end_line":1038,"end_character":71},"in_reply_to":"f7f1f85b_ff14560e","updated":"2025-01-24 15:55:15.000000000","message":"So I looked at this, and the tl;dr is that the machine *should* boot again, but we might have already told the machine to boot from network. So basically, that is what *needs to be unwound with the same basic logic as other calls around lenovo hardware differences.","commit_id":"9cb74eae2e16afb553ffaaca8aa3e40e3f8acca5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d8ff2cef57a7faedff1264e732a55b45a264cbb2","unresolved":true,"context_lines":[{"line_number":995,"context_line":"        new_step \u003d {\u0027interface\u0027: \u0027deploy\u0027,"},{"line_number":996,"context_line":"                    \u0027step\u0027: \u0027execute_bootc_install\u0027,"},{"line_number":997,"context_line":"                    \u0027args\u0027: {\u0027image_source\u0027: image_source,"},{"line_number":998,"context_line":"                             \u0027configdrive\u0027: configdrive}}"},{"line_number":999,"context_line":"        client \u003d agent_client.get_client(task)"},{"line_number":1000,"context_line":"        return agent_base.execute_step(task, new_step, \u0027deploy\u0027,"},{"line_number":1001,"context_line":"                                       client\u003dclient)"}],"source_content_type":"text/x-python","patch_set":2,"id":"d9684f44_c3fed2a7","line":998,"updated":"2025-01-24 15:55:15.000000000","message":"We\u0027ll need the secret from the image service for authentication...","commit_id":"6e43bac09f5ed52c17896dd4cd25e9b533820441"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c8f7435cf12f256ae9e5f22af9cdfd779ed26ad2","unresolved":false,"context_lines":[{"line_number":995,"context_line":"        new_step \u003d {\u0027interface\u0027: \u0027deploy\u0027,"},{"line_number":996,"context_line":"                    \u0027step\u0027: \u0027execute_bootc_install\u0027,"},{"line_number":997,"context_line":"                    \u0027args\u0027: {\u0027image_source\u0027: image_source,"},{"line_number":998,"context_line":"                             \u0027configdrive\u0027: configdrive}}"},{"line_number":999,"context_line":"        client \u003d agent_client.get_client(task)"},{"line_number":1000,"context_line":"        return agent_base.execute_step(task, new_step, \u0027deploy\u0027,"},{"line_number":1001,"context_line":"                                       client\u003dclient)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3bf13141_54b2fdac","line":998,"in_reply_to":"d9684f44_c3fed2a7","updated":"2025-01-27 14:53:36.000000000","message":"Done","commit_id":"6e43bac09f5ed52c17896dd4cd25e9b533820441"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"363f0d6207edafdc65d4e061d6663cff2eb06afc","unresolved":true,"context_lines":[{"line_number":946,"context_line":"        LOG.info(\u0027Local boot successfully configured for node %s\u0027, node.uuid)"},{"line_number":947,"context_line":""},{"line_number":948,"context_line":""},{"line_number":949,"context_line":"class AgentBootcDeploy(CustomAgentDeploy):"},{"line_number":950,"context_line":"    \"\"\"Interface for deploy-related actions.\"\"\""},{"line_number":951,"context_line":""},{"line_number":952,"context_line":"    @METRICS.timer(\u0027AgentBootcDeploy.validate\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"05fe9a45_54faf515","line":949,"updated":"2025-01-24 22:37:10.000000000","message":"this is different from setup.cfg\n\nFurthermore, it needs to be enabled as an interface for hardware classes to load it.","commit_id":"a74dd22cec5b1bfd9a69c6b656fef99bec99f74c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c8f7435cf12f256ae9e5f22af9cdfd779ed26ad2","unresolved":false,"context_lines":[{"line_number":946,"context_line":"        LOG.info(\u0027Local boot successfully configured for node %s\u0027, node.uuid)"},{"line_number":947,"context_line":""},{"line_number":948,"context_line":""},{"line_number":949,"context_line":"class AgentBootcDeploy(CustomAgentDeploy):"},{"line_number":950,"context_line":"    \"\"\"Interface for deploy-related actions.\"\"\""},{"line_number":951,"context_line":""},{"line_number":952,"context_line":"    @METRICS.timer(\u0027AgentBootcDeploy.validate\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"e767eb16_808e6da9","line":949,"in_reply_to":"05fe9a45_54faf515","updated":"2025-01-27 14:53:36.000000000","message":"Done","commit_id":"a74dd22cec5b1bfd9a69c6b656fef99bec99f74c"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"69d7f59ef57be68b96f5d1a87a0e2badaa984ee7","unresolved":true,"context_lines":[{"line_number":982,"context_line":"        # bootc runs in the target container as well, so ... hmmm"},{"line_number":983,"context_line":"        configdrive \u003d manager_utils.get_configdrive_image(node)"},{"line_number":984,"context_line":""},{"line_number":985,"context_line":"        img_auth \u003d image_service.get_image_service_auth_override(task.node)"},{"line_number":986,"context_line":""},{"line_number":987,"context_line":"        if not img_auth:"},{"line_number":988,"context_line":"            fqdn \u003d urlparse.urlparse(image_source).netloc"}],"source_content_type":"text/x-python","patch_set":7,"id":"70546130_68012297","line":985,"range":{"start_line":985,"start_character":7,"end_line":985,"end_character":75},"updated":"2025-01-27 15:06:56.000000000","message":"this doesn\u0027t do the fallback to oci config, that should be fixed.","commit_id":"03d28645781a9b273e4f7965274cb7c708432fea"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de62e542f8d8c44ea27b27c5a82b29372c4f37d0","unresolved":false,"context_lines":[{"line_number":982,"context_line":"        # bootc runs in the target container as well, so ... hmmm"},{"line_number":983,"context_line":"        configdrive \u003d manager_utils.get_configdrive_image(node)"},{"line_number":984,"context_line":""},{"line_number":985,"context_line":"        img_auth \u003d image_service.get_image_service_auth_override(task.node)"},{"line_number":986,"context_line":""},{"line_number":987,"context_line":"        if not img_auth:"},{"line_number":988,"context_line":"            fqdn \u003d urlparse.urlparse(image_source).netloc"}],"source_content_type":"text/x-python","patch_set":7,"id":"370d1e58_c7ea6f05","line":985,"range":{"start_line":985,"start_character":7,"end_line":985,"end_character":75},"in_reply_to":"70546130_68012297","updated":"2025-01-27 22:05:09.000000000","message":"doh, it does, nevermind!","commit_id":"03d28645781a9b273e4f7965274cb7c708432fea"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"452534d529e83c7cf9c3236f6bc11301f725c07a","unresolved":true,"context_lines":[{"line_number":1029,"context_line":"        node \u003d task.node"},{"line_number":1030,"context_line":"        # FIXME(TheJulia): This is a stub from AgentDeploy\u0027s"},{"line_number":1031,"context_line":"        # configure_local_boot method, we likely need to make"},{"line_number":1032,"context_line":"        # the lenovo handling pattern common code at this point."},{"line_number":1033,"context_line":"        try:"},{"line_number":1034,"context_line":"            persistent \u003d True"},{"line_number":1035,"context_line":"            # NOTE(TheJulia): We *really* only should be doing this in bios"}],"source_content_type":"text/x-python","patch_set":8,"id":"db0cf164_83b1a66a","line":1032,"updated":"2025-02-06 00:05:31.000000000","message":"highlighting this, I assume we want to DRY this before it lands?","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"77ae597731d05fbfcde073eb212e836aca2c5837","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"        node \u003d task.node"},{"line_number":1030,"context_line":"        # FIXME(TheJulia): This is a stub from AgentDeploy\u0027s"},{"line_number":1031,"context_line":"        # configure_local_boot method, we likely need to make"},{"line_number":1032,"context_line":"        # the lenovo handling pattern common code at this point."},{"line_number":1033,"context_line":"        try:"},{"line_number":1034,"context_line":"            persistent \u003d True"},{"line_number":1035,"context_line":"            # NOTE(TheJulia): We *really* only should be doing this in bios"}],"source_content_type":"text/x-python","patch_set":8,"id":"5182e77b_ff53e3f1","line":1032,"in_reply_to":"db0cf164_83b1a66a","updated":"2025-02-06 16:24:58.000000000","message":"Done","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"9a7f17227b8c45ce09b386a50249cda28f786d62","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"        node \u003d task.node"},{"line_number":1030,"context_line":"        # FIXME(TheJulia): This is a stub from AgentDeploy\u0027s"},{"line_number":1031,"context_line":"        # configure_local_boot method, we likely need to make"},{"line_number":1032,"context_line":"        # the lenovo handling pattern common code at this point."},{"line_number":1033,"context_line":"        try:"},{"line_number":1034,"context_line":"            persistent \u003d True"},{"line_number":1035,"context_line":"            # NOTE(TheJulia): We *really* only should be doing this in bios"}],"source_content_type":"text/x-python","patch_set":8,"id":"66cd445f_3daff553","line":1032,"in_reply_to":"db0cf164_83b1a66a","updated":"2025-02-06 16:31:39.000000000","message":"Done","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"}],"releasenotes/notes/add-bootc-deploy-interface-2658614c5190c457.yaml":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"452534d529e83c7cf9c3236f6bc11301f725c07a","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    Adds a ``bootc`` deploy interface which can be enabled by an Ironic"},{"line_number":5,"context_line":"    deployment administrator, which can then enable users of the ``bootc``"},{"line_number":6,"context_line":"    deploy interface to have a streamlined path for the deployment of"},{"line_number":7,"context_line":"    container images to a host directly, without additional intermediate"},{"line_number":8,"context_line":"    steps."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"e0ad9fdb_a3ab76f4","line":7,"updated":"2025-02-06 00:05:31.000000000","message":"maybe \"specially crafted container images\"?","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"9a7f17227b8c45ce09b386a50249cda28f786d62","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds a ``bootc`` deploy interface which can be enabled by an Ironic"},{"line_number":5,"context_line":"    deployment administrator, which can then enable users of the ``bootc``"},{"line_number":6,"context_line":"    deploy interface to have a streamlined path for the deployment of"},{"line_number":7,"context_line":"    container images to a host directly, without additional intermediate"},{"line_number":8,"context_line":"    steps."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"102a7fc8_bd378cae","line":7,"in_reply_to":"e0ad9fdb_a3ab76f4","updated":"2025-02-06 16:31:39.000000000","message":"Clarified.","commit_id":"1ada2336a0f7645a5c5da0e084ba6aedc8be4429"}]}
