From eb6bde9445bfedcde6c4fe2fbfee0da6990d991c Mon Sep 17 00:00:00 2001 From: Stefan Bethke Date: Fri, 19 Jun 2026 12:04:23 +0200 Subject: [PATCH 01/25] Use new HEADERS.location feature Check the actual redirect, and not the contents of the redirected-to site. --- .../docker_compose/config/websites.yaml | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/resources/external/status/docker_compose/config/websites.yaml b/resources/external/status/docker_compose/config/websites.yaml index 867a23d..458872a 100644 --- a/resources/external/status/docker_compose/config/websites.yaml +++ b/resources/external/status/docker_compose/config/websites.yaml @@ -187,55 +187,69 @@ endpoints: - name: www.c3cat.de url: "https://www.c3cat.de" <<: *websites_redirects_defaults + client: + ignore-redirect: true conditions: - - "[STATUS] == 200" + - "[STATUS] == 302" + - "[HEADERS].location == https://c3cat.de" - "[CERTIFICATE_EXPIRATION] > 48h" - - "[BODY] == pat(*Cat Ears Operation Center*)" - name: www.c3dog.de url: "https://www.c3dog.de" <<: *websites_redirects_defaults + client: + ignore-redirect: true conditions: - - "[STATUS] == 200" + - "[STATUS] == 302" + - "[HEADERS].location == https://c3dof.de" - "[CERTIFICATE_EXPIRATION] > 48h" - - "[BODY] == pat(*Dog Ears Operation Center*)" - name: cryptoparty.hamburg.ccc.de url: "https://cryptoparty.hamburg.ccc.de" <<: *websites_redirects_defaults + client: + ignore-redirect: true conditions: - - "[STATUS] == 200" + - "[STATUS] == 302" + - "[HEADERS].location == https://cryptoparty-hamburg.de" - "[CERTIFICATE_EXPIRATION] > 48h" - - "[BODY] == pat(*Digitale Selbstverteidigung in Hamburg*)" - name: local.ccc.de url: "https://local.ccc.de" <<: *websites_redirects_defaults + client: + ignore-redirect: true conditions: - - "[STATUS] == 200" + - "[STATUS] == 302" + - "[HEADERS].location == https://cpu.ccc.de" - "[CERTIFICATE_EXPIRATION] > 48h" - - "[BODY] == pat(*cpu.ccc.de | aus den Dezentralen*)" - name: lokal.ccc.de url: "https://lokal.ccc.de" <<: *websites_redirects_defaults + client: + ignore-redirect: true conditions: - - "[STATUS] == 200" + - "[STATUS] == 302" + - "[HEADERS].location == https://cpu.ccc.de" - "[CERTIFICATE_EXPIRATION] > 48h" - - "[BODY] == pat(*cpu.ccc.de | aus den Dezentralen*)" - name: staging.cryptoparty.hamburg.ccc.de url: "https://staging.cryptoparty.hamburg.ccc.de" <<: *websites_redirects_defaults + client: + ignore-redirect: true conditions: - - "[STATUS] == 200" + - "[STATUS] == 302" + - "[HEADERS].location == https://staging.cryptoparty-hamburg.de" - "[CERTIFICATE_EXPIRATION] > 48h" - - "[BODY] == pat(*cryptoparty-hamburg.de Staging Environment*)" - name: www.hamburg.ccc.de url: "https://www.hamburg.ccc.de" <<: *websites_redirects_defaults + client: + ignore-redirect: true conditions: - - "[STATUS] == 200" + - "[STATUS] == 302" + - "[HEADERS].location == https://hamburg.ccc.de/" - "[CERTIFICATE_EXPIRATION] > 48h" - - "[BODY] == pat(*STATUS_CANARY_HAMBURG_CCC_DE_DO_NOT_TOUCH*)" From 2d569848a7261185425e7725c0a4e2e2c4bdb915 Mon Sep 17 00:00:00 2001 From: Stefan Bethke Date: Fri, 19 Jun 2026 12:16:25 +0200 Subject: [PATCH 02/25] Make check more resilient Some redirects have a trailing slash, some dont. Both are legal. This pattern will also catch "deep" redirects correctly. --- .../status/docker_compose/config/websites.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/resources/external/status/docker_compose/config/websites.yaml b/resources/external/status/docker_compose/config/websites.yaml index 458872a..943abb5 100644 --- a/resources/external/status/docker_compose/config/websites.yaml +++ b/resources/external/status/docker_compose/config/websites.yaml @@ -190,9 +190,9 @@ endpoints: client: ignore-redirect: true conditions: - - "[STATUS] == 302" - - "[HEADERS].location == https://c3cat.de" - - "[CERTIFICATE_EXPIRATION] > 48h" + # - "[STATUS] == 302" + - "[HEADERS].location == https://c3cat.de/" + # - "[CERTIFICATE_EXPIRATION] > 48h" - name: www.c3dog.de url: "https://www.c3dog.de" @@ -201,7 +201,7 @@ endpoints: ignore-redirect: true conditions: - "[STATUS] == 302" - - "[HEADERS].location == https://c3dof.de" + - "[HEADERS].location == pat(https://c3dog.de*)" - "[CERTIFICATE_EXPIRATION] > 48h" - name: cryptoparty.hamburg.ccc.de @@ -211,7 +211,7 @@ endpoints: ignore-redirect: true conditions: - "[STATUS] == 302" - - "[HEADERS].location == https://cryptoparty-hamburg.de" + - "[HEADERS].location == pat(https://cryptoparty-hamburg.de*)" - "[CERTIFICATE_EXPIRATION] > 48h" - name: local.ccc.de @@ -221,7 +221,7 @@ endpoints: ignore-redirect: true conditions: - "[STATUS] == 302" - - "[HEADERS].location == https://cpu.ccc.de" + - "[HEADERS].location == pat(https://cpu.ccc.de*)" - "[CERTIFICATE_EXPIRATION] > 48h" - name: lokal.ccc.de @@ -231,7 +231,7 @@ endpoints: ignore-redirect: true conditions: - "[STATUS] == 302" - - "[HEADERS].location == https://cpu.ccc.de" + - "[HEADERS].location == pat(https://cpu.ccc.de*)" - "[CERTIFICATE_EXPIRATION] > 48h" - name: staging.cryptoparty.hamburg.ccc.de @@ -241,7 +241,7 @@ endpoints: ignore-redirect: true conditions: - "[STATUS] == 302" - - "[HEADERS].location == https://staging.cryptoparty-hamburg.de" + - "[HEADERS].location == pat(https://staging.cryptoparty-hamburg.de*)" - "[CERTIFICATE_EXPIRATION] > 48h" - name: www.hamburg.ccc.de @@ -251,5 +251,5 @@ endpoints: ignore-redirect: true conditions: - "[STATUS] == 302" - - "[HEADERS].location == https://hamburg.ccc.de/" + - "[HEADERS].location == pat(https://hamburg.ccc.de*)" - "[CERTIFICATE_EXPIRATION] > 48h" From dcf07b1ebbca9273a5f9f28dd30c15fcdbabdd8f Mon Sep 17 00:00:00 2001 From: Stefan Bethke Date: Fri, 19 Jun 2026 12:17:07 +0200 Subject: [PATCH 03/25] Missed one --- .../external/status/docker_compose/config/websites.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/external/status/docker_compose/config/websites.yaml b/resources/external/status/docker_compose/config/websites.yaml index 943abb5..cfa6ecc 100644 --- a/resources/external/status/docker_compose/config/websites.yaml +++ b/resources/external/status/docker_compose/config/websites.yaml @@ -190,9 +190,9 @@ endpoints: client: ignore-redirect: true conditions: - # - "[STATUS] == 302" - - "[HEADERS].location == https://c3cat.de/" - # - "[CERTIFICATE_EXPIRATION] > 48h" + - "[STATUS] == 302" + - "[HEADERS].location == pat(https://c3cat.de*)" + - "[CERTIFICATE_EXPIRATION] > 48h" - name: www.c3dog.de url: "https://www.c3dog.de" From 9b8da29cae8d4d56467aa085247a79dec10469f3 Mon Sep 17 00:00:00 2001 From: bitwhisker Date: Sun, 28 Jun 2026 14:24:28 +0200 Subject: [PATCH 04/25] auth-dns(host): update ip of xr18 in ccchh.net --- resources/chaosknoten/auth-dns/zones/ccchh.net.zone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/chaosknoten/auth-dns/zones/ccchh.net.zone b/resources/chaosknoten/auth-dns/zones/ccchh.net.zone index 2a69ea8..1dee1b4 100644 --- a/resources/chaosknoten/auth-dns/zones/ccchh.net.zone +++ b/resources/chaosknoten/auth-dns/zones/ccchh.net.zone @@ -46,7 +46,7 @@ unifi A 10.89.213.21 ; ; Club-Services ; -xr18 A 172.31.200.21 +xr18 A 172.31.200.29 ;club-assistant AAAA 2a07:c481:1:d0::a ;;_acme-challenge.club-assistant CNAME d50ad73a-f82d-4244-87f0-6f5195b37d21.auth.acmedns.hamburg.ccc.de From 3e0fdb6074d77f4e08ac3722ae62044caa1012a3 Mon Sep 17 00:00:00 2001 From: Stefan Bethke Date: Sun, 28 Jun 2026 17:02:05 +0200 Subject: [PATCH 05/25] Configure transmission --- .../z9/host_vars/opensourcetorrents.sops.yaml | 7 +- .../z9/host_vars/opensourcetorrents.yaml | 92 +++++++++++++++++++ inventories/z9/hosts.yaml | 3 + playbooks/deploy.yaml | 7 ++ .../files/update-transmission-settings | 13 +++ roles/transmission/handlers/main.yaml | 3 + roles/transmission/tasks/main.yaml | 23 +++++ 7 files changed, 145 insertions(+), 3 deletions(-) create mode 100644 roles/transmission/files/update-transmission-settings create mode 100644 roles/transmission/handlers/main.yaml create mode 100644 roles/transmission/tasks/main.yaml diff --git a/inventories/z9/host_vars/opensourcetorrents.sops.yaml b/inventories/z9/host_vars/opensourcetorrents.sops.yaml index 1be8403..e7d56e3 100644 --- a/inventories/z9/host_vars/opensourcetorrents.sops.yaml +++ b/inventories/z9/host_vars/opensourcetorrents.sops.yaml @@ -1,7 +1,8 @@ ansible_pull__age_private_key: ENC[AES256_GCM,data:QB0xpxP8pLfE2ExpCRD4joQzoEcbQZTiVEJbX3t9GyFEseZUtnUCO0ysFUc6hRs2BC9hoPXz6k/dZ0vNkniBmqcN5zTofZ8bg94=,iv:3NVVsae+pgbriTNzgT6rGCEzJjw368WgAKfQCi2qsmQ=,tag:AQSIxJCZOZ8dtlvcu4WMuw==,type:str] +transmission__rpc_password: ENC[AES256_GCM,data:PPEIdI/OcuvX8Mh+zNFSOw==,iv:AgHwT6FGmE9sY3H+MQQc291ILbpNKatEoK8W09wrtr4=,tag:M1E0iS8TTNvu2MABboqCSQ==,type:str] sops: - lastmodified: "2026-06-01T19:05:50Z" - mac: ENC[AES256_GCM,data:ms4yaDEY/2DxC56rxagBRgfkHuy2/AGhZ0om3+gTVfG8/1p7v+qWXuWrNlDjefjhLKVCaf5yl749JZIjs8PP6rTKyTcteqVfoKwx+CFaEA9OmPOaENBV8Kpy2Rrkw8J4UBBKSoTKGFDAGtyysmqbS8eqDuEpb/TbfbbybJUNfe4=,iv:g4IHNmQELptweaqRE7P3LlBTwV+7jt6AfrPowzuziv4=,tag:YkBnOJA5IN1xDhI+umYSow==,type:str] + lastmodified: "2026-06-28T11:50:14Z" + mac: ENC[AES256_GCM,data:c03dDTwriK3lk9HYK5h85ESxC3nvVjBZVIva1ZAbeFu1n8u1IfazBS3NN4NSEZ+TkSW1WdQVKXFiQ9WBawLwLzXSKcmxaOPZuIvxcmbsYGuHAMpO1ODNgvuPP6D6vFl/C+Ew0yRVd72MqlvQKrg46+x6uD+1cvi9w30+EkzV+UY=,iv:UlSDF/0aF0dWYaQc9KAv3pXE1DUflQfFrHIlSt5stJU=,tag:Uj0W//Du0TOugByNFHFf9g==,type:str] pgp: - created_at: "2026-06-01T19:05:22Z" enc: |- @@ -177,4 +178,4 @@ sops: -----END PGP MESSAGE----- fp: 41FFAF3D519CF5C039FBD8414BCC213729AF0E49 unencrypted_suffix: _unencrypted - version: 3.12.2 + version: 3.13.1 diff --git a/inventories/z9/host_vars/opensourcetorrents.yaml b/inventories/z9/host_vars/opensourcetorrents.yaml index 6bcc86d..0df26e6 100644 --- a/inventories/z9/host_vars/opensourcetorrents.yaml +++ b/inventories/z9/host_vars/opensourcetorrents.yaml @@ -1 +1,93 @@ # add /etc/transmission-remote/settings.json here +transmission__settings: + alt-speed-down: 50 + alt-speed-enabled: false + alt-speed-time-begin: 540 + alt-speed-time-day: 127 + alt-speed-time-enabled: false + alt-speed-time-end: 1020 + alt-speed-up: 50 + announce-ip: "" + announce-ip-enabled: false + anti-brute-force-enabled: false + anti-brute-force-threshold: 100 + bind-address-ipv4: "" + bind-address-ipv6: "" + blocklist-enabled: false + blocklist-url: http://www.example.com/blocklist + cache-size-mb: 4 + default-trackers: "" + dht-enabled: true + download-dir: /torrents/complete + download-limit: 100 + download-limit-enabled: 0 + download-queue-enabled: true + download-queue-size: 5 + encryption: 1 + idle-seeding-limit: 30 + idle-seeding-limit-enabled: false + incomplete-dir: /torrents/incomplete + incomplete-dir-enabled: true + lpd-enabled: true + max-peers-global: 200 + message-level: 2 + peer-congestion-algorithm: "" + peer-limit-global: 200 + peer-limit-per-torrent: 50 + peer-port: 51413 + peer-port-random-high: 65535 + peer-port-random-low: 49152 + peer-port-random-on-start: false + peer-socket-tos: le + pex-enabled: true + pidfile: "" + port-forwarding-enabled: false + preallocation: 1 + preferred_transport: utp + proxy_url: "" + queue-stalled-enabled: true + queue-stalled-minutes: 30 + ratio-limit: 2 + ratio-limit-enabled: false + rename-partial-files: true + reqq: 2000 + rpc-authentication-required: false + rpc-bind-address: 0.0.0.0 + rpc-enabled: true + rpc-host-whitelist: "" + rpc-host-whitelist-enabled: true + rpc-password: '{{ transmission__rpc_password }}' + rpc-port: 9091 + rpc-socket-mode: "0750" + rpc-url: /transmission/ + rpc-username: "" + rpc-whitelist: 127.0.0.1,::1,172.31.200.*,172.31.201.*,213.240.180.39,2a01:170:118b::1 + rpc-whitelist-enabled: true + scrape-paused-torrents-enabled: true + script-torrent-added-enabled: false + script-torrent-added-filename: "" + script-torrent-done-enabled: false + script-torrent-done-filename: "" + script-torrent-done-seeding-enabled: false + script-torrent-done-seeding-filename: "" + seed-queue-enabled: false + seed-queue-size: 10 + sequential_download: false + sleep-per-seconds-during-verify: 100 + speed-limit-down: 100 + speed-limit-down-enabled: false + speed-limit-up: 100 + speed-limit-up-enabled: false + start-added-torrents: true + start_paused: false + tcp-enabled: true + torrent-added-verify-mode: fast + trash-original-torrent-files: false + umask: "022" + upload-limit: 100 + upload-limit-enabled: 0 + upload-slots-per-torrent: 8 + utp-enabled: true + watch-dir: /torrents/torrents + watch-dir-enabled: true + watch-dir-force-generic: false diff --git a/inventories/z9/hosts.yaml b/inventories/z9/hosts.yaml index 0c6e16d..6044154 100644 --- a/inventories/z9/hosts.yaml +++ b/inventories/z9/hosts.yaml @@ -44,6 +44,9 @@ nginx_hosts: ola_hosts: hosts: light: +transmission: + hosts: + opensourcetorrents: proxmox_vm_template_hosts: hosts: thinkcccore0: diff --git a/playbooks/deploy.yaml b/playbooks/deploy.yaml index b7ce104..d111321 100644 --- a/playbooks/deploy.yaml +++ b/playbooks/deploy.yaml @@ -156,3 +156,10 @@ - knot tags: - knot + +- name: Setup transmission + hosts: transmission + roles: + - transmission + tags: + - transmission diff --git a/roles/transmission/files/update-transmission-settings b/roles/transmission/files/update-transmission-settings new file mode 100644 index 0000000..d51730a --- /dev/null +++ b/roles/transmission/files/update-transmission-settings @@ -0,0 +1,13 @@ +#!/bin/sh + +# +# Update the transmission settings.json. For the update, stop transmission, +# put the new file in place, and restart it. +# + +set -e + +systemctl stop transmission-daemon +cp /etc/transmission-daemon/settings-ansible.json /etc/transmission-daemon/settings.json +chmod 0660 /etc/transmission-daemon/settings.json +systemctl start transmission-daemon diff --git a/roles/transmission/handlers/main.yaml b/roles/transmission/handlers/main.yaml new file mode 100644 index 0000000..781f442 --- /dev/null +++ b/roles/transmission/handlers/main.yaml @@ -0,0 +1,3 @@ +- name: update transmission settings + ansible.builtin.command: /usr/local/sbin/update-transmission-settings + become: true diff --git a/roles/transmission/tasks/main.yaml b/roles/transmission/tasks/main.yaml new file mode 100644 index 0000000..f927ef6 --- /dev/null +++ b/roles/transmission/tasks/main.yaml @@ -0,0 +1,23 @@ +- name: ensure transmission-daemon is installed + ansible.builtin.apt: + name: transmission-daemon + state: present + become: true +- name: ensure update-transmission-settings is deployed + ansible.builtin.copy: + src: "update-transmission-settings" + dest: "/usr/local/sbin/update-transmission-settings" + owner: root + group: root + mode: "0750" + become: true + notify: update transmission settings +- name: ensure transmission settings are deployed + ansible.builtin.copy: + content: '{{ transmission__settings | to_json(indent=4, sort_keys=True) }}' + dest: "/etc/transmission-daemon/settings-ansible.json" + owner: debian-transmission + group: debian-transmission + mode: "0750" + become: true + notify: update transmission settings From 8de361d223d99e277b6680c381c64e4be1cf65e7 Mon Sep 17 00:00:00 2001 From: lilly Date: Tue, 30 Jun 2026 20:47:35 +0200 Subject: [PATCH 06/25] add dooris.ccchh.net entries --- resources/chaosknoten/auth-dns/zones/ccchh.net.zone | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/resources/chaosknoten/auth-dns/zones/ccchh.net.zone b/resources/chaosknoten/auth-dns/zones/ccchh.net.zone index 1dee1b4..f598988 100644 --- a/resources/chaosknoten/auth-dns/zones/ccchh.net.zone +++ b/resources/chaosknoten/auth-dns/zones/ccchh.net.zone @@ -47,6 +47,9 @@ unifi A 10.89.213.21 ; Club-Services ; xr18 A 172.31.200.29 +dooris A 172.31.200.16 + AAAA 2a07:c481:1:d0::1c +hmdooris-ccu A 172.31.200.17 ;club-assistant AAAA 2a07:c481:1:d0::a ;;_acme-challenge.club-assistant CNAME d50ad73a-f82d-4244-87f0-6f5195b37d21.auth.acmedns.hamburg.ccc.de @@ -56,9 +59,7 @@ xr18 A 172.31.200.29 ;_acme-challenge.light CNAME e59f55ee-9013-469d-a146-a159721b6fea.auth.acmedns.hamburg.ccc.de. ;light-werkstatt AAAA 2a07:c481:1:d0::16 ;_acme-challenge.light-werkstatt CNAME f408acc0-d9f5-4525-bb01-28938e3bb7d0.auth.acmedns.hamburg.ccc.de. -;hmdooris-ccu A 10.31.208.202 ;buba A 10.31.211.137 -;dooris AAAA 2a07:c481:1:d0::1c ;_acme-challenge.dooris CNAME 37caae1f-b77f-4eb1-aa71-dc3f7ed24360.auth.acmedns.hamburg.ccc.de. ;yate A 10.31.208.12 ;staubiv2 A 10.31.210.233 From cf98c9df3098f5246c59ab939628d660c0cfcc8b Mon Sep 17 00:00:00 2001 From: lilly Date: Tue, 30 Jun 2026 21:14:21 +0200 Subject: [PATCH 07/25] configure dooris to write ssh public keys into file --- resources/z9/dooris/docker_compose/compose.yaml.j2 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/resources/z9/dooris/docker_compose/compose.yaml.j2 b/resources/z9/dooris/docker_compose/compose.yaml.j2 index d16c8ad..e81b233 100644 --- a/resources/z9/dooris/docker_compose/compose.yaml.j2 +++ b/resources/z9/dooris/docker_compose/compose.yaml.j2 @@ -10,5 +10,8 @@ services: DOORIS_BASE_URL: https://dooris.ccchh.net DOORIS_CCUJACK_USER: "dooris" DOORIS_CCUJACK_PASSWORD: "{{ secret__dooris_ccujack_password }}" + DOORIS_AUTHORIZED_KEYS_FILE: "/srv/state/dooris_authorized_keys" network_mode: host restart: unless-stopped + volumes: + - "./state:/srv/state/:rw" From dea6bfe68bb129224c7d580f0b8e664f17bdddf1 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 30 Jun 2026 22:19:41 +0200 Subject: [PATCH 08/25] update keycloak to 26.6.3 --- resources/chaosknoten/keycloak/docker_compose/compose.yaml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/chaosknoten/keycloak/docker_compose/compose.yaml.j2 b/resources/chaosknoten/keycloak/docker_compose/compose.yaml.j2 index 8db3526..75c94e0 100644 --- a/resources/chaosknoten/keycloak/docker_compose/compose.yaml.j2 +++ b/resources/chaosknoten/keycloak/docker_compose/compose.yaml.j2 @@ -22,7 +22,7 @@ services: keycloak: - image: git.hamburg.ccc.de/ccchh/oci-images/keycloak:26.6.0 + image: git.hamburg.ccc.de/ccchh/oci-images/keycloak:26.6.3 pull_policy: always restart: unless-stopped command: start --optimized From 94120337aa1824cd40bd99636af3056f914c83c0 Mon Sep 17 00:00:00 2001 From: June Date: Wed, 20 May 2026 20:33:07 +0200 Subject: [PATCH 09/25] forgejo-runner(host): basic setup --- .sops.yaml | 7 + .../chaosknoten/group_vars/all.sops.yaml | 469 +++++++++--------- .../host_vars/forgejo-runner.sops.yaml | 187 +++++++ inventories/chaosknoten/hosts.yaml | 7 + .../auth-dns/zones/hamburg.ccc.de.zone | 1 + 5 files changed, 441 insertions(+), 230 deletions(-) create mode 100644 inventories/chaosknoten/host_vars/forgejo-runner.sops.yaml diff --git a/.sops.yaml b/.sops.yaml index b517a43..849749b 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -39,6 +39,7 @@ keys: - &host_mjolnir_ansible_pull_age_key age1hv7m3xypesdfm0dfzwgctde8v307g9xaunnfu2687y0lagcs5q7s3eg0kj - &host_diday_staging_runner_ansible_pull_age_key age1522f3qzddm82w63j7ajdkr0khvced6ht7tzp3grvp0j3hewtvesssr5kpf - &host_auth_dns_ansible_pull_age_key age18zgt4y2sd75hxnpe333zz39048ctxpr0q8a3uqh3jajjkyawsdrq8yg5ve + - &host_forgejo_runner_ansible_pull_age_key age1az0k6cadssk6r8qcqxfr8cyu5mndy59pwt8yqq6w065ew6au4ezsmg2vkf external: age: &host_external_age_keys - &host_status_ansible_pull_age_key age1p546j6whqsyfkjuf674lawrnk2ex653fuvwhcwt46gkrspkq59sqzm5y87 @@ -209,6 +210,12 @@ creation_rules: *admin_gpg_keys age: - *host_auth_dns_ansible_pull_age_key + - path_regex: "inventories/chaosknoten/host_vars/forgejo-runner\\.sops\\..+" + key_groups: + - pgp: + *admin_gpg_keys + age: + - *host_forgejo_runner_ansible_pull_age_key # external hosts - path_regex: "inventories/external/host_vars/status\\.sops\\..+" key_groups: diff --git a/inventories/chaosknoten/group_vars/all.sops.yaml b/inventories/chaosknoten/group_vars/all.sops.yaml index 5b3f4dd..5b4b6c1 100644 --- a/inventories/chaosknoten/group_vars/all.sops.yaml +++ b/inventories/chaosknoten/group_vars/all.sops.yaml @@ -5,381 +5,390 @@ sops: - recipient: age1ss82zwqkj438re78355p886r89csqrrfmkfp8lrrf8v23nza492qza4ey3 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0SHFlOFVSbisycXk3em1N - V3RvaXNNOFIvdDJobk9kSVBmOG0ycCs1T1E0ClZ1NnVGK3VNNVplQkxjVUw2dUxu - SXU1RjNLTE5mZm5yUVBDa0NTTkVhck0KLS0tICtpTDNmeFhWazk1U0FQd21wM1FZ - RkdwVXBSK2xySW5qMDg3TzhVeG1Rd0UKXfj3aSYJWBn7EhsUgHnreeARsjWfjs6T - 79kvBkQ+Ovn9zvUZZ23I72rtEjab3Wt9gK2FdmEWVkHYS0ZvA8ymbw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvalUzeDFlWDJpaFdxYzZU + SzNLbFNiMTMreGhkaUZMN2hZS1dONFRzeEM4CmR5VjVKSWloQzc0NnM0bGRHR2RE + YkwvOWZZZXczcTR0cFZvb1hjMEVMZW8KLS0tIFVEVTd6UG53K1loNDdEeUhVTW5W + dFYveVdnZFptWi8wNEtIL2VEd1pPVVUK51kCjHeK/neGrtcsgvMsPifCKQflPn8S + +E3oHbvSvBWW5ACR+X0My3FF6F5qTyzeo8OqCdwHJJci8wD4lO0ykQ== -----END AGE ENCRYPTED FILE----- - recipient: age1gdfhx5hy829uqkw4nwjwlpvl7zqvljguzsnjv0dpwz5q5u7dtf6s90wndt enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5dTdXN0xPaWliOGVqS2NU - aCt3OWl3K2FXcTlYU3NDOXhGc2paRmZnMmtJClN3L0JJRXZDeWloaGJqRURWU3ZT - Sk54TGZHdFF6OUkrTVU4RDF5dXpIeTgKLS0tIGM1Z21TZW96TjA0Mm1WUGZoZnpF - WVBJaTUyQWpyY2ZZeHM2VXhMZ0VvSmMKTfmZnaNx7jz320cco7HThAsOPsnQOtCZ - MbVNfu7iltvgQDhoYwhSrnHlqFV4ogeacT2KXS5mO2M7xZK7N/IegA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVSHp3cVdjbURhQWJRb3FN + ZmxSajRNSzFib2lRRmtVcmVzaWtjZmpibkhvCncrNkNmUmFKMkhLWG8zWjMwcUlI + dElPd29uaEFaeC83citIbC9sZjVhcEkKLS0tIEsycHZ3UnZ6YU5uSVZFUU1VeVQ5 + aUQwZUU4NFF3cHpoMTY2aUFMT3R3K1UKBMzOLiQreRutPycBG3ripOeKOlz02Hxu + nWkfVy4eJc+zRrwICmil/v3VcyKH72AvuUfnBgFkCTg+lGZY/GDfAg== -----END AGE ENCRYPTED FILE----- - recipient: age13nm6hfz66ce4wpn89fye05mag3l3h04etvz6wj7szm3vzrdlfupqhrp3fa enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAySnZSb1UvOFJGZzFCWmZl - MzgwWGxTOTlIM1lJVjBRRmpXc1YwUHQwcmtNCmRFSTVFUGFJQ2dSS29jNWJ5QWlP - RTIzcGpCWmEzVUc4dUZRVy9uSEtBQlUKLS0tIGUzQm5GZ2EwZDY0NEoxME1ZTTll - Nks2Mzk0M0pCZWZ6ME02dWovSktMMWcKgHTs5kzaIpuobI6KbjzWB9W2VOh50mB1 - Y+Z99tY96p47nRKOrYCNxkPMytxZEPZYg2hkz8gXH4UKC2eHJj6+Dw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0STVTd3pHV3BCTTkrOTdy + RXBweU5OM3RkWFA2T1M0RzJWNHVYdVZXWVVBCm00M2hQdlphRkxjU0VOUEladjl3 + a21QVEZmMHFoM1JxQlZXaXlVTjRHRmcKLS0tIHBwN3pkRGExV1d5M3J3NWo0cHNI + M2IxRjNHYmFPSDB1Ly9xSkRHMy9ldVUKdrGJ2HS5Kfyyw+0bCMlFs7DJ3+JWKLtq + 7YCoqWskZauUv+cH2VL/oghttdWQXonlVINkhKbeiQ49BbhPTompJA== -----END AGE ENCRYPTED FILE----- - recipient: age1jtusr294t8mzar2qy857v6s329ret9s353y4kuulxwnlyy4dvpjsvyl67m enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxRmpQTVVqTDNTYnZRYW0z - Q0VWcitOR2VYc3QzbUdvbVQvamptaDh4Q1dvCkhkMWNoL1JPcVozVWE3VTBtU0R1 - L1JwdTd5WXNEam1KeXFBSUVaeFUyTVEKLS0tIFNmWkx5ZWVtUGxMcGl2dWNWSnpy - WWhVSzIxblJsNHZRZ2JseFUvNmxLclUKh8akajMIkvAdYhwG9AAIB4br8EKJvVng - Nc4E/bUm5t6xxw7SVfxJ3HXWHYT6O5zC2sOspGi39oodgUKtQdwiGw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2Njd0ZDR3M3JuREJNTjdl + RDRDd1BXQ1F2Z3NZYVFlTGhsN0gxTTdOY3pBCmZReUF4SVRBcXpkQzk2d2xDRDBP + cXNNUGxXWkVFMTBNUkc1Q1ViaHpYZFEKLS0tIDFNVnlhQ294bHZhNTRUNUx4c2tT + MU1od1U3VG42cnBJSXlEQTl3MVhwMnMKFK43XRLZKQoouvCcGqHt/13LW+KMG4Gn + WvnkZz0m3WUM1iu3WLYqT+QOR8RnNPk669JE80rpxKZmbqRNsIdazw== -----END AGE ENCRYPTED FILE----- - recipient: age1a27euccw8j23wec76ls8vmzp7mntfcn4v8tkyegmg8alzfhk3suqwm6vgv enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTejVEYlEwZE10OGt2TTFn - cDdVV2VXeGpIclhCMCswTGY5UHlld09RSmdvCkYvdzJJTGVYYjZSS0xtWk05MWtr - ai9tQzhJTE92d1NzQ3hpZEY2Z0xzTUkKLS0tIDhSbnR5UzJjNjN2SXlWUlJubU9a - bEVNK3Y1c29DVXBCRGQ2Y1dOejZ1WUEKh9ehZCtmNeErAPbfFdjkE2Bs5Y+CuLtL - bgoUrGv8rBt+rmtgRLSBAj3frYRsR7kA5TsYtcVF3CBGqsZuCn/8/Q== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrd25sbHdPbkovMWJXaFdp + S0dYMmdoN1I2ZFA5SFk4VlBSelFWd056eXljCkdCdFlSMHdUdE1rd0MwSUdpTWNp + Ymk4Mk5kd1FZMElGTktiZ3djRXNENlEKLS0tIHJQWUtqTFZabjdidWlMbXVmeUlm + N1JBZm9jdWRtdXp0YWhTTVNGZnFQcUEKcrOCOyDG/dJocsR5ZLyv42PX5cTBdgvi + aNYAq+SnBEMQebUlPBfOapR3tsdjBRwMPvDN3cBtky77SGAg0hZ49A== -----END AGE ENCRYPTED FILE----- - recipient: age133wy6sxhgx3kkwxecra6xf9ey2uhnvtjpgwawwfmpvz0jpd0s5dqe385u3 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2dytYNExPdFFVWmF6Y3RP - VnpySExpMURISnVhYWFtR3Y0bksxN0JLOTIwCm1JU3JiNldCZW40b3J6cGsxd2g0 - c1RMVG1Mb0FURlN5QXZzL3ZMK3JlVUUKLS0tIDVaV2IwcUQyTlBENnZWeC9BMkpH - eDZ5aFFHZWd6VnNGSkgrcjR6Q2hxTXcKush+dylamXtpu6XB3nLjXYW2KbOymCWj - C4uK7OTmOyNXobQh5k2S120J581BihmQpef5LMhxM835VNEFoQ0G2w== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxM3V0RFd6Qk9JbzFGdi9q + ejZxMHBGdmhDNDloVVNpMkNrQStKUW5aNFRBClJtMGVJN1h0amJPV3RWY1lIQ2ow + LzYvR1dpSFpwa0c1Q05Bc3NXVWNrQjQKLS0tIEdNTXEraXk2N2Q5UWhjUUdvUXA0 + clhMUFZPT3JRZjFHeDBsd0YyVUVnZUkKYMO2fwqDXeuKVVgL2KKDWfTAa+5y0P0f + gFrlyEqbIrcr66fy66zHlVw3FjHoUfOsMDm4GRjWNn4KOTGSjIImjg== -----END AGE ENCRYPTED FILE----- - recipient: age1na0nh9ndnr9cxpnlvstrxskr4fxf4spnkw48ufl7m43f98y40y7shhnvgd enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0TWg5UHp2cHIzeDZtOE5j - bGg1MzFxQjhnTUdFc21kbVJxa2JYOTA3MUVNCndDUXM2NHRqOHFWN0VzdVdUYzhX - ZFZEelRVbm52UmZYa1BMeE1qU3RnL28KLS0tIHlNd0VNblFBQ0ZlbUtxM3dXbGJr - TUFTZ2hTbnU4RUlHU0Z6bzZqK3hIdlkKpxlcZipq7aBCHc9DDqCmOFlER+ed+LY5 - LBBSsL6ReDgJDFOVx2XGEuMO3mRP1vSOXnro/pa6oP+qodW8fJjCPg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGZC96YVlTVm5xM3M4ckYr + MVNZZ1dISHNGcnNSOEVjUk1JZDdVcXdKeEhjCnhUa2dMOEdBenNxcWkrRnY5RFdD + bXpCQk9KZFZmVWN1Sm5FcnkvaXJ1clEKLS0tIGhsUTd4a0tnWHJZdTB2VktEbGxw + eVZVenJRQXNKY1FNVG5yZXdHTVUrc28KAeiaqGRCZ7tjMaxKrlDOTj96WcoxlkxX + 1P+DXm44FAlEU/o9YCun5CBDMrBI8qBt5VUxFaqyA94ixSKXZQeUAw== -----END AGE ENCRYPTED FILE----- - recipient: age1sqs05anv4acculyap35e6vehdxw3g6ycwnvh6hsuv8u33re984zsnqfvqv enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3eHNmWThRcFA2VE9qYnkr - YkdDU21palBseEZOUCtmNkZKZE1ncEdtc0FrCnBWMXBKRHhBUitMZGt3c3FIeWFS - ZVJMNXdpUTJsTG0wd09lLzJDV25pOGMKLS0tIHlib0YrU0xKRUJHN1dZRVJDN1Zk - QVhDS0ZrU1A4NUFIekphZjFvT21TNlUKviQt+DZlmp5ZFxdlkmdlfqW2+BTotYJU - j/St6J3Ibt0nnflz+oiRunndHsaeZG6xBY3ueRThcjlInF2ycYsJoQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHTmtYKzA1d3Y4ZkRyNzg0 + RFk5SzQ2bGdDSG1LS2FkNkYwTUFXUjZqMngwCkhrLzEzUUhYQ2VkMEI1VmdidXA3 + RytrbXV4MUcwanNVaGc5NDBrSWxwRVkKLS0tIFBYSjc1Q2N1a1UzQTV2czdxaDNQ + ZmJGMFlNdUxrZHBtbWppcU9kelFTbE0KE90J1IodfxqYl3De2qUv8Eu3Uw5PKeQ9 + j5SPAw+1xvnB6q9iHAOhXwtER3bOsXOs8RnPTqKCV5RtEa6su79Kfw== -----END AGE ENCRYPTED FILE----- - recipient: age18qam683rva3ee3wgue7r0ey4ws4jttz4a4dpe3q8kq8lmrp97ezq2cns8d enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJRWlVS0o2ZC9sOGd3S1JI - RWdPZ21Hd016WlE1QjBONlVLTUMxWFA5dERNCjBtYXVMajBDSnhMbUlFY0ZQQ0dr - YitraTV5ZUlDbS9XMWxKSUQ5QXFpU1UKLS0tIEk1Z05NUDB3enVvNDdNRkpnU1Q3 - R1RnWWFaSmRtdDFVVW9jaGZUdUFQWFEKCE1osno869cTyuxQhQC3TjIfo5becoQk - ItN0+DrfbJtIs51+gu9sv92TFOWgdnvkCI0M6wzYnYCT6hH7ibwfrw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPbnJGdk40VVlQVGlhRVZy + M29YdWFxRnBRdlNsSVdTWnBWMGI1N3N5SjJjCkw3RzA5cHlBNVA2NlVlV2lJSThG + K2RXNm4rWkRtUmhHZUNBWUlUbTBIQ2sKLS0tIExyeFBpbnlRWittc09mVjkvY1ps + S0tjNUx3anVqL1RHVmVsR040S2VmdG8KEihK9BPXXLd0XQZB111NJuOdJGnCgBHP + KCuVczzyMx1lAyh0NlG0xgyIMKuWAXP0PBGgf24jerGbp/5mIx+sgw== -----END AGE ENCRYPTED FILE----- - recipient: age19rg2cuj9smv8nzxmr03azfqe69edhep53dep6kvh83paf08zv58sntm0fg enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3OEtZYSthRmZVbFY1dGx1 - TFVTRGh4QTVUZU1VVWRpU0FXMlVyQUhTWlhNCmZRdjc0ZGRGdFJCYk9weXJjSU5P - WE1GbWprT3RHeE5KbzNMNk1lYVdaVEEKLS0tIHJ3ZWdzbEVrNWJFZUIwSUplQUFm - WmpuWC9QWjdmUkxzSmhMa2R0K3ZYZ00Kl25L6Ya5bV4mPgq/OPxYq/D2xqszFVr9 - FkdgDr1VfbvU5wdA0QjIo+gVaJI7EazUcy2UJerS+uvL0dIn+RwsWg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoVTU0eWFMaWhIK25ESUQ0 + ZklzVEhOeDBtSWpINDVVb2o3QjQ5VWZzSUg4CkRpMnVGU3ZOWVZCRnpHT0J4TGhY + ZHNDekxuRmZ6TlIrUmhkYzlFb2NFM2MKLS0tIGNveGhmY1FsRUE2c045U2NjTi9r + ZjN2TEc2TGtIV093N1lKRjNqa0NrZTAKv72ItPWyFHxKxT1xQIu2sA2SzR3/1/Hf + WiZjpE7QXJBxhFVeYEcZgPKOZ7HdubchjSTCGTuX9oyi4/GI7yRPUg== -----END AGE ENCRYPTED FILE----- - recipient: age16znyzvquuy8467gg27mdwdt8k6kcu3fjrvfm6gnl4nmqp8tuvqaspqgcet enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYTlVXVlo2Ui9ISTY5dnNS - UFNzZGVueXA3dXkyb0NFNzlEVTcvM0Iwd2xzCkhsRGxRU3NBNURBR2FGay9wMlk3 - M3ZBTzlRNlRCVTFQNGZndEJFeDZzZUUKLS0tIDVGcWJWSUlnV3dSWkdzMjdZQkJs - dTNYQlJiNmwrbGdNNlRxZnBKcGNJV2sKBw6OlaoIcb9hoJQY6i5tI2ln9ug8KySE - 4jvaInODSz1eLaF/W+wxgiDxqgiB7cgeBxeCQiqNe8ZZz/7Mxhg6qQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjTzhrMGRsTHhCc2hlTkhS + SGxENjN3R0lseHgvVGJBdEN5L2RqTWJsMm1nCkcyVHJoRTUwa0U4VFFINXNmcFow + djBVZ3RjMWRNMzNnVGQ2SVpnbkZyOUEKLS0tIG1sZTE5ajc2aU82Yi8wT3djTk90 + cFFnNU9ZT05VTVJyVEJIUzNpRjhRc1UKZuDdPv5Ii+1ErBYDGxkaF0U/T9jKRI1X + Ov56TSpl0nlUB89dLPg94bICrL6q/Gv1pFBGx03xe/bHyxaHTEvGoA== -----END AGE ENCRYPTED FILE----- - recipient: age1azkgwrcwqhc6flj7gturptpl2uvay6pd94cam4t6yuk2n4wlnsqsj38hca enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhbXVyZjBsdlNOZS95ZkhN - VDZZQkxybTh5NGR2ZzI4VytMeTlseG5pdlhrCmdsdWY2cnZpa0xJaklvK3Z1bWRN - OWhCaHMyT1dLNmo0blBiU1g1Slpoa0EKLS0tIG42QUZuZFNVS1E2REV1UGVvRjI3 - WnplM2ZKVkVlZ1FIYStzYnl6T0xtcWcKiUfgJWlz6dwyFg0ln5a9MwZuQwwHv9f/ - AV4QcSWXR0rh8oV4PWw+EYYmtmX7GICNVjqruHmokU83xpcqu1g40Q== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLVWNnMjlsUFZNa1AvVXFu + OXZQQkozYWxkZ0wxSUxZZlM2WGtuYU05b0dFClloZkxTWld4cEI3TWhaTEpCdkJJ + T0VLTkpsRnluejg0YWNzTGMzUUtRTFkKLS0tIHZ0U1lDRUxpYkdXaEl3OXBmVDZ2 + SmxybFFncFpjL3FuZ2dFaWM4dnFOWkEK+EqXlNZkn+oe4YecCwqJ8fLvXSo81A7/ + hBRU6LQGrSwf7lWW1qXNi/wtlNJMKE0nWFsJozrPFwoEjjysFDZy3Q== -----END AGE ENCRYPTED FILE----- - recipient: age17x20h3m6wgfhereusc224u95ac8aj68fzlkkj5ptvs9c5vlz3usqdu7crq enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0VGFBSTk1blRwM0g0Vnhp - ZnNKOXJ4V2MzRllqL1NNV2VSK3JsZHFTMlhzClpHYXVqa0ZmSGFVWVpjSitmT0pn - K0txWHpPcDVKNGNTZjR6bEowSWo3Q1UKLS0tICs4dEZQeGhIUFYvRHZlU3pQTmdB - a05lTEZ6My9jM28xdUVTOTdqSkRHMEEKjdhHDpQl8hkRiHheD9sxDZHnIeJmCjXU - GBpbbTjAoVcJDyK9YH43/jNr5rT4mxTogArNtk+cvUlV1Ryy+PED4w== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDejRnM05CR0ZHbUMya2ps + OFlBRnBueTdBc3k5VFhpelg3ems5NHZ3NjN3Cm9sRVJXQnZjdWJVNHdLSzFlZGly + VDNTUCtlV3dEK2lSRFhkNmQyUGpCcjgKLS0tIGdSd3dUb3B5Y1ZDSG9PODhNWGsw + RVJ3SW54T1VpNUlhUnhnamFRalpnTE0KL2JiKsiWp+06NN3paFVt5ZDfZBDP8i9u + 2vwztiFt8WdDKqJtaz2HxPutj+LtQIOOmZWatKTQRS8ALNtLZOeZgw== -----END AGE ENCRYPTED FILE----- - recipient: age1wnympe3x8ce8hk87cymmt6wvccs4aes5rhhs44hq0s529v5z4g5sfyphwx enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBscjRHQ3lGaDJBOGxGTHIz - U2JmcjhyOVF3cEFCWXFFMU5Nc0hUU3pSWENRCm9vWXM4Rm9iSFZiTTNjeW1aNE5K - RjVoYUE2S3M3d0orVjFIcWhrVVgyUzgKLS0tIFpWeXNMWXg5Z2FTSkVDYytvdStU - MVNCQzVBSGIyUjAwL2NYK0ZSdE9kS0kK8Mo29wZlV/t1hixFL95NSyCvHfB1nUk3 - m/z5yh8CFwozb7ovd6MkAlqXB3bYAmMOiL+TPlvtqKkzcuQ6DRmjeg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEQ2Fld2ZjcjhoUVNmalpo + eFNZbFM2UzcrdHZTV011Ni9YeXhzUlRrcHhvCjV0cVMwenhOeDZweGo3YmsrcGRl + U3pBYjUvSTliT3JiK3dKWDdzYzlJUTQKLS0tIE1hb0RPbWoycjhTYjE3K01HdWY4 + cDBTVlVOZGFTWUkxM2pIWkhrK3ZWZmsKEk9Q/lXxWEkDt+xJyhmrnkqh8tarYY2D + UyJQofhowqP1gKLHlH0OVK2SGOXK1A762+aXDsSAb3cGvxQ+p06qkA== -----END AGE ENCRYPTED FILE----- - recipient: age172pk7lyc6p4ewy0f2h6pau5d5sz6z8cq66hm4u4tpzx3an496a2sljx7x5 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1Q3pRZWVSZUF0cmJDUVJj - bmY5T3RhSmMvVGpoRlBOU21jWDZ5elI3ZVFNCkVUWXQ1b0dlT2JLK0diZUZpU2VJ - RExZQkpBa2t4aUxiMndpeStCUmlQalUKLS0tIGtEM25qenNSbmpGMlEzc0xvSW1t - ejh5dmtBZ0tsL0lIMzhmcjg4TmozL1EKRKzgHd2n9OqFd9AYsjvu4mk2IOOgFeF3 - x1toWH7frbK9/wyQ+jDJsWIthsvvGxOrU/bmiWYsFraEey3+8fJ3dA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuUTlRU3V3U1VmKy9hOEhr + SVlObkVjaERRcStDd0Jtd0tXbUhuVWx5em5BCmh0aVkwYlZ4OWRGMjVwV0M1RGhk + dFhqOVFadG53dnNvemc0UmpXQlRDZ1EKLS0tIDQ4TE5SU29zeXdUYVR3VzdicVRY + NTI0SnBYZGlRLzAwc0p1dExXVFdmVnMKEFkjz2qpMXRqwmZ4YCxs8iwZpHk/CSit + G4+EjH9oMEFBYqPkgdsYw2stIs7yPncKtKHPIHD93OlXCqKoqNWGag== -----END AGE ENCRYPTED FILE----- - recipient: age1p7pxgq5kwcpdkhkh3qq4pvnltrdk4gwf60hdhv8ka0mdxmgnjepqyleyen enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpM1lUbGhIWmRIRnlJbEJa - NDRpN0QrQ0IrYSs5RG4zWGMzZUhoSjFqRW1rCmtNS3Z6N1d0WmNKM3VvSms1Qk5M - cTRjTFJnREVzUSsyN0N2K3NpMWFTTEUKLS0tIEhBZGphNVhuTkZVenhZcm9kejU3 - bXdLWUV6elhUcWo1dTZOODB4Wm0yQ1kK0K3NSYoxjIdHt8mkfZ6/phTc+yDEbjOd - +23I/LtmUeGLDYbFMnUVrs6IHdt0Wf6XiHihFeAYBzJ+MZJiBGA/pg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSTWY5eWkzS1FSNHlWL05l + SU00eUl6K1VYcDJoSFR0UEsyU1pHcE95K1FJCmEvdEVUb2xJdTRZTUY1bHI2YmRp + RUtrSGJsUFpRazZHVzdhQlZxbmxKMnMKLS0tIHhxVzFvVktXZ1lhazRyRXNLM1RQ + NmNLRnRDdkJiT3lXL2s2L0tNbTJLdUEKz1y8nEdzEmbqb8V9RoZWrKuLbz/as/4a + 8z/+fyoRWhuugN3bP1XIw7tyg7abW4/fMQaJi5iEcguKbDnfZ5G5uw== -----END AGE ENCRYPTED FILE----- - recipient: age1sv7uhpnk9d3u3je9zzvlux0kd83f627aclpamnz2h3ksg599838qjgrvqs enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHYVh0aXlGRzRzVUtpcktG - RlNtUC93VjFYbzFDTGh3WUF6eStVNGpzOGpVCjM2dGM3ZXlzeW1hQ01SQlhIOElw - V1RaRG5kTDNHUzdSVm1WTEFaNXROVEEKLS0tIDdRM3IwRURrMWpWNlhPNFRMNmlu - UG10azZmL2J6ZTI5WXFjaFlhUWdzT1kKDiBjafMxI4hH5vXwYU0oKXa6N3VwwSh3 - SYOWwZrrXzC2XEB2btqWxuPOu4gH9qVJXjIM4dS7AaHJM0DmrzBj1Q== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhdExDdGlMczA3cG1RQ2dj + cmlycUtFay9GSXZTY1ViR1lRMnZEenNXZEc4CkdhSUJRd3VmUzFGYXJJNStCMFFi + MGgrWkZOQUFqYURsUEVtblVnS0lHM3cKLS0tIE1YRjFuWU8yeWlJOHJJNDdBaDZP + VnpYR0RhS3ZLS2xlN21mNEdWQUxENE0KA/4UnoYY7p/6/KyK/OF0xkK/RNTtvb1A + uw+8pfLPlY4OKcq+yhCQEkIJOUzNvtoHWcvQf7HIzq/3pXc4b7zIkQ== -----END AGE ENCRYPTED FILE----- - recipient: age1dkecypmfuj0tcm2cz8vnvq5drpu2ddhgnfkzxvscs7m4e79gpseqyhr9pg enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFNjlSQTE2SFJVUE9pTXFy - NHo5czVPWjJYWFo4ckhDeTVQU1lFdDhQc0IwCnV3VWx4U3Z1cGFKdVl6ajJJRU5J - bWc3dkFiUlJoQVc0bnZvNitHV1g3ajAKLS0tIHEvNCtmRjRHRzE3Y2oxRnpLRHNQ - dEtZOGRkdTZIYVJrRE1Xaks0NjI0T28K9y8wk3WVv0SpnWj0FK8U4cRHYeuXIHw8 - tWL52iwJTf1Jm1uKw99S12ixhZIuNUM9J33EqH6PVQxDRCzM8/jW8A== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxZHZwK0wrdGpGMnJtSWVW + ckthVU5xa0syeU1EYWpGUnExSEdVNUQwTndFCk5hSkdDQVQ4ZU9ORXVUbWN5OEtX + Z1Bod3UwTGp6T01GN0JYY3NpUGRZUlkKLS0tIFBCOGFnbWRaZXVieDNYWFUzOHYr + L2J2UFZlUG1EK2E0MktDbGlOS1VmY28KA/Edhl661RwszbY6wdttE/5e91IYM2Z+ + NHPgNq9ePb0DqAtNozYk8lA9D4Y20cx+7gTPzSwYKVW1iITarI50NA== -----END AGE ENCRYPTED FILE----- - recipient: age1mdtnk78aeqnwqadjqje5pfha04wu92d3ecchyqajjmy434kwq98qksq2wa enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4UVRZNyt5QVdNMThiRlds - Z1ZjVWZlVlpMRzBrV1M1Y0k3M2xCRnVUVzNzCmZxVnlkMWNPNTlkOU1IVXVHTWJ2 - MjByM09LTjR0UHNrYkwrOS9Uck1EY0EKLS0tIG9PTndzTDFSY1JzWXA4Y0l0QWFr - enA3QVpDZGwzaHZ6ZGpmK2JmMm5nVVkKrjkYCDyXtf4QMmC4IWh3ealGGFE2qsT+ - 01mAXWHGETiuezKRxJahSqWBk9JL8EvAPNGhi3o7B++H40U4G3dgLA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzOS9kOVlMR2lXVDFWcUYv + cWtTZFdMMHdoQzdUbEZmRXlITHRrVFFKVlJRCjl1eEJmSUs5ejBYdGl1Y3Z1ZkNL + Ymc2Q2VVclRKdzRiQStBZGozRmlDM1UKLS0tIDRhTUN5aVhYTG9IZWdPY3hVQitq + ZHFGVzhBbVZwV2F0VkJzazIzRCs2TzQKK+j4kdCrNBQpEMIl/qBdrVem2880XnMd + /gHCkOmjcCJwbawN7ddB/+nxNp59M2MwednrXt+O5clTuAseUoa16Q== -----END AGE ENCRYPTED FILE----- - recipient: age16pxqxdj25xz6w200sf8duc62vyk0xkhzc7y63nyhg29sm077vp8qy4sywv enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJU3AraDJyc1dPTlloN2M5 - UGp5a3Z2cFpYWWJLaXFMdVByY3ROQ3ZDY2lvCjN3SHR1MjRTdTNERU16aGFyT0VG - NXVpTk9KVHp5dDdwNkQ5RDVsMzRsQWcKLS0tIFBjaVVZUTNzVDZJVlBQdGxZbG1L - MFh3MFVSS3lKK3NWdThGMzIwdUNoSzQKSREBS5WSMieyjWjuBN/faxsdF0Gv29OA - s5MLSR4YXdoENtBYJLl2NMU8+Qz/F1UlnuUtCzcW686Dy11T/CDnRQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxbWgwQmZEcmw3emVJN294 + cERib0xuc3Y5UWJiRElRUnhjS3JScHc4aEU0Cm0zaDlzOU5sL0J0MGE3Ujg1T3ZS + cXljVFFVZDhxWEdkUjdndmNlNkxrQTAKLS0tIENwbDlKTVRLSVJ2elZCbnhtY0RH + Vkdhb1Vld2NvWlpNTFNyRFRQRFhsVlUKRihJgoaFsgfByXfoWA728AT+E9bQu1ju + tYpn7wL00VA/xwLyb7WVcrIJY2Q946UTUE4b9Isx6rv3NDKeWYUEPw== -----END AGE ENCRYPTED FILE----- - recipient: age1hv7m3xypesdfm0dfzwgctde8v307g9xaunnfu2687y0lagcs5q7s3eg0kj enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjd0NpQjFVOHAyUkdYMzZs - VUplU3hpbzc1YVRzS2lMSExHb09uOFFRaFJ3CjBqZS9rYXl3aGZkdVVUM0FuU2Jv - cHRXdlNFRnYyK2dXaE9EbytOTXhxTDAKLS0tIGlEU1RpQWlkZGovR3JTOUNTck5N - RlJWZVJ0aWlHSngwUmRhUHpYNUNlNDQKX4jKugCpD5usjuQkSimKhEIPbvq6cTT+ - DcVYEw1hNRieZ3hrjMIqcoCjPOlXq0+hkQmAkZvrMvO2e1CAlm/DZQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpaFFlQWpoaUJFVEIvb3Vw + SzZyWmlMcU1RMXFnMmNHenJNTDJnN3dYbVhZCmNFRC9oRE1ENHZWc2ZYeUFMOEEr + ZjBUbjlaNlVvMkdaUkwwUmlWd3luQVEKLS0tIElEQnltd01ZU3YwNlFjc3RBcUNz + TVFtc2czRFdoMDhyVkgvVXduQTNHNU0Kiuni5O8zpUHcxSD/ifv26sgGa0CcztsT + jp/zmougfaFAy7UOLnkaCEu7gruoesZY3fxPhiCyy+jSCLe9mzxSbQ== -----END AGE ENCRYPTED FILE----- - recipient: age1522f3qzddm82w63j7ajdkr0khvced6ht7tzp3grvp0j3hewtvesssr5kpf enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTc2ptTGlGU0VaMnVCb2ly - dzNUUldEeVBIbnpEdlM0QkI1Zkhua1IzNmhFCjBUQk1lanFWVGNjeDVGdG55TTVE - Z2lIWXNqY0Y1YUEwQjI5dC9UY01jSE0KLS0tIFVlOXN2cThQdldjWEs3b2pDRHNB - cks5WjFuMTBCMVhMYnJjbkpFclgwNUkKPh/RpdUCKYn76fm5MG47ePBmNHLATnFp - rrN+PHxj85vL/3u00j2kNY28dM7IH3qymMYKu1Dm+BO2RFI/4hPFsA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvNFVuV04rTnpXRGthQjRY + ZmZ1Y0JQUG45dDhoYUVOeGF0YTJmamliT1FvCnFPS2NXbFliejg4Q3JpVmY5c2xm + U09HZ0I1dk10RGh4Ull0dTc4OEFGVHcKLS0tIDdSOGhySVQvUHlLNllnakc4RmhR + N3VKRzRvNW1WeVBhN0ZtUXF2UzZHVlkKl9roQWqZWohR8MnoMCXWNggWJZBHfZJp + 29pKxeqp4KV0c4oQMgFYcckrw13ynMQ1O9cgYVMPl/qtViun9jr6XA== -----END AGE ENCRYPTED FILE----- - recipient: age18zgt4y2sd75hxnpe333zz39048ctxpr0q8a3uqh3jajjkyawsdrq8yg5ve enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYcHJaVExSbFl6anlLd2do - QlMyNU9zT1lJM3NTeThjYVlibTh6VVMweFQ4ClFrSDRXaTlDME50WlNJNG52SVoy - NEFvdko4QUdYRDNJSkIyTHo2aVlWTncKLS0tIHAvRlNISVd4WU1WMGZGcVk3aEhh - SUo2QWV6bEZGNFdaLy9BU3ZsQUY4eXMKaW/0KSpGic5BDOdmWmCHJ3NzBNC/+3/K - I9GEF07iK0tvIFupQToFuZ6uV0BdLmpHPfNBnSKY2+Q3r7siomPTIA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4c2VyQmxSWW1aMnRwMFpk + bEluV3IxWVloZjNiQ1hubGhldENWZG5kOFRnCjFZMUFGRWFiODBDaFNGK2pCRlJB + QzJCdisrd1IyY3B1dDFOWW9QeW5ReTAKLS0tIEFJODdCKyt1NERlbk1NNjUxWWU3 + NXNkQTZ4Tk4zanlRdHJJc2tJWmdNMzAKzifmbegg6BO7RBg+BEbdq+wqWHRIa9JT + RHUWaCkaX/uKndvNzjrDITLClAw6lycFFFWkCzFidT6nzz2omfJkPQ== + -----END AGE ENCRYPTED FILE----- + - recipient: age1az0k6cadssk6r8qcqxfr8cyu5mndy59pwt8yqq6w065ew6au4ezsmg2vkf + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxa3NmdnoyRXdkQUNBT2xv + ZmRkZk1kcFdoRER0ZG1NelN1TmpmWXlPWlEwCnQvSWtuY0NiT3dkN1g3SzhhTmVm + Wkd0KzJlcDh4aEtFMUhCaUJ4dlJYV0kKLS0tIFVnNzJXQVh5U3d1b2c0VVVkV0JC + SURxZWNTNDcxcEd0aHA4R0VRYjZhak0KNsB6lsd6OK9lCdzHJqih9uZ5xExf6z4J + IqH/PN+F84tTh29QxvZRd07qQwVBiXdwDcQjBzUM4S+a2c+TVxf/qw== -----END AGE ENCRYPTED FILE----- lastmodified: "2026-01-25T18:06:26Z" mac: ENC[AES256_GCM,data:plHNLOgGWwNWbakKG6X5EOxwERE3rvYO4EOAzY/sz+uM7cZBEnqU5LZwjlD8B75hgRHqpnDBF0JbHgsEwVxfJJRL1phkeMJFOapQMjZVWMz6j7eb1hOwpdktd+bpuimy4XCD1aOxOoInKpFSK33usxLfyqSxjFDM5+i6D22qBTs=,iv:/iOIfNuSIDsa/UKLP0d63tpOrYMFO3Bk1qPssY0AzuI=,tag:k+824MXD+r0lNUcuvisudw==,type:str] pgp: - - created_at: "2026-05-20T02:08:48Z" + - created_at: "2026-05-20T02:10:23Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAxK/JaB2/SdtARAAgG60jnqSqxqyG5tpmOyODv8QP5CQ+2bhDUg9gZtaAn6R - CLseD2MGUkOn0JzJfDbLFNr0yCkNCq8hiCQl/4IuX1eCV1Yskbo0N9VS6aLVeN2H - GLkOkVBnA0/ipckcnqBk2kvxJLy39N4k5n6PAopen8rQcIuEN9Ljso8ItB1BJhKu - 1AQqZLw41aCyXFnK5fvT0s6U77VOjwO5CA/c3Cgz4HzR1cmZSr65a6oBBIOBkQCH - J3SSSGCJ/SgAAduQy5eHMLtCm/J20NYzLDCadwHTgGJMHkTaL49E7/JbYG3t1aEO - Le4mG9hXz2vC5CbZSaXzmbwv1APQ9PWRzjqeBsJFZx3rkmj8xhRdZcU/nqCXTvls - l+yG0rbMz1vHPW65nzKw+6AU974Mt/55TRxpdCQGg7EqlzS+JnbEGxnqtSHd46Sq - a7apnd0rbaZpUD94tYcUkG3MePslarCcv5hBPUD4hGjC5yfkkCdcRES2JnNDcCQy - 40mknB95dXomQf7Rf3bOpbXp/zagaFaWw2X/n3eEQZwXl6UCQQf5n1VriKMbCTJo - vlJsDGSsaZgA4c3O9Fa64hECnp5Uj1jtBbC4xxjljZMUjDnAokzWbJPpWh2wS6rQ - EKndLx23h6gHEOS+Qa3EixF+yVRHCSZs1WTWPlOEsXWJf3gduvmXY6FzLN4MPWbS - XgG8DyR91pv5Uj3/2V3eDExA0m+HyXhZZEo3j+0Fda9HZkvQERsE2lvkTt1hyB+f - cBU+7eXEWzOrulWpFFtKetk3lNdGEhSWXomGZ8CRCHrmu37settg4QqWZlUwXWQ= - =4FYu + hQIMAxK/JaB2/SdtARAArIbXCPqNo+EajbWjsgzQAt4jtyUSh7zOy1URyt5XPEUj + zJUFkS8SUfL372esuA/KjiRhE0Ztq2T+zHF8sBT5E3GCTEiLnKvGNGik2w2OX5MG + CDmKZosfuhByOFFubsI76fbicb5euGq1QSlBony8fqPtvJ1LpY2GX7Ob58TXii9f + ESLesimUT0T1sxG22w7RFOFPHRgqD7q8Y9gAsJduj9QVIr6bBxehbu80/b00irk4 + SVFM7lkvEWij3LXHYBBx54lwT5vaM2lNzQzBRJDljzD5bJkqFFc5HZAtZXI+g7fP + UmKZQWD74Fi8boYE9VNKW5jtEHAIgWHAVNEZPb02zmNITH2BaWYQFRseYeILdjaE + zdnw087YhK88BHZYjgACY1+yMHaxrlwyj95D2m27zk37JBo5F52L9Lo7uKgF7rtS + sAw+VGqscEwyB0mmTeidcV1talvieHgdbJiCFH/hWcNksa/EZoMclp8HscKOjWjj + bq4qZSH0BPD740CLyIhh6LFLpi2wEdEY4MyMkjP1vM/F7yPondEB5vNjk7x5V1hD + bK/WthCeN2Q34uCBOnnqzFlbrFAmHXQvq8NgzEDvsJmfY1wUrNsdW9wy8fti+g2w + L+s5Eqr6BgvqCIPz7e6xtZwekvP1p8tHyUqPcdXLDfFoBayeMd1/So1mV6nXzs7S + XAG+LzP7X+B2u69GSkJZjgpmwgiOXXQDIlVE60O8bENLeMRbXLpkBwQ0n8XIs6pr + +FX4YxPsf7IWRpMjKNfLN07dSSkjhlVK6+qfyBAuucuikWsmqY6jgiS8daSe + =voHd -----END PGP MESSAGE----- fp: EF643F59E008414882232C78FFA8331EEB7D6B70 - - created_at: "2026-05-20T02:08:48Z" + - created_at: "2026-05-20T02:10:23Z" enc: |- -----BEGIN PGP MESSAGE----- - hQEMA1QflAioE8i3AQf9GnjRfyFcHOBCSMvAQTzSH1u68A51lgK8wPyxHhEvwipc - 6ZwTJi/V8tLJQzsgYq642dCRwHwvz0c0s8xNv0EyTjxLL/ituxcsGf3UeoigaQGN - 053vxufwSCuglWCgSVGy2nBXMw/v4oj+3dAl83cmmZFDaiMfN3i+cs8un/fkHLCD - IPDhDgvkfYfHAkezQ0mwQbiTtZGLURFMefXxdXcDTmgRJ4TsKER16uLwA8wOVe46 - bV4QzGY3+s1VJGuIXmYpsb79u54vch6M6SDy9VT7k0T3KA+tHYxB2k1WbgvHRZ+r - KNyITbqa6Vvwbd8LW9TvAdkmye3p/StlOD4DJH0GJtJeAVDkJ6Balsd1JEsHQqzX - 8iYRNCueqLorWncsJerH95dBvV3DZ7Cba9askEaIxNjtFTBO47ZyK7C/MwaTNDAr - 3qEh+mGsMC7ONl8erx1MheDoN24A9qUPQc6eJE97gg== - =6ciM + hQEMA1QflAioE8i3AQf/XZSfNxfryND2BGfBPyJBkNySVUZpRPqWg9hi+7n6oCp0 + FZXUynfrtWLTdFF6A35OsnpdLEVwrQqfuqcrK6OkAYUkV9t50YVw6nAAmETc9faB + BV7RVGJf0OD79LHI/Fl8a+VkkMqG56BoBySQ+2Vb/eh8w0PKbB0oWN4yXBihkXAS + DKjEKf7x4OrTdHKa8GiKxsA9C+P0oo92Ygy98TOXQPb3MSQhWfnCFm+7beXIfInu + EpOtSFM+2X0y70Wz+X2/lw945qm+d+JXjvLpqpE+4U1b8LYuue5ddHzJjYIHK8Br + lQrdanIJw7CAeyKUtq5M63k5CZG2GHMxNGngWUGtm9JcAScF4QdywEzoq2NBf/lF + eP6/u7Kn8MTJ+gFOWxmlT8+VA+rhCp40EccQzbeftNI9ojI2YrYl4Qkb9CzlFXhN + uCtLLlRakB6CQWGaTxxlkN97h55s3A6l1hsF5qc= + =YG2f -----END PGP MESSAGE----- fp: 21C9579E6503CA815A68ABD8541F9408A813C8B7 - - created_at: "2026-05-20T02:08:48Z" + - created_at: "2026-05-20T02:10:23Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAz5uSgHG2iMJARAA0ojb8p8uQLivFc8DCYMeolgJa2APcE674herpCNDFHqF - bqwTiXFlfwtgHq8MEXW9ZzmLjGtv1xefNyV7FcsWIxLARTlm6vD7lXhbACVzDEt6 - NArvbZ7S9DNOqjmWMPZMBw+isSp49IWL6su4ayxDylX5T+lCtCt11xDVehkwThyn - espWaTTxePfEhvfa2qV/KlUNg0bUM/D2hGtccwoN9o6PKZ61XJXs22xRsAUAvIJQ - qVj5KzxtFuuMQoYpWKL/pbI5yTyyDxnv4hBiRm5c00Jh/pt+C56gOpHMFyoZz5Qm - Hs/Yx7IIExMJv64AcXxWSXVSUPwi6/5N4kuQNUyF+IGyP5ChiBANZG/1b77sSay0 - YXLp0s59NcgVk+qwokBnWjlM9SBvVSYe8UCKP2fmcGsX8z8BnRSLMgv7Vf7dp0Vz - 2Tn8KPORJOvl4AM5PrPLyGB22enBfNCwKNFnrc7vrxR6FRjY6ev3H3KfGpOFhFyW - niz419fK7suqzHealm0DW9bfW+/5DqQvhqhU6D+yaL3f258LGa+3xM3fKNxE6SKi - aoUo75/ejnVl0vdT53vS9WMERdCuuN2ye0EGsU/k+Ir92ZOV7wan8P62Sz5aE/sI - x9buFx1Mem7amIoAPLJ0iMjt8znoqguPMxI7nKp8PYJ+sv/z2oaBZf2ZpO6k64LS - XgE80imgQYw0LP02tolznROVwYUL4zKYUrRvU7DK/dj1ymXWePdfvBQ7QCJ8C2d+ - O1K1y1Ym0NusWbxz1sG85MTnANYwzHlmzFhJwsoJvdzs8c0SUxgsL7+m5/++qbc= - =HerR + hQIMAz5uSgHG2iMJARAAyLt6nBeCDKG9P76zUoweIw+m0aXbN1XFSIPbaq+ymq3n + /DDhqswh0xF2Ng4mD8uYrFI7CdEyVH2KCJAsa4QRKadryBxNtZqPOsHz5JcVgnlJ + yKnIYWbG7UZKfjAJy6TlpQR79hj7EvCNVQ7i4OYiOSJHxrqrRmAenyP0h6KfjIWA + Csx3y1O4SiE0llGYUO7K6t8p8mvx7nek2rXcL4KMo+4mKWSPaYP6XkBYteRTjfA8 + 07iU1TOmO5Fh5KgtWYkyAcQco71aefG6ub/NjJ9UYpSq6Q/I14DVpC5IrcgxbcRQ + SXAaK8L0iQPQ3mN4lxKokD5FKmr1et51GjRfvmiLCxY9rooB2/Xc2oiCHP8cB4xq + kxxoRUYRItBYzYbXqIYPJ0m8T5o6QQePbj1zfFLfpW33ZFdsRVyOdl5WSis5Y0Su + zA4A75KPlB6lK4qBa3tbWC9lOa35uAEk0NNOV2HNA7BAv5H5AQkoItaYMqElaoVG + PUrhuR7/eC5kRXoqothzv2H5BVGDqgqqj3ctv45hqrR3CylK5M5c8cS1Orfp9NGl + 8WWv55c7bWMW7dj4TOms+O58MwrOBla7C65U2krbsjm0piFoaEyRVgrypV/zR8tX + LIk1jJpNcLkMgVE+8593RlRlpCKbnk2qfqd4AuoDWdLh8Qq9H8lB4s2F4v8g6FbS + XAFw18E38CdoNdj/bjcM7uCOTGAfR+p24k7c4LPP6AcC/FV0QinPGwDiwEdd5a9N + rXyvsFxfSzrF+CJ+B2vefasL7SxDCVkM44dY2BUxOmYxNRmH5g2R73sLKJ7P + =wIGB -----END PGP MESSAGE----- fp: 18DFCE01456DAB52EA38A6584EDC64F35FA1D6A5 - - created_at: "2026-05-20T02:08:48Z" + - created_at: "2026-05-20T02:10:23Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DsZXvxFXTXoQSAQdAozv/NDuwLWMHca7CXMS6eAyeIspdNr0G8Vrt1qUohlEw - O3zOGfc5EKGNAWremAO/cvqY1lBiftDKmn+nhP/+ODde0QyIMuZesTKW/RjqsHK5 - 0l4B51zXNybVL+WK0eHXdR9jBsJt2ml+B6Dm8Vrc09ivjy91rKh2fkE57LWpQYHN - Bzs/9tL3Go4cDKmm4ziiw6Gisw7dMJPI2Ys5goheG7KBoGtCzyX1qUZHElyiGHtK - =PEO7 + hF4DsZXvxFXTXoQSAQdAFCMxmEEeH1EbTjXUOYwa3eR8KnSPneB9kueCkfQrnyAw + 4gq47KXBaGPHp0Z8NYWmSFBeaYjCkwo2Ofb+j5/Va36ky+AnSysGIwcUrWMaVa9C + 0lwByKgj1RSU/BsybtP3tyPw1YRqadlp+nR/5agxBYhK7BC/jbhSN8rlkpfycuH5 + 39oQYmE/jRSAIgAfsj77Tfb2WRBAdv/F5u86fO/bgHd+MgPqPU4hCCJi5Q+iPQ== + =dW1/ -----END PGP MESSAGE----- fp: 9633412309CCB83BFA39BA5F2FEF746201D7FCFE - - created_at: "2026-05-20T02:08:48Z" + - created_at: "2026-05-20T02:10:23Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DerEtaFuTeewSAQdAh75Enh942cD3+HgiJEtjw//W7OV37U0rZvXi0y/Mxikw - 0XNYiOER3IIwoFS7a8eiBSZe1bbfnFD/0qOfbpD85orDiJzrnWAU5bq+NMHlBgzx - 0l4BXAmkkumjh0ZeaSRUayYmvaa/sKVnNFlbI8ieU7qb3zNUaC4mqU2MHQ0KHRJE - Aa4eqVFhsLEh+ULUmeXrbPYo8q3+IQZteQ4bpEv4c7vh92h2mw/bj8XphSxN5q8C - =Dvky + hF4DerEtaFuTeewSAQdAYdMU1XTUDpkZslHRIczB801Wxg4+i6AMXuV8ev4/mHcw + xyg+Sisom1gLL0VX8Gd8YYsRTZiDSSpurQNqwXy0Eyx7+WJ8txxo/GFw3ZLMRhI0 + 0lwBSwV8FeBs0tuvTFa4zqWZ9wklzk7lfiDdVV1wc/Q12SznvMes1KZtqUDEbkaG + lYg2b5Cl4xMd+QP9MVcQgibGYw5mx/xZ0oJpiVJ9JBw6MrGBJYChGOqf0eaD6A== + =h0ca -----END PGP MESSAGE----- fp: 057870A2C72CD82566A3EC983695F4FCBCAE4912 - - created_at: "2026-05-20T02:08:48Z" + - created_at: "2026-05-20T02:10:23Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAxjNhCKPP69fAQ//ZHA6fVzyT2n4i4AHHMXii+pJPEJN/8QRdAnxZYNZ1n8k - G8T/0a0l5xb6o9WmsqE2OYU554uzoHkyMIlM1kZqKZBeBXle7r1De/T10fv2pwBr - 1wclXJjP8NwyTECASKR10+iGoc0d7R7RZ74dnu5cE8Loj48oZqbZjIedNrQk4YBY - PhTyeGsRLpxVSlL3T6aHmw1MfcIQ+P8NVLlSP/61IM4GF5/mY1zl3XAu/GUg7hBS - L0mpLwSNHJ0frMKQpTwSSfg9Pi++0NqTSBgUh/ZoikPGmGQl1eFxQ5tFD811mHMo - w4xFTzt89pD6Q2cv4KAH7qWdrWBdEvx6O4uTLdK9Pp9zKzB7CEujco8sZWrRmwEz - apWI1Mq238fCEtmOvWos0dKZie/dHgYEkPkECcUtDD6kAMP8Y/b1XQ3HZcwuDRi2 - 7LyplVyZ7Qu24vSqK3JuMUghoJL+fqsfKcNAmUBq0ELI1HY1P6ad3PvjrMkHPNpM - 5MhxpBk61YUc704GFEZK13KNbJLcygA/d8KUB/ouDR/uRjN0xw6cSN2VmTHpGA0A - 98+3hrzJ3ANmLFxX7eoGKrTltk1m7sIPACw9pkj41z1goPiK9sFawGUN2M6o/7W5 - UXPL0GfBMTI1Jbgxvbnq05lNDAM7DkahagcmR+Rr7CJdmmQw1ovjFnt4knnC0k/S - XgGQM9gT6th0CGAJ3DHJm2yoY2GikeoLhDTzaksgCZM4d00WC21yD8dNPv66KuUh - +4pxu8xvyQpPQ2Lr+H4yvEgf8s6CINgYntbmzZIyWTu9mOKJD0iHpBQM3I+3iYs= - =zdup + hQIMAxjNhCKPP69fAQ/9HuQg6KvEarCQfT/piWAuXtufmkCcj5dQK+U3j8ezmRYf + gvXqxd616jO72g94RlwO1MKwH8oukRTzvVe7TdPf0WtcuSVn3qeUY94mOwqscMSp + +GPSoPDqBZ4V4eg15vAAsTK5U2T/tx+5W3k/J0v6O2CM8b/ng8r0eP3MwlJiN02+ + ya7zS2A1OkxME6fa3758P6P7t0VdQRuhK7XA3F/Gv2dDqBEu0z+mFZDg007sR8bw + BNTZKMoamlDDkpv3HZ0qLy5FcocTL+/z/RK3GB4CB09gpznU7iGbM3QTkNVdNS7r + u7qaKuXKY61lIaho2SCgM6miA4h83DfHnxR0Vkcw8oPfENls5lPN8hku+swMFnYK + 9KR9ntk/Beo3RoqS/iIRgLlgHpP09tggdfUhi1gPdhdmTH5E2TIG9v7S4ltKen53 + aLqrNIiHy5S1Nr05Of0g4Ff/OxaI45lmzXAWQ7oVax8DSA+5ubUj1SHmo+zG5fyh + tTAdVh9oyBzX2GlpbWoKCXKPEhlu2pH75w/WfZLZYtjh927Mog+d+PAK24Kiz3N5 + cTd5EETuZC/nBku3WWN6y+gbfUpIJMFTtLKdNY++ebWaqfK9aZ1I0Q1g2pfZXDb2 + X1bzMdDdGAaCFNW9KWx4woB6FZEQvDLEKvxqZ0G+4DcfNj83sGOqE5oguLJhPyTS + XAH9x6T+VjGRFT0rN2MUMl4n+z5K9ZWA4OJcC2PGi5VGlVyK48hD0B+ygP6GBwKP + 2LJeG7ANB9eNeGsHmxEE804DdcuuEL8wtEomKU+14Qp4sFwXJEn0zqmgOPd+ + =DxEt -----END PGP MESSAGE----- fp: F38C9D4228FC6F674E322D9C3326D914EB9B8F55 - - created_at: "2026-05-20T02:08:48Z" + - created_at: "2026-05-20T02:10:23Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMA46L6MuPqfJqAQ//ZRYrl3A0QNnXXnK9u1yOATNq5DlbIPpKNo7KeX8HL12k - km8LM4s2mLyruJkdoGfEWY0THpGhUGrnXMx2QDxVYf47BWxmBvGinQTw3FAHEpt1 - fl5PACh0g5tqGkwLHIowAPMjjmTNKn5pCgNC9NGfuco2yx8tZUfdUNWej+/ZFtu+ - Y14hn4nOSIvl565qT2T62uuPdaRa0pT3gu2Pr5Z1Tn9hGl47swnuq6b81IeqaPu5 - ukbT0S8UNcW1AxgN+pXfQiLg+Iro53DDxKyZ0usMKSi9eBl7uayf/063RIAZoYl7 - PkdjaUuhflsF6RFKof8qC2vDHRnQNtIW31u+gNxk8852uuJtYspDR6ke3LdZru7K - QpmendFKZUC+9EtUJwahLSeQQJ5Q/xgNuIxCCPIlDftfX6kY3Oi55rl1t7J1lu2N - D0cRIAszEC9thcyGlzg6g/C2LyqeHbHdPxpFePN4MOOA5FuATftxwxd248jnEJes - wuX6PdaZ0LrcLBdSMSmpgBoVgv8bcyxD3K0SmqfbpZbtFCkDiXIe00yy0KtStjx+ - b6YfVpojcnXuWEN+lZQDFU7bvMZnruo0L+Z8MFrUb+wLZ9Pini20M3QhH61VSQJP - O+s0gEKwaDYp8125iW+mV9o9nw3fMEE49BMjlOxTXCHZk7RVKADzbpmvZ8rWHnbS - XgG7HFzmVNeECKLtbVO4rgjLqDw+q9aJ/wFyXNjxuMJKa5FGgl8/g38KpfbDq7jV - ogBSYhLpr2cSsQ/sLoLJZZyfjYTmvmSLZpFPqzSRofUUTrBs8/jKtzSCCd36AfQ= - =Aa7t + hQIMA46L6MuPqfJqAQ//VgmB8grK7tmBerMubQu9x9/ig086RG5IjAq+NqDZlwVu + fnRRhTb97/js/JdIXn+to0/pGwk2vzI2rWhcX9cLbRXVWqiLlWdDkpQwh0hAkHPD + U9CBm03TBJbsf6t9rA4ec+UGuMHBwKymw19c3TQpUtwtMxQpwUWsQemoCrzyayfD + ZhzVBL9skq0rGk2WQ3Z+qolGcFPokwwmh4Lu7gDOJyHUJYQdDXlZfbeNMv1/Mq/6 + atWzd9WrEpO3un7yu5wNzcUYtrCJuMEqRpwxf3fz1jNim6fYkmj7EMZcvZAEOU0v + qn+wBLVe5y19/W1KxLQ2hkUMhxsPHztOnvsYUNAiVNTfmCRlQlBZ+HvayNzMd81L + YIULOV5p7UnhOlPQhjwuX2LCOzkDRl4MKrbC4XNLYFwphPAn0v8SJ5mcb6a3w/5N + Zn4pzJX0+lT3D6Hv6231TVx5/AvtGYPs4YToM7drjl8pK8e1UHSdWxpiSJ87REvh + XyeEhvUoJkVhMc4pKWIMvlk5MkW0jDVCIiY41qnPh3CIF7NOOZiN5YpkPtl6kFJA + GkxS2bcLmuX/OnYkF3nsC77toEp0ffb95AyfGkcHIypN/bEE9P4DXIo98TZJCIXN + nq4HeDZVV9WmRQfpwEbYuGqxfTpM6LGl3KhXj+LJnktpMyYoEyX1bc5fB8cYDzXS + XAHhVdt5/wjsKTv/W8Nv+taOK2R+AD1QY5h2Bl97e3UoR0Ug3VdjPoLwZ/gFV/dO + ac1FMQhoA7P3Nlza1t+cSY8LvbiU30zurJtl/46JGreFseVpe0zjOKPMFutE + =2UZs -----END PGP MESSAGE----- fp: 8996B62CBD159DCADD3B6DC08BB33A8ABCF7BC4A - - created_at: "2026-05-20T02:08:48Z" + - created_at: "2026-05-20T02:10:23Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DQrf1tCqiJxoSAQdAFAf/+8TjczYTVpr5nrNKG2VHhOGfhHtswIg3pBbEsTkw - 90waRIH7AQb7pYgaqkfHZc1pfuA2EunAvEL8VsRUxrpueiWH0Yb1AoosjWn7VRuJ - 0l4BqsK0RFro18Q0xtIh+AEEYkFVJxPS2yJMD9e8Oc9uiRe8JCrBOa/inDGWHHVN - o4SY8heM7eWYW4qw/RnTayq4jqsA6vXJhgZHCSTC056RzELa4+WrtF5IVpv0lARf - =iTIp + hF4DQrf1tCqiJxoSAQdAOVINvFeDv9ENq+KtuvoKb+CBxyMbcKUWlBtOZLV/Xx0w + GXeCnAwIAB99wxr4ewLrFq34yabVnNfJYB9uD4zcIgevZAnB1Tji3FGMll0gGryq + 0lwBa3Pm/dn0ypFFcNW9xksgwE2oCaGLZq/D+bJtW6UJC5tBZm3Y+MbqiwKljJk+ + lmzzX4rlSnx4jCma8peyAb8RNqpMO/ezo1jgNyGZpsjIGvQ2i1n4YHi0VqEUEA== + =JMjm -----END PGP MESSAGE----- fp: B71138A6A8964A3C3B8899857B4F70C356765BAB - - created_at: "2026-05-20T02:08:48Z" + - created_at: "2026-05-20T02:10:23Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DzAGzViGx4qcSAQdAt08Be192JdaBTk1XW0dqa20rDfFtMJh7lJhFLMXW0mAw - ff13W+ZxJ2AJAVOnqiza2lHqE0nxTC/TZwvxXmmIbZKjxpzjoV2f5HcW9FBkrZZy - 0lgBlVtniohqUAz7vbbfyqi/t/6Un/8Z32Cvr060vIvBSANX+Dd4J6Gel4ZA7F6m - 5rSP4eipg5yhlGyeUhbXzT8l/NcGytbEAGjwMA4olC4dnsdRkrCiZY14 - =bhCX + hF4DzAGzViGx4qcSAQdAVm9Q6YBrTtT6g6yuAa06+nPtYICDNtrxUgjNCcOkJ2cw + Pi/c9CTwfEiU2iWzYygpCslJxs3UouBu5nxzCFTQRImltBjVQymDwaXvS99HU2sm + 0lYBG9hfZH8Icjo9n4MlbnbC5WBLRooyQJWDnFpZ85n9C7vLY2AH2a/IqnRiwB69 + ufWmB/r3Z2Brez/XvJdWJFCybuShL+Wyr+v5uelxI1u4ztNxmKeqXw== + =9vzq -----END PGP MESSAGE----- fp: D2E9C0807BF681F5E164DAFC5EE1B61CD90954CD - - created_at: "2026-05-20T02:08:48Z" + - created_at: "2026-05-20T02:10:23Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMA2pVdGTIrZI+AQ/8DjyU67Mch06O1rnBp5UpDTJYMsTL9hqfjQcxpsZG1gLJ - t5fCtwSgJaxVfx3BfegWuwpS2jNQvuH/oNs6T4yBeN6GpLOzwQGXUe+JBV+aXSEb - 5J6jyJ7UKwICyE2kN8iwsKMNy/NXa0hhkAt1GIYb0CgEJ6/FOAGxEh7D1lL4WpYx - iiNRtmWqJAiTKGE8jnMmFamddKc3wkh16Z7mu2tkdaODNwrzqXhlIrukUAnn/plc - NPTws9gsnnOw8pYydQcSDYkKnM3z20pUk6fAfIWZ6JSH7Bt3WJ/Ftrhwixr9Ld5a - TXgiyxzfJMo9eUb/GMh1NpRJjLMBflfA3DsoD6dlvUEQAhCpO58xz94dEMrzb1wI - mNPwFPMgtWesCzJqXZwVLrtFbU9+e+ZlJL4n/BtgPoe9qhPQpb+hjIJLL6P10vG4 - YTx0M0v03vHsNy57uBh+ukV0jkm6kcQR8cVm8i1HcX4T0b8UbGyh+FXuMbLPahMF - CAPexpw4Ai+lAQm9jpRdhxX4xkXleNfo5WKNjrM2VUxiayi4EElQ71y4MuYbLPgM - njYLEwwyRKUjMegOrTBnEsPwxDi0NpKrZ6Wjy/G4h2b7PZNWrOCKE/2MiCcVUm86 - V+9ZMhpMWfpnAV3cez5Xyj6juR4nL3bOTb4KH+R1hB5yCN9NSKxoZ5+iLBHKT/LS - XgFfJrAwCBbD4KBR1uzbo9qcu/VP2/dRTUODxZESpX6sdycg7mrPxhFDDULCR3cN - swfbQqfinaD8wI+dwaUOUwKnO2hiXj0wbnt1J7Bh2C9uiyPP7bVMSizO/rAJE/Q= - =xcBs + hQIMA2pVdGTIrZI+AQ/9FNudV+zztNHNUBER8At2+bo1n6W+fbF5bTSbudOXGbvV + rdSTWxFuslVh5kzXJYP2a+iYh/o815lzQuVtn+PmKuWCzLEYB0VmkbeM9YBEOxKu + R6uVUbI8xOLFLLErR5E1d1l4p2KRqEEfc9m3tzDa+i3PVOCYhD6qTuKhb6ImDIE8 + 3MqbXRnBBWgK14IivA5ouGJfeHbsYmeWjt9y5gy25T++Mdq9aPoHjjQ4P38eDT5W + 5lK0KcoAPAsrGkjzIgF6NBQr/Ut54RuHdjaBST2tyHP0db9fHwQZj7vfylHJfj6h + yi7rdjX9Ldppw2dnatVKlmpQATS8lLX1vAkipa2H/8kz3oYOJNPf23+8AfyhMs/X + XTXkC8Zw2Auz71TxFcdUXrO3Z9/BgsaS3Ec1TRqfzKbwficT8QP9est79XDxF7WM + 7WXTvCQJVofRquCWR+1h1EwSTiMRGRNV/Uag4hJI6OUwBN2fKbVS94S1jNkxCOX/ + DIHhijMVXvfNWPOkTjuaeXJPem/XwjjCVif2+gPbjYhuXySrlYJVQOrKzPROYIZ/ + uDKqhGZOE0Ng4xNyD/KZTBsoJVeY9xI1IBfMh1c4QA6vJNqU1vQW5pnyFr+N0srQ + kEGBc9dwNom2BjanosbnRORW6+r6BwwI1uPOQPlYUpumHM4o9jGu4bbBSPewOxLS + XAFBjjWtkZS+WP692phQxnXz8+gLc0RXD0UZ9+Gyho+X7/R8BV0x/zDoUgfVwOnY + OZeyd9YDL8JkL+K6EZgS9u+E1XCbRkbVVES06QNVxYHnEO5VbU9YuG29KZ14 + =nF2L -----END PGP MESSAGE----- fp: 878FEA3CB6A6F6E7CD80ECBE28506E3585F9F533 - - created_at: "2026-05-20T02:08:48Z" + - created_at: "2026-05-20T02:10:23Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DKKbvh61jX5USAQdAWSpHk+R/CKDaO8c1UPr6fOMnivWMuIrBzZh2Q2JPPXww - C0C8VLfIorI6P3PbgbJi+BdKIPx4Vi8n/4t1y5fcPk/1NfALPaF2T0QuwhWiMpgT - 0l4BPZ5BAMvNLSuAiSIloGO59jHpsRNCxBcVQBPIYqMVCTZxwMy+gBki64+ypavz - UvHyj3/0Wpy1tHL/V9QSMhWW06S3jHMKS2040LYEY+WWW2+pmV+WJz94zL7+tw31 - =YBfK + hF4DKKbvh61jX5USAQdA4IyNdJ9IPWLBxwtMROgj+/ZlnMLCdnjXBMmtyrkRxFcw + JLp+UagV5UWX1KhddjhiAHbAa5OrIQsBZrJ75XIObCzlVMmj07CtUpYgLNsTiLVS + 0lwBrQz/Ogp01HETxMoMuGc6VdNvYBrRFZE94pK/KsMP3DAca2MXGokc0hOnk4WT + /mNoOxwCE8ph7H2T//TM0lS5DO1S6ytRxm6wrT7jLu1qkMm9EjW73Nr7Mb6HDg== + =9XH1 -----END PGP MESSAGE----- fp: 41FFAF3D519CF5C039FBD8414BCC213729AF0E49 unencrypted_suffix: _unencrypted diff --git a/inventories/chaosknoten/host_vars/forgejo-runner.sops.yaml b/inventories/chaosknoten/host_vars/forgejo-runner.sops.yaml new file mode 100644 index 0000000..c0e1b76 --- /dev/null +++ b/inventories/chaosknoten/host_vars/forgejo-runner.sops.yaml @@ -0,0 +1,187 @@ +ansible_pull__age_private_key: ENC[AES256_GCM,data:fEly3EIovZ4n5xMnD5Aqtbn1+DUszR0MvBHcM383G40qfHxrbF/lqc8iftshInoHSU77Vugignyb0dTSCTS1cWmEg8I/+ZFjgwc=,iv:Y1XunCfdIUC5nTu+vkr0Q0LUBWeIwP/bGNkbnDb1cpA=,tag:6UrkMx6yEGB46VVvtAkDMQ==,type:str] +sops: + age: + - recipient: age1az0k6cadssk6r8qcqxfr8cyu5mndy59pwt8yqq6w065ew6au4ezsmg2vkf + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKcFhwNmRXTnptOUMrN0dZ + UnN0bFdCVjJQamNvTzZmMkxRdk0zL0E4bm4wCmRIVmVrVW1Jb3BKOVNnNnM5MXJm + SXU4ODdwUTVaSE9oSU1tWm5ZZUpLNlEKLS0tIHVUY0pUUlg5SDhJZjd6ZFhsSnBQ + VVI1TnN3UkcxUzdOWjJQTzZLOHNlaDQKx/HqW9sEYmNYIMYvLVF/9eJfcgRH/cJv + YqcDNZc8L9Rap2TfwsiJZourqDTe/8sWgQ0yHC4mcKS1HJOTUMNwqQ== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2026-05-20T02:12:09Z" + mac: ENC[AES256_GCM,data:QgL5PSrG3yVeJQgDJ3/VQhGwF7WpDb0+w7oxeF0KeNt3m2YqUsS1qKwK4gJAbmyt/RPdRErTiPs6NdAouowjZg6zcd+Trags/GIBKcaIyJqQa4lw3J3Jod9GTkol70c0H/X76kQx+bWzuXnJy64Dm3t2h+/ytD45+yZJ/959FKI=,iv:JnR8ZRgCfsr7T7L0NLCncH/6q1EGErOCzYjZWrazDh8=,tag:HHH6MrP1bFU0j/Hb6crEZA==,type:str] + pgp: + - created_at: "2026-05-20T02:11:43Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAxK/JaB2/SdtARAAjLRV2OOq9LMCn8jfeXXeQV14nliYJW51ry/lyAAT0mK/ + UrZFjXJon1HibzvpKVscCN+8i75RamsEp0/iKOoQKORUNZMWvaURPtzkzEFwZxja + tLKzraEl38y89UCP6XzM/D9gLxbGjioz8eSZ7InXowHFGS5HykeZQpPKN939l+lV + 0fxZH/yl0uDVOdjWb5NWVqK0xhVToi2u7uiwQiL/PdfvglCEsF+a7Q0bBRJIko+k + DN/rfq0xhb0bMo52lZvHrqOAod0Kj5ROebvwqOpXCSTFi0JcrVDiE+jq1wdqofni + VkL+V2Lu1Wi7zGQ/gjkLWWfd6IqKxcepsmtedy5Fs3ZcGKQ7jBw0fqvVRXE7FUFc + H74QWr5JSSjQxJFCugBTFgeOU3t4VcYeVt32FhlmfKsQ9I8B4xPuvTvmM4S5uELF + Sj2CHzR7D52mmWykUKx3h2f4AgQDv79IPLKOcRpLbJeOkI6kdDV/KfQeLcL3/RDA + FIHQDa27n62os11WmcKSqb7dI7W5SYKd0eGHfhynjQlV4LKRvrI//vYsIz1bY+Qm + 27eKe6KodvijhR/aok9fT9vhRpD8OyeLw/1f46azuxdxPUNEdQ6HYSu/w0sLhqte + OtM7q+NK7G5I19KP7+e9tJBxou7zpm+poseNQCl2j1nBGjahSYy4zhct5fQfKLHS + XgFZVUiV88yP42Jd+lxHZ/bs2RJ+RuQPvPj43c5jrBiRNEqKRcEXViHrJctwKHkZ + +6j+LuEKKszsWNGN9cOpdyVBcL5PUJ8mRribr3SnsEaFk+swutFm2sA5gLSYdB0= + =IxLP + -----END PGP MESSAGE----- + fp: EF643F59E008414882232C78FFA8331EEB7D6B70 + - created_at: "2026-05-20T02:11:43Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQEMA1QflAioE8i3AQf/cKHMPmpFsvqyJJWZsgNB1tWeNh/aiKkCIS4Paf3hBeur + Ca4WElrH+M9feFH7qR3zXHviJXB0zt8oyUUNiR/xg1GNGw2wfVh3EGUWbZ7THog6 + sqN/2KxP7tIk74mjlaMBmIpyr7xd5OkjhQy4IkAFr0PBRGunVVa8d+73uUDsZBdI + XLpaDUZXpANOxZbXxBGzeYgG55yBs2LiXKLcjOkIi9G9w7Rtk2gdH4tI1miRstGS + jSB9xDCtszxm3kWmcDAG3nAORDCgYnlpeZrPGUhTqh7JzLhTZo46EHSKY1ThdVnM + cbbx0CNfcTCDWVxZEv6GHogAFSELn/gzFiWXjlcHoNJeAUNMxzW73TD7mB7he4EG + Phlz6+l5XbcSmC42QaLG7IIMNIpg1pai/fyBpKTYoHAGEGuDRcDgjKGOPTQH3N+0 + eIMu44nYPUh69kvzeMLCCbzFgDRyu5J4pbCDEiY/8g== + =VDJ1 + -----END PGP MESSAGE----- + fp: 21C9579E6503CA815A68ABD8541F9408A813C8B7 + - created_at: "2026-05-20T02:11:43Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAz5uSgHG2iMJAQ//cTX8KOVgAdIQNYMKP3pDK5tpjUV+idiMr4Y60ny0UNM9 + SlNHmG3RLkZwyBaHdeJ1eTQYSIaWasUUhCcI6sA5A7SYPhMDtYU5lsNgmiue9J0T + Z6SrCe9T15Z4bDCS8M/fli3NlkImkGUN36Ou6BXzAVKAKfglzVnPAT2+J6JGBHbs + z9ailkVGBonU2QQzJ262FZYY3a+Rpw8w4mDCoIsfbEwxHrB8lLyf7AX81qtlcaHp + ib90CCk2aqifudBfLKRIsmxBDkD+hffF6HSX6t3q1Tvw7Cg8Hpc+LWs+ZNPkmf/a + 0/SrMUTBey28gDoDloRfd8wdPzm3Adxsy/bTRkAX0Gzm5W+sZAjeUyqi5MfSefgR + yr0aff6D0oWRn1geLdcNJmWfvRM35K2b3KU5uxqshT7WjA0i/rJCHu5pjpsEVypA + itPmVt1BPDSHcaQddaXOSpSMqYUOltvHN8pV6zGBAAsUzSor7GugClnMHCdp251T + som8Nsb6IziKWs4dPPR8DHYMFVFrLrtfkBi3XO8fWVncwcEofmYsRQotsHLUAkjV + 5exEu0OwSKVzlbqmDuZ3z0RByrPpfZWsJWshBIug9Br6PL17RauFY0cuCF0FPA9J + FGlNHH/XG+YqFEj6kcVYzQFue1fL4gD7HP9u5yOQ/D8JoBgtei9r42xetlBCFyjS + XgEoIc4qDC3aPKBB7jhGV6Sc8x/4fdjpDWMA32pzKR8n/BlQzYv8+b5X1m3ngPhf + bhGiZMIv3HgEQm2M1PP/x3ViqkJAa1EphGG5yOlm9dGq1ynreGxWVdaqEWWHhrA= + =W9zk + -----END PGP MESSAGE----- + fp: 18DFCE01456DAB52EA38A6584EDC64F35FA1D6A5 + - created_at: "2026-05-20T02:11:43Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DsZXvxFXTXoQSAQdAR75j7EdRO8U91jSZn9RGZLZmVHQ2wt6dEWWE4lZU+Agw + GKy5yFdG4ZfWxZ3QQUllIqA5Mn1Tapbz7XigK9D5/hF/oF5gedq8EmzyX6FWZYCn + 0l4BBTyZdlsWswCeE9zCvKkfm+L08kmnNrm9I/F8cOXx1BrxS5zXdhtNTGvGZ3Ww + hJMt6Rw4rmX2Mwm6dbpcjpZPjRp19Fb2nwnTwQ8YTRCSNulDRtJj3FQ8P6IT9HKN + =/5xR + -----END PGP MESSAGE----- + fp: 9633412309CCB83BFA39BA5F2FEF746201D7FCFE + - created_at: "2026-05-20T02:11:43Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DerEtaFuTeewSAQdAQNCm56yr/4kGtjRJ0rM1tUnRTHXRPmGul39NNGiJdQcw + J3EOCTeg1HPR1CoC0FQ0qSAHQQymkcjttutY2D/oU2tLdqc1UsW01+ycscZ7XLwn + 0l4BQ8s8gN/6oIkFPvsN+oUP5Zs1izGsc0yozg42resT6qlsML/jFBvP9LLGBBlJ + 0VCK22OPMOXSHnCofSbYelhyahw7+xdr38juIxuQaYS4Lx5TPZ8HaKMkzXzduBt1 + =4xwZ + -----END PGP MESSAGE----- + fp: 057870A2C72CD82566A3EC983695F4FCBCAE4912 + - created_at: "2026-05-20T02:11:43Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAxjNhCKPP69fAQ//T8mW0sDkD6e2hWSxIkhVYRE7l8bsFbDcbHkz47ahUrfK + lUDnvzEnX/MEt+PZJxzuzfLrRDmm0VmOmskJrpguwpY27AWyq9zKqHgxLtB9EkJt + MP3I8oNL+scjhX3cr/HogtIdaCpb9+JSCxZ+idABYMjyDb7+csFpHzyK/G6rToMr + EpvWD3BduP/tr+frVmRH5zxUku6jt/GfkiIq/a8mEFyyLzqsxG5FofzDCx01MbYA + DU3try5vX8HYUeuYFHhU7qOHIk7G5xen/92m35P8LlllNTjTcgz9oqxGuHrfA2Rz + K/RS9FoI4v/NNKHqUjI6Rd530/zezfWCOi4QdEdXLwUs8YyTyEhS3jTwIops70bt + Diun8OQ+TIE+iQopjBCoX4IH5M05N9KE1dVURzWQAy/F9tZj9GEhRRYgo43k7Zd7 + BpiFFAoC3uVDYCCznjd9IuupO4WnKnLGEWenWvxcdXkTxXvzO6KfonWq4GUKmXja + n4qu6pYIAi9ZYhXqKhHAm4+kgbsvhAM09Es6LX5718rJrfkYiYM9aIxVFO3pz7CQ + PI2fknrnw4TXKrKEvej5q6XYlKu7nSuSoMSv8P+NNPEivpVVZ+KPU+pbsNKRqEI4 + vfUYuAdg3t1isEtV+kI5CS3aIg+uU9RGgSGfF4Di0WTog2MZ5tyelvtAa+e82i3S + XgHGXuiPatmZyu2mXJZv2kWxp9UjKkDaZttKNAbTGWEtWAE0uyjmfuvMLt7r61/a + yjWDzQCMST8+v3jjjzDV40B0kOJ9+6vzAQcmoPtnA5vf0dW803OifUB6nWcVKtA= + =lxsO + -----END PGP MESSAGE----- + fp: F38C9D4228FC6F674E322D9C3326D914EB9B8F55 + - created_at: "2026-05-20T02:11:43Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA46L6MuPqfJqAQ//RXIqipr1bcZkBfjokXOnulmcTCZkhv28NuxQjwYHWa77 + WYZpBwVTN0SqtGArF+E6yFvOdzoDwNeA11nB/AguU1NugROg60nP/169gCb6ydE+ + mHtTmO3jU2GIj83i82GVDnGNji8/TIh6ccz1a3pQeaygFnFZnDLwx/DJSy0CTKTs + SjnU879teK3CiFCG4A8f3RvB2LxvXkYWYEQ9ky72zUxTFVij3GdbP+fXsrZQHQ/7 + WrbdROvoTdtd4nAsFQVtiRab1Y+TCcHQdxxjWFoY0pI4pOcjHtbVh/fTYCwxmLez + s0hm9aKI/xS6WNXna6CGOjN+oFO70EBNUZNZutmDUf7kBXPSlgINBy/HPXgspOAk + Ww9D7JwM1uMOFYdLclbP/DVkUk8X6nVYTnJR44SwlHoZEqYSs0qNVosjWQWVi/Dq + D5LO1Ynek+u4GSK6guiCdj/arUaiKjlTQOXgnk6P0Pu1Y1F2kgzR+Kv/AkRTokmM + xFXpHCXVMA0ZrQyZCX8Z7eNrV9vzEfNhwm7hNrASxEnORxHRZP4Kzc4SNqiWeikU + f/2giFZkTjQoKjGwvcRgtPRDRYuS0EVG34Ha5LOQ/ViAsvhu6eQD2EZhEYENhmIP + TO9jeZZY3GMwRp/lwHaKFfiLRfmed4kVG2I/YDnaGeQv6dU3RGx5XDBW/ifBBeHS + XgHyN3Ys9YNg2DB4RXwQfkTSTNwHO8EUwuhvnONlSUFlPBe5pDTiTqJChIFGRui4 + AE6m5x79h1L+s41eMJfXES9THlw0H1Ok5UbrRgdFeqDnFxrbPga7ZY3b2UlU5BM= + =je+P + -----END PGP MESSAGE----- + fp: 8996B62CBD159DCADD3B6DC08BB33A8ABCF7BC4A + - created_at: "2026-05-20T02:11:43Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DQrf1tCqiJxoSAQdAFK4dMZNE3rBCTZx4vpomMP1tdAAdb9lBOcY2S9Tz3zww + 5c0ioplBR3Z+vIGfczw7RPCCqUwGU2VWdhCcagLXWa+YEQcTRN8h2jZRWg4p8hNW + 0l4ByPozkxL+sA6XX9YvGxFAt1TwCoceMlDgqP3gX/olL18Jj0EcIkGTnrzQYNBD + Hq0zbuJdJkQhWafgE4g/BL7v6ERsPQnMyt0xAv4o+MW5T2I+9zBhOKEeh59RWrsx + =cptl + -----END PGP MESSAGE----- + fp: B71138A6A8964A3C3B8899857B4F70C356765BAB + - created_at: "2026-05-20T02:11:43Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DzAGzViGx4qcSAQdAkilW27qVaY9/x/Y1IAQbMtDpkSt71uM1N7WXEnX0oTcw + RK7MpWp9JsdqLhAr4kxFzjupxRuyrQzyBn/3Tczm6Rp46l0VIbkuWwcaDQbcjqSh + 0lgB4jPzEE8CvDBh10D09bkYyDjMi5SRj4NGZnULrXK+nOMRcvS3t+yDHYVf3VbI + fmqRKisWCVt0WB61n3VoSE3E6nKVi8crUu0PLbbPP1PdRWlihdKb2wWK + =yR2L + -----END PGP MESSAGE----- + fp: D2E9C0807BF681F5E164DAFC5EE1B61CD90954CD + - created_at: "2026-05-20T02:11:43Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA2pVdGTIrZI+AQ//cQEQIceF4S9yhIaAs5ZHR1sHAp5nN56yNuoWHU+BxfWd + IDk/0JS/2oyPIviCmN/BjzaBBz33mptIfUVrk4W7V7SWCjo1SOAbDLm3L4+xz9eF + pW0a90ZoCIr31ZzQWn+mV4c4+tpaz9pO119PZdAiWDbmv2aAG1Dc6vEP31V3gt8j + OFXVrRtNKar9j+8v1/ZjOwZYgH5r3JQRcjflD2gLEoDec6QXVzpkG3V/8F1SPOos + M+tHloplQMWkY5frhgv1qjPCYFf8pMAs1bwO0o3FubTgXWepbtJ3Y4SAiOuXgp5e + uZpo3M3pP+uqzUGak/G2c850bgDJFb8tTYYYoDQ+EmADfXYN2rts+vye0qNmkDit + +4hjiIpUnqI/2xR/V1dnInBysGRNgOyWLrRJ6qBTso+xxjF63DTraPxX4dTGQyhQ + uW0R+d57Uinc1C+lqNwbacptqQ+d0a5lKLkq1xJWsZyAM7xDwFECTZNlBCavwRlg + e1lCPBcj6oBwVyYLGatlx/lYpnYqoL8bOGa8YjHdfuUzDfZJoJMgnm+EaYfPXbsR + alUXvkuK5F5IXGkTBEwt+ilKFh+LMUREBvzsSsQMOM3eYd5leb+y5qYciejJtrUF + /cvDR1mu6Gv5eDBAIxgZqBAZsJTk4MCB9qChJijiLREoYOWccKIxkhYwx31KiyHS + XgHzZBEa37fzigfWlSCSjiW/Mb0BzMZknv7ecEMwV3WJYNH9ixmGzNiBp7QOA68P + 21DbV7Slj3zZrX7K4KWSU0mHcPmS1V7OkfGB1+yurnS40cJy7qv3TbuQYjQ/1OA= + =f07d + -----END PGP MESSAGE----- + fp: 878FEA3CB6A6F6E7CD80ECBE28506E3585F9F533 + - created_at: "2026-05-20T02:11:43Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DKKbvh61jX5USAQdAsrS/gPOqsUf5SSdki8Tz4YB+EH1W9xDU5XZZrnWZZ2gw + E/ceAF8IlHAXh5QLAfbXiaCq1j11t3jHpkSdXO8JJtkeFuGLfMVNiMGf1j4doEhi + 0l4BAJGJ/3Y94vsOSiC9Sku9zjjaB86XFUxJChgdPzfbqhcKHtnBLMW9sm93qE6C + 0c5EoyKBvBoJPUYm9nv3AGHmCjhZ006Iybvm3xtrWcmFfQ1IUdm2qOVtoTn3xs2J + =tlQa + -----END PGP MESSAGE----- + fp: 41FFAF3D519CF5C039FBD8414BCC213729AF0E49 + unencrypted_suffix: _unencrypted + version: 3.12.1 diff --git a/inventories/chaosknoten/hosts.yaml b/inventories/chaosknoten/hosts.yaml index 4e968c2..0ec4875 100644 --- a/inventories/chaosknoten/hosts.yaml +++ b/inventories/chaosknoten/hosts.yaml @@ -93,6 +93,10 @@ all: auth-dns: ansible_host: auth-dns.hamburg.ccc.de ansible_user: chaos + forgejo-runner: + ansible_host: forgejo-runner.hosts.hamburg.ccc.de + ansible_user: chaos + ansible_ssh_common_args: -J ssh://chaos@router.hamburg.ccc.de hypervisors: hosts: chaosknoten: @@ -122,6 +126,7 @@ base_config_hosts: spaceapiccc: mjolnir: auth-dns: + forgejo-runner: systemd_networkd_hosts: hosts: router: @@ -234,6 +239,7 @@ infrastructure_authorized_keys_hosts: mjolnir: auth-dns: lists: + forgejo-runner: wiki_hosts: hosts: eh22-wiki: @@ -268,6 +274,7 @@ ansible_pull_hosts: spaceapiccc: mjolnir: auth-dns: + forgejo-runner: msmtp_hosts: hosts: renovate_hosts: diff --git a/resources/chaosknoten/auth-dns/zones/hamburg.ccc.de.zone b/resources/chaosknoten/auth-dns/zones/hamburg.ccc.de.zone index 33f8a31..61efdb4 100644 --- a/resources/chaosknoten/auth-dns/zones/hamburg.ccc.de.zone +++ b/resources/chaosknoten/auth-dns/zones/hamburg.ccc.de.zone @@ -514,6 +514,7 @@ www3.hosts IN AAAA 2a00:14b0:42:102::15 diday-staging-runner.hosts IN AAAA 2a00:14b0:42:102::16 public-web-static.hosts IN AAAA 2a00:14b0:42:102::17 forgejo-actions-runner.hosts IN AAAA 2a00:14b0:42:102::18 +forgejo-runner.hosts IN AAAA 2a00:14b0:42:102::19 ; acme-challenges _acme-challenge.sunders CNAME a5ee8a99-3cdf-4212-972e-c0b6fda1242f.auth.acmedns From 7d7cf455eb02e002f776f61d54e00d494c30df28 Mon Sep 17 00:00:00 2001 From: June Date: Tue, 23 Jun 2026 21:32:50 +0200 Subject: [PATCH 10/25] forgejo_runner(role): create role for setting up Forgejo Runner install --- inventories/chaosknoten/hosts.yaml | 2 + inventories/external/hosts.yaml | 2 + inventories/z9/hosts.yaml | 2 + playbooks/deploy.yaml | 7 ++ roles/forgejo_runner/README.md | 9 ++ ...114F5E6C0DC2BCDD183550A4B61A2DC5923710.asc | 71 ++++++++++++++ .../files/forgejo-runner.service | 19 ++++ roles/forgejo_runner/handlers/main.yaml | 10 ++ roles/forgejo_runner/meta/argument_specs.yaml | 6 ++ roles/forgejo_runner/meta/main.yaml | 3 + roles/forgejo_runner/tasks/main.yaml | 7 ++ .../forgejo_runner/tasks/main/01_install.yaml | 96 +++++++++++++++++++ roles/forgejo_runner/tasks/main/02_setup.yaml | 46 +++++++++ 13 files changed, 280 insertions(+) create mode 100644 roles/forgejo_runner/README.md create mode 100644 roles/forgejo_runner/files/EB114F5E6C0DC2BCDD183550A4B61A2DC5923710.asc create mode 100644 roles/forgejo_runner/files/forgejo-runner.service create mode 100644 roles/forgejo_runner/handlers/main.yaml create mode 100644 roles/forgejo_runner/meta/argument_specs.yaml create mode 100644 roles/forgejo_runner/meta/main.yaml create mode 100644 roles/forgejo_runner/tasks/main.yaml create mode 100644 roles/forgejo_runner/tasks/main/01_install.yaml create mode 100644 roles/forgejo_runner/tasks/main/02_setup.yaml diff --git a/inventories/chaosknoten/hosts.yaml b/inventories/chaosknoten/hosts.yaml index 0ec4875..4fbc03d 100644 --- a/inventories/chaosknoten/hosts.yaml +++ b/inventories/chaosknoten/hosts.yaml @@ -282,3 +282,5 @@ renovate_hosts: renovate: secrets_hosts: hosts: +forgejo_runner_hosts: + hosts: diff --git a/inventories/external/hosts.yaml b/inventories/external/hosts.yaml index 5d0f9d4..efcf5f0 100644 --- a/inventories/external/hosts.yaml +++ b/inventories/external/hosts.yaml @@ -24,3 +24,5 @@ ansible_pull_hosts: status: secrets_hosts: hosts: +forgejo_runner_hosts: + hosts: diff --git a/inventories/z9/hosts.yaml b/inventories/z9/hosts.yaml index 6044154..38e29fd 100644 --- a/inventories/z9/hosts.yaml +++ b/inventories/z9/hosts.yaml @@ -63,3 +63,5 @@ ansible_pull_hosts: yate: secrets_hosts: hosts: +forgejo_runner_hosts: + hosts: diff --git a/playbooks/deploy.yaml b/playbooks/deploy.yaml index d111321..7a14440 100644 --- a/playbooks/deploy.yaml +++ b/playbooks/deploy.yaml @@ -150,6 +150,13 @@ tags: - eh22_styleguide_dir +- name: Ensure forgejo-runner is setup on forgejo_runner_hosts + hosts: forgejo_runner_hosts + roles: + - forgejo_runner + tags: + - forgejo_runner + - name: Setup authoritative dns servers hosts: auth-dns roles: diff --git a/roles/forgejo_runner/README.md b/roles/forgejo_runner/README.md new file mode 100644 index 0000000..ed53e8b --- /dev/null +++ b/roles/forgejo_runner/README.md @@ -0,0 +1,9 @@ +# `forgejo_runner` + +Ensures Forgejo Runner is installed and set up. +See: https://forgejo.org/docs/latest/admin/actions/ + +## Required Arguments + +- `forgejo_runner__config`: The configuration to run the Forgejo Runner with. + A configuration can be generated using `forgejo-runner generate-config`. Also see the [relevant docs](https://forgejo.org/docs/latest/admin/actions/configuration/). diff --git a/roles/forgejo_runner/files/EB114F5E6C0DC2BCDD183550A4B61A2DC5923710.asc b/roles/forgejo_runner/files/EB114F5E6C0DC2BCDD183550A4B61A2DC5923710.asc new file mode 100644 index 0000000..b18e74c --- /dev/null +++ b/roles/forgejo_runner/files/EB114F5E6C0DC2BCDD183550A4B61A2DC5923710.asc @@ -0,0 +1,71 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: EB11 4F5E 6C0D C2BC DD18 3550 A4B6 1A2D C592 3710 +Comment: Forgejo +Comment: Forgejo Releases + +xjMEY3T/yhYJKwYBBAHaRw8BAQdAVxqCQrSbpDNrx8CiTM8PUAVqdCyv2UmBDhpP +HZIpoIDNHUZvcmdlam8gPGNvbnRhY3RAZm9yZ2Vqby5vcmc+wsB+BBMWCgDmAhsD +BQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAhkBFiEE6xFPXmwNwrzdGDVQpLYaLcWS +NxAFAmSc08VBFIAAAAAAEAAocHJvb2ZAYXJpYWRuZS5pZGh0dHBzOi8vY29kZWJl +cmcub3JnL2Zvcmdlam8vZ2l0ZWFfcHJvb2Y2FIAAAAAAEAAdcHJvb2ZAYXJpYWRu +ZS5pZGh0dHBzOi8vZmxvc3Muc29jaWFsL0Bmb3JnZWpvMRSAAAAAABAAGHByb29m +QGFyaWFkbmUuaWRkbnM6Zm9yZ2Vqby5vcmc/dHlwZT1UWFQACgkQpLYaLcWSNxDM +2wEA6bOel3R25z3YUXL4hI2S8jRkJbOQawq0vgUnYNgS9hcBAK2zq4Zt4ctvSB+x +TqhR6Zi6aqSD3QrRnUVvV1xZhdkEwsCABBMWCgDoAhsDBQsJCAcDBRUKCQgLBRYC +AwEAAh4BAheAAhkBFiEE6xFPXmwNwrzdGDVQpLYaLcWSNxAFAmScz7JDFIAAAAAA +EAAqcHJvb2ZAYXJpYWRuZS5pZGh0dHBzOi8vY29kZWJlcmcub3JnL2Zvcmdlam8v +Zm9yZ2Vqb19wcm9vZjYUgAAAAAAQAB1wcm9vZkBhcmlhZG5lLmlkaHR0cHM6Ly9m +bG9zcy5zb2NpYWwvQGZvcmdlam8xFIAAAAAAEAAYcHJvb2ZAYXJpYWRuZS5pZGRu +czpmb3JnZWpvLm9yZz90eXBlPVRYVAAKCRCkthotxZI3EBJ1AP9UeN1HFGz90r34 +PGrOj1225HfJzdWgamEUkEKEwShcIQD+K/o7sLJM+C/mJXaCixAZgvRd9/rYq27T +9Y2rTQybSwnCwH4EExYKAOYCGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4ACGQEW +IQTrEU9ebA3CvN0YNVCkthotxZI3EAUCY3spkjYUgAAAAAAQAB1wcm9vZkBhcmlh +ZG5lLmlkaHR0cHM6Ly9mbG9zcy5zb2NpYWwvQGZvcmdlam8xFIAAAAAAEAAYcHJv +b2ZAYXJpYWRuZS5pZGRuczpmb3JnZWpvLm9yZz90eXBlPVRYVEEUgAAAAAAQAChw +cm9vZkBhcmlhZG5lLmlkaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9naXRl +YV9wcm9vZgAKCRCkthotxZI3EC+hAQCxsUupyqMChFMqk/74PqzSlmCd6RXtbezP +W66YostSbgD9G+N+c9or1cBkcSejREOSy7TFrDrvek+ZhdZVhCp1UALCwEcEExYK +AK8CGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4ACGQEWIQTrEU9ebA3CvN0YNVCk +thotxZI3EAUCY3inA0EUgAAAAAAQAChwcm9vZkBhcmlhZG5lLmlkaHR0cHM6Ly9j +b2RlYmVyZy5vcmcvZm9yZ2Vqby9naXRlYV9wcm9vZjEUgAAAAAAQABhwcm9vZkBh +cmlhZG5lLmlkZG5zOmZvcmdlam8ub3JnP3R5cGU9VFhUAAoJEKS2Gi3FkjcQNV8B +AJfcHBzskW78lJVJeQwCI70qorOhC/QUp80jjNzs5lO7AQCujYgrae3vZb/476sc +wM33ufSpBguNwTLbCI6C5g8+B80mRm9yZ2VqbyBSZWxlYXNlcyA8cmVsZWFzZUBm +b3JnZWpvLm9yZz7CkAQTFgoAOAIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgBYh +BOsRT15sDcK83Rg1UKS2Gi3FkjcQBQJjeKH0AAoJEKS2Gi3FkjcQC5YBAKwCGFDD +SpX0JwBrzIP8W8ElwHvdBz2XDg8LwyQgr722AP9r01rbFwY4axDxpNj+BUFxwD5F +hza1cE3932eTsSOPDsKQBBMWCAA4FiEE6xFPXmwNwrzdGDVQpLYaLcWSNxAFAmN4 +k+kCGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQpLYaLcWSNxBHrQD+PFo/ +ii8p72HP0KsJbHPGnS/Sk9pFGd16fs1Hd88JHj0A/10XNyGQgwbe+X+K/a97vWW8 +vAzA1EtFIMfCGhIO8EoIzjMEY3UANBYJKwYBBAHaRw8BAQdAKvAs2Ij2RamYUzz4 +sBgsc2J+4fEwvSMcTp6rPZizRhfCwDUEGBYIACYWIQTrEU9ebA3CvN0YNVCkthot +xZI3EAUCY3UANAIbAgUJAeEzgACBCRCkthotxZI3EHYgBBkWCAAdFiEE98vwIJTn +Zl4X7WxE44G/PlDVNwcFAmN1ADQACgkQ44G/PlDVNwdIlgD+K15nuEec+VTFdP7Y +Y3SxM8Rjg2EtXk007+LM7XQfN9sBAOLjBTzIdaaKOpoAkGQ9Th/IphSUOnPYZVO5 +a6cN+wAM458A/itf3urQehI5SbKtbRqIDhqQZQVAcEeG2eQFunuofjDWAQDt/gE5 +XgTiQgnkTcqAX7GQeE74O/Q5vDtX10NjbzV7D84zBGeOav0WCSsGAQQB2kcPAQEH +QI2JXHjIx25g9WZHNyjkdUiRBPl5Y1JjjJCPvXM0/9RjwsA1BBgWCAAmFiEE6xFP +XmwNwrzdGDVQpLYaLcWSNxAFAmeOav0CGwIFCQO1OAAAgQkQpLYaLcWSNxB2IAQZ +FggAHRYhBA9SfPk6PQ0JJdPFXtCoIAUOFgnlBQJnjmr9AAoJENCoIAUOFgnljUwA ++wSjU/mk4xGIlwzJdPnnNzIsiMeqtuYokbSrOIxXIhP1AP93qtVr+kOu3pDs9JC+ +8CYG0DK1QD1LmlGP59WRGevSCXChAQDy6SCfnfcr5P4fYaz04+Tl0CDUkFOGP+sV +S/isPTssbAD9H2hKJKEmwuAd2MeFA3Bo3z5rUVWkfAcnv7Oy7u+OWQfOMwRlfHnh +FgkrBgEEAdpHDwEBB0DGoKPPOOx7rnqT318eykUkMJbk83MhcBqrecOADO3i2sLA +NQQYFggAJhYhBOsRT15sDcK83Rg1UKS2Gi3FkjcQBQJlfHnhAhsCBQkCx+oAAIEJ +EKS2Gi3FkjcQdiAEGRYIAB0WIQTfMxnqNtWZwdSmg9SzsfYKxXfyogUCZXx54QAK +CRCzsfYKxXfyoocRAP48OQpiBTkwC7kLLyuqVlP1t0hBQddr4i4rIV8Ug5tHzwEA +pl8Q+S4k/ROQS5FOhy7GBC337SncJFJYDD0pTcSecw+J3AEAn4qax72Oyfb0vaPY +m+WdqsfVBd2Hd2vJIwCjglp55B0BALIJE6nvACcKzTRUj7AQSLGvELGfJfM320xX +E0ZVBZkKzjMEaUFtxRYJKwYBBAHaRw8BAQdA1AZR9j6PksmArHjaoqOHIOQ4H1iw +0KZyLKLgu1onR8fCwDUEGBYIACYWIQTrEU9ebA3CvN0YNVCkthotxZI3EAUCaUFt +xQIbAgUJAsfqAACBCRCkthotxZI3EHYgBBkWCAAdFiEEO/ToE/hIEkEdoB5bxBht +9m9LZ1AFAmlBbcUACgkQxBht9m9LZ1DQHAD9EUEM23tJJUae0L1DbGnWEp3GnZOQ +G3Z34uWv16wRV3EA+gJuHa9Zr1TXAEXXBwQzZIrAFby+7I5smWPVM84c7xYA/qEA +/2dQMMZcRelFC0fIPvGQMGfYeBr8bkHKlJBQOTdukeSPAQCcd9rqJT7NNZlPtJ1T +wNAfAa3L23bdp/dEtKhE+d09CM44BGN0/8oSCisGAQQBl1UBBQEBB0CZnRfIHxTV +hOF8kdhbe4YJsePyVFi8USfuDXy4HgIHRgMBCAfCeAQYFggAIBYhBOsRT15sDcK8 +3Rg1UKS2Gi3FkjcQBQJjdP/KAhsMAAoJEKS2Gi3FkjcQdroA/jHFqt7y/r/5zdK4 +TYYp+5jlOgM5ZI7pNhWhtIFbqmx9AQCKSJf2YgPBLNJSL/86vpE9b6IvTE/8ENR/ +7xYaIA7oAg== +=D+4T +-----END PGP PUBLIC KEY BLOCK----- diff --git a/roles/forgejo_runner/files/forgejo-runner.service b/roles/forgejo_runner/files/forgejo-runner.service new file mode 100644 index 0000000..0e33bcd --- /dev/null +++ b/roles/forgejo_runner/files/forgejo-runner.service @@ -0,0 +1,19 @@ +# Source: https://code.forgejo.org/forgejo/runner/src/branch/main/contrib/forgejo-runner.service +[Unit] +Description=Forgejo Runner +Documentation=https://forgejo.org/docs/latest/admin/actions/ +After=docker.service +Requires=docker.service + +[Service] +ExecStart=/usr/local/bin/forgejo-runner daemon -c /etc/forgejo-runner-config.yaml +ExecReload=/bin/kill -s HUP $MAINPID + +User=runner +WorkingDirectory=/home/runner +Restart=on-failure +TimeoutSec=0 +RestartSec=10 + +[Install] +WantedBy=multi-user.target diff --git a/roles/forgejo_runner/handlers/main.yaml b/roles/forgejo_runner/handlers/main.yaml new file mode 100644 index 0000000..3234eb2 --- /dev/null +++ b/roles/forgejo_runner/handlers/main.yaml @@ -0,0 +1,10 @@ +- name: systemd daemon reload + ansible.builtin.systemd_service: + daemon_reload: true + become: true + +- name: restart the forgejo-runner service + ansible.builtin.systemd: + name: forgejo-runner.service + state: restarted + become: true diff --git a/roles/forgejo_runner/meta/argument_specs.yaml b/roles/forgejo_runner/meta/argument_specs.yaml new file mode 100644 index 0000000..5c7570e --- /dev/null +++ b/roles/forgejo_runner/meta/argument_specs.yaml @@ -0,0 +1,6 @@ +argument_specs: + main: + options: + forgejo_runner__config: + type: str + required: true diff --git a/roles/forgejo_runner/meta/main.yaml b/roles/forgejo_runner/meta/main.yaml new file mode 100644 index 0000000..cb7d8e0 --- /dev/null +++ b/roles/forgejo_runner/meta/main.yaml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: docker diff --git a/roles/forgejo_runner/tasks/main.yaml b/roles/forgejo_runner/tasks/main.yaml new file mode 100644 index 0000000..281f665 --- /dev/null +++ b/roles/forgejo_runner/tasks/main.yaml @@ -0,0 +1,7 @@ +- name: Ensure Forgejo Runner is installed + ansible.builtin.import_tasks: + file: main/01_install.yaml + +- name: Ensure Forgejo Runner is set up + ansible.builtin.import_tasks: + file: main/02_setup.yaml diff --git a/roles/forgejo_runner/tasks/main/01_install.yaml b/roles/forgejo_runner/tasks/main/01_install.yaml new file mode 100644 index 0000000..cb309a6 --- /dev/null +++ b/roles/forgejo_runner/tasks/main/01_install.yaml @@ -0,0 +1,96 @@ +- name: get latest release info + ansible.builtin.uri: + url: "https://data.forgejo.org/api/v1/repos/forgejo/runner/releases/latest" + return_content: true + register: forgejo_runner__latest_release_info + +- name: set latest version + ansible.builtin.set_fact: + forgejo_runner__latest_version: "{{ forgejo_runner__latest_release_info.json.name | replace('v', '') }}" + +- name: set latest version forgejo-runner binary path + ansible.builtin.set_fact: + forgejo_runner__latest_version_binary_path: "/usr/local/bin/forgejo-runner-{{ forgejo_runner__latest_version }}" + +- name: check if latest version forgejo-runner binary is installed already + ansible.builtin.stat: + path: "{{ forgejo_runner__latest_version_binary_path }}" + register: forgejo_runner_latest_version_binary_stat + +- name: download and install latest version, if not already present + when: not forgejo_runner_latest_version_binary_stat.stat.exists + block: + - name: set download url + ansible.builtin.set_fact: + forgejo_runner__download_url: "https://code.forgejo.org/forgejo/runner/releases/download/v{{ forgejo_runner__latest_version }}/forgejo-runner-{{ forgejo_runner__latest_version }}-linux-amd64" + + - name: temporary directory for download + ansible.builtin.tempfile: + state: directory + suffix: forgejo_runner_download + become: true + register: forgejo_runner__download_tempdir + + - name: download the forgejo-runner binary + ansible.builtin.get_url: + url: "{{ forgejo_runner__download_url }}" + dest: "{{ forgejo_runner__download_tempdir.path }}/forgejo-runner" + owner: root + group: root + mode: "0755" + become: true + + - name: download the signature + ansible.builtin.get_url: + url: "{{ forgejo_runner__download_url }}.asc" + dest: "{{ forgejo_runner__download_tempdir.path }}/forgejo-runner.asc" + owner: root + group: root + mode: "0644" + become: true + + - name: copy key for verification + ansible.builtin.copy: + src: "EB114F5E6C0DC2BCDD183550A4B61A2DC5923710.asc" + dest: "{{ forgejo_runner__download_tempdir.path }}/forgejo-runner-key.asc" + owner: root + group: root + mode: "0644" + become: true + + - name: ensure sq (Sequoia-PGP) is installed + ansible.builtin.apt: + name: sq + become: true + + - name: verify signature + ansible.builtin.command: + cmd: /usr/bin/sq verify --signer-file ./forgejo-runner-key.asc --signature-file forgejo-runner.asc --signatures 1 forgejo-runner + chdir: "{{ forgejo_runner__download_tempdir.path }}" + become: true + changed_when: false + + - name: install forgejo-runner binary of this latest version + ansible.builtin.copy: + remote_src: true + src: "{{ forgejo_runner__download_tempdir.path }}/forgejo-runner" + dest: "{{ forgejo_runner__latest_version_binary_path }}" + owner: root + group: root + mode: "0755" + become: true + + - name: ensure symlink points to binary of this latest version + ansible.builtin.file: + src: "{{ forgejo_runner__latest_version_binary_path }}" + dest: "/usr/local/bin/forgejo-runner" + state: link + owner: root + group: root + become: true + always: + - name: delete temporary download directory + ansible.builtin.file: + path: "{{ forgejo_runner__download_tempdir.path }}" + state: absent + become: true diff --git a/roles/forgejo_runner/tasks/main/02_setup.yaml b/roles/forgejo_runner/tasks/main/02_setup.yaml new file mode 100644 index 0000000..c83c057 --- /dev/null +++ b/roles/forgejo_runner/tasks/main/02_setup.yaml @@ -0,0 +1,46 @@ +- name: ensure runner group exists + ansible.builtin.group: + name: runner + system: true + become: true + +- name: ensure runner user exists + ansible.builtin.user: + name: runner + group: runner + password: '!' + system: true + create_home: true + groups: + - docker + become: true + +- name: ensure the configuration is deployed + ansible.builtin.copy: + content: "{{ forgejo_runner__config }}" + dest: /etc/forgejo-runner-config.yaml + owner: root + group: runner + mode: "0640" + become: true + notify: + - restart the forgejo-runner service + +- name: ensure systemd service exists + ansible.builtin.copy: + src: forgejo-runner.service + dest: /etc/systemd/system/forgejo-runner.service + owner: root + group: root + mode: "0644" + become: true + notify: + - systemd daemon reload + - restart the forgejo-runner service + +- name: ensure systemd service is started and enabled + ansible.builtin.systemd_service: + name: forgejo-runner.service + state: started + enabled: true + become: true From 2e50226b9450ecfea65449721d55090e9b697777 Mon Sep 17 00:00:00 2001 From: June Date: Thu, 21 May 2026 03:02:38 +0200 Subject: [PATCH 11/25] docker(role): provide option to set up gVisor (runsc runtime) --- roles/docker/README.md | 3 +- roles/docker/defaults/main.yaml | 1 + roles/docker/handlers/main.yaml | 6 +++ roles/docker/meta/argument_specs.yaml | 6 +++ roles/docker/tasks/main/01_repo_setup.yaml | 49 +++++++++++++------ .../docker/tasks/main/02_docker_install.yaml | 9 ++++ roles/docker/tasks/main/03_docker_config.yaml | 5 +- .../daemon.json => templates/daemon.json.j2} | 9 +++- 8 files changed, 69 insertions(+), 19 deletions(-) create mode 100644 roles/docker/defaults/main.yaml create mode 100644 roles/docker/meta/argument_specs.yaml rename roles/docker/{files/daemon.json => templates/daemon.json.j2} (59%) diff --git a/roles/docker/README.md b/roles/docker/README.md index b7f38e1..befc005 100644 --- a/roles/docker/README.md +++ b/roles/docker/README.md @@ -16,7 +16,8 @@ None. ## Optional Arguments -None. +- `docker__gvisor_setup`: Whether or not to set up [gVisor](https://gvisor.dev/) (`runsc` runtime). + Defaults to `false`. ## Links & Resources diff --git a/roles/docker/defaults/main.yaml b/roles/docker/defaults/main.yaml new file mode 100644 index 0000000..351f397 --- /dev/null +++ b/roles/docker/defaults/main.yaml @@ -0,0 +1 @@ +docker__gvisor_setup: false diff --git a/roles/docker/handlers/main.yaml b/roles/docker/handlers/main.yaml index ada2426..6c37581 100644 --- a/roles/docker/handlers/main.yaml +++ b/roles/docker/handlers/main.yaml @@ -2,3 +2,9 @@ ansible.builtin.systemd_service: daemon_reload: true become: true + +- name: restart the docker service + ansible.builtin.systemd: + name: docker.service + state: restarted + become: true diff --git a/roles/docker/meta/argument_specs.yaml b/roles/docker/meta/argument_specs.yaml new file mode 100644 index 0000000..6549387 --- /dev/null +++ b/roles/docker/meta/argument_specs.yaml @@ -0,0 +1,6 @@ +argument_specs: + main: + options: + docker__gvisor_setup: + type: bool + required: false diff --git a/roles/docker/tasks/main/01_repo_setup.yaml b/roles/docker/tasks/main/01_repo_setup.yaml index 63bdb91..6105627 100644 --- a/roles/docker/tasks/main/01_repo_setup.yaml +++ b/roles/docker/tasks/main/01_repo_setup.yaml @@ -1,15 +1,36 @@ -- name: Ensure Dockers GPG key is added - ansible.builtin.get_url: - url: https://download.docker.com/linux/debian/gpg - dest: /etc/apt/trusted.gpg.d/docker.asc - mode: "0644" - owner: root - group: root - become: true +- name: ensure Docker repo + block: + - name: Ensure Dockers GPG key is added + ansible.builtin.get_url: + url: https://download.docker.com/linux/debian/gpg + dest: /etc/apt/trusted.gpg.d/docker.asc + mode: "0644" + owner: root + group: root + become: true -- name: Ensure Docker APT repository is added - ansible.builtin.apt_repository: - repo: "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/docker.asc] https://download.docker.com/linux/debian {{ ansible_facts['distribution_release'] }} stable" - filename: docker - state: present - become: true + - name: Ensure Docker APT repository is added + ansible.builtin.apt_repository: + repo: "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/docker.asc] https://download.docker.com/linux/debian {{ ansible_facts['distribution_release'] }} stable" + filename: docker + state: present + become: true + +- name: ensure gVisor repo + when: docker__gvisor_setup + block: + - name: Ensure gVisors GPG key is added + ansible.builtin.get_url: + url: https://gvisor.dev/archive.key + dest: /etc/apt/keyrings/gvisor.asc + mode: "0644" + owner: root + group: root + become: true + + - name: Ensure gVisors APT repository is added + ansible.builtin.apt_repository: + repo: "deb [arch=amd64 signed-by=/etc/apt/keyrings/gvisor.asc] https://storage.googleapis.com/gvisor/releases release main" + filename: gvisor + state: present + become: true diff --git a/roles/docker/tasks/main/02_docker_install.yaml b/roles/docker/tasks/main/02_docker_install.yaml index f2ae880..b7334e1 100644 --- a/roles/docker/tasks/main/02_docker_install.yaml +++ b/roles/docker/tasks/main/02_docker_install.yaml @@ -9,3 +9,12 @@ state: present update_cache: true become: true + +- name: Ensure gVisors packages are installed + when: docker__gvisor_setup + ansible.builtin.apt: + name: + - runsc + state: present + update_cache: true + become: true diff --git a/roles/docker/tasks/main/03_docker_config.yaml b/roles/docker/tasks/main/03_docker_config.yaml index 639e8fa..88ee96b 100644 --- a/roles/docker/tasks/main/03_docker_config.yaml +++ b/roles/docker/tasks/main/03_docker_config.yaml @@ -2,10 +2,11 @@ # - log to systemd journal # https://docs.docker.com/engine/logging/drivers/journald/ - name: Ensure Docker daemon configuration - ansible.builtin.copy: - src: daemon.json + ansible.builtin.template: + src: daemon.json.j2 dest: /etc/docker/daemon.json owner: root group: root mode: "0644" become: true + notify: restart the docker service diff --git a/roles/docker/files/daemon.json b/roles/docker/templates/daemon.json.j2 similarity index 59% rename from roles/docker/files/daemon.json rename to roles/docker/templates/daemon.json.j2 index d55e4cb..b6f6025 100644 --- a/roles/docker/files/daemon.json +++ b/roles/docker/templates/daemon.json.j2 @@ -1,7 +1,7 @@ { "log-driver": "journald", "log-opts": { - "tag": "{{.Name}}" + "tag": "{{ '{{.Name}}' }}" }, "ipv6": true, "ip6tables": true, @@ -10,5 +10,10 @@ "bridge": { "com.docker.network.enable_ipv6":"true" } - } + }{% if docker__gvisor_setup %}, + "runtimes": { + "runsc": { + "path": "/usr/bin/runsc" + } + }{% endif %} } From 0acc56b238da7811e4c76da5f35eb933a9cd2732 Mon Sep 17 00:00:00 2001 From: June Date: Thu, 21 May 2026 04:44:16 +0200 Subject: [PATCH 12/25] docker(role): document gVisor issue with user-def. br. and provide help Document issue with containers on user-defined bridges and using the gVisor runsc runtime. Also provide a helper resolv.conf as a workaround. --- roles/docker/README.md | 2 ++ roles/docker/files/gvisor-helper-resolv.conf | 9 +++++++++ roles/docker/tasks/main/03_docker_config.yaml | 10 ++++++++++ 3 files changed, 21 insertions(+) create mode 100644 roles/docker/files/gvisor-helper-resolv.conf diff --git a/roles/docker/README.md b/roles/docker/README.md index befc005..0a28265 100644 --- a/roles/docker/README.md +++ b/roles/docker/README.md @@ -17,6 +17,8 @@ None. ## Optional Arguments - `docker__gvisor_setup`: Whether or not to set up [gVisor](https://gvisor.dev/) (`runsc` runtime). + > Note: gVisor doesn't work with the embedded DNS server Docker forces for user-defined bridges (see the [relevant GitHub issue](https://github.com/google/gvisor/issues/7469)). A workaround would be to bind mount a `resolv.conf` not relying on localhost DNS (note however that this still doesn't provide local container name resolution). When enabling this option such a helper `resolv.conf` pointing to Quad9 gets deployed to `/etc/gvisor-helper-resolv.conf` for bind-mounting. See the file for usage instructions. + Defaults to `false`. ## Links & Resources diff --git a/roles/docker/files/gvisor-helper-resolv.conf b/roles/docker/files/gvisor-helper-resolv.conf new file mode 100644 index 0000000..f047a80 --- /dev/null +++ b/roles/docker/files/gvisor-helper-resolv.conf @@ -0,0 +1,9 @@ +# resolv.conf pointing to Quad9 for bind-mounting into containers on user-defined bridges and using the gVisor runsc runtime. +# Example: docker run --runtime runsc --mount type=bind,src=/etc/gvisor-helper-resolv.conf,dst=/etc/resolv.conf,ro=true --network your-user-defined-network -it --rm docker.io/library/debian /bin/bash + +nameserver 9.9.9.9 +nameserver 149.112.112.112 +nameserver 2620:fe::fe +nameserver 2620:fe::9 + +options edns0 diff --git a/roles/docker/tasks/main/03_docker_config.yaml b/roles/docker/tasks/main/03_docker_config.yaml index 88ee96b..8c145b2 100644 --- a/roles/docker/tasks/main/03_docker_config.yaml +++ b/roles/docker/tasks/main/03_docker_config.yaml @@ -10,3 +10,13 @@ mode: "0644" become: true notify: restart the docker service + +- name: Ensure helper gVisor resolv.conf is deployed + when: docker__gvisor_setup + ansible.builtin.copy: + src: gvisor-helper-resolv.conf + dest: /etc/gvisor-helper-resolv.conf + owner: root + group: root + mode: "0644" + become: true From d44d84ae2a8eb3ac68692b0082d51fc9c85e8e77 Mon Sep 17 00:00:00 2001 From: June Date: Tue, 23 Jun 2026 21:38:11 +0200 Subject: [PATCH 13/25] forgejo-runner(host): configure forgejo-runner setup --- .../host_vars/forgejo-runner.sops.yaml | 11 ++--- .../chaosknoten/host_vars/forgejo-runner.yaml | 1 + inventories/chaosknoten/hosts.yaml | 1 + .../forgejo-runner/configuration.yaml.j2 | 43 +++++++++++++++++++ 4 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 inventories/chaosknoten/host_vars/forgejo-runner.yaml create mode 100644 resources/chaosknoten/forgejo-runner/forgejo-runner/configuration.yaml.j2 diff --git a/inventories/chaosknoten/host_vars/forgejo-runner.sops.yaml b/inventories/chaosknoten/host_vars/forgejo-runner.sops.yaml index c0e1b76..ba4e1ee 100644 --- a/inventories/chaosknoten/host_vars/forgejo-runner.sops.yaml +++ b/inventories/chaosknoten/host_vars/forgejo-runner.sops.yaml @@ -1,8 +1,8 @@ ansible_pull__age_private_key: ENC[AES256_GCM,data:fEly3EIovZ4n5xMnD5Aqtbn1+DUszR0MvBHcM383G40qfHxrbF/lqc8iftshInoHSU77Vugignyb0dTSCTS1cWmEg8I/+ZFjgwc=,iv:Y1XunCfdIUC5nTu+vkr0Q0LUBWeIwP/bGNkbnDb1cpA=,tag:6UrkMx6yEGB46VVvtAkDMQ==,type:str] +secret__forgejo_runner_ccchh_git_token: ENC[AES256_GCM,data:5igicsbBCLvsWI6YSFN2A/XD4An1l31YBe7Ngm7nHopWR/Ge266I9g==,iv:sVXBSeEWNs7GIXasZdbIoiaeXFTJMkM6T8vZCNX5Tek=,tag:aVIX3+8pr1lyEy1pcu1UNQ==,type:str] sops: age: - - recipient: age1az0k6cadssk6r8qcqxfr8cyu5mndy59pwt8yqq6w065ew6au4ezsmg2vkf - enc: | + - enc: | -----BEGIN AGE ENCRYPTED FILE----- YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKcFhwNmRXTnptOUMrN0dZ UnN0bFdCVjJQamNvTzZmMkxRdk0zL0E4bm4wCmRIVmVrVW1Jb3BKOVNnNnM5MXJm @@ -10,8 +10,9 @@ sops: VVI1TnN3UkcxUzdOWjJQTzZLOHNlaDQKx/HqW9sEYmNYIMYvLVF/9eJfcgRH/cJv YqcDNZc8L9Rap2TfwsiJZourqDTe/8sWgQ0yHC4mcKS1HJOTUMNwqQ== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-05-20T02:12:09Z" - mac: ENC[AES256_GCM,data:QgL5PSrG3yVeJQgDJ3/VQhGwF7WpDb0+w7oxeF0KeNt3m2YqUsS1qKwK4gJAbmyt/RPdRErTiPs6NdAouowjZg6zcd+Trags/GIBKcaIyJqQa4lw3J3Jod9GTkol70c0H/X76kQx+bWzuXnJy64Dm3t2h+/ytD45+yZJ/959FKI=,iv:JnR8ZRgCfsr7T7L0NLCncH/6q1EGErOCzYjZWrazDh8=,tag:HHH6MrP1bFU0j/Hb6crEZA==,type:str] + recipient: age1az0k6cadssk6r8qcqxfr8cyu5mndy59pwt8yqq6w065ew6au4ezsmg2vkf + lastmodified: "2026-06-23T19:38:01Z" + mac: ENC[AES256_GCM,data:3FSmib8bQgi3sf5OSZvKOeXNgPphCM2LtUEscXD1c916UC0l6WSJsB86CpwPolInL79o5148ond7u0lDiM+/yLx4QUmxLkJXK5hi0KqMmUCp8L/oVslO6Q1rAJnhKkfcPpnVUwk6lRvcb+4NXIG+3w9EBPSWXL2yBLhRMXmtiBA=,iv:sVJgqoNMZY9jwdq6eJJoTZ7rAqBBmfxsiDXV9yFhPws=,tag:NQwpxfBGwAoW83CMl/mitA==,type:str] pgp: - created_at: "2026-05-20T02:11:43Z" enc: |- @@ -184,4 +185,4 @@ sops: -----END PGP MESSAGE----- fp: 41FFAF3D519CF5C039FBD8414BCC213729AF0E49 unencrypted_suffix: _unencrypted - version: 3.12.1 + version: 3.13.1 diff --git a/inventories/chaosknoten/host_vars/forgejo-runner.yaml b/inventories/chaosknoten/host_vars/forgejo-runner.yaml new file mode 100644 index 0000000..28bc4ab --- /dev/null +++ b/inventories/chaosknoten/host_vars/forgejo-runner.yaml @@ -0,0 +1 @@ +forgejo_runner__config: "{{ lookup('ansible.builtin.template', 'resources/chaosknoten/forgejo-runner/forgejo-runner/configuration.yaml.j2') }}" diff --git a/inventories/chaosknoten/hosts.yaml b/inventories/chaosknoten/hosts.yaml index 4fbc03d..30072c8 100644 --- a/inventories/chaosknoten/hosts.yaml +++ b/inventories/chaosknoten/hosts.yaml @@ -284,3 +284,4 @@ secrets_hosts: hosts: forgejo_runner_hosts: hosts: + forgejo-runner: diff --git a/resources/chaosknoten/forgejo-runner/forgejo-runner/configuration.yaml.j2 b/resources/chaosknoten/forgejo-runner/forgejo-runner/configuration.yaml.j2 new file mode 100644 index 0000000..eb3bcd3 --- /dev/null +++ b/resources/chaosknoten/forgejo-runner/forgejo-runner/configuration.yaml.j2 @@ -0,0 +1,43 @@ +log: + level: info + job_level: info + +runner: + file: .runner + capacity: 4 + timeout: 1h + shutdown_timeout: 30m + insecure: false + fetch_timeout: 30s + fetch_interval: 2s + report_interval: 1s + labels: + # https://forgejo.org/docs/latest/admin/actions/configuration/#choosing-labels + - docker:docker://docker.io/library/node:lts + +cache: + enabled: false + +container: + # Leave emtpy to create a network automatically. + network: "" + enable_ipv6: true + privileged: false + ## Something like this once gVisor can be used. + ## options: "--runtime=runsc --mount type=bind,src=/etc/gvisor-helper-resolv.conf,dst=/etc/resolv.conf,ro=true" + # Leave empty for default /workspace to be used. + workdir_parent: + ## Something like this once gVisor can be used. + ## Add /etc/gvisor-helper-resolv.conf to valid_volumes to make the bind-mount in options work. + ## valid_volumes: ["/etc/gvisor-helper-resolv.conf:ro"] + # Leave "-", so no docker host will be mounted in the job container. + docker_host: "-" + force_pull: true + force_rebuild: false + +server: + connections: + ccchh-git: + url: https://git.hamburg.ccc.de/ + uuid: 8f2a39a7-0c58-4c57-a272-01893b2f1a6d + token: {{ secret__forgejo_runner_ccchh_git_token }} From b9a5fa3ce58a76c99bfe61bbfdaea97822176640 Mon Sep 17 00:00:00 2001 From: June Date: Fri, 3 Jul 2026 03:39:10 +0200 Subject: [PATCH 14/25] forgejo-runner(host): configure some more labels for more images Provide the ubuntu labels similar to the images running at Codeberg using the catthehacker/ubuntu:act-* images. See: https://github.com/catthehacker/docker_images https://codeberg.org/actions/meta Also provide convenience labels for Alpine and Debian. --- .../forgejo-runner/forgejo-runner/configuration.yaml.j2 | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/resources/chaosknoten/forgejo-runner/forgejo-runner/configuration.yaml.j2 b/resources/chaosknoten/forgejo-runner/forgejo-runner/configuration.yaml.j2 index eb3bcd3..7463ea3 100644 --- a/resources/chaosknoten/forgejo-runner/forgejo-runner/configuration.yaml.j2 +++ b/resources/chaosknoten/forgejo-runner/forgejo-runner/configuration.yaml.j2 @@ -14,6 +14,15 @@ runner: labels: # https://forgejo.org/docs/latest/admin/actions/configuration/#choosing-labels - docker:docker://docker.io/library/node:lts + # Provide ubuntu labels similar to the images running at Codeberg. + # https://github.com/catthehacker/docker_images + # https://codeberg.org/actions/meta + - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-latest + - ubuntu-24.04:docker://ghcr.io/catthehacker/ubuntu:act-24.04 + # Alpine + - alpine:docker://docker.io/library/alpine:latest + # Debian + - debian:docker://docker.io/library/debian:latest cache: enabled: false From 81b16a04cbe6c769755221f0f68b04bc8b01b9a0 Mon Sep 17 00:00:00 2001 From: Stefan Bethke Date: Sun, 5 Jul 2026 10:40:29 +0200 Subject: [PATCH 15/25] Explain why this is necessary --- roles/transmission/files/update-transmission-settings | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/roles/transmission/files/update-transmission-settings b/roles/transmission/files/update-transmission-settings index d51730a..27cf1c0 100644 --- a/roles/transmission/files/update-transmission-settings +++ b/roles/transmission/files/update-transmission-settings @@ -2,7 +2,8 @@ # # Update the transmission settings.json. For the update, stop transmission, -# put the new file in place, and restart it. +# put the new file in place, and restart it. This is necessary because +# transmission is constantly rewriting the settings file while it is running. # set -e From dd1cd6f529125e9e12d67452bdf986050d92bb58 Mon Sep 17 00:00:00 2001 From: June Date: Wed, 8 Jul 2026 00:20:02 +0200 Subject: [PATCH 16/25] forgejo-runner-external(host): basic setup --- .sops.yaml | 7 + .../chaosknoten/group_vars/all.sops.yaml | 606 ++++++++++-------- .../forgejo-runner-external.sops.yaml | 218 +++++++ inventories/chaosknoten/hosts.yaml | 7 + .../auth-dns/zones/hamburg.ccc.de.zone | 1 + 5 files changed, 556 insertions(+), 283 deletions(-) create mode 100644 inventories/chaosknoten/host_vars/forgejo-runner-external.sops.yaml diff --git a/.sops.yaml b/.sops.yaml index 849749b..ed5171f 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -40,6 +40,7 @@ keys: - &host_diday_staging_runner_ansible_pull_age_key age1522f3qzddm82w63j7ajdkr0khvced6ht7tzp3grvp0j3hewtvesssr5kpf - &host_auth_dns_ansible_pull_age_key age18zgt4y2sd75hxnpe333zz39048ctxpr0q8a3uqh3jajjkyawsdrq8yg5ve - &host_forgejo_runner_ansible_pull_age_key age1az0k6cadssk6r8qcqxfr8cyu5mndy59pwt8yqq6w065ew6au4ezsmg2vkf + - &host_forgejo_runner_external_ansible_pull_age_key age1pq1jqrcp3te50xugmv5wst3s9ahj0d38rfktxt43wlcqz7vnwyn3y2h7kyfr6rckrvmuk9m7yvp4efjnfsuxx6d8r9gn222r2eal5593arywrjwrgeypf745wyuvf3z2xk9tm5fgnwckftuvdggk66fph59rw69nt5dpjeewuww4vzt9gs4xelre952s7zjz56qv8tvesg2c89sp8rmy9dvhwfd6tucjhs6sjr6yp2njjra2u6w7c7f0sch3rwkw3wf2dc9su9aaa9q2f22sh5yf0fqejxa2qqpq4pg752589st5xsa5g8tpkjglj4tn35gd4hjj0xet9cjwhydmkmmkffy3nr8zdtctqu6pqsyf7aphvktryez39ru3qe7m6nvr465ffxr0ltvr85nddzxvcwpwpac64nu5tdfrxgjfqzc99vr3zxv8carpsw5evmruqlvrq6v6a4m2cwsz5gqw7nyk3jlj75kp5cnafzjn5dyrf8ppfhp5g5s34zsl7pejmmx2uuudjt7ru2y7as9mtagykrgqgt80fvp3eeh4gsmmd3ujgtp0ranq28aq9x0xdekqh49pfhhprjj6zqdfac5gxtjj736kh5jktc4ls4mjs3p33rzt6ze54uqsfept3qhua2pmugypup6hm6j2ek5sgxjnwvqyfj2l8vz4yfgkaxf699v7jqlwf7g68ang5kzqrjsu78lyardm4zen8zhrr24j334qdgs4zr8dhsfsnmvx9cdvu0swx27tcz8txs46zds9kekgmua7w7fnw3l2lf6zla956ssycac4zjy87rawr4thusxtcqgfzfzh2za9np0s34e5dwkp2l2k06cq09myxqfe7ze6a53d8sl5j43qcekh6kfvl9k0t7903q99pc35630zwm3hwxgnw354du5gngnz56skq9zx3pcnkr5eyh8r8t0dqudmvrrwmxreu6tgrklxw7yvu3zkjgt3gyjhc8kqcrevlukay45sz4k9zqxx9yrs88hzt4h52r2g74alf3cedes3atufy06q4lfq3nxdlnve0kqcwstzr6z6u7fqpqvacezdrr62ycteju6dqawkpthu0drtlxj547htfjcsnrmhgvhskwtuhk6yp7wp30p7qc5vkk8fegg6qx5kc9xs4trx7hj9xgydu7vd30hkceuxsczywjs9v2fl3svkwfypg62882yq6ltv7gfj4ajuy8ezd76g0z7juwspe7q6zs5ceshd6038tvvh2nlpjty6rg6a9qfzhgmjx9s6hynyk7xnq9zra6hxstg8p58x75hapd2mk6rapfunlnnkz5dsxjf4ud4dsvgjfjpzxcdy7sp8dzxtengrsdyu4824mqlw8p63d7m2z4mcyme4tm2qkugtdgrkyphe7akk2geukf6xkfkzd2pkdq5s3qm9fkvfkgrv6yw5kdgjak8xcgesg6tumans4fs8yrxtqlvv2z3emdvwchrjfq4xpzsj27yt4gdg8pknwz9tqpjkjxq6lysutrvwkvt2fwyj8wvv8wtmdl6fk6rsd9kq9a6wkhuq7vvrgwgj3xg2s229sprj4g2vzhy2dfesrp403gs64jqkrjuezwm4zd6uw2x4e2qkj8xqcf7c0zprdzu959x23u878vqqetgpjwt0z3kedt8l6dgpm0rf5dmrya5h3wgzfa0jjvgjphyxgxrwlrzpv4czgal933zs64tn90ks66ejjdaw4t67sch8r3q0kljeqnpdgmw0cpj6arc6k46wcqaccygczy76zt9362vslakvzqqv33tv3sjldp6qxprharmpm9uykgpx66343wuur5xj2aw0rgutpm4ztjzycn3a8d2jq2zpdzwmevezm7mkp9dmndkc3qz0kklgkxq9yehrk5ayfly97umhws0jll8qqg0r7gzxgw5vv76 external: age: &host_external_age_keys - &host_status_ansible_pull_age_key age1p546j6whqsyfkjuf674lawrnk2ex653fuvwhcwt46gkrspkq59sqzm5y87 @@ -216,6 +217,12 @@ creation_rules: *admin_gpg_keys age: - *host_forgejo_runner_ansible_pull_age_key + - path_regex: "inventories/chaosknoten/host_vars/forgejo-runner-external\\.sops\\..+" + key_groups: + - pgp: + *admin_gpg_keys + age: + - *host_forgejo_runner_external_ansible_pull_age_key # external hosts - path_regex: "inventories/external/host_vars/status\\.sops\\..+" key_groups: diff --git a/inventories/chaosknoten/group_vars/all.sops.yaml b/inventories/chaosknoten/group_vars/all.sops.yaml index 5b4b6c1..dcf4eb2 100644 --- a/inventories/chaosknoten/group_vars/all.sops.yaml +++ b/inventories/chaosknoten/group_vars/all.sops.yaml @@ -2,393 +2,433 @@ msmtp__smtp_password: ENC[AES256_GCM,data:xcBVBTb6mfr5Ubyfga9ibKWKhrfrEEaDWD98vI metrics__chaos_password: ENC[AES256_GCM,data:al234VSAH7oxka8X0hTvEJKVLD6O/WCrCKfVLLvm,iv:+TmA+0hXMV4OxvK7RH2g1dIzm88Lpm3zevxSZxK23QQ=,tag:txCVr5SEW3dVHgNFInR94g==,type:str] sops: age: - - recipient: age1ss82zwqkj438re78355p886r89csqrrfmkfp8lrrf8v23nza492qza4ey3 - enc: | + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvalUzeDFlWDJpaFdxYzZU - SzNLbFNiMTMreGhkaUZMN2hZS1dONFRzeEM4CmR5VjVKSWloQzc0NnM0bGRHR2RE - YkwvOWZZZXczcTR0cFZvb1hjMEVMZW8KLS0tIFVEVTd6UG53K1loNDdEeUhVTW5W - dFYveVdnZFptWi8wNEtIL2VEd1pPVVUK51kCjHeK/neGrtcsgvMsPifCKQflPn8S - +E3oHbvSvBWW5ACR+X0My3FF6F5qTyzeo8OqCdwHJJci8wD4lO0ykQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArVmdjZ0ZqeCtBMVZDQXRa + T3hJZXhDZkRYOUpXTHBydWtsSXNnZVZYckFvCnVHWjQ0dXdwWjIzbFpkWmRoa3cx + TlJ5amhrOExBaHowb3BqNjlpaUxPTW8KLS0tIDF3NGZIUWs0aEU0TlcyZmZSa1Z6 + dUdSUVowYUh2bkZZL1F0eVBwekQxbDgKkhdASE+YCLmk1o1/m4thUG0snNX2HIeP + rNLk4ga516qNBCensSpN8N9jNgupOTMbCXHDOL4j3DbMklk4oi/07A== -----END AGE ENCRYPTED FILE----- - - recipient: age1gdfhx5hy829uqkw4nwjwlpvl7zqvljguzsnjv0dpwz5q5u7dtf6s90wndt - enc: | + recipient: age1ss82zwqkj438re78355p886r89csqrrfmkfp8lrrf8v23nza492qza4ey3 + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVSHp3cVdjbURhQWJRb3FN - ZmxSajRNSzFib2lRRmtVcmVzaWtjZmpibkhvCncrNkNmUmFKMkhLWG8zWjMwcUlI - dElPd29uaEFaeC83citIbC9sZjVhcEkKLS0tIEsycHZ3UnZ6YU5uSVZFUU1VeVQ5 - aUQwZUU4NFF3cHpoMTY2aUFMT3R3K1UKBMzOLiQreRutPycBG3ripOeKOlz02Hxu - nWkfVy4eJc+zRrwICmil/v3VcyKH72AvuUfnBgFkCTg+lGZY/GDfAg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYSVJ5S2pZb0c4SlpzV0NI + aXRvUnZDN21KN3NoeVRSMkNFNDVpRTIxV3lBCmRhSHdBYkJZRitndy9vTUhTRzNu + b0RqWkloaFhaOTFuemJES1ZkdlZVZ2sKLS0tIDdvaVgzcE1XcmR3cUJKNzdFSEhV + NzJ5emJtOTNDbDIvUG4rc3BXcGM3SmsKEzinKFMsJwNByhm0Z1fZGqGHuHOzkbcQ + XMRtfnncFH1AY4Ameav0+lqZ0eXyYb+Z1xpCV+V5yQ3mJQnbnnMqMw== -----END AGE ENCRYPTED FILE----- - - recipient: age13nm6hfz66ce4wpn89fye05mag3l3h04etvz6wj7szm3vzrdlfupqhrp3fa - enc: | + recipient: age1gdfhx5hy829uqkw4nwjwlpvl7zqvljguzsnjv0dpwz5q5u7dtf6s90wndt + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0STVTd3pHV3BCTTkrOTdy - RXBweU5OM3RkWFA2T1M0RzJWNHVYdVZXWVVBCm00M2hQdlphRkxjU0VOUEladjl3 - a21QVEZmMHFoM1JxQlZXaXlVTjRHRmcKLS0tIHBwN3pkRGExV1d5M3J3NWo0cHNI - M2IxRjNHYmFPSDB1Ly9xSkRHMy9ldVUKdrGJ2HS5Kfyyw+0bCMlFs7DJ3+JWKLtq - 7YCoqWskZauUv+cH2VL/oghttdWQXonlVINkhKbeiQ49BbhPTompJA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwNzFDcC9rcVdaR3kxQnlI + UjhxZXMweFIxRU1lR3ZyY0JIVTlVcmZIYUdrCk5SV1RRT1lqcm5lU2h5c3NvZHBG + ay8xN1NPSkZ1UHhUazJmcnRrZkE3UTQKLS0tIGh2SG9NN1YydjAxTE5CaWNrbnZa + NnpkVjBJNGhCaStiakdMN0JFZFA1MGcKVqrFb6S+InLLQWqC8/RwrrysAf+3KMLJ + 1Y+4u3VdzA3BlU6cPNbeOYvdCnOo/qO6a0omHnrtls8e9ZVFB9Wi/A== -----END AGE ENCRYPTED FILE----- - - recipient: age1jtusr294t8mzar2qy857v6s329ret9s353y4kuulxwnlyy4dvpjsvyl67m - enc: | + recipient: age13nm6hfz66ce4wpn89fye05mag3l3h04etvz6wj7szm3vzrdlfupqhrp3fa + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2Njd0ZDR3M3JuREJNTjdl - RDRDd1BXQ1F2Z3NZYVFlTGhsN0gxTTdOY3pBCmZReUF4SVRBcXpkQzk2d2xDRDBP - cXNNUGxXWkVFMTBNUkc1Q1ViaHpYZFEKLS0tIDFNVnlhQ294bHZhNTRUNUx4c2tT - MU1od1U3VG42cnBJSXlEQTl3MVhwMnMKFK43XRLZKQoouvCcGqHt/13LW+KMG4Gn - WvnkZz0m3WUM1iu3WLYqT+QOR8RnNPk669JE80rpxKZmbqRNsIdazw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQaThDV3YySWkwcG1Ucys5 + V3dLZGpKMUV4M29kTU9PWjVDa0E1Y2JpdG5jClZJTk1McWFFU2EvdHdTeXQ5RTIz + bVE1WHJTUG5lc3hjZG05ZkM5OG5QMmsKLS0tIE9qbFJYTmJIeC9NeU9yUFJRZHQr + eiszNk1LQnZyVmhFUGdva2ljSW9ndlUKx1ba5S/jCXTiXIa+6uOzgbarXNYZ8BeQ + PteQmwTk68ic3WiEHi0BTGW/Fx/vVEPAgBAZZd3Ea6gByKTmeRFKIw== -----END AGE ENCRYPTED FILE----- - - recipient: age1a27euccw8j23wec76ls8vmzp7mntfcn4v8tkyegmg8alzfhk3suqwm6vgv - enc: | + recipient: age1jtusr294t8mzar2qy857v6s329ret9s353y4kuulxwnlyy4dvpjsvyl67m + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrd25sbHdPbkovMWJXaFdp - S0dYMmdoN1I2ZFA5SFk4VlBSelFWd056eXljCkdCdFlSMHdUdE1rd0MwSUdpTWNp - Ymk4Mk5kd1FZMElGTktiZ3djRXNENlEKLS0tIHJQWUtqTFZabjdidWlMbXVmeUlm - N1JBZm9jdWRtdXp0YWhTTVNGZnFQcUEKcrOCOyDG/dJocsR5ZLyv42PX5cTBdgvi - aNYAq+SnBEMQebUlPBfOapR3tsdjBRwMPvDN3cBtky77SGAg0hZ49A== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBad0dONG0xaXVzSEx0bVc2 + Sm5Wc1h0cXdBL00yTUpSWHNxWUczdDdibEFBCnAxekx6dkJJNWFjMVlILzZNRkdh + dDRWVFovVitsZVI5WnlBanZGZU9yRGcKLS0tIE9zM0ltT3h3RGZnNDB0QmVCVEpD + di9PWXpLc0ZCK28wL1V3NUNNN285VzQKqY3LelUaCtWM9vl0eLEVgtn65+Dfch1o + IJssAkB9pSSyUeLAs9hrFdLYjwKG+S8XB2Suw9Y7XXdYqE7dSLMiEw== -----END AGE ENCRYPTED FILE----- - - recipient: age133wy6sxhgx3kkwxecra6xf9ey2uhnvtjpgwawwfmpvz0jpd0s5dqe385u3 - enc: | + recipient: age1a27euccw8j23wec76ls8vmzp7mntfcn4v8tkyegmg8alzfhk3suqwm6vgv + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxM3V0RFd6Qk9JbzFGdi9q - ejZxMHBGdmhDNDloVVNpMkNrQStKUW5aNFRBClJtMGVJN1h0amJPV3RWY1lIQ2ow - LzYvR1dpSFpwa0c1Q05Bc3NXVWNrQjQKLS0tIEdNTXEraXk2N2Q5UWhjUUdvUXA0 - clhMUFZPT3JRZjFHeDBsd0YyVUVnZUkKYMO2fwqDXeuKVVgL2KKDWfTAa+5y0P0f - gFrlyEqbIrcr66fy66zHlVw3FjHoUfOsMDm4GRjWNn4KOTGSjIImjg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZQXlLT2Z1L29zUzgwY0tW + RHYycmtyM21BMjd5QUNvQUV0TkRsWFh2QlNJCmprSE9lSnh0Vmhkb0hSenNIamlC + RTBlTFVvUkVMejBobXlvTlg2Wm5TY2cKLS0tIDdPK0VlckcweVdCeWdQbTJoMDE5 + RDJNYkUxZWZhWnptT2U5a1pYR0FtaUkKqhBidpla+0NW7dq2FnsYUoW4T4A8fmFy + cUMWuQBYM2QAxZRguyFXJ3dkUAxo7mIhUjKQuTIMOCRTyxqRlTW4SA== -----END AGE ENCRYPTED FILE----- - - recipient: age1na0nh9ndnr9cxpnlvstrxskr4fxf4spnkw48ufl7m43f98y40y7shhnvgd - enc: | + recipient: age133wy6sxhgx3kkwxecra6xf9ey2uhnvtjpgwawwfmpvz0jpd0s5dqe385u3 + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGZC96YVlTVm5xM3M4ckYr - MVNZZ1dISHNGcnNSOEVjUk1JZDdVcXdKeEhjCnhUa2dMOEdBenNxcWkrRnY5RFdD - bXpCQk9KZFZmVWN1Sm5FcnkvaXJ1clEKLS0tIGhsUTd4a0tnWHJZdTB2VktEbGxw - eVZVenJRQXNKY1FNVG5yZXdHTVUrc28KAeiaqGRCZ7tjMaxKrlDOTj96WcoxlkxX - 1P+DXm44FAlEU/o9YCun5CBDMrBI8qBt5VUxFaqyA94ixSKXZQeUAw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNZDFQMTVPb1F1aGo1VE1O + bE1IUitZRkVMSlNmclZHMC9qaWJodUEwV1IwCitzWTRKeEpodVpwaE5UbnkvTExC + Z3VYYTlqWndEOXM0MkFTZDRpOERFVlEKLS0tIEV2RGszU29MUCtONzFsWG1aZDZJ + WDhMeFdqcVZFWHlVVDRtbmErMUtlS0EKkrK7s5d8GUqX9PvOE3clrqoHVpmuXbai + dm3Bv+pUbNMjHFlx4sXVAPVlWahN0noo4fy69J/m6F7/DnuoDHEq3g== -----END AGE ENCRYPTED FILE----- - - recipient: age1sqs05anv4acculyap35e6vehdxw3g6ycwnvh6hsuv8u33re984zsnqfvqv - enc: | + recipient: age1na0nh9ndnr9cxpnlvstrxskr4fxf4spnkw48ufl7m43f98y40y7shhnvgd + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHTmtYKzA1d3Y4ZkRyNzg0 - RFk5SzQ2bGdDSG1LS2FkNkYwTUFXUjZqMngwCkhrLzEzUUhYQ2VkMEI1VmdidXA3 - RytrbXV4MUcwanNVaGc5NDBrSWxwRVkKLS0tIFBYSjc1Q2N1a1UzQTV2czdxaDNQ - ZmJGMFlNdUxrZHBtbWppcU9kelFTbE0KE90J1IodfxqYl3De2qUv8Eu3Uw5PKeQ9 - j5SPAw+1xvnB6q9iHAOhXwtER3bOsXOs8RnPTqKCV5RtEa6su79Kfw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiYUM1a1NlVmRlZGJvNld5 + NWJMckRXVE11RzRmdWVETXhwYW5SdCtzRUU0ClZJQm5LL2swT21TaUYySnRuNHFz + Z0JHUTdRNkwrRkdJNGVzK21uZzJ4MHMKLS0tICtEcGI2b2xkY3RKaDNQVmN4OTQ3 + VXBrUjQ0Mjl3czBXbFd1WE9LN2U0WGcK1BvTUqw/41CzYUbaJz8C4q4hZ23TFOtd + g1NuSfsJm1BHN8vPk0QUOb+jw7J5YyFplFLHTFIf6kslMXP4WNc1Rw== -----END AGE ENCRYPTED FILE----- - - recipient: age18qam683rva3ee3wgue7r0ey4ws4jttz4a4dpe3q8kq8lmrp97ezq2cns8d - enc: | + recipient: age1sqs05anv4acculyap35e6vehdxw3g6ycwnvh6hsuv8u33re984zsnqfvqv + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPbnJGdk40VVlQVGlhRVZy - M29YdWFxRnBRdlNsSVdTWnBWMGI1N3N5SjJjCkw3RzA5cHlBNVA2NlVlV2lJSThG - K2RXNm4rWkRtUmhHZUNBWUlUbTBIQ2sKLS0tIExyeFBpbnlRWittc09mVjkvY1ps - S0tjNUx3anVqL1RHVmVsR040S2VmdG8KEihK9BPXXLd0XQZB111NJuOdJGnCgBHP - KCuVczzyMx1lAyh0NlG0xgyIMKuWAXP0PBGgf24jerGbp/5mIx+sgw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGOGlPOUVlaU5JVWl0TlJL + SVFIT0gxdGhTVENzZTJiMEtkZnpMVHFCdUNFClF6cU8rdENSODdQNzd0MFV2TGFW + bHM5YjJJeU1UMVp2WUpCL0U0T0NCNHcKLS0tIGpKN2prUEF6QndiQkk4RExSRUtx + OFg3QUFjOERJb29wOTd2dXpLYW11c0EKK/R3LPiTDBvFRM3thWaaepKeOnF3Zt7u + 6IGcJPDuo6uHVcUMS7qE6qBWNH8ZBtMtNQio+BHx4s6G5DR2XszdBA== -----END AGE ENCRYPTED FILE----- - - recipient: age19rg2cuj9smv8nzxmr03azfqe69edhep53dep6kvh83paf08zv58sntm0fg - enc: | + recipient: age18qam683rva3ee3wgue7r0ey4ws4jttz4a4dpe3q8kq8lmrp97ezq2cns8d + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoVTU0eWFMaWhIK25ESUQ0 - ZklzVEhOeDBtSWpINDVVb2o3QjQ5VWZzSUg4CkRpMnVGU3ZOWVZCRnpHT0J4TGhY - ZHNDekxuRmZ6TlIrUmhkYzlFb2NFM2MKLS0tIGNveGhmY1FsRUE2c045U2NjTi9r - ZjN2TEc2TGtIV093N1lKRjNqa0NrZTAKv72ItPWyFHxKxT1xQIu2sA2SzR3/1/Hf - WiZjpE7QXJBxhFVeYEcZgPKOZ7HdubchjSTCGTuX9oyi4/GI7yRPUg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5bW44eElOWEs4NlV5am02 + d0ZNemdBRXBURmd1ckVxelQ1UkJadTNxUFY4CkdRa05vSzlCeFFDTjFna3RoQllo + aThrNXB1elhSQWUxd3QxdUZnbUlmSnMKLS0tIGdWZ2loUENBTmZXc1R2aWdyMEsv + cW8wLzNlUjYyazVxZ3ZrZ0RpUGZ6TkkK3a9IoujcGL2FiOf3zGCF4KvUfGeh04q1 + QQR+xlzqe6iMepeD0fPZvYedc1Yo2wXbWS/j7ehJh1jnWcB57NSsew== -----END AGE ENCRYPTED FILE----- - - recipient: age16znyzvquuy8467gg27mdwdt8k6kcu3fjrvfm6gnl4nmqp8tuvqaspqgcet - enc: | + recipient: age19rg2cuj9smv8nzxmr03azfqe69edhep53dep6kvh83paf08zv58sntm0fg + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjTzhrMGRsTHhCc2hlTkhS - SGxENjN3R0lseHgvVGJBdEN5L2RqTWJsMm1nCkcyVHJoRTUwa0U4VFFINXNmcFow - djBVZ3RjMWRNMzNnVGQ2SVpnbkZyOUEKLS0tIG1sZTE5ajc2aU82Yi8wT3djTk90 - cFFnNU9ZT05VTVJyVEJIUzNpRjhRc1UKZuDdPv5Ii+1ErBYDGxkaF0U/T9jKRI1X - Ov56TSpl0nlUB89dLPg94bICrL6q/Gv1pFBGx03xe/bHyxaHTEvGoA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTSTR0WStKTmRHMHJiYzhn + d2pjTmVzVVhtZHJncHZWZUVWOU9NTjNoZkJZClQxRVpudnE1bWNUV005TUpCU2Rq + RHhRc1IwMHVsZzhNd1JNeDRRM3VlbU0KLS0tIGQvdUEzUlEyRFl5aHM4V0daR3Bn + M3AvKzRKZ3VzMU5oekRiZjRnUWlwa00KoajoQ1ZSRoUL38OzNEG6TX923corR3NX + QRm1o1Qj4WPwuqY6cFXVnnvrU460qkxDGyrqsl9VpfQMiDSW1mdVUw== -----END AGE ENCRYPTED FILE----- - - recipient: age1azkgwrcwqhc6flj7gturptpl2uvay6pd94cam4t6yuk2n4wlnsqsj38hca - enc: | + recipient: age16znyzvquuy8467gg27mdwdt8k6kcu3fjrvfm6gnl4nmqp8tuvqaspqgcet + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLVWNnMjlsUFZNa1AvVXFu - OXZQQkozYWxkZ0wxSUxZZlM2WGtuYU05b0dFClloZkxTWld4cEI3TWhaTEpCdkJJ - T0VLTkpsRnluejg0YWNzTGMzUUtRTFkKLS0tIHZ0U1lDRUxpYkdXaEl3OXBmVDZ2 - SmxybFFncFpjL3FuZ2dFaWM4dnFOWkEK+EqXlNZkn+oe4YecCwqJ8fLvXSo81A7/ - hBRU6LQGrSwf7lWW1qXNi/wtlNJMKE0nWFsJozrPFwoEjjysFDZy3Q== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBZ2NvN3dOb1FCUlhKcFg5 + OUhGV2x2TCtuVkY5VWZMbHNFTW1wU2pSdWlVCndYczJRanhPZVhONWxLRkREdzJP + UnlZQklhejJrVkRudzh3YXpqZXpVV0EKLS0tIFUxWWducE9zcFlLWEdDQ2orbXQv + NDlCZmFsbFlYZ2VockpvdVlIU1BmRTAK8BQSeOPpe/CD37W8l9zc7oZikpDV1jE8 + cU9m1jnN2qE0FnZTRLITQhPJhYSj/GIGmCq1HTsPNA7K1AyJsg5vCA== -----END AGE ENCRYPTED FILE----- - - recipient: age17x20h3m6wgfhereusc224u95ac8aj68fzlkkj5ptvs9c5vlz3usqdu7crq - enc: | + recipient: age1azkgwrcwqhc6flj7gturptpl2uvay6pd94cam4t6yuk2n4wlnsqsj38hca + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDejRnM05CR0ZHbUMya2ps - OFlBRnBueTdBc3k5VFhpelg3ems5NHZ3NjN3Cm9sRVJXQnZjdWJVNHdLSzFlZGly - VDNTUCtlV3dEK2lSRFhkNmQyUGpCcjgKLS0tIGdSd3dUb3B5Y1ZDSG9PODhNWGsw - RVJ3SW54T1VpNUlhUnhnamFRalpnTE0KL2JiKsiWp+06NN3paFVt5ZDfZBDP8i9u - 2vwztiFt8WdDKqJtaz2HxPutj+LtQIOOmZWatKTQRS8ALNtLZOeZgw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmQ0xLQjZLdnd6TmlZNW1N + SWJOU1RabDJ1TGZNNjM4UnhlVDdEWkNwZW5nCmV5WWFUM01YSTRRaU8zOUlRZFpz + Ritjb09LemZNcjUyRnQ0c2FGTUpWajgKLS0tIGFvWTU4NDRMbzgrRTVGaGExV3Jr + c0Q2NlhqYyt2Sy9vVHNVZTRIZzVSZFEKBagWqZgGM7L/4OvX7k0Mb16uDdxOneXU + V4IkEFxmVGavpUNWir77VnIX7WUThAmF4B2fhXB+qs0qlea4JbG7Tw== -----END AGE ENCRYPTED FILE----- - - recipient: age1wnympe3x8ce8hk87cymmt6wvccs4aes5rhhs44hq0s529v5z4g5sfyphwx - enc: | + recipient: age17x20h3m6wgfhereusc224u95ac8aj68fzlkkj5ptvs9c5vlz3usqdu7crq + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEQ2Fld2ZjcjhoUVNmalpo - eFNZbFM2UzcrdHZTV011Ni9YeXhzUlRrcHhvCjV0cVMwenhOeDZweGo3YmsrcGRl - U3pBYjUvSTliT3JiK3dKWDdzYzlJUTQKLS0tIE1hb0RPbWoycjhTYjE3K01HdWY4 - cDBTVlVOZGFTWUkxM2pIWkhrK3ZWZmsKEk9Q/lXxWEkDt+xJyhmrnkqh8tarYY2D - UyJQofhowqP1gKLHlH0OVK2SGOXK1A762+aXDsSAb3cGvxQ+p06qkA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvSFJmaDUxT0Z1amN2SGR6 + dHhPUFVCdTk2cVlUYlp2KzgxZEY4dk1sN0dRCnAzWURSUkdia1c4aTZlWUFzUENC + aG9nUEVlaGdHdU9MU0VJMVF5ZTBSL0kKLS0tIEE4ZEZmMVhqZWdQNnBzNVRJNTlF + cDhJaStiRzlOOFQwc2h6QkRrUGQrTlEKHTekoVeaGKeZL9k7FKroHReRuQwBeHnG + Qjbib+9Qk17xd11q/33Lb1srn3FnaaLCoQhl+YufI67jdfluqVl5UQ== -----END AGE ENCRYPTED FILE----- - - recipient: age172pk7lyc6p4ewy0f2h6pau5d5sz6z8cq66hm4u4tpzx3an496a2sljx7x5 - enc: | + recipient: age1wnympe3x8ce8hk87cymmt6wvccs4aes5rhhs44hq0s529v5z4g5sfyphwx + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuUTlRU3V3U1VmKy9hOEhr - SVlObkVjaERRcStDd0Jtd0tXbUhuVWx5em5BCmh0aVkwYlZ4OWRGMjVwV0M1RGhk - dFhqOVFadG53dnNvemc0UmpXQlRDZ1EKLS0tIDQ4TE5SU29zeXdUYVR3VzdicVRY - NTI0SnBYZGlRLzAwc0p1dExXVFdmVnMKEFkjz2qpMXRqwmZ4YCxs8iwZpHk/CSit - G4+EjH9oMEFBYqPkgdsYw2stIs7yPncKtKHPIHD93OlXCqKoqNWGag== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUclY4MDRZTjNDSTRLd3hn + Tmo0ZThiZkVuWSsxTTB1c1hyWXovV0kybmo4CjB4Vjd5R0NoNjd3RHhyb1NJaWpH + cHVQYm1SL2ZPLythS3drUkFBcHVmQ2cKLS0tIFhrdFRMOHZ1L3hWRmswZzNLOUQv + NDFxMjJBZzFtRFRZSm5QeER4eUdVcGcK5sYxXaa0VJrbPDlns9AT3qOlI+DrRtza + b9bWBYrN2nFMNud4vZHyTdHXp/VZj/x5Ezo29ZHI+QDXOG+CopIL+g== -----END AGE ENCRYPTED FILE----- - - recipient: age1p7pxgq5kwcpdkhkh3qq4pvnltrdk4gwf60hdhv8ka0mdxmgnjepqyleyen - enc: | + recipient: age172pk7lyc6p4ewy0f2h6pau5d5sz6z8cq66hm4u4tpzx3an496a2sljx7x5 + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSTWY5eWkzS1FSNHlWL05l - SU00eUl6K1VYcDJoSFR0UEsyU1pHcE95K1FJCmEvdEVUb2xJdTRZTUY1bHI2YmRp - RUtrSGJsUFpRazZHVzdhQlZxbmxKMnMKLS0tIHhxVzFvVktXZ1lhazRyRXNLM1RQ - NmNLRnRDdkJiT3lXL2s2L0tNbTJLdUEKz1y8nEdzEmbqb8V9RoZWrKuLbz/as/4a - 8z/+fyoRWhuugN3bP1XIw7tyg7abW4/fMQaJi5iEcguKbDnfZ5G5uw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZejZjbVBuTXN3TG9SWGZ5 + cmdYZE0wbkpTVFAzd2dFQnRmb3krMHcwdEVjCktoMURmYkxMbk9iRFVTSnVMc3hl + QzVQK0lzdEdML0lkYXdqLzVOY1cxUEUKLS0tIFlWSDNTcWlJdVFsMHVYZnRZU2pP + a3YxQUhZcGE2UEpwWWRzVTVmWmVHbUkKZyuOLv3ri9WPN3gwuTesRr01plmgN+8k + fdfgPALn/peSFeuG+2mDBZfqaYphZvMq+l6USkbenkzyMh7o4pUNfQ== -----END AGE ENCRYPTED FILE----- - - recipient: age1sv7uhpnk9d3u3je9zzvlux0kd83f627aclpamnz2h3ksg599838qjgrvqs - enc: | + recipient: age1p7pxgq5kwcpdkhkh3qq4pvnltrdk4gwf60hdhv8ka0mdxmgnjepqyleyen + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhdExDdGlMczA3cG1RQ2dj - cmlycUtFay9GSXZTY1ViR1lRMnZEenNXZEc4CkdhSUJRd3VmUzFGYXJJNStCMFFi - MGgrWkZOQUFqYURsUEVtblVnS0lHM3cKLS0tIE1YRjFuWU8yeWlJOHJJNDdBaDZP - VnpYR0RhS3ZLS2xlN21mNEdWQUxENE0KA/4UnoYY7p/6/KyK/OF0xkK/RNTtvb1A - uw+8pfLPlY4OKcq+yhCQEkIJOUzNvtoHWcvQf7HIzq/3pXc4b7zIkQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPQ2lIMDVIbkZJNEhvanNy + T2pLNjk2dXA2VmpNc29PTVFEcE9DbC9saUI0CkVJanlBMmpHN1ZtL1BnTUVPUnZI + U1VUcGpyUWtQZ2FJK3JxeEsxL2J3UjQKLS0tIEdxUmZrdXpDK1o0VjN3YXlqdGpH + QW10WnJrd2d0WlBlK2JIbWZqNXZVYWsKg/a9TdHoCkmkcnZnyvXc+sCxZsQVpJnh + R9r+2qmmQZDtdlnpPcemQhoAHDLdU4AkQgKNThX5IY74v2LhJgrPAg== -----END AGE ENCRYPTED FILE----- - - recipient: age1dkecypmfuj0tcm2cz8vnvq5drpu2ddhgnfkzxvscs7m4e79gpseqyhr9pg - enc: | + recipient: age1sv7uhpnk9d3u3je9zzvlux0kd83f627aclpamnz2h3ksg599838qjgrvqs + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxZHZwK0wrdGpGMnJtSWVW - ckthVU5xa0syeU1EYWpGUnExSEdVNUQwTndFCk5hSkdDQVQ4ZU9ORXVUbWN5OEtX - Z1Bod3UwTGp6T01GN0JYY3NpUGRZUlkKLS0tIFBCOGFnbWRaZXVieDNYWFUzOHYr - L2J2UFZlUG1EK2E0MktDbGlOS1VmY28KA/Edhl661RwszbY6wdttE/5e91IYM2Z+ - NHPgNq9ePb0DqAtNozYk8lA9D4Y20cx+7gTPzSwYKVW1iITarI50NA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvRUlzMmFDN0lNbXNIOHBD + Y2syV3FheTVVZ08yUFkzenY0dytMckFrT3pnCjRiZkErOGtYdVZUbEpBdm84RklC + OEgycEMyZjgyRVhmMEtoc1hOVnIxMkkKLS0tIG9ZR29BaEcxTUpvM1g0KzF2N0tp + cndqYi9aakczMWV0R3RIbmZMMjdBRHcKh9bEatt+Of89OK2v5zigcLTrLg2Od4fb + Wb8DR3ek8ysfcHCDIfAce/bBRX4nKbhZGB/2XYv7qJ/XVCaYWprKJA== -----END AGE ENCRYPTED FILE----- - - recipient: age1mdtnk78aeqnwqadjqje5pfha04wu92d3ecchyqajjmy434kwq98qksq2wa - enc: | + recipient: age1dkecypmfuj0tcm2cz8vnvq5drpu2ddhgnfkzxvscs7m4e79gpseqyhr9pg + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzOS9kOVlMR2lXVDFWcUYv - cWtTZFdMMHdoQzdUbEZmRXlITHRrVFFKVlJRCjl1eEJmSUs5ejBYdGl1Y3Z1ZkNL - Ymc2Q2VVclRKdzRiQStBZGozRmlDM1UKLS0tIDRhTUN5aVhYTG9IZWdPY3hVQitq - ZHFGVzhBbVZwV2F0VkJzazIzRCs2TzQKK+j4kdCrNBQpEMIl/qBdrVem2880XnMd - /gHCkOmjcCJwbawN7ddB/+nxNp59M2MwednrXt+O5clTuAseUoa16Q== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGOHdwUWhHODJHeThNTzdp + OTZ2b0ZxZlVIbHRNUExXS2lnaldrVTFMT21ZCnJiTk5UVlF1dFJndE5qL3FUZkUy + UzdIQlJuNlFNSThTYjRIN1V4QUtEbTgKLS0tIC9rejBHRmJqelNrcFFpb3M3OXBw + L3RmNVdERmdtaUlOQTBZbFFHWU1BY0kKyurS+2zWqwi9RpG7N+0Wpc+ubFpLprin + 59q4E5PXsUDZ91R1MqbHbf8yjb8/I3vLn6QjUK4KPE/9CQCp2pNw1Q== -----END AGE ENCRYPTED FILE----- - - recipient: age16pxqxdj25xz6w200sf8duc62vyk0xkhzc7y63nyhg29sm077vp8qy4sywv - enc: | + recipient: age1mdtnk78aeqnwqadjqje5pfha04wu92d3ecchyqajjmy434kwq98qksq2wa + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxbWgwQmZEcmw3emVJN294 - cERib0xuc3Y5UWJiRElRUnhjS3JScHc4aEU0Cm0zaDlzOU5sL0J0MGE3Ujg1T3ZS - cXljVFFVZDhxWEdkUjdndmNlNkxrQTAKLS0tIENwbDlKTVRLSVJ2elZCbnhtY0RH - Vkdhb1Vld2NvWlpNTFNyRFRQRFhsVlUKRihJgoaFsgfByXfoWA728AT+E9bQu1ju - tYpn7wL00VA/xwLyb7WVcrIJY2Q946UTUE4b9Isx6rv3NDKeWYUEPw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4MXFHc2VtMzdFbXUzd0NO + SlIxQ3FsSjZMT3UwMjkwN3JBVURPNHdxSnhRCmxINTF5N1dzL2V3c2dSemxpWkto + ZmE1a0MzWEFwb0REdzBJQ2Q5NkRyaW8KLS0tIDBGOU80aFExd0lHS014OUlJMldF + Y0I2RUhOVFNDMVRiRE9kTU9xUklBZG8KuNx5K+rdNXkfhRgn66VGLc2yfC9YuwhB + N1XaxkKu71rJ5ZsuCoFtzqSMyh4MManh9CXIwlMNAok7VfU1qtmtBw== -----END AGE ENCRYPTED FILE----- - - recipient: age1hv7m3xypesdfm0dfzwgctde8v307g9xaunnfu2687y0lagcs5q7s3eg0kj - enc: | + recipient: age16pxqxdj25xz6w200sf8duc62vyk0xkhzc7y63nyhg29sm077vp8qy4sywv + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpaFFlQWpoaUJFVEIvb3Vw - SzZyWmlMcU1RMXFnMmNHenJNTDJnN3dYbVhZCmNFRC9oRE1ENHZWc2ZYeUFMOEEr - ZjBUbjlaNlVvMkdaUkwwUmlWd3luQVEKLS0tIElEQnltd01ZU3YwNlFjc3RBcUNz - TVFtc2czRFdoMDhyVkgvVXduQTNHNU0Kiuni5O8zpUHcxSD/ifv26sgGa0CcztsT - jp/zmougfaFAy7UOLnkaCEu7gruoesZY3fxPhiCyy+jSCLe9mzxSbQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnRElTWUV1RXd1bGxSZzI4 + b0l6aUsxa1EyTW0vTmtyOGlRazE3alZXaFFNCjhQNUo5Y3R3ZHVPbnVrUEpKN1g2 + MVRzVXpwWjd5Y1R1VENLVUtlNnAvWWcKLS0tIHRualVOd0g4cE40UEpseDFEeW9I + aGdBRW1TazZZVlE0cXlZSzNrTTQyZ0kKZdUpkVXkeAkHkIv7W4/ZQVU+uS2th92P + e78iITFOJlrw2L3ZiAh5asnv3ee1ZH62eKLJVnCrEprmR+hhlUVhmQ== -----END AGE ENCRYPTED FILE----- - - recipient: age1522f3qzddm82w63j7ajdkr0khvced6ht7tzp3grvp0j3hewtvesssr5kpf - enc: | + recipient: age1hv7m3xypesdfm0dfzwgctde8v307g9xaunnfu2687y0lagcs5q7s3eg0kj + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvNFVuV04rTnpXRGthQjRY - ZmZ1Y0JQUG45dDhoYUVOeGF0YTJmamliT1FvCnFPS2NXbFliejg4Q3JpVmY5c2xm - U09HZ0I1dk10RGh4Ull0dTc4OEFGVHcKLS0tIDdSOGhySVQvUHlLNllnakc4RmhR - N3VKRzRvNW1WeVBhN0ZtUXF2UzZHVlkKl9roQWqZWohR8MnoMCXWNggWJZBHfZJp - 29pKxeqp4KV0c4oQMgFYcckrw13ynMQ1O9cgYVMPl/qtViun9jr6XA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1TmlwblRNS3ZiaWQ5anVj + UFBVYlcyL2I1Z3VZckRxV3h0WWxPa3VtMWkwClJ6aXJnQnNQeEtPZFdKYkM1THpH + V2h5S0tXenZMZWUydVlld3hhS2cvQlEKLS0tIHZMbjVJVXF5bE80SU5JbEF1K2I4 + Y1F2NWdia3MyeTVNZFhNWkZlSS9aSXcK9bCrSomL8gY54AgeT6mUr4vZ8VCt8S9K + yEMGDls04Ab6a5U4PAM2ytzyqilJ6agE7t5Tfpz1PvdL5lTTQrx5hQ== -----END AGE ENCRYPTED FILE----- - - recipient: age18zgt4y2sd75hxnpe333zz39048ctxpr0q8a3uqh3jajjkyawsdrq8yg5ve - enc: | + recipient: age1522f3qzddm82w63j7ajdkr0khvced6ht7tzp3grvp0j3hewtvesssr5kpf + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4c2VyQmxSWW1aMnRwMFpk - bEluV3IxWVloZjNiQ1hubGhldENWZG5kOFRnCjFZMUFGRWFiODBDaFNGK2pCRlJB - QzJCdisrd1IyY3B1dDFOWW9QeW5ReTAKLS0tIEFJODdCKyt1NERlbk1NNjUxWWU3 - NXNkQTZ4Tk4zanlRdHJJc2tJWmdNMzAKzifmbegg6BO7RBg+BEbdq+wqWHRIa9JT - RHUWaCkaX/uKndvNzjrDITLClAw6lycFFFWkCzFidT6nzz2omfJkPQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6ZHQ2R0Q0UWhwbFdNOUFh + S2xPRUJ6ZkpoVy9ucTlHb0JUTGZ0a1dXSTNvCjZFZ2RLUEdUWTV3QUtZY3YwVjhj + bmpib0VoMEhVZ0Jrb2k2WmQ0SGtDb2sKLS0tIGxYclJ5cVBic01oRGkwbGpkUW0x + T05lT1M4RlN3Y3AvUURyTEwxUDRkUkkKLJ76ju/Mqpc0MS4J5hk+hEOONA6ignmt + nh34vnEKBg20p6CfsrmJf3yAnXuEeWsERm5k5KsGzbxzWV7I++mGlg== -----END AGE ENCRYPTED FILE----- - - recipient: age1az0k6cadssk6r8qcqxfr8cyu5mndy59pwt8yqq6w065ew6au4ezsmg2vkf - enc: | + recipient: age18zgt4y2sd75hxnpe333zz39048ctxpr0q8a3uqh3jajjkyawsdrq8yg5ve + - enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxa3NmdnoyRXdkQUNBT2xv - ZmRkZk1kcFdoRER0ZG1NelN1TmpmWXlPWlEwCnQvSWtuY0NiT3dkN1g3SzhhTmVm - Wkd0KzJlcDh4aEtFMUhCaUJ4dlJYV0kKLS0tIFVnNzJXQVh5U3d1b2c0VVVkV0JC - SURxZWNTNDcxcEd0aHA4R0VRYjZhak0KNsB6lsd6OK9lCdzHJqih9uZ5xExf6z4J - IqH/PN+F84tTh29QxvZRd07qQwVBiXdwDcQjBzUM4S+a2c+TVxf/qw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMOU9YVVZIZDRHejd4aHpO + azZyOE10bmFJT2dNTWxYSFkybE9NS2pkYlNNCkl2ekczYW40TVhjNXBGOUdlQTRT + aTlaeWcxMlBPS0h0NXNiWDlJQXZMR1kKLS0tIDZBb2pUb0J2MnA2SlFsNTJYdjA5 + a1BwNHRma001NFd4YzJ4OUFteFlvM0UK0tVTZmK1h6yC+aVwg6Pr/y6uaB12wj8B + oJx+p9Ty9NTSM5THBNt6paR+xHzCP1kRYNulV4PABq0IsGSpxFk+wQ== -----END AGE ENCRYPTED FILE----- + recipient: age1az0k6cadssk6r8qcqxfr8cyu5mndy59pwt8yqq6w065ew6au4ezsmg2vkf + - enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IG1sa2VtNzY4eDI1NTE5IDNXK2UrZlFH + a2tGRTMzdXJKWXhOeFo4QWdwV1A1Z1hnMHJ4VTlPMlN5Si9IS2JQQkxHeGFOdVB5 + Y1pwOG8wK0V6OGZjcmRNalFJaGczbGozV2djZGw2Z2hkN21WeTlPSEpFUkl3RXJU + OXloNktubldBa0g0ckptSzVBTmg5OW95cGlGOGlBTG92YldDV3Q1T3RhN0RudXN2 + UzFUZjhtaFlGSWtLd3ZPL2NKeUNYMWNYcDBRQWtSbE9FTnUwaFRIQnRSVmczT3Yx + alNOWU5UQXVWNGtTaFZxbE95dTFOOC9mMFhwUTJ1N0FSR252VHhrNGRYRjlXMWxT + RUsraWhXK0lhdHo1bzZDRy9mellza1RRNUtyYVkwT2doUWhBeEpvTDdKZS9WWHNs + U2QyN1RaWitoUDJkY2d4SysvOEhGR3NnY3A1OXhVR1NhdUJLdWJ3bGkvdnNPZERV + OEdjbW5FNEpSOEJRTWFtem4zU2x2bGp2V3lOUStIMU9ick1zZEQ4V0N1QUM2UHB0 + TzVGZ1pKZHM4c01FblM3N1pnV2NENmltVVNISEI1bzZTRE9LUW9oQk5qMkJ4Z2Vt + NmZHWWREKyt0a3NJSXo3VFBiQWJWSXQvY0F5bCt5aktGTTJTc1R1eEpCSjRwRDhS + U0hpQ3BOT3g5NXFMSVZsQWphN0IwSjJkOVhHbHlhMHdzSFcxQW0wQUJEbWlZYlNk + di9HVlYzUVZDMmNzSnRLOUk3OC94Yk5GK0lESGduRDZRc2JabHk5ZFd5cDZrL3FC + eFBSQWU5NE9uR05IeDNrQkJOMW4zUjlyaWdPYXlqMitpNGJ5YzNZK0NISGx2Vmxi + VXNOc0JSMUxuSUVVR1NBTE9kZ2NvUEloTW5Mem82T0NPVHFVU0Qzci8zWDdaWkEz + bG5zdnZZNUNITXM2K1gyektYdTkxZHhXU2tmd2tLVTN1NUt2WGR5aDh0Z2U0dVhU + Ynh6VUNuemx0ejMycnRIWVZxdzBzc0krV1RyMjlveUpGdnZQb1RSbVdBY3R6ZkM3 + RUFXNFVYR0pScU5NRjNIUTFkeDZFKzhtTFlNdVpzZDBSeHRuaDlWNHYybW5qV2J1 + bm1Zd0tPZGxRRXRTVjZrN3FLZDlJL3B3Tk5iT1pUbmg3SU5xSEdqeWNRZmQxS09s + MTNhZVBZSmoweCtkVEhEQzlnVlFtWk9xVHMwWngwck1xWU9hL2d4V1VvK0l4RURQ + QnpzWUhnZjFOa1JvZWJFVklJd0dma0diYzBmVk9YZlZURmo0U3MvRVJOek1iTzh4 + SVN0UkdQYkx3YWZMdnVibklHRW5RdGhIK3RqZHBLZ3drWEdaNDg0cmVhdkhocCtX + aGVQQVlFOGdkdHhXZkZ0YkZYaWFXR2hkK3M4dy9GOUZSQmhDVk5RUmpTSStRTWxt + aTNsNXJyL3g1ZjhzLy9RdkwzdER5YmFSWnFDV0ZDZCtTV2V6RktXNHRtbWVPc2ha + SzdSRGNVRWJTTG5KVm5LZHRzRFdrMGwyRWk4d0hpN1RoNFRFUnM5ZnN6Z040dXNT + ZkdqQUR0MGRMUlV3cmxmUTJxRTZVVXF0YWtOUThibEhLM2FVcXJqeUNDOUtVY3M5 + ajNJQ1paRzhvM01tZElqcjFsQnFtQkJTaDFIMFA2MVZQNjBYZnpWN0FJMkZRcXVr + WW1uQUJtUTNDcVo5Mm9kYmxSUGJqd0thdGV3ZVlxMS9SNVg2eGhMRm1UaGlWekRu + bFJkaGNFbytPb2REZ3JUWlp4NjhxbU4wTzlTOHN2TzV1blJCMTNTNnFuWThqdXds + K094Q3M3UGE5MVZyUVYvZDNrZ3Jmbm4wNkJMS3JqR1lKSWpCZ2IvUk9ZRWFmc0Z0 + b2xVcm5ZK2NtbmVscUxOM3laZnBUYlRLSnR5L1g4RW1zMWxYQmFjZm13YloxNjM4 + bXV4ZllJdG16UDR3bTY4UWVJeVZOSjArU2pGS2J5elRJVXNCdm95bTFsenNLQQoz + MFlJelE3N2gyS2JPZXNpOGFTMWpiZWRvSWhsMUJxSXh3VytBZElQaTZnCi0tLSBN + cnNUVHIrZWd5THhhaFpQZmRQVUpEMytJOTFHeG5La1lBc3Fpb01XNE5zCsXR7ibA + urENnyvOwCOgW9OosPDqhjsC1wElMtNf9W/Th+20h8S2ApNTMbINUbc/7KPZpIKT + KQKilX08+r7RAw4= + -----END AGE ENCRYPTED FILE----- + recipient: age1pq1jqrcp3te50xugmv5wst3s9ahj0d38rfktxt43wlcqz7vnwyn3y2h7kyfr6rckrvmuk9m7yvp4efjnfsuxx6d8r9gn222r2eal5593arywrjwrgeypf745wyuvf3z2xk9tm5fgnwckftuvdggk66fph59rw69nt5dpjeewuww4vzt9gs4xelre952s7zjz56qv8tvesg2c89sp8rmy9dvhwfd6tucjhs6sjr6yp2njjra2u6w7c7f0sch3rwkw3wf2dc9su9aaa9q2f22sh5yf0fqejxa2qqpq4pg752589st5xsa5g8tpkjglj4tn35gd4hjj0xet9cjwhydmkmmkffy3nr8zdtctqu6pqsyf7aphvktryez39ru3qe7m6nvr465ffxr0ltvr85nddzxvcwpwpac64nu5tdfrxgjfqzc99vr3zxv8carpsw5evmruqlvrq6v6a4m2cwsz5gqw7nyk3jlj75kp5cnafzjn5dyrf8ppfhp5g5s34zsl7pejmmx2uuudjt7ru2y7as9mtagykrgqgt80fvp3eeh4gsmmd3ujgtp0ranq28aq9x0xdekqh49pfhhprjj6zqdfac5gxtjj736kh5jktc4ls4mjs3p33rzt6ze54uqsfept3qhua2pmugypup6hm6j2ek5sgxjnwvqyfj2l8vz4yfgkaxf699v7jqlwf7g68ang5kzqrjsu78lyardm4zen8zhrr24j334qdgs4zr8dhsfsnmvx9cdvu0swx27tcz8txs46zds9kekgmua7w7fnw3l2lf6zla956ssycac4zjy87rawr4thusxtcqgfzfzh2za9np0s34e5dwkp2l2k06cq09myxqfe7ze6a53d8sl5j43qcekh6kfvl9k0t7903q99pc35630zwm3hwxgnw354du5gngnz56skq9zx3pcnkr5eyh8r8t0dqudmvrrwmxreu6tgrklxw7yvu3zkjgt3gyjhc8kqcrevlukay45sz4k9zqxx9yrs88hzt4h52r2g74alf3cedes3atufy06q4lfq3nxdlnve0kqcwstzr6z6u7fqpqvacezdrr62ycteju6dqawkpthu0drtlxj547htfjcsnrmhgvhskwtuhk6yp7wp30p7qc5vkk8fegg6qx5kc9xs4trx7hj9xgydu7vd30hkceuxsczywjs9v2fl3svkwfypg62882yq6ltv7gfj4ajuy8ezd76g0z7juwspe7q6zs5ceshd6038tvvh2nlpjty6rg6a9qfzhgmjx9s6hynyk7xnq9zra6hxstg8p58x75hapd2mk6rapfunlnnkz5dsxjf4ud4dsvgjfjpzxcdy7sp8dzxtengrsdyu4824mqlw8p63d7m2z4mcyme4tm2qkugtdgrkyphe7akk2geukf6xkfkzd2pkdq5s3qm9fkvfkgrv6yw5kdgjak8xcgesg6tumans4fs8yrxtqlvv2z3emdvwchrjfq4xpzsj27yt4gdg8pknwz9tqpjkjxq6lysutrvwkvt2fwyj8wvv8wtmdl6fk6rsd9kq9a6wkhuq7vvrgwgj3xg2s229sprj4g2vzhy2dfesrp403gs64jqkrjuezwm4zd6uw2x4e2qkj8xqcf7c0zprdzu959x23u878vqqetgpjwt0z3kedt8l6dgpm0rf5dmrya5h3wgzfa0jjvgjphyxgxrwlrzpv4czgal933zs64tn90ks66ejjdaw4t67sch8r3q0kljeqnpdgmw0cpj6arc6k46wcqaccygczy76zt9362vslakvzqqv33tv3sjldp6qxprharmpm9uykgpx66343wuur5xj2aw0rgutpm4ztjzycn3a8d2jq2zpdzwmevezm7mkp9dmndkc3qz0kklgkxq9yehrk5ayfly97umhws0jll8qqg0r7gzxgw5vv76 lastmodified: "2026-01-25T18:06:26Z" mac: ENC[AES256_GCM,data:plHNLOgGWwNWbakKG6X5EOxwERE3rvYO4EOAzY/sz+uM7cZBEnqU5LZwjlD8B75hgRHqpnDBF0JbHgsEwVxfJJRL1phkeMJFOapQMjZVWMz6j7eb1hOwpdktd+bpuimy4XCD1aOxOoInKpFSK33usxLfyqSxjFDM5+i6D22qBTs=,iv:/iOIfNuSIDsa/UKLP0d63tpOrYMFO3Bk1qPssY0AzuI=,tag:k+824MXD+r0lNUcuvisudw==,type:str] pgp: - - created_at: "2026-05-20T02:10:23Z" + - created_at: "2026-07-07T22:14:48Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAxK/JaB2/SdtARAArIbXCPqNo+EajbWjsgzQAt4jtyUSh7zOy1URyt5XPEUj - zJUFkS8SUfL372esuA/KjiRhE0Ztq2T+zHF8sBT5E3GCTEiLnKvGNGik2w2OX5MG - CDmKZosfuhByOFFubsI76fbicb5euGq1QSlBony8fqPtvJ1LpY2GX7Ob58TXii9f - ESLesimUT0T1sxG22w7RFOFPHRgqD7q8Y9gAsJduj9QVIr6bBxehbu80/b00irk4 - SVFM7lkvEWij3LXHYBBx54lwT5vaM2lNzQzBRJDljzD5bJkqFFc5HZAtZXI+g7fP - UmKZQWD74Fi8boYE9VNKW5jtEHAIgWHAVNEZPb02zmNITH2BaWYQFRseYeILdjaE - zdnw087YhK88BHZYjgACY1+yMHaxrlwyj95D2m27zk37JBo5F52L9Lo7uKgF7rtS - sAw+VGqscEwyB0mmTeidcV1talvieHgdbJiCFH/hWcNksa/EZoMclp8HscKOjWjj - bq4qZSH0BPD740CLyIhh6LFLpi2wEdEY4MyMkjP1vM/F7yPondEB5vNjk7x5V1hD - bK/WthCeN2Q34uCBOnnqzFlbrFAmHXQvq8NgzEDvsJmfY1wUrNsdW9wy8fti+g2w - L+s5Eqr6BgvqCIPz7e6xtZwekvP1p8tHyUqPcdXLDfFoBayeMd1/So1mV6nXzs7S - XAG+LzP7X+B2u69GSkJZjgpmwgiOXXQDIlVE60O8bENLeMRbXLpkBwQ0n8XIs6pr - +FX4YxPsf7IWRpMjKNfLN07dSSkjhlVK6+qfyBAuucuikWsmqY6jgiS8daSe - =voHd + hQIMAxK/JaB2/SdtAQ//VbqnkID+k4jUtKcBe3yZ0Wp59g/oqpBjxk/XfVDH8cWf + qUm4lOzoHGvaJXBOtTqaQh1q9oHhKkAdb6gC0+Upo9t1dY1ewPUYlnV/bh1Zqu0Z + 531H7vQL3k5378SnuUmPMZ2oizYd9AF0klGj58blmJAX97df1DHDdUtXXUhl8uVz + BqiMJN3lkC2h2dhgiZyHxMcpFhfcpJ6pkyghVvg7ldnLsvydRIfjQbfqHgLCOq/t + OI0VZoaemOU5n8uESyiFAoQsCNSG8wQVO91MOu9XtUobaBKpi8YS2d3CjIRNALkH + ObSi8OBJ2EDL4xcyBFoRq6QJfi0bTOx1a3RcRpA9gYMz9L3TxWN6F5H6g2oSgyhq + z+jFE42oMMr1afrUyufvIhxfNmweYb15wRtBZMTTTN+GRZUePHet1yCwoYTgcIit + u7bzoNS+BtCbMmfmntXRgB80SlzTT1CofIwXL4gPjBGt0iSwh4nn0rytQSuc8lmY + Wk+JM0Wdgh9v8v6tyiBFOasEkwXuiLevHOnXv3q/tK5mpJsXAT8IMpyTJbuFYxkl + VlpvGyPjweFrbpdZAFuai1kfx+YTsekremyG9gM7ZjMjiOM3Temeu3VwgnmSHmw+ + UyvNk+Hbs8/2b4IW6c6bGLGgz37P77E4njMIZGUCW1IKjAEB978+UDGPMMmNoB3S + XAGM4ogMXRll3TJ0QKwxG88CCUYuJE+TBawBoOZxMLCQWdAiR1rW/HYNWQszvezm + zVx3EYVkci80sY5nobfqDd7w47klBti3+f5yfC1naelCyfPsIquqHMtA+U7e + =i3K9 -----END PGP MESSAGE----- fp: EF643F59E008414882232C78FFA8331EEB7D6B70 - - created_at: "2026-05-20T02:10:23Z" + - created_at: "2026-07-07T22:14:48Z" enc: |- -----BEGIN PGP MESSAGE----- - hQEMA1QflAioE8i3AQf/XZSfNxfryND2BGfBPyJBkNySVUZpRPqWg9hi+7n6oCp0 - FZXUynfrtWLTdFF6A35OsnpdLEVwrQqfuqcrK6OkAYUkV9t50YVw6nAAmETc9faB - BV7RVGJf0OD79LHI/Fl8a+VkkMqG56BoBySQ+2Vb/eh8w0PKbB0oWN4yXBihkXAS - DKjEKf7x4OrTdHKa8GiKxsA9C+P0oo92Ygy98TOXQPb3MSQhWfnCFm+7beXIfInu - EpOtSFM+2X0y70Wz+X2/lw945qm+d+JXjvLpqpE+4U1b8LYuue5ddHzJjYIHK8Br - lQrdanIJw7CAeyKUtq5M63k5CZG2GHMxNGngWUGtm9JcAScF4QdywEzoq2NBf/lF - eP6/u7Kn8MTJ+gFOWxmlT8+VA+rhCp40EccQzbeftNI9ojI2YrYl4Qkb9CzlFXhN - uCtLLlRakB6CQWGaTxxlkN97h55s3A6l1hsF5qc= - =YG2f + hQEMA1QflAioE8i3AQgAuNNo/As0/3bo7DU8/LliUdKkI+58Z2bxREFqdogWnTxg + 913DRwLpd15NsLx1zaSf8eqYnGeHkpDFEFThstxMNpKXPwa0qex5tiv33Wvf1gkU + hH0Volh2HhauWAoBw2vdOqZo0+P1TtVR1i8uTXtCg7SnjdF2Ftg7JWpmL8DkNtl9 + s7DAAG/aPo3h2wGGDCzgWkQHnfR+lC645DZOJ2Dgrmcl6EOC8u5TlrpK4KsU9ivg + J1zQxvm9znExcZHwwOZOnFWRUWBGmBkE4fLKsTsVko3KWmx6mQatVF/wsUW1bFIg + Z2+EkuBPmsvRBhhT7JQGVWkp4NX0RBlDlaBjRGS5B9JcAe0NXVGCq9+ObHZ7ybIO + ZlMvZHikbwhj8HWpK6jC9cIe5CiPdEhLMbesH1Cc8nffXW2HUeMAU/0/AnkzHSEE + ipd39CzvlT7HQHtrTizdydox13MUYFfUZfFvlRY= + =jnhj -----END PGP MESSAGE----- fp: 21C9579E6503CA815A68ABD8541F9408A813C8B7 - - created_at: "2026-05-20T02:10:23Z" + - created_at: "2026-07-07T22:14:48Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAz5uSgHG2iMJARAAyLt6nBeCDKG9P76zUoweIw+m0aXbN1XFSIPbaq+ymq3n - /DDhqswh0xF2Ng4mD8uYrFI7CdEyVH2KCJAsa4QRKadryBxNtZqPOsHz5JcVgnlJ - yKnIYWbG7UZKfjAJy6TlpQR79hj7EvCNVQ7i4OYiOSJHxrqrRmAenyP0h6KfjIWA - Csx3y1O4SiE0llGYUO7K6t8p8mvx7nek2rXcL4KMo+4mKWSPaYP6XkBYteRTjfA8 - 07iU1TOmO5Fh5KgtWYkyAcQco71aefG6ub/NjJ9UYpSq6Q/I14DVpC5IrcgxbcRQ - SXAaK8L0iQPQ3mN4lxKokD5FKmr1et51GjRfvmiLCxY9rooB2/Xc2oiCHP8cB4xq - kxxoRUYRItBYzYbXqIYPJ0m8T5o6QQePbj1zfFLfpW33ZFdsRVyOdl5WSis5Y0Su - zA4A75KPlB6lK4qBa3tbWC9lOa35uAEk0NNOV2HNA7BAv5H5AQkoItaYMqElaoVG - PUrhuR7/eC5kRXoqothzv2H5BVGDqgqqj3ctv45hqrR3CylK5M5c8cS1Orfp9NGl - 8WWv55c7bWMW7dj4TOms+O58MwrOBla7C65U2krbsjm0piFoaEyRVgrypV/zR8tX - LIk1jJpNcLkMgVE+8593RlRlpCKbnk2qfqd4AuoDWdLh8Qq9H8lB4s2F4v8g6FbS - XAFw18E38CdoNdj/bjcM7uCOTGAfR+p24k7c4LPP6AcC/FV0QinPGwDiwEdd5a9N - rXyvsFxfSzrF+CJ+B2vefasL7SxDCVkM44dY2BUxOmYxNRmH5g2R73sLKJ7P - =wIGB + hQIMAz5uSgHG2iMJAQ//V5uDlJxHej0+edePUQwy0WK4UOtV5Q4xp/fRrW8y2SKJ + jHAYe2S/W8qcTtvjAz1Vpf7lXAO8Bfu8IjaBuctvs+xZoK9fYi1BUsvPjrguR77g + yVN8rUGwsWFJDP1Yi5wS7vNqcS81YcUc0/4ALQuSgr5DRYusMJs8tZClqcJB+IOl + vrvI1+0H/1E35VW1El1+auWf2wBDfTCdWjCBStW9eGaQ6ooNuqI1ki+p02dEiCHy + WtSFoZVLgEe6BIhseWScfEnfOSO5xgfvG8gsq/sPY81uBDvnZYp3cg7ZaIr7jfcm + k1qh42nEt+I3fKQmXu+WFD79MYVxd9SqR1s5f+Z071KLjcPVXnbhVP/d/2te4rWu + 9CJyxO0FvIwd+ijqd13T4H3e8zOjaP9oSXwAfsyuOFcHtZCgFdUkiDyQ6/WlRlxx + FyefuDqagwBl7tXEjsoYT1ZZKB/fd/rdJiEaCYsfcVgxyZXxiQBVcNTW69UgG8gv + /4ADaNILKRp6PzUcyPd9t4OIV90lyPZbpXOw0LUKbBakpp0ge1KagjhAY3YHblPo + ubtyEDmOhgRRc4pdAg0PXRmYmgPqAGr71qlVN6JttXOF/QnhEt/43tXsQIU3X9lN + h7aw9s2jrtlzikYZd9UBq0eZjDcO6p9HjyQJB8bSlZfQTnfER0OxYgRmcJb2L9fS + XAFGBLxy6n0C4EP32T/lLqOCkfQ3RKi1PcI4KozgtCLSXcbCuIDLl9s/xHG3LyOW + 6uGRG3LsAmFrBVbf6fQh0O4EERjBM1DBdxpuECPGJxqjsmCWXH0kckjx5U9r + =ZjWJ -----END PGP MESSAGE----- fp: 18DFCE01456DAB52EA38A6584EDC64F35FA1D6A5 - - created_at: "2026-05-20T02:10:23Z" + - created_at: "2026-07-07T22:14:48Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DsZXvxFXTXoQSAQdAFCMxmEEeH1EbTjXUOYwa3eR8KnSPneB9kueCkfQrnyAw - 4gq47KXBaGPHp0Z8NYWmSFBeaYjCkwo2Ofb+j5/Va36ky+AnSysGIwcUrWMaVa9C - 0lwByKgj1RSU/BsybtP3tyPw1YRqadlp+nR/5agxBYhK7BC/jbhSN8rlkpfycuH5 - 39oQYmE/jRSAIgAfsj77Tfb2WRBAdv/F5u86fO/bgHd+MgPqPU4hCCJi5Q+iPQ== - =dW1/ + hF4DsZXvxFXTXoQSAQdAHGNsY5+ISnGYSlHmBXBqayFgTl7ILhbTdVrCynRsDjQw + UcVUj1P6ZjgfgxS44x4e2blQQTgEIfrmB/8W28d/i60ebMIQEuQC4iiyX8ioDaCs + 0lwBbis/tlst+O2gS5tWCJ97fuAbIF8zrbBUmkxR5C/ojgfrcCa4e4Zqz252bInw + rxxZrSP8Mw+RDqI7baKLKrRDoaRZRFvN6Uj3aHR+yj6ZDdidjU5e5Rnff09uOg== + =Mf4l -----END PGP MESSAGE----- fp: 9633412309CCB83BFA39BA5F2FEF746201D7FCFE - - created_at: "2026-05-20T02:10:23Z" + - created_at: "2026-07-07T22:14:48Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DerEtaFuTeewSAQdAYdMU1XTUDpkZslHRIczB801Wxg4+i6AMXuV8ev4/mHcw - xyg+Sisom1gLL0VX8Gd8YYsRTZiDSSpurQNqwXy0Eyx7+WJ8txxo/GFw3ZLMRhI0 - 0lwBSwV8FeBs0tuvTFa4zqWZ9wklzk7lfiDdVV1wc/Q12SznvMes1KZtqUDEbkaG - lYg2b5Cl4xMd+QP9MVcQgibGYw5mx/xZ0oJpiVJ9JBw6MrGBJYChGOqf0eaD6A== - =h0ca + hF4DerEtaFuTeewSAQdA6qEEGHwoDODsqCiBNsSxYW/mr23EYieH89un7j/hox4w + yP08OBYxBVep1/ep77aFnVfHqvPibcDjmC3ee3zEjXcYDnTiUaDWr+nxq6K7wvS6 + 0lwBqfbYxJF43dLtXmK+Wtmxw1fT2/ha1pxogiEGwyF+3M8Dz2plpQSswq/tGYOB + p+Pkb7ULGTT5rmUxBjjtJF0h1RKadMwiHfxshcGYOQ6flvBn9r4dZlLHHVBl+A== + =I+Rk -----END PGP MESSAGE----- fp: 057870A2C72CD82566A3EC983695F4FCBCAE4912 - - created_at: "2026-05-20T02:10:23Z" + - created_at: "2026-07-07T22:14:48Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAxjNhCKPP69fAQ/9HuQg6KvEarCQfT/piWAuXtufmkCcj5dQK+U3j8ezmRYf - gvXqxd616jO72g94RlwO1MKwH8oukRTzvVe7TdPf0WtcuSVn3qeUY94mOwqscMSp - +GPSoPDqBZ4V4eg15vAAsTK5U2T/tx+5W3k/J0v6O2CM8b/ng8r0eP3MwlJiN02+ - ya7zS2A1OkxME6fa3758P6P7t0VdQRuhK7XA3F/Gv2dDqBEu0z+mFZDg007sR8bw - BNTZKMoamlDDkpv3HZ0qLy5FcocTL+/z/RK3GB4CB09gpznU7iGbM3QTkNVdNS7r - u7qaKuXKY61lIaho2SCgM6miA4h83DfHnxR0Vkcw8oPfENls5lPN8hku+swMFnYK - 9KR9ntk/Beo3RoqS/iIRgLlgHpP09tggdfUhi1gPdhdmTH5E2TIG9v7S4ltKen53 - aLqrNIiHy5S1Nr05Of0g4Ff/OxaI45lmzXAWQ7oVax8DSA+5ubUj1SHmo+zG5fyh - tTAdVh9oyBzX2GlpbWoKCXKPEhlu2pH75w/WfZLZYtjh927Mog+d+PAK24Kiz3N5 - cTd5EETuZC/nBku3WWN6y+gbfUpIJMFTtLKdNY++ebWaqfK9aZ1I0Q1g2pfZXDb2 - X1bzMdDdGAaCFNW9KWx4woB6FZEQvDLEKvxqZ0G+4DcfNj83sGOqE5oguLJhPyTS - XAH9x6T+VjGRFT0rN2MUMl4n+z5K9ZWA4OJcC2PGi5VGlVyK48hD0B+ygP6GBwKP - 2LJeG7ANB9eNeGsHmxEE804DdcuuEL8wtEomKU+14Qp4sFwXJEn0zqmgOPd+ - =DxEt + hQIMAxjNhCKPP69fAQ//exw+ncdkKqlY35AxDJUclAoN/QYhpjX4GiQkO7v8/HFB + T9h2VNBQNX4oDbYosQWI1Q5f7DDnCeWyJl3sDFcxh2DzL4neR28p4xb5MNT3rO0J + IrGIPVx+abib+f0T4RzcL+QLZb8ou1/odzGVMLoNq5q5SHOuskDODg2SGjXRSI2H + yqRGVG+N5D3JVoo/waiCA1CtUpIhStjeGNKbtLfM7LY4jshmU5n9MZEDF+7GMl8R + 7dhodAgWcGM1Fqyi/xDaryKgP60Tu8mFufmlcDGJiXR9BOmMo2z2JDBhVGU+LeIH + Favb7qJVwRLJKcFRPdIRJFHaq5eOLEVhRm83Uk06K0MpxLZNC4jiXQKVEPjEdcZ8 + CfEQ/x462LtI9Z5ArfF9H56gMSFpT7t+yPEKXAllY1K0E1mCy2m9NzkzjSHx6y+k + dAsL4xkIbw6Q+Zkaaes3GQ9TkR7vxx7RMk1BXjQp2vjkkeu73EYnHU26XyrL4xJi + slVkxCvbEORr9ju/I8Ysxsva3Bgz067v7q83LOl09kKen1VB5/9Cgxjt2W0xOBUn + WtxLorWU0mHm9BB5WtTQy+KnqLN0s2SeSyT2SPMRXZKF3T+Wwf/Azoc6vrB7m9Th + WnQVbpwooys5/Y8jZYat534b2jiUh2JeYB6lFSp3C2i7JsKxGSxND/DVSJ60vH7S + XAHSLkAKOu5hgnUAIxdCghjAIUx7MHeFAcb8S1QiFXenqUI8OWaZ/bI4RHQuBoZV + aC6dAObpp79LnuoCNCUEhgR9APh37mvSnKnqk8x3R+hIxTl0PtL1eyYpRsZS + =lMvc -----END PGP MESSAGE----- fp: F38C9D4228FC6F674E322D9C3326D914EB9B8F55 - - created_at: "2026-05-20T02:10:23Z" + - created_at: "2026-07-07T22:14:48Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMA46L6MuPqfJqAQ//VgmB8grK7tmBerMubQu9x9/ig086RG5IjAq+NqDZlwVu - fnRRhTb97/js/JdIXn+to0/pGwk2vzI2rWhcX9cLbRXVWqiLlWdDkpQwh0hAkHPD - U9CBm03TBJbsf6t9rA4ec+UGuMHBwKymw19c3TQpUtwtMxQpwUWsQemoCrzyayfD - ZhzVBL9skq0rGk2WQ3Z+qolGcFPokwwmh4Lu7gDOJyHUJYQdDXlZfbeNMv1/Mq/6 - atWzd9WrEpO3un7yu5wNzcUYtrCJuMEqRpwxf3fz1jNim6fYkmj7EMZcvZAEOU0v - qn+wBLVe5y19/W1KxLQ2hkUMhxsPHztOnvsYUNAiVNTfmCRlQlBZ+HvayNzMd81L - YIULOV5p7UnhOlPQhjwuX2LCOzkDRl4MKrbC4XNLYFwphPAn0v8SJ5mcb6a3w/5N - Zn4pzJX0+lT3D6Hv6231TVx5/AvtGYPs4YToM7drjl8pK8e1UHSdWxpiSJ87REvh - XyeEhvUoJkVhMc4pKWIMvlk5MkW0jDVCIiY41qnPh3CIF7NOOZiN5YpkPtl6kFJA - GkxS2bcLmuX/OnYkF3nsC77toEp0ffb95AyfGkcHIypN/bEE9P4DXIo98TZJCIXN - nq4HeDZVV9WmRQfpwEbYuGqxfTpM6LGl3KhXj+LJnktpMyYoEyX1bc5fB8cYDzXS - XAHhVdt5/wjsKTv/W8Nv+taOK2R+AD1QY5h2Bl97e3UoR0Ug3VdjPoLwZ/gFV/dO - ac1FMQhoA7P3Nlza1t+cSY8LvbiU30zurJtl/46JGreFseVpe0zjOKPMFutE - =2UZs + hQIMA46L6MuPqfJqARAAhPGILMoc6wjvefVN6MY1wrTnc5cghbic3mQl/81Td33a + 1vb0u2E3mU942KLI4a5/DL0FHsCOsuaO+HPgf5zPViGGrkAP+ze6Zll5SmMCu81U + /GIEZq9gkhy2mmtJ1OVSGVz7nG8Yvd4LYHaklAbveJnpj7+voR/mztZd5i7t5ISB + HTren/1TV52ZzUV9vaESugzd/Fb1iVnxvZDbuYjIpCpeGEwAvZ/UfFI9vbXUkugT + krbHRJfq7UPE9S46QVrtfZ2BBOo22U6+3gCzQtNZ5VySTrEksaP+PMl0V7OG+4+z + ih6NRN+4lZMeMvUZITz/kP8nvU6xuOXZ+ueRBi3SOySB3MH9txsA/avin4i3/JH/ + +axLWdkiGzvdWpHIKdtGh6knQWHKMjbkHyu09ml6YLsSdFWPtfOpOwtBI8WumWqY + S7qepU9X9Rd4c0152R1nSO05U4dhlnOxt84e8vLdOd+/tMZdCl2iEnWcHyvsI+6C + Rt7AIVrwumf5LYtxyJWQzBIcR6AajKv8OhzV39kGVFxuUue6RdJlXVjynZF3Zcp4 + 7MbEBjWZwvyTZYGF/tmvy3piNlhMvbFR4thJDZFbz7OD4Szva1XQhDmMYMO/B337 + I+vd/iG3rV+K1uZa14nCUn5tPc7ykGnuBMr2swTdvu8MUts18CEGml3rv3ox46nS + XAG3Gx179+MRrb0PppuXr6lNLtBqja/Zr90MM41bpIjzK7/iYYeX2i8DZfcymfQP + cn+KZK3Krk3R6TIn1dJP5UuKsb7WWsZVBXXsiUtixBH90Ygtoju+g1JIzDAu + =ZQbw -----END PGP MESSAGE----- fp: 8996B62CBD159DCADD3B6DC08BB33A8ABCF7BC4A - - created_at: "2026-05-20T02:10:23Z" + - created_at: "2026-07-07T22:14:48Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DQrf1tCqiJxoSAQdAOVINvFeDv9ENq+KtuvoKb+CBxyMbcKUWlBtOZLV/Xx0w - GXeCnAwIAB99wxr4ewLrFq34yabVnNfJYB9uD4zcIgevZAnB1Tji3FGMll0gGryq - 0lwBa3Pm/dn0ypFFcNW9xksgwE2oCaGLZq/D+bJtW6UJC5tBZm3Y+MbqiwKljJk+ - lmzzX4rlSnx4jCma8peyAb8RNqpMO/ezo1jgNyGZpsjIGvQ2i1n4YHi0VqEUEA== - =JMjm + hF4DQrf1tCqiJxoSAQdA0t7VkYBD9+Z0hwHrW0OvjyminASVE/BrCcOD6i3t/3Ew + cKKiH6zB7qmCNElnd9lfGWCZ++67afh59mq4/MUH/bWzdE00TPqF7l5DhqdYOEkI + 0lwB5QrtYGtWddT1n2xiTSELkQY6EgwB96CXS7IEqCL4ab9J2mlM/NGo7Nq/UoKd + EzyZGlTbEiOvBnaP9razjSYWMVNlTAew7q5fTNXFyI3iXTbRumsxV58XC9DviQ== + =13df -----END PGP MESSAGE----- fp: B71138A6A8964A3C3B8899857B4F70C356765BAB - - created_at: "2026-05-20T02:10:23Z" + - created_at: "2026-07-07T22:14:48Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DzAGzViGx4qcSAQdAVm9Q6YBrTtT6g6yuAa06+nPtYICDNtrxUgjNCcOkJ2cw - Pi/c9CTwfEiU2iWzYygpCslJxs3UouBu5nxzCFTQRImltBjVQymDwaXvS99HU2sm - 0lYBG9hfZH8Icjo9n4MlbnbC5WBLRooyQJWDnFpZ85n9C7vLY2AH2a/IqnRiwB69 - ufWmB/r3Z2Brez/XvJdWJFCybuShL+Wyr+v5uelxI1u4ztNxmKeqXw== - =9vzq + hF4DzAGzViGx4qcSAQdAs6OThibGPTtEdwj47cmmpL0vqA2NYrxbWzBILN6oex0w + LFQ37sijoSOWkTppVZPWZnDfF76A31ZrOrXqZJCzBGX6MjaHl9qSUX8Ew/318fKx + 0lYB7b7sU1scA6spas2j21e7hu8fBRWu0b+bNto10762aesfjOEAYtSBgd88PDbF + 0mEbs+9MFGkGeBVFg1HczJsR3KyvM+MMzsH+hQfg4Le9NoiQ7tB++w== + =W83v -----END PGP MESSAGE----- fp: D2E9C0807BF681F5E164DAFC5EE1B61CD90954CD - - created_at: "2026-05-20T02:10:23Z" + - created_at: "2026-07-07T22:14:48Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMA2pVdGTIrZI+AQ/9FNudV+zztNHNUBER8At2+bo1n6W+fbF5bTSbudOXGbvV - rdSTWxFuslVh5kzXJYP2a+iYh/o815lzQuVtn+PmKuWCzLEYB0VmkbeM9YBEOxKu - R6uVUbI8xOLFLLErR5E1d1l4p2KRqEEfc9m3tzDa+i3PVOCYhD6qTuKhb6ImDIE8 - 3MqbXRnBBWgK14IivA5ouGJfeHbsYmeWjt9y5gy25T++Mdq9aPoHjjQ4P38eDT5W - 5lK0KcoAPAsrGkjzIgF6NBQr/Ut54RuHdjaBST2tyHP0db9fHwQZj7vfylHJfj6h - yi7rdjX9Ldppw2dnatVKlmpQATS8lLX1vAkipa2H/8kz3oYOJNPf23+8AfyhMs/X - XTXkC8Zw2Auz71TxFcdUXrO3Z9/BgsaS3Ec1TRqfzKbwficT8QP9est79XDxF7WM - 7WXTvCQJVofRquCWR+1h1EwSTiMRGRNV/Uag4hJI6OUwBN2fKbVS94S1jNkxCOX/ - DIHhijMVXvfNWPOkTjuaeXJPem/XwjjCVif2+gPbjYhuXySrlYJVQOrKzPROYIZ/ - uDKqhGZOE0Ng4xNyD/KZTBsoJVeY9xI1IBfMh1c4QA6vJNqU1vQW5pnyFr+N0srQ - kEGBc9dwNom2BjanosbnRORW6+r6BwwI1uPOQPlYUpumHM4o9jGu4bbBSPewOxLS - XAFBjjWtkZS+WP692phQxnXz8+gLc0RXD0UZ9+Gyho+X7/R8BV0x/zDoUgfVwOnY - OZeyd9YDL8JkL+K6EZgS9u+E1XCbRkbVVES06QNVxYHnEO5VbU9YuG29KZ14 - =nF2L + hQIMA2pVdGTIrZI+AQ/5AbMQlNWfcfRPPN139Rn4J8d+2tC4ict5PsauE388LLx8 + BDycTpjR3nyp+Jg95PEuP5WBngofjwHrn6b0u//T6wqAgNIYFbZRQzOzjRI2Ipgk + 201sV5YLK8P/TfYo8I032r9PIlc6xK9kR6OCjVrgfTPveNrNDstPvrlZHWe6RLuu + kVPInCHKWXppL9noE8r1OUpRPe5cXNlAWULrFE9MoxwEnn9GPRqj5HK2dpOM1Jvy + kEo+XNoqGK2ZBRoONRJwQ03FF/LeorDlEHS6RMuCgJxNHzX+JacJJOAH8f1bRRcd + 4dKvRZGLI472d04sPz8QtGl9LCBk6CwjLSSiuQI2r1vf00HSx/zDWRGKNJyjzyfr + 1eGZRjZdbEBQqyP738jfSGbHNkH/Io+uVlUTYXrifPBdc6rAACu7ExVkc6/+Zq7e + EdVv95GXUfvll+k4OSH9/zqF5io5OT5e2wei6KEghm0ZxaWcEtJn97WAQDM0TY4Y + TsfPoPagFRTbBWtw6oMy6POV+g+efjxPsg2KuY/ovsJ0/vbsW5DlC/t8/DLKyPgT + CerSNLwr7EzmUfMUZD55PBMIu1rCja+UJ3mrXTYUhPr0G2NPBynl3O+BnVQl8iTC + 19H5aH/TZOxPqhPWzjXRCpxVLSUd2VTN3myfslfQfO3NXt43OS79wnoet43ezuHS + XAHzLeUz6Zs8YD2YpYwbAPlarFRN6S4s5WhMY3/YPsLsrWN9eH42KuYpvLDemRyn + dJG5YT+0dOE4ZQxz5Lwc+xKPFrbBKHbak5pykDO+Q4LS7Eesog1NEQ8So3k4 + =HMER -----END PGP MESSAGE----- fp: 878FEA3CB6A6F6E7CD80ECBE28506E3585F9F533 - - created_at: "2026-05-20T02:10:23Z" + - created_at: "2026-07-07T22:14:48Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DKKbvh61jX5USAQdA4IyNdJ9IPWLBxwtMROgj+/ZlnMLCdnjXBMmtyrkRxFcw - JLp+UagV5UWX1KhddjhiAHbAa5OrIQsBZrJ75XIObCzlVMmj07CtUpYgLNsTiLVS - 0lwBrQz/Ogp01HETxMoMuGc6VdNvYBrRFZE94pK/KsMP3DAca2MXGokc0hOnk4WT - /mNoOxwCE8ph7H2T//TM0lS5DO1S6ytRxm6wrT7jLu1qkMm9EjW73Nr7Mb6HDg== - =9XH1 + hF4DKKbvh61jX5USAQdANgMJk05gSevKHsZ2rKCnIvo7E/8a580pWclaJA+kWRYw + PE//9dr/VKmnZhWCLwSDM54NnIMgfMwxr6POS4wibOLExW+nvm38ZcKyQQJlRHrg + 0lwBfTonVmBXBQuVieavjwu0rTn5msed8esmOKrC0mzpmu8juFijhzPMelW8z7Rj + uW0zM32lrpoRvASz3Oa0dS1dbN/vjYXGhP1wIwnpTZbsOzxPPsmkBPyegoHaaA== + =hfXP -----END PGP MESSAGE----- fp: 41FFAF3D519CF5C039FBD8414BCC213729AF0E49 unencrypted_suffix: _unencrypted diff --git a/inventories/chaosknoten/host_vars/forgejo-runner-external.sops.yaml b/inventories/chaosknoten/host_vars/forgejo-runner-external.sops.yaml new file mode 100644 index 0000000..9c05b12 --- /dev/null +++ b/inventories/chaosknoten/host_vars/forgejo-runner-external.sops.yaml @@ -0,0 +1,218 @@ +ansible_pull__age_private_key: ENC[AES256_GCM,data:moFPOIyQyFs7Js0sNjlV2Qdr24DdEYJsngDNqsiVJEIiu8mJS9qE9xdXozUympR99NF/dOgcsiBXmSSb4Bhv99OKZp8Kfto/s4eUSx4=,iv:biRudbCF5mdXnXim1p2N+5w9F0z3M9titSVBNJmDXwM=,tag:ESOBA5urjeLdUvTkUyDDOw==,type:str] +sops: + age: + - enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IG1sa2VtNzY4eDI1NTE5IElJdEwzbTdB + dkRDR0NsY2sxNm40aXcxTFVGYVNZQ1QvZXhLK0dWcVR1eGJHZDV2UjQ1M0tmY3ZO + NWdCTUFVNGZRcXI4SjJzN3c0OURKcUc2RVI2VW84dUFrY2gyQVVVZ0ZncUxrZkZ0 + WkhtcmRwUHc1K3JaNjVHQ0VOYVpKejJWNXV2SzlKS0lnOTcvNkg1am56RUdkS056 + dnRtL3lSSEVRMmg2cGJKcjhZRTRoVm1jbVFZeE00VUd2dTlBWXZVZmw2VE5DdEtj + eHRucXZHYzgzcVFJQ25iT0h5WjF1bEI0Zm90dEtTRWU3ejRmaXI1SGtQK0tsY0Vy + T1NCU0FrbG1Eam1FMktQWndDckxqOGErTXU3UjRJM01HbkEzKy8zWC9Ld2lldUhV + MVhIM25rN0tpNGp4T3FITU5MVUhjclM0S0ZTaVVrR2hOanB2YVZWdS9TYU1ESUgv + SVd2ZmJkS3grYmRCaUZrN2xvS2xnZlhiclRoVEFOaHB1RE9WT2pwLzJKbW1XYlF4 + TStkbk9HRXNjczNDMThUM0xXelRGcmdwRGxaNThjbE1Td291bmo4TjVEZ0dWSWNK + SStBZTlISGNlU0Fib3dmTTJyMDZaNGZYVG13ZWlMWXpuUEFQQjBUa0VJc2ZhQjZV + bktYdCtKYm1QVXJaL3JvOFlDSDgzNG1EakpsMkcvSFg5anV4Tk5GcHl1S2hWRnFW + NjFFVjJMM0xMYTVRTks0UUR2ZWZuYXlDcElidURTQmVFalB2WHNWd0JnN01XajVN + SUs3dWZSTUhZZk40NXNEdk9KM3RrNHYwL3pyRzg4eXVuMDRVR3JHNWMyTVE0QVRD + dHFzTEJxMmJUMmNrQjRKMjJRVVZGdWV5bnc2TTFCbHBleEtBVFk3dFQ4cGhlaEU4 + eG5KN0VBRVAzKzFqb21QWEZhVlNENVBDRkVoT3F1c1ozalpyM0RDQzQxc0pRaWVh + bzd0ajJobVV4bDllT2hDRTViQ05wMktXSzRReUE1LzRkMWU5VFIvWU4yT0QxY1NF + SjZaRzZOU2VVUnlNWklkRHlTNy9oc2ZyczdkVSs4MUx1ay9xMTE2WjkzNDlybGN5 + YS9KUHNiek0xMXQrekk2b21hK2U0UGEyc2YrRE5jdmZDT2JIVkVpeEpEMnlZYWJO + RFM3SVFwanJEcmpZNnI4UGV6KzFHKzluNUN6KzRLRlBBRFpoUVFJdHpFMVBUdy9l + R2R0VTg2QTJRNk9xZmZ2Rk9mSGwyaW1NVElraUVJOHlaT2NNMlNNaGtpc3FVQzQx + RkdkMEpoYjZsYzk0bUU4c3lpREJaZHV2NlBqWjNzL2ZNZmljazdCZzRlZWxmR1VN + eFlnQWlVbnhza01ZdVZRR01jelJZWEx1NExXbkVKVUthZndtVjI2TzFDdDZpbzUx + ZGlLSHJCV3BGakdlUENBZDRDUzdRTW1DSnk0TkYvdy9SY2FjcVB3TDJZc2c0cFBP + bGFTZEhkOTM1ME9vdmZ0YjA0SlR2ZXlwZE0wKzJQbFc3M1ZOUEh6OVVsM3AxS01E + U0tid2dHMmZnV3NGaUpISHBVTHU4THZSejVUTkN3dk01Y1RMUG5KTkxvQlV4eTVw + c0VGYlRGbHZQRkRnR2YreS9XVmVBbHB4V2llNTlybVVlcy9XRzB2aFZLYzJobGN5 + Ym1TRHo0WVJjaHpsTkRuWUN4cURjcmw2ZEZBdXZYWE1rZ2Y0SDU1K3JML3ZDeGJJ + NDhka1lHN1lKWkVIbWwxd2VWWXc5ZTZiTFBCTGtITnYxZVF6WjBOQUhrTFhXWm5E + a2xCZ1ptVWN4dkF5am85bGovMHU4NHcxczMrR3ZiSU9lRUZRNkpIVGRJaGZ6c1JO + Tmk4QysydGJISDVzNHRiMnJXczFXUzFqRjVCTGRkNnBIS3h4Z01yeHlHODJxRzZj + d21zMlljOThZTUQzdGsweE5wSDlRNlFPelp3dHZFd045K1ZOVWd3YTBrUHFBUQpt + dWdxc0lxK0JqOE1lMTMxb3AvOGcxd3Q2VHdtaGtHMW5FZDl0VERZenhjCi0tLSBL + a0s2Rm9SektBejY2bDR0aHFvekQ1MXk4ZVJ6ZzZLNFljN2g0QXQwM1o4CsinD2qM + T72KtziBIb8L/An7xABTWPsNSKfp2n6ypnqy0XZ65jEZ0Xe8B2my6PDk7vihbLAi + 1U7Q2Eo+C+Xq7OM= + -----END AGE ENCRYPTED FILE----- + recipient: age1pq1jqrcp3te50xugmv5wst3s9ahj0d38rfktxt43wlcqz7vnwyn3y2h7kyfr6rckrvmuk9m7yvp4efjnfsuxx6d8r9gn222r2eal5593arywrjwrgeypf745wyuvf3z2xk9tm5fgnwckftuvdggk66fph59rw69nt5dpjeewuww4vzt9gs4xelre952s7zjz56qv8tvesg2c89sp8rmy9dvhwfd6tucjhs6sjr6yp2njjra2u6w7c7f0sch3rwkw3wf2dc9su9aaa9q2f22sh5yf0fqejxa2qqpq4pg752589st5xsa5g8tpkjglj4tn35gd4hjj0xet9cjwhydmkmmkffy3nr8zdtctqu6pqsyf7aphvktryez39ru3qe7m6nvr465ffxr0ltvr85nddzxvcwpwpac64nu5tdfrxgjfqzc99vr3zxv8carpsw5evmruqlvrq6v6a4m2cwsz5gqw7nyk3jlj75kp5cnafzjn5dyrf8ppfhp5g5s34zsl7pejmmx2uuudjt7ru2y7as9mtagykrgqgt80fvp3eeh4gsmmd3ujgtp0ranq28aq9x0xdekqh49pfhhprjj6zqdfac5gxtjj736kh5jktc4ls4mjs3p33rzt6ze54uqsfept3qhua2pmugypup6hm6j2ek5sgxjnwvqyfj2l8vz4yfgkaxf699v7jqlwf7g68ang5kzqrjsu78lyardm4zen8zhrr24j334qdgs4zr8dhsfsnmvx9cdvu0swx27tcz8txs46zds9kekgmua7w7fnw3l2lf6zla956ssycac4zjy87rawr4thusxtcqgfzfzh2za9np0s34e5dwkp2l2k06cq09myxqfe7ze6a53d8sl5j43qcekh6kfvl9k0t7903q99pc35630zwm3hwxgnw354du5gngnz56skq9zx3pcnkr5eyh8r8t0dqudmvrrwmxreu6tgrklxw7yvu3zkjgt3gyjhc8kqcrevlukay45sz4k9zqxx9yrs88hzt4h52r2g74alf3cedes3atufy06q4lfq3nxdlnve0kqcwstzr6z6u7fqpqvacezdrr62ycteju6dqawkpthu0drtlxj547htfjcsnrmhgvhskwtuhk6yp7wp30p7qc5vkk8fegg6qx5kc9xs4trx7hj9xgydu7vd30hkceuxsczywjs9v2fl3svkwfypg62882yq6ltv7gfj4ajuy8ezd76g0z7juwspe7q6zs5ceshd6038tvvh2nlpjty6rg6a9qfzhgmjx9s6hynyk7xnq9zra6hxstg8p58x75hapd2mk6rapfunlnnkz5dsxjf4ud4dsvgjfjpzxcdy7sp8dzxtengrsdyu4824mqlw8p63d7m2z4mcyme4tm2qkugtdgrkyphe7akk2geukf6xkfkzd2pkdq5s3qm9fkvfkgrv6yw5kdgjak8xcgesg6tumans4fs8yrxtqlvv2z3emdvwchrjfq4xpzsj27yt4gdg8pknwz9tqpjkjxq6lysutrvwkvt2fwyj8wvv8wtmdl6fk6rsd9kq9a6wkhuq7vvrgwgj3xg2s229sprj4g2vzhy2dfesrp403gs64jqkrjuezwm4zd6uw2x4e2qkj8xqcf7c0zprdzu959x23u878vqqetgpjwt0z3kedt8l6dgpm0rf5dmrya5h3wgzfa0jjvgjphyxgxrwlrzpv4czgal933zs64tn90ks66ejjdaw4t67sch8r3q0kljeqnpdgmw0cpj6arc6k46wcqaccygczy76zt9362vslakvzqqv33tv3sjldp6qxprharmpm9uykgpx66343wuur5xj2aw0rgutpm4ztjzycn3a8d2jq2zpdzwmevezm7mkp9dmndkc3qz0kklgkxq9yehrk5ayfly97umhws0jll8qqg0r7gzxgw5vv76 + lastmodified: "2026-07-07T22:15:31Z" + mac: ENC[AES256_GCM,data:CrH4s1yeMfK52Ltl2mnECvC+bzcedGX4FKV49shX4agp4xB3cNaIvp8++qjmJaJMMcC1Ab4ZGEMBniyRoS/e4tJwSZ0zos+MIwgEHLxP/tCrsxdSsrSobQuuFj1bOvTYO9USZ706tGOG64tpJSM5WpR0FZ98kPRxiQyY0TNiXWk=,iv:JyZB2ko+tJLw9TM0ozXh7r4j4i2eUz18QGjvxVCxOPo=,tag:7fsnFkGV608dscAAoc/nFg==,type:str] + pgp: + - created_at: "2026-07-07T22:15:14Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAxK/JaB2/SdtARAAlBL/0MsCmwYp6yV/9kMP5+zlMd+RA5wqX9t7EYhHHEoa + klhscRh7m/417PHAyPKoFY/6z4AajhssiaLS5pJ5nRYT52EEjHqGKCaUREKKqeA4 + DbTfTwWoVre+Fs8ukT+/rE5el/w0O0vX6/G2dGXZH8VgvXW2CpYKFmm3gqVWM97d + Boma+FBZ9QV3E9GUwCG1oYdpdWAE73MCy0poXkclWHwDNFgxh930GjlSry3aB3i/ + EprRQZ5VAN/aaWznr7eewpITVkWTDCtjeXLbgLhk56Fday5VOSMWRhsiDLOEc7c/ + h8YxDMwtUrlRZdAy4uXt1O9oPBKAalZ1XU6Fi89mA30jh865RkPL1306G4qAv8xp + qS2NQ5c8ZgQ2ZmRWgtBUae/zcRl31Wi5SpUUWAC8iHYYOECo+21fHGpipGBEjTTK + bWuIyjq9mzJsIGCPkV7+jgIxQ/HSh2ZboHF8cVJA9OXXsNhMIiip39fzjpPHdgBS + 6/g48mzcmnaWX1VEJBmR4BnEcnPQTOlZuXSldnl/RMLCntONBRhDUk3kn0gfvbO2 + VRXjwUTgHTHb2+gfOiAloqvugOsCnuO5tUF7JUae+cPYBaP6hzvc/8rQ6181nq7W + 039OmzD6sT3ixZap3qv3KkfCP2Xurg/OXxDadxRToBP/N6V2+yge0rtBUV94fYzS + XgEFrlQ/wSncX6szebjJXXBWHeAIXSW5wRjJkfzmUFexb6M3/oRKIADZ7Q5o8VQD + w1ijdz2dPoDtGfqwu3kUU7q2fls8hAFeC1muANnz/dMoZZTFzu+OdHvQLn7knZs= + =FzvD + -----END PGP MESSAGE----- + fp: EF643F59E008414882232C78FFA8331EEB7D6B70 + - created_at: "2026-07-07T22:15:14Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQEMA1QflAioE8i3AQgAl7ei2+TDXC7Nu7hxpC02oVrL6I94x0z97nR/K14QELwr + zuwV4LBIlkBcALKtpU70ywvaqfraSEnbax1CXtTVdYojnZ22NO0FmetnNFCr5zT1 + YFyMMsgsGx/+RVkhe+hPv7Jm7zHAusHwyip9q+ZcvMKuVmjBV06QmGPkd9gFKS98 + EHQbwUhC7rrySo7ctHT3/8YSzV98zJZHh/VFmEDWRO6zNfMmsQV+IkX2IXqxvsK7 + CS/c+ugKLDHXYKJMVmqvNuyVr7mzsE0cBuuETEGawBZwk4jXzJxQY4yHlshuyQjk + PkdSlH3UUArwurhvZvjWyywRNT/EI3Q2ylBujsD2edJeAeCMOGuP2pLt8fuJcT7g + Cvqrk4jrfqwNrGWblD0Z5o6FlrPXfKDIRIEmgTQHgxplTCqcCqc61l1iEcbuITtq + giFCUZlN2GCG2d/C5opDG+p0dBGcDxq5lQ4KkJ+NSw== + =dCrs + -----END PGP MESSAGE----- + fp: 21C9579E6503CA815A68ABD8541F9408A813C8B7 + - created_at: "2026-07-07T22:15:14Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAz5uSgHG2iMJARAAy5wBkzFMf7HhDMBLdmBOPAYcxtDI6KTfvFejY+/26rnD + s8UZX6H25b38vwvsWhc6Qx0+T6imo/qNTgvqaMaL51kJk8hrzFLI7W0iTOMDo0ow + XWUJlv4qA9XSXCNBEvSOfffFYnZ5c1wJp1KiHfbye1yfF40w3kXD21LcogTKjEdF + EOzkIn6KVXfqJXuXVy1d2YdT1dZKguUEoMY+IAT+Blvhm/mbLDlRyX2ibGOSQRaX + pM+/Vy30ioEvCvbka00sycLIkhMpUTHUG2+OGuNxJZPv9lq9FpAaoO1cgJk0NWLa + Q5hzPoEGxA4SPE9SajXLE8IqSop/VI4rcPPxi/JDn/EDUpCGcSJxJV1GVHfs/xvy + +kHcl13Mm42es24008WwxOnGVCJKvWJLPozT29JrGmMqKZN0NYfSAHFUzILBkrIw + Lbukx4E2KVM7aGxm9qJtnc1SIK8WeVgDCnBd1ktzB6IZk2iq5xbLxW9XQ6O7bVSd + Ie0c+vaG9tNIvK0y6bCLwcT1C/8PaEvCvmGhuPVOWq/1bzHoNA6jxyEJEQZqTRlZ + uUgE0wkpuYw8884bnicrRgOZ7UmK/r7WCGs2zLBq+lXkGSCLvnZWuc7rtiPtVtUX + 1uizEERC8Slj7ovt9L7sG6YabCfUPpSevcw4ZFJuPLpotOWt29ES0lO2zLJmxmDS + XgFdSep/pNxa+lXtOF1lG5Y311tIe2bhY+/QBXCXEsl6CCkiMIAXHrflKEawYKkH + /+9Fix86UW9TcQFjC3f0mekxa5OjhtBoVY8y4IqysC+H5neOo7uBBLgTyPiZ9H0= + =1QTh + -----END PGP MESSAGE----- + fp: 18DFCE01456DAB52EA38A6584EDC64F35FA1D6A5 + - created_at: "2026-07-07T22:15:14Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DsZXvxFXTXoQSAQdAmFbXjxmh1e91bblV7z0ixYgcdsXbNe8OcfCtNuRv+WYw + 8xK7cUl9GEcCpCD9BKVD+bQlcW8SwSKwTzQipZzKJdHtJ0OTf4ytTu3axKCOBC2r + 0l4BMtZZP4eZAutf2JwFEZgNHRBaSniLVBFHgR3YwQnRH11ofqeq4pp8+jHJhV8s + SA2SE8Ph4i9/MSI6dfmZzPCwiitG+/zHb9/68kgYml9NKpIUAHoKbY38GiMy9xow + =KMco + -----END PGP MESSAGE----- + fp: 9633412309CCB83BFA39BA5F2FEF746201D7FCFE + - created_at: "2026-07-07T22:15:14Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DerEtaFuTeewSAQdAj+DsoGtl/2lhiGDkDO75FxS4fJiSRWSX+PJJvpVroSMw + 1e9Z6W8eM70OUxXbPc6ZTQADBbWUylmBzr8effZ/j1Tztl7T5GUEHfXdub+9ZZ03 + 0l4B8f+kLl2T6DsmFB5VXIe3WFShVrJAH7qG1Ig1YTO7x7JnuD6/hS8ku/qCt3RX + MBAhv5wm9QpvtZMONFVWZR9ItqUW7jXGPseXzc7OfbZp5VI2grCLKCML7vjrc7bl + =NVUO + -----END PGP MESSAGE----- + fp: 057870A2C72CD82566A3EC983695F4FCBCAE4912 + - created_at: "2026-07-07T22:15:14Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAxjNhCKPP69fAQ/+POtJNVm+mKYT0ghdjM8p1w0yIuRKw8xsGJ0ux7ngRZUB + nAJKI3iPFuSLxTMIuGptE0UCiY59V4C8io2L850CGdYoFMPgE9XblBUmUzeRE/ab + JzzWgjfmxEWJhupKM3QMeHVvpI/BL30/cCFpLfcDfRi5AEJ+TvRcg0e2FSg8VaiN + cUr8A5dgX7KfrBwv+9G6N6n5Dn/LTayjo4Pox7PCvWHqJDVfisWiJQCvdT5Pj5+0 + W59A5C3gt9vdDiBJ5N68CiduGUQ6r3m353QrebvnOo6SJNWW1z6GtXN0+WeT2uc9 + nIzOqXVC3bQOFF31cnX98U8gHau2//1Xg4QZkQUyrZxLG4jufP7qD4sE/Huk7e3e + KonzLo9KDQBMxjrqDT5KAcD2Vb75MCwPpLkWID23lHhPQ6dpRroBKslqU9X5TW4x + M3V5UC09XSVMZccOjChqOL/lE1BTjWDhtUMey9IJ8ob/xNpbmHTEpGUZcA4yteme + y5KmyYEOFhALgNUAepsqr22YH9+mGAAdVoXKcsSMx7ilNWaxY3Zsquum4kyWnuyI + hJtgyb+se1Zj4KqfbSg41faN8k9FQHLYlBpdhYwWpNf6mUJtF84u+BP0NtG58s1J + 9iSVwg9g1RjVj9NVr0vhi0LWxGCKOdE0xZj0bkpd3a6OnhVKiil0u/ZwwwyZxCXS + XgF+dZtHIg12bB3kwQWkvlHRRdlWWWjTrzQFm6fxZ9ln+ZwwrzivSW7P5Iel2dqx + 8gryMssJZYA0B85OKH4tzsxLDvTlJDcdPTneYRTkK+Rhr184PWcFJlwshAvK6sA= + =cTSV + -----END PGP MESSAGE----- + fp: F38C9D4228FC6F674E322D9C3326D914EB9B8F55 + - created_at: "2026-07-07T22:15:14Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA46L6MuPqfJqAQ/+MgoNL2xv83PWouyvSxy3oK8W5Ktt3PgRishl6SIUtPu9 + 5787cU+8I5z6WOKJg40BBlsZH4FD9w/ej0HzRJEfWnm4Oy7rAAWyeXHvh2KudxXc + 2hHSHpaRS/hbO9LPgCFZ0fh77nCKigd05Oqav4pbQusbiE40A6Oz0F7Fu/da8jXZ + 4AWeFE6e1s6IAinwGWqU/Mig+h4dLipsjUBN64unS9NXD25Tmg8WcNFl4VH4W9zw + fuszZd8cro7pu/GLIqtUotf8MHSnF3XoZcWOmleiApMJlpTmeCIuWQEn2DCMziM3 + LHzmI5s4y8pZOFSgR+ozszPVPHOhdCDdpTV5mNw8njljEIm/BjYbhaL6EXUaoWuU + 1G1T4CYvCl0GHFRNxpJonigH9vLPKK8H7/c2+FTKkMJNjcjRf9xWUJm9CCShFyAJ + k+19quPL0lHRz+vh1EEqUPuCLDSDvEPkNM5ZKkq2PV4Un6nml+OqLLUWuxWiEzFd + Zmu/+ww7GL7msxgfdIuBm5tqxG03pl4QE5aZDDQYBLYiXXok+3dP3ZTXKLU/iwsw + hdjecaQymqHSTNKN/0cFW+08sKKjlI1dpTsEKC0KtUATwOnc9c/f3Z5cTl78a2Gd + a5Oib9N/yZ9Ec8EWNAQZvZlVvnvirujb7iu5g66T5PVAmi3vvJXTV5ZekEmXb0HS + XgHoo0biVdvjLVlqA8BOkVpNCnMhsNC0ccoW3QK7+H4Yl2ytaDk/fXF/fsc3ZFwu + Xg1M+CmsoRA3BgtLsLpjc9ibH1zw9P4pYJGq90PC8Qp5uq2C7KU3UgS5Y5c1WiA= + =Uk6Y + -----END PGP MESSAGE----- + fp: 8996B62CBD159DCADD3B6DC08BB33A8ABCF7BC4A + - created_at: "2026-07-07T22:15:14Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DQrf1tCqiJxoSAQdAInOGTOBg8qS9hDUqOJwNiu68zpxikVgCH2X+tW7ImzMw + yApo0haLTfw5xlQte7aMIPmZtxM94bzoPaU0i5hXpql7s8Wn8cfrjosceh/xu1Qu + 0l4Bu0YljO9Ehx/5SlxhP/mhC/tGigmKy4z1hLdUuUTSSBmZ/DejYRjL+nGI1riZ + K3A9fHW6hztj0kELKiguR9rYVvxpny7/NX/3Dze1NlwHcTSKT5l6yDiwCpd/8Qi+ + =mAcm + -----END PGP MESSAGE----- + fp: B71138A6A8964A3C3B8899857B4F70C356765BAB + - created_at: "2026-07-07T22:15:14Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DzAGzViGx4qcSAQdAN3UbYHJEWKRYalqraIlAc3wSgTzzAZbht6TIncNOg1Aw + kIgZ1xlQiKE7hJ1piZZx8ZMNZHy3BSgbxZ+a/ieknyULAw8GZsOzo8LDrLA4SJgL + 0lgBWDTbNIM0hkouonaZZSuefuU0k7fcqFFtHXw4jkFNfi+jimx11LpGsRbTJzIr + dMoKp1JYyxWkagZLBGUGQ4wyYaWEKduSb+UlBsonnIdehjuLR6uYFrNj + =Lj6l + -----END PGP MESSAGE----- + fp: D2E9C0807BF681F5E164DAFC5EE1B61CD90954CD + - created_at: "2026-07-07T22:15:14Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA2pVdGTIrZI+AQ//dvJKQU2EQGPUBtBXuVgMHP8yFMQagCDKM1sTJQLNWgz3 + 86Ey3XatwPw0YGYOBgqVyxe+XYG+XQUtfPoTo2oius3HyqZcvkb194QG/h5R5Tpa + +zMzLLe/YgENTkLcfRB/BStLyzzwv8sTQiI2RLTb3jX80PYCYU5VzKhz9KU74Nrv + l/TJE4fELFih164yt04Xqm6jAyEraJu2SavxZvyLl97driEwLuwfRMXPnjeaXkiw + Yv850rmZwF72b08F5Vw3Le1HCm2pRaTpw1bm58v4PNSjTuGThZKoYWToYrCDApHk + 1we0N6lZu2AOtXsO71PYJYWeyX0EHb9Ye6CG0TAsJ8Z5iM++Z9mZ8mzdMCbPoMk5 + srdKo6mT6y0HodyyRC3zcqLUGDFqq0ihcHxmaWCavFxpTEjC2cbLK/punklIS4e7 + IQPX0Lth2JB3VsGS9IXYqm0FDw8ldshAxBgtNIYoV6xhIAhTofQyH5P5fEyAE28n + uYW3v5V7qKRhSidIj19Etwu885OaWlo0XE0hapYffQZpA/fGDOZenf+XlbMpYePZ + E2Rj68SFq7S6xw5cqA26vk+4Dab5TeJ9PtI6RjnI7+Sqj0CLhrUzDLjQjrCZuAWY + GGBzWz6vP249G/sJAp/DClo1PsdIqyykkkRM/An5h5xUJXUkIB6+Ia0bCsupn4bS + XgGfbBBt1LgmkdSrHubLpAJ39W/uRfO0CbfXW+Btm1dxffgMxEh8WKkByoDEHAzu + kCEZNerjPRP5fpj5rDB0dq1H46IXXtbLZ48yocuhJWke0Ywmztjxffwxtu3nMW0= + =HrwC + -----END PGP MESSAGE----- + fp: 878FEA3CB6A6F6E7CD80ECBE28506E3585F9F533 + - created_at: "2026-07-07T22:15:14Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DKKbvh61jX5USAQdAvj+VoDF+LUWyZlvdPNDEYZ7DsrNiacFlI1rgID+kHFow + yqbYk26DVNGfYlxAihq1wAKlMLQ1U1+VGsQANGZIz8OH9NhvhTkAwpz9HLHtdmtq + 0l4BdyPumBkzSOz+oWcVv+iOfINONOY2+ms8+X6lF9hBRWFeNIjxZOI/YE8JjIp5 + DrALA7UgZxCXJyQErNbxF/HLCP7aPBvYkd2lCz93TcEQLEtAkG82cNrjtIVQ3yxg + =NEpg + -----END PGP MESSAGE----- + fp: 41FFAF3D519CF5C039FBD8414BCC213729AF0E49 + unencrypted_suffix: _unencrypted + version: 3.13.1 diff --git a/inventories/chaosknoten/hosts.yaml b/inventories/chaosknoten/hosts.yaml index 30072c8..95358de 100644 --- a/inventories/chaosknoten/hosts.yaml +++ b/inventories/chaosknoten/hosts.yaml @@ -97,6 +97,10 @@ all: ansible_host: forgejo-runner.hosts.hamburg.ccc.de ansible_user: chaos ansible_ssh_common_args: -J ssh://chaos@router.hamburg.ccc.de + forgejo-runner-external: + ansible_host: forgejo-runner-external.hosts.hamburg.ccc.de + ansible_user: chaos + ansible_ssh_common_args: -J ssh://chaos@router.hamburg.ccc.de hypervisors: hosts: chaosknoten: @@ -127,6 +131,7 @@ base_config_hosts: mjolnir: auth-dns: forgejo-runner: + forgejo-runner-external: systemd_networkd_hosts: hosts: router: @@ -240,6 +245,7 @@ infrastructure_authorized_keys_hosts: auth-dns: lists: forgejo-runner: + forgejo-runner-external: wiki_hosts: hosts: eh22-wiki: @@ -275,6 +281,7 @@ ansible_pull_hosts: mjolnir: auth-dns: forgejo-runner: + forgejo-runner-external: msmtp_hosts: hosts: renovate_hosts: diff --git a/resources/chaosknoten/auth-dns/zones/hamburg.ccc.de.zone b/resources/chaosknoten/auth-dns/zones/hamburg.ccc.de.zone index 61efdb4..96df321 100644 --- a/resources/chaosknoten/auth-dns/zones/hamburg.ccc.de.zone +++ b/resources/chaosknoten/auth-dns/zones/hamburg.ccc.de.zone @@ -515,6 +515,7 @@ diday-staging-runner.hosts IN AAAA 2a00:14b0:42:102::16 public-web-static.hosts IN AAAA 2a00:14b0:42:102::17 forgejo-actions-runner.hosts IN AAAA 2a00:14b0:42:102::18 forgejo-runner.hosts IN AAAA 2a00:14b0:42:102::19 +forgejo-runner-external.hosts IN AAAA 2a00:14b0:42:102::1a ; acme-challenges _acme-challenge.sunders CNAME a5ee8a99-3cdf-4212-972e-c0b6fda1242f.auth.acmedns From 9ae16363c553f1bc8affb1fb3a564eafb1329be1 Mon Sep 17 00:00:00 2001 From: June Date: Wed, 8 Jul 2026 00:42:50 +0200 Subject: [PATCH 17/25] forgejo-runner-external(host): configure forgejo-runner setup Configure connection for the DI-Day/website repo. --- .../forgejo-runner-external.sops.yaml | 5 +- .../host_vars/forgejo-runner-external.yaml | 1 + inventories/chaosknoten/hosts.yaml | 1 + .../forgejo-runner/configuration.yaml.j2 | 52 +++++++++++++++++++ 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 inventories/chaosknoten/host_vars/forgejo-runner-external.yaml create mode 100644 resources/chaosknoten/forgejo-runner-external/forgejo-runner/configuration.yaml.j2 diff --git a/inventories/chaosknoten/host_vars/forgejo-runner-external.sops.yaml b/inventories/chaosknoten/host_vars/forgejo-runner-external.sops.yaml index 9c05b12..e6bc00e 100644 --- a/inventories/chaosknoten/host_vars/forgejo-runner-external.sops.yaml +++ b/inventories/chaosknoten/host_vars/forgejo-runner-external.sops.yaml @@ -1,4 +1,5 @@ ansible_pull__age_private_key: ENC[AES256_GCM,data:moFPOIyQyFs7Js0sNjlV2Qdr24DdEYJsngDNqsiVJEIiu8mJS9qE9xdXozUympR99NF/dOgcsiBXmSSb4Bhv99OKZp8Kfto/s4eUSx4=,iv:biRudbCF5mdXnXim1p2N+5w9F0z3M9titSVBNJmDXwM=,tag:ESOBA5urjeLdUvTkUyDDOw==,type:str] +secret__forgejo_runner_codeberg_diday_website_token: ENC[AES256_GCM,data:RDXT2MfYdtVOBIlSrwEnfMQsxKOaloinKFNoXT1lBHrGac9E7ayQOA==,iv:ljt5bELla9rb5H4yhCarNav5qcj0KR2yD66KTKYBVqs=,tag:OZ9G8vS9Wt5/vk34nh6sPQ==,type:str] sops: age: - enc: | @@ -41,8 +42,8 @@ sops: 1U7Q2Eo+C+Xq7OM= -----END AGE ENCRYPTED FILE----- recipient: age1pq1jqrcp3te50xugmv5wst3s9ahj0d38rfktxt43wlcqz7vnwyn3y2h7kyfr6rckrvmuk9m7yvp4efjnfsuxx6d8r9gn222r2eal5593arywrjwrgeypf745wyuvf3z2xk9tm5fgnwckftuvdggk66fph59rw69nt5dpjeewuww4vzt9gs4xelre952s7zjz56qv8tvesg2c89sp8rmy9dvhwfd6tucjhs6sjr6yp2njjra2u6w7c7f0sch3rwkw3wf2dc9su9aaa9q2f22sh5yf0fqejxa2qqpq4pg752589st5xsa5g8tpkjglj4tn35gd4hjj0xet9cjwhydmkmmkffy3nr8zdtctqu6pqsyf7aphvktryez39ru3qe7m6nvr465ffxr0ltvr85nddzxvcwpwpac64nu5tdfrxgjfqzc99vr3zxv8carpsw5evmruqlvrq6v6a4m2cwsz5gqw7nyk3jlj75kp5cnafzjn5dyrf8ppfhp5g5s34zsl7pejmmx2uuudjt7ru2y7as9mtagykrgqgt80fvp3eeh4gsmmd3ujgtp0ranq28aq9x0xdekqh49pfhhprjj6zqdfac5gxtjj736kh5jktc4ls4mjs3p33rzt6ze54uqsfept3qhua2pmugypup6hm6j2ek5sgxjnwvqyfj2l8vz4yfgkaxf699v7jqlwf7g68ang5kzqrjsu78lyardm4zen8zhrr24j334qdgs4zr8dhsfsnmvx9cdvu0swx27tcz8txs46zds9kekgmua7w7fnw3l2lf6zla956ssycac4zjy87rawr4thusxtcqgfzfzh2za9np0s34e5dwkp2l2k06cq09myxqfe7ze6a53d8sl5j43qcekh6kfvl9k0t7903q99pc35630zwm3hwxgnw354du5gngnz56skq9zx3pcnkr5eyh8r8t0dqudmvrrwmxreu6tgrklxw7yvu3zkjgt3gyjhc8kqcrevlukay45sz4k9zqxx9yrs88hzt4h52r2g74alf3cedes3atufy06q4lfq3nxdlnve0kqcwstzr6z6u7fqpqvacezdrr62ycteju6dqawkpthu0drtlxj547htfjcsnrmhgvhskwtuhk6yp7wp30p7qc5vkk8fegg6qx5kc9xs4trx7hj9xgydu7vd30hkceuxsczywjs9v2fl3svkwfypg62882yq6ltv7gfj4ajuy8ezd76g0z7juwspe7q6zs5ceshd6038tvvh2nlpjty6rg6a9qfzhgmjx9s6hynyk7xnq9zra6hxstg8p58x75hapd2mk6rapfunlnnkz5dsxjf4ud4dsvgjfjpzxcdy7sp8dzxtengrsdyu4824mqlw8p63d7m2z4mcyme4tm2qkugtdgrkyphe7akk2geukf6xkfkzd2pkdq5s3qm9fkvfkgrv6yw5kdgjak8xcgesg6tumans4fs8yrxtqlvv2z3emdvwchrjfq4xpzsj27yt4gdg8pknwz9tqpjkjxq6lysutrvwkvt2fwyj8wvv8wtmdl6fk6rsd9kq9a6wkhuq7vvrgwgj3xg2s229sprj4g2vzhy2dfesrp403gs64jqkrjuezwm4zd6uw2x4e2qkj8xqcf7c0zprdzu959x23u878vqqetgpjwt0z3kedt8l6dgpm0rf5dmrya5h3wgzfa0jjvgjphyxgxrwlrzpv4czgal933zs64tn90ks66ejjdaw4t67sch8r3q0kljeqnpdgmw0cpj6arc6k46wcqaccygczy76zt9362vslakvzqqv33tv3sjldp6qxprharmpm9uykgpx66343wuur5xj2aw0rgutpm4ztjzycn3a8d2jq2zpdzwmevezm7mkp9dmndkc3qz0kklgkxq9yehrk5ayfly97umhws0jll8qqg0r7gzxgw5vv76 - lastmodified: "2026-07-07T22:15:31Z" - mac: ENC[AES256_GCM,data:CrH4s1yeMfK52Ltl2mnECvC+bzcedGX4FKV49shX4agp4xB3cNaIvp8++qjmJaJMMcC1Ab4ZGEMBniyRoS/e4tJwSZ0zos+MIwgEHLxP/tCrsxdSsrSobQuuFj1bOvTYO9USZ706tGOG64tpJSM5WpR0FZ98kPRxiQyY0TNiXWk=,iv:JyZB2ko+tJLw9TM0ozXh7r4j4i2eUz18QGjvxVCxOPo=,tag:7fsnFkGV608dscAAoc/nFg==,type:str] + lastmodified: "2026-07-07T22:27:10Z" + mac: ENC[AES256_GCM,data:bxgvYhfbWMQKhLhPbhw4GO5lbEBkdKHtf6kzUrZZ9UEmcM4JHfbX+RvtDSptcI6R3HOEwEzqVc6UUfvbLMaHgFzWcJP+Xl/5hghd7sauO3YQ7c6hRTpEHDRdBMeUvEO9Xcui27Gi30sSL8QMizkEenvVbdVtyM9bsfbwWHRwE/4=,iv:PbJ1sKqsuQOZqyl4Q3ccSyfx269gGlTAuwiEsxoYVpI=,tag:D94E/JPqnOJ3T6salPzUrA==,type:str] pgp: - created_at: "2026-07-07T22:15:14Z" enc: |- diff --git a/inventories/chaosknoten/host_vars/forgejo-runner-external.yaml b/inventories/chaosknoten/host_vars/forgejo-runner-external.yaml new file mode 100644 index 0000000..d260d05 --- /dev/null +++ b/inventories/chaosknoten/host_vars/forgejo-runner-external.yaml @@ -0,0 +1 @@ +forgejo_runner__config: "{{ lookup('ansible.builtin.template', 'resources/chaosknoten/forgejo-runner-external/forgejo-runner/configuration.yaml.j2') }}" diff --git a/inventories/chaosknoten/hosts.yaml b/inventories/chaosknoten/hosts.yaml index 95358de..fa88b1c 100644 --- a/inventories/chaosknoten/hosts.yaml +++ b/inventories/chaosknoten/hosts.yaml @@ -292,3 +292,4 @@ secrets_hosts: forgejo_runner_hosts: hosts: forgejo-runner: + forgejo-runner-external: diff --git a/resources/chaosknoten/forgejo-runner-external/forgejo-runner/configuration.yaml.j2 b/resources/chaosknoten/forgejo-runner-external/forgejo-runner/configuration.yaml.j2 new file mode 100644 index 0000000..a83fc51 --- /dev/null +++ b/resources/chaosknoten/forgejo-runner-external/forgejo-runner/configuration.yaml.j2 @@ -0,0 +1,52 @@ +log: + level: info + job_level: info + +runner: + file: .runner + capacity: 4 + timeout: 1h + shutdown_timeout: 30m + insecure: false + fetch_timeout: 30s + fetch_interval: 2s + report_interval: 1s + labels: + # https://forgejo.org/docs/latest/admin/actions/configuration/#choosing-labels + - docker:docker://docker.io/library/node:lts + # Provide ubuntu labels similar to the images running at Codeberg. + # https://github.com/catthehacker/docker_images + # https://codeberg.org/actions/meta + - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-latest + - ubuntu-24.04:docker://ghcr.io/catthehacker/ubuntu:act-24.04 + # Alpine + - alpine:docker://docker.io/library/alpine:latest + # Debian + - debian:docker://docker.io/library/debian:latest + +cache: + enabled: false + +container: + # Leave emtpy to create a network automatically. + network: "" + enable_ipv6: true + privileged: false + ## Something like this once gVisor can be used. + ## options: "--runtime=runsc --mount type=bind,src=/etc/gvisor-helper-resolv.conf,dst=/etc/resolv.conf,ro=true" + # Leave empty for default /workspace to be used. + workdir_parent: + ## Something like this once gVisor can be used. + ## Add /etc/gvisor-helper-resolv.conf to valid_volumes to make the bind-mount in options work. + ## valid_volumes: ["/etc/gvisor-helper-resolv.conf:ro"] + # Leave "-", so no docker host will be mounted in the job container. + docker_host: "-" + force_pull: true + force_rebuild: false + +server: + connections: + codeberg-diday-website: + url: https://codeberg.org/ + uuid: 9e145f54-2263-4fb1-8151-9efb205f88d1 + token: {{ secret__forgejo_runner_codeberg_diday_website_token }} From a35326a065a27c89a4b8bb1c252d93d8d63041b7 Mon Sep 17 00:00:00 2001 From: June Date: Wed, 8 Jul 2026 00:58:39 +0200 Subject: [PATCH 18/25] transmission(role): running the handler should always report changed Make ansible-lint happy by specifying that. --- roles/transmission/handlers/main.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/roles/transmission/handlers/main.yaml b/roles/transmission/handlers/main.yaml index 781f442..2a8d98b 100644 --- a/roles/transmission/handlers/main.yaml +++ b/roles/transmission/handlers/main.yaml @@ -1,3 +1,5 @@ - name: update transmission settings ansible.builtin.command: /usr/local/sbin/update-transmission-settings become: true + # When it runs, this should always report changed. + changed_when: true From 1ae4a39f572291bd56c6017cb47cbb628d4b2bca Mon Sep 17 00:00:00 2001 From: Renovate Date: Wed, 8 Jul 2026 00:16:11 +0000 Subject: [PATCH 19/25] Update all stable non-major dependencies --- .forgejo/workflows/lint.yaml | 2 +- inventories/chaosknoten/host_vars/netbox.yaml | 2 +- .../chaosknoten/acmedns/docker_compose/compose.yaml.j2 | 2 +- .../chaosknoten/grafana/docker_compose/compose.yaml.j2 | 10 +++++----- .../chaosknoten/ntfy/docker_compose/compose.yaml.j2 | 2 +- .../onlyoffice/docker_compose/compose.yaml.j2 | 2 +- .../chaosknoten/pad/docker_compose/compose.yaml.j2 | 2 +- .../chaosknoten/pretalx/docker_compose/compose.yaml.j2 | 4 ++-- .../chaosknoten/sunders/docker_compose/compose.yaml.j2 | 2 +- .../chaosknoten/tickets/docker_compose/compose.yaml.j2 | 2 +- .../external/status/docker_compose/compose.yaml.j2 | 4 ++-- 11 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.forgejo/workflows/lint.yaml b/.forgejo/workflows/lint.yaml index 2007d24..5c1b82a 100644 --- a/.forgejo/workflows/lint.yaml +++ b/.forgejo/workflows/lint.yaml @@ -24,7 +24,7 @@ jobs: # work in our environmnet. # Rather manually setup python (pip) before instead. - name: Run ansible-lint - uses: https://github.com/ansible/ansible-lint@v26.3.0 + uses: https://github.com/ansible/ansible-lint@v26.6.0 with: setup_python: "false" requirements_file: "requirements.yml" diff --git a/inventories/chaosknoten/host_vars/netbox.yaml b/inventories/chaosknoten/host_vars/netbox.yaml index f28d193..312b1d7 100644 --- a/inventories/chaosknoten/host_vars/netbox.yaml +++ b/inventories/chaosknoten/host_vars/netbox.yaml @@ -1,5 +1,5 @@ # renovate: datasource=github-releases depName=netbox packageName=netbox-community/netbox -netbox__version: "v4.5.5" +netbox__version: "v4.6.4" netbox__config: "{{ lookup('ansible.builtin.template', 'resources/chaosknoten/netbox/netbox/configuration.py.j2') }}" netbox__custom_pipeline_oidc_group_and_role_mapping: true diff --git a/resources/chaosknoten/acmedns/docker_compose/compose.yaml.j2 b/resources/chaosknoten/acmedns/docker_compose/compose.yaml.j2 index 3fcd8c6..2553f4d 100644 --- a/resources/chaosknoten/acmedns/docker_compose/compose.yaml.j2 +++ b/resources/chaosknoten/acmedns/docker_compose/compose.yaml.j2 @@ -2,7 +2,7 @@ services: oauth2-proxy: container_name: oauth2-proxy - image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.1 + image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.3 command: --config /oauth2-proxy.cfg hostname: oauth2-proxy volumes: diff --git a/resources/chaosknoten/grafana/docker_compose/compose.yaml.j2 b/resources/chaosknoten/grafana/docker_compose/compose.yaml.j2 index 1f6c42f..68f1dd5 100644 --- a/resources/chaosknoten/grafana/docker_compose/compose.yaml.j2 +++ b/resources/chaosknoten/grafana/docker_compose/compose.yaml.j2 @@ -2,7 +2,7 @@ services: prometheus: - image: docker.io/prom/prometheus:v3.10.0 + image: docker.io/prom/prometheus:v3.13.0 container_name: prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' @@ -19,7 +19,7 @@ services: - prom_data:/prometheus alertmanager: - image: docker.io/prom/alertmanager:v0.31.1 + image: docker.io/prom/alertmanager:v0.33.1 container_name: alertmanager command: - '--config.file=/etc/alertmanager/alertmanager.yaml' @@ -32,7 +32,7 @@ services: - alertmanager_data:/alertmanager grafana: - image: docker.io/grafana/grafana:13.0.1 + image: docker.io/grafana/grafana:13.1.0 container_name: grafana ports: - 3000:3000 @@ -46,7 +46,7 @@ services: - graf_data:/var/lib/grafana pve-exporter: - image: docker.io/prompve/prometheus-pve-exporter:3.8.2 + image: docker.io/prompve/prometheus-pve-exporter:3.9.0 container_name: pve-exporter ports: - 9221:9221 @@ -59,7 +59,7 @@ services: - /dev/null:/etc/prometheus/pve.yml loki: - image: docker.io/grafana/loki:3.7.1 + image: docker.io/grafana/loki:3.7.3 container_name: loki ports: - 13100:3100 diff --git a/resources/chaosknoten/ntfy/docker_compose/compose.yaml.j2 b/resources/chaosknoten/ntfy/docker_compose/compose.yaml.j2 index af1b531..885d815 100644 --- a/resources/chaosknoten/ntfy/docker_compose/compose.yaml.j2 +++ b/resources/chaosknoten/ntfy/docker_compose/compose.yaml.j2 @@ -1,7 +1,7 @@ --- services: ntfy: - image: docker.io/binwiederhier/ntfy:v2.20.1 + image: docker.io/binwiederhier/ntfy:v2.25.0 container_name: ntfy command: - serve diff --git a/resources/chaosknoten/onlyoffice/docker_compose/compose.yaml.j2 b/resources/chaosknoten/onlyoffice/docker_compose/compose.yaml.j2 index 77f1395..58dddb2 100644 --- a/resources/chaosknoten/onlyoffice/docker_compose/compose.yaml.j2 +++ b/resources/chaosknoten/onlyoffice/docker_compose/compose.yaml.j2 @@ -4,7 +4,7 @@ services: onlyoffice: - image: docker.io/onlyoffice/documentserver:9.3.1 + image: docker.io/onlyoffice/documentserver:9.4.0 restart: unless-stopped volumes: - "./onlyoffice/DocumentServer/logs:/var/log/onlyoffice" diff --git a/resources/chaosknoten/pad/docker_compose/compose.yaml.j2 b/resources/chaosknoten/pad/docker_compose/compose.yaml.j2 index 1d35832..0aac3e8 100644 --- a/resources/chaosknoten/pad/docker_compose/compose.yaml.j2 +++ b/resources/chaosknoten/pad/docker_compose/compose.yaml.j2 @@ -13,7 +13,7 @@ services: restart: unless-stopped app: - image: quay.io/hedgedoc/hedgedoc:1.10.8 + image: quay.io/hedgedoc/hedgedoc:1.11.0 environment: - "CMD_DB_URL=postgres://hedgedoc:{{ secret__hedgedoc_db_password }}@database:5432/hedgedoc" - "CMD_DOMAIN=pad.hamburg.ccc.de" diff --git a/resources/chaosknoten/pretalx/docker_compose/compose.yaml.j2 b/resources/chaosknoten/pretalx/docker_compose/compose.yaml.j2 index 0bbfcb8..dea2dfb 100644 --- a/resources/chaosknoten/pretalx/docker_compose/compose.yaml.j2 +++ b/resources/chaosknoten/pretalx/docker_compose/compose.yaml.j2 @@ -15,7 +15,7 @@ services: - pretalx_net redis: - image: docker.io/library/redis:8.6.2 + image: docker.io/library/redis:8.8.0 restart: unless-stopped volumes: - redis:/data @@ -23,7 +23,7 @@ services: - pretalx_net static: - image: docker.io/library/nginx:1.29.7 + image: docker.io/library/nginx:1.31.2 restart: unless-stopped volumes: - public:/usr/share/nginx/html diff --git a/resources/chaosknoten/sunders/docker_compose/compose.yaml.j2 b/resources/chaosknoten/sunders/docker_compose/compose.yaml.j2 index bb4127f..8ee08ba 100644 --- a/resources/chaosknoten/sunders/docker_compose/compose.yaml.j2 +++ b/resources/chaosknoten/sunders/docker_compose/compose.yaml.j2 @@ -3,7 +3,7 @@ services: db: - image: mariadb:12.2.2 + image: mariadb:12.3.2 command: --max_allowed_packet=3250585600 environment: MYSQL_ROOT_PASSWORD: "{{ secret__sunders_db_root_password }}" diff --git a/resources/chaosknoten/tickets/docker_compose/compose.yaml.j2 b/resources/chaosknoten/tickets/docker_compose/compose.yaml.j2 index b8a4cf2..5de121b 100644 --- a/resources/chaosknoten/tickets/docker_compose/compose.yaml.j2 +++ b/resources/chaosknoten/tickets/docker_compose/compose.yaml.j2 @@ -13,7 +13,7 @@ services: restart: unless-stopped redis: - image: docker.io/library/redis:8.6.2 + image: docker.io/library/redis:8.8.0 ports: - "6379:6379" volumes: diff --git a/resources/external/status/docker_compose/compose.yaml.j2 b/resources/external/status/docker_compose/compose.yaml.j2 index 58abefa..638ebbe 100644 --- a/resources/external/status/docker_compose/compose.yaml.j2 +++ b/resources/external/status/docker_compose/compose.yaml.j2 @@ -4,7 +4,7 @@ services: database: - image: docker.io/library/postgres:18.3 + image: docker.io/library/postgres:18.4 restart: always volumes: - ./database:/var/lib/postgresql @@ -16,7 +16,7 @@ services: - gatus gatus: - image: ghcr.io/twin/gatus:v5.35.0 + image: ghcr.io/twin/gatus:v5.36.0 restart: always ports: - "8080:8080" From 50cca22cfe869ad37de83e01684a335e00781fb7 Mon Sep 17 00:00:00 2001 From: Renovate Date: Thu, 9 Jul 2026 19:00:56 +0000 Subject: [PATCH 20/25] Update docker.io/binwiederhier/ntfy Docker tag to v2.26.0 --- resources/chaosknoten/ntfy/docker_compose/compose.yaml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/chaosknoten/ntfy/docker_compose/compose.yaml.j2 b/resources/chaosknoten/ntfy/docker_compose/compose.yaml.j2 index 885d815..a982bf3 100644 --- a/resources/chaosknoten/ntfy/docker_compose/compose.yaml.j2 +++ b/resources/chaosknoten/ntfy/docker_compose/compose.yaml.j2 @@ -1,7 +1,7 @@ --- services: ntfy: - image: docker.io/binwiederhier/ntfy:v2.25.0 + image: docker.io/binwiederhier/ntfy:v2.26.0 container_name: ntfy command: - serve From 56392b776a2f0a9d9d685ecddce83976507030d8 Mon Sep 17 00:00:00 2001 From: June Date: Thu, 9 Jul 2026 22:15:57 +0200 Subject: [PATCH 21/25] public-reverse-proxy(host): add config for didays.de and staging --- .../chaosknoten/public-reverse-proxy/nginx/acme_challenge.conf | 2 ++ resources/chaosknoten/public-reverse-proxy/nginx/nginx.conf | 2 ++ 2 files changed, 4 insertions(+) diff --git a/resources/chaosknoten/public-reverse-proxy/nginx/acme_challenge.conf b/resources/chaosknoten/public-reverse-proxy/nginx/acme_challenge.conf index 6e309a2..2513b7c 100644 --- a/resources/chaosknoten/public-reverse-proxy/nginx/acme_challenge.conf +++ b/resources/chaosknoten/public-reverse-proxy/nginx/acme_challenge.conf @@ -87,6 +87,8 @@ map $host $upstream_acme_challenge_host { staging.docs.c3voc.de public-web-static.hosts.hamburg.ccc.de:31820; infra-docs.hamburg.ccc.de public-web-static.hosts.hamburg.ccc.de:31820; staging.infra-docs.hamburg.ccc.de public-web-static.hosts.hamburg.ccc.de:31820; + didays.de public-web-static.hosts.hamburg.ccc.de:31820; + staging.didays.de public-web-static.hosts.hamburg.ccc.de:31820; ueberwachungsfrei.eu public-web-static.hosts.hamburg.ccc.de:31820; überwachungsfrei.eu public-web-static.hosts.hamburg.ccc.de:31820; xn--berwachungsfrei-yvb.eu public-web-static.hosts.hamburg.ccc.de:31820; diff --git a/resources/chaosknoten/public-reverse-proxy/nginx/nginx.conf b/resources/chaosknoten/public-reverse-proxy/nginx/nginx.conf index 5c57f0d..01d0b5d 100644 --- a/resources/chaosknoten/public-reverse-proxy/nginx/nginx.conf +++ b/resources/chaosknoten/public-reverse-proxy/nginx/nginx.conf @@ -110,6 +110,8 @@ stream { staging.docs.c3voc.de public-web-static.hosts.hamburg.ccc.de:8443; infra-docs.hamburg.ccc.de public-web-static.hosts.hamburg.ccc.de:8443; staging.infra-docs.hamburg.ccc.de public-web-static.hosts.hamburg.ccc.de:8443; + didays.de public-web-static.hosts.hamburg.ccc.de:8443; + staging.didays.de public-web-static.hosts.hamburg.ccc.de:8443; ueberwachungsfrei.eu public-web-static.hosts.hamburg.ccc.de:8443; überwachungsfrei.eu public-web-static.hosts.hamburg.ccc.de:8443; xn--berwachungsfrei-yvb.eu public-web-static.hosts.hamburg.ccc.de:8443; From 25bab80c58522f1ec5b81c34e05898cbb052c531 Mon Sep 17 00:00:00 2001 From: June Date: Thu, 9 Jul 2026 22:17:49 +0200 Subject: [PATCH 22/25] status(host): add monitoring for didays.de and staging --- .../status/docker_compose/config/websites.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/resources/external/status/docker_compose/config/websites.yaml b/resources/external/status/docker_compose/config/websites.yaml index 867a23d..ed1ae53 100644 --- a/resources/external/status/docker_compose/config/websites.yaml +++ b/resources/external/status/docker_compose/config/websites.yaml @@ -84,6 +84,14 @@ endpoints: - "[CERTIFICATE_EXPIRATION] > 48h" - "[BODY] == pat(*DIDay*)" + - name: didays.de + url: "https://didays.de" + <<: *websites_defaults + conditions: + - "[STATUS] == 200" + - "[CERTIFICATE_EXPIRATION] > 48h" + - "[BODY] == pat(*Digitale Unabhängigkeit*)" + - name: element-admin.hamburg.ccc.de url: "https://element-admin.hamburg.ccc.de" <<: *websites_defaults @@ -159,6 +167,14 @@ endpoints: - "[CERTIFICATE_EXPIRATION] > 48h" - "[BODY] == pat(*cryptoparty-hamburg.de Staging Environment*)" + - name: staging.didays.de + url: "https://staging.didays.de" + <<: *websites_defaults + conditions: + - "[STATUS] == 200" + - "[CERTIFICATE_EXPIRATION] > 48h" + - "[BODY] == pat(*didays.de Staging Environment*)" + - name: staging.hacker.tours url: "https://staging.hacker.tours" <<: *websites_staging_defaults From 14d2d002f7749010daba189c2d73ce8f0c9cfb0e Mon Sep 17 00:00:00 2001 From: Renovate Date: Fri, 10 Jul 2026 09:15:50 +0000 Subject: [PATCH 23/25] Update docker.io/prom/prometheus Docker tag to v3.13.1 --- resources/chaosknoten/grafana/docker_compose/compose.yaml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/chaosknoten/grafana/docker_compose/compose.yaml.j2 b/resources/chaosknoten/grafana/docker_compose/compose.yaml.j2 index 68f1dd5..5ae0599 100644 --- a/resources/chaosknoten/grafana/docker_compose/compose.yaml.j2 +++ b/resources/chaosknoten/grafana/docker_compose/compose.yaml.j2 @@ -2,7 +2,7 @@ services: prometheus: - image: docker.io/prom/prometheus:v3.13.0 + image: docker.io/prom/prometheus:v3.13.1 container_name: prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' From 580b5bdb1f16fb1d5853cbd928bb962dd1b1a36f Mon Sep 17 00:00:00 2001 From: bitwhisker Date: Sat, 11 Jul 2026 21:29:47 +0200 Subject: [PATCH 24/25] auth-dns(host): add acme cnames back for: - club-assistant - light - light-werkstatt - dooris --- resources/chaosknoten/auth-dns/zones/ccchh.net.zone | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/chaosknoten/auth-dns/zones/ccchh.net.zone b/resources/chaosknoten/auth-dns/zones/ccchh.net.zone index f598988..8847fd6 100644 --- a/resources/chaosknoten/auth-dns/zones/ccchh.net.zone +++ b/resources/chaosknoten/auth-dns/zones/ccchh.net.zone @@ -52,15 +52,15 @@ dooris A 172.31.200.16 hmdooris-ccu A 172.31.200.17 ;club-assistant AAAA 2a07:c481:1:d0::a -;;_acme-challenge.club-assistant CNAME d50ad73a-f82d-4244-87f0-6f5195b37d21.auth.acmedns.hamburg.ccc.de +_acme-challenge.club-assistant CNAME d50ad73a-f82d-4244-87f0-6f5195b37d21.auth.acmedns.hamburg.ccc.de ;esphome AAAA 2a07:c481:1:d0::66 ;zigbee2mqtt A 185.161.129.132 ;light AAAA 2a07:c481:1:d0::16 -;_acme-challenge.light CNAME e59f55ee-9013-469d-a146-a159721b6fea.auth.acmedns.hamburg.ccc.de. +_acme-challenge.light CNAME e59f55ee-9013-469d-a146-a159721b6fea.auth.acmedns.hamburg.ccc.de. ;light-werkstatt AAAA 2a07:c481:1:d0::16 -;_acme-challenge.light-werkstatt CNAME f408acc0-d9f5-4525-bb01-28938e3bb7d0.auth.acmedns.hamburg.ccc.de. +_acme-challenge.light-werkstatt CNAME f408acc0-d9f5-4525-bb01-28938e3bb7d0.auth.acmedns.hamburg.ccc.de. ;buba A 10.31.211.137 -;_acme-challenge.dooris CNAME 37caae1f-b77f-4eb1-aa71-dc3f7ed24360.auth.acmedns.hamburg.ccc.de. +_acme-challenge.dooris CNAME 37caae1f-b77f-4eb1-aa71-dc3f7ed24360.auth.acmedns.hamburg.ccc.de. ;yate A 10.31.208.12 ;staubiv2 A 10.31.210.233 From 2a576495daccdf2df3be2cf2c0ff76f31c09c7e5 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 11 Jul 2026 21:57:34 +0200 Subject: [PATCH 25/25] separate multiple major release upgrades --- renovate.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index 9a6baba..8139008 100644 --- a/renovate.json +++ b/renovate.json @@ -11,7 +11,11 @@ ":ignoreUnstable", ":disableRateLimiting", ":rebaseStalePrs", - ":label(renovate)" + ":label(renovate)", + + // a lot of packages do not support skipping major versions + // with this option renovate creates a pr from the current version to each newer version + ":separateMultipleMajorReleases" ], "semanticCommits": "disabled", "ignorePaths": [