)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"cd1932ad46016adb5b405fee52c14c458cf5eb20","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5710df88_b4d69851","updated":"2025-06-25 12:54:09.000000000","message":"will@stackhpc.com the same issue 5 years ago in kolla-ansible: Idfa73097ca168c76559dc4f3aa8bb30b7113ab28","commit_id":"8d8d8a00303f03bc57010bfc5ddf20c0853aec20"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"ad97c935c4c9197f901bf9bafaf9629a52ed9de2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c8fced3e_9b2cdb94","in_reply_to":"5710df88_b4d69851","updated":"2025-10-05 11:23:42.000000000","message":"lets merge this","commit_id":"8d8d8a00303f03bc57010bfc5ddf20c0853aec20"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"bca2ee20b068dde7decc93ba6e84d316221aae29","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5775b0b2_139ab5f7","updated":"2025-10-17 09:28:25.000000000","message":"Thanks Maksim - change looks good. Could you use Closes-Bug: #2045927 in the commit message and ideally add a release note. I guess we should backport this one too?","commit_id":"56f4d2e32287a0a247e3bbd478e9226874d3920b"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"f535e33743e3a24f644a1ce635a7cb533979a91f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"64c184cc_64940054","in_reply_to":"5775b0b2_139ab5f7","updated":"2025-10-17 12:53:23.000000000","message":"Oh, sure. I didn\u0027t know Pierre had created the bug report.","commit_id":"56f4d2e32287a0a247e3bbd478e9226874d3920b"}],"ansible/kolla-bifrost-hostvars.yml":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"a0e19e956ed56e3e3a5505b6bb445267652d6946","unresolved":true,"context_lines":[{"line_number":19,"context_line":"    bifrost_hostvars:"},{"line_number":20,"context_line":"      addressing_mode: static"},{"line_number":21,"context_line":"      deploy_image_filename: \"{{ kolla_bifrost_deploy_image_filename }}\""},{"line_number":22,"context_line":"      deploy_image_rootfs: \"{{ kolla_bifrost_deploy_image_rootfs | default(omit, true) }}\""},{"line_number":23,"context_line":"      ipv4_interface_mac: \"{% if kolla_bifrost_ipv4_interface_mac is defined %}{{ kolla_bifrost_ipv4_interface_mac }}{% else %}{% raw %}{{ extra.pxe_interface_mac | default }}{% endraw %}{% endif %}\""},{"line_number":24,"context_line":"      ipv4_address: \"{{ admin_oc_net_name | net_ip }}\""},{"line_number":25,"context_line":"      ipv4_subnet_mask: \"{{ admin_oc_net_name | net_mask }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"c4e3be03_da04b9dd","side":"PARENT","line":22,"updated":"2025-06-13 08:41:05.000000000","message":"Agreed this is a little bit funky. What happens when it gets passed to the set_fact module:\n\nhttps://github.com/openstack/bifrost/blob/4757b87b24712540d6d8dc4680d847511298531c/playbooks/roles/bifrost-deploy-nodes-dynamic/tasks/main.yml#L79\n\ndoes it use the omit place holder literally? If so, I guess we really want to exclude this variable rather than set it to null.\n\nI did not know omit would work as the dictionary key, but it does seem to remove omit that key from the dict, e.g:\n\n\t- hosts: localhost\n\t  tasks:\n\t    - set_fact:\n\t\thello:\n\t\t  test: \"{{ noexist | default(omit) }}\"\n\t    - debug:\n\t\tmsg: \"{{ hello }}\"\n\nSeems to print:\n\n\tTASK [debug] *********************************************************************************************************************************************************************************\n\tok: [localhost] \u003d\u003e {\n\t    \"msg\": {}\n\t}","commit_id":"46d28dc7996efafca5be3c9f8280fbd291806f48"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"c19f26eda637dd5ffb3bb867da68393822b7c2af","unresolved":true,"context_lines":[{"line_number":19,"context_line":"    bifrost_hostvars:"},{"line_number":20,"context_line":"      addressing_mode: static"},{"line_number":21,"context_line":"      deploy_image_filename: \"{{ kolla_bifrost_deploy_image_filename }}\""},{"line_number":22,"context_line":"      deploy_image_rootfs: \"{{ kolla_bifrost_deploy_image_rootfs | default(omit, true) }}\""},{"line_number":23,"context_line":"      ipv4_interface_mac: \"{% if kolla_bifrost_ipv4_interface_mac is defined %}{{ kolla_bifrost_ipv4_interface_mac }}{% else %}{% raw %}{{ extra.pxe_interface_mac | default }}{% endraw %}{% endif %}\""},{"line_number":24,"context_line":"      ipv4_address: \"{{ admin_oc_net_name | net_ip }}\""},{"line_number":25,"context_line":"      ipv4_subnet_mask: \"{{ admin_oc_net_name | net_mask }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5b9855a3_c903fbe0","side":"PARENT","line":22,"in_reply_to":"0e184893_f502b840","updated":"2025-06-25 16:38:23.000000000","message":"right now the issue passed to the bifrost deploy:\n```\n        \"TASK [bifrost-deploy-nodes-dynamic : Set generated instance_info] **************\",                                                                                                                                           \n        \"task path: /bifrost-base-source/bifrost-base-archive-mt-2024.2/playbooks/roles/bifrost-deploy-nodes-dynamic/tasks/main.yml:74\",                                                                                              \n        \"ok: [controller0 -\u003e localhost] \u003d\u003e {\",                                                                                                                                                                                           \n        \"    \\\"ansible_facts\\\": {\",                                                                                                                                                                                                   \n        \"        \\\"instance_info\\\": {\",                                                                                                                                                                                               \n        \"            \\\"image_checksum\\\": \\\"1cf7260b799fc85721ebef6ed44d67b454b5ade4debee365b3974ca97ad5ba8f\\\",\",                                                                                                                      \n        \"            \\\"image_rootfs_uuid\\\": \\\"__omit_place_holder__7c0c6f43e7c79f68e8e4f0e7048a64e5629ba6a8\\\",\",                                                                                                                      \n        \"            \\\"image_source\\\": \\\"http://192.168.33.5:8080/deployment_image.qcow2\\\"\",                                                                                                                                  \n        \"        }\",                                                                                                                                                                                                                  \n        \"    },\",                                                                                                                                                                                                                     \n        \"    \\\"changed\\\": false\",                                                                                                                                                                                                     \n        \"}\"\n```","commit_id":"46d28dc7996efafca5be3c9f8280fbd291806f48"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"90cd5608da2b50770c562f97e0870b9f0259e35e","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    bifrost_hostvars:"},{"line_number":20,"context_line":"      addressing_mode: static"},{"line_number":21,"context_line":"      deploy_image_filename: \"{{ kolla_bifrost_deploy_image_filename }}\""},{"line_number":22,"context_line":"      deploy_image_rootfs: \"{{ kolla_bifrost_deploy_image_rootfs | default(omit, true) }}\""},{"line_number":23,"context_line":"      ipv4_interface_mac: \"{% if kolla_bifrost_ipv4_interface_mac is defined %}{{ kolla_bifrost_ipv4_interface_mac }}{% else %}{% raw %}{{ extra.pxe_interface_mac | default }}{% endraw %}{% endif %}\""},{"line_number":24,"context_line":"      ipv4_address: \"{{ admin_oc_net_name | net_ip }}\""},{"line_number":25,"context_line":"      ipv4_subnet_mask: \"{{ admin_oc_net_name | net_mask }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"c79150e2_152e93ff","side":"PARENT","line":22,"in_reply_to":"1c1761a7_49b19f01","updated":"2025-06-25 15:17:43.000000000","message":"That task and your test didn\u0027t use a template and didn\u0027t write a file.\nAccording the issue take a look on the files in the `/etc/bifrost/inventory/host_vars/` as for example in my previous comment.","commit_id":"46d28dc7996efafca5be3c9f8280fbd291806f48"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"d013bbcb98dd50717faaad050342a2e51a76b153","unresolved":true,"context_lines":[{"line_number":19,"context_line":"    bifrost_hostvars:"},{"line_number":20,"context_line":"      addressing_mode: static"},{"line_number":21,"context_line":"      deploy_image_filename: \"{{ kolla_bifrost_deploy_image_filename }}\""},{"line_number":22,"context_line":"      deploy_image_rootfs: \"{{ kolla_bifrost_deploy_image_rootfs | default(omit, true) }}\""},{"line_number":23,"context_line":"      ipv4_interface_mac: \"{% if kolla_bifrost_ipv4_interface_mac is defined %}{{ kolla_bifrost_ipv4_interface_mac }}{% else %}{% raw %}{{ extra.pxe_interface_mac | default }}{% endraw %}{% endif %}\""},{"line_number":24,"context_line":"      ipv4_address: \"{{ admin_oc_net_name | net_ip }}\""},{"line_number":25,"context_line":"      ipv4_subnet_mask: \"{{ admin_oc_net_name | net_mask }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"a65eff07_3162952d","side":"PARENT","line":22,"in_reply_to":"1d0bb9bc_23e93f62","updated":"2025-06-13 15:39:45.000000000","message":"Will, thanks for your research, but I didn\u0027t really understand what you were trying to prove? It shouldn\u0027t work the way you think.\n\nHere is the example of the ``/etc/bifrost/inventory/host_vars/controller0`` file from the default 2024.2 a-univerce-from-nothing installation:\n```\n---\n# This file is managed via Ansible. Do not edit.\n# Bifrost host variables for controller0\naddressing_mode: static\ndeploy_image_filename: deployment_image.qcow2\ndeploy_image_rootfs: __omit_place_holder__7c0c6f43e7c79f68e8e4f0e7048a64e5629ba6a8\nipv4_address: 192.168.33.3\nipv4_gateway: 192.168.33.4\nipv4_interface_mac: \u0027{{ extra.pxe_interface_mac | default }}\u0027                                                                                                                                                                         ipv4_nameserver:\n- 172.25.1.34\n- 172.25.1.35\nipv4_subnet_mask: 255.255.255.0\nnetwork_mtu: \u00271442\u0027\nuser_data_content: \u0027\u0027\nvlan_id: \u0027\u0027\n```\nIf you want to check your research, you need to do so, but the problem is well described on Ansible, and we have already fixed the same problem in Kolla-ansible before.","commit_id":"46d28dc7996efafca5be3c9f8280fbd291806f48"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"22de8f2e84e5de2167351a347eedb8e0eaae7f82","unresolved":true,"context_lines":[{"line_number":19,"context_line":"    bifrost_hostvars:"},{"line_number":20,"context_line":"      addressing_mode: static"},{"line_number":21,"context_line":"      deploy_image_filename: \"{{ kolla_bifrost_deploy_image_filename }}\""},{"line_number":22,"context_line":"      deploy_image_rootfs: \"{{ kolla_bifrost_deploy_image_rootfs | default(omit, true) }}\""},{"line_number":23,"context_line":"      ipv4_interface_mac: \"{% if kolla_bifrost_ipv4_interface_mac is defined %}{{ kolla_bifrost_ipv4_interface_mac }}{% else %}{% raw %}{{ extra.pxe_interface_mac | default }}{% endraw %}{% endif %}\""},{"line_number":24,"context_line":"      ipv4_address: \"{{ admin_oc_net_name | net_ip }}\""},{"line_number":25,"context_line":"      ipv4_subnet_mask: \"{{ admin_oc_net_name | net_mask }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"0e184893_f502b840","side":"PARENT","line":22,"in_reply_to":"2bdabfa0_9e86e190","updated":"2025-06-25 15:54:28.000000000","message":"let me check if we should also change `kolla_bifrost_deploy_image_rootfs` to an empty value in the `inventory/group_vars/all/bifrost`","commit_id":"46d28dc7996efafca5be3c9f8280fbd291806f48"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"ad97c935c4c9197f901bf9bafaf9629a52ed9de2","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    bifrost_hostvars:"},{"line_number":20,"context_line":"      addressing_mode: static"},{"line_number":21,"context_line":"      deploy_image_filename: \"{{ kolla_bifrost_deploy_image_filename }}\""},{"line_number":22,"context_line":"      deploy_image_rootfs: \"{{ kolla_bifrost_deploy_image_rootfs | default(omit, true) }}\""},{"line_number":23,"context_line":"      ipv4_interface_mac: \"{% if kolla_bifrost_ipv4_interface_mac is defined %}{{ kolla_bifrost_ipv4_interface_mac }}{% else %}{% raw %}{{ extra.pxe_interface_mac | default }}{% endraw %}{% endif %}\""},{"line_number":24,"context_line":"      ipv4_address: \"{{ admin_oc_net_name | net_ip }}\""},{"line_number":25,"context_line":"      ipv4_subnet_mask: \"{{ admin_oc_net_name | net_mask }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df0ec53d_230ee4f5","side":"PARENT","line":22,"in_reply_to":"5b9855a3_c903fbe0","updated":"2025-10-05 11:23:42.000000000","message":"https://review.opendev.org/c/openstack/bifrost/+/953336\nis merged","commit_id":"46d28dc7996efafca5be3c9f8280fbd291806f48"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"a857ba6836e0e542301fae05e6a77b816334a240","unresolved":true,"context_lines":[{"line_number":19,"context_line":"    bifrost_hostvars:"},{"line_number":20,"context_line":"      addressing_mode: static"},{"line_number":21,"context_line":"      deploy_image_filename: \"{{ kolla_bifrost_deploy_image_filename }}\""},{"line_number":22,"context_line":"      deploy_image_rootfs: \"{{ kolla_bifrost_deploy_image_rootfs | default(omit, true) }}\""},{"line_number":23,"context_line":"      ipv4_interface_mac: \"{% if kolla_bifrost_ipv4_interface_mac is defined %}{{ kolla_bifrost_ipv4_interface_mac }}{% else %}{% raw %}{{ extra.pxe_interface_mac | default }}{% endraw %}{% endif %}\""},{"line_number":24,"context_line":"      ipv4_address: \"{{ admin_oc_net_name | net_ip }}\""},{"line_number":25,"context_line":"      ipv4_subnet_mask: \"{{ admin_oc_net_name | net_mask }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1c1761a7_49b19f01","side":"PARENT","line":22,"in_reply_to":"a65eff07_3162952d","updated":"2025-06-25 15:02:23.000000000","message":"I was just trying to understand the behavior in bifrost. If you look at the link from my previous comment:\n\nhttps://github.com/openstack/bifrost/blob/4757b87b24712540d6d8dc4680d847511298531c/playbooks/roles/bifrost-deploy-nodes-dynamic/tasks/main.yml#L79\n\nYou can see they are using omit for a dictionary key. You have made it so deploy_image_rootfs is always defined, so I believe image_rootfs_uuid will be set to null instead of not including the image_rootfs_uuid key in the instance_info dict. I was wondering if it would be more correct to leave it undefined... does that make any more sense?","commit_id":"46d28dc7996efafca5be3c9f8280fbd291806f48"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"bcb12a1a81ebba723b35257e146cbddc8b799645","unresolved":true,"context_lines":[{"line_number":19,"context_line":"    bifrost_hostvars:"},{"line_number":20,"context_line":"      addressing_mode: static"},{"line_number":21,"context_line":"      deploy_image_filename: \"{{ kolla_bifrost_deploy_image_filename }}\""},{"line_number":22,"context_line":"      deploy_image_rootfs: \"{{ kolla_bifrost_deploy_image_rootfs | default(omit, true) }}\""},{"line_number":23,"context_line":"      ipv4_interface_mac: \"{% if kolla_bifrost_ipv4_interface_mac is defined %}{{ kolla_bifrost_ipv4_interface_mac }}{% else %}{% raw %}{{ extra.pxe_interface_mac | default }}{% endraw %}{% endif %}\""},{"line_number":24,"context_line":"      ipv4_address: \"{{ admin_oc_net_name | net_ip }}\""},{"line_number":25,"context_line":"      ipv4_subnet_mask: \"{{ admin_oc_net_name | net_mask }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1d0bb9bc_23e93f62","side":"PARENT","line":22,"in_reply_to":"c4e3be03_da04b9dd","updated":"2025-06-13 08:45:47.000000000","message":"And even this seems to work:\n\n\t---\n\n\t- hosts: localhost\n\t  vars:\n\t    bifrost_host_vars:\n\t      deploy_image_rootfs: \"{{ noexist | default(omit) }}\"\n\t  tasks:\n\t    - debug:\n\t\tmsg: \"{{ bifrost_host_vars }}\"\n\nand prints:\n\n\tTASK [debug] *********************************************************************************************************************************************************************************\n\tok: [localhost] \u003d\u003e {\n\t    \"msg\": {}\n\t}\n\nso I guess we are relying on some undocumented behaviour there","commit_id":"46d28dc7996efafca5be3c9f8280fbd291806f48"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"7d9c4ad21e9c784985aeb8e1de8d7f63bad14a18","unresolved":true,"context_lines":[{"line_number":19,"context_line":"    bifrost_hostvars:"},{"line_number":20,"context_line":"      addressing_mode: static"},{"line_number":21,"context_line":"      deploy_image_filename: \"{{ kolla_bifrost_deploy_image_filename }}\""},{"line_number":22,"context_line":"      deploy_image_rootfs: \"{{ kolla_bifrost_deploy_image_rootfs | default(omit, true) }}\""},{"line_number":23,"context_line":"      ipv4_interface_mac: \"{% if kolla_bifrost_ipv4_interface_mac is defined %}{{ kolla_bifrost_ipv4_interface_mac }}{% else %}{% raw %}{{ extra.pxe_interface_mac | default }}{% endraw %}{% endif %}\""},{"line_number":24,"context_line":"      ipv4_address: \"{{ admin_oc_net_name | net_ip }}\""},{"line_number":25,"context_line":"      ipv4_subnet_mask: \"{{ admin_oc_net_name | net_mask }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"2bdabfa0_9e86e190","side":"PARENT","line":22,"in_reply_to":"c79150e2_152e93ff","updated":"2025-06-25 15:29:49.000000000","message":"I don\u0027t dispute that that is incorrect. I\u0027m just wondering if should not template out deploy_image_rootfs i.e leave it as undefined rather than templating out deploy_image_rootfs: null.","commit_id":"46d28dc7996efafca5be3c9f8280fbd291806f48"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"9e4c7d562ff90e2f17b4c2cac4a9d2c52eec0e39","unresolved":true,"context_lines":[{"line_number":80,"context_line":"          when: kolla_bifrost_use_introspection_mac | bool"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        - name: Ensure the Bifrost host variable files exist"},{"line_number":83,"context_line":"          copy:"},{"line_number":84,"context_line":"            content: |"},{"line_number":85,"context_line":"              ---"},{"line_number":86,"context_line":"              # This file is managed via Ansible. Do not edit."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"b4ce52f7_253a927a","line":83,"updated":"2025-06-25 18:42:40.000000000","message":"I think the issue is using copy module, which doesn\u0027t support omit","commit_id":"f293478090a1315d9a6b9896d934dc115107fe6d"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"e96c4ea4fc5d329ba538b42906ab71834060e302","unresolved":false,"context_lines":[{"line_number":80,"context_line":"          when: kolla_bifrost_use_introspection_mac | bool"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        - name: Ensure the Bifrost host variable files exist"},{"line_number":83,"context_line":"          copy:"},{"line_number":84,"context_line":"            content: |"},{"line_number":85,"context_line":"              ---"},{"line_number":86,"context_line":"              # This file is managed via Ansible. Do not edit."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"18919927_4425eef9","line":83,"in_reply_to":"b4ce52f7_253a927a","updated":"2025-06-25 19:12:47.000000000","message":"yep. copy+content, the same as template. both don\u0027t support omit.","commit_id":"f293478090a1315d9a6b9896d934dc115107fe6d"}]}
