)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"bdb69c82346a33436a44f905d4b219b4a2fa1ca5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"506f07d7_f90fcb80","updated":"2024-07-04 09:12:54.000000000","message":"I missed that file with state directory creates parent directories too, so we\u0027d have to check if all parent directories are writable too. I am wondering if a config option would work better e.g `ansible_control_host_use_become: false`. This could be better, as if for example you typo one of the paths, it wouldn\u0027t automatically try privilege escalation.","commit_id":"5a8a18200851cf9ff3f7c28a0b5df1220323c46b"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"53b17e785b258e4c4a54a59743b51107e18db982","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c6b42a04_8e93b98d","in_reply_to":"506f07d7_f90fcb80","updated":"2024-07-04 09:14:12.000000000","message":"Didn\u0027t mean to mark this as resolved.","commit_id":"5a8a18200851cf9ff3f7c28a0b5df1220323c46b"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"dbb693e2a6c4ebe39ea639217afc5dde65855751","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ba476fce_8a821097","in_reply_to":"c6b42a04_8e93b98d","updated":"2024-10-30 16:52:35.000000000","message":"Done","commit_id":"5a8a18200851cf9ff3f7c28a0b5df1220323c46b"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"8b263b345f29aec8e34ce8b81f489b8d129e414e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"eccb2cc7_d8b639d0","updated":"2024-07-05 12:00:45.000000000","message":"recheck","commit_id":"c2c918b1beea258da9701e7761ae3b144b716674"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"32571ec9584f23d027cfb8eb4e81fb6eb82c8f59","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"28840be3_1d5ca82a","updated":"2024-07-23 09:29:40.000000000","message":"Discovered in testing, this doesn\u0027t work with Rocky. ``bootstrap_package_dependencies`` includes ``vim``, but ``ansible_facts.packages.keys()`` names vim as:\n```\n  - vim-minimal\n  - vim-filesystem\n  - vim-common\n  - vim-enhanced\n```","commit_id":"07b2c0b8680c3c1693a7a1eadb09cc61810aafcd"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"5f91bf1b994708b62acabea9371a80d2ff966e27","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":13,"id":"cc96848c_21c03839","in_reply_to":"28840be3_1d5ca82a","updated":"2024-08-20 15:28:56.000000000","message":"Good spot. Broken with Meta packages 😭 I\u0027m going to update it only install packages if the kayobe_control_host_become flag is set. Seems like using package facts will be fragile with this and other meta packages.","commit_id":"07b2c0b8680c3c1693a7a1eadb09cc61810aafcd"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"a73dd8b6ad430772613d39e68fe4ce71b65c8749","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":13,"id":"9519696c_e3f296a3","in_reply_to":"52124138_dee357e0","updated":"2024-09-19 09:02:54.000000000","message":"It\u0027s a bit limiting, but could we just add comments saying \"don\u0027t use meta packages\"? \n\nIt seems the wrong choice to skip checking packages, we would still want them to be installed after all.","commit_id":"07b2c0b8680c3c1693a7a1eadb09cc61810aafcd"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"50d77e92d25578386b9b86b32f54bf51af28ba6e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":13,"id":"951c8a4e_f0afe94e","in_reply_to":"6d29e9e6_338c7361","updated":"2024-09-17 07:47:38.000000000","message":"I think you missed the code block here","commit_id":"07b2c0b8680c3c1693a7a1eadb09cc61810aafcd"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"df04488ab437078a711cbc97f73820c52a8fcf06","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"9a9ed1a9_914a10b4","in_reply_to":"9519696c_e3f296a3","updated":"2024-10-24 16:24:50.000000000","message":"Done","commit_id":"07b2c0b8680c3c1693a7a1eadb09cc61810aafcd"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"4e68e65ffa8776fff37b971b113e2c84a6a03ddb","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":13,"id":"52124138_dee357e0","in_reply_to":"951c8a4e_f0afe94e","updated":"2024-09-17 15:13:05.000000000","message":"Not sure how that got lost, but the idea was something like:\n\n```\nbootstrap_package_dependencies\n   - package: vim\n     metapackage: true\n```\n\nSo we could skip the check for some packages. There may be a more elegant solution...","commit_id":"07b2c0b8680c3c1693a7a1eadb09cc61810aafcd"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"951c01237252c1fd2480d1ac41729cbbc8bc3634","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":13,"id":"6d29e9e6_338c7361","in_reply_to":"cc96848c_21c03839","updated":"2024-08-20 15:45:06.000000000","message":"It is a shame to lose the the error message that we get from querying package facts, so submitting a change to stop using the metapackage. Perhaps we could support something like:","commit_id":"07b2c0b8680c3c1693a7a1eadb09cc61810aafcd"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"d36ab177ff3cd9d20856eff715a1508e298bdf30","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"e896d27a_64efbc54","updated":"2024-08-30 15:28:43.000000000","message":"recheck","commit_id":"8a02110ce24246c1a46a4f5408885cde488a90cb"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"ff58f486303061f9a370abe5704d06560bd0e28a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"b4e839b9_ba646740","updated":"2024-10-30 16:53:17.000000000","message":"Not going to land until 2025.1 due to dependent patch","commit_id":"893479e38658bfd05bcd016016202ca0f4ec5f53"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"be8cd285c493519e4c773b55f86f6cc21ab32156","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"1d4fc525_c2305c1a","updated":"2024-10-31 09:50:38.000000000","message":"recheck","commit_id":"893479e38658bfd05bcd016016202ca0f4ec5f53"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"81cfefdf5f2d3273fdd7a1d178e83f3226b395af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"0fd716e5_e63beae0","updated":"2025-05-09 09:52:32.000000000","message":"recheck checking again","commit_id":"a0d3401961047b03225d3d398e82fdf5b1760196"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"e76b59af2396e2e3b2381fc75651efa201a61b46","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"d8ead0f7_62b92f59","updated":"2025-05-09 09:51:53.000000000","message":"rechecking checking again","commit_id":"a0d3401961047b03225d3d398e82fdf5b1760196"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"afb6c27a5c4c8edca813ebf3e51c428fb09a70dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"9cf7f37e_eaafc2b9","updated":"2025-05-14 12:15:40.000000000","message":"This is looking good to me now. I\u0027ll hold off on the +2 until we\u0027re happy with the testing patch, as getting that working may need more changes here.","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"729b811cf30ac1b58ac0507dd63f31706b6eaa15","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"dcc02926_982ad8f4","updated":"2025-05-15 13:27:21.000000000","message":"recheck","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"22506cc447e56bf2f9ac9c3ad895bfe89097030d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"bb5d32e7_738d6d72","updated":"2025-05-15 15:55:06.000000000","message":"recheck unrelated failure?","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"ff69c4001ad9fe1e29756af98f3db457f9415fa8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"703e88e3_42a7988d","updated":"2025-05-14 13:58:09.000000000","message":"recheck: kayobe-overcloud-upgrade-ubuntu-noble has unrelated error when using tenks, ``HttpException: 501: Server Error for url: http://192.168.33.2:8774/v2.1/servers/36fe8f8f-a4fe-4001-a9c4-ef66edc64f88/action, The requested functionality is not supported.``","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"683ab000fbb357dbbc2b67c3d9ec31bc8e2f60fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"24c911c3_e24abf39","updated":"2025-05-16 08:07:38.000000000","message":"recheck: unrelated error, bifrost container didn\u0027t start running in kayobe-seed-upgrade-ubuntu-noble","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"}],"ansible/inventory/group_vars/all/kolla":[{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"48b3ea6e8cc9c9b8ad80d73e3f69efaa9511aa7d","unresolved":true,"context_lines":[{"line_number":498,"context_line":""},{"line_number":499,"context_line":"# Whether to use privilege escalation for operations on the control host."},{"line_number":500,"context_line":"# Default is {{ kayobe_control_host_become }}."},{"line_number":501,"context_line":"kolla_ansible_control_host_become: \"{{ kayobe_control_host_become | bool | default(\u0027true\u0027) }}\""},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"# Whether to create a user account, configure passwordless sudo and authorise"},{"line_number":504,"context_line":"# an SSH key for Kolla Ansible. Default is \u0027true\u0027."}],"source_content_type":"application/octet-stream","patch_set":25,"id":"8ea61527_af514845","line":501,"range":{"start_line":501,"start_character":39,"end_line":501,"end_character":90},"updated":"2025-05-16 11:56:42.000000000","message":"`kayobe_control_host_become | bool | default(true)`\nor\n`kayobe_control_host_become | default(\u0027true\u0027) | bool`\n?","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"83c838080e7365cef3222fe6054b4cfd0458401d","unresolved":false,"context_lines":[{"line_number":498,"context_line":""},{"line_number":499,"context_line":"# Whether to use privilege escalation for operations on the control host."},{"line_number":500,"context_line":"# Default is {{ kayobe_control_host_become }}."},{"line_number":501,"context_line":"kolla_ansible_control_host_become: \"{{ kayobe_control_host_become | bool | default(\u0027true\u0027) }}\""},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"# Whether to create a user account, configure passwordless sudo and authorise"},{"line_number":504,"context_line":"# an SSH key for Kolla Ansible. Default is \u0027true\u0027."}],"source_content_type":"application/octet-stream","patch_set":25,"id":"24376d06_527d03a4","line":501,"range":{"start_line":501,"start_character":39,"end_line":501,"end_character":90},"in_reply_to":"26761e61_64739df2","updated":"2025-05-16 13:46:48.000000000","message":"Done","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"28a586bfb7650bc384435e128dfd6f8535b1aef5","unresolved":true,"context_lines":[{"line_number":498,"context_line":""},{"line_number":499,"context_line":"# Whether to use privilege escalation for operations on the control host."},{"line_number":500,"context_line":"# Default is {{ kayobe_control_host_become }}."},{"line_number":501,"context_line":"kolla_ansible_control_host_become: \"{{ kayobe_control_host_become | bool | default(\u0027true\u0027) }}\""},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"# Whether to create a user account, configure passwordless sudo and authorise"},{"line_number":504,"context_line":"# an SSH key for Kolla Ansible. Default is \u0027true\u0027."}],"source_content_type":"application/octet-stream","patch_set":25,"id":"26761e61_64739df2","line":501,"range":{"start_line":501,"start_character":39,"end_line":501,"end_character":90},"in_reply_to":"8ea61527_af514845","updated":"2025-05-16 13:03:45.000000000","message":"Agreed: the default filter should be before the bool one, since kayobe_control_host_become being undefined will raise an error when passing through bool.\n\nHowever, do we really need the default filter since kayobe_control_host_become is defined in the Ansible inventory? I would remove it.","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"}],"ansible/roles/bootstrap/tasks/main.yml":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"bb641313e200fd07a06c1333ef616670d26cf021","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- block:"},{"line_number":3,"context_line":"  - name: Testing privilege escalation"},{"line_number":4,"context_line":"    raw: \"true\""},{"line_number":5,"context_line":"    become: true"},{"line_number":6,"context_line":"    failed_when: false"},{"line_number":7,"context_line":"    changed_when: false"},{"line_number":8,"context_line":"    register: privilege_escalation_result"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"  - name: Assert that we can escalate privileges"},{"line_number":11,"context_line":"    assert:"},{"line_number":12,"context_line":"      that:"},{"line_number":13,"context_line":"        - privilege_escalation_result is success"},{"line_number":14,"context_line":"        - \u0027\"password is required\" not in privilege_escalation_result.stderr\u0027"},{"line_number":15,"context_line":"      fail_msg: \u003e-"},{"line_number":16,"context_line":"        Could not escalate privileges. You can either: set kayobe_control_host_become: true,"},{"line_number":17,"context_line":"        set ansible_become_password, or set up passwordless sudo."},{"line_number":18,"context_line":"  when: kayobe_control_host_become | bool"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"- name: Include OS family-specific variables"},{"line_number":21,"context_line":"  include_vars: \"{{ ansible_facts.os_family }}.yml\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"0c4ce82d_10fa6cbd","line":18,"range":{"start_line":3,"start_character":0,"end_line":18,"end_character":41},"updated":"2025-05-16 13:11:16.000000000","message":"We normally intend more the block elements.","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"83c838080e7365cef3222fe6054b4cfd0458401d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- block:"},{"line_number":3,"context_line":"  - name: Testing privilege escalation"},{"line_number":4,"context_line":"    raw: \"true\""},{"line_number":5,"context_line":"    become: true"},{"line_number":6,"context_line":"    failed_when: false"},{"line_number":7,"context_line":"    changed_when: false"},{"line_number":8,"context_line":"    register: privilege_escalation_result"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"  - name: Assert that we can escalate privileges"},{"line_number":11,"context_line":"    assert:"},{"line_number":12,"context_line":"      that:"},{"line_number":13,"context_line":"        - privilege_escalation_result is success"},{"line_number":14,"context_line":"        - \u0027\"password is required\" not in privilege_escalation_result.stderr\u0027"},{"line_number":15,"context_line":"      fail_msg: \u003e-"},{"line_number":16,"context_line":"        Could not escalate privileges. You can either: set kayobe_control_host_become: true,"},{"line_number":17,"context_line":"        set ansible_become_password, or set up passwordless sudo."},{"line_number":18,"context_line":"  when: kayobe_control_host_become | bool"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"- name: Include OS family-specific variables"},{"line_number":21,"context_line":"  include_vars: \"{{ ansible_facts.os_family }}.yml\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"0fe73a1b_13a73bee","line":18,"range":{"start_line":3,"start_character":0,"end_line":18,"end_character":41},"in_reply_to":"0c4ce82d_10fa6cbd","updated":"2025-05-16 13:46:48.000000000","message":"Done","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"bb641313e200fd07a06c1333ef616670d26cf021","unresolved":true,"context_lines":[{"line_number":24,"context_line":"  ansible.builtin.package_facts:"},{"line_number":25,"context_line":"    manager: auto"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"- block:"},{"line_number":28,"context_line":"  - name: Assert that all packages are installed if not using privilege escalation"},{"line_number":29,"context_line":"    assert:"},{"line_number":30,"context_line":"      that: missing_packages is falsy"},{"line_number":31,"context_line":"      fail_msg: \u003e-"},{"line_number":32,"context_line":"        The following packages are missing from your system: {{ missing_packages | join(\u0027, \u0027) }} and"},{"line_number":33,"context_line":"        privilege escalation is disabled. Please get your system administator to install these packages"},{"line_number":34,"context_line":"        or enable kayobe_control_host_become."},{"line_number":35,"context_line":"    when: not kayobe_control_host_become | bool"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  - name: Ensure required packages are installed"},{"line_number":38,"context_line":"    package:"},{"line_number":39,"context_line":"      name: \"{{ bootstrap_package_dependencies }}\""},{"line_number":40,"context_line":"      state: present"},{"line_number":41,"context_line":"      cache_valid_time: \"{{ apt_cache_valid_time if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else omit }}\""},{"line_number":42,"context_line":"      update_cache: \"{{ True if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else omit }}\""},{"line_number":43,"context_line":"    become: True"},{"line_number":44,"context_line":"    when: missing_packages is truthy"},{"line_number":45,"context_line":"  vars:"},{"line_number":46,"context_line":"    missing_packages: \"{{ bootstrap_package_dependencies | difference(ansible_facts.packages.keys()) }}\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"- name: Check whether an SSH key exists"},{"line_number":49,"context_line":"  stat:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"e3cda70b_38bcfb5d","line":46,"range":{"start_line":27,"start_character":0,"end_line":46,"end_character":104},"updated":"2025-05-16 13:11:16.000000000","message":"We normally intend more the block elements.","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"83c838080e7365cef3222fe6054b4cfd0458401d","unresolved":false,"context_lines":[{"line_number":24,"context_line":"  ansible.builtin.package_facts:"},{"line_number":25,"context_line":"    manager: auto"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"- block:"},{"line_number":28,"context_line":"  - name: Assert that all packages are installed if not using privilege escalation"},{"line_number":29,"context_line":"    assert:"},{"line_number":30,"context_line":"      that: missing_packages is falsy"},{"line_number":31,"context_line":"      fail_msg: \u003e-"},{"line_number":32,"context_line":"        The following packages are missing from your system: {{ missing_packages | join(\u0027, \u0027) }} and"},{"line_number":33,"context_line":"        privilege escalation is disabled. Please get your system administator to install these packages"},{"line_number":34,"context_line":"        or enable kayobe_control_host_become."},{"line_number":35,"context_line":"    when: not kayobe_control_host_become | bool"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  - name: Ensure required packages are installed"},{"line_number":38,"context_line":"    package:"},{"line_number":39,"context_line":"      name: \"{{ bootstrap_package_dependencies }}\""},{"line_number":40,"context_line":"      state: present"},{"line_number":41,"context_line":"      cache_valid_time: \"{{ apt_cache_valid_time if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else omit }}\""},{"line_number":42,"context_line":"      update_cache: \"{{ True if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else omit }}\""},{"line_number":43,"context_line":"    become: True"},{"line_number":44,"context_line":"    when: missing_packages is truthy"},{"line_number":45,"context_line":"  vars:"},{"line_number":46,"context_line":"    missing_packages: \"{{ bootstrap_package_dependencies | difference(ansible_facts.packages.keys()) }}\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"- name: Check whether an SSH key exists"},{"line_number":49,"context_line":"  stat:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"6da37b5e_029ac786","line":46,"range":{"start_line":27,"start_character":0,"end_line":46,"end_character":104},"in_reply_to":"e3cda70b_38bcfb5d","updated":"2025-05-16 13:46:48.000000000","message":"Done","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"}],"ansible/roles/bootstrap/vars/RedHat.yml":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"f55a95b1d40ea6229e07b376219698719a4a1678","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# List of package dependencies to install."},{"line_number":3,"context_line":"# NOTE(wszusmki): meta pacakges are not supported in this list since we cannot determine if they"},{"line_number":4,"context_line":"# are installed via ansible facts."},{"line_number":5,"context_line":"bootstrap_package_dependencies:"},{"line_number":6,"context_line":"  - git"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"14481c8f_dd3225b8","line":3,"range":{"start_line":3,"start_character":0,"end_line":3,"end_character":96},"updated":"2025-05-16 12:40:00.000000000","message":"Line too long","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"f55a95b1d40ea6229e07b376219698719a4a1678","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# List of package dependencies to install."},{"line_number":3,"context_line":"# NOTE(wszusmki): meta pacakges are not supported in this list since we cannot determine if they"},{"line_number":4,"context_line":"# are installed via ansible facts."},{"line_number":5,"context_line":"bootstrap_package_dependencies:"},{"line_number":6,"context_line":"  - git"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"ac5ab3ad_36fda27d","line":3,"range":{"start_line":3,"start_character":23,"end_line":3,"end_character":31},"updated":"2025-05-16 12:40:00.000000000","message":"packages","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"83c838080e7365cef3222fe6054b4cfd0458401d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# List of package dependencies to install."},{"line_number":3,"context_line":"# NOTE(wszusmki): meta pacakges are not supported in this list since we cannot determine if they"},{"line_number":4,"context_line":"# are installed via ansible facts."},{"line_number":5,"context_line":"bootstrap_package_dependencies:"},{"line_number":6,"context_line":"  - git"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"3de56026_2c4918f2","line":3,"range":{"start_line":3,"start_character":0,"end_line":3,"end_character":96},"in_reply_to":"14481c8f_dd3225b8","updated":"2025-05-16 13:46:48.000000000","message":"Done","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"83c838080e7365cef3222fe6054b4cfd0458401d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# List of package dependencies to install."},{"line_number":3,"context_line":"# NOTE(wszusmki): meta pacakges are not supported in this list since we cannot determine if they"},{"line_number":4,"context_line":"# are installed via ansible facts."},{"line_number":5,"context_line":"bootstrap_package_dependencies:"},{"line_number":6,"context_line":"  - git"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"fd821f8c_41927fd9","line":3,"range":{"start_line":3,"start_character":23,"end_line":3,"end_character":31},"in_reply_to":"ac5ab3ad_36fda27d","updated":"2025-05-16 13:46:48.000000000","message":"Done","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"48b3ea6e8cc9c9b8ad80d73e3f69efaa9511aa7d","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# List of package dependencies to install."},{"line_number":3,"context_line":"# NOTE(wszusmki): meta pacakges are not supported in this list since we cannot determine if they"},{"line_number":4,"context_line":"# are installed via ansible facts."},{"line_number":5,"context_line":"bootstrap_package_dependencies:"},{"line_number":6,"context_line":"  - git"},{"line_number":7,"context_line":"  - vim-enhanced"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"ed85c85e_2711d8f3","line":4,"range":{"start_line":3,"start_character":0,"end_line":4,"end_character":34},"updated":"2025-05-16 11:56:42.000000000","message":"You forgot to edit the `Debian.yml` file. There is also a `vim` package.","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"83c838080e7365cef3222fe6054b4cfd0458401d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# List of package dependencies to install."},{"line_number":3,"context_line":"# NOTE(wszusmki): meta pacakges are not supported in this list since we cannot determine if they"},{"line_number":4,"context_line":"# are installed via ansible facts."},{"line_number":5,"context_line":"bootstrap_package_dependencies:"},{"line_number":6,"context_line":"  - git"},{"line_number":7,"context_line":"  - vim-enhanced"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"8e3a1180_a8f8a084","line":4,"range":{"start_line":3,"start_character":0,"end_line":4,"end_character":34},"in_reply_to":"d0f8b165_56c98a2e","updated":"2025-05-16 13:46:48.000000000","message":"Correct, I believe vim is a real package in Debian.","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"f55a95b1d40ea6229e07b376219698719a4a1678","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# List of package dependencies to install."},{"line_number":3,"context_line":"# NOTE(wszusmki): meta pacakges are not supported in this list since we cannot determine if they"},{"line_number":4,"context_line":"# are installed via ansible facts."},{"line_number":5,"context_line":"bootstrap_package_dependencies:"},{"line_number":6,"context_line":"  - git"},{"line_number":7,"context_line":"  - vim-enhanced"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"d0f8b165_56c98a2e","line":4,"range":{"start_line":3,"start_character":0,"end_line":4,"end_character":34},"in_reply_to":"ed85c85e_2711d8f3","updated":"2025-05-16 12:40:00.000000000","message":"Maybe because it is a regular package in Ubuntu, instead of a meta package?","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"}],"ansible/roles/kolla-ansible/defaults/main.yml":[{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"a3127b03560e068b4941bba0923de16983917217","unresolved":true,"context_lines":[{"line_number":78,"context_line":"kolla_ansible_become: false"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"# Whether to use privilege escalation for operations on the control host."},{"line_number":81,"context_line":"kolla_ansible_control_host_become: true"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"###############################################################################"},{"line_number":84,"context_line":"# Kolla-ansible inventory configuration."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"fbcce8ed_7b1e3545","line":81,"updated":"2025-05-14 09:32:21.000000000","message":"Can you add this commented out to https://github.com/openstack/kayobe/blob/ce044fa2af8575eb27ef9df837736a29c49b7925/etc/kayobe/kolla.yml#L232?","commit_id":"8237a60e92c27caba7fe3051ee90b6216157f577"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"a3127b03560e068b4941bba0923de16983917217","unresolved":true,"context_lines":[{"line_number":78,"context_line":"kolla_ansible_become: false"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"# Whether to use privilege escalation for operations on the control host."},{"line_number":81,"context_line":"kolla_ansible_control_host_become: true"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"###############################################################################"},{"line_number":84,"context_line":"# Kolla-ansible inventory configuration."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"652f906a_7bff3803","line":81,"updated":"2025-05-14 09:32:21.000000000","message":"I think this should be set to ``kayobe_control_host_become``, so we don\u0027t need to change two variables for what is essenatially one feature.\n```suggestion\nkolla_ansible_control_host_become: \"{{ kayobe_control_host_become | bool | default(\u0027true\u0027) }}\"\n```","commit_id":"8237a60e92c27caba7fe3051ee90b6216157f577"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"411034b9b893576ccf0b92463722f2ae8043ae3b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"kolla_ansible_become: false"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"# Whether to use privilege escalation for operations on the control host."},{"line_number":81,"context_line":"kolla_ansible_control_host_become: true"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"###############################################################################"},{"line_number":84,"context_line":"# Kolla-ansible inventory configuration."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"0dc1878b_63f1d102","line":81,"in_reply_to":"1202c30f_e5cc8548","updated":"2025-05-14 10:54:11.000000000","message":"Fix applied.","commit_id":"8237a60e92c27caba7fe3051ee90b6216157f577"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"f98764910b29b52e1da065853f956dbb34d7a9ab","unresolved":true,"context_lines":[{"line_number":78,"context_line":"kolla_ansible_become: false"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"# Whether to use privilege escalation for operations on the control host."},{"line_number":81,"context_line":"kolla_ansible_control_host_become: true"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"###############################################################################"},{"line_number":84,"context_line":"# Kolla-ansible inventory configuration."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"1202c30f_e5cc8548","line":81,"in_reply_to":"652f906a_7bff3803","updated":"2025-05-14 09:34:47.000000000","message":"edit: don\u0027t think you\u0027ll need the single quotes in ``default(true)`` ^","commit_id":"8237a60e92c27caba7fe3051ee90b6216157f577"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"411034b9b893576ccf0b92463722f2ae8043ae3b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"kolla_ansible_become: false"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"# Whether to use privilege escalation for operations on the control host."},{"line_number":81,"context_line":"kolla_ansible_control_host_become: true"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"###############################################################################"},{"line_number":84,"context_line":"# Kolla-ansible inventory configuration."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"9875b645_d93989c9","line":81,"in_reply_to":"fbcce8ed_7b1e3545","updated":"2025-05-14 10:54:11.000000000","message":"Cheers, I added the default to group_vars/all/kolla and then to etc/kayobe/kolla.yml to match.","commit_id":"8237a60e92c27caba7fe3051ee90b6216157f577"}],"ansible/roles/kolla-ansible/tasks/install.yml":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"0fc7f0319b54228915dd36a021f28fc647a96cf5","unresolved":true,"context_lines":[{"line_number":9,"context_line":"- block:"},{"line_number":10,"context_line":"  - name: Assert that epel-release package is installed if not using privilege escalation"},{"line_number":11,"context_line":"    assert:"},{"line_number":12,"context_line":"      that: \"\u0027epel-release\u0027 not in ansible_facts.packages.keys()\""},{"line_number":13,"context_line":"      fail_msg: \u003e-"},{"line_number":14,"context_line":"        The following packages are missing from your system: epel-release and"},{"line_number":15,"context_line":"        privilege escalation is disabled. Please get your system administator"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"44782224_8a5d9132","line":12,"range":{"start_line":12,"start_character":6,"end_line":12,"end_character":65},"updated":"2025-05-16 13:15:25.000000000","message":"Inverted logic? assert should be checking that peel-release is installed.","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"83c838080e7365cef3222fe6054b4cfd0458401d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"- block:"},{"line_number":10,"context_line":"  - name: Assert that epel-release package is installed if not using privilege escalation"},{"line_number":11,"context_line":"    assert:"},{"line_number":12,"context_line":"      that: \"\u0027epel-release\u0027 not in ansible_facts.packages.keys()\""},{"line_number":13,"context_line":"      fail_msg: \u003e-"},{"line_number":14,"context_line":"        The following packages are missing from your system: epel-release and"},{"line_number":15,"context_line":"        privilege escalation is disabled. Please get your system administator"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"46f4a6b8_89852087","line":12,"range":{"start_line":12,"start_character":6,"end_line":12,"end_character":65},"in_reply_to":"44782224_8a5d9132","updated":"2025-05-16 13:46:48.000000000","message":"Does look wrong, nice spot.","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"a3815a0abefe228e9e8451ed9039cebbd304706b","unresolved":true,"context_lines":[{"line_number":6,"context_line":"  ansible.builtin.package_facts:"},{"line_number":7,"context_line":"    manager: auto"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- block:"},{"line_number":10,"context_line":"  - name: Assert that epel-release package is installed if not using privilege escalation"},{"line_number":11,"context_line":"    assert:"},{"line_number":12,"context_line":"      that: \"\u0027epel-release\u0027 not in ansible_facts.packages.keys()\""},{"line_number":13,"context_line":"      fail_msg: \u003e-"},{"line_number":14,"context_line":"        The following packages are missing from your system: epel-release and"},{"line_number":15,"context_line":"        privilege escalation is disabled. Please get your system administator"},{"line_number":16,"context_line":"        to install these packages or enable kolla_ansible_control_host_become."},{"line_number":17,"context_line":"    when:"},{"line_number":18,"context_line":"      - not kolla_ansible_control_host_become | bool"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"  - name: Ensure EPEL repo is installed"},{"line_number":21,"context_line":"    package:"},{"line_number":22,"context_line":"      name: epel-release"},{"line_number":23,"context_line":"      state: present"},{"line_number":24,"context_line":"    become: True"},{"line_number":25,"context_line":"    when: \"\u0027epel-release\u0027 not in ansible_facts.packages.keys()\""},{"line_number":26,"context_line":"  vars:"},{"line_number":27,"context_line":"    ansible_python_interpreter: /usr/bin/python3"},{"line_number":28,"context_line":"  when:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"b67b40ae_70d9c988","line":25,"range":{"start_line":9,"start_character":0,"end_line":25,"end_character":63},"updated":"2025-05-16 13:12:56.000000000","message":"We normally intend more the block elements.","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"83c838080e7365cef3222fe6054b4cfd0458401d","unresolved":false,"context_lines":[{"line_number":6,"context_line":"  ansible.builtin.package_facts:"},{"line_number":7,"context_line":"    manager: auto"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- block:"},{"line_number":10,"context_line":"  - name: Assert that epel-release package is installed if not using privilege escalation"},{"line_number":11,"context_line":"    assert:"},{"line_number":12,"context_line":"      that: \"\u0027epel-release\u0027 not in ansible_facts.packages.keys()\""},{"line_number":13,"context_line":"      fail_msg: \u003e-"},{"line_number":14,"context_line":"        The following packages are missing from your system: epel-release and"},{"line_number":15,"context_line":"        privilege escalation is disabled. Please get your system administator"},{"line_number":16,"context_line":"        to install these packages or enable kolla_ansible_control_host_become."},{"line_number":17,"context_line":"    when:"},{"line_number":18,"context_line":"      - not kolla_ansible_control_host_become | bool"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"  - name: Ensure EPEL repo is installed"},{"line_number":21,"context_line":"    package:"},{"line_number":22,"context_line":"      name: epel-release"},{"line_number":23,"context_line":"      state: present"},{"line_number":24,"context_line":"    become: True"},{"line_number":25,"context_line":"    when: \"\u0027epel-release\u0027 not in ansible_facts.packages.keys()\""},{"line_number":26,"context_line":"  vars:"},{"line_number":27,"context_line":"    ansible_python_interpreter: /usr/bin/python3"},{"line_number":28,"context_line":"  when:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"cf38a317_83017ce3","line":25,"range":{"start_line":9,"start_character":0,"end_line":25,"end_character":63},"in_reply_to":"b67b40ae_70d9c988","updated":"2025-05-16 13:46:48.000000000","message":"Done","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"a3815a0abefe228e9e8451ed9039cebbd304706b","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    - ansible_facts.os_family \u003d\u003d \u0027RedHat\u0027"},{"line_number":30,"context_line":"    - kolla_ansible_install_epel | bool"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"- block:"},{"line_number":33,"context_line":"  - name: Assert that all packages are installed if not using privilege escalation"},{"line_number":34,"context_line":"    assert:"},{"line_number":35,"context_line":"      that: missing_packages is falsy"},{"line_number":36,"context_line":"      fail_msg: \u003e-"},{"line_number":37,"context_line":"        The following packages are missing from your system:"},{"line_number":38,"context_line":"        {{ missing_packages | join(\u0027, \u0027) }} and privilege escalation is disabled. Please get"},{"line_number":39,"context_line":"        your system administator to install these packages or enable"},{"line_number":40,"context_line":"        kolla_ansible_control_host_become."},{"line_number":41,"context_line":"    when: not kolla_ansible_control_host_become | bool"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  - name: Ensure required packages are installed"},{"line_number":44,"context_line":"    package:"},{"line_number":45,"context_line":"      name: \"{{ packages }}\""},{"line_number":46,"context_line":"      state: present"},{"line_number":47,"context_line":"      cache_valid_time: \"{{ apt_cache_valid_time if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else omit }}\""},{"line_number":48,"context_line":"      update_cache: \"{{ True if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else omit }}\""},{"line_number":49,"context_line":"    become: True"},{"line_number":50,"context_line":"    when: missing_packages is truthy"},{"line_number":51,"context_line":"  vars:"},{"line_number":52,"context_line":"    # NOTE(mgoddard): select non-empty packages."},{"line_number":53,"context_line":"    ansible_python_interpreter: /usr/bin/python3"},{"line_number":54,"context_line":"    packages: \"{{ kolla_ansible_package_dependencies | select | list }}\""},{"line_number":55,"context_line":"    missing_packages: \"{{ packages | difference(ansible_facts.packages.keys()) }}\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"- name: Ensure source code checkout parent directory exists"},{"line_number":58,"context_line":"  file:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"e6dae0e7_df936b9b","line":55,"range":{"start_line":32,"start_character":0,"end_line":55,"end_character":82},"updated":"2025-05-16 13:12:56.000000000","message":"We normally intend more the block elements.","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"83c838080e7365cef3222fe6054b4cfd0458401d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    - ansible_facts.os_family \u003d\u003d \u0027RedHat\u0027"},{"line_number":30,"context_line":"    - kolla_ansible_install_epel | bool"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"- block:"},{"line_number":33,"context_line":"  - name: Assert that all packages are installed if not using privilege escalation"},{"line_number":34,"context_line":"    assert:"},{"line_number":35,"context_line":"      that: missing_packages is falsy"},{"line_number":36,"context_line":"      fail_msg: \u003e-"},{"line_number":37,"context_line":"        The following packages are missing from your system:"},{"line_number":38,"context_line":"        {{ missing_packages | join(\u0027, \u0027) }} and privilege escalation is disabled. Please get"},{"line_number":39,"context_line":"        your system administator to install these packages or enable"},{"line_number":40,"context_line":"        kolla_ansible_control_host_become."},{"line_number":41,"context_line":"    when: not kolla_ansible_control_host_become | bool"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  - name: Ensure required packages are installed"},{"line_number":44,"context_line":"    package:"},{"line_number":45,"context_line":"      name: \"{{ packages }}\""},{"line_number":46,"context_line":"      state: present"},{"line_number":47,"context_line":"      cache_valid_time: \"{{ apt_cache_valid_time if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else omit }}\""},{"line_number":48,"context_line":"      update_cache: \"{{ True if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else omit }}\""},{"line_number":49,"context_line":"    become: True"},{"line_number":50,"context_line":"    when: missing_packages is truthy"},{"line_number":51,"context_line":"  vars:"},{"line_number":52,"context_line":"    # NOTE(mgoddard): select non-empty packages."},{"line_number":53,"context_line":"    ansible_python_interpreter: /usr/bin/python3"},{"line_number":54,"context_line":"    packages: \"{{ kolla_ansible_package_dependencies | select | list }}\""},{"line_number":55,"context_line":"    missing_packages: \"{{ packages | difference(ansible_facts.packages.keys()) }}\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"- name: Ensure source code checkout parent directory exists"},{"line_number":58,"context_line":"  file:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"6f9ee08d_05de49af","line":55,"range":{"start_line":32,"start_character":0,"end_line":55,"end_character":82},"in_reply_to":"e6dae0e7_df936b9b","updated":"2025-05-16 13:46:48.000000000","message":"Done","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"}],"doc/source/usage.rst":[{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"d2f75cf653f17a0ce522b6bbd5c54328f923aab3","unresolved":true,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":".. note::"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    This means that kayobe will be able to install OS packages or use paths"},{"line_number":93,"context_line":"    that are not writable for your user."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"It is possible to avoid privilege escalation on the control host. To use this feature set"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bb655e9d_75f2273b","line":92,"updated":"2024-07-12 14:26:57.000000000","message":"Should this be \"kayobe will NOT be able to\"?","commit_id":"51547aac206f0574c22364a96f9e76f5c1fd7068"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"9c21a00489a3f3aa0721ee183a179372f8b1c1a0","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":".. note::"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    This means that kayobe will be able to install OS packages or use paths"},{"line_number":93,"context_line":"    that are not writable for your user."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"It is possible to avoid privilege escalation on the control host. To use this feature set"}],"source_content_type":"text/x-rst","patch_set":12,"id":"872d7b25_45752930","line":92,"in_reply_to":"549a1b30_4694b19a","updated":"2024-09-18 12:52:11.000000000","message":"Done","commit_id":"51547aac206f0574c22364a96f9e76f5c1fd7068"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"b48b25a9a002f27788b7461fa9e6e894d44c4f0a","unresolved":true,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":".. note::"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    This means that kayobe will be able to install OS packages or use paths"},{"line_number":93,"context_line":"    that are not writable for your user."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"It is possible to avoid privilege escalation on the control host. To use this feature set"}],"source_content_type":"text/x-rst","patch_set":12,"id":"549a1b30_4694b19a","line":92,"in_reply_to":"bb655e9d_75f2273b","updated":"2024-07-18 08:50:34.000000000","message":"Good spot, thanks.","commit_id":"51547aac206f0574c22364a96f9e76f5c1fd7068"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"9b8ad502dd48b0c1bb20d4cbec6b519909173138","unresolved":true,"context_lines":[{"line_number":98,"context_line":".. code-block:: yaml"},{"line_number":99,"context_line":"  :caption: ``$KAYOBE_CONFIG_PATH/globals.yml``"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"   kayobe_control_host_use_become: false"}],"source_content_type":"text/x-rst","patch_set":17,"id":"93b7b029_976c907d","line":101,"updated":"2024-09-19 08:53:10.000000000","message":"You use `kayobe_control_host_use_become` in the docs and reno, but `kayobe_control_host_become` in the code.","commit_id":"ede0054e8040691ef2a4791d10e49739afdbfca3"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"dbb693e2a6c4ebe39ea639217afc5dde65855751","unresolved":false,"context_lines":[{"line_number":98,"context_line":".. code-block:: yaml"},{"line_number":99,"context_line":"  :caption: ``$KAYOBE_CONFIG_PATH/globals.yml``"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"   kayobe_control_host_use_become: false"}],"source_content_type":"text/x-rst","patch_set":17,"id":"6bc12962_ddd34d58","line":101,"in_reply_to":"93b7b029_976c907d","updated":"2024-10-30 16:52:35.000000000","message":"Done","commit_id":"ede0054e8040691ef2a4791d10e49739afdbfca3"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"b44546f469bd96579e52141a8587319fc51e498e","unresolved":true,"context_lines":[{"line_number":96,"context_line":"the following config option:"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":".. code-block:: yaml"},{"line_number":99,"context_line":"  :caption: ``$KAYOBE_CONFIG_PATH/globals.yml``"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"   kayobe_control_host_become: false"}],"source_content_type":"text/x-rst","patch_set":25,"id":"eb384787_fd400f71","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":47},"updated":"2025-05-16 13:17:03.000000000","message":"Add one leading space","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"83c838080e7365cef3222fe6054b4cfd0458401d","unresolved":false,"context_lines":[{"line_number":96,"context_line":"the following config option:"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":".. code-block:: yaml"},{"line_number":99,"context_line":"  :caption: ``$KAYOBE_CONFIG_PATH/globals.yml``"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"   kayobe_control_host_become: false"}],"source_content_type":"text/x-rst","patch_set":25,"id":"71ae0b47_99953329","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":47},"in_reply_to":"eb384787_fd400f71","updated":"2025-05-16 13:46:48.000000000","message":"Done","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"}],"releasenotes/notes/support-running-without-root-on-control-host-11e92dcc7477729c.yaml":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"85b45f62ea1bb6386959f4881c6f326a8d621d34","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    It is now possible to run without root privileges providing that you have"},{"line_number":5,"context_line":"    all of the kayobe package dependencies installed and you don\u0027t configure"},{"line_number":6,"context_line":"    paths that are not writeable for your user e.g for virtualenvs and output"},{"line_number":7,"context_line":"    directories. To use this feature set ``kayobe_control_host_become``"},{"line_number":8,"context_line":"    to ``false`` in ``$KAYOBE_CONFIG_PATH/globals.yml``."}],"source_content_type":"text/x-yaml","patch_set":25,"id":"bfd87a1a_7cb1c28c","line":8,"range":{"start_line":4,"start_character":0,"end_line":8,"end_character":56},"updated":"2025-05-16 13:20:33.000000000","message":"I would rephrase as:\n\nAllows running without root privileges, provided that all Kayobe package dependencies are installed and all configured paths are writable for the current user, e.g. Python virtualenvs and output directories.","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"83c838080e7365cef3222fe6054b4cfd0458401d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    It is now possible to run without root privileges providing that you have"},{"line_number":5,"context_line":"    all of the kayobe package dependencies installed and you don\u0027t configure"},{"line_number":6,"context_line":"    paths that are not writeable for your user e.g for virtualenvs and output"},{"line_number":7,"context_line":"    directories. To use this feature set ``kayobe_control_host_become``"},{"line_number":8,"context_line":"    to ``false`` in ``$KAYOBE_CONFIG_PATH/globals.yml``."}],"source_content_type":"text/x-yaml","patch_set":25,"id":"b439aa15_03e282aa","line":8,"range":{"start_line":4,"start_character":0,"end_line":8,"end_character":56},"in_reply_to":"bfd87a1a_7cb1c28c","updated":"2025-05-16 13:46:48.000000000","message":"Done","commit_id":"d02ed4c6d5a2e79475a28802a6fa872adf5f2912"}]}
