From 678845afac7fa760bfcbe06ea8719f88a567cda3 Mon Sep 17 00:00:00 2001
From: Sven-Hendrik Haase <svenstaro@gmail.com>
Date: Fri, 11 Dec 2020 01:35:51 +0100
Subject: [PATCH] Add Kape server IPv6 addresses (fixes #230)

---
 host_vars/america.mirror.pkgbuild.com         |  3 ++
 host_vars/asia.mirror.pkgbuild.com            |  6 ++--
 host_vars/europe.mirror.pkgbuild.com          |  4 ++-
 host_vars/repro2.pkgbuild.com                 |  3 ++
 host_vars/runner1.archlinux.org               |  5 ++-
 .../templates/10-static-ethernet.network.j2   |  5 +++
 tf-stage1/archlinux.tf                        | 35 +++++++++++++++++++
 7 files changed, 57 insertions(+), 4 deletions(-)

diff --git a/host_vars/america.mirror.pkgbuild.com b/host_vars/america.mirror.pkgbuild.com
index c93e01765..817cc81b3 100644
--- a/host_vars/america.mirror.pkgbuild.com
+++ b/host_vars/america.mirror.pkgbuild.com
@@ -2,6 +2,9 @@ hostname: "america.mirror.pkgbuild.com"
 ipv4_address: "143.244.34.62"
 ipv4_netmask: "/25"
 ipv4_gateway: "143.244.34.126"
+ipv6_address: "2a02:6ea0:cc0e::2"
+ipv6_netmask: "/128"
+ipv6_gateway: "2a02:6ea0:cc0e::1337"
 filesystem: "btrfs"
 network_interface: "en*"
 system_disks:
diff --git a/host_vars/asia.mirror.pkgbuild.com b/host_vars/asia.mirror.pkgbuild.com
index be770e6c6..cc917725d 100644
--- a/host_vars/asia.mirror.pkgbuild.com
+++ b/host_vars/asia.mirror.pkgbuild.com
@@ -1,8 +1,10 @@
-hostname: "archive1.mirror.pkgbuild.com"
-
+hostname: "asia.mirror.pkgbuild.com"
 ipv4_address: "84.17.57.98"
 ipv4_netmask: "/24"
 ipv4_gateway: "84.17.57.110"
+ipv6_address: "2a02:6ea0:d605::2"
+ipv6_netmask: "/128"
+ipv6_gateway: "2a02:6ea0:d605::1337"
 filesystem: "btrfs"
 network_interface: "en*"
 system_disks:
diff --git a/host_vars/europe.mirror.pkgbuild.com b/host_vars/europe.mirror.pkgbuild.com
index b81378c95..ed890c44d 100644
--- a/host_vars/europe.mirror.pkgbuild.com
+++ b/host_vars/europe.mirror.pkgbuild.com
@@ -1,8 +1,10 @@
 hostname: "europe.mirror.pkgbuild.com"
-
 ipv4_address: "89.187.191.12"
 ipv4_netmask: "/26"
 ipv4_gateway: "89.187.191.62"
+ipv6_address: "2a02:6ea0:c237::2"
+ipv6_netmask: "/128"
+ipv6_gateway: "2a02:6ea0:c237::1337"
 filesystem: "btrfs"
 network_interface: "en*"
 system_disks:
diff --git a/host_vars/repro2.pkgbuild.com b/host_vars/repro2.pkgbuild.com
index 23244b4b7..e0b7c85a3 100644
--- a/host_vars/repro2.pkgbuild.com
+++ b/host_vars/repro2.pkgbuild.com
@@ -3,6 +3,9 @@ hostname: "repro2.pkgbuild.com"
 ipv4_address: "212.102.38.209"
 ipv4_netmask: "/24"
 ipv4_gateway: "212.102.38.222"
+ipv6_address: "2a02:6ea0:c238::2"
+ipv6_netmask: "/128"
+ipv6_gateway: "2a02:6ea0:c238::1337"
 
 filesystem: "btrfs"
 network_interface: "en*"
diff --git a/host_vars/runner1.archlinux.org b/host_vars/runner1.archlinux.org
index 54737decb..46e7a41d2 100644
--- a/host_vars/runner1.archlinux.org
+++ b/host_vars/runner1.archlinux.org
@@ -3,8 +3,11 @@ hostname: "runner1.archlinux.org"
 ipv4_address: "84.17.49.250"
 ipv4_netmask: "/24"
 ipv4_gateway: "84.17.49.254"
+ipv6_address: "2a02:6ea0:c719::2"
+ipv6_netmask: "/128"
+ipv6_gateway: "2a02:6ea0:c719::1337"
 filesystem: "btrfs"
-network_interface: "en*"
+network_interface: "ens1f*"
 system_disks:
   - /dev/sda
   - /dev/sdb
diff --git a/roles/common/templates/10-static-ethernet.network.j2 b/roles/common/templates/10-static-ethernet.network.j2
index caec1d477..28c9ae1d5 100644
--- a/roles/common/templates/10-static-ethernet.network.j2
+++ b/roles/common/templates/10-static-ethernet.network.j2
@@ -21,3 +21,8 @@ Peer={{ ipv4_gateway }}{{ ipv4_netmask}}
 [Address]
 Address={{ ipv6_address }}{{ ipv6_netmask }}
 {% endif %}
+
+{% if not ipv6_gateway.startswith("fe80") %}
+[Route]
+Destination={{ ipv6_gateway }}
+{% endif %}
diff --git a/tf-stage1/archlinux.tf b/tf-stage1/archlinux.tf
index c82c5348e..05571b5ac 100644
--- a/tf-stage1/archlinux.tf
+++ b/tf-stage1/archlinux.tf
@@ -138,6 +138,13 @@ resource "hetznerdns_record" "pkgbuild_com_america_a" {
   type    = "A"
 }
 
+resource "hetznerdns_record" "pkgbuild_com_america_aaaa" {
+  zone_id = hetznerdns_zone.pkgbuild.id
+  name    = "america.mirror"
+  value   = "2a02:6ea0:cc0e::2"
+  type    = "AAAA"
+}
+
 resource "hetznerdns_record" "pkgbuild_com_asia_a" {
   zone_id = hetznerdns_zone.pkgbuild.id
   name    = "asia.mirror"
@@ -145,6 +152,13 @@ resource "hetznerdns_record" "pkgbuild_com_asia_a" {
   type    = "A"
 }
 
+resource "hetznerdns_record" "pkgbuild_com_asia_aaaa" {
+  zone_id = hetznerdns_zone.pkgbuild.id
+  name    = "asia.mirror"
+  value   = "2a02:6ea0:d605::2"
+  type    = "AAAA"
+}
+
 resource "hetznerdns_record" "pkgbuild_com_europe_a" {
   zone_id = hetznerdns_zone.pkgbuild.id
   name    = "europe.mirror"
@@ -152,6 +166,13 @@ resource "hetznerdns_record" "pkgbuild_com_europe_a" {
   type    = "A"
 }
 
+resource "hetznerdns_record" "pkgbuild_com_europe_aaaa" {
+  zone_id = hetznerdns_zone.pkgbuild.id
+  name    = "europe.mirror"
+  value   = "2a02:6ea0:c237::2"
+  type    = "AAAA"
+}
+
 resource "hetznerdns_record" "pkgbuild_com_repro1_a" {
   zone_id = hetznerdns_zone.pkgbuild.id
   name    = "repro1"
@@ -173,6 +194,13 @@ resource "hetznerdns_record" "pkgbuild_com_repro2_a" {
   type    = "A"
 }
 
+resource "hetznerdns_record" "pkgbuild_com_repro2_aaaa" {
+  zone_id = hetznerdns_zone.pkgbuild.id
+  name    = "repro2"
+  value   = "2a02:6ea0:c238::2"
+  type    = "AAAA"
+}
+
 resource "hetznerdns_record" "pkgbuild_com_www_a" {
   zone_id = hetznerdns_zone.pkgbuild.id
   name    = "www"
@@ -635,6 +663,13 @@ resource "hetznerdns_record" "archlinux_org_runner1_a" {
   type    = "A"
 }
 
+resource "hetznerdns_record" "archlinux_org_runner1_aaaa" {
+  zone_id = hetznerdns_zone.archlinux.id
+  name    = "runner1"
+  value   = "2a02:6ea0:c719::2"
+  type    = "AAAA"
+}
+
 resource "hetznerdns_record" "archlinux_org_runner2_a" {
   zone_id = hetznerdns_zone.archlinux.id
   name    = "runner2"
-- 
GitLab