@cryptotaxi247 / infra-1 / commits / ae7b2c26

Add haumea config

Eelco Dolstra committed Jan 7, 2020 at 19:53 UTC ae7b2c261211d481c5442121be50b8cc306c2865
3 files changed +94 -1
delft/haumea.nix new
+82
@@ -0,0 +1,82 @@
1 +{ config, lib, pkgs, ...}:
2 +
3 +{
4 + imports =
5 + [ ./common.nix
6 + ./datadog.nix
7 + ./fstrim.nix
8 + ];
9 +
10 + deployment.targetEnv = "hetzner";
11 + deployment.hetzner.mainIPv4 = "46.4.89.205";
12 +
13 + deployment.hetzner.partitionCommand =
14 + ''
15 + if ! [ -e /usr/local/sbin/zfs ]; then
16 + echo "installing zfs..."
17 + bash -i -c 'echo y | zfsonlinux_install'
18 + fi
19 +
20 + umount -R /mnt || true
21 +
22 + zpool destroy rpool || true
23 +
24 + for disk in /dev/nvme0n1 /dev/nvme1n1; do
25 + echo "partitioning $disk..."
26 + index="''${disk: -3:1}"
27 + parted -s $disk "mklabel msdos"
28 + parted -a optimal -s $disk "mkpart primary ext4 1m 256m"
29 + parted -a optimal -s $disk "mkpart primary zfs 256m 100%"
30 + udevadm settle
31 + mkfs.ext4 -L boot$index ''${disk}p1
32 + done
33 +
34 + echo "creating ZFS pool..."
35 + zpool create -f -o ashift=12 \
36 + -O mountpoint=legacy -O atime=off -O compression=lz4 -O xattr=sa -O acltype=posixacl \
37 + rpool mirror /dev/nvme0n1p2 /dev/nvme1n1p2
38 +
39 + zfs create rpool/local
40 + zfs create rpool/local/nix
41 + zfs create rpool/safe
42 + zfs create rpool/safe/root
43 + zfs create -o primarycache=all -o recordsize=16k -o logbias=throughput rpool/safe/postgres
44 + '';
45 +
46 + deployment.hetzner.mountCommand =
47 + ''
48 + mkdir -p /mnt
49 + mount -t zfs rpool/safe/root /mnt
50 + mkdir -p /mnt/nix
51 + mount -t zfs rpool/local/nix /mnt/nix
52 + mkdir -p /mnt/var/lib/postgresql
53 + mount -t zfs rpool/safe/postgres /mnt/var/lib/postgresql
54 + mkdir -p /mnt/boot
55 + mount /dev/disk/by-label/boot0 /mnt/boot
56 + '';
57 +
58 + fileSystems."/" =
59 + { device = "rpool/safe/root";
60 + fsType = "zfs";
61 + };
62 +
63 + fileSystems."/boot" =
64 + { device = "/dev/disk/by-label/boot0";
65 + fsType = "ext4";
66 + };
67 +
68 + fileSystems."/nix" =
69 + { device = "rpool/local/nix";
70 + fsType = "zfs";
71 + };
72 +
73 + fileSystems."/var/lib/postgresql" =
74 + { device = "rpool/safe/postgres";
75 + fsType = "zfs";
76 + };
77 +
78 + networking.hostId = "83c81a23";
79 +
80 + boot.loader.grub.devices = [ "/dev/nvme0n1" "/dev/nvme1n1" ];
81 + boot.loader.grub.copyKernels = true;
82 +}
delft/network.nix
+5
@@ -57,6 +57,11 @@ in {
57 ];
58 };
59
60 + haumea = {
61 + system.configurationRevision = flakes.self.rev;
62 + imports = [ ./haumea.nix ];
63 + };
64 +
65 mac1 = makeMac {
66 ip = "10.254.2.1";
67 extra = {
modules/wireguard.nix
+7 -1
@@ -60,6 +60,13 @@ let
60 port = 51820;
61 };
62
63 + haumea = {
64 + ip = "10.254.1.9";
65 + endpoint = "46.4.89.205";
66 + port = 51820;
67 + publicKey = "Fb41wGKT1TdC4MG5i2NRx6yduddmqm+N+UOtqtDuBG4=";
68 + };
69 +
70 mac1 = {
71 ip = "10.254.2.1";
72 publicKey = "T49/SyORWekPRmIzIJjpKQiLzrIhiskGSRD+MH8Jim0=";
@@ -97,7 +104,6 @@ let
104 publicKey = "i3fOonYJsDhhF8YXrWfaLQgb4J3OphOs7DTTCGTDNCQ=";
105 };
106
100 -
107 webserver = {
108 ip = "10.254.3.1";
109 publicKey = "/N5//y0elGZdeekUv+IzKZiZ9wcKSOHc2bHmPU8FaCM=";