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"