)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"9a8a31acb6a170049478396fbced8c0a042538f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d17bd3d8_561b5f02","updated":"2026-05-25 16:59:45.000000000","message":"Thank you.","commit_id":"e7390ad5480004d01ea244f6d13c50276caac38b"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"8bcf7abb443cbbe21bc02d920e3ac67a884cfccb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ad2ea508_8d3fc74f","updated":"2026-05-28 17:16:30.000000000","message":"just a few nits","commit_id":"7988f3ddcb461ff9f740eb167ab46f8d92e13550"},{"author":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"change_message_id":"9f9976aeb662fd1ad29e83ee4d47f4608a96f71a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ac2ff897_823d06ba","updated":"2026-06-10 14:13:49.000000000","message":"Looks good. Mostly typos spotted","commit_id":"441f8c4282dea3d652f93daee60ade45fc9e38b5"}],"doc/source/assets/azimuth-magnum-config.yml":[{"author":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"change_message_id":"9f9976aeb662fd1ad29e83ee4d47f4608a96f71a","unresolved":true,"context_lines":[{"line_number":2,"context_line":"magnum_k8s_driver: \"azimuth\""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"magnum_capi_azimuth_git_install_branch: master"},{"line_number":5,"context_line":"magnum_capi_azimuth_git_repo: \"{{ openstack_github_base_url | default(\u0027https://github.com\u0027) ~ \u0027/vexxhost/magnum-cluster-api\u0027 }}\""},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"magnum_capi_azimuth_helm_base_url: https://azimuth-cloud.github.io"},{"line_number":8,"context_line":"magnum_capi_azimuth_helm_addon_provider_version: 0.10.4"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3cf99a5c_4315bf0d","line":5,"updated":"2026-06-10 14:13:49.000000000","message":"Looks like the wrong URL","commit_id":"441f8c4282dea3d652f93daee60ade45fc9e38b5"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"90e921fcc79701db17d53691f00c845e4df1b3a8","unresolved":false,"context_lines":[{"line_number":2,"context_line":"magnum_k8s_driver: \"azimuth\""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"magnum_capi_azimuth_git_install_branch: master"},{"line_number":5,"context_line":"magnum_capi_azimuth_git_repo: \"{{ openstack_github_base_url | default(\u0027https://github.com\u0027) ~ \u0027/vexxhost/magnum-cluster-api\u0027 }}\""},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"magnum_capi_azimuth_helm_base_url: https://azimuth-cloud.github.io"},{"line_number":8,"context_line":"magnum_capi_azimuth_helm_addon_provider_version: 0.10.4"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5858e827_2cb2a147","line":5,"in_reply_to":"3cf99a5c_4315bf0d","updated":"2026-06-10 14:23:37.000000000","message":"Done","commit_id":"441f8c4282dea3d652f93daee60ade45fc9e38b5"}],"doc/source/index.rst":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"9dade72342554bc0f33ae8f4e8a3dc74c2f0323f","unresolved":true,"context_lines":[{"line_number":27,"context_line":"Dependencies"},{"line_number":28,"context_line":"~~~~~~~~~~~~"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"This role needs pip \u003e\u003d 7.1 installed on the target host."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"To use this role, define the following variables:"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ab73a184_c78ed6af","line":30,"updated":"2026-05-23 14:41:06.000000000","message":"Remove?","commit_id":"dd057ca038ec6df66c4be357d3b884b91e70ea72"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"a4eb92bcb469eba163acb2957fec3270f2aa682e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Dependencies"},{"line_number":28,"context_line":"~~~~~~~~~~~~"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"This role needs pip \u003e\u003d 7.1 installed on the target host."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"To use this role, define the following variables:"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"71d05f2c_b73b7b04","line":30,"in_reply_to":"ab73a184_c78ed6af","updated":"2026-05-23 17:20:50.000000000","message":"Done","commit_id":"dd057ca038ec6df66c4be357d3b884b91e70ea72"}],"doc/source/magnum-capi.rst":[{"author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"change_message_id":"09fc84b34c12fb324690e9a6b0e42afa78e3d782","unresolved":false,"context_lines":[{"line_number":197,"context_line":"cluster to tenant clusters inside their internal networks a proxy service"},{"line_number":198,"context_line":"is introduced."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"#.. image:: assets/magnum_capi_proxy.drawio.png"},{"line_number":201,"context_line":"#    :scale: 100 %"},{"line_number":202,"context_line":"#    :alt: Cluster Network Connectivity"},{"line_number":203,"context_line":"#    :align: center"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"Proxy service must be spawned on hosts, where Neutron Metadata agents are"},{"line_number":206,"context_line":"spawned. For LXB/OVS these are members of ``neutron-agent_hosts``, while"}],"source_content_type":"text/x-rst","patch_set":2,"id":"64547e1d_73eb950f","line":203,"range":{"start_line":200,"start_character":0,"end_line":203,"end_character":19},"updated":"2026-05-24 20:36:46.000000000","message":"Is it supposed to be commented? Cause it\u0027s rendered in that way on doc page:\nhttps://838e8809c9c087f1d2df-d66d94e8460be82c507ecb0f70cc3225.ssl.cf2.rackcdn.com/openstack/739f40e8359f49cfb2bad90df67a10a8/docs/magnum-capi.html#use-of-magnum-cluster-api-proxy-with-vexxhost-driver","commit_id":"762b4339785c43d2010ccf21d5bccb0980a50cff"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"1427205ae2af9cb0a5438a08d9171d2ae5450d47","unresolved":false,"context_lines":[{"line_number":197,"context_line":"cluster to tenant clusters inside their internal networks a proxy service"},{"line_number":198,"context_line":"is introduced."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"#.. image:: assets/magnum_capi_proxy.drawio.png"},{"line_number":201,"context_line":"#    :scale: 100 %"},{"line_number":202,"context_line":"#    :alt: Cluster Network Connectivity"},{"line_number":203,"context_line":"#    :align: center"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"Proxy service must be spawned on hosts, where Neutron Metadata agents are"},{"line_number":206,"context_line":"spawned. For LXB/OVS these are members of ``neutron-agent_hosts``, while"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ae596e72_425aef5f","line":203,"range":{"start_line":200,"start_character":0,"end_line":203,"end_character":19},"in_reply_to":"64547e1d_73eb950f","updated":"2026-05-25 11:57:37.000000000","message":"well, there\u0027s no such file, so I think it should be just dropped...","commit_id":"762b4339785c43d2010ccf21d5bccb0980a50cff"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"d3a38fa6d0c1b38564ae0539fd777fea76182bf1","unresolved":true,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":".. warning::"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"   This documentation is relevant only for Openstack-Ansible 2026.1 (Gazpacho)"},{"line_number":8,"context_line":"   or later."},{"line_number":9,"context_line":"   An earlier version was provided in the `openstack-ansible-ops documentation \u003chttps://docs.openstack.org/openstack-ansible-ops/2025.2/mcapi.html\u003e`_"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"a4bbff9e_69fa181c","line":7,"updated":"2026-05-25 12:34:23.000000000","message":"```suggestion\n   This documentation is relevant only for OpenStack-Ansible 2026.1 (Gazpacho)\n```","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"d07439965f599aecaaf114f1dd3000ff1c8e30cb","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":".. warning::"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"   This documentation is relevant only for Openstack-Ansible 2026.1 (Gazpacho)"},{"line_number":8,"context_line":"   or later."},{"line_number":9,"context_line":"   An earlier version was provided in the `openstack-ansible-ops documentation \u003chttps://docs.openstack.org/openstack-ansible-ops/2025.2/mcapi.html\u003e`_"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"8a21e5f6_391f07a3","line":7,"in_reply_to":"a4bbff9e_69fa181c","updated":"2026-05-26 09:33:48.000000000","message":"Done","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"d3a38fa6d0c1b38564ae0539fd777fea76182bf1","unresolved":true,"context_lines":[{"line_number":170,"context_line":"     openstack-ansible openstack.osa.magnum"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Optionally run a functional test of magnum-cluster-api"},{"line_number":174,"context_line":"------------------------------------------------------"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"TODO: This is currently available to zuul CI only"}],"source_content_type":"text/x-rst","patch_set":3,"id":"e331f092_fb4ae3d5","line":173,"updated":"2026-05-25 12:34:23.000000000","message":"I think we can remove this block until documentation ready.","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"d07439965f599aecaaf114f1dd3000ff1c8e30cb","unresolved":false,"context_lines":[{"line_number":170,"context_line":"     openstack-ansible openstack.osa.magnum"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Optionally run a functional test of magnum-cluster-api"},{"line_number":174,"context_line":"------------------------------------------------------"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"TODO: This is currently available to zuul CI only"}],"source_content_type":"text/x-rst","patch_set":3,"id":"93c950d3_5a6f821e","line":173,"in_reply_to":"e331f092_fb4ae3d5","updated":"2026-05-26 09:33:48.000000000","message":"Done","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"d3a38fa6d0c1b38564ae0539fd777fea76182bf1","unresolved":true,"context_lines":[{"line_number":191,"context_line":"cluster for it\u0027s further configuration, the only way to do it out of the box"},{"line_number":192,"context_line":"is through the public network (Floating IP). This means, that API of the k8s"},{"line_number":193,"context_line":"control plane must be globally reachable, which posses a security threat to"},{"line_number":194,"context_line":"such tenant clusters."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"On order to solve the issue and provide access for the control plane k8s"},{"line_number":197,"context_line":"cluster to tenant clusters inside their internal networks a proxy service"}],"source_content_type":"text/x-rst","patch_set":3,"id":"54e25066_6a058c9f","line":194,"updated":"2026-05-25 12:34:23.000000000","message":"```suggestion\nsuch project clusters.\n```","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"8c9904c8eab6dfc4ed45c079ffd7feba16d630fb","unresolved":true,"context_lines":[{"line_number":191,"context_line":"cluster for it\u0027s further configuration, the only way to do it out of the box"},{"line_number":192,"context_line":"is through the public network (Floating IP). This means, that API of the k8s"},{"line_number":193,"context_line":"control plane must be globally reachable, which posses a security threat to"},{"line_number":194,"context_line":"such tenant clusters."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"On order to solve the issue and provide access for the control plane k8s"},{"line_number":197,"context_line":"cluster to tenant clusters inside their internal networks a proxy service"}],"source_content_type":"text/x-rst","patch_set":3,"id":"e41f41e5_7bffaea2","line":194,"in_reply_to":"54e25066_6a058c9f","updated":"2026-05-25 15:51:13.000000000","message":"in this context it\u0027s not about projects, but about clients, so tenant is appropriate term here, imo.","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"9a8a31acb6a170049478396fbced8c0a042538f9","unresolved":false,"context_lines":[{"line_number":191,"context_line":"cluster for it\u0027s further configuration, the only way to do it out of the box"},{"line_number":192,"context_line":"is through the public network (Floating IP). This means, that API of the k8s"},{"line_number":193,"context_line":"control plane must be globally reachable, which posses a security threat to"},{"line_number":194,"context_line":"such tenant clusters."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"On order to solve the issue and provide access for the control plane k8s"},{"line_number":197,"context_line":"cluster to tenant clusters inside their internal networks a proxy service"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8f88c558_975e8532","line":194,"in_reply_to":"e41f41e5_7bffaea2","updated":"2026-05-25 16:59:45.000000000","message":"Done","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"d3a38fa6d0c1b38564ae0539fd777fea76182bf1","unresolved":true,"context_lines":[{"line_number":194,"context_line":"such tenant clusters."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"On order to solve the issue and provide access for the control plane k8s"},{"line_number":197,"context_line":"cluster to tenant clusters inside their internal networks a proxy service"},{"line_number":198,"context_line":"is introduced."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Proxy service must be spawned on hosts, where Neutron Metadata agents are"}],"source_content_type":"text/x-rst","patch_set":3,"id":"970b7f18_c15ad68a","line":197,"updated":"2026-05-25 12:34:23.000000000","message":"```suggestion\ncluster to project clusters inside their internal networks a proxy service\n```","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"9a8a31acb6a170049478396fbced8c0a042538f9","unresolved":false,"context_lines":[{"line_number":194,"context_line":"such tenant clusters."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"On order to solve the issue and provide access for the control plane k8s"},{"line_number":197,"context_line":"cluster to tenant clusters inside their internal networks a proxy service"},{"line_number":198,"context_line":"is introduced."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Proxy service must be spawned on hosts, where Neutron Metadata agents are"}],"source_content_type":"text/x-rst","patch_set":3,"id":"721a6803_1594414e","line":197,"in_reply_to":"34a3c283_57900065","updated":"2026-05-25 16:59:45.000000000","message":"Done","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"8c9904c8eab6dfc4ed45c079ffd7feba16d630fb","unresolved":true,"context_lines":[{"line_number":194,"context_line":"such tenant clusters."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"On order to solve the issue and provide access for the control plane k8s"},{"line_number":197,"context_line":"cluster to tenant clusters inside their internal networks a proxy service"},{"line_number":198,"context_line":"is introduced."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Proxy service must be spawned on hosts, where Neutron Metadata agents are"}],"source_content_type":"text/x-rst","patch_set":3,"id":"34a3c283_57900065","line":197,"in_reply_to":"970b7f18_c15ad68a","updated":"2026-05-25 15:51:13.000000000","message":"it\u0027s about client as a user of the project, not project itself.","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"d3a38fa6d0c1b38564ae0539fd777fea76182bf1","unresolved":true,"context_lines":[{"line_number":207,"context_line":"namespaces."},{"line_number":208,"context_line":"Service does not spawn own namespaces, but leverages already existing"},{"line_number":209,"context_line":"metadata namespaces to get connection to the Load Balancer inside"},{"line_number":210,"context_line":"the tenant network."},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Configuration of the service is relatively trivial:"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"a0a73847_4a5be724","line":210,"updated":"2026-05-25 12:34:23.000000000","message":"```suggestion\nthe project network.\n```","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"8c9904c8eab6dfc4ed45c079ffd7feba16d630fb","unresolved":false,"context_lines":[{"line_number":207,"context_line":"namespaces."},{"line_number":208,"context_line":"Service does not spawn own namespaces, but leverages already existing"},{"line_number":209,"context_line":"metadata namespaces to get connection to the Load Balancer inside"},{"line_number":210,"context_line":"the tenant network."},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Configuration of the service is relatively trivial:"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"4522a169_40897c5d","line":210,"in_reply_to":"a0a73847_4a5be724","updated":"2026-05-25 15:51:13.000000000","message":"Fix applied.","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"d3a38fa6d0c1b38564ae0539fd777fea76182bf1","unresolved":true,"context_lines":[{"line_number":236,"context_line":"      openstack-ansible osa_ops.mcapi_vexxhost.mcapi_proxy"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Deploy the workload clusters with a local registry"},{"line_number":240,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"TODO - describe how to do this"}],"source_content_type":"text/x-rst","patch_set":3,"id":"f37c28da_8759be24","line":239,"updated":"2026-05-25 12:34:23.000000000","message":"ditto","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"d07439965f599aecaaf114f1dd3000ff1c8e30cb","unresolved":false,"context_lines":[{"line_number":236,"context_line":"      openstack-ansible osa_ops.mcapi_vexxhost.mcapi_proxy"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Deploy the workload clusters with a local registry"},{"line_number":240,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"TODO - describe how to do this"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bb9e3344_e43b25a5","line":239,"in_reply_to":"f37c28da_8759be24","updated":"2026-05-26 09:33:48.000000000","message":"Done","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"d3a38fa6d0c1b38564ae0539fd777fea76182bf1","unresolved":true,"context_lines":[{"line_number":241,"context_line":""},{"line_number":242,"context_line":"TODO - describe how to do this"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"Deploy the control plane cluster from a local registry"},{"line_number":245,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"TODO - describe how to do this"}],"source_content_type":"text/x-rst","patch_set":3,"id":"d07caa1c_49a635a5","line":244,"updated":"2026-05-25 12:34:23.000000000","message":"ditto","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"d07439965f599aecaaf114f1dd3000ff1c8e30cb","unresolved":false,"context_lines":[{"line_number":241,"context_line":""},{"line_number":242,"context_line":"TODO - describe how to do this"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"Deploy the control plane cluster from a local registry"},{"line_number":245,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"TODO - describe how to do this"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5b95a31d_db3e44d8","line":244,"in_reply_to":"d07caa1c_49a635a5","updated":"2026-05-26 09:33:48.000000000","message":"Done","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"}],"doc/source/post-deployment.rst":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"d3a38fa6d0c1b38564ae0539fd777fea76182bf1","unresolved":true,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"Deploying the magnum service makes the API components available to use."},{"line_number":7,"context_line":"Additional configuration is required to make a working Kubernetes cluster,"},{"line_number":8,"context_line":"including loading the correct Image and setting up a suitable Cluster Template"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"This example is intended to show the steps required and should be updated"},{"line_number":11,"context_line":"as needed for the version of k8s and associated components."}],"source_content_type":"text/x-rst","patch_set":3,"id":"fb18b77b_79807af0","line":8,"updated":"2026-05-25 12:34:23.000000000","message":"```suggestion\nincluding loading the correct Image and setting up a suitable Cluster Template.\n```","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"8c9904c8eab6dfc4ed45c079ffd7feba16d630fb","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"Deploying the magnum service makes the API components available to use."},{"line_number":7,"context_line":"Additional configuration is required to make a working Kubernetes cluster,"},{"line_number":8,"context_line":"including loading the correct Image and setting up a suitable Cluster Template"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"This example is intended to show the steps required and should be updated"},{"line_number":11,"context_line":"as needed for the version of k8s and associated components."}],"source_content_type":"text/x-rst","patch_set":3,"id":"f2dc61a5_dff07883","line":8,"in_reply_to":"fb18b77b_79807af0","updated":"2026-05-25 15:51:13.000000000","message":"Fix applied.","commit_id":"6275588a4e196c6addf404fb8f92188756e0964b"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"8bcf7abb443cbbe21bc02d920e3ac67a884cfccb","unresolved":true,"context_lines":[{"line_number":13,"context_line":"Images"},{"line_number":14,"context_line":"~~~~~~"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"All drivers in Magnum has series of requirements, and all of them require a"},{"line_number":17,"context_line":"specifically prepared image for the k8s cluster control plane and workers."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"However, these images are not interoperable, so each driver requires it\u0027s own"}],"source_content_type":"text/x-rst","patch_set":6,"id":"63379c6b_4f133865","line":16,"range":{"start_line":16,"start_character":22,"end_line":16,"end_character":25},"updated":"2026-05-28 17:16:30.000000000","message":"have a","commit_id":"7988f3ddcb461ff9f740eb167ab46f8d92e13550"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"dc34312fb64f604914ccea8c9240e77a76d33615","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Images"},{"line_number":14,"context_line":"~~~~~~"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"All drivers in Magnum has series of requirements, and all of them require a"},{"line_number":17,"context_line":"specifically prepared image for the k8s cluster control plane and workers."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"However, these images are not interoperable, so each driver requires it\u0027s own"}],"source_content_type":"text/x-rst","patch_set":6,"id":"32286601_3caf24b0","line":16,"range":{"start_line":16,"start_character":22,"end_line":16,"end_character":25},"in_reply_to":"63379c6b_4f133865","updated":"2026-05-29 07:06:14.000000000","message":"Done","commit_id":"7988f3ddcb461ff9f740eb167ab46f8d92e13550"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"8bcf7abb443cbbe21bc02d920e3ac67a884cfccb","unresolved":true,"context_lines":[{"line_number":28,"context_line":"Heat driver"},{"line_number":29,"context_line":"^^^^^^^^^^^"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Heat driver relies on a fedora-coreos imagethis can be done either manually or"},{"line_number":32,"context_line":"using the os_magnum playbooks."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Manual upload:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ea560c52_52c11448","line":31,"range":{"start_line":31,"start_character":38,"end_line":31,"end_character":47},"updated":"2026-05-28 17:16:30.000000000","message":"image. This can be made available either.....","commit_id":"7988f3ddcb461ff9f740eb167ab46f8d92e13550"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"dc34312fb64f604914ccea8c9240e77a76d33615","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Heat driver"},{"line_number":29,"context_line":"^^^^^^^^^^^"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Heat driver relies on a fedora-coreos imagethis can be done either manually or"},{"line_number":32,"context_line":"using the os_magnum playbooks."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Manual upload:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"aa29c863_080836d5","line":31,"range":{"start_line":31,"start_character":38,"end_line":31,"end_character":47},"in_reply_to":"ea560c52_52c11448","updated":"2026-05-29 07:06:14.000000000","message":"Done","commit_id":"7988f3ddcb461ff9f740eb167ab46f8d92e13550"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"8bcf7abb443cbbe21bc02d920e3ac67a884cfccb","unresolved":true,"context_lines":[{"line_number":236,"context_line":".. code-block:: yaml"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    magnum_cluster_templates:"},{"line_number":239,"context_line":"      - name: Kubernetes v1.34.8"},{"line_number":240,"context_line":"        cluster_distro: ubuntu"},{"line_number":241,"context_line":"        coe: kubernetes"},{"line_number":242,"context_line":"        docker_storage_driver: overlay2"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fe3eef41_8c8b437f","line":239,"range":{"start_line":239,"start_character":14,"end_line":239,"end_character":32},"updated":"2026-05-28 17:16:30.000000000","message":"\u003cname\u003e for consistency with the other examples","commit_id":"7988f3ddcb461ff9f740eb167ab46f8d92e13550"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"dc34312fb64f604914ccea8c9240e77a76d33615","unresolved":false,"context_lines":[{"line_number":236,"context_line":".. code-block:: yaml"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    magnum_cluster_templates:"},{"line_number":239,"context_line":"      - name: Kubernetes v1.34.8"},{"line_number":240,"context_line":"        cluster_distro: ubuntu"},{"line_number":241,"context_line":"        coe: kubernetes"},{"line_number":242,"context_line":"        docker_storage_driver: overlay2"}],"source_content_type":"text/x-rst","patch_set":6,"id":"e0461841_c3e19d76","line":239,"range":{"start_line":239,"start_character":14,"end_line":239,"end_character":32},"in_reply_to":"fe3eef41_8c8b437f","updated":"2026-05-29 07:06:14.000000000","message":"Done","commit_id":"7988f3ddcb461ff9f740eb167ab46f8d92e13550"},{"author":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"change_message_id":"9f9976aeb662fd1ad29e83ee4d47f4608a96f71a","unresolved":true,"context_lines":[{"line_number":93,"context_line":"          hw_disk_bus: scsi"},{"line_number":94,"context_line":"          hw_scsi_model: virtio-scsi"},{"line_number":95,"context_line":"          hw_qemu_guest_agent: \"no\""},{"line_number":96,"context_line":"          os_distro: ubuntu"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"c2abc74c_5eb93db3","line":96,"updated":"2026-06-10 14:13:49.000000000","message":"os_distro appears twice","commit_id":"441f8c4282dea3d652f93daee60ade45fc9e38b5"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"90e921fcc79701db17d53691f00c845e4df1b3a8","unresolved":false,"context_lines":[{"line_number":93,"context_line":"          hw_disk_bus: scsi"},{"line_number":94,"context_line":"          hw_scsi_model: virtio-scsi"},{"line_number":95,"context_line":"          hw_qemu_guest_agent: \"no\""},{"line_number":96,"context_line":"          os_distro: ubuntu"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"f2d01aaf_6b19c7a5","line":96,"in_reply_to":"c2abc74c_5eb93db3","updated":"2026-06-10 14:23:37.000000000","message":"Done","commit_id":"441f8c4282dea3d652f93daee60ade45fc9e38b5"},{"author":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"change_message_id":"9f9976aeb662fd1ad29e83ee4d47f4608a96f71a","unresolved":true,"context_lines":[{"line_number":128,"context_line":"          hw_disk_bus: scsi"},{"line_number":129,"context_line":"          hw_scsi_model: virtio-scsi"},{"line_number":130,"context_line":"          hw_qemu_guest_agent: \"no\""},{"line_number":131,"context_line":"          os_distro: ubuntu"},{"line_number":132,"context_line":"          kube_version: v1.34.8"},{"line_number":133,"context_line":"          magnum_driver: k8s_capi_helm_v1"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"8259af5a_44bcd362","line":131,"updated":"2026-06-10 14:13:49.000000000","message":"os_distro twice again","commit_id":"441f8c4282dea3d652f93daee60ade45fc9e38b5"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"90e921fcc79701db17d53691f00c845e4df1b3a8","unresolved":false,"context_lines":[{"line_number":128,"context_line":"          hw_disk_bus: scsi"},{"line_number":129,"context_line":"          hw_scsi_model: virtio-scsi"},{"line_number":130,"context_line":"          hw_qemu_guest_agent: \"no\""},{"line_number":131,"context_line":"          os_distro: ubuntu"},{"line_number":132,"context_line":"          kube_version: v1.34.8"},{"line_number":133,"context_line":"          magnum_driver: k8s_capi_helm_v1"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"7587501d_4622bb4d","line":131,"in_reply_to":"8259af5a_44bcd362","updated":"2026-06-10 14:23:37.000000000","message":"Done","commit_id":"441f8c4282dea3d652f93daee60ade45fc9e38b5"},{"author":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"change_message_id":"9f9976aeb662fd1ad29e83ee4d47f4608a96f71a","unresolved":true,"context_lines":[{"line_number":269,"context_line":""},{"line_number":270,"context_line":"If the k8s cluster does not create properly, or times out during creation, then"},{"line_number":271,"context_line":"the cloud-init logs in the master/minion nodes should be examined, also check"},{"line_number":272,"context_line":"the heat-config log and heat-container-agent status."},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"Wiring docker with cinder"},{"line_number":275,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":9,"id":"7b2cc25f_38c46ae0","line":272,"updated":"2026-06-10 14:13:49.000000000","message":"This still seems a bit heat specific","commit_id":"441f8c4282dea3d652f93daee60ade45fc9e38b5"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"90e921fcc79701db17d53691f00c845e4df1b3a8","unresolved":false,"context_lines":[{"line_number":269,"context_line":""},{"line_number":270,"context_line":"If the k8s cluster does not create properly, or times out during creation, then"},{"line_number":271,"context_line":"the cloud-init logs in the master/minion nodes should be examined, also check"},{"line_number":272,"context_line":"the heat-config log and heat-container-agent status."},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"Wiring docker with cinder"},{"line_number":275,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":9,"id":"88113390_7d0e199f","line":272,"in_reply_to":"7b2cc25f_38c46ae0","updated":"2026-06-10 14:23:37.000000000","message":"Done","commit_id":"441f8c4282dea3d652f93daee60ade45fc9e38b5"}],"releasenotes/notes/magnum_capi-954ece184db3beaa.yaml":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"96616e344489f89bde969e440b87840bb043e66f","unresolved":true,"context_lines":[{"line_number":10,"context_line":"    Added series of CAPI driver-specific variables to the ``os_magnum`` role"},{"line_number":11,"context_line":"    in order to allow driver version selection for deployment."},{"line_number":12,"context_line":"  - |"},{"line_number":13,"context_line":"    Introduced variable ``magnum_k8s_driver``, with possible options:"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"      * heat - current default, scheduled for removal in 2026.2"},{"line_number":16,"context_line":"      * azimuth - CAPI HELM driver, relying heavily on HELM charts"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"bc56fda7_72e855dc","line":13,"updated":"2026-05-26 10:01:18.000000000","message":"May be I not right... I think we can add information about \"next\" default driver after remove heat.","commit_id":"7988f3ddcb461ff9f740eb167ab46f8d92e13550"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"599bdc0a42f6bcbd53c2f9c0fb11aec9f0398df5","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    Added series of CAPI driver-specific variables to the ``os_magnum`` role"},{"line_number":11,"context_line":"    in order to allow driver version selection for deployment."},{"line_number":12,"context_line":"  - |"},{"line_number":13,"context_line":"    Introduced variable ``magnum_k8s_driver``, with possible options:"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"      * heat - current default, scheduled for removal in 2026.2"},{"line_number":16,"context_line":"      * azimuth - CAPI HELM driver, relying heavily on HELM charts"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"79a3a5a8_a0ff42c7","line":13,"in_reply_to":"5261a48b_d1efe5ac","updated":"2026-05-26 17:59:57.000000000","message":"Well, need write about this directly in the next cycle.","commit_id":"7988f3ddcb461ff9f740eb167ab46f8d92e13550"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"8bd99c201d262d8781f44235f8cb4371d752aeeb","unresolved":true,"context_lines":[{"line_number":10,"context_line":"    Added series of CAPI driver-specific variables to the ``os_magnum`` role"},{"line_number":11,"context_line":"    in order to allow driver version selection for deployment."},{"line_number":12,"context_line":"  - |"},{"line_number":13,"context_line":"    Introduced variable ``magnum_k8s_driver``, with possible options:"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"      * heat - current default, scheduled for removal in 2026.2"},{"line_number":16,"context_line":"      * azimuth - CAPI HELM driver, relying heavily on HELM charts"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5261a48b_d1efe5ac","line":13,"in_reply_to":"bc56fda7_72e855dc","updated":"2026-05-26 15:20:19.000000000","message":"I think we won\u0027t have any \"default\" driver.","commit_id":"7988f3ddcb461ff9f740eb167ab46f8d92e13550"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"78c356393a7fcf13c8438f1d04ba5797f4d74899","unresolved":true,"context_lines":[{"line_number":12,"context_line":"  - |"},{"line_number":13,"context_line":"    Introduced variable ``magnum_k8s_driver``, with possible options:"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"      * heat - current default, scheduled for removal in 2026.2"},{"line_number":16,"context_line":"      * azimuth - CAPI HELM driver, relying heavily on HELM charts"},{"line_number":17,"context_line":"                  which are maintained by Azimuth Cloud."},{"line_number":18,"context_line":"      * vexxhost - Magnum CAPI driver maintained by Vexxhost."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"605fe768_d578a1ae","line":15,"updated":"2026-06-03 00:14:09.000000000","message":"```suggestion\n      * heat - current default, removed in 2026.2\n```","commit_id":"5cc620cda518fe6a145818d9f692c42bc3053a0f"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"8c8d0beeabc66554b748d4cb01ae2591af5749a1","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  - |"},{"line_number":13,"context_line":"    Introduced variable ``magnum_k8s_driver``, with possible options:"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"      * heat - current default, scheduled for removal in 2026.2"},{"line_number":16,"context_line":"      * azimuth - CAPI HELM driver, relying heavily on HELM charts"},{"line_number":17,"context_line":"                  which are maintained by Azimuth Cloud."},{"line_number":18,"context_line":"      * vexxhost - Magnum CAPI driver maintained by Vexxhost."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"e242f732_9187471d","line":15,"in_reply_to":"605fe768_d578a1ae","updated":"2026-06-03 11:16:05.000000000","message":"Fix applied.","commit_id":"5cc620cda518fe6a145818d9f692c42bc3053a0f"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"78c356393a7fcf13c8438f1d04ba5797f4d74899","unresolved":true,"context_lines":[{"line_number":20,"context_line":"  - |"},{"line_number":21,"context_line":"    Magnum Heat driver has been deprecated by the community in 2025.1 and is"},{"line_number":22,"context_line":"    removed early in 2026.2 release."},{"line_number":23,"context_line":"    Current reelase (2026.1) is the last release where Heat driver is available,"},{"line_number":24,"context_line":"    and operators should consider migration to one of the CAPI drivers available."},{"line_number":25,"context_line":"upgrade:"},{"line_number":26,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"f7df9298_8152a513","line":23,"updated":"2026-06-03 00:14:09.000000000","message":"```suggestion\n    Current release (2026.1) is the last release where Heat driver is available,\n```","commit_id":"5cc620cda518fe6a145818d9f692c42bc3053a0f"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"8c8d0beeabc66554b748d4cb01ae2591af5749a1","unresolved":false,"context_lines":[{"line_number":20,"context_line":"  - |"},{"line_number":21,"context_line":"    Magnum Heat driver has been deprecated by the community in 2025.1 and is"},{"line_number":22,"context_line":"    removed early in 2026.2 release."},{"line_number":23,"context_line":"    Current reelase (2026.1) is the last release where Heat driver is available,"},{"line_number":24,"context_line":"    and operators should consider migration to one of the CAPI drivers available."},{"line_number":25,"context_line":"upgrade:"},{"line_number":26,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"d48f3255_4e8cb5a4","line":23,"in_reply_to":"f7df9298_8152a513","updated":"2026-06-03 11:16:05.000000000","message":"Fix applied.","commit_id":"5cc620cda518fe6a145818d9f692c42bc3053a0f"}]}
