)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"bf97dd9d462ccfe83143f2e2d73653b70a1dc00b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"61b25e42_40273405","updated":"2022-12-13 17:24:40.000000000","message":"WIP for now - needs a diagram and checking that the narrative for the LXC example makes sense from a 3rd party POV.","commit_id":"86183510f5f8eb65a31194dc55d04841b7d764ce"},{"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":"bdb8512647e8bc2fe2b647905b474890b0f61e89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"ae345f74_b9d62d9a","updated":"2022-12-16 19:17:16.000000000","message":"For multitenant, I strongly recommend adding a section about how it\u0027s not safe to do Ironic multitenant with untrusted tenants unless you\u0027re using specialized hardware or have tested your firmware security significantly.\n\nYou should still wait for Julia to have a look at this; she\u0027s going to have a different lens than I do, especially given she\u0027s seen Ironic operated in more varied use cases.","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"7feb28e626037ccccee73a68d0c88a0f3f2c8872","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"43f728e1_21287ab2","updated":"2022-12-15 18:55:07.000000000","message":"Julia / Jay it would be cool to get some feedback on this from Ironic POV - the intent is to describe a use case and the necessary config in the context of Openstack-Ansible to get from zero to Ironic, rather than \"everything Ironic can do\".\n\nHopefully opportunity to catch any misunderstandings of Ironic as this is written from the perspective of having to grok the whole thing from the outside and describe the trip hazards that a deployer is likely to encounter.","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"d88a3e723cec8eb8d40324466f4a87b18f80f0b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"a3ce62c1_fdf98876","updated":"2023-02-21 18:28:31.000000000","message":"looks good but i\u0027d love to see a response for jrosser\u0027s comments\n\nis it even a good practice to refer to specific branches in docs?","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"9c593ae538d5807717d029ea6053531219f99837","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"49d0d452_63f50440","in_reply_to":"a3ce62c1_fdf98876","updated":"2023-02-23 09:51:02.000000000","message":"Well, I\u0027m not sure how make this dynamic based on the URL - likely there\u0027s a way to implement that. But I think we should just give an example that is supposed to be adjusted before usage. So I\u0027m kind of fine with that.","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"810b2c2950fc2f7378b0cbc11bdec894e54463bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"ddb5bac8_aa90b522","updated":"2023-03-14 15:22:51.000000000","message":"lgtm, thanks for working on that!","commit_id":"4049c1ee5b5c23364c2880141afe66685107d45f"}],"doc/source/configure-ironic-debugging.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":"bdb8512647e8bc2fe2b647905b474890b0f61e89","unresolved":true,"context_lines":[{"line_number":5,"context_line":"Ironic Python Agent debug logs"},{"line_number":6,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"If the ironic agent fails, a log file will be written to ``/var/log/ironic``"},{"line_number":9,"context_line":"on the conductor node responsible for the Ironic node being deployed."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"A lot of useful information is collected including a copy of the journal"}],"source_content_type":"text/x-rst","patch_set":8,"id":"cfae1a5f_b967913d","line":8,"updated":"2022-12-16 19:17:16.000000000","message":"nit: ironic / ironic-python-agent are inconsistently capitalized. In Ironic docs, we usually capitalize the names of services/components unless referring directly to the command or a file.","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"f7f9d7c91063a9bd269e2f66001e18c510034653","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Ironic Python Agent debug logs"},{"line_number":6,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"If the ironic agent fails, a log file will be written to ``/var/log/ironic``"},{"line_number":9,"context_line":"on the conductor node responsible for the Ironic node being deployed."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"A lot of useful information is collected including a copy of the journal"}],"source_content_type":"text/x-rst","patch_set":8,"id":"c919c68c_ff643171","line":8,"in_reply_to":"cfae1a5f_b967913d","updated":"2023-01-18 14:36:37.000000000","message":"Done","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"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":"bdb8512647e8bc2fe2b647905b474890b0f61e89","unresolved":true,"context_lines":[{"line_number":42,"context_line":"  pip install ironic-python-agent-builder"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"  export DIB_REPOREF_ironic_python_agent\u003dorigin/stable/yoga"},{"line_number":45,"context_line":"  export DIB_REPOREF_requirements\u003dorigin/stable/yoga"},{"line_number":46,"context_line":"  ironic-python-agent-builder -e dynamic-login -o my-login-ipa --extra-args\u003d--no-tmpfs --release 8-stream centos"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Once the IPA kernel and initramfs are built, upload them to glance and"}],"source_content_type":"text/x-rst","patch_set":8,"id":"151ffafc_71e8b5d8","line":45,"updated":"2022-12-16 19:17:16.000000000","message":"Is this doc tied to yoga version? We\u0027d prefer folks use latest release.","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"f7f9d7c91063a9bd269e2f66001e18c510034653","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  pip install ironic-python-agent-builder"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"  export DIB_REPOREF_ironic_python_agent\u003dorigin/stable/yoga"},{"line_number":45,"context_line":"  export DIB_REPOREF_requirements\u003dorigin/stable/yoga"},{"line_number":46,"context_line":"  ironic-python-agent-builder -e dynamic-login -o my-login-ipa --extra-args\u003d--no-tmpfs --release 8-stream centos"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Once the IPA kernel and initramfs are built, upload them to glance and"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7e020bfa_dcddc34a","line":45,"in_reply_to":"151ffafc_71e8b5d8","updated":"2023-01-18 14:36:37.000000000","message":"Ah well as a trailing release cycle project we only just released OSA last week but yes you\u0027re right, this is now out of date.","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"df09eba5da9a188c7c57fb286ee7156fd05568ee","unresolved":true,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"  openssl passwd -1 -stdin \u003c\u003c\u003c YOUR_PASSWORD | sed \u0027s/\\$/\\$\\$/g\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Set debugging options on the ironic-python-agent kernel parameters"},{"line_number":59,"context_line":"in ``/etc/openstack_deploy/user_variables.yml``, substituing the encrypted"},{"line_number":60,"context_line":"password just generated into the ``rootpwd`` field."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":".. code-block:: bash"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"4239b2c9_30ff9bf3","line":60,"range":{"start_line":58,"start_character":0,"end_line":60,"end_character":51},"updated":"2022-12-15 19:15:18.000000000","message":"should note that the quotation marks are required to be present","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"f7f9d7c91063a9bd269e2f66001e18c510034653","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"  openssl passwd -1 -stdin \u003c\u003c\u003c YOUR_PASSWORD | sed \u0027s/\\$/\\$\\$/g\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Set debugging options on the ironic-python-agent kernel parameters"},{"line_number":59,"context_line":"in ``/etc/openstack_deploy/user_variables.yml``, substituing the encrypted"},{"line_number":60,"context_line":"password just generated into the ``rootpwd`` field."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":".. code-block:: bash"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"07d1fa4d_6d159395","line":60,"range":{"start_line":58,"start_character":0,"end_line":60,"end_character":51},"in_reply_to":"4239b2c9_30ff9bf3","updated":"2023-01-18 14:36:37.000000000","message":"Done","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"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":"bdb8512647e8bc2fe2b647905b474890b0f61e89","unresolved":true,"context_lines":[{"line_number":62,"context_line":".. code-block:: bash"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"  ironic_ironic_conf_overrides:"},{"line_number":65,"context_line":"    # Set a password on the root user in i-p-a for debug purposes"},{"line_number":66,"context_line":"    pxe:"},{"line_number":67,"context_line":"      kernel_append_params: \u0027ipa-debug\u003d1 systemd.journald.forward_to_console\u003dyes rootpwd\u003d\"\u003cpassword-string\u003e\"\u0027"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"b9029044_d4028fb3","line":65,"updated":"2022-12-16 19:17:16.000000000","message":"nit: i-p-a vs IPA used inconsistently. I usually use IPA.","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"f7f9d7c91063a9bd269e2f66001e18c510034653","unresolved":false,"context_lines":[{"line_number":62,"context_line":".. code-block:: bash"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"  ironic_ironic_conf_overrides:"},{"line_number":65,"context_line":"    # Set a password on the root user in i-p-a for debug purposes"},{"line_number":66,"context_line":"    pxe:"},{"line_number":67,"context_line":"      kernel_append_params: \u0027ipa-debug\u003d1 systemd.journald.forward_to_console\u003dyes rootpwd\u003d\"\u003cpassword-string\u003e\"\u0027"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ab80ac0b_b91d18f8","line":65,"in_reply_to":"b9029044_d4028fb3","updated":"2023-01-18 14:36:37.000000000","message":"Done","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"}],"doc/source/configure-ironic-multiarch.rst":[{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"f7f9d7c91063a9bd269e2f66001e18c510034653","unresolved":true,"context_lines":[{"line_number":32,"context_line":"  source ./venv/bin/activate"},{"line_number":33,"context_line":"  pip install ironic-python-agent-builder"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  export DIB_REPOREF_ironic_python_agent\u003dorigin/stable/yoga"},{"line_number":36,"context_line":"  export DIB_REPOREF_requirements\u003dorigin/stable/yoga"},{"line_number":37,"context_line":"  ironic-python-agent-builder -o my-ipa --extra-args\u003d--no-tmpfs --release 8-stream centos"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"af9c916d_d75b4bb1","line":35,"range":{"start_line":35,"start_character":55,"end_line":35,"end_character":59},"updated":"2023-01-18 14:36:37.000000000","message":"update for antelope - what is the codename?","commit_id":"15deb819f0dc5ee3790ca18a1bfa59368ad0d231"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"b272a07c047fbfb979daff905c5bb86595d353e5","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  source ./venv/bin/activate"},{"line_number":33,"context_line":"  pip install ironic-python-agent-builder"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  export DIB_REPOREF_ironic_python_agent\u003dorigin/stable/yoga"},{"line_number":36,"context_line":"  export DIB_REPOREF_requirements\u003dorigin/stable/yoga"},{"line_number":37,"context_line":"  ironic-python-agent-builder -o my-ipa --extra-args\u003d--no-tmpfs --release 8-stream centos"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"4113997a_3f99808a","line":35,"range":{"start_line":35,"start_character":55,"end_line":35,"end_character":59},"in_reply_to":"48aceca6_5b2be3b9","updated":"2023-03-06 09:50:46.000000000","message":"Done","commit_id":"15deb819f0dc5ee3790ca18a1bfa59368ad0d231"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"9c593ae538d5807717d029ea6053531219f99837","unresolved":true,"context_lines":[{"line_number":32,"context_line":"  source ./venv/bin/activate"},{"line_number":33,"context_line":"  pip install ironic-python-agent-builder"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  export DIB_REPOREF_ironic_python_agent\u003dorigin/stable/yoga"},{"line_number":36,"context_line":"  export DIB_REPOREF_requirements\u003dorigin/stable/yoga"},{"line_number":37,"context_line":"  ironic-python-agent-builder -o my-ipa --extra-args\u003d--no-tmpfs --release 8-stream centos"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"48aceca6_5b2be3b9","line":35,"range":{"start_line":35,"start_character":55,"end_line":35,"end_character":59},"in_reply_to":"af9c916d_d75b4bb1","updated":"2023-02-23 09:51:02.000000000","message":"codename is 2023.1, but maybe we should set just origin/master then?","commit_id":"15deb819f0dc5ee3790ca18a1bfa59368ad0d231"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"f7f9d7c91063a9bd269e2f66001e18c510034653","unresolved":true,"context_lines":[{"line_number":33,"context_line":"  pip install ironic-python-agent-builder"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  export DIB_REPOREF_ironic_python_agent\u003dorigin/stable/yoga"},{"line_number":36,"context_line":"  export DIB_REPOREF_requirements\u003dorigin/stable/yoga"},{"line_number":37,"context_line":"  ironic-python-agent-builder -o my-ipa --extra-args\u003d--no-tmpfs --release 8-stream centos"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Configuring Ironic for multiple architectures"}],"source_content_type":"text/x-rst","patch_set":11,"id":"8a92015c_8d1b8741","line":36,"range":{"start_line":36,"start_character":48,"end_line":36,"end_character":52},"updated":"2023-01-18 14:36:37.000000000","message":"same","commit_id":"15deb819f0dc5ee3790ca18a1bfa59368ad0d231"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"b272a07c047fbfb979daff905c5bb86595d353e5","unresolved":false,"context_lines":[{"line_number":33,"context_line":"  pip install ironic-python-agent-builder"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  export DIB_REPOREF_ironic_python_agent\u003dorigin/stable/yoga"},{"line_number":36,"context_line":"  export DIB_REPOREF_requirements\u003dorigin/stable/yoga"},{"line_number":37,"context_line":"  ironic-python-agent-builder -o my-ipa --extra-args\u003d--no-tmpfs --release 8-stream centos"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Configuring Ironic for multiple architectures"}],"source_content_type":"text/x-rst","patch_set":11,"id":"eff76b0e_91fa491f","line":36,"range":{"start_line":36,"start_character":48,"end_line":36,"end_character":52},"in_reply_to":"8a92015c_8d1b8741","updated":"2023-03-06 09:50:46.000000000","message":"Done","commit_id":"15deb819f0dc5ee3790ca18a1bfa59368ad0d231"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"f7f9d7c91063a9bd269e2f66001e18c510034653","unresolved":true,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  export DIB_REPOREF_ironic_python_agent\u003dorigin/stable/yoga"},{"line_number":36,"context_line":"  export DIB_REPOREF_requirements\u003dorigin/stable/yoga"},{"line_number":37,"context_line":"  ironic-python-agent-builder -o my-ipa --extra-args\u003d--no-tmpfs --release 8-stream centos"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Configuring Ironic for multiple architectures"},{"line_number":40,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":11,"id":"11e3bd3e_a057f431","line":37,"range":{"start_line":37,"start_character":74,"end_line":37,"end_character":75},"updated":"2023-01-18 14:36:37.000000000","message":"given this is master and will become AA release this should probably be 9-stream","commit_id":"15deb819f0dc5ee3790ca18a1bfa59368ad0d231"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"b272a07c047fbfb979daff905c5bb86595d353e5","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  export DIB_REPOREF_ironic_python_agent\u003dorigin/stable/yoga"},{"line_number":36,"context_line":"  export DIB_REPOREF_requirements\u003dorigin/stable/yoga"},{"line_number":37,"context_line":"  ironic-python-agent-builder -o my-ipa --extra-args\u003d--no-tmpfs --release 8-stream centos"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Configuring Ironic for multiple architectures"},{"line_number":40,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":11,"id":"be1aa95d_b6cf2d26","line":37,"range":{"start_line":37,"start_character":74,"end_line":37,"end_character":75},"in_reply_to":"11e3bd3e_a057f431","updated":"2023-03-06 09:50:46.000000000","message":"Done","commit_id":"15deb819f0dc5ee3790ca18a1bfa59368ad0d231"},{"author":{"_account_id":33786,"name":"HanGuangyu","email":"hanguangyu2@gmail.com","username":"hanguangyu"},"change_message_id":"1172235c3ba15d67792129d913b5ba357ada787f","unresolved":true,"context_lines":[{"line_number":76,"context_line":"When enrolling an aarch64 node the ``boot_mode`` must be uefi even"},{"line_number":77,"context_line":"if existing Ironic nodes use legacy bios boot."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"An example of the node capabilites including uefi boot would be:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":".. code-block:: bash"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"f90a3aef_c5902f21","line":79,"range":{"start_line":79,"start_character":23,"end_line":79,"end_character":34},"updated":"2023-02-13 10:03:09.000000000","message":"capabilit\"i\"es\n\nlack a \"i\"","commit_id":"15deb819f0dc5ee3790ca18a1bfa59368ad0d231"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"03dfa63085799c2e3e76dc0de066b3d6ddfcae28","unresolved":false,"context_lines":[{"line_number":76,"context_line":"When enrolling an aarch64 node the ``boot_mode`` must be uefi even"},{"line_number":77,"context_line":"if existing Ironic nodes use legacy bios boot."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"An example of the node capabilites including uefi boot would be:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":".. code-block:: bash"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"b6f5e186_7f217f23","line":79,"range":{"start_line":79,"start_character":23,"end_line":79,"end_character":34},"in_reply_to":"f90a3aef_c5902f21","updated":"2023-02-21 16:12:21.000000000","message":"Done","commit_id":"15deb819f0dc5ee3790ca18a1bfa59368ad0d231"},{"author":{"_account_id":33633,"name":"Jonathan Heathcote","email":"jonathan.heathcote@bbc.co.uk","username":"mossblaser"},"change_message_id":"65bcdb8f1c9a132b870635ff30a3524043d44338","unresolved":true,"context_lines":[{"line_number":95,"context_line":".. code-block:: bash"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  sudo apt update"},{"line_number":98,"context_line":"  sudo apt install python3-virtualenv qemu-utils"},{"line_number":99,"context_line":"  virtualenv venv"},{"line_number":100,"context_line":"  source ./venv/bin/activate"},{"line_number":101,"context_line":"  pip install diskimage-builder"}],"source_content_type":"text/x-rst","patch_set":12,"id":"701f80e8_3218268d","line":98,"updated":"2023-03-03 15:28:33.000000000","message":"For building rocky images you also need to add podman and uidmap. (Though for whatever reason, the latter only appears to be required on ARM systems).","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"16e3826e81b77ef5b9808721b286088b12b8f5ef","unresolved":false,"context_lines":[{"line_number":95,"context_line":".. code-block:: bash"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  sudo apt update"},{"line_number":98,"context_line":"  sudo apt install python3-virtualenv qemu-utils"},{"line_number":99,"context_line":"  virtualenv venv"},{"line_number":100,"context_line":"  source ./venv/bin/activate"},{"line_number":101,"context_line":"  pip install diskimage-builder"}],"source_content_type":"text/x-rst","patch_set":12,"id":"30751f32_b301d712","line":98,"in_reply_to":"400d50f0_30f1bb1f","updated":"2023-03-08 18:13:58.000000000","message":"Done","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":33633,"name":"Jonathan Heathcote","email":"jonathan.heathcote@bbc.co.uk","username":"mossblaser"},"change_message_id":"4e3ba3769b3dbb59caa036e166f90bc22ae43ea4","unresolved":true,"context_lines":[{"line_number":95,"context_line":".. code-block:: bash"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  sudo apt update"},{"line_number":98,"context_line":"  sudo apt install python3-virtualenv qemu-utils"},{"line_number":99,"context_line":"  virtualenv venv"},{"line_number":100,"context_line":"  source ./venv/bin/activate"},{"line_number":101,"context_line":"  pip install diskimage-builder"}],"source_content_type":"text/x-rst","patch_set":12,"id":"400d50f0_30f1bb1f","line":98,"in_reply_to":"701f80e8_3218268d","updated":"2023-03-08 13:18:14.000000000","message":"...to clarify, the podman and uidmap packages are required on Ubuntu if you wish to build a Rocky image from Ubuntu. (This is, I understand, intended to be supported by diskimage-builder which normally runs under a Debian environment in Zuul).","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":33633,"name":"Jonathan Heathcote","email":"jonathan.heathcote@bbc.co.uk","username":"mossblaser"},"change_message_id":"65bcdb8f1c9a132b870635ff30a3524043d44338","unresolved":true,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  sudo apt update"},{"line_number":98,"context_line":"  sudo apt install python3-virtualenv qemu-utils"},{"line_number":99,"context_line":"  virtualenv venv"},{"line_number":100,"context_line":"  source ./venv/bin/activate"},{"line_number":101,"context_line":"  pip install diskimage-builder"},{"line_number":102,"context_line":"  disk-image-create ubuntu vm block-device-efi dhcp-all-interfaces -o my-ubuntu-image"}],"source_content_type":"text/x-rst","patch_set":12,"id":"56eaac26_ff0287d5","line":99,"updated":"2023-03-03 15:28:33.000000000","message":"Nitpick: It may be more idiomatic to replace use of virtualenv with the \"official\" venv module (which also requires `python3-virtualenv` to be swapped for `python3-venv` and this line to change to:\n\n```\npython -m venv venv\n```","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"2470d9110dacf92692e0d6674dc6965170152495","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  sudo apt update"},{"line_number":98,"context_line":"  sudo apt install python3-virtualenv qemu-utils"},{"line_number":99,"context_line":"  virtualenv venv"},{"line_number":100,"context_line":"  source ./venv/bin/activate"},{"line_number":101,"context_line":"  pip install diskimage-builder"},{"line_number":102,"context_line":"  disk-image-create ubuntu vm block-device-efi dhcp-all-interfaces -o my-ubuntu-image"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7be78e8c_07fd0551","line":99,"in_reply_to":"56eaac26_ff0287d5","updated":"2023-03-06 09:49:26.000000000","message":"Done","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":33633,"name":"Jonathan Heathcote","email":"jonathan.heathcote@bbc.co.uk","username":"mossblaser"},"change_message_id":"65bcdb8f1c9a132b870635ff30a3524043d44338","unresolved":true,"context_lines":[{"line_number":99,"context_line":"  virtualenv venv"},{"line_number":100,"context_line":"  source ./venv/bin/activate"},{"line_number":101,"context_line":"  pip install diskimage-builder"},{"line_number":102,"context_line":"  disk-image-create ubuntu vm block-device-efi dhcp-all-interfaces -o my-ubuntu-image"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Use a similar approach on a Rocky Linux aarch64 system to build"},{"line_number":105,"context_line":"a whole-disk user image of the latest version of Rocky Linux:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"34386bb9_9dcccfe6","line":102,"updated":"2023-03-03 15:28:33.000000000","message":"A more complete incantation for building Ubuntu images looks as follows:\n```\nDIB_RELEASE\u003djammy DIB_CLOUD_INIT_DATASOURCES\u003dEc2 disk-image-create -a arm64 ubuntu vm block-device-efi cloud-init-datasources -o baremetal-ubuntu-22.04-efi-arm64.qcow2\n```\n\nNotably:\n\n* The `dhcp-all-interfaces` element is not necessary since cloud-init will automatically apply its own network configuration during boot.\n* The `DIB_RELEASE\u003d\u003cname\u003e`  environment variable tells the \u0027ubuntu\u0027 element which version of Ubuntu to create an image for. This defaults to focal if left unspecified.\n* The `DIB_CLOUD_INIT_DATASOURCES\u003dEc2` environment variable is used by the \u0027cloud-init-datasources\u0027 element to force cloud-init to use its Ec2 datasource. The native OpenStack datasource can\u0027t be used because it doesn\u0027t have [working support for bare metal instances until version 23.1](https://github.com/canonical/cloud-init/commit/02202954c65a7a1cdb9b28703bd0af01edd0e091#diff-8e27dfc14b3ffceee1e29d3cf58dc25309c0ac070879febd47c578de04ea2dddR1265) (which isn\u0027t available in distributions at the time of writing). Since the OpenStack metadata service also provides an EC2 compatible API, the Ec2 datasource is a reasonable workaround. (NB: This is actually the default behaviour for Ubuntu images, but for entirely unrelated reasons hence it being worth making explicit here.)","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"2470d9110dacf92692e0d6674dc6965170152495","unresolved":false,"context_lines":[{"line_number":99,"context_line":"  virtualenv venv"},{"line_number":100,"context_line":"  source ./venv/bin/activate"},{"line_number":101,"context_line":"  pip install diskimage-builder"},{"line_number":102,"context_line":"  disk-image-create ubuntu vm block-device-efi dhcp-all-interfaces -o my-ubuntu-image"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Use a similar approach on a Rocky Linux aarch64 system to build"},{"line_number":105,"context_line":"a whole-disk user image of the latest version of Rocky Linux:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"4eb70309_f16076fc","line":102,"in_reply_to":"34386bb9_9dcccfe6","updated":"2023-03-06 09:49:26.000000000","message":"Done","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":33633,"name":"Jonathan Heathcote","email":"jonathan.heathcote@bbc.co.uk","username":"mossblaser"},"change_message_id":"4e3ba3769b3dbb59caa036e166f90bc22ae43ea4","unresolved":true,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":".. code-block:: bash"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  disk-image-create rocky-container vm block-device-efi dhcp-all-interfaces openssh-server cloud-init-growpart -o my-rocky-image"}],"source_content_type":"text/x-rst","patch_set":12,"id":"37b73fbb_5364a421","line":109,"updated":"2023-03-08 13:18:14.000000000","message":"My apologies, I was mistaken about cloud-init-growpart and DIB_CLOUD_INIT_GROWPART_DEVICES -- these are necessary for Rocky -- at least on some versions/architectures. The following should do the job.\n\n```\nDIB_RELEASE\u003d9 DIB_CLOUD_INIT_DATASOURCES\u003dEc2 DIB_CLOUD_INIT_GROWPART_DEVICES\u003d\u0027[\"/\"]\u0027 disk-image-create -a arm64 rocky-container vm block-device-efi cloud-init openssh-server cloud-init-datasources cloud-init-growpart -o baremetal-rocky-9-efi-arm64.qcow2\n```\n\n(NB The DIB_CLOUD_INIT_GROWPART_DEVICES variable tells cloud-init-growpart to configure cloud-init to grow the root partition on first boot.)","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":33633,"name":"Jonathan Heathcote","email":"jonathan.heathcote@bbc.co.uk","username":"mossblaser"},"change_message_id":"65bcdb8f1c9a132b870635ff30a3524043d44338","unresolved":true,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":".. code-block:: bash"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  disk-image-create rocky-container vm block-device-efi dhcp-all-interfaces openssh-server cloud-init-growpart -o my-rocky-image"}],"source_content_type":"text/x-rst","patch_set":12,"id":"fe883c95_300c148d","line":109,"updated":"2023-03-03 15:28:33.000000000","message":"So, even with the fix above, this command still does not produce usable images. A working incantation is:\n\n```\n$ DIB_RELEASE\u003d9 DIB_CLOUD_INIT_DATASOURCES\u003dEc2 disk-image-create -a arm64 rocky-container vm block-device-efi cloud-init openssh-server cloud-init-datasources -o baremetal-rocky-9-efi-arm64.qcow2\n```\n\nWhere:\n\n* Again, `dhcp-all-interfaces` is not needed because cloud-init takes care of networking.\n* `cloud-init-growpart` is not required since the default behavior is to grow expand the root partition anyway.\n* The DIB_RELEASE\u003d\u003cnumber\u003e   environment variable tells the \u0027rocky-container\u0027 element which version of Rocky to create an image for.\n* The `cloud-init` and `openssh-server` elements are essential since the Rocky container image (unlike the cloud images used for other distributions) does not include these packages. (As an aside: the diskimage-builder documentation erroneously claims that the `cloud-init` element only works on Gentoo, but this is not the case).\n* As with Ubuntu, setting `DIB_CLOUD_INIT_DATASOURCES\u003dEc2` and using the `cloud-init-datasources` element is necessary since the OpenStack cloud-init datasource doesn\u0027t work. Unlike the Ubuntu case, using the Ec2 datasource is not the default and so adding these options is essential to obtain a working image.","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":33633,"name":"Jonathan Heathcote","email":"jonathan.heathcote@bbc.co.uk","username":"mossblaser"},"change_message_id":"cdf451ab8ec61d095113b5b840fbfb233cf62d90","unresolved":true,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":".. code-block:: bash"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  disk-image-create rocky-container vm block-device-efi dhcp-all-interfaces openssh-server cloud-init-growpart -o my-rocky-image"}],"source_content_type":"text/x-rst","patch_set":12,"id":"6c7d5cba_ea1b120e","line":109,"updated":"2023-03-01 15:54:21.000000000","message":"The cloud-init-growpart element requires the DIB_CLOUD_INIT_GROWPART_DEVICES environment to be set to a YAML string enumerating device names whose partitions should be grown, e.g. `[\"/dev/sda1\"]`.","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"16e3826e81b77ef5b9808721b286088b12b8f5ef","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":".. code-block:: bash"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  disk-image-create rocky-container vm block-device-efi dhcp-all-interfaces openssh-server cloud-init-growpart -o my-rocky-image"}],"source_content_type":"text/x-rst","patch_set":12,"id":"28da7be3_061bd71a","line":109,"in_reply_to":"37b73fbb_5364a421","updated":"2023-03-08 18:13:58.000000000","message":"Done","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"2470d9110dacf92692e0d6674dc6965170152495","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":".. code-block:: bash"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  disk-image-create rocky-container vm block-device-efi dhcp-all-interfaces openssh-server cloud-init-growpart -o my-rocky-image"}],"source_content_type":"text/x-rst","patch_set":12,"id":"fcd6e549_b0a46b59","line":109,"in_reply_to":"6c7d5cba_ea1b120e","updated":"2023-03-06 09:49:26.000000000","message":"Renoved this as suggested later","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"2470d9110dacf92692e0d6674dc6965170152495","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":".. code-block:: bash"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  disk-image-create rocky-container vm block-device-efi dhcp-all-interfaces openssh-server cloud-init-growpart -o my-rocky-image"}],"source_content_type":"text/x-rst","patch_set":12,"id":"73a154aa_4619d647","line":109,"in_reply_to":"fe883c95_300c148d","updated":"2023-03-06 09:49:26.000000000","message":"Done","commit_id":"89fab349ec1e3a5ceea77827c42745b0f5d61c05"},{"author":{"_account_id":33633,"name":"Jonathan Heathcote","email":"jonathan.heathcote@bbc.co.uk","username":"mossblaser"},"change_message_id":"4e3ba3769b3dbb59caa036e166f90bc22ae43ea4","unresolved":true,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":".. code-block:: bash"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"  DIB_RELEASE\u003d9 DIB_CLOUD_INIT_DATASOURCES\u003dEc2 disk-image-create -a arm64 rocky-container vm block-device-efi cloud-init openssh-server cloud-init-datasources -o baremetal-rocky-9-efi-arm64.qcow2"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"- The DIB_RELEASE\u003d\u003cnumber\u003e environment variable tells the \u0027rocky-container\u0027"},{"line_number":130,"context_line":"  element which version of Rocky to create an image for."}],"source_content_type":"text/x-rst","patch_set":13,"id":"0a643504_16dace0c","line":127,"updated":"2023-03-08 13:18:14.000000000","message":"My apologies, I was mistaken about cloud-init-growpart and DIB_CLOUD_INIT_GROWPART_DEVICES -- these are necessary for Rocky -- at least on some versions/architectures. The following should do the job.\n\n```\nDIB_RELEASE\u003d9 DIB_CLOUD_INIT_DATASOURCES\u003dEc2 DIB_CLOUD_INIT_GROWPART_DEVICES\u003d\u0027[\"/\"]\u0027 disk-image-create -a arm64 rocky-container vm block-device-efi cloud-init openssh-server cloud-init-datasources cloud-init-growpart -o baremetal-rocky-9-efi-arm64.qcow2\n```\n\n(NB The DIB_CLOUD_INIT_GROWPART_DEVICES variable tells cloud-init-growpart to configure cloud-init to grow the root partition on first boot.)","commit_id":"fe8523105de7fd082c1d87084db72acb65e44511"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"16e3826e81b77ef5b9808721b286088b12b8f5ef","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":".. code-block:: bash"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"  DIB_RELEASE\u003d9 DIB_CLOUD_INIT_DATASOURCES\u003dEc2 disk-image-create -a arm64 rocky-container vm block-device-efi cloud-init openssh-server cloud-init-datasources -o baremetal-rocky-9-efi-arm64.qcow2"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"- The DIB_RELEASE\u003d\u003cnumber\u003e environment variable tells the \u0027rocky-container\u0027"},{"line_number":130,"context_line":"  element which version of Rocky to create an image for."}],"source_content_type":"text/x-rst","patch_set":13,"id":"7815f242_02ea11be","line":127,"in_reply_to":"0a643504_16dace0c","updated":"2023-03-08 18:13:58.000000000","message":"Done","commit_id":"fe8523105de7fd082c1d87084db72acb65e44511"}],"doc/source/configure-lxc-example.rst":[{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"df09eba5da9a188c7c57fb286ee7156fd05568ee","unresolved":true,"context_lines":[{"line_number":44,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":45,"context_line":"Address               Purpose"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":"10.88.104.0 to .10\t  Reserve for potential physical routers / SVI"},{"line_number":48,"context_line":"10.88.104.11 to .29\t  Control plane Ironic container interfaces"},{"line_number":49,"context_line":"10.88.104.64 to .95\t  Neutron DHCP allocation pool in Ironic_Network"},{"line_number":50,"context_line":"10.88.104.96 to .127  Ironic Inspector DHCP pool range"},{"line_number":51,"context_line":"10.88.104.128 to .254 Static IPs manually assigned to IPMI/iDRAC"},{"line_number":52,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"afb8d8cc_9b5005f0","line":49,"range":{"start_line":47,"start_character":0,"end_line":49,"end_character":68},"updated":"2022-12-15 19:15:18.000000000","message":"whitespace tab/space error","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"f7f9d7c91063a9bd269e2f66001e18c510034653","unresolved":false,"context_lines":[{"line_number":44,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":45,"context_line":"Address               Purpose"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":"10.88.104.0 to .10\t  Reserve for potential physical routers / SVI"},{"line_number":48,"context_line":"10.88.104.11 to .29\t  Control plane Ironic container interfaces"},{"line_number":49,"context_line":"10.88.104.64 to .95\t  Neutron DHCP allocation pool in Ironic_Network"},{"line_number":50,"context_line":"10.88.104.96 to .127  Ironic Inspector DHCP pool range"},{"line_number":51,"context_line":"10.88.104.128 to .254 Static IPs manually assigned to IPMI/iDRAC"},{"line_number":52,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"821a163f_e826d279","line":49,"range":{"start_line":47,"start_character":0,"end_line":49,"end_character":68},"in_reply_to":"afb8d8cc_9b5005f0","updated":"2023-01-18 14:36:37.000000000","message":"Done","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"df09eba5da9a188c7c57fb286ee7156fd05568ee","unresolved":true,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"In this deployment the ``bmaas`` network combines several functions"},{"line_number":55,"context_line":"for simplicity. It would be possible to use separate networks for"},{"line_number":56,"context_line":"inspection, cleaning and provisioing but that is beyond the scope"},{"line_number":57,"context_line":"of this example."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The subnet is divided into several address ranges, a reservation for"}],"source_content_type":"text/x-rst","patch_set":8,"id":"91e91293_0ac878ff","line":56,"range":{"start_line":56,"start_character":25,"end_line":56,"end_character":36},"updated":"2022-12-15 19:15:18.000000000","message":"spelling","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"f7f9d7c91063a9bd269e2f66001e18c510034653","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"In this deployment the ``bmaas`` network combines several functions"},{"line_number":55,"context_line":"for simplicity. It would be possible to use separate networks for"},{"line_number":56,"context_line":"inspection, cleaning and provisioing but that is beyond the scope"},{"line_number":57,"context_line":"of this example."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The subnet is divided into several address ranges, a reservation for"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7746f362_7ca99a1d","line":56,"range":{"start_line":56,"start_character":25,"end_line":56,"end_character":36},"in_reply_to":"91e91293_0ac878ff","updated":"2023-01-18 14:36:37.000000000","message":"Done","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"df09eba5da9a188c7c57fb286ee7156fd05568ee","unresolved":true,"context_lines":[{"line_number":61,"context_line":"subnet is to be made routable in the future. A small number of addresses"},{"line_number":62,"context_line":"are then reserved for the ``bmaas`` network to connect to the Ironic"},{"line_number":63,"context_line":"containers in the control plane, and the remainder of the addresses"},{"line_number":64,"context_line":"are shared between a neutron network for provisioing, a range for"},{"line_number":65,"context_line":"Ironic Inspector to allocate with DHCP and finally a block of"},{"line_number":66,"context_line":"addresses for the IPMI (or other protocol) management ports"},{"line_number":67,"context_line":"of the Ironic nodes."}],"source_content_type":"text/x-rst","patch_set":8,"id":"097cf2f2_9c9f94cf","line":64,"range":{"start_line":64,"start_character":41,"end_line":64,"end_character":52},"updated":"2022-12-15 19:15:18.000000000","message":"spelling","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"f7f9d7c91063a9bd269e2f66001e18c510034653","unresolved":false,"context_lines":[{"line_number":61,"context_line":"subnet is to be made routable in the future. A small number of addresses"},{"line_number":62,"context_line":"are then reserved for the ``bmaas`` network to connect to the Ironic"},{"line_number":63,"context_line":"containers in the control plane, and the remainder of the addresses"},{"line_number":64,"context_line":"are shared between a neutron network for provisioing, a range for"},{"line_number":65,"context_line":"Ironic Inspector to allocate with DHCP and finally a block of"},{"line_number":66,"context_line":"addresses for the IPMI (or other protocol) management ports"},{"line_number":67,"context_line":"of the Ironic nodes."}],"source_content_type":"text/x-rst","patch_set":8,"id":"17f988c3_d83750cd","line":64,"range":{"start_line":64,"start_character":41,"end_line":64,"end_character":52},"in_reply_to":"097cf2f2_9c9f94cf","updated":"2023-01-18 14:36:37.000000000","message":"Done","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"df09eba5da9a188c7c57fb286ee7156fd05568ee","unresolved":true,"context_lines":[{"line_number":168,"context_line":"        range: \"3003:3003\""},{"line_number":169,"context_line":"        group_binds:"},{"line_number":170,"context_line":"          - ironic_api_container"},{"line_number":171,"context_line":"          - ironic_compute_container"},{"line_number":172,"context_line":"          - ironic_inspector_container"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7088f307_6831f9da","line":171,"range":{"start_line":171,"start_character":12,"end_line":171,"end_character":36},"updated":"2022-12-15 19:15:18.000000000","message":"this is probably a mistake - the bmaas network almost certainly does not need to visit the nova-compute instance for ironic.","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"c27b98e1fbfd049500a8c7fb6fb62e18dbf0eb25","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        range: \"3003:3003\""},{"line_number":169,"context_line":"        group_binds:"},{"line_number":170,"context_line":"          - ironic_api_container"},{"line_number":171,"context_line":"          - ironic_compute_container"},{"line_number":172,"context_line":"          - ironic_inspector_container"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"adf93409_73a7e759","line":171,"range":{"start_line":171,"start_character":12,"end_line":171,"end_character":36},"in_reply_to":"7088f307_6831f9da","updated":"2023-01-18 14:37:45.000000000","message":"It\u0027s not a mistake, the console agents run in these containers and have to communicate with the baremetal node OOB mgmt ports.","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"df09eba5da9a188c7c57fb286ee7156fd05568ee","unresolved":true,"context_lines":[{"line_number":316,"context_line":""},{"line_number":317,"context_line":"  username neutron password 5 \u003cENCRYPTED-PASSWORD-HERE\u003e role neutron-role"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"Aloow SSH to the switch from the expected"},{"line_number":320,"context_line":"IP addresses, for example a pair out of band management hosts"},{"line_number":321,"context_line":"192.168.0.100/31 and the OpenStack ``mgmt`` network 10.80.240.0/24."},{"line_number":322,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"6ef0f5ff_ed30b557","line":319,"range":{"start_line":319,"start_character":0,"end_line":319,"end_character":5},"updated":"2022-12-15 19:15:18.000000000","message":"spelling","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"f7f9d7c91063a9bd269e2f66001e18c510034653","unresolved":false,"context_lines":[{"line_number":316,"context_line":""},{"line_number":317,"context_line":"  username neutron password 5 \u003cENCRYPTED-PASSWORD-HERE\u003e role neutron-role"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"Aloow SSH to the switch from the expected"},{"line_number":320,"context_line":"IP addresses, for example a pair out of band management hosts"},{"line_number":321,"context_line":"192.168.0.100/31 and the OpenStack ``mgmt`` network 10.80.240.0/24."},{"line_number":322,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"21115ac6_e2277eb4","line":319,"range":{"start_line":319,"start_character":0,"end_line":319,"end_character":5},"in_reply_to":"6ef0f5ff_ed30b557","updated":"2023-01-18 14:36:37.000000000","message":"Done","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"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":"bdb8512647e8bc2fe2b647905b474890b0f61e89","unresolved":true,"context_lines":[{"line_number":383,"context_line":"  # Configure the neutron networks that Ironc should use"},{"line_number":384,"context_line":"  ironic_neutron_provisioning_network_name: \"Ironic_Network\""},{"line_number":385,"context_line":"  ironic_neutron_cleaning_network_name:     \"Ironic_Network\""},{"line_number":386,"context_line":"  ironic_neutron_inspection_network_name:   \"Ironic_Network\""},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"  # Ensure ironic API (using uwsgi) listens on br-bmaas for agent callbacks"},{"line_number":389,"context_line":"  # as well as the mgmt interface for the loadbalancer"}],"source_content_type":"text/x-rst","patch_set":8,"id":"913a2bc9_7be15bf7","line":386,"updated":"2022-12-16 19:17:16.000000000","message":"Curious if there\u0027s a reason your default config is not splitting out the cleaning network, at a minimum. It\u0027s a security risk, depending on the deployer\u0027s use case and risk tolerance to have untrusted machines being cleaned on the network with anything else.\n\nIn an ideal Ironic configuration; these are three networks (and tenants are never allowed to use the three chosen for here).","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"b272a07c047fbfb979daff905c5bb86595d353e5","unresolved":false,"context_lines":[{"line_number":383,"context_line":"  # Configure the neutron networks that Ironc should use"},{"line_number":384,"context_line":"  ironic_neutron_provisioning_network_name: \"Ironic_Network\""},{"line_number":385,"context_line":"  ironic_neutron_cleaning_network_name:     \"Ironic_Network\""},{"line_number":386,"context_line":"  ironic_neutron_inspection_network_name:   \"Ironic_Network\""},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"  # Ensure ironic API (using uwsgi) listens on br-bmaas for agent callbacks"},{"line_number":389,"context_line":"  # as well as the mgmt interface for the loadbalancer"}],"source_content_type":"text/x-rst","patch_set":8,"id":"d5b4f19c_b31ef847","line":386,"in_reply_to":"913a2bc9_7be15bf7","updated":"2023-03-06 09:50:46.000000000","message":"This is the historical configurtaion in openstack-ansible but nothing stops a deployment using any number of networks. Extra text added to indicate this.","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"df09eba5da9a188c7c57fb286ee7156fd05568ee","unresolved":true,"context_lines":[{"line_number":401,"context_line":"      clean_step_priority_override: \"deploy.erase_devices_express:5\""},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    # Direct IPA to callback directly to deploying ironic container (via BMAAS network)"},{"line_number":404,"context_line":"    # instead of going via HAProxy on osmgmt network. Only applies when bmaas network is isolated."},{"line_number":405,"context_line":"    service_catalog:"},{"line_number":406,"context_line":"      endpoint_override: \"http://{{ container_networks[\u0027bmaas_address\u0027][\u0027address\u0027] }}:6385\""},{"line_number":407,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"8528aea0_cd875bee","line":404,"range":{"start_line":404,"start_character":38,"end_line":404,"end_character":44},"updated":"2022-12-15 19:15:18.000000000","message":"mgmt","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"f7f9d7c91063a9bd269e2f66001e18c510034653","unresolved":false,"context_lines":[{"line_number":401,"context_line":"      clean_step_priority_override: \"deploy.erase_devices_express:5\""},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    # Direct IPA to callback directly to deploying ironic container (via BMAAS network)"},{"line_number":404,"context_line":"    # instead of going via HAProxy on osmgmt network. Only applies when bmaas network is isolated."},{"line_number":405,"context_line":"    service_catalog:"},{"line_number":406,"context_line":"      endpoint_override: \"http://{{ container_networks[\u0027bmaas_address\u0027][\u0027address\u0027] }}:6385\""},{"line_number":407,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"4dc92b45_ca6fcf7f","line":404,"range":{"start_line":404,"start_character":38,"end_line":404,"end_character":44},"in_reply_to":"8528aea0_cd875bee","updated":"2023-01-18 14:36:37.000000000","message":"Done","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"df09eba5da9a188c7c57fb286ee7156fd05568ee","unresolved":true,"context_lines":[{"line_number":412,"context_line":"  ## IRONIC INSPECTOR ##"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"  # Direct Inspector to callback directly to deploying ironic container (via BMAAS network)"},{"line_number":415,"context_line":"  # instead of going via HAProxy on osmgmt network. Only applies when bmaas network is isolated."},{"line_number":416,"context_line":"  ironic_inspector_callback_url: \"{{ ironic_inspector_service_internaluri_proto }}://{{ container_networks[\u0027bmaas_address\u0027][\u0027address\u0027] }}:{{ ironic_inspector_service_port }}/v1/continue\""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"  # Ensure inspector API (using uwsgi) listens on br-bmaas for agent callbacks"}],"source_content_type":"text/x-rst","patch_set":8,"id":"f8807b11_8d1864ee","line":415,"range":{"start_line":415,"start_character":36,"end_line":415,"end_character":42},"updated":"2022-12-15 19:15:18.000000000","message":"mgmt","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"f7f9d7c91063a9bd269e2f66001e18c510034653","unresolved":false,"context_lines":[{"line_number":412,"context_line":"  ## IRONIC INSPECTOR ##"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"  # Direct Inspector to callback directly to deploying ironic container (via BMAAS network)"},{"line_number":415,"context_line":"  # instead of going via HAProxy on osmgmt network. Only applies when bmaas network is isolated."},{"line_number":416,"context_line":"  ironic_inspector_callback_url: \"{{ ironic_inspector_service_internaluri_proto }}://{{ container_networks[\u0027bmaas_address\u0027][\u0027address\u0027] }}:{{ ironic_inspector_service_port }}/v1/continue\""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"  # Ensure inspector API (using uwsgi) listens on br-bmaas for agent callbacks"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ecb39871_458d0f5e","line":415,"range":{"start_line":415,"start_character":36,"end_line":415,"end_character":42},"in_reply_to":"f8807b11_8d1864ee","updated":"2023-01-18 14:36:37.000000000","message":"Done","commit_id":"4f8b89e4d2925cfc37b88a508bedd30337c77109"}]}
