)]}'
{"/PATCHSET_LEVEL":[{"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":"201367f2868216899d994194cd03d58d166ce5c8","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"90e2ca12_74214ef4","updated":"2026-05-11 19:43:35.000000000","message":"We should make sure we cover the Ironic API (RBAC) + Nova API (provisioning) case -- e.g. automated_lessee/node.owner plus use of Nova. The more concerning thing is the 100:1 suggested conductor mapping -- this is massively wrong based on all my operational experience. I\u0027d be interested to hear if this is a typo or really a complete mismatch of our opinions on how far conductors scale.","commit_id":"b7381f00a41df44293ef8d8e44f3a1bcf1ee574c"},{"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":"f42697542aa81b2eae0ad85debc9154a5a52ce27","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"af42e1cd_f0ecd43d","updated":"2026-07-07 17:04:43.000000000","message":"will re-add ironic-week-prio when outstanding comments are addressed","commit_id":"b7381f00a41df44293ef8d8e44f3a1bcf1ee574c"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"9e7957561c99f0661b5fc9b19d02a272deaecc51","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d67c6655_0d610c09","in_reply_to":"90e2ca12_74214ef4","updated":"2026-08-11 15:15:00.000000000","message":"Done","commit_id":"b7381f00a41df44293ef8d8e44f3a1bcf1ee574c"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"9e7957561c99f0661b5fc9b19d02a272deaecc51","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9d2a6f65_24a0664b","in_reply_to":"af42e1cd_f0ecd43d","updated":"2026-08-11 15:15:00.000000000","message":"Done","commit_id":"b7381f00a41df44293ef8d8e44f3a1bcf1ee574c"},{"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":"3d0f65d9dcdcc7be15f0245b65d1b5ebdcf72e16","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"49d64c3d_2c5308b1","updated":"2026-08-11 15:33:19.000000000","message":"This overlaps a lot with https://review.opendev.org/c/openstack/ironic/+/997998 -- please coordinate with Dmitry and ensure your changes are similar.","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"59a52990040e14b26b1fcbc0928ecb4cf61e607a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"354d9463_482d4e8e","in_reply_to":"49d64c3d_2c5308b1","updated":"2026-08-11 16:07:54.000000000","message":"Yes. I started this in May and have been talking about this fairly regularly albeit no edits from me. But I have been looking for input from folks.","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b5341cee3648112315838e087bc28b1046f9cc27","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c12832c6_e43dabe4","updated":"2026-08-18 21:31:45.000000000","message":"I\u0027m not really a fan of calling up baremetal_admin and baremetal_observer, but aside from that LGTM.","commit_id":"759d12882a5e005f97ce3ac69d09499bf12668a6"}],"doc/source/install/deployment-scenarios.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":"201367f2868216899d994194cd03d58d166ce5c8","unresolved":true,"context_lines":[{"line_number":35,"context_line":"   * - :ref:`deploy-scenarios-full-openstack`"},{"line_number":36,"context_line":"     - 1 node to multiple datacenters"},{"line_number":37,"context_line":"     - Yes (native)"},{"line_number":38,"context_line":"     - Nova Compute API"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. _deploy-scenarios-standalone:"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"01800a48_64f7a5f6","line":38,"updated":"2026-05-11 19:43:35.000000000","message":"This should be broken down into two sections, I suspect:\n\nNova (hidden Ironic API)\n- doesn\u0027t use automatic_lessee\n- treats Ironic as a \"system\" API rather than a user api\n\nNova (public Ironic API)\n- uses automatic_lessee, maybe node.owner to permit some access to ironic API\n- allows self-service administration AND multitenancy","commit_id":"b7381f00a41df44293ef8d8e44f3a1bcf1ee574c"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"98dcf4f7f49d99574aaeec7e13711321452139a6","unresolved":false,"context_lines":[{"line_number":35,"context_line":"   * - :ref:`deploy-scenarios-full-openstack`"},{"line_number":36,"context_line":"     - 1 node to multiple datacenters"},{"line_number":37,"context_line":"     - Yes (native)"},{"line_number":38,"context_line":"     - Nova Compute API"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. _deploy-scenarios-standalone:"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"420ca381_9d27386e","line":38,"in_reply_to":"01800a48_64f7a5f6","updated":"2026-08-11 15:14:43.000000000","message":"Done","commit_id":"b7381f00a41df44293ef8d8e44f3a1bcf1ee574c"},{"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":"201367f2868216899d994194cd03d58d166ce5c8","unresolved":true,"context_lines":[{"line_number":59,"context_line":"that without pulling in the rest of OpenStack."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"The :ref:`recommended target \u003crefarch-conductor-scaling\u003e` is up to 100 bare"},{"line_number":62,"context_line":"metal nodes per conductor for reliability and performance, which makes"},{"line_number":63,"context_line":"standalone a comfortable fit for smaller deployments. Beyond that scale, or"},{"line_number":64,"context_line":"when multi-tenancy becomes a requirement, the OpenStack scenarios below are"},{"line_number":65,"context_line":"the right path."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9088a527_63644f7e","line":62,"updated":"2026-05-11 19:43:35.000000000","message":"This has to be wrong. We scale WAY more than 100 nodes per conductor? I am -1 to documenting to run 1:100 ratio of conductors. My downstream operates more at a 1:400 ratio and we perform more rebuilds/reprovisions than the average cluster. This seems off by maybe an order of magnitude -- 1000:1 makes more sense to me than 100:1.","commit_id":"b7381f00a41df44293ef8d8e44f3a1bcf1ee574c"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"98dcf4f7f49d99574aaeec7e13711321452139a6","unresolved":false,"context_lines":[{"line_number":59,"context_line":"that without pulling in the rest of OpenStack."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"The :ref:`recommended target \u003crefarch-conductor-scaling\u003e` is up to 100 bare"},{"line_number":62,"context_line":"metal nodes per conductor for reliability and performance, which makes"},{"line_number":63,"context_line":"standalone a comfortable fit for smaller deployments. Beyond that scale, or"},{"line_number":64,"context_line":"when multi-tenancy becomes a requirement, the OpenStack scenarios below are"},{"line_number":65,"context_line":"the right path."}],"source_content_type":"text/x-rst","patch_set":1,"id":"906e78be_faaa5158","line":62,"in_reply_to":"9088a527_63644f7e","updated":"2026-08-11 15:14:43.000000000","message":"Wording has been removed and I link to the scaling doc.","commit_id":"b7381f00a41df44293ef8d8e44f3a1bcf1ee574c"},{"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":"201367f2868216899d994194cd03d58d166ce5c8","unresolved":true,"context_lines":[{"line_number":109,"context_line":"This configuration scales from a handful of nodes up to a large deployment."},{"line_number":110,"context_line":"It can be installed with any standard OpenStack deployment tool —"},{"line_number":111,"context_line":"Kolla-Ansible, OpenStack-Ansible, and OpenStack Helm all work here. See"},{"line_number":112,"context_line":":doc:`configure-integration` for the OpenStack service integration setup."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"If you need users to provision bare metal without knowing or caring which"},{"line_number":115,"context_line":"specific node they get, read on."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9e71affc_d7382392","line":112,"updated":"2026-05-11 19:43:35.000000000","message":"We should mention you can mix-and-match: have one project exposed via nova, others managed directly via Ironic. I know we\u0027re trying to simplify here but it might be worth having a \"mix and match\" section that covers the weird cases like this one. I think there\u0027s a lot of things where we have this mix (e.g. even mixing up network models: you can have some nodes flat; some using neutron or ironic-networking)","commit_id":"b7381f00a41df44293ef8d8e44f3a1bcf1ee574c"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"98dcf4f7f49d99574aaeec7e13711321452139a6","unresolved":false,"context_lines":[{"line_number":109,"context_line":"This configuration scales from a handful of nodes up to a large deployment."},{"line_number":110,"context_line":"It can be installed with any standard OpenStack deployment tool —"},{"line_number":111,"context_line":"Kolla-Ansible, OpenStack-Ansible, and OpenStack Helm all work here. See"},{"line_number":112,"context_line":":doc:`configure-integration` for the OpenStack service integration setup."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"If you need users to provision bare metal without knowing or caring which"},{"line_number":115,"context_line":"specific node they get, read on."}],"source_content_type":"text/x-rst","patch_set":1,"id":"2691da5d_f08fa59d","line":112,"in_reply_to":"9e71affc_d7382392","updated":"2026-08-11 15:14:43.000000000","message":"Done","commit_id":"b7381f00a41df44293ef8d8e44f3a1bcf1ee574c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1d1c1a116fb73a0c302cae0b48fb7c991ba29ca4","unresolved":true,"context_lines":[{"line_number":25,"context_line":"     - Multi-tenancy"},{"line_number":26,"context_line":"     - User-facing API"},{"line_number":27,"context_line":"   * - :ref:`deploy-scenarios-standalone`"},{"line_number":28,"context_line":"     - 1 to hundreds of nodes"},{"line_number":29,"context_line":"     - No"},{"line_number":30,"context_line":"     - Ironic API"},{"line_number":31,"context_line":"   * - :ref:`deploy-scenarios-openstack-no-nova`"}],"source_content_type":"text/x-rst","patch_set":2,"id":"a2fae811_54fc81fe","line":28,"updated":"2026-08-11 15:18:13.000000000","message":"We achieve 1000+ with a single conductor, and there is nothing limiting multiple conductors in the standalone case.","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"59a52990040e14b26b1fcbc0928ecb4cf61e607a","unresolved":true,"context_lines":[{"line_number":25,"context_line":"     - Multi-tenancy"},{"line_number":26,"context_line":"     - User-facing API"},{"line_number":27,"context_line":"   * - :ref:`deploy-scenarios-standalone`"},{"line_number":28,"context_line":"     - 1 to hundreds of nodes"},{"line_number":29,"context_line":"     - No"},{"line_number":30,"context_line":"     - Ironic API"},{"line_number":31,"context_line":"   * - :ref:`deploy-scenarios-openstack-no-nova`"}],"source_content_type":"text/x-rst","patch_set":2,"id":"c729c6b0_bfd4cf7e","line":28,"in_reply_to":"a2fae811_54fc81fe","updated":"2026-08-11 16:07:54.000000000","message":"I don\u0027t think hundreds of nodes contradicts 1000+ nor am I saying you can only have one conductor in this case. I\u0027m happy to say one or more conductors below.","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"12202bd5d4a85c46180c55541431185c4ea2bee9","unresolved":true,"context_lines":[{"line_number":25,"context_line":"     - Multi-tenancy"},{"line_number":26,"context_line":"     - User-facing API"},{"line_number":27,"context_line":"   * - :ref:`deploy-scenarios-standalone`"},{"line_number":28,"context_line":"     - 1 to hundreds of nodes"},{"line_number":29,"context_line":"     - No"},{"line_number":30,"context_line":"     - Ironic API"},{"line_number":31,"context_line":"   * - :ref:`deploy-scenarios-openstack-no-nova`"}],"source_content_type":"text/x-rst","patch_set":2,"id":"2581c8c1_6143c5cb","line":28,"in_reply_to":"c729c6b0_bfd4cf7e","updated":"2026-08-19 16:14:35.000000000","message":"I think \"to\" in \"to hundreds\" can potentially be read as \"up to\" as in \"no more than\". Maybe I\u0027m reading too much into it.","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1d1c1a116fb73a0c302cae0b48fb7c991ba29ca4","unresolved":true,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* :bifrost-doc:`Bifrost \u003c\u003e` — Ansible playbooks that automate deployment"},{"line_number":77,"context_line":"  onto a set of known hardware. If you are already comfortable with Ansible,"},{"line_number":78,"context_line":"  this is the fastest path to a working standalone setup."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* `Metal3`_ — A Kubernetes operator that manages bare metal nodes using"},{"line_number":81,"context_line":"  Ironic. The right choice if your workloads run on Kubernetes and you want"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b9cf1067_e21bbb63","line":78,"updated":"2026-08-11 15:18:13.000000000","message":"Worth mentioning that Bifrost supports Keystone optionally?","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"d20ccbbf2b82fd92bf32becfb8358466c36fdd25","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* :bifrost-doc:`Bifrost \u003c\u003e` — Ansible playbooks that automate deployment"},{"line_number":77,"context_line":"  onto a set of known hardware. If you are already comfortable with Ansible,"},{"line_number":78,"context_line":"  this is the fastest path to a working standalone setup."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* `Metal3`_ — A Kubernetes operator that manages bare metal nodes using"},{"line_number":81,"context_line":"  Ironic. The right choice if your workloads run on Kubernetes and you want"}],"source_content_type":"text/x-rst","patch_set":2,"id":"03655dbf_4275c472","line":78,"in_reply_to":"b9cf1067_e21bbb63","updated":"2026-08-11 16:27:38.000000000","message":"Done","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"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":"3d0f65d9dcdcc7be15f0245b65d1b5ebdcf72e16","unresolved":true,"context_lines":[{"line_number":246,"context_line":"  This can be a system-scoped ``member`` (or ``admin``) role, but it also"},{"line_number":247,"context_line":"  overlaps with the Node Owner role below — a technician responsible for a"},{"line_number":248,"context_line":"  subset of hardware might instead be made the ``owner`` of just those nodes,"},{"line_number":249,"context_line":"  rather than given access across the whole fleet."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"Cloud Operator"},{"line_number":252,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"8ece0377_7d02fece","line":249,"updated":"2026-08-11 15:33:19.000000000","message":"You could mention runbooks here as a way to give less-skilled technicians the ability to execute operational processes without deeply held Ironic knowledge.","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"59a52990040e14b26b1fcbc0928ecb4cf61e607a","unresolved":true,"context_lines":[{"line_number":246,"context_line":"  This can be a system-scoped ``member`` (or ``admin``) role, but it also"},{"line_number":247,"context_line":"  overlaps with the Node Owner role below — a technician responsible for a"},{"line_number":248,"context_line":"  subset of hardware might instead be made the ``owner`` of just those nodes,"},{"line_number":249,"context_line":"  rather than given access across the whole fleet."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"Cloud Operator"},{"line_number":252,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dbf4315e_110a1e5a","line":249,"in_reply_to":"8ece0377_7d02fece","updated":"2026-08-11 16:07:54.000000000","message":"Sure. That\u0027s where Julia and I have been independently going as well.","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"e98e822680da025164804e610cb2a47188e55d38","unresolved":false,"context_lines":[{"line_number":246,"context_line":"  This can be a system-scoped ``member`` (or ``admin``) role, but it also"},{"line_number":247,"context_line":"  overlaps with the Node Owner role below — a technician responsible for a"},{"line_number":248,"context_line":"  subset of hardware might instead be made the ``owner`` of just those nodes,"},{"line_number":249,"context_line":"  rather than given access across the whole fleet."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"Cloud Operator"},{"line_number":252,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f1a2e7d_a96e60be","line":249,"in_reply_to":"dbf4315e_110a1e5a","updated":"2026-08-11 16:26:24.000000000","message":"Done","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"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":"3d0f65d9dcdcc7be15f0245b65d1b5ebdcf72e16","unresolved":true,"context_lines":[{"line_number":248,"context_line":"  subset of hardware might instead be made the ``owner`` of just those nodes,"},{"line_number":249,"context_line":"  rather than given access across the whole fleet."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"Cloud Operator"},{"line_number":252,"context_line":"--------------"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"This person operates the fleet remotely and is *not* in front of the machine."}],"source_content_type":"text/x-rst","patch_set":2,"id":"27aa5206_39880e11","line":251,"updated":"2026-08-11 15:33:19.000000000","message":"It\u0027s not clear to me what this role represents. I don\u0027t think there\u0027s a clear distinction between this and cloud admin / dc tech. I suspect it\u0027s something that only exists at very large companies and is more about company-shape than OpenStack/Ironic usage.","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"59a52990040e14b26b1fcbc0928ecb4cf61e607a","unresolved":true,"context_lines":[{"line_number":248,"context_line":"  subset of hardware might instead be made the ``owner`` of just those nodes,"},{"line_number":249,"context_line":"  rather than given access across the whole fleet."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"Cloud Operator"},{"line_number":252,"context_line":"--------------"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"This person operates the fleet remotely and is *not* in front of the machine."}],"source_content_type":"text/x-rst","patch_set":2,"id":"e5e3afca_f7262851","line":251,"in_reply_to":"27aa5206_39880e11","updated":"2026-08-11 16:07:54.000000000","message":"Not all organizations might have it. Like you said, it\u0027s for large companies. This section is about identifying the types of users that might be interacting with the Ironic API. @juliaashleykreger@gmail.com has been hacking at a mobile friendly dashboard that a DC tech could walk around with calling Ironic APIs. But then someone sitting remotely from the hardware would potentially have a larger dashboard and do different things. We do have a distinction in our policies are RBAC and I\u0027m aiming to write a description of the person that would utilize that RBAC.","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"8b0d24197f5c551b2172afb01c2d8ef4ee84c06d","unresolved":false,"context_lines":[{"line_number":248,"context_line":"  subset of hardware might instead be made the ``owner`` of just those nodes,"},{"line_number":249,"context_line":"  rather than given access across the whole fleet."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"Cloud Operator"},{"line_number":252,"context_line":"--------------"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"This person operates the fleet remotely and is *not* in front of the machine."}],"source_content_type":"text/x-rst","patch_set":2,"id":"b662c326_bc46e864","line":251,"in_reply_to":"a6737d06_b976a0e3","updated":"2026-08-18 19:14:19.000000000","message":"Done","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"e98e822680da025164804e610cb2a47188e55d38","unresolved":true,"context_lines":[{"line_number":248,"context_line":"  subset of hardware might instead be made the ``owner`` of just those nodes,"},{"line_number":249,"context_line":"  rather than given access across the whole fleet."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"Cloud Operator"},{"line_number":252,"context_line":"--------------"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"This person operates the fleet remotely and is *not* in front of the machine."}],"source_content_type":"text/x-rst","patch_set":2,"id":"a6737d06_b976a0e3","line":251,"in_reply_to":"e5e3afca_f7262851","updated":"2026-08-11 16:26:24.000000000","message":"Please let me know if you\u0027re happier with the updated wording.","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"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":"3d0f65d9dcdcc7be15f0245b65d1b5ebdcf72e16","unresolved":true,"context_lines":[{"line_number":269,"context_line":"operator and technician above is meaningful; in smaller ones a single person"},{"line_number":270,"context_line":"often wears all three hats."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"Project Administrator / Node Owner"},{"line_number":273,"context_line":"-----------------------------------"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"This role exists in the OpenStack scenarios only. A node owner has been"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ab45b5fd_4954f1e3","line":272,"updated":"2026-08-11 15:33:19.000000000","message":"-1 specifically for this:\n\nWe should not mix personas and Ironic terms. Not all Node.Owners are project administrators. We should be talking more in the generic; e.g.:\n```\nSelf-Service Project Ownership\n------------------------------\nIn organizations where separate internal groups may manage or onboard their own hardware, a project administrator may be able to add nodes, manage.... [etc] \n```\nAnd use node owner / node lessee as ways to communicate this; rather than as the \"top level\" persona.","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"59a52990040e14b26b1fcbc0928ecb4cf61e607a","unresolved":true,"context_lines":[{"line_number":269,"context_line":"operator and technician above is meaningful; in smaller ones a single person"},{"line_number":270,"context_line":"often wears all three hats."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"Project Administrator / Node Owner"},{"line_number":273,"context_line":"-----------------------------------"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"This role exists in the OpenStack scenarios only. A node owner has been"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ab6e3c36_f64c6d3c","line":272,"in_reply_to":"ab45b5fd_4954f1e3","updated":"2026-08-11 16:07:54.000000000","message":"That\u0027s a better name I\u0027ll update it.","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"e98e822680da025164804e610cb2a47188e55d38","unresolved":false,"context_lines":[{"line_number":269,"context_line":"operator and technician above is meaningful; in smaller ones a single person"},{"line_number":270,"context_line":"often wears all three hats."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"Project Administrator / Node Owner"},{"line_number":273,"context_line":"-----------------------------------"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"This role exists in the OpenStack scenarios only. A node owner has been"}],"source_content_type":"text/x-rst","patch_set":2,"id":"18e388d9_28f3e77c","line":272,"in_reply_to":"ab6e3c36_f64c6d3c","updated":"2026-08-11 16:26:24.000000000","message":"Done","commit_id":"76ac69da6dcfd8265893ded5c9588fef427028fc"},{"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":"937f7e43cf721c82e5c979723fde58353f6f1138","unresolved":true,"context_lines":[{"line_number":282,"context_line":"populated automatically when a project administrator enrolls their own nodes,"},{"line_number":283,"context_line":"and the owning project operates from there. See :doc:`/admin/node-multitenancy`."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"Node Lessee"},{"line_number":286,"context_line":"-----------"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"A lessee has temporary, limited access to specific nodes via the ``lessee``"}],"source_content_type":"text/x-rst","patch_set":4,"id":"2ebd00e8_be221d26","line":285,"updated":"2026-08-11 16:34:26.000000000","message":"This is still using an Ironic term as a \"role\"","commit_id":"cc4b13246f29c89b9f30dda3bfc099d5e2dc2770"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"0b3eae9cece646fd0fbfc522cc72b1f1a23aa3e4","unresolved":false,"context_lines":[{"line_number":282,"context_line":"populated automatically when a project administrator enrolls their own nodes,"},{"line_number":283,"context_line":"and the owning project operates from there. See :doc:`/admin/node-multitenancy`."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"Node Lessee"},{"line_number":286,"context_line":"-----------"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"A lessee has temporary, limited access to specific nodes via the ``lessee``"}],"source_content_type":"text/x-rst","patch_set":4,"id":"4356002f_9d088381","line":285,"in_reply_to":"2ebd00e8_be221d26","updated":"2026-08-11 20:43:37.000000000","message":"Done","commit_id":"cc4b13246f29c89b9f30dda3bfc099d5e2dc2770"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"12202bd5d4a85c46180c55541431185c4ea2bee9","unresolved":true,"context_lines":[{"line_number":83,"context_line":"  Ironic. The right choice if your workloads run on Kubernetes and you want"},{"line_number":84,"context_line":"  bare metal nodes to participate in that model."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Both are single-tenant by nature. When you find yourself wanting to give"},{"line_number":87,"context_line":"different teams different levels of access — or wanting to integrate with a"},{"line_number":88,"context_line":"broader platform — that is the signal to move to the next scenario."},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a0bc8ab_689b35cd","line":86,"updated":"2026-08-19 16:14:35.000000000","message":"Strictly speaking, Metal3 is working on multi-tenancy. But it\u0027s not there, so the statement holds.","commit_id":"759d12882a5e005f97ce3ac69d09499bf12668a6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"12202bd5d4a85c46180c55541431185c4ea2bee9","unresolved":true,"context_lines":[{"line_number":107,"context_line":":doc:`/admin/node-multitenancy` for how to configure this, and"},{"line_number":108,"context_line":":doc:`/admin/secure-rbac` for the full RBAC model."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Glance stores the images you deploy onto nodes. Neutron handles IPAM and,"},{"line_number":111,"context_line":"with the right ML2 plugin — `networking-generic-switch`_ is a common choice"},{"line_number":112,"context_line":"— can automate switch port configuration as part of the provisioning"},{"line_number":113,"context_line":"lifecycle. If your environment uses OVN, see :doc:`/admin/ovn-networking`"}],"source_content_type":"text/x-rst","patch_set":5,"id":"82a0380d_8c5b4380","line":110,"updated":"2026-08-19 16:14:35.000000000","message":"I guess it\u0027s worth mentioning that Glance is not a hard requirement without Nova.","commit_id":"759d12882a5e005f97ce3ac69d09499bf12668a6"}]}
