From c48dc21431f7a8f9144a4e04538cfdbdf91a2926 Mon Sep 17 00:00:00 2001 From: ckie Date: Sun, 14 Jul 2024 20:46:38 +0300 Subject: [PATCH] terraform/gandi: introduce `proxyRecords` and proxy web services --- terraform/gandi.nix | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/terraform/gandi.nix b/terraform/gandi.nix index 82f7ffd..3b36ae7 100644 --- a/terraform/gandi.nix +++ b/terraform/gandi.nix @@ -29,6 +29,12 @@ in inherit name ttl type values; }; + proxyRecords = name: ttl: type: values: [ + # kurisu.lahfa.xyz running a sniproxy: + (record name ttl "A" ["163.172.69.160"]) + (record name ttl type values) + ]; + # TODO: make less fragile and have actual unique and stable names canonicalName = record: let name = builtins.replaceStrings ["." "@"] ["_" "_root_"] record.name; @@ -41,32 +47,29 @@ in value = record // { zone = tf.ref "resource.gandi_livedns_domain.forkos_org.id"; }; - }) records); + }) (lib.flatten records)); in forkosRecords ([ # (record "@" 3600 "A" ["163.172.69.160"]) (record "@" 3600 "AAAA" ["2001:bc8:38ee:100:1000::20"]) - (record "cl" 3600 "A" ["163.172.69.160"]) - (record "cl" 3600 "AAAA" ["2001:bc8:38ee:100:1000::10"]) + (proxyRecords "cl" 3600 "AAAA" ["2001:bc8:38ee:100:1000::10"]) - (record "fodwatch" 3600 "A" ["163.172.69.160"]) - (record "fodwatch" 3600 "AAAA" ["2001:bc8:38ee:100:1000::30"]) + (proxyRecords "fodwatch" 3600 "AAAA" ["2001:bc8:38ee:100:1000::30"]) - (record "netbox" 3600 "A" ["163.172.69.160"]) - (record "netbox" 3600 "AAAA" ["2001:bc8:38ee:100:1000::20"]) + (proxyRecords "netbox" 3600 "AAAA" ["2001:bc8:38ee:100:1000::20"]) (record "bagel-box.infra" 3600 "AAAA" ["2001:bc8:38ee:100:100::1"]) (record "gerrit01.infra" 3600 "AAAA" ["2001:bc8:38ee:100:1000::10"]) (record "fodwatch.infra" 3600 "AAAA" ["2001:bc8:38ee:100:1000::30"]) (record "meta01.infra" 3600 "AAAA" ["2001:bc8:38ee:100:1000::20"]) - (record "amqp" 3600 "CNAME" ["bagel-box.infra"]) - (record "grafana" 3600 "CNAME" ["meta01.infra"]) - (record "hydra" 3600 "CNAME" ["bagel-box.infra"]) - (record "loki" 3600 "CNAME" ["meta01.infra"]) - (record "mimir" 3600 "CNAME" ["meta01.infra"]) - (record "matrix" 3600 "CNAME" ["meta01.infra"]) + (proxyRecords "amqp" 3600 "CNAME" ["bagel-box.infra"]) + (proxyRecords "grafana" 3600 "CNAME" ["meta01.infra"]) + (proxyRecords "hydra" 3600 "CNAME" ["bagel-box.infra"]) + (proxyRecords "loki" 3600 "CNAME" ["meta01.infra"]) + (proxyRecords "mimir" 3600 "CNAME" ["meta01.infra"]) + (proxyRecords "matrix" 3600 "CNAME" ["meta01.infra"]) (record "vpn-gw.wob01.infra" 3600 "AAAA" [ "2a01:584:11::2" ]) # TODO: do not hardcode, just reuse the Colmena hive module outputs to generate all the required details.