)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"20249f16c358cc465820feb0c576046c591d30d9","unresolved":true,"context_lines":[{"line_number":12,"context_line":"Key additions:"},{"line_number":13,"context_line":"* network-nmstate Ansible role with cross-OS package management"},{"line_number":14,"context_line":"* Structured ethtool configuration via \u003cnetwork\u003e_ethtool_config"},{"line_number":15,"context_line":"* Tier 1 ethtool features: ring buffers + hardware offloads (80% coverage)"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Breaking change: nmstate engine uses structured YAML instead of command strings"},{"line_number":18,"context_line":"for ethtool configuration. Legacy engine preserves existing behavior."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bd8007a1_6147abfc","line":15,"updated":"2026-01-27 09:54:51.000000000","message":"What is missing for 100% coverage?","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"f5bfd355d39c798c6573d42ef8ced2bdd8a2ba45","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Key additions:"},{"line_number":13,"context_line":"* network-nmstate Ansible role with cross-OS package management"},{"line_number":14,"context_line":"* Structured ethtool configuration via \u003cnetwork\u003e_ethtool_config"},{"line_number":15,"context_line":"* Tier 1 ethtool features: ring buffers + hardware offloads (80% coverage)"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Breaking change: nmstate engine uses structured YAML instead of command strings"},{"line_number":18,"context_line":"for ethtool configuration. Legacy engine preserves existing behavior."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"4a7d7bfe_11320a07","line":15,"in_reply_to":"bd8007a1_6147abfc","updated":"2026-01-27 11:09:17.000000000","message":"It\u0027s an arbitrary list of implemented features, wanted something quick and used often enough to test. \n\nTier 1 (Implemented)\n- Ring buffers: rx, rx-mini, rx-jumbo, tx\n- Feature toggles: rx-checksumming, tx-checksumming, scatter-gather, tcp-segmentation-offload, generic-segmentation-offload, generic-receive-offload\n- That’s the “~80%” coverage called out in notes and it\u0027s pulled out of models ass :D \n\nTier 2 (Not implemented yet / left)\n- TCP offloads beyond basic TSO/CSUM \n- VLAN offload toggles\n- Coalesce parameters\n- Pause frame settings\n- Channel settings\n- FEC settings\n\nImplementing Tier2 would make it fully compatible with what nmstate is capable of doing.","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"20249f16c358cc465820feb0c576046c591d30d9","unresolved":true,"context_lines":[{"line_number":14,"context_line":"* Structured ethtool configuration via \u003cnetwork\u003e_ethtool_config"},{"line_number":15,"context_line":"* Tier 1 ethtool features: ring buffers + hardware offloads (80% coverage)"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Breaking change: nmstate engine uses structured YAML instead of command strings"},{"line_number":18,"context_line":"for ethtool configuration. Legacy engine preserves existing behavior."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Assisted-By: opencode(claude-4-sonnet)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"eb80c28c_959c9b5e","line":17,"updated":"2026-01-27 09:54:51.000000000","message":"Too vague","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"7849f854a3d11a8812dc0adcc0dcbd3cd0e75856","unresolved":false,"context_lines":[{"line_number":14,"context_line":"* Structured ethtool configuration via \u003cnetwork\u003e_ethtool_config"},{"line_number":15,"context_line":"* Tier 1 ethtool features: ring buffers + hardware offloads (80% coverage)"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Breaking change: nmstate engine uses structured YAML instead of command strings"},{"line_number":18,"context_line":"for ethtool configuration. Legacy engine preserves existing behavior."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Assisted-By: opencode(claude-4-sonnet)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"c321335c_34f08fee","line":17,"in_reply_to":"eb80c28c_959c9b5e","updated":"2026-02-09 13:57:30.000000000","message":"Done","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"20249f16c358cc465820feb0c576046c591d30d9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"816d961d_bd7fc578","updated":"2026-01-27 09:54:51.000000000","message":"Some initial thoughts","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"bcedeedfd1b6a382fc2a636893dc4420e5896862","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"31781d4e_5ff17e49","updated":"2026-01-27 09:42:22.000000000","message":"Why are we implementing NetworkManager for Debian family, which Kayobe hasn\u0027t supported?","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"f5bfd355d39c798c6573d42ef8ced2bdd8a2ba45","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"35e82b1c_788be194","in_reply_to":"31781d4e_5ff17e49","updated":"2026-01-27 11:09:17.000000000","message":"The thinking was, since we\u0027re changing the \"engine\" it might be a good time to simplify things. Unified approach for both operating systems seemed reasonable and removed dependencies for additional roles ( stackhpc.linux.systemd_networkd ).\n\nI was also considering using netplan if that would be a preferable approach.\n\nOpened to discussion.","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"1ee12d9e6414c9faae5a77d4fa6bb38a29d483df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7f1dfa4e_8b75f344","in_reply_to":"35e82b1c_788be194","updated":"2026-02-09 16:58:20.000000000","message":"Removed Ubuntu support for now, as ubuntu lacks nmstate and libnmstate packages.\n\nNeed to investigate howto/if we can implement this for Ubuntu","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"7849f854a3d11a8812dc0adcc0dcbd3cd0e75856","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"bc0fecd1_821cd466","in_reply_to":"816d961d_bd7fc578","updated":"2026-02-09 13:57:30.000000000","message":"Done","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"},{"author":{"_account_id":23084,"name":"Bartosz Bezak","email":"bartosz@stackhpc.com","username":"b.bezak"},"change_message_id":"6d89feff55701d3941a1fceb3aedba10fac46f10","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"989fec96_e47379f9","updated":"2026-02-10 09:24:58.000000000","message":"check experimental","commit_id":"e0edac1aeb07c7db6907212e91cf018ce977e5a2"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"3be8d0ddc3b56887c2f8950b8e3fba4033bc69f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"090d64cc_abf6811b","updated":"2026-02-12 17:13:19.000000000","message":"Overall, looking really good, thanks.","commit_id":"b56f1c62671180616492b1abb01096a5456016ee"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"71b638f2c430b61ae0e982916569c9900f6de534","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"029d0380_4efbba17","updated":"2026-02-25 15:19:46.000000000","message":"Very nice, looking good to me.","commit_id":"d4fba8733f60412f8de4f5e0b2bcb7b5483e905e"},{"author":{"_account_id":23084,"name":"Bartosz Bezak","email":"bartosz@stackhpc.com","username":"b.bezak"},"change_message_id":"efc2b9647962539efcf8a2df450f5105c21722df","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":33,"id":"d478cb2e_22af4bab","updated":"2026-02-25 15:42:18.000000000","message":"looks good, thx.  I am wondering if we should also use the same logic for resolv_is_managed as previous role:\n\n./network-redhat/tasks/main.yml:4:  when: resolv_is_managed | bool\n./network-redhat/tasks/main.yml:14:    state: \"{{ \u0027present\u0027 if resolv_is_managed | bool else \u0027absent\u0027}}\"","commit_id":"d4fba8733f60412f8de4f5e0b2bcb7b5483e905e"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"6d3f6e9f50b0527cbc683e9c1ea12dfafdbbc5e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"dd056055_c8b72ea1","in_reply_to":"d478cb2e_22af4bab","updated":"2026-02-25 16:59:15.000000000","message":"oops , missed it :D \nFixed, thanks. I\u0027ll try to add native DNS support in a follow-up patch for nmstate","commit_id":"d4fba8733f60412f8de4f5e0b2bcb7b5483e905e"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"0c80f1cf23f5786ea7114c2491df8c0590a04516","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":35,"id":"86eab811_b01b728c","updated":"2026-02-27 15:25:36.000000000","message":"Which Zuul job is testing nmstate?","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"deabb5aa484e44b82c40a5b4c3535230e9872072","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"1f63cd87_052b723e","updated":"2026-02-27 15:18:28.000000000","message":"recheck: Failure reach OS package repos","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"f51f94b0baece5dcb5071b85ab3aca31e7e96f8e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":35,"id":"8591a916_7f2b37b9","in_reply_to":"01ee1391_5fb19cad","updated":"2026-02-27 17:54:58.000000000","message":"So let’s deprecate MichaelRigart in the same patch and change the default :)","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"808df56cf9ee135dbd78fab373295d67bc9060fb","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":35,"id":"963de215_c65694c4","in_reply_to":"3a319d2f_d716d1da","updated":"2026-03-17 10:18:42.000000000","message":"We are now using nmstate engine in:\n```kayobe-overcloud-rocky10-podman``` and\n```kayobe-overcloud-host-configure-rocky10```","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"8ecd4a1511f6c07ad85c8d9e06b5f6df3415a63a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":35,"id":"3a319d2f_d716d1da","in_reply_to":"8591a916_7f2b37b9","updated":"2026-03-17 10:14:43.000000000","message":"I\u0027ve updated CI coverage. I will feel much more comfortable if we can see full service deploy.","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"0d88289d04ef75110ef5b33926266e090f46abcf","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":35,"id":"e0478549_efa9c99a","in_reply_to":"86eab811_b01b728c","updated":"2026-02-27 16:03:35.000000000","message":"It is configured in the host configure job: \n\nhttps://review.opendev.org/c/openstack/kayobe/+/974745/35/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2#4\n\nThen we test the regular network manager with the overcloud jobs. You are right though, it would be good to check that the cloud actually functions after deploying kolla services. Perhaps we could use nmstate in the podman jobs and use the default mode in the docker variant?","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"f20c6bf3c3e75533877170f8b06550f8bec20a72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"5240a842_f2dcac7a","in_reply_to":"963de215_c65694c4","updated":"2026-03-30 12:29:14.000000000","message":"I\u0027m happy with this now. Lets deprecate after we\u0027ve tried nmstate on a real installation and no longer consider it experimental.","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"6143a8c3a7c7005681f0211444045535ad97c250","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":35,"id":"af8349a6_bc5be783","in_reply_to":"9fbf3985_f8bd35e1","updated":"2026-02-27 16:32:46.000000000","message":"I would rather think about dropping the reliance on MichaelRigart\u0027s role - unless there\u0027s a feature gap between nmstate and MichaelRigart - but I\u0027m not the author 😊","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"04f9581726a83ac00ec2a5a59a3c623f40fc5079","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":35,"id":"1d50acf6_bfd43430","in_reply_to":"af8349a6_bc5be783","updated":"2026-02-27 16:41:20.000000000","message":"I think its good to keep the old method around for a few cycles. We can use the nmstate support for new deployments, and once we\u0027ve ironed out any kinks, drop MichaelRigart.","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"abcc67a0646413c9fdb41416199e2f0b112a14b4","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":35,"id":"01ee1391_5fb19cad","in_reply_to":"af8349a6_bc5be783","updated":"2026-02-27 16:48:29.000000000","message":"There is full feature parity (at least intended :P) \n\nWe were thinking of slowly introducing the feature, to test in real life scenarios, before deprecating and removing old way completely.\n\nExpect some follow up changes that will introduce:\n-\"native\" firewalld support\n- native DNS handling\n- egress/ingress qos native support (lately added to nmstate)","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"3699f00845f8baaadf2fe195a06b91cbd7b3a171","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":35,"id":"9fbf3985_f8bd35e1","in_reply_to":"e0478549_efa9c99a","updated":"2026-02-27 16:30:08.000000000","message":"Yes, currently only in kayobe-overcloud-host-configure-rocky10\n\nI\u0027ll take a look at extending the coverage","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"a408a6f35f1cb71e2c6a46b0e8292cb49334883d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":36,"id":"25e7403f_d6cab0bc","updated":"2026-03-13 14:24:56.000000000","message":"recheck ansible-galaxy issues","commit_id":"a1f3688de7087385be2b68fc518b6e1c69792325"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"32c3b58845076f65c7caac4cc79b7a9c5cdf41e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"9776bf3b_5faad1e7","updated":"2026-03-17 17:26:05.000000000","message":"Very nice - great job!","commit_id":"7a664e2e6359488e4058f6814459cb988608b9e0"},{"author":{"_account_id":23084,"name":"Bartosz Bezak","email":"bartosz@stackhpc.com","username":"b.bezak"},"change_message_id":"20d289c25226b00717e8752d2f71acd747a80924","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":38,"id":"d67d708d_4df54b00","updated":"2026-03-30 14:07:06.000000000","message":"nice work!, we\u0027re very close, let\u0027s fix those couple regressions (bond and route options) and I think we can merge that.","commit_id":"affb3d7292de232ec731a2fb0abff7b0e2d57043"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"683d499aacd6f05db5f92586f30027381f11fcaf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":38,"id":"29c270c4_eec002a1","in_reply_to":"d67d708d_4df54b00","updated":"2026-03-30 15:13:09.000000000","message":"Thanks Bartosz, great catch! 😄","commit_id":"affb3d7292de232ec731a2fb0abff7b0e2d57043"}],"ansible/roles/network-nmstate/library/nmstate_apply.py":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"20249f16c358cc465820feb0c576046c591d30d9","unresolved":true,"context_lines":[{"line_number":76,"context_line":"\"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"# Store a list of import errors to report to the user."},{"line_number":79,"context_line":"IMPORT_ERRORS \u003d []"},{"line_number":80,"context_line":"try:"},{"line_number":81,"context_line":"    import libnmstate"},{"line_number":82,"context_line":"except Exception as e:"}],"source_content_type":"text/x-python","patch_set":4,"id":"4b88e255_c75363fd","line":79,"updated":"2026-01-27 09:54:51.000000000","message":"What are we importing here, that might fail?","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"7849f854a3d11a8812dc0adcc0dcbd3cd0e75856","unresolved":false,"context_lines":[{"line_number":76,"context_line":"\"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"# Store a list of import errors to report to the user."},{"line_number":79,"context_line":"IMPORT_ERRORS \u003d []"},{"line_number":80,"context_line":"try:"},{"line_number":81,"context_line":"    import libnmstate"},{"line_number":82,"context_line":"except Exception as e:"}],"source_content_type":"text/x-python","patch_set":4,"id":"f51994b8_8c36d797","line":79,"in_reply_to":"4b88e255_c75363fd","updated":"2026-02-09 13:57:30.000000000","message":"Done","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"}],"ansible/roles/network-nmstate/tasks/main.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e105e5ef1e3590ced607931dfa0a9e29074dfd3a","unresolved":true,"context_lines":[{"line_number":20,"context_line":"  set_fact:"},{"line_number":21,"context_line":"    network_nmstate_desired_state: \"{{ network_interfaces | nmstate_config }}\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- name: Write nmstate configuration to temporary file"},{"line_number":24,"context_line":"  copy:"},{"line_number":25,"context_line":"    content: \"{{ network_nmstate_desired_state | to_nice_json }}\""},{"line_number":26,"context_line":"    dest: /tmp/nmstate_config.json"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"74967650_29bca6ca","line":23,"updated":"2026-01-26 16:48:26.000000000","message":"Write a module and handle that like a human being, like in this archived module: https://github.com/nmstate/ansible-nmstate/blob/main/library/nmstate_apply.py","commit_id":"c2eb6ddde916a8f7e0e76a294da4be8db7caebd2"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"8c4d29c848b9a0edcaa91710ff4ece3aa8a59670","unresolved":false,"context_lines":[{"line_number":20,"context_line":"  set_fact:"},{"line_number":21,"context_line":"    network_nmstate_desired_state: \"{{ network_interfaces | nmstate_config }}\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- name: Write nmstate configuration to temporary file"},{"line_number":24,"context_line":"  copy:"},{"line_number":25,"context_line":"    content: \"{{ network_nmstate_desired_state | to_nice_json }}\""},{"line_number":26,"context_line":"    dest: /tmp/nmstate_config.json"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"8d7fc704_f628db7d","line":23,"in_reply_to":"74967650_29bca6ca","updated":"2026-01-26 18:53:38.000000000","message":"Done","commit_id":"c2eb6ddde916a8f7e0e76a294da4be8db7caebd2"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"20249f16c358cc465820feb0c576046c591d30d9","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    state: \"{{ network_nmstate_desired_state }}\""},{"line_number":26,"context_line":"  register: nmstate_apply_result"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Configure virtual ethernet patch links to connect the workload provision"},{"line_number":29,"context_line":"# and external network bridges to the Neutron OVS bridge."},{"line_number":30,"context_line":"- name: Ensure OVS patch links exist"},{"line_number":31,"context_line":"  import_role:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"49cdd0a3_d1559f01","line":28,"updated":"2026-01-27 09:54:51.000000000","message":"Why not use nmstate for this?","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"7849f854a3d11a8812dc0adcc0dcbd3cd0e75856","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    state: \"{{ network_nmstate_desired_state }}\""},{"line_number":26,"context_line":"  register: nmstate_apply_result"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Configure virtual ethernet patch links to connect the workload provision"},{"line_number":29,"context_line":"# and external network bridges to the Neutron OVS bridge."},{"line_number":30,"context_line":"- name: Ensure OVS patch links exist"},{"line_number":31,"context_line":"  import_role:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"afbfec1a_8ac02014","line":28,"in_reply_to":"49cdd0a3_d1559f01","updated":"2026-02-09 13:57:30.000000000","message":"Done","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"3be8d0ddc3b56887c2f8950b8e3fba4033bc69f1","unresolved":false,"context_lines":[{"line_number":154,"context_line":"      when:"},{"line_number":155,"context_line":"        - network_nmstate_zones_result is changed or network_nmstate_perm_result is changed"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    # TODO(gkoper): investigate NM profile zone mapping to avoid explicit"},{"line_number":158,"context_line":"    # firewalld sync in nmstate path."},{"line_number":159,"context_line":"    - name: Ensure runtime firewalld zones are set for nmstate interfaces"},{"line_number":160,"context_line":"      firewalld:"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"d897de1e_4ac6bdd4","line":157,"updated":"2026-02-12 17:13:19.000000000","message":"Since this isn\u0027t the default driver, I don\u0027t see anything wrong with merging this as and iterating on if we find a better way.","commit_id":"b56f1c62671180616492b1abb01096a5456016ee"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"0c80f1cf23f5786ea7114c2491df8c0590a04516","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Validate nmstate is supported on this OS"},{"line_number":3,"context_line":"  fail:"},{"line_number":4,"context_line":"    msg: \u003e-"},{"line_number":5,"context_line":"      The nmstate network engine is not supported on {{ ansible_facts.distribution }}"},{"line_number":6,"context_line":"      {{ ansible_facts.distribution_version }}. nmstate requires system packages"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"ff76a412_ef82907a","line":3,"updated":"2026-02-27 15:25:36.000000000","message":"Use assert","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"3699f00845f8baaadf2fe195a06b91cbd7b3a171","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Validate nmstate is supported on this OS"},{"line_number":3,"context_line":"  fail:"},{"line_number":4,"context_line":"    msg: \u003e-"},{"line_number":5,"context_line":"      The nmstate network engine is not supported on {{ ansible_facts.distribution }}"},{"line_number":6,"context_line":"      {{ ansible_facts.distribution_version }}. nmstate requires system packages"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"d61e9fef_faa3983f","line":3,"in_reply_to":"ff76a412_ef82907a","updated":"2026-02-27 16:30:08.000000000","message":"Done","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"0c80f1cf23f5786ea7114c2491df8c0590a04516","unresolved":true,"context_lines":[{"line_number":17,"context_line":"- import_role:"},{"line_number":18,"context_line":"    name: ahuffman.resolv"},{"line_number":19,"context_line":"  when: resolv_is_managed | bool"},{"line_number":20,"context_line":"  become: True"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"- name: Ensure /etc/iproute2 directory exists"},{"line_number":23,"context_line":"  ansible.builtin.file:"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"e5e964cd_995a1d66","line":20,"updated":"2026-02-27 15:25:36.000000000","message":"decide on lowercase or uppercase true and be consistent at least in one YAML document 😊","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"3699f00845f8baaadf2fe195a06b91cbd7b3a171","unresolved":false,"context_lines":[{"line_number":17,"context_line":"- import_role:"},{"line_number":18,"context_line":"    name: ahuffman.resolv"},{"line_number":19,"context_line":"  when: resolv_is_managed | bool"},{"line_number":20,"context_line":"  become: True"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"- name: Ensure /etc/iproute2 directory exists"},{"line_number":23,"context_line":"  ansible.builtin.file:"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"84d929f1_ab6b6758","line":20,"in_reply_to":"e5e964cd_995a1d66","updated":"2026-02-27 16:30:08.000000000","message":"normalised whole file .(Copy pasted from old roles)","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"0c80f1cf23f5786ea7114c2491df8c0590a04516","unresolved":true,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    - name: Ensure firewalld zones exist for nmstate interfaces"},{"line_number":162,"context_line":"      firewalld:"},{"line_number":163,"context_line":"        offline: true"},{"line_number":164,"context_line":"        permanent: true"},{"line_number":165,"context_line":"        state: present"},{"line_number":166,"context_line":"        zone: \"{{ item }}\""}],"source_content_type":"text/x-yaml","patch_set":35,"id":"1ff8eda8_d90d6bb2","line":163,"updated":"2026-02-27 15:25:36.000000000","message":"Why?","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"3699f00845f8baaadf2fe195a06b91cbd7b3a171","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    - name: Ensure firewalld zones exist for nmstate interfaces"},{"line_number":162,"context_line":"      firewalld:"},{"line_number":163,"context_line":"        offline: true"},{"line_number":164,"context_line":"        permanent: true"},{"line_number":165,"context_line":"        state: present"},{"line_number":166,"context_line":"        zone: \"{{ item }}\""}],"source_content_type":"text/x-yaml","patch_set":35,"id":"083d6c19_6e199b7d","line":163,"in_reply_to":"1ff8eda8_d90d6bb2","updated":"2026-02-27 16:30:08.000000000","message":"Left an inline comment to explain. \n\nDon\u0027t mind it too much I have a follow up change ready that will move firewalld support to the module.","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"0c80f1cf23f5786ea7114c2491df8c0590a04516","unresolved":true,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    - name: Reload firewalld runtime from permanent config before nmstate zone sync"},{"line_number":181,"context_line":"      command:"},{"line_number":182,"context_line":"        cmd: firewall-cmd --reload"},{"line_number":183,"context_line":"      changed_when: false"},{"line_number":184,"context_line":"      when:"},{"line_number":185,"context_line":"        - network_nmstate_zones_result is changed or network_nmstate_perm_result is changed"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"0908a757_7e27f32b","line":182,"updated":"2026-02-27 15:25:36.000000000","message":"Why not reload the systemd unit using ansible.builtin.service?","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"3699f00845f8baaadf2fe195a06b91cbd7b3a171","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    - name: Reload firewalld runtime from permanent config before nmstate zone sync"},{"line_number":181,"context_line":"      command:"},{"line_number":182,"context_line":"        cmd: firewall-cmd --reload"},{"line_number":183,"context_line":"      changed_when: false"},{"line_number":184,"context_line":"      when:"},{"line_number":185,"context_line":"        - network_nmstate_zones_result is changed or network_nmstate_perm_result is changed"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"218b42be_c5175632","line":182,"in_reply_to":"0908a757_7e27f32b","updated":"2026-02-27 16:30:08.000000000","message":"Done","commit_id":"8f1db29b970fae3115f805bfc713ee7c8892bb2b"}],"doc/source/configuration/reference/network.rst":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"3be8d0ddc3b56887c2f8950b8e3fba4033bc69f1","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Kayobe supports multiple network configuration engines to manage networking on"},{"line_number":100,"context_line":"bare metal hosts."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Available Engines"},{"line_number":103,"context_line":"-----------------"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":30,"id":"699794f4_db7af8f4","line":101,"updated":"2026-02-12 17:13:19.000000000","message":"I like the approach of making this opt in to begin with. Will allow us to test on new deployments before switching existing ones.","commit_id":"b56f1c62671180616492b1abb01096a5456016ee"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"3be8d0ddc3b56887c2f8950b8e3fba4033bc69f1","unresolved":true,"context_lines":[{"line_number":102,"context_line":"Available Engines"},{"line_number":103,"context_line":"-----------------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"``legacy`` (default)"},{"line_number":106,"context_line":"    Uses OS-specific networking tools:"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    - RedHat/Rocky Linux: ``MichaelRigart.interfaces`` role with ifcfg files"}],"source_content_type":"text/x-rst","patch_set":30,"id":"d6a63b8c_4e7e387d","line":105,"updated":"2026-02-12 17:13:19.000000000","message":"Bit of a nit, but do we consider `systemd-network` legacy? Perhaps we could use the word``default`` instead? Once nmstate is stabilised, we can make that the default on RHEL distros.\n\nAlternatively, make the value depend on distro. Something like:\n\n    network_engine: \"{{ \u0027systemd-networkd\u0027 when \u0027Debian\u0027 in ansible_facts[\u0027os_family\u0027] else \u0027rigart\u0027 }}\"\n\nThoughts? If we think systemd-networkd will be replaced, then I\u0027d be OK with calling it legacy.","commit_id":"b56f1c62671180616492b1abb01096a5456016ee"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"2ae27ae05edac4b74ed567a65b883833bfb32619","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Available Engines"},{"line_number":103,"context_line":"-----------------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"``legacy`` (default)"},{"line_number":106,"context_line":"    Uses OS-specific networking tools:"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    - RedHat/Rocky Linux: ``MichaelRigart.interfaces`` role with ifcfg files"}],"source_content_type":"text/x-rst","patch_set":30,"id":"35442041_36743418","line":105,"in_reply_to":"c0cb4d15_276498d1","updated":"2026-02-16 10:49:04.000000000","message":"Done","commit_id":"b56f1c62671180616492b1abb01096a5456016ee"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"b687e9729ad7113249b864b8331cf84db7a1cf1f","unresolved":true,"context_lines":[{"line_number":102,"context_line":"Available Engines"},{"line_number":103,"context_line":"-----------------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"``legacy`` (default)"},{"line_number":106,"context_line":"    Uses OS-specific networking tools:"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    - RedHat/Rocky Linux: ``MichaelRigart.interfaces`` role with ifcfg files"}],"source_content_type":"text/x-rst","patch_set":30,"id":"c0cb4d15_276498d1","line":105,"in_reply_to":"d6a63b8c_4e7e387d","updated":"2026-02-13 09:09:51.000000000","message":"Absolutely, I need to reword some of it.\nThe original intent was to add nmstate for both Ubuntu and Rocky. \nNaming made more sense 20 patchsets ago :D","commit_id":"b56f1c62671180616492b1abb01096a5456016ee"}],"etc/kayobe/globals.yml":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"4c8fbc20a27879ef919b583d3a30316e639e715c","unresolved":true,"context_lines":[{"line_number":77,"context_line":"# Networking configuration."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"# Network configuration engine. Valid options are \"legacy\" and \"nmstate\"."},{"line_number":80,"context_line":"# Default is \"legacy\"."},{"line_number":81,"context_line":"#network_engine: legacy"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"###############################################################################"}],"source_content_type":"text/x-yaml","patch_set":32,"id":"e67cb621_0de9a398","line":80,"updated":"2026-02-20 18:36:11.000000000","message":"Still references legacy in this file","commit_id":"0d8ba2dc98570f13ad41cdba466e347c08f6a0b3"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"4170c51c80a938c6779e80823f2dd15eb2ac8d42","unresolved":false,"context_lines":[{"line_number":77,"context_line":"# Networking configuration."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"# Network configuration engine. Valid options are \"legacy\" and \"nmstate\"."},{"line_number":80,"context_line":"# Default is \"legacy\"."},{"line_number":81,"context_line":"#network_engine: legacy"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"###############################################################################"}],"source_content_type":"text/x-yaml","patch_set":32,"id":"a9fb8ac1_63c632a6","line":80,"in_reply_to":"e67cb621_0de9a398","updated":"2026-02-25 13:57:59.000000000","message":"Done","commit_id":"0d8ba2dc98570f13ad41cdba466e347c08f6a0b3"}],"kayobe/plugins/filter/nmstate.py":[{"author":{"_account_id":23084,"name":"Bartosz Bezak","email":"bartosz@stackhpc.com","username":"b.bezak"},"change_message_id":"20d289c25226b00717e8752d2f71acd747a80924","unresolved":true,"context_lines":[{"line_number":273,"context_line":"                    \"routes are only supported by the default network \""},{"line_number":274,"context_line":"                    \"engine.\")"},{"line_number":275,"context_line":"            route_config \u003d {"},{"line_number":276,"context_line":"                \"destination\": route[\"cidr\"],"},{"line_number":277,"context_line":"                \"next-hop-address\": route.get(\"gateway\"),"},{"line_number":278,"context_line":"                \"next-hop-interface\": iface_name,"},{"line_number":279,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":38,"id":"683bd269_0b65085f","line":276,"updated":"2026-03-30 14:07:06.000000000","message":"it is not taking into account Kayobe supported and documented route settings: metric, onlink, src\n\nhttps://nmstate.io/devel/yaml_api.html#routes","commit_id":"affb3d7292de232ec731a2fb0abff7b0e2d57043"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"683d499aacd6f05db5f92586f30027381f11fcaf","unresolved":false,"context_lines":[{"line_number":273,"context_line":"                    \"routes are only supported by the default network \""},{"line_number":274,"context_line":"                    \"engine.\")"},{"line_number":275,"context_line":"            route_config \u003d {"},{"line_number":276,"context_line":"                \"destination\": route[\"cidr\"],"},{"line_number":277,"context_line":"                \"next-hop-address\": route.get(\"gateway\"),"},{"line_number":278,"context_line":"                \"next-hop-interface\": iface_name,"},{"line_number":279,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":38,"id":"dc8df30d_fe707b88","line":276,"in_reply_to":"683bd269_0b65085f","updated":"2026-03-30 15:13:09.000000000","message":"Done","commit_id":"affb3d7292de232ec731a2fb0abff7b0e2d57043"},{"author":{"_account_id":23084,"name":"Bartosz Bezak","email":"bartosz@stackhpc.com","username":"b.bezak"},"change_message_id":"20d289c25226b00717e8752d2f71acd747a80924","unresolved":true,"context_lines":[{"line_number":362,"context_line":"                    port_iface[\"type\"] \u003d ("},{"line_number":363,"context_line":"                        port_type if port_type else _default_iface_type(port))"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        elif networks.net_is_bond(context, name, inventory_hostname):"},{"line_number":366,"context_line":"            iface[\"type\"] \u003d \"bond\""},{"line_number":367,"context_line":"            slaves \u003d networks.net_bond_slaves("},{"line_number":368,"context_line":"                context, name, inventory_hostname)"}],"source_content_type":"text/x-python","patch_set":38,"id":"a8b3173c_71e314a8","line":365,"updated":"2026-03-30 14:07:06.000000000","message":"we should also do options in bonding https://nmstate.io/devel/yaml_api.html#bond-interface\n\nwe support several of those, for example:\n./doc/source/configuration/reference/network.rst:588:``bond_miimon``\n./doc/source/configuration/reference/network.rst:590:``bond_updelay``\n./doc/source/configuration/reference/network.rst:596:``bond_xmit_hash_policy``\n...\n\nideally also test in CI","commit_id":"affb3d7292de232ec731a2fb0abff7b0e2d57043"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"683d499aacd6f05db5f92586f30027381f11fcaf","unresolved":false,"context_lines":[{"line_number":362,"context_line":"                    port_iface[\"type\"] \u003d ("},{"line_number":363,"context_line":"                        port_type if port_type else _default_iface_type(port))"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        elif networks.net_is_bond(context, name, inventory_hostname):"},{"line_number":366,"context_line":"            iface[\"type\"] \u003d \"bond\""},{"line_number":367,"context_line":"            slaves \u003d networks.net_bond_slaves("},{"line_number":368,"context_line":"                context, name, inventory_hostname)"}],"source_content_type":"text/x-python","patch_set":38,"id":"60523539_8a1fb0b5","line":365,"in_reply_to":"a8b3173c_71e314a8","updated":"2026-03-30 15:13:09.000000000","message":"Done","commit_id":"affb3d7292de232ec731a2fb0abff7b0e2d57043"}],"kayobe/tests/unit/plugins/filter/test_nmstate.py":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"20249f16c358cc465820feb0c576046c591d30d9","unresolved":true,"context_lines":[{"line_number":18,"context_line":"from kayobe.plugins.filter import nmstate"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class TestNMState(unittest.TestCase):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    maxDiff \u003d 2000"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da1917f6_04b78e5c","line":21,"updated":"2026-01-27 09:54:51.000000000","message":"This should be TestNMStateFilter and I assume we\u0027d need some tests for nmstate_apply, which will validate if nmstate will produce correct NM configuration","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"7849f854a3d11a8812dc0adcc0dcbd3cd0e75856","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from kayobe.plugins.filter import nmstate"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class TestNMState(unittest.TestCase):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    maxDiff \u003d 2000"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"6b54000d_f1f00acb","line":21,"in_reply_to":"da1917f6_04b78e5c","updated":"2026-02-09 13:57:30.000000000","message":"Done","commit_id":"5f9c455016db048ef79be5b2bd8c0c39101a5463"}],"playbooks/kayobe-overcloud-base/overrides.yml.j2":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"4c8fbc20a27879ef919b583d3a30316e639e715c","unresolved":true,"context_lines":[{"line_number":27,"context_line":"# are using for SSH to be removed. Use a dummy interface."},{"line_number":28,"context_line":"aio_bridge_ports:"},{"line_number":29,"context_line":"  - dummy1"},{"line_number":30,"context_line":"aio_port_type_dummy1: dummy"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Generate a password for libvirt SASL authentication."},{"line_number":33,"context_line":"compute_libvirt_sasl_password: \"{% raw %}{{ lookup(\u0027password\u0027, \u0027/tmp/libvirt-sasl-password\u0027) }}{% endraw %}\""}],"source_content_type":"text/x-jinja2","patch_set":32,"id":"d039308f_168c8988","line":30,"updated":"2026-02-20 18:36:11.000000000","message":"Can we remove this one too?","commit_id":"0d8ba2dc98570f13ad41cdba466e347c08f6a0b3"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"4170c51c80a938c6779e80823f2dd15eb2ac8d42","unresolved":false,"context_lines":[{"line_number":27,"context_line":"# are using for SSH to be removed. Use a dummy interface."},{"line_number":28,"context_line":"aio_bridge_ports:"},{"line_number":29,"context_line":"  - dummy1"},{"line_number":30,"context_line":"aio_port_type_dummy1: dummy"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Generate a password for libvirt SASL authentication."},{"line_number":33,"context_line":"compute_libvirt_sasl_password: \"{% raw %}{{ lookup(\u0027password\u0027, \u0027/tmp/libvirt-sasl-password\u0027) }}{% endraw %}\""}],"source_content_type":"text/x-jinja2","patch_set":32,"id":"27d80083_abacf8fe","line":30,"in_reply_to":"d039308f_168c8988","updated":"2026-02-25 13:57:59.000000000","message":"Done","commit_id":"0d8ba2dc98570f13ad41cdba466e347c08f6a0b3"}],"playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"3be8d0ddc3b56887c2f8950b8e3fba4033bc69f1","unresolved":true,"context_lines":[{"line_number":41,"context_line":"  - cidr: 192.168.40.0/24"},{"line_number":42,"context_line":"    gateway: 192.168.34.254"},{"line_number":43,"context_line":"test_net_eth_interface: dummy2"},{"line_number":44,"context_line":"test_net_eth_type: dummy"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# dummy2.42: VLAN subinterface of dummy2."},{"line_number":47,"context_line":"test_net_eth_vlan_cidr: 192.168.35.0/24"}],"source_content_type":"text/x-jinja2","patch_set":30,"id":"b94a7630_3746b92b","line":44,"updated":"2026-02-12 17:13:19.000000000","message":"Can we not use the heuristic that if the interface starts with the name dummy then the type is automatically set to dummy?\n\nA bit like what we do with vlans: eth0.\u003cvlan id\u003e becomes a vlan type.\n\nDitto for the sub interfaces e.g `test_net_bridge_bridge_ports: [dummy3, dummy4]`","commit_id":"b56f1c62671180616492b1abb01096a5456016ee"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"6d5268ed073a588e5ebe8fdf76bb5ff57de04537","unresolved":true,"context_lines":[{"line_number":41,"context_line":"  - cidr: 192.168.40.0/24"},{"line_number":42,"context_line":"    gateway: 192.168.34.254"},{"line_number":43,"context_line":"test_net_eth_interface: dummy2"},{"line_number":44,"context_line":"test_net_eth_type: dummy"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# dummy2.42: VLAN subinterface of dummy2."},{"line_number":47,"context_line":"test_net_eth_vlan_cidr: 192.168.35.0/24"}],"source_content_type":"text/x-jinja2","patch_set":30,"id":"c81e6880_cd3d651b","line":44,"in_reply_to":"1a1554e5_dfb6c916","updated":"2026-02-13 09:27:56.000000000","message":"I like how you\u0027ve exposed a way to set it explicitly, but using the dummy pefix to infer dummy type would match the existing behaviour. You could then explitly set something else if that was wrong.","commit_id":"b56f1c62671180616492b1abb01096a5456016ee"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"e4cf2150a4c9a3321ed7bfa3fb730cbdc2ed5f3d","unresolved":true,"context_lines":[{"line_number":41,"context_line":"  - cidr: 192.168.40.0/24"},{"line_number":42,"context_line":"    gateway: 192.168.34.254"},{"line_number":43,"context_line":"test_net_eth_interface: dummy2"},{"line_number":44,"context_line":"test_net_eth_type: dummy"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# dummy2.42: VLAN subinterface of dummy2."},{"line_number":47,"context_line":"test_net_eth_vlan_cidr: 192.168.35.0/24"}],"source_content_type":"text/x-jinja2","patch_set":30,"id":"e941585e_3b475737","line":44,"in_reply_to":"50827833_fd0af76a","updated":"2026-02-19 11:30:39.000000000","message":"- implemented in nmstate.py so operators get it too (with explicit _type still overriding)\n\nThis way sounds good to me.","commit_id":"b56f1c62671180616492b1abb01096a5456016ee"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"9fb2b93bd61c1f521a2b0730f3d094f7c19a8560","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  - cidr: 192.168.40.0/24"},{"line_number":42,"context_line":"    gateway: 192.168.34.254"},{"line_number":43,"context_line":"test_net_eth_interface: dummy2"},{"line_number":44,"context_line":"test_net_eth_type: dummy"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# dummy2.42: VLAN subinterface of dummy2."},{"line_number":47,"context_line":"test_net_eth_vlan_cidr: 192.168.35.0/24"}],"source_content_type":"text/x-jinja2","patch_set":30,"id":"85f02aa6_327f0a07","line":44,"in_reply_to":"77fd87af_8f426acb","updated":"2026-02-20 09:28:34.000000000","message":"Done","commit_id":"b56f1c62671180616492b1abb01096a5456016ee"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"b687e9729ad7113249b864b8331cf84db7a1cf1f","unresolved":true,"context_lines":[{"line_number":41,"context_line":"  - cidr: 192.168.40.0/24"},{"line_number":42,"context_line":"    gateway: 192.168.34.254"},{"line_number":43,"context_line":"test_net_eth_interface: dummy2"},{"line_number":44,"context_line":"test_net_eth_type: dummy"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# dummy2.42: VLAN subinterface of dummy2."},{"line_number":47,"context_line":"test_net_eth_vlan_cidr: 192.168.35.0/24"}],"source_content_type":"text/x-jinja2","patch_set":30,"id":"1a1554e5_dfb6c916","line":44,"in_reply_to":"b94a7630_3746b92b","updated":"2026-02-13 09:09:51.000000000","message":"We could, the only thing I was concerned is that there might be a production system somewhere with a physical interface named dummyX :D \n\nHowever unlikely it may be, I feel that this approach keeps behaviour predictable and gives operators more control.\n( I remember some shenanigans on Rocky/NM with not properly setting iface types, and having to fix it manually few versions ago )","commit_id":"b56f1c62671180616492b1abb01096a5456016ee"},{"author":{"_account_id":35345,"name":"Grzegorz Koper","email":"grzegorzk@stackhpc.com","username":"gkoper"},"change_message_id":"2ae27ae05edac4b74ed567a65b883833bfb32619","unresolved":true,"context_lines":[{"line_number":41,"context_line":"  - cidr: 192.168.40.0/24"},{"line_number":42,"context_line":"    gateway: 192.168.34.254"},{"line_number":43,"context_line":"test_net_eth_interface: dummy2"},{"line_number":44,"context_line":"test_net_eth_type: dummy"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# dummy2.42: VLAN subinterface of dummy2."},{"line_number":47,"context_line":"test_net_eth_vlan_cidr: 192.168.35.0/24"}],"source_content_type":"text/x-jinja2","patch_set":30,"id":"50827833_fd0af76a","line":44,"in_reply_to":"c81e6880_cd3d651b","updated":"2026-02-16 10:49:04.000000000","message":"Makes sense.\nDo you want the dummy* -\u003e type: dummy heuristic only in CI test overrides, or implemented in nmstate.py so operators get it too (with explicit *_type still overriding)?","commit_id":"b56f1c62671180616492b1abb01096a5456016ee"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"642bc1db040ccbdf6622645ae9be17c04e78dd0c","unresolved":true,"context_lines":[{"line_number":41,"context_line":"  - cidr: 192.168.40.0/24"},{"line_number":42,"context_line":"    gateway: 192.168.34.254"},{"line_number":43,"context_line":"test_net_eth_interface: dummy2"},{"line_number":44,"context_line":"test_net_eth_type: dummy"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# dummy2.42: VLAN subinterface of dummy2."},{"line_number":47,"context_line":"test_net_eth_vlan_cidr: 192.168.35.0/24"}],"source_content_type":"text/x-jinja2","patch_set":30,"id":"77fd87af_8f426acb","line":44,"in_reply_to":"e941585e_3b475737","updated":"2026-02-19 11:34:19.000000000","message":"Just pointing out that the rigart role uses this regex on the interface name:\n\nhttps://github.com/michaelrigart/ansible-role-interfaces/blob/9f261a00187793406ce270e90c904c5b1b1630c6/vars/main.yml#L11","commit_id":"b56f1c62671180616492b1abb01096a5456016ee"}]}
