@cryptotaxi247 / infra-1 / commits / 4261caa3

rhea: init

Graham Christensen committed Mar 30, 2022 at 17:48 UTC 4261caa3869c8572e6f945038871035152c60381
3 files changed +88
delft/network.nix
+4
@@ -85,6 +85,10 @@ in {
85 imports = [ ./haumea.nix ];
86 };
87
88 + rhea = {
89 + imports = [ ./rhea.nix ];
90 + };
91 +
92 mac1 = makeMac {
93 ip = "10.254.2.1";
94 extra = { pkgs, lib, ... }: {
delft/rhea.nix new
+78
@@ -0,0 +1,78 @@
1 +{ nodes, config, lib, pkgs, ... }:
2 +
3 +{
4 + imports =
5 + [ ./common.nix
6 +# ./hydra.nix
7 +# ./hydra-proxy.nix
8 +# ./fstrim.nix
9 +# ./packet-importer.nix
10 + ];
11 +
12 + deployment.targetEnv = "hetzner";
13 + deployment.hetzner.mainIPv4 = "5.9.122.43";
14 +
15 + deployment.hetzner.partitions = ''
16 + set -eux
17 +
18 + if ! [ -e /usr/local/sbin/zfs ]; then
19 + echo "installing zfs..."
20 + bash -i -c 'echo y | zfsonlinux_install'
21 + fi
22 +
23 + umount -R /mnt || true
24 +
25 + zpool destroy rpool || true
26 +
27 +
28 + for disk in /dev/nvme0n1 /dev/nvme1n1; do
29 + echo "partitioning $disk..."
30 + index="''${disk: -3:1}"
31 + parted -s $disk "mklabel gpt"
32 + parted -a optimal -s $disk "mkpart primary fat32 1m 512m"
33 + parted -a optimal -s $disk "mkpart primary zfs 512m 100%"
34 + parted -s $disk "set 1 esp on"
35 + udevadm settle
36 + mkfs.vfat -n BOOT$index ''${disk}p1
37 + done
38 +
39 + zpool create -f -o ashift=12 -o autotrim=on \
40 + -O mountpoint=legacy -O atime=off -O compression=on \
41 + rpool mirror /dev/nvme0n1p2 /dev/nvme1n1p2
42 +
43 + zfs create rpool/local
44 + zfs create rpool/local/nix
45 + zfs create -o recordsize=4k rpool/local/nix/db
46 + zfs create -o xattr=sa -o acltype=posix rpool/local/var
47 + zfs create rpool/safe
48 + zfs create rpool/safe/root
49 +
50 + mkdir -p /mnt
51 + mount -t zfs rpool/safe/root /mnt
52 +
53 + mkdir -p /mnt/nix
54 + mount -t zfs rpool/local/nix /mnt/nix
55 +
56 + mkdir -p /mnt/nix/var/nix/db
57 + mount -t zfs rpool/local/nix/db /mnt/nix/var/nix/db
58 +
59 + mkdir -p /mnt/var
60 + mount -t zfs rpool/local/var /mnt/var
61 +
62 + mkdir -p /mnt/boot
63 + mount /dev/disk/by-label/BOOT0 /mnt/boot
64 + '';
65 +
66 + networking = {
67 + firewall.allowedTCPPorts = [
68 + 80 443
69 + 9199 # hydra-notify's prometheus
70 + ];
71 + firewall.allowPing = true;
72 + firewall.logRefusedConnections = false;
73 + };
74 +
75 + time.timeZone = lib.mkForce "UTC";
76 + system.stateVersion = lib.mkForce "21.11";
77 +}
78 +
modules/wireguard-hosts.toml
+6
@@ -33,6 +33,12 @@ ip = "10.254.1.4"
33 port = 51820
34 publicKey = "H/Y+sbNETKZugxGFbOS0m5BSr28jRDL19U37wEw07D8="
35
36 +[hosts.rhea]
37 +endpoint = "5.9.122.43"
38 +ip = "10.254.1.5"
39 +port = 51820
40 +# publicKey = ""
41 +
42 [hosts.haumea]
43 endpoint = "46.4.89.205"
44 ip = "10.254.1.9"