)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"b118deeb0eda036464e433eaefc4bef71476e9b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2a720d4f_e8611759","updated":"2026-08-24 21:41:05.000000000","message":"recheck autohold in place for debugging","commit_id":"6b72d945e33af9c737500c141cfc83598382e63b"}],"playbooks/roles/gitea/templates/docker-compose.yaml.j2":[{"author":{"_account_id":10089,"name":"Anil Shashikumar Belur","email":"abelur@linuxfoundation.org","username":"askb"},"change_message_id":"109be49aa643a6067b40fcc6d1d3dffc94806079","unresolved":true,"context_lines":[{"line_number":17,"context_line":"      REDIRECT_DOMAINS: \"opendev.org,{{ inventory_hostname }}:3081\""},{"line_number":18,"context_line":"      POLICY_FNAME: \"/data/cfg/botPolicy.yaml\""},{"line_number":19,"context_line":"      METRICS_BIND: \":15000\""},{"line_number":20,"context_line":"{% if gitea_anubis_shared_key is defined %}"},{"line_number":21,"context_line":"      # Generated by openssl rand -hex 32"},{"line_number":22,"context_line":"      ED25519_PRIVATE_KEY_HEX: \"{{ gitea_anubis_shared_key }}\""},{"line_number":23,"context_line":"{% endif %}"},{"line_number":24,"context_line":"    healthcheck:"},{"line_number":25,"context_line":"      test: [\"CMD\", \"anubis\", \"--healthcheck\"]"},{"line_number":26,"context_line":"      interval: 5s"}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"20a98287_4c14d573","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":11},"updated":"2026-08-25 01:20:08.000000000","message":"Question: on a file that isn\u0027t in this diff. In playbooks/roles/gitea/tasks/main.yaml, the stop/start block is gated on app_ini.changed or the image IDs differing, and \"Write docker-compose file\" isn\u0027t registered. So does defining gitea_anubis_shared_key actually restart anubis? Looks like the new key would sit in docker-compose.yaml until an unrelated app.ini change or image pull comes along. Same on the way back out for the rollback case.\n\nIf that\u0027s right, registering that template task and adding it to the when: would cover it. Am I missing something that restarts it? TIA","commit_id":"8230b0a5cd3775d5b3fd519df4641d8b757dab0b"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"94982ff8f7fa831a74d37e262429c0beafa156af","unresolved":true,"context_lines":[{"line_number":17,"context_line":"      REDIRECT_DOMAINS: \"opendev.org,{{ inventory_hostname }}:3081\""},{"line_number":18,"context_line":"      POLICY_FNAME: \"/data/cfg/botPolicy.yaml\""},{"line_number":19,"context_line":"      METRICS_BIND: \":15000\""},{"line_number":20,"context_line":"{% if gitea_anubis_shared_key is defined %}"},{"line_number":21,"context_line":"      # Generated by openssl rand -hex 32"},{"line_number":22,"context_line":"      ED25519_PRIVATE_KEY_HEX: \"{{ gitea_anubis_shared_key }}\""},{"line_number":23,"context_line":"{% endif %}"},{"line_number":24,"context_line":"    healthcheck:"},{"line_number":25,"context_line":"      test: [\"CMD\", \"anubis\", \"--healthcheck\"]"},{"line_number":26,"context_line":"      interval: 5s"}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"6806572b_b7b11622","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":11},"in_reply_to":"20a98287_4c14d573","updated":"2026-08-25 19:34:53.000000000","message":"You are correct. The condition here https://opendev.org/opendev/system-config/src/branch/master/playbooks/roles/gitea/tasks/main.yaml#L64 limits when we actually restart the service to when the app.ini change or the container images change.\n\nWe\u0027ve done this more complicated restart process because we cannot start the gitea ssh container until the gitea web container is running sufficiently to handle Gerrit replication over ssh. The wait at https://opendev.org/opendev/system-config/src/branch/master/playbooks/roles/gitea/tasks/main.yaml#L75-L84 ensures this dependency is met before we proceed.\n\nOtherwise a simple `docker-compose up -d` would update things when the docker-compose file updates. I think that we also fail to restart things when we update the anubis botPolicy.yaml. If you\u0027d like you can work on a change that adds both of those to the when condition so that we restart when config files like that update. I will stack this change on top of that change. Otherwise I\u0027ll work on that second change myself and stack it under my change.","commit_id":"8230b0a5cd3775d5b3fd519df4641d8b757dab0b"},{"author":{"_account_id":10089,"name":"Anil Shashikumar Belur","email":"abelur@linuxfoundation.org","username":"askb"},"change_message_id":"e4e4f810a3db838bc5c3440d1da49915e3e25e01","unresolved":true,"context_lines":[{"line_number":17,"context_line":"      REDIRECT_DOMAINS: \"opendev.org,{{ inventory_hostname }}:3081\""},{"line_number":18,"context_line":"      POLICY_FNAME: \"/data/cfg/botPolicy.yaml\""},{"line_number":19,"context_line":"      METRICS_BIND: \":15000\""},{"line_number":20,"context_line":"{% if gitea_anubis_shared_key is defined %}"},{"line_number":21,"context_line":"      # Generated by openssl rand -hex 32"},{"line_number":22,"context_line":"      ED25519_PRIVATE_KEY_HEX: \"{{ gitea_anubis_shared_key }}\""},{"line_number":23,"context_line":"{% endif %}"},{"line_number":24,"context_line":"    healthcheck:"},{"line_number":25,"context_line":"      test: [\"CMD\", \"anubis\", \"--healthcheck\"]"},{"line_number":26,"context_line":"      interval: 5s"}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"9c05b879_dbc4e998","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":11},"in_reply_to":"6806572b_b7b11622","updated":"2026-08-26 00:48:09.000000000","message":"Pushed the restart fix as its own change: 1002426. Registers both the docker-compose template and the anubis botPolicy copy and adds them to the stop/start condition, so this should rebase on top of it.\n\nKept the existing stop/start block rather than a plain docker-compose up -d, for the replication ordering reason you gave.\n\nOne thing worth a look: a botPolicy-only change now goes through the full stop/start including the web readiness wait, which is heavier than anubis alone needs. Fine by me, but say if you\u0027d rather scope it tighter. thanks","commit_id":"8230b0a5cd3775d5b3fd519df4641d8b757dab0b"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"cbb7564c7171df5f3bfcdc738b9b499c0bf0d764","unresolved":true,"context_lines":[{"line_number":17,"context_line":"      REDIRECT_DOMAINS: \"opendev.org,{{ inventory_hostname }}:3081\""},{"line_number":18,"context_line":"      POLICY_FNAME: \"/data/cfg/botPolicy.yaml\""},{"line_number":19,"context_line":"      METRICS_BIND: \":15000\""},{"line_number":20,"context_line":"{% if gitea_anubis_shared_key is defined %}"},{"line_number":21,"context_line":"      # Generated by openssl rand -hex 32"},{"line_number":22,"context_line":"      ED25519_PRIVATE_KEY_HEX: \"{{ gitea_anubis_shared_key }}\""},{"line_number":23,"context_line":"{% endif %}"},{"line_number":24,"context_line":"    healthcheck:"},{"line_number":25,"context_line":"      test: [\"CMD\", \"anubis\", \"--healthcheck\"]"},{"line_number":26,"context_line":"      interval: 5s"}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"c5105b9c_d07d6b98","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":11},"in_reply_to":"9c05b879_dbc4e998","updated":"2026-08-26 19:00:35.000000000","message":"If this service was not behind a load balancer then I would say optimizing things is worthwhile. We have multiple backends here and while overkill I think having a single process for restarting services for Gitea helps keep the config management simple. We can take the small uptime hit due to the load balancing. All that to say I don\u0027t think we need to optimize this yet.","commit_id":"8230b0a5cd3775d5b3fd519df4641d8b757dab0b"},{"author":{"_account_id":10089,"name":"Anil Shashikumar Belur","email":"abelur@linuxfoundation.org","username":"askb"},"change_message_id":"c742fb2c3044f53ea262f1548ed382ffbb328345","unresolved":false,"context_lines":[{"line_number":17,"context_line":"      REDIRECT_DOMAINS: \"opendev.org,{{ inventory_hostname }}:3081\""},{"line_number":18,"context_line":"      POLICY_FNAME: \"/data/cfg/botPolicy.yaml\""},{"line_number":19,"context_line":"      METRICS_BIND: \":15000\""},{"line_number":20,"context_line":"{% if gitea_anubis_shared_key is defined %}"},{"line_number":21,"context_line":"      # Generated by openssl rand -hex 32"},{"line_number":22,"context_line":"      ED25519_PRIVATE_KEY_HEX: \"{{ gitea_anubis_shared_key }}\""},{"line_number":23,"context_line":"{% endif %}"},{"line_number":24,"context_line":"    healthcheck:"},{"line_number":25,"context_line":"      test: [\"CMD\", \"anubis\", \"--healthcheck\"]"},{"line_number":26,"context_line":"      interval: 5s"}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"bfd072a0_78d1d99e","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":11},"in_reply_to":"c5105b9c_d07d6b98","updated":"2026-08-27 04:29:21.000000000","message":"Acknowledged","commit_id":"8230b0a5cd3775d5b3fd519df4641d8b757dab0b"}]}
