)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"72bde118547929ee95fec0d803a75fd869ca068d","unresolved":true,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2026-01-12 13:03:44 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support for fail2ban in Kayobe"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds support for installing and configuring fail2ban in Kayobe using the"},{"line_number":10,"context_line":"ansible-galaxy package robertdebock.fail2ban:"},{"line_number":11,"context_line":"https://galaxy.ansible.com/ui/standalone/roles/robertdebock/fail2ban/"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ic484b2c4f6e261a5173ba8f5378258068f468fa2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ce4d0405_e869a3ae","line":10,"range":{"start_line":8,"start_character":0,"end_line":10,"end_character":45},"updated":"2026-01-12 13:11:15.000000000","message":"```suggestion\n\nAdds support for installing and configuring fail2ban in Kayobe using the\nrobertdebock.fail2ban Ansible role:\n```","commit_id":"0ad23a562c665e7442978e9f9c86652df14843ea"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"6808c3cf9fbf79892379f40228f55f519c8c8fcc","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2026-01-12 13:03:44 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support for fail2ban in Kayobe"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds support for installing and configuring fail2ban in Kayobe using the"},{"line_number":10,"context_line":"ansible-galaxy package robertdebock.fail2ban:"},{"line_number":11,"context_line":"https://galaxy.ansible.com/ui/standalone/roles/robertdebock/fail2ban/"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ic484b2c4f6e261a5173ba8f5378258068f468fa2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"16b9060c_82fa7027","line":10,"range":{"start_line":8,"start_character":0,"end_line":10,"end_character":45},"in_reply_to":"ce4d0405_e869a3ae","updated":"2026-01-12 13:28:38.000000000","message":"Done","commit_id":"0ad23a562c665e7442978e9f9c86652df14843ea"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"486024d0355171b7c174cf18f40c93638c58fef3","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support for fail2ban in Kayobe"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds support for installing and configuring fail2ban in Kayobe using the"},{"line_number":10,"context_line":"robertdebock.fail2ban Ansible role"},{"line_number":11,"context_line":"https://galaxy.ansible.com/ui/standalone/roles/robertdebock/fail2ban/"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":32,"id":"ef86aa00_19037cdb","line":9,"updated":"2026-03-04 16:44:34.000000000","message":"This change lacks a default configuration and/or examples in the documentation.","commit_id":"46ad92e8674353ec2a8d8336a617f84aa51cf7e0"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"7dda896734dd44e9ae863df18cf9df0841b42177","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support for fail2ban in Kayobe"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds support for installing and configuring fail2ban in Kayobe using the"},{"line_number":10,"context_line":"robertdebock.fail2ban Ansible role"},{"line_number":11,"context_line":"https://galaxy.ansible.com/ui/standalone/roles/robertdebock/fail2ban/"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":32,"id":"a0038a83_2b718e5d","line":9,"in_reply_to":"ef86aa00_19037cdb","updated":"2026-03-13 12:21:12.000000000","message":"Done","commit_id":"46ad92e8674353ec2a8d8336a617f84aa51cf7e0"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"72bde118547929ee95fec0d803a75fd869ca068d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e08d1757_3e2ae656","updated":"2026-01-12 13:11:15.000000000","message":"You might want to rebase this on top of your Ansible control host patch to make sure the ansible-control-host-configure.yml part is present.","commit_id":"0ad23a562c665e7442978e9f9c86652df14843ea"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"eeba452864e6053d9c64a9dd9d69ed7a757c28c8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6874e4e5_81d1b216","updated":"2026-01-13 11:06:09.000000000","message":"recheck: zuul isn\u0027t running any jobs for this patch","commit_id":"8a53aa83e630c8b020174047626cd42905f62db7"},{"author":{"_account_id":35010,"name":"Jack Hodgkiss","display_name":"jackhodgkiss","email":"jack@stackhpc.com","username":"jackhodgkiss"},"change_message_id":"d15fb5a0d01aa69339aa544cb62017440917b810","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"584ebc52_98d62714","updated":"2026-01-14 13:02:58.000000000","message":"Looks like a nice addition to Kayobe. Just need the `ls` removed from infra-vms.","commit_id":"85cae4c6ef50375379e2b45689703afaed5fe454"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"219c5206e9535b56c4714daff4db4adf88b9395e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"b87d1023_d26df4bb","updated":"2026-01-21 09:49:55.000000000","message":"recheck: CI fixed","commit_id":"42b650b122c5baf461a260eccf884b6c1503dcfa"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"57bf9debbad10c2e1c06072a5719b23af59618c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"997b6ae2_2aed3cca","updated":"2026-01-21 15:08:52.000000000","message":"recheck: No URLs in mirrorlist","commit_id":"1bc6dbb4c99aa1928683e6ec776e8b5b2cffcd7a"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"ffbf2b6d5b41f63f332017392f339d8699885e72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"aa51a537_883d73bc","updated":"2026-01-21 13:20:47.000000000","message":"recheck: No URLs in mirrorlist","commit_id":"1bc6dbb4c99aa1928683e6ec776e8b5b2cffcd7a"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"742975217263a2cb73c9dd70238bb60aaeeb1f54","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"06a32b40_328c03f7","updated":"2026-01-21 13:08:10.000000000","message":"recheck: no URLS in mirrorlist","commit_id":"1bc6dbb4c99aa1928683e6ec776e8b5b2cffcd7a"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"5733b5fce917b6a9a6d0c20db1882671493bbcac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"de9dfdbe_1eb5dbb8","updated":"2026-02-27 15:47:44.000000000","message":"This change looks pretty good to me. I found some very minor issues.","commit_id":"b5ed6f2e54fd8cfe1a98e38ec685ed14405629e5"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"486024d0355171b7c174cf18f40c93638c58fef3","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":32,"id":"2ee4aee9_df90f8bd","updated":"2026-03-04 16:44:34.000000000","message":"Good start, but this change lacks default configuration and / or examples in the documentation. Enabling only SSH jail should be moved into the configuration and mentioned in the documentation as well. Please see inline comments.","commit_id":"46ad92e8674353ec2a8d8336a617f84aa51cf7e0"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"7dda896734dd44e9ae863df18cf9df0841b42177","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"a126eeba_970d6af6","in_reply_to":"2ee4aee9_df90f8bd","updated":"2026-03-13 12:21:12.000000000","message":"Done","commit_id":"46ad92e8674353ec2a8d8336a617f84aa51cf7e0"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"7dda896734dd44e9ae863df18cf9df0841b42177","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"46cf2eff_5dd56fed","updated":"2026-03-13 12:21:12.000000000","message":"Just waiting to see how the Rocky Zuul tests go with these changes","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"8ab1d8e6b03d189e08ee0ff9a8c8e7f9cfb80550","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"76755fb9_6a918df8","updated":"2026-03-18 09:41:59.000000000","message":"Thanks @leonie@stackhpc.com! This is looking good, and works in my testing. Just missing a couple of bits of config still","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"5a31be8d2ec6995408e0581c908f12d1009da9f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"fb5fc46d_7a171515","updated":"2026-03-13 12:29:01.000000000","message":"great. thanks.","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"1e73f4c0826cef06136eded4c36f9fb0196e3a4b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"a821f9ac_3893749b","updated":"2026-03-17 13:36:42.000000000","message":"recheck","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"e93e95354cc88850252c867e20f90a41ee5786ba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"a8799975_4e7c1cfc","updated":"2026-03-13 18:35:58.000000000","message":"recheck same as above","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"b183df88f83fe98004428f6abf6835dff777312e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"0097e7e7_ed99a523","updated":"2026-03-13 14:25:54.000000000","message":"recheck tarballs.o.o was down","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"06725738c44b14ff2dc06eb312923c2e680e4221","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"06ce6229_92d30589","updated":"2026-03-17 16:45:13.000000000","message":"recheck: IPA image downloads failing `\u0027Request failed: \u003curlopen error _ssl.c:981: The handshake operation timed out\u003e\u0027`","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"926f1e00e510c9dc438322e411d505e16ed8f07a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"a71c3201_0907ade4","updated":"2026-03-18 09:08:18.000000000","message":"recheck: urlopen error [Errno 101] Network is unreachable","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"b62cc5fadd13d039e36b0fd2dde528f965ce3141","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"52a031bb_62746652","updated":"2026-03-18 13:45:18.000000000","message":"Cheers! LGTM","commit_id":"69e977e25d1d451489c20a1d071bc9170ba96356"}],"ansible/fail2ban.yml":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"72bde118547929ee95fec0d803a75fd869ca068d","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Install fail2ban"},{"line_number":3,"context_line":"  hosts: seed:seed-hypervisor:overcloud:infra-vms"},{"line_number":4,"context_line":"  max_fail_percentage: \u003e-"},{"line_number":5,"context_line":"    {{ fail2ban_max_fail_percentage |"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"46fa933b_c0334a36","line":2,"range":{"start_line":2,"start_character":8,"end_line":2,"end_character":15},"updated":"2026-01-12 13:11:15.000000000","message":"```suggestion\n- name: Configure fail2ban\n```","commit_id":"0ad23a562c665e7442978e9f9c86652df14843ea"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"6808c3cf9fbf79892379f40228f55f519c8c8fcc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Install fail2ban"},{"line_number":3,"context_line":"  hosts: seed:seed-hypervisor:overcloud:infra-vms"},{"line_number":4,"context_line":"  max_fail_percentage: \u003e-"},{"line_number":5,"context_line":"    {{ fail2ban_max_fail_percentage |"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"45a153d9_d8cdd9f2","line":2,"range":{"start_line":2,"start_character":8,"end_line":2,"end_character":15},"in_reply_to":"46fa933b_c0334a36","updated":"2026-01-12 13:28:38.000000000","message":"Done","commit_id":"0ad23a562c665e7442978e9f9c86652df14843ea"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"486024d0355171b7c174cf18f40c93638c58fef3","unresolved":true,"context_lines":[{"line_number":12,"context_line":"    - role: robertdebock.fail2ban"},{"line_number":13,"context_line":"      become: true"},{"line_number":14,"context_line":"      when: fail2ban_enabled | bool"},{"line_number":15,"context_line":"  vars:"},{"line_number":16,"context_line":"    # TODO (L-Chams): Remove fail2ban_sender override when PR https://github.com/robertdebock/ansible-role-fail2ban/pull/18 is merged."},{"line_number":17,"context_line":"    fail2ban_sender: ansible_facts.fqdn"},{"line_number":18,"context_line":"    fail2ban_jail_configuration:"},{"line_number":19,"context_line":"      - option: enabled"},{"line_number":20,"context_line":"        value: \"true\""},{"line_number":21,"context_line":"        section: sshd"}],"source_content_type":"text/x-yaml","patch_set":32,"id":"5ceab6ca_547147ba","line":21,"range":{"start_line":15,"start_character":2,"end_line":21,"end_character":21},"updated":"2026-03-04 16:44:34.000000000","message":"This should be moved into the configuration and documented.","commit_id":"46ad92e8674353ec2a8d8336a617f84aa51cf7e0"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"7dda896734dd44e9ae863df18cf9df0841b42177","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    - role: robertdebock.fail2ban"},{"line_number":13,"context_line":"      become: true"},{"line_number":14,"context_line":"      when: fail2ban_enabled | bool"},{"line_number":15,"context_line":"  vars:"},{"line_number":16,"context_line":"    # TODO (L-Chams): Remove fail2ban_sender override when PR https://github.com/robertdebock/ansible-role-fail2ban/pull/18 is merged."},{"line_number":17,"context_line":"    fail2ban_sender: ansible_facts.fqdn"},{"line_number":18,"context_line":"    fail2ban_jail_configuration:"},{"line_number":19,"context_line":"      - option: enabled"},{"line_number":20,"context_line":"        value: \"true\""},{"line_number":21,"context_line":"        section: sshd"}],"source_content_type":"text/x-yaml","patch_set":32,"id":"5cf54d8f_c4e4a580","line":21,"range":{"start_line":15,"start_character":2,"end_line":21,"end_character":21},"in_reply_to":"5ceab6ca_547147ba","updated":"2026-03-13 12:21:12.000000000","message":"Done","commit_id":"46ad92e8674353ec2a8d8336a617f84aa51cf7e0"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"522d93df297caf45db41816afa7589d84bbb7024","unresolved":false,"context_lines":[{"line_number":14,"context_line":"      when: fail2ban_enabled | bool"},{"line_number":15,"context_line":"  vars:"},{"line_number":16,"context_line":"    # TODO (L-Chams): Remove fail2ban_sender override when PR https://github.com/robertdebock/ansible-role-fail2ban/pull/18 is merged."},{"line_number":17,"context_line":"    fail2ban_sender: root@{{ ansible_facts.fqdn }}"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"807c8560_2f637c14","line":17,"updated":"2026-03-17 17:48:02.000000000","message":"I think this is reasonable if we eventually want to drop it. Does mean you need to use extra vars to override it though:\n\nhttps://docs.ansible.com/projects/ansible/latest/playbook_guide/playbooks_variables.html#understanding-variable-precedence\n\n`Play vars` have higher precedence than `Inventory group_vars/*`","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"}],"ansible/inventory/group_vars/all/ansible-control":[{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"5733b5fce917b6a9a6d0c20db1882671493bbcac","unresolved":true,"context_lines":[{"line_number":129,"context_line":"###############################################################################"},{"line_number":130,"context_line":"# Ansible control host fail2ban configuration."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"# Whether to install and enable fail2ban."},{"line_number":133,"context_line":"ansible_control_fail2ban_enabled: false"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"###############################################################################"}],"source_content_type":"application/octet-stream","patch_set":31,"id":"2d9d2c59_2fc88480","line":132,"updated":"2026-02-27 15:47:44.000000000","message":"nit: We try to include the default in the comment. e.g:\n\n    Default is false.\n\nGranted this is missing from some variables, but I consider it best practice.","commit_id":"b5ed6f2e54fd8cfe1a98e38ec685ed14405629e5"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"69fa47c4193dce0bb53d3b4ea7f50c487ce8f564","unresolved":false,"context_lines":[{"line_number":129,"context_line":"###############################################################################"},{"line_number":130,"context_line":"# Ansible control host fail2ban configuration."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"# Whether to install and enable fail2ban."},{"line_number":133,"context_line":"ansible_control_fail2ban_enabled: false"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"###############################################################################"}],"source_content_type":"application/octet-stream","patch_set":31,"id":"3490e2be_6c62392b","line":132,"in_reply_to":"2d9d2c59_2fc88480","updated":"2026-03-04 08:35:12.000000000","message":"Done, thanks for the heads up!","commit_id":"b5ed6f2e54fd8cfe1a98e38ec685ed14405629e5"}],"ansible/inventory/group_vars/all/storage":[{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"8ab1d8e6b03d189e08ee0ff9a8c8e7f9cfb80550","unresolved":true,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"# Whether to install and enable fail2ban."},{"line_number":180,"context_line":"storage_fail2ban_enabled: false"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"###############################################################################"},{"line_number":183,"context_line":"# Storage node swap configuration."},{"line_number":184,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":34,"id":"716f3591_b77f2bb5","line":181,"updated":"2026-03-18 09:41:59.000000000","message":"The storage nodes are missing the jail config","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"6a5f247ac41a778ed691e73b3c609ce2259d98da","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"# Whether to install and enable fail2ban."},{"line_number":180,"context_line":"storage_fail2ban_enabled: false"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"###############################################################################"},{"line_number":183,"context_line":"# Storage node swap configuration."},{"line_number":184,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":34,"id":"e83d61fd_cab38d15","line":181,"in_reply_to":"716f3591_b77f2bb5","updated":"2026-03-18 13:31:49.000000000","message":"Done","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"}],"ansible/inventory/group_vars/infra-vms/fail2ban":[{"author":{"_account_id":35010,"name":"Jack Hodgkiss","display_name":"jackhodgkiss","email":"jack@stackhpc.com","username":"jackhodgkiss"},"change_message_id":"d15fb5a0d01aa69339aa544cb62017440917b810","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# Whether to install and enable fail2ban"},{"line_number":3,"context_line":"fail2ban_enabled: \"{{ infra_vm_fail2ban_enabled }}\""},{"line_number":4,"context_line":"ls"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"92cfa723_11ed28da","line":4,"range":{"start_line":4,"start_character":0,"end_line":4,"end_character":2},"updated":"2026-01-14 13:02:58.000000000","message":"This looks like it was added by mistake.","commit_id":"85cae4c6ef50375379e2b45689703afaed5fe454"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"d1ca5eaf2f7485cab59d1c6f500285f2a54d2396","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# Whether to install and enable fail2ban"},{"line_number":3,"context_line":"fail2ban_enabled: \"{{ infra_vm_fail2ban_enabled }}\""},{"line_number":4,"context_line":"ls"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"774027a3_c9cae47b","line":4,"range":{"start_line":4,"start_character":0,"end_line":4,"end_character":2},"in_reply_to":"92cfa723_11ed28da","updated":"2026-01-14 13:19:54.000000000","message":"Good catch, thanks for that! All sorted now.","commit_id":"85cae4c6ef50375379e2b45689703afaed5fe454"}],"ansible/inventory/group_vars/storage/fail2ban":[{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"8ab1d8e6b03d189e08ee0ff9a8c8e7f9cfb80550","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":34,"id":"bfc2868c_4d27a1b3","line":4,"updated":"2026-03-18 09:41:59.000000000","message":"Missing jail config here too","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"6a5f247ac41a778ed691e73b3c609ce2259d98da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"6e004609_985f9d07","line":4,"in_reply_to":"bfc2868c_4d27a1b3","updated":"2026-03-18 13:31:49.000000000","message":"Done","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"}],"doc/source/configuration/reference/hosts.rst":[{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"098885770124751e1545018c6c1a214eb80fa5af","unresolved":true,"context_lines":[{"line_number":693,"context_line":""},{"line_number":694,"context_line":".. _configuration-hosts-tuned:"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"Fail2Ban"},{"line_number":697,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":698,"context_line":"@tags:"},{"line_number":699,"context_line":"  | ``fail2ban``"}],"source_content_type":"text/x-rst","patch_set":20,"id":"5638bb06_f843e00d","line":696,"updated":"2026-01-15 15:30:15.000000000","message":"Will move this above ``.. _configuration-hosts-tuned: `` in the next patchset. This was an accident.","commit_id":"2c650b9a1a01ce4fbb8780b7cc210e1e38ab1982"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"8a30d7bc4eca7ca2530b999ad227377498629262","unresolved":false,"context_lines":[{"line_number":693,"context_line":""},{"line_number":694,"context_line":".. _configuration-hosts-tuned:"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"Fail2Ban"},{"line_number":697,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":698,"context_line":"@tags:"},{"line_number":699,"context_line":"  | ``fail2ban``"}],"source_content_type":"text/x-rst","patch_set":20,"id":"5ab928dd_364ff3ff","line":696,"in_reply_to":"5638bb06_f843e00d","updated":"2026-01-16 13:37:09.000000000","message":"Done","commit_id":"2c650b9a1a01ce4fbb8780b7cc210e1e38ab1982"},{"author":{"_account_id":35264,"name":"Alex Welsh","email":"alex@stackhpc.com","username":"alex-welsh"},"change_message_id":"2a0af1f03c71f707ddd7591db3661a4db089980d","unresolved":true,"context_lines":[{"line_number":691,"context_line":"Note that despite the name, this will not actively enable UFW. It may do so in"},{"line_number":692,"context_line":"the future."},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"Fail2Ban"},{"line_number":695,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":696,"context_line":"@tags:"},{"line_number":697,"context_line":"  | ``fail2ban``"}],"source_content_type":"text/x-rst","patch_set":30,"id":"681d3bb9_b2d41df6","line":694,"updated":"2026-02-23 10:01:40.000000000","message":"I notice that epel is enabled in the test configuration. If it\u0027s required to run the role, it\u0027s worth mentioning that in the doc section here","commit_id":"ce51174af883589f822279791cac5d8e41ae8874"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"759ea7cfb3a1711f883624f9ac9373d9ac0e55f2","unresolved":false,"context_lines":[{"line_number":691,"context_line":"Note that despite the name, this will not actively enable UFW. It may do so in"},{"line_number":692,"context_line":"the future."},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"Fail2Ban"},{"line_number":695,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":696,"context_line":"@tags:"},{"line_number":697,"context_line":"  | ``fail2ban``"}],"source_content_type":"text/x-rst","patch_set":30,"id":"519d4d5a_066777f4","line":694,"in_reply_to":"681d3bb9_b2d41df6","updated":"2026-02-23 11:17:35.000000000","message":"Done, thanks for pointing that out!","commit_id":"ce51174af883589f822279791cac5d8e41ae8874"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"486024d0355171b7c174cf18f40c93638c58fef3","unresolved":true,"context_lines":[{"line_number":691,"context_line":"Note that despite the name, this will not actively enable UFW. It may do so in"},{"line_number":692,"context_line":"the future."},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"Fail2Ban"},{"line_number":695,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":696,"context_line":"@tags:"},{"line_number":697,"context_line":"  | ``fail2ban``"}],"source_content_type":"text/x-rst","patch_set":32,"id":"78f771d2_531e14d4","line":694,"range":{"start_line":694,"start_character":0,"end_line":694,"end_character":8},"updated":"2026-03-04 16:44:34.000000000","message":"This chapter lacks a configuration examples.","commit_id":"46ad92e8674353ec2a8d8336a617f84aa51cf7e0"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"7dda896734dd44e9ae863df18cf9df0841b42177","unresolved":false,"context_lines":[{"line_number":691,"context_line":"Note that despite the name, this will not actively enable UFW. It may do so in"},{"line_number":692,"context_line":"the future."},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"Fail2Ban"},{"line_number":695,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":696,"context_line":"@tags:"},{"line_number":697,"context_line":"  | ``fail2ban``"}],"source_content_type":"text/x-rst","patch_set":32,"id":"00cf9307_a2f0ef89","line":694,"range":{"start_line":694,"start_character":0,"end_line":694,"end_character":8},"in_reply_to":"78f771d2_531e14d4","updated":"2026-03-13 12:21:12.000000000","message":"Done","commit_id":"46ad92e8674353ec2a8d8336a617f84aa51cf7e0"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"486024d0355171b7c174cf18f40c93638c58fef3","unresolved":true,"context_lines":[{"line_number":700,"context_line":"ones that conduct too many failed login attempts. Kayobe can install and configure"},{"line_number":701,"context_line":"Fail2Ban on hosts."},{"line_number":702,"context_line":""},{"line_number":703,"context_line":"In order to use fail2ban, it is important to note that the user should enable"},{"line_number":704,"context_line":"``dnf_install_epel`` in their configuration."},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"The following variables can be used to set whether to enable fail2ban:"},{"line_number":707,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"c02356cf_8ff90ae7","line":704,"range":{"start_line":703,"start_character":1,"end_line":704,"end_character":44},"updated":"2026-03-04 16:44:34.000000000","message":"Should be mentioned Rocky Linux / CentOS.","commit_id":"46ad92e8674353ec2a8d8336a617f84aa51cf7e0"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"7dda896734dd44e9ae863df18cf9df0841b42177","unresolved":false,"context_lines":[{"line_number":700,"context_line":"ones that conduct too many failed login attempts. Kayobe can install and configure"},{"line_number":701,"context_line":"Fail2Ban on hosts."},{"line_number":702,"context_line":""},{"line_number":703,"context_line":"In order to use fail2ban, it is important to note that the user should enable"},{"line_number":704,"context_line":"``dnf_install_epel`` in their configuration."},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"The following variables can be used to set whether to enable fail2ban:"},{"line_number":707,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"0fa5c546_5c7f3ab9","line":704,"range":{"start_line":703,"start_character":1,"end_line":704,"end_character":44},"in_reply_to":"c02356cf_8ff90ae7","updated":"2026-03-13 12:21:12.000000000","message":"Done","commit_id":"46ad92e8674353ec2a8d8336a617f84aa51cf7e0"}],"etc/kayobe/ansible-control.yml":[{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"8ab1d8e6b03d189e08ee0ff9a8c8e7f9cfb80550","unresolved":true,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Whether to install and enable fail2ban."},{"line_number":118,"context_line":"#ansible_control_fail2ban_enabled:"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"###############################################################################"},{"line_number":121,"context_line":"# Ansible control host swap configuration."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":34,"id":"fbee66a6_a66a2fba","line":119,"updated":"2026-03-18 09:41:59.000000000","message":"Could you add the jail config commented out here too? Same for all other host groups","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"6a5f247ac41a778ed691e73b3c609ce2259d98da","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Whether to install and enable fail2ban."},{"line_number":118,"context_line":"#ansible_control_fail2ban_enabled:"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"###############################################################################"},{"line_number":121,"context_line":"# Ansible control host swap configuration."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":34,"id":"c8e59bd2_0cd51840","line":119,"in_reply_to":"fbee66a6_a66a2fba","updated":"2026-03-18 13:31:49.000000000","message":"Done","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"}],"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":"5733b5fce917b6a9a6d0c20db1882671493bbcac","unresolved":true,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"# Test fail2ban configuration"},{"line_number":217,"context_line":"{% if fail2ban_enabled | bool %}"},{"line_number":218,"context_line":"dnf_install_epel: true"},{"line_number":219,"context_line":"dnf_use_local_mirror: true"},{"line_number":220,"context_line":"controller_fail2ban_enabled: true"},{"line_number":221,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":31,"id":"de48f20b_c4d28082","line":218,"updated":"2026-02-27 15:47:44.000000000","message":"This causes the following warning:\n\n\t[WARNING]: Found duplicate mapping key \u0027dnf_install_epel\u0027.\n\tOrigin: /home/zuul/src/opendev.org/openstack/kayobe-config-dev/etc/kayobe/zz-30-overrides.yml:164:1\n\n\t162\n\t163 # Test fail2ban configuration\n\t164 dnf_install_epel: true\n\t    ^ column 1\n\nSeems to already be defined here:\n\nhttps://github.com/openstack/kayobe/blob/aa230f9d05eea695f2aaa09a348f56a2079e6eda/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2#L174\n\nYou could just add dnf_use_local_mirror there if it is required?","commit_id":"b5ed6f2e54fd8cfe1a98e38ec685ed14405629e5"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"69fa47c4193dce0bb53d3b4ea7f50c487ce8f564","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"# Test fail2ban configuration"},{"line_number":217,"context_line":"{% if fail2ban_enabled | bool %}"},{"line_number":218,"context_line":"dnf_install_epel: true"},{"line_number":219,"context_line":"dnf_use_local_mirror: true"},{"line_number":220,"context_line":"controller_fail2ban_enabled: true"},{"line_number":221,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":31,"id":"60cf7109_c7f112d4","line":218,"in_reply_to":"de48f20b_c4d28082","updated":"2026-03-04 08:35:12.000000000","message":"All changed, thanks!","commit_id":"b5ed6f2e54fd8cfe1a98e38ec685ed14405629e5"}],"releasenotes/notes/support-fail2ban-b25a26d66cfbcaaf.yaml":[{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"486024d0355171b7c174cf18f40c93638c58fef3","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":"    Adds support for installing and configuring fail2ban."}],"source_content_type":"text/x-yaml","patch_set":32,"id":"74fcb3fc_26e65f33","line":4,"range":{"start_line":4,"start_character":36,"end_line":4,"end_character":47},"updated":"2026-03-04 16:44:34.000000000","message":"This change lacks a default configuration and/or examples in the documentation.","commit_id":"46ad92e8674353ec2a8d8336a617f84aa51cf7e0"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"7dda896734dd44e9ae863df18cf9df0841b42177","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":"    Adds support for installing and configuring fail2ban."}],"source_content_type":"text/x-yaml","patch_set":32,"id":"ef42a80e_0d195385","line":4,"range":{"start_line":4,"start_character":36,"end_line":4,"end_character":47},"in_reply_to":"74fcb3fc_26e65f33","updated":"2026-03-13 12:21:12.000000000","message":"Done","commit_id":"46ad92e8674353ec2a8d8336a617f84aa51cf7e0"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"8ab1d8e6b03d189e08ee0ff9a8c8e7f9cfb80550","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":"    Adds support for installing and configuring fail2ban."}],"source_content_type":"text/x-yaml","patch_set":34,"id":"06e84498_f74ab1d3","line":4,"updated":"2026-03-18 09:41:59.000000000","message":"Could you point to the docs for more details?\n`http://docs.openstack.org/kayobe/latest/configuration/reference/hosts.html#fail2ban`","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"},{"author":{"_account_id":38288,"name":"Leonie Chamberlin-Medd","display_name":"Leonie Chamberlin-Medd","email":"leonie@stackhpc.com","username":"LChams"},"change_message_id":"6a5f247ac41a778ed691e73b3c609ce2259d98da","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":"    Adds support for installing and configuring fail2ban."}],"source_content_type":"text/x-yaml","patch_set":34,"id":"0361759d_15ee689f","line":4,"in_reply_to":"06e84498_f74ab1d3","updated":"2026-03-18 13:31:49.000000000","message":"Done","commit_id":"bf01e01bd1beca4fef9d78a7e2625e513c938d3b"}]}
