)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"367165f7e5232b966d4712d3571ffcff8c9a32a4","unresolved":true,"context_lines":[{"line_number":42,"context_line":"* loadbalancer"},{"line_number":43,"context_line":"* magnum"},{"line_number":44,"context_line":"* manila"},{"line_number":45,"context_line":"* masakari"},{"line_number":46,"context_line":"* mistral"},{"line_number":47,"context_line":"* neutron"},{"line_number":48,"context_line":"* nova"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"6d5e0972_cdc65cb9","line":45,"updated":"2025-10-14 11:11:43.000000000","message":"Add a note that Masakari doesn\u0027t have healthcheck middleware in it\u0027s default api-paste config, so we check /","commit_id":"332fde9f564d3ec88c432c94c4ccfd560acd1fcd"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"1edec726d4f75f57c7682496e6e4d5e583cf904e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"* loadbalancer"},{"line_number":43,"context_line":"* magnum"},{"line_number":44,"context_line":"* manila"},{"line_number":45,"context_line":"* masakari"},{"line_number":46,"context_line":"* mistral"},{"line_number":47,"context_line":"* neutron"},{"line_number":48,"context_line":"* nova"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"544fba85_a05f9c75","line":45,"in_reply_to":"6d5e0972_cdc65cb9","updated":"2025-10-14 12:13:25.000000000","message":"Acknowledged","commit_id":"332fde9f564d3ec88c432c94c4ccfd560acd1fcd"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"367165f7e5232b966d4712d3571ffcff8c9a32a4","unresolved":true,"context_lines":[{"line_number":49,"context_line":"* nova-cell"},{"line_number":50,"context_line":"* octavia"},{"line_number":51,"context_line":"* opensearch"},{"line_number":52,"context_line":"* placement"},{"line_number":53,"context_line":"* rabbitmq"},{"line_number":54,"context_line":"* skyline"},{"line_number":55,"context_line":"* tacker"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"7d56d904_d84717fe","line":52,"updated":"2025-10-14 11:11:43.000000000","message":"ditto","commit_id":"332fde9f564d3ec88c432c94c4ccfd560acd1fcd"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"1edec726d4f75f57c7682496e6e4d5e583cf904e","unresolved":false,"context_lines":[{"line_number":49,"context_line":"* nova-cell"},{"line_number":50,"context_line":"* octavia"},{"line_number":51,"context_line":"* opensearch"},{"line_number":52,"context_line":"* placement"},{"line_number":53,"context_line":"* rabbitmq"},{"line_number":54,"context_line":"* skyline"},{"line_number":55,"context_line":"* tacker"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"648f37a5_7568475c","line":52,"in_reply_to":"7d56d904_d84717fe","updated":"2025-10-14 12:13:25.000000000","message":"Acknowledged","commit_id":"332fde9f564d3ec88c432c94c4ccfd560acd1fcd"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"2e42b8b0da60d4d88df7d6d06adc88e41fc8f868","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5415de30_b879f088","updated":"2025-10-06 09:58:44.000000000","message":"I\u0027d say the patch should be extended for all services","commit_id":"9b79d46401d38db61ab0b920159a2d71558d0042"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"111352a934f73a9afb1523e4911c41aa5db34d27","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"10afdf11_331214e1","in_reply_to":"5415de30_b879f088","updated":"2025-10-09 19:15:36.000000000","message":"Acknowledged","commit_id":"9b79d46401d38db61ab0b920159a2d71558d0042"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"9fbbbcc99d6b2db9c5e2a3906c2e4f02197f4c6b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"89fab00b_6395cd9c","updated":"2025-10-10 11:31:54.000000000","message":"recheck","commit_id":"c88f8842da87966bfc2edae9e75594d27e1af6dc"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"44db0efc3eb8453c1c72494a638ed9c0c7659f08","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"9e3e8f3c_48961633","updated":"2025-10-10 11:32:06.000000000","message":"recheck","commit_id":"c88f8842da87966bfc2edae9e75594d27e1af6dc"},{"author":{"_account_id":36765,"name":"Seunghun Lee","display_name":"Seunghun Lee","email":"seunghun@stackhpc.com","username":"seunghun1ee","status":"Cloud Engineer at StackHPC"},"change_message_id":"07e6f699f5ba5883008bdc687576ad363100ec09","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"7b3552f9_bd16acf1","updated":"2026-03-03 15:19:32.000000000","message":"This looks good. Can you resolve conflicts so we can move this forward? @vurmil@gmail.com","commit_id":"0ff6e8635428f59008dfb19b092ed08552f59f46"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"6d5ac678c006683aa344fe177d024a8af58d2bc7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"4dad004f_f92c77c2","updated":"2026-03-10 15:10:03.000000000","message":"recheck - horizon was broken","commit_id":"923b2bfd3aae850a95beb2d1770deec169d9abc1"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"73d87d38133cc78ee7ae393f7724a0546727e5f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"7b80866f_392d6f66","updated":"2026-04-12 09:09:24.000000000","message":"This has looked good for a while but got buried. I still like it 😊","commit_id":"3356d945e6326900c5b36727ebd2ce1ffaa4f53d"}],"ansible/roles/designate/defaults/main.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"0d3a521fff9d1d7542c4ea7acf7a96baeb5c5a30","unresolved":true,"context_lines":[{"line_number":151,"context_line":"designate_api_healthcheck_interval: \"{{ default_container_healthcheck_interval }}\""},{"line_number":152,"context_line":"designate_api_healthcheck_retries: \"{{ default_container_healthcheck_retries }}\""},{"line_number":153,"context_line":"designate_api_healthcheck_start_period: \"{{ default_container_healthcheck_start_period }}\""},{"line_number":154,"context_line":"designate_api_healthcheck_test: [\"CMD-SHELL\", \"curl -f http://{{ api_interface_address | put_address_in_context(\u0027url\u0027) }}:{{ designate_api_listen_port }} || exit 1\"]"},{"line_number":155,"context_line":"designate_api_healthcheck_timeout: \"{{ default_container_healthcheck_timeout }}\""},{"line_number":156,"context_line":"designate_api_healthcheck:"},{"line_number":157,"context_line":"  interval: \"{{ designate_api_healthcheck_interval }}\""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3126c7a7_81fc0aae","line":154,"updated":"2025-10-10 10:07:09.000000000","message":"what\u0027s wrong with healthcheck_curl?","commit_id":"45bbaa518928379141efea2b5cf685e42e4b04ef"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"7e461e40b9e284b0418f986f89fceee870edb981","unresolved":true,"context_lines":[{"line_number":151,"context_line":"designate_api_healthcheck_interval: \"{{ default_container_healthcheck_interval }}\""},{"line_number":152,"context_line":"designate_api_healthcheck_retries: \"{{ default_container_healthcheck_retries }}\""},{"line_number":153,"context_line":"designate_api_healthcheck_start_period: \"{{ default_container_healthcheck_start_period }}\""},{"line_number":154,"context_line":"designate_api_healthcheck_test: [\"CMD-SHELL\", \"curl -f http://{{ api_interface_address | put_address_in_context(\u0027url\u0027) }}:{{ designate_api_listen_port }} || exit 1\"]"},{"line_number":155,"context_line":"designate_api_healthcheck_timeout: \"{{ default_container_healthcheck_timeout }}\""},{"line_number":156,"context_line":"designate_api_healthcheck:"},{"line_number":157,"context_line":"  interval: \"{{ designate_api_healthcheck_interval }}\""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"354794f0_3486265f","line":154,"in_reply_to":"2b8ba2bb_772734fd","updated":"2025-10-10 10:36:23.000000000","message":"Exactly - I believe it doesn\u0027t make sense to use an external script when we can achieve the same thing with a single command. HAProxy is already doing the same availability testing, so I don\u0027t see the reason to use additional scripts for this purpose.\n\nThe healthcheck functionality should be handled by the load balancer or container orchestration directly, rather than maintaining a separate script that duplicates existing functionality.","commit_id":"45bbaa518928379141efea2b5cf685e42e4b04ef"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"9f68acf7795c88190e40b2f5d377215e39b29532","unresolved":true,"context_lines":[{"line_number":151,"context_line":"designate_api_healthcheck_interval: \"{{ default_container_healthcheck_interval }}\""},{"line_number":152,"context_line":"designate_api_healthcheck_retries: \"{{ default_container_healthcheck_retries }}\""},{"line_number":153,"context_line":"designate_api_healthcheck_start_period: \"{{ default_container_healthcheck_start_period }}\""},{"line_number":154,"context_line":"designate_api_healthcheck_test: [\"CMD-SHELL\", \"curl -f http://{{ api_interface_address | put_address_in_context(\u0027url\u0027) }}:{{ designate_api_listen_port }} || exit 1\"]"},{"line_number":155,"context_line":"designate_api_healthcheck_timeout: \"{{ default_container_healthcheck_timeout }}\""},{"line_number":156,"context_line":"designate_api_healthcheck:"},{"line_number":157,"context_line":"  interval: \"{{ designate_api_healthcheck_interval }}\""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"70ecd94d_a97ea644","line":154,"in_reply_to":"3126c7a7_81fc0aae","updated":"2025-10-10 10:21:30.000000000","message":"The issue with the current healthcheck_curl is that it only checks if the main endpoint returns a 200 status code by hitting the root URL. A better approach would be to use dedicated health check endpoints like /health or /healthcheck when available.\n\nSpecifically for OpenSearch, when the healthcheck hits the main URL, it generates a lot of noise in the logs which makes them hard to read and analyze. However, when using the /healthcheck endpoint in OpenSearch, these health check requests don\u0027t produce the same log clutter, making the logs much more readable.","commit_id":"45bbaa518928379141efea2b5cf685e42e4b04ef"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"1c14f4f823f1a5f3058e719c598ca805510be97d","unresolved":true,"context_lines":[{"line_number":151,"context_line":"designate_api_healthcheck_interval: \"{{ default_container_healthcheck_interval }}\""},{"line_number":152,"context_line":"designate_api_healthcheck_retries: \"{{ default_container_healthcheck_retries }}\""},{"line_number":153,"context_line":"designate_api_healthcheck_start_period: \"{{ default_container_healthcheck_start_period }}\""},{"line_number":154,"context_line":"designate_api_healthcheck_test: [\"CMD-SHELL\", \"curl -f http://{{ api_interface_address | put_address_in_context(\u0027url\u0027) }}:{{ designate_api_listen_port }} || exit 1\"]"},{"line_number":155,"context_line":"designate_api_healthcheck_timeout: \"{{ default_container_healthcheck_timeout }}\""},{"line_number":156,"context_line":"designate_api_healthcheck:"},{"line_number":157,"context_line":"  interval: \"{{ designate_api_healthcheck_interval }}\""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"f35fa4ed_355fa454","line":154,"in_reply_to":"354794f0_3486265f","updated":"2025-10-10 10:39:22.000000000","message":"Additionally, I\u0027ve already improved several healthchecks by replacing the not-very-useful:\n\n\"option httpchk\"\n\nwith:\n\noption httpchk GET /healthcheck\"\n\"http-check expect status 200\"\n\nThis change makes the healthchecks actually meaningful by targeting dedicated health endpoints and verifying specific response codes, rather than just checking if the service responds at all.","commit_id":"45bbaa518928379141efea2b5cf685e42e4b04ef"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"e166438f5fd07c5311375a80dea5f8d1ce920029","unresolved":true,"context_lines":[{"line_number":151,"context_line":"designate_api_healthcheck_interval: \"{{ default_container_healthcheck_interval }}\""},{"line_number":152,"context_line":"designate_api_healthcheck_retries: \"{{ default_container_healthcheck_retries }}\""},{"line_number":153,"context_line":"designate_api_healthcheck_start_period: \"{{ default_container_healthcheck_start_period }}\""},{"line_number":154,"context_line":"designate_api_healthcheck_test: [\"CMD-SHELL\", \"curl -f http://{{ api_interface_address | put_address_in_context(\u0027url\u0027) }}:{{ designate_api_listen_port }} || exit 1\"]"},{"line_number":155,"context_line":"designate_api_healthcheck_timeout: \"{{ default_container_healthcheck_timeout }}\""},{"line_number":156,"context_line":"designate_api_healthcheck:"},{"line_number":157,"context_line":"  interval: \"{{ designate_api_healthcheck_interval }}\""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"a042b1ca_e48ce484","line":154,"in_reply_to":"70ecd94d_a97ea644","updated":"2025-10-10 10:27:45.000000000","message":"To give you some concrete numbers from my test environment - in OpenSearch over the last 15 minutes alone, there are 23,096 results for \"OPTIONS /\" queries from the health checks. This demonstrates the significant log pollution caused by hitting the main endpoint instead of using a dedicated health check endpoint.","commit_id":"45bbaa518928379141efea2b5cf685e42e4b04ef"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"866370f947ea9bebb4e96b18cc552a4e2ce4bd45","unresolved":true,"context_lines":[{"line_number":151,"context_line":"designate_api_healthcheck_interval: \"{{ default_container_healthcheck_interval }}\""},{"line_number":152,"context_line":"designate_api_healthcheck_retries: \"{{ default_container_healthcheck_retries }}\""},{"line_number":153,"context_line":"designate_api_healthcheck_start_period: \"{{ default_container_healthcheck_start_period }}\""},{"line_number":154,"context_line":"designate_api_healthcheck_test: [\"CMD-SHELL\", \"curl -f http://{{ api_interface_address | put_address_in_context(\u0027url\u0027) }}:{{ designate_api_listen_port }} || exit 1\"]"},{"line_number":155,"context_line":"designate_api_healthcheck_timeout: \"{{ default_container_healthcheck_timeout }}\""},{"line_number":156,"context_line":"designate_api_healthcheck:"},{"line_number":157,"context_line":"  interval: \"{{ designate_api_healthcheck_interval }}\""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"2b8ba2bb_772734fd","line":154,"in_reply_to":"a042b1ca_e48ce484","updated":"2025-10-10 10:31:45.000000000","message":"So why you\u0027re not updating healthcheck_curl - just stopping usage of that?\nDo you plan to remove that script from Kolla?","commit_id":"45bbaa518928379141efea2b5cf685e42e4b04ef"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"f5faefa6c662ae66182fd06334d70f7be309c7d4","unresolved":false,"context_lines":[{"line_number":151,"context_line":"designate_api_healthcheck_interval: \"{{ default_container_healthcheck_interval }}\""},{"line_number":152,"context_line":"designate_api_healthcheck_retries: \"{{ default_container_healthcheck_retries }}\""},{"line_number":153,"context_line":"designate_api_healthcheck_start_period: \"{{ default_container_healthcheck_start_period }}\""},{"line_number":154,"context_line":"designate_api_healthcheck_test: [\"CMD-SHELL\", \"curl -f http://{{ api_interface_address | put_address_in_context(\u0027url\u0027) }}:{{ designate_api_listen_port }} || exit 1\"]"},{"line_number":155,"context_line":"designate_api_healthcheck_timeout: \"{{ default_container_healthcheck_timeout }}\""},{"line_number":156,"context_line":"designate_api_healthcheck:"},{"line_number":157,"context_line":"  interval: \"{{ designate_api_healthcheck_interval }}\""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"8e889f37_bf122daf","line":154,"in_reply_to":"d108cb47_635c5acb","updated":"2025-10-14 11:03:20.000000000","message":"Done","commit_id":"45bbaa518928379141efea2b5cf685e42e4b04ef"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"2e89a7384555878b1cfc992f2a51e6244deeb763","unresolved":true,"context_lines":[{"line_number":151,"context_line":"designate_api_healthcheck_interval: \"{{ default_container_healthcheck_interval }}\""},{"line_number":152,"context_line":"designate_api_healthcheck_retries: \"{{ default_container_healthcheck_retries }}\""},{"line_number":153,"context_line":"designate_api_healthcheck_start_period: \"{{ default_container_healthcheck_start_period }}\""},{"line_number":154,"context_line":"designate_api_healthcheck_test: [\"CMD-SHELL\", \"curl -f http://{{ api_interface_address | put_address_in_context(\u0027url\u0027) }}:{{ designate_api_listen_port }} || exit 1\"]"},{"line_number":155,"context_line":"designate_api_healthcheck_timeout: \"{{ default_container_healthcheck_timeout }}\""},{"line_number":156,"context_line":"designate_api_healthcheck:"},{"line_number":157,"context_line":"  interval: \"{{ designate_api_healthcheck_interval }}\""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"d108cb47_635c5acb","line":154,"in_reply_to":"f35fa4ed_355fa454","updated":"2025-10-10 15:07:51.000000000","message":"I think docker/podman healthchecks should point to the same place as haproxy health checks, and I still don\u0027t see how running curl -f instead of a script that unifies usage of curl in health checks makes it any better.\nI would prefer still using that script - just point it to the healthcheck middleware.","commit_id":"45bbaa518928379141efea2b5cf685e42e4b04ef"}],"ansible/roles/grafana/handlers/main.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"2e42b8b0da60d4d88df7d6d06adc88e41fc8f868","unresolved":true,"context_lines":[{"line_number":12,"context_line":"    image: \"{{ service.image }}\""},{"line_number":13,"context_line":"    volumes: \"{{ service.volumes }}\""},{"line_number":14,"context_line":"    dimensions: \"{{ service.dimensions }}\""},{"line_number":15,"context_line":"    healthcheck: \"{{ service.healthcheck | default(omit) }}\""},{"line_number":16,"context_line":"  when:"},{"line_number":17,"context_line":"    - inventory_hostname \u003d\u003d groups[service.group] | first"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"c7ad951c_b2055b8d","line":15,"updated":"2025-10-06 09:58:44.000000000","message":"That\u0027s rather unrelated","commit_id":"9b79d46401d38db61ab0b920159a2d71558d0042"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"111352a934f73a9afb1523e4911c41aa5db34d27","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    image: \"{{ service.image }}\""},{"line_number":13,"context_line":"    volumes: \"{{ service.volumes }}\""},{"line_number":14,"context_line":"    dimensions: \"{{ service.dimensions }}\""},{"line_number":15,"context_line":"    healthcheck: \"{{ service.healthcheck | default(omit) }}\""},{"line_number":16,"context_line":"  when:"},{"line_number":17,"context_line":"    - inventory_hostname \u003d\u003d groups[service.group] | first"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ca5aa08c_3dbacef5","line":15,"in_reply_to":"c7ad951c_b2055b8d","updated":"2025-10-09 19:15:36.000000000","message":"Acknowledged","commit_id":"9b79d46401d38db61ab0b920159a2d71558d0042"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"2e42b8b0da60d4d88df7d6d06adc88e41fc8f868","unresolved":true,"context_lines":[{"line_number":48,"context_line":"    image: \"{{ service.image }}\""},{"line_number":49,"context_line":"    volumes: \"{{ service.volumes }}\""},{"line_number":50,"context_line":"    dimensions: \"{{ service.dimensions }}\""},{"line_number":51,"context_line":"    healthcheck: \"{{ service.healthcheck | default(omit) }}\""},{"line_number":52,"context_line":"  when:"},{"line_number":53,"context_line":"    - inventory_hostname !\u003d groups[service.group] | first"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"af0206d8_514a52f9","line":51,"updated":"2025-10-06 09:58:44.000000000","message":"ditto","commit_id":"9b79d46401d38db61ab0b920159a2d71558d0042"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"111352a934f73a9afb1523e4911c41aa5db34d27","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    image: \"{{ service.image }}\""},{"line_number":49,"context_line":"    volumes: \"{{ service.volumes }}\""},{"line_number":50,"context_line":"    dimensions: \"{{ service.dimensions }}\""},{"line_number":51,"context_line":"    healthcheck: \"{{ service.healthcheck | default(omit) }}\""},{"line_number":52,"context_line":"  when:"},{"line_number":53,"context_line":"    - inventory_hostname !\u003d groups[service.group] | first"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bf05aaec_f1022663","line":51,"in_reply_to":"af0206d8_514a52f9","updated":"2025-10-09 19:15:36.000000000","message":"Acknowledged","commit_id":"9b79d46401d38db61ab0b920159a2d71558d0042"}],"ansible/roles/placement/defaults/main.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"6a6b6a02193401f84b23928e07e72e0fc38d5c2a","unresolved":true,"context_lines":[{"line_number":18,"context_line":"        listen_port: \"{{ placement_api_listen_port }}\""},{"line_number":19,"context_line":"        tls_backend: \"{{ placement_enable_tls_backend }}\""},{"line_number":20,"context_line":"        backend_http_extra:"},{"line_number":21,"context_line":"          - \"option httpchk GET /\""},{"line_number":22,"context_line":"          - \"http-check expect status 200\""},{"line_number":23,"context_line":"      placement_api_external:"},{"line_number":24,"context_line":"        enabled: \"{{ enable_placement }}\""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"e2607588_9cd4c4be","line":21,"updated":"2025-10-13 15:19:20.000000000","message":"No healthcheck middleware in placement?","commit_id":"c088f693da5d2b30b39ab537124c3f3247534a9f"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"8feca6553b47a2c38a9fc2ee9260e99970b7ffab","unresolved":false,"context_lines":[{"line_number":18,"context_line":"        listen_port: \"{{ placement_api_listen_port }}\""},{"line_number":19,"context_line":"        tls_backend: \"{{ placement_enable_tls_backend }}\""},{"line_number":20,"context_line":"        backend_http_extra:"},{"line_number":21,"context_line":"          - \"option httpchk GET /\""},{"line_number":22,"context_line":"          - \"http-check expect status 200\""},{"line_number":23,"context_line":"      placement_api_external:"},{"line_number":24,"context_line":"        enabled: \"{{ enable_placement }}\""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"9d6be809_5ca074ec","line":21,"in_reply_to":"e2607588_9cd4c4be","updated":"2025-10-13 15:38:29.000000000","message":"no:\n\ncurl http://10.0.164.191:8780\n{\"versions\": [{\"id\": \"v1.0\", \"max_version\": \"1.39\", \"min_version\": \"1.0\", \"status\": \"CURRENT\", \"links\": [{\"rel\": \"self\", \"href\": \"\"}]}]\n\ncurl http://10.0.164.191:8780/healthcheck\n{\"error\": {\"code\": 401, \"title\": \"Unauthorized\", \"message\": \"The request you have made requires authentication.\"}}r\n\ncurl -u placement:password http://10.0.164.191:8780/healthcheck\n{\"error\": {\"code\": 401, \"title\": \"Unauthorized\", \"message\": \"The request you have made requires authentication.\"}}","commit_id":"c088f693da5d2b30b39ab537124c3f3247534a9f"}],"ansible/roles/rabbitmq/defaults/main.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"6a6b6a02193401f84b23928e07e72e0fc38d5c2a","unresolved":true,"context_lines":[{"line_number":25,"context_line":"        host_group: \"rabbitmq\""},{"line_number":26,"context_line":"        backend_http_extra:"},{"line_number":27,"context_line":"          - \"option httpchk GET /api/overview\""},{"line_number":28,"context_line":"          - \"http-check send hdr Authorization \u0027Basic {{ (rabbitmq_user + \u0027:\u0027 + rabbitmq_password) | b64encode }}\u0027\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"####################"},{"line_number":31,"context_line":"# Docker"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"20a2dded_544de614","line":28,"updated":"2025-10-13 15:19:20.000000000","message":"I\u0027m unsure if we shouldn\u0027t have a dedicated rabbitmq user for monitoring","commit_id":"c088f693da5d2b30b39ab537124c3f3247534a9f"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"1edec726d4f75f57c7682496e6e4d5e583cf904e","unresolved":true,"context_lines":[{"line_number":25,"context_line":"        host_group: \"rabbitmq\""},{"line_number":26,"context_line":"        backend_http_extra:"},{"line_number":27,"context_line":"          - \"option httpchk GET /api/overview\""},{"line_number":28,"context_line":"          - \"http-check send hdr Authorization \u0027Basic {{ (rabbitmq_user + \u0027:\u0027 + rabbitmq_password) | b64encode }}\u0027\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"####################"},{"line_number":31,"context_line":"# Docker"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"cc46ea04_2126f1c9","line":28,"in_reply_to":"1ae7c996_9e41e0f9","updated":"2025-10-14 12:13:25.000000000","message":"yes, exactly, there is no \"monitoring\" user in the default installation. add a default user?","commit_id":"c088f693da5d2b30b39ab537124c3f3247534a9f"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"8feca6553b47a2c38a9fc2ee9260e99970b7ffab","unresolved":true,"context_lines":[{"line_number":25,"context_line":"        host_group: \"rabbitmq\""},{"line_number":26,"context_line":"        backend_http_extra:"},{"line_number":27,"context_line":"          - \"option httpchk GET /api/overview\""},{"line_number":28,"context_line":"          - \"http-check send hdr Authorization \u0027Basic {{ (rabbitmq_user + \u0027:\u0027 + rabbitmq_password) | b64encode }}\u0027\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"####################"},{"line_number":31,"context_line":"# Docker"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"d80ffb63_e23b5fca","line":28,"in_reply_to":"20a2dded_544de614","updated":"2025-10-13 15:38:29.000000000","message":"rabbitmq_monitoring_user ???\nrabbitmq_monitoring_password ???\n\n\nBut now it is\nrabbitmq_monitoring_user: \"\"\n\nMaybe you need to set up \"monitoring\" ?\n\nHealthcheck works \"monitoring\" for this user.","commit_id":"c088f693da5d2b30b39ab537124c3f3247534a9f"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"3dc94848546cfc3f0d77a0197d6038e0f1e14ac2","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        host_group: \"rabbitmq\""},{"line_number":26,"context_line":"        backend_http_extra:"},{"line_number":27,"context_line":"          - \"option httpchk GET /api/overview\""},{"line_number":28,"context_line":"          - \"http-check send hdr Authorization \u0027Basic {{ (rabbitmq_user + \u0027:\u0027 + rabbitmq_password) | b64encode }}\u0027\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"####################"},{"line_number":31,"context_line":"# Docker"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"77dc076e_65de4c13","line":28,"in_reply_to":"5a8e4e2f_3122a98a","updated":"2025-12-02 08:51:42.000000000","message":"Acknowledged","commit_id":"c088f693da5d2b30b39ab537124c3f3247534a9f"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"33803bbb4647c2afbc84543c7b7c271ad8aa0c4b","unresolved":true,"context_lines":[{"line_number":25,"context_line":"        host_group: \"rabbitmq\""},{"line_number":26,"context_line":"        backend_http_extra:"},{"line_number":27,"context_line":"          - \"option httpchk GET /api/overview\""},{"line_number":28,"context_line":"          - \"http-check send hdr Authorization \u0027Basic {{ (rabbitmq_user + \u0027:\u0027 + rabbitmq_password) | b64encode }}\u0027\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"####################"},{"line_number":31,"context_line":"# Docker"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"5a8e4e2f_3122a98a","line":28,"in_reply_to":"cc46ea04_2126f1c9","updated":"2025-12-01 16:16:28.000000000","message":"Yes, please","commit_id":"c088f693da5d2b30b39ab537124c3f3247534a9f"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"25d076488960b1226b637520c18ef26721078314","unresolved":true,"context_lines":[{"line_number":25,"context_line":"        host_group: \"rabbitmq\""},{"line_number":26,"context_line":"        backend_http_extra:"},{"line_number":27,"context_line":"          - \"option httpchk GET /api/overview\""},{"line_number":28,"context_line":"          - \"http-check send hdr Authorization \u0027Basic {{ (rabbitmq_user + \u0027:\u0027 + rabbitmq_password) | b64encode }}\u0027\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"####################"},{"line_number":31,"context_line":"# Docker"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"1ae7c996_9e41e0f9","line":28,"in_reply_to":"d80ffb63_e23b5fca","updated":"2025-10-14 11:13:53.000000000","message":"It has been introduced in https://review.opendev.org/c/openstack/kolla-ansible/+/517386, so if I understand correctly - we just need to set it to a value by default?","commit_id":"c088f693da5d2b30b39ab537124c3f3247534a9f"}],"ansible/roles/venus/defaults/main.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"6a6b6a02193401f84b23928e07e72e0fc38d5c2a","unresolved":true,"context_lines":[{"line_number":15,"context_line":"        external: false"},{"line_number":16,"context_line":"        port: \"{{ venus_api_port }}\""},{"line_number":17,"context_line":"        backend_http_extra:"},{"line_number":18,"context_line":"          - \"option httpchk GET /\""},{"line_number":19,"context_line":"          - \"http-check expect status 200\""},{"line_number":20,"context_line":"      venus_api_external:"},{"line_number":21,"context_line":"        enabled: \"{{ enable_venus }}\""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"4f930687_20bedf54","line":18,"updated":"2025-10-13 15:19:20.000000000","message":"no healthcheck middleware for Venus?","commit_id":"c088f693da5d2b30b39ab537124c3f3247534a9f"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"8feca6553b47a2c38a9fc2ee9260e99970b7ffab","unresolved":false,"context_lines":[{"line_number":15,"context_line":"        external: false"},{"line_number":16,"context_line":"        port: \"{{ venus_api_port }}\""},{"line_number":17,"context_line":"        backend_http_extra:"},{"line_number":18,"context_line":"          - \"option httpchk GET /\""},{"line_number":19,"context_line":"          - \"http-check expect status 200\""},{"line_number":20,"context_line":"      venus_api_external:"},{"line_number":21,"context_line":"        enabled: \"{{ enable_venus }}\""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"f03a704e_a2ab96fc","line":18,"in_reply_to":"4f930687_20bedf54","updated":"2025-10-13 15:38:29.000000000","message":"no:\n\ncurl http://10.0.164.191:10010/healthcheck\n{\"choices\": [{\"id\": \"v1.0\", \"status\": \"SUPPORTED\", \"links\": [{\"rel\": \"self\", \"href\": \"http://10.0.164.191:10010/v1/healthcheck\"}], \"media-types\": [{\"base\": \"application/xml\", \"type\": \"application/vnd.openstack.venus+xml;version\u003d1\"}, {\"base\": \"application/json\", \"type\": \"application/vnd.openstack.venus+json;version\u003d1\"}]}]}\n\n\ncurl -vk http://10.0.164.191:10010/healthcheck\n...\n\u003c HTTP/1.1 300 Multiple Choices\n\u003c Content-Length: 323\n\u003c Content-Type: application/json\n\u003c Date: Mon, 13 Oct 2025 15:25:37 GMT\n\u003c \n* Connection #0 to host 10.0.164.191 left intact\n{\"choices\": [{\"id\": \"v1.0\", \"status\": \"SUPPORTED\", \"links\": [{\"rel\": \"self\", \"href\": \"http://10.0.164.191:10010/v1/healthcheck\"}], \"media-types\": [{\"base\": \"application/xml\", \"type\": \"application/vnd.openstack.venus+xml;version\u003d1\"}, {\"base\": \"application/json\", \"type\": \"application/vnd.openstack.venus+json;version\u003d1\"}]}]}\n\ncurl -u venus:password http://10.0.164.191:10010/v1/healthcheck\n{\"error\": {\"code\": 401, \"title\": \"Unauthorized\", \"message\": \"The request you have made requires authentication.\"}}r","commit_id":"c088f693da5d2b30b39ab537124c3f3247534a9f"}],"ansible/roles/watcher/defaults/main.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"6a6b6a02193401f84b23928e07e72e0fc38d5c2a","unresolved":true,"context_lines":[{"line_number":17,"context_line":"        listen_port: \"{{ watcher_api_listen_port }}\""},{"line_number":18,"context_line":"        backend_http_extra:"},{"line_number":19,"context_line":"          - \"option httpchk GET /\""},{"line_number":20,"context_line":"          - \"http-check expect status 200\""},{"line_number":21,"context_line":"      watcher_api_external:"},{"line_number":22,"context_line":"        enabled: \"{{ enable_watcher }}\""},{"line_number":23,"context_line":"        mode: \"http\""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"c746e511_fec74f5b","line":20,"updated":"2025-10-13 15:19:20.000000000","message":"no healthcheck middleware for watcher?","commit_id":"c088f693da5d2b30b39ab537124c3f3247534a9f"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"8feca6553b47a2c38a9fc2ee9260e99970b7ffab","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        listen_port: \"{{ watcher_api_listen_port }}\""},{"line_number":18,"context_line":"        backend_http_extra:"},{"line_number":19,"context_line":"          - \"option httpchk GET /\""},{"line_number":20,"context_line":"          - \"http-check expect status 200\""},{"line_number":21,"context_line":"      watcher_api_external:"},{"line_number":22,"context_line":"        enabled: \"{{ enable_watcher }}\""},{"line_number":23,"context_line":"        mode: \"http\""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"02cb1796_d2848c1d","line":20,"in_reply_to":"c746e511_fec74f5b","updated":"2025-10-13 15:38:29.000000000","message":"no\n\ncurl http://10.0.164.191:9322\n{\"name\": \"OpenStack Watcher API\", \"description\": \"Watcher is an OpenStack project which aims to improve physical resources usage through better VM placement.\", \"versions\": [{\"id\": \"v1\", \"status\": \"CURRENT\", \"max_version\": \"1.6\", \"min_version\": \"1.0\", \"links\": [{\"href\": \"http://10.0.164.191:9322/v1/\", \"rel\": \"self\"}]}], \"default_version\": {\"id\": \"v1\", \"status\": \"CURRENT\", \"max_version\": \"1.6\", \"min_version\": \"1.0\", \"links\": [{\"href\": \"http://10.0.164.191:9322/v1/\", \"rel\": \"self\"}]}}\n\ncurl http://10.0.164.191:9322/healthcheck\n{\"error\": {\"code\": 401, \"title\": \"Unauthorized\", \"message\": \"The request you have made requires authentication.\"}}root@allinone:/home/admin# \n\ncurl -u watcher:password http://10.0.164.191:9322/healthcheck\n{\"error\": {\"code\": 401, \"title\": \"Unauthorized\", \"message\": \"The request you have made requires authentication.\"}}","commit_id":"c088f693da5d2b30b39ab537124c3f3247534a9f"}]}
