declare -Ar hosts_hostname=( [ns1.staging.grapheneos.org]=ns1-staging [fra.ns1.grapheneos.org]=ns1-fra [lax.ns1.grapheneos.org]=ns1-lax [lon.ns1.grapheneos.org]=ns1-lon [mia.ns1.grapheneos.org]=ns1-mia [nyc.ns1.grapheneos.org]=ns1-nyc [sea.ns1.grapheneos.org]=ns1-sea [sin.ns1.grapheneos.org]=ns1-sin [tyo.ns1.grapheneos.org]=ns1-tyo [brn.ns2.grapheneos.org]=ns2-brn [las.ns2.grapheneos.org]=ns2-las [mia.ns2.grapheneos.org]=ns2-mia [nyc.ns2.grapheneos.org]=ns2-nyc [mail.grapheneos.org]=mail [staging.grapheneos.org]=grapheneos-staging [bhs0.grapheneos.org]=grapheneos-bhs0 [bhs1.grapheneos.org]=grapheneos-bhs1 [fra.grapheneos.org]=grapheneos-fra [gra.grapheneos.org]=grapheneos-gra [hio.grapheneos.org]=grapheneos-hio [las.grapheneos.org]=grapheneos-las [sin0.grapheneos.org]=grapheneos-sin0 [sin1.grapheneos.org]=grapheneos-sin1 [lax.releases.grapheneos.org]=releases-lax [lon.releases.grapheneos.org]=releases-lon [mia.releases.grapheneos.org]=releases-mia [staging.attestation.app]=attestation-staging [attestation.app]=attestation [matrix.grapheneos.org]=matrix [discuss.grapheneos.org]=discuss [grapheneos.social]=social ) declare -Ar hosts_uefi=( [lax.releases.grapheneos.org]=true [lon.releases.grapheneos.org]=true [mia.releases.grapheneos.org]=true ) declare -Ar hosts_mdraid=( [lax.releases.grapheneos.org]=true [lon.releases.grapheneos.org]=true [mia.releases.grapheneos.org]=true ) declare -Ar hosts_metal=( "${hosts_mdraid[@]}" ) declare -Ar hosts_hardware_watchdog=( [lax.releases.grapheneos.org]=true [lon.releases.grapheneos.org]=true [mia.releases.grapheneos.org]=true ) declare -Ar hosts_authorized_keys=( [fra.ns1.grapheneos.org]=authorized_keys-replica-ns1 [lax.ns1.grapheneos.org]=authorized_keys-replica-ns1 [lon.ns1.grapheneos.org]=authorized_keys-replica-ns1 [mia.ns1.grapheneos.org]=authorized_keys-replica-ns1 [sea.ns1.grapheneos.org]=authorized_keys-replica-ns1 [sin.ns1.grapheneos.org]=authorized_keys-replica-ns1 [tyo.ns1.grapheneos.org]=authorized_keys-replica-ns1 [brn.ns2.grapheneos.org]=authorized_keys-replica-ns2 [las.ns2.grapheneos.org]=authorized_keys-replica-ns2 [mia.ns2.grapheneos.org]=authorized_keys-replica-ns2 [bhs1.grapheneos.org]=authorized_keys-replica-grapheneos [fra.grapheneos.org]=authorized_keys-replica-grapheneos [gra.grapheneos.org]=authorized_keys-replica-grapheneos [hio.grapheneos.org]=authorized_keys-replica-grapheneos [las.grapheneos.org]=authorized_keys-replica-grapheneos [sin0.grapheneos.org]=authorized_keys-replica-grapheneos [sin1.grapheneos.org]=authorized_keys-replica-grapheneos [lax.releases.grapheneos.org]=authorized_keys-replica-releases [lon.releases.grapheneos.org]=authorized_keys-replica-releases [staging.attestation.app]=authorized_keys-staging-attestation ) declare -Ar hosts_firewall=( [ns1.staging.grapheneos.org]=ns2 [fra.ns1.grapheneos.org]=ns1 [lax.ns1.grapheneos.org]=ns1 [lon.ns1.grapheneos.org]=ns1 [mia.ns1.grapheneos.org]=ns1 [nyc.ns1.grapheneos.org]=ns1 [sea.ns1.grapheneos.org]=ns1 [sin.ns1.grapheneos.org]=ns1 [tyo.ns1.grapheneos.org]=ns1 [brn.ns2.grapheneos.org]=ns2 [las.ns2.grapheneos.org]=ns2 [mia.ns2.grapheneos.org]=ns2 [nyc.ns2.grapheneos.org]=ns2 [mail.grapheneos.org]=mail [staging.grapheneos.org]=network-fq [bhs0.grapheneos.org]=network [bhs1.grapheneos.org]=network [fra.grapheneos.org]=network [gra.grapheneos.org]=network [hio.grapheneos.org]=network [las.grapheneos.org]=network-fq [sin0.grapheneos.org]=network [sin1.grapheneos.org]=network [lax.releases.grapheneos.org]=web-fq [lon.releases.grapheneos.org]=web-fq [mia.releases.grapheneos.org]=web-fq [staging.attestation.app]=attestation-fq [attestation.app]=attestation [matrix.grapheneos.org]=matrix [discuss.grapheneos.org]=discuss [grapheneos.social]=social ) declare -Ar hosts_swap=( [lax.releases.grapheneos.org]=32768 [lon.releases.grapheneos.org]=32768 [mia.releases.grapheneos.org]=32768 [attestation.app]=4096 [matrix.grapheneos.org]=8192 [discuss.grapheneos.org]=4096 [grapheneos.social]=4096 ) declare -Ar hosts_agcount=( [lax.releases.grapheneos.org]=24 [lon.releases.grapheneos.org]=32 [mia.releases.grapheneos.org]=24 ) declare -Ar hosts_reserved_ports=( [bhs0.grapheneos.org]=7275 [bhs1.grapheneos.org]=7275 [fra.grapheneos.org]=7275 [gra.grapheneos.org]=7275 [hio.grapheneos.org]=7275 [las.grapheneos.org]=7275 [sin0.grapheneos.org]=7275 [sin1.grapheneos.org]=7275 [staging.attestation.app]=8080 [attestation.app]=8080 ) declare -Ar hosts_tcp_wmem_max=( [lax.releases.grapheneos.org]=33554432 [lon.releases.grapheneos.org]=33554432 [mia.releases.grapheneos.org]=33554432 [matrix.grapheneos.org]=16777216 ) declare -Ar hosts_tcp_fastopen=( [ns1.staging.grapheneos.org]=false [brn.ns2.grapheneos.org]=false [las.ns2.grapheneos.org]=false [mia.ns2.grapheneos.org]=false [nyc.ns2.grapheneos.org]=false [staging.grapheneos.org]=false [las.grapheneos.org]=false [lon.releases.grapheneos.org]=false [staging.attestation.app]=false ) declare -Ar hosts_conntrack_size=( [ns1.staging.grapheneos.org]=65536 [fra.ns1.grapheneos.org]=65536 [lax.ns1.grapheneos.org]=65536 [lon.ns1.grapheneos.org]=65536 [mia.ns1.grapheneos.org]=65536 [nyc.ns1.grapheneos.org]=65536 [sea.ns1.grapheneos.org]=65536 [sin.ns1.grapheneos.org]=65536 [tyo.ns1.grapheneos.org]=65536 [brn.ns2.grapheneos.org]=65536 [las.ns2.grapheneos.org]=65536 [mia.ns2.grapheneos.org]=65536 [nyc.ns2.grapheneos.org]=65536 [mail.grapheneos.org]=131072 [staging.grapheneos.org]=65536 [bhs0.grapheneos.org]=131072 [bhs1.grapheneos.org]=131072 [fra.grapheneos.org]=131072 [gra.grapheneos.org]=131072 [hio.grapheneos.org]=131072 [las.grapheneos.org]=65536 [sin0.grapheneos.org]=131072 [sin1.grapheneos.org]=131072 [lax.releases.grapheneos.org]=12582912 [lon.releases.grapheneos.org]=8388608 [mia.releases.grapheneos.org]=12582912 [staging.attestation.app]=65536 [attestation.app]=131072 [matrix.grapheneos.org]=131072 [discuss.grapheneos.org]=131072 [grapheneos.social]=131072 ) declare -Ar hosts_ssh_users=( [staging.attestation.app]="root attestation" [attestation.app]="root attestation" [discuss.grapheneos.org]="root flarum-admin" ) declare -Ar hosts_journald_system_max_use=( [ns1.staging.grapheneos.org]=4G [staging.grapheneos.org]=4G [las.grapheneos.org]=4G [lax.releases.grapheneos.org]=64G [lon.releases.grapheneos.org]=64G [mia.releases.grapheneos.org]=64G [staging.attestation.app]=4G ) declare -Ar hosts_journald_system_max_file_size=( [ns1.staging.grapheneos.org]=256M [staging.grapheneos.org]=256M [las.grapheneos.org]=256M [lax.releases.grapheneos.org]=4G [lon.releases.grapheneos.org]=4G [mia.releases.grapheneos.org]=4G [staging.attestation.app]=256M ) declare -Ar hosts_ipv4_address=( [ns1.staging.grapheneos.org]=198.98.56.238 [fra.ns1.grapheneos.org]=80.240.20.200 [lax.ns1.grapheneos.org]=140.82.23.46 [lon.ns1.grapheneos.org]=192.248.159.52 [mia.ns1.grapheneos.org]=45.32.173.220 [nyc.ns1.grapheneos.org]=66.135.8.22 [sea.ns1.grapheneos.org]=66.42.74.68 [sin.ns1.grapheneos.org]=139.180.154.140 [tyo.ns1.grapheneos.org]=66.42.42.15 [brn.ns2.grapheneos.org]=107.189.3.168 [las.ns2.grapheneos.org]=205.185.124.155 [mia.ns2.grapheneos.org]=45.61.188.113 [nyc.ns2.grapheneos.org]=198.98.53.141 [mail.grapheneos.org]=192.99.98.22 [staging.grapheneos.org]=199.195.250.78 [bhs0.grapheneos.org]=51.222.156.101 [bhs1.grapheneos.org]=51.222.159.116 [fra.grapheneos.org]=57.129.65.223 [gra.grapheneos.org]=54.37.41.188 [hio.grapheneos.org]=15.204.8.153 [las.grapheneos.org]=209.141.37.35 [sin0.grapheneos.org]=51.79.160.50 [sin1.grapheneos.org]=51.79.161.36 [lax.releases.grapheneos.org]=104.194.8.203 [lon.releases.grapheneos.org]=45.88.230.12 [mia.releases.grapheneos.org]=172.96.172.37 [staging.attestation.app]=198.98.57.157 [attestation.app]=51.79.66.27 [matrix.grapheneos.org]=51.79.51.42 [discuss.grapheneos.org]=51.79.52.38 [grapheneos.social]=51.222.159.14 ) declare -Ar hosts_ipv6_address=( [ns1.staging.grapheneos.org]=2605:6400:10:c41:de92:c534:326a:711a [fra.ns1.grapheneos.org]=2a05:f480:1800:2acd:5400:05ff:fec2:23a1 [lax.ns1.grapheneos.org]=2001:19f0:6000:2dcd:5400:05ff:fec1:97db [lon.ns1.grapheneos.org]=2001:19f0:7400:8669:5400:05ff:fec3:f3f8 [mia.ns1.grapheneos.org]=2001:19f0:9002:2981:5400:05ff:fec1:65c4 [nyc.ns1.grapheneos.org]=2001:19f0:1000:c0d4:5400:05ff:fec1:7c21 [sea.ns1.grapheneos.org]=2001:19f0:8001:0438:5400:05ff:fec1:9dbd [sin.ns1.grapheneos.org]=2401:c080:1400:4890:5400:05ff:fec2:23b0 [sin.ns1.grapheneos.org]=2001:19f0:7001:5695:5400:05ff:fec4:e394 [brn.ns2.grapheneos.org]=2605:6400:30:ec25:102c:af6d:5be:1eb8 [las.ns2.grapheneos.org]=2605:6400:20:1c8f:a0c9:372d:482e:945b [mia.ns2.grapheneos.org]=2605:6400:40:ffbd:14e7:d270:fd75:600c [nyc.ns2.grapheneos.org]=2605:6400:10:102e:95bc:89ef:2e7f:49bb [mail.grapheneos.org]=2607:5300:205:200::472f [staging.grapheneos.org]=2605:6400:10:9d6:6d84:e183:acda:16d7 [bhs0.grapheneos.org]=2607:5300:205:200::29c6 [bhs1.grapheneos.org]=2607:5300:205:200::2584 [fra.grapheneos.org]=2001:41d0:701:1100::245b [gra.grapheneos.org]=2001:41d0:304:200::902f [hio.grapheneos.org]=2604:2dc0:202:300::23a6 [las.grapheneos.org]=2605:6400:20:387:72d4:dab9:a369:f351 [sin0.grapheneos.org]=2402:1f00:8000:800::16d6 [sin1.grapheneos.org]=2402:1f00:8000:800::1949 [lax.releases.grapheneos.org]=2605:9880:200:400:135:7700:ef0a:81 [mia.releases.grapheneos.org]=2605:9880:400:1100:15:1240:515:6e [staging.attestation.app]=2605:6400:10:aa9:1c0f:44d3:da15:c0ec [attestation.app]=2607:5300:205:200::7e9 [matrix.grapheneos.org]=2607:5300:205:200::26e1 [discuss.grapheneos.org]=2607:5300:205:200::3c4 [grapheneos.social]=2607:5300:205:200::5e3f ) readonly hosts_ns1=( {fra,lax,lon,mia,nyc,sea,sin,tyo}.ns1.grapheneos.org ) readonly hosts_ns2=( {brn,las,mia,nyc}.ns2.grapheneos.org ) readonly hosts_dns=( ns1.staging.grapheneos.org "${hosts_ns1[@]}" "${hosts_ns2[@]}" ) readonly hosts_staging=( ns1.staging.grapheneos.org staging.grapheneos.org staging.attestation.app ) readonly hosts_certbot=( ns1.staging.grapheneos.org nyc.ns1.grapheneos.org nyc.ns2.grapheneos.org mail.grapheneos.org staging.grapheneos.org bhs0.grapheneos.org mia.releases.grapheneos.org staging.attestation.app attestation.app matrix.grapheneos.org discuss.grapheneos.org grapheneos.social ) readonly hosts_primary=( nyc.ns1.grapheneos.org nyc.ns2.grapheneos.org bhs0.grapheneos.org mia.releases.grapheneos.org ) readonly hosts_secondary=( {fra,lax,lon,mia,sea,sin,tyo}.ns1.grapheneos.org {brn,las,mia}.ns2.grapheneos.org {bhs1,fra,gra,hio,las,sin0,sin1}.grapheneos.org {lax,lon}.releases.grapheneos.org ) readonly hosts_backup=( mail.grapheneos.org staging.attestation.app attestation.app matrix.grapheneos.org discuss.grapheneos.org grapheneos.social ) readonly hosts_grapheneos=( {bhs0,bhs1,fra,gra,hio,las,sin0,sin1}.grapheneos.org ) readonly hosts_grapheneos_all=( staging.grapheneos.org "${hosts_grapheneos[@]}" ) readonly hosts_releases=( {lax,lon,mia}.releases.grapheneos.org ) readonly hosts_attestation=( staging.attestation.app attestation.app ) readonly hosts_web=( "${hosts_dns[@]}" mail.grapheneos.org "${hosts_grapheneos_all[@]}" "${hosts_releases[@]}" "${hosts_attestation[@]}" matrix.grapheneos.org discuss.grapheneos.org grapheneos.social ) readonly hosts_all=( "${hosts_web[@]}" ) readonly hosts_vultr=( {fra,lax,lon,mia,nyc,sea,sin,tyo}.ns1.grapheneos.org ) readonly hosts_buyvm=( ns1.staging.grapheneos.org {brn,las,mia,nyc}.ns2.grapheneos.org staging.grapheneos.org las.grapheneos.org staging.attestation.app ) readonly hosts_ovh=( mail.grapheneos.org {bhs0,bhs1,fra,gra,hio,sin0,sin1}.grapheneos.org attestation.app matrix.grapheneos.org discuss.grapheneos.org grapheneos.social )