)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"8eed447aa78d4f8fdfc54f8b88f08a6c56ab5243","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"cffafb29_7cf0c984","updated":"2026-05-18 05:12:05.000000000","message":"It needs to be in proper cycle, teach your AI to think 😎","commit_id":"12863d2b54bb1f4c5cbf2bc06068b899dca1d653"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"d85d5c5be3481b0f61ed0475026f5ec2807bb3ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fc00c454_fe6db0fc","in_reply_to":"cffafb29_7cf0c984","updated":"2026-05-29 05:45:06.000000000","message":"Done","commit_id":"12863d2b54bb1f4c5cbf2bc06068b899dca1d653"},{"author":{"_account_id":3031,"name":"Sam Morrison","email":"sorrison@gmail.com","username":"sorrison"},"change_message_id":"5d6a4935b59b83e45a3b524dea44cc43220fd046","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a09e1988_07ce185f","updated":"2026-06-09 10:41:50.000000000","message":"Thanks for the feedback, think I\u0027ve addressed everything. I\u0027ve also added validation on labels as kublet has some restrictions there (I found out the hard way while testing this code and wondering why kubelet not starting)","commit_id":"685e10bbdddc3e9eac1756fcbd1c975977f17ca9"}],"specs/flamingo/nodegroup-labels-taints.rst":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"8eed447aa78d4f8fdfc54f8b88f08a6c56ab5243","unresolved":true,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Target Milestone for completion:"},{"line_number":132,"context_line":"  flamingo-3"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Work Items"},{"line_number":135,"context_line":"----------"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9efca4bb_f56de2f6","line":133,"updated":"2026-05-18 05:12:05.000000000","message":"Surely not flamingo","commit_id":"12863d2b54bb1f4c5cbf2bc06068b899dca1d653"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"d85d5c5be3481b0f61ed0475026f5ec2807bb3ac","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Target Milestone for completion:"},{"line_number":132,"context_line":"  flamingo-3"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Work Items"},{"line_number":135,"context_line":"----------"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f128ae6_75c01311","line":133,"in_reply_to":"9efca4bb_f56de2f6","updated":"2026-05-29 05:45:06.000000000","message":"Done","commit_id":"12863d2b54bb1f4c5cbf2bc06068b899dca1d653"}],"specs/hibiscus/nodegroup-labels-taints.rst":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"a8c9afa93f9fbef60dd1baf8e2e6cab332564fa5","unresolved":true,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Both are nullable. Existing nodegroups continue to work unchanged."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Scope is limited to **worker** nodegroups. Control plane nodes have their"},{"line_number":57,"context_line":"own kubeadm-managed taint (``node-role.kubernetes.io/control-plane``) and"},{"line_number":58,"context_line":"allowing arbitrary user taints on the control plane risks breaking"},{"line_number":59,"context_line":"cluster bootstrap; that is left to a future spec."}],"source_content_type":"text/x-rst","patch_set":4,"id":"17c69232_c765cd88","line":56,"updated":"2026-06-07 20:21:28.000000000","message":"Will the API will reject node_labels/node_taints on a control-plane nodegroup?","commit_id":"8051db10bc01b43606e9eb51cbe67c458e725aec"},{"author":{"_account_id":3031,"name":"Sam Morrison","email":"sorrison@gmail.com","username":"sorrison"},"change_message_id":"5d6a4935b59b83e45a3b524dea44cc43220fd046","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Both are nullable. Existing nodegroups continue to work unchanged."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Scope is limited to **worker** nodegroups. Control plane nodes have their"},{"line_number":57,"context_line":"own kubeadm-managed taint (``node-role.kubernetes.io/control-plane``) and"},{"line_number":58,"context_line":"allowing arbitrary user taints on the control plane risks breaking"},{"line_number":59,"context_line":"cluster bootstrap; that is left to a future spec."}],"source_content_type":"text/x-rst","patch_set":4,"id":"2bb7513f_0d1fed76","line":56,"in_reply_to":"17c69232_c765cd88","updated":"2026-06-09 10:41:50.000000000","message":"Done","commit_id":"8051db10bc01b43606e9eb51cbe67c458e725aec"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"a8c9afa93f9fbef60dd1baf8e2e6cab332564fa5","unresolved":true,"context_lines":[{"line_number":69,"context_line":"Data flow"},{"line_number":70,"context_line":"---------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"1. ``openstack coe nodegroup create --node-labels k\u003dv --node-taints"},{"line_number":73,"context_line":"   k\u003dv:NoSchedule …`` sends both fields to the Magnum API."},{"line_number":74,"context_line":"2. The Magnum API validates and persists them on the NodeGroup row."},{"line_number":75,"context_line":"3. The conductor passes the NodeGroup to the configured driver."}],"source_content_type":"text/x-rst","patch_set":4,"id":"998a4cfe_7a475fb7","line":72,"updated":"2026-06-07 20:21:28.000000000","message":"What is the delimiter for multiple taints? Is --node-taints repeatable?","commit_id":"8051db10bc01b43606e9eb51cbe67c458e725aec"},{"author":{"_account_id":3031,"name":"Sam Morrison","email":"sorrison@gmail.com","username":"sorrison"},"change_message_id":"5d6a4935b59b83e45a3b524dea44cc43220fd046","unresolved":false,"context_lines":[{"line_number":69,"context_line":"Data flow"},{"line_number":70,"context_line":"---------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"1. ``openstack coe nodegroup create --node-labels k\u003dv --node-taints"},{"line_number":73,"context_line":"   k\u003dv:NoSchedule …`` sends both fields to the Magnum API."},{"line_number":74,"context_line":"2. The Magnum API validates and persists them on the NodeGroup row."},{"line_number":75,"context_line":"3. The conductor passes the NodeGroup to the configured driver."}],"source_content_type":"text/x-rst","patch_set":4,"id":"0b5575f5_84ff4a3f","line":72,"in_reply_to":"998a4cfe_7a475fb7","updated":"2026-06-09 10:41:50.000000000","message":"Done","commit_id":"8051db10bc01b43606e9eb51cbe67c458e725aec"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"a8c9afa93f9fbef60dd1baf8e2e6cab332564fa5","unresolved":true,"context_lines":[{"line_number":83,"context_line":"The fields are surfaced symmetrically on the ``NodeGroup`` resource:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* ``POST /clusters/{id}/nodegroups`` accepts both as optional body fields."},{"line_number":86,"context_line":"* ``PATCH /clusters/{id}/nodegroups/{ng}`` accepts both via JSON Patch on"},{"line_number":87,"context_line":"  ``/node_labels`` and ``/node_taints``."},{"line_number":88,"context_line":"* ``GET`` returns both."},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"8ebcf5ec_f58424fa","line":86,"updated":"2026-06-07 20:21:28.000000000","message":"What happens to already-running nodes when labels/taints are updated? Do existing nodes get reconciled, or only new nodes joining after the update?","commit_id":"8051db10bc01b43606e9eb51cbe67c458e725aec"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"1035fe1a1820badc58c58e31631993c78abcfbfe","unresolved":false,"context_lines":[{"line_number":83,"context_line":"The fields are surfaced symmetrically on the ``NodeGroup`` resource:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* ``POST /clusters/{id}/nodegroups`` accepts both as optional body fields."},{"line_number":86,"context_line":"* ``PATCH /clusters/{id}/nodegroups/{ng}`` accepts both via JSON Patch on"},{"line_number":87,"context_line":"  ``/node_labels`` and ``/node_taints``."},{"line_number":88,"context_line":"* ``GET`` returns both."},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"0227dccf_a5e153d1","line":86,"in_reply_to":"8c2ad3b7_a2c211ec","updated":"2026-07-17 04:55:15.000000000","message":"Acknowledged","commit_id":"8051db10bc01b43606e9eb51cbe67c458e725aec"},{"author":{"_account_id":3031,"name":"Sam Morrison","email":"sorrison@gmail.com","username":"sorrison"},"change_message_id":"5d6a4935b59b83e45a3b524dea44cc43220fd046","unresolved":true,"context_lines":[{"line_number":83,"context_line":"The fields are surfaced symmetrically on the ``NodeGroup`` resource:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* ``POST /clusters/{id}/nodegroups`` accepts both as optional body fields."},{"line_number":86,"context_line":"* ``PATCH /clusters/{id}/nodegroups/{ng}`` accepts both via JSON Patch on"},{"line_number":87,"context_line":"  ``/node_labels`` and ``/node_taints``."},{"line_number":88,"context_line":"* ``GET`` returns both."},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"8c2ad3b7_a2c211ec","line":86,"in_reply_to":"8ebcf5ec_f58424fa","updated":"2026-06-09 10:41:50.000000000","message":"With CAPI it\u0027ll roll out new workers so I added that but I guess it depends on the driver (which I assume is only capi anyway...)","commit_id":"8051db10bc01b43606e9eb51cbe67c458e725aec"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"a8c9afa93f9fbef60dd1baf8e2e6cab332564fa5","unresolved":true,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* ``POST /clusters/{id}/nodegroups`` accepts both as optional body fields."},{"line_number":86,"context_line":"* ``PATCH /clusters/{id}/nodegroups/{ng}`` accepts both via JSON Patch on"},{"line_number":87,"context_line":"  ``/node_labels`` and ``/node_taints``."},{"line_number":88,"context_line":"* ``GET`` returns both."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Validation:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f46f8e25_3128d80d","line":87,"updated":"2026-06-07 20:21:28.000000000","message":"Will node_taints be replaced in full or merged on PATCH?","commit_id":"8051db10bc01b43606e9eb51cbe67c458e725aec"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"bce4ee62f3efca735db4b13ebf69faef0bc5827d","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* ``POST /clusters/{id}/nodegroups`` accepts both as optional body fields."},{"line_number":86,"context_line":"* ``PATCH /clusters/{id}/nodegroups/{ng}`` accepts both via JSON Patch on"},{"line_number":87,"context_line":"  ``/node_labels`` and ``/node_taints``."},{"line_number":88,"context_line":"* ``GET`` returns both."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Validation:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"33d6896f_27474dce","line":87,"in_reply_to":"5c20f63c_0258bed9","updated":"2026-07-17 04:55:31.000000000","message":"Done","commit_id":"8051db10bc01b43606e9eb51cbe67c458e725aec"},{"author":{"_account_id":3031,"name":"Sam Morrison","email":"sorrison@gmail.com","username":"sorrison"},"change_message_id":"5d6a4935b59b83e45a3b524dea44cc43220fd046","unresolved":true,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* ``POST /clusters/{id}/nodegroups`` accepts both as optional body fields."},{"line_number":86,"context_line":"* ``PATCH /clusters/{id}/nodegroups/{ng}`` accepts both via JSON Patch on"},{"line_number":87,"context_line":"  ``/node_labels`` and ``/node_taints``."},{"line_number":88,"context_line":"* ``GET`` returns both."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Validation:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5c20f63c_0258bed9","line":87,"in_reply_to":"f46f8e25_3128d80d","updated":"2026-06-09 10:41:50.000000000","message":"The way magnum does patching is a bit different to other openstack projects I see. It\u0027s actually pretty tricky to update things via the magnum client. I almost want to propose a v2 magnum api to update this and other things, ha.","commit_id":"8051db10bc01b43606e9eb51cbe67c458e725aec"}]}
