pumpkin: sanoid: use recursive=zfs
[julm/julm-nix.git] / hosts / oignon / Makefile
index 5df6ef958d54849231be10b7cfa1752b6dfd639c..1cab60359c0a720037ad4304da72dcb948e74380 100644 (file)
@@ -1,38 +1,37 @@
 #cwd := $(notdir $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST))))))
-machine     := oignon
+hostName    := oignon
 disk_ssd    := /dev/disk/by-id/ata-Samsung_SSD_850_PRO_128GB_S1SMNSAFC36436X
-zpool       := $(machine)
+zpool       := $(hostName)
 cipher      := aes-128-gcm
 autotrim    := on
 reservation := 1G
-# FIXME: use zstd when zfs stable gets it
-compression := lz4
+compression := zstd
 
 wipe:
        sudo modprobe zfs
-       sudo zpool labelclear -f /dev/disk/by-partlabel/$(machine)_ssd_zpool || true
+       sudo zpool labelclear -f /dev/disk/by-partlabel/$(hostName)_ssd_zpool || true
        sudo $$(which sgdisk) --zap-all $(disk_ssd)
 
 part: wipe
        # https://wiki.archlinux.org/index.php/BIOS_boot_partition
-       sudo $$(which sgdisk) -a1 -n0:34:2047  -t0:EF02 -c0:"$(machine)_ssd_bios"  $(disk_ssd)
-       sudo $$(which sgdisk)     -n0:1M:+32M  -t0:EF00 -c0:"$(machine)_ssd_efi"   $(disk_ssd)
-       sudo $$(which sgdisk)     -n0:0:+256M  -t0:8300 -c0:"$(machine)_ssd_boot"  $(disk_ssd)
-       sudo $$(which sgdisk)     -n0:0:+4G    -t0:8200 -c0:"$(machine)_ssd_swap"  $(disk_ssd)
-       sudo $$(which sgdisk)     -n0:0:0      -t0:BF01 -c0:"$(machine)_ssd_zpool" $(disk_ssd)
+       sudo $$(which sgdisk) -a1 -n0:34:2047  -t0:EF02 -c0:"$(hostName)_ssd_bios"  $(disk_ssd)
+       sudo $$(which sgdisk)     -n0:1M:+32M  -t0:EF00 -c0:"$(hostName)_ssd_efi"   $(disk_ssd)
+       sudo $$(which sgdisk)     -n0:0:+256M  -t0:8300 -c0:"$(hostName)_ssd_boot"  $(disk_ssd)
+       sudo $$(which sgdisk)     -n0:0:+4G    -t0:8200 -c0:"$(hostName)_ssd_swap"  $(disk_ssd)
+       sudo $$(which sgdisk)     -n0:0:0      -t0:BF01 -c0:"$(hostName)_ssd_zpool" $(disk_ssd)
        # https://wiki.archlinux.org/index.php/Partitioning#Tricking_old_BIOS_into_booting_from_GPT
        printf '\200\0\0\0\0\0\0\0\0\0\0\0\001\0\0\0' | sudo dd of=$(disk_ssd) bs=1 seek=462
        sudo $$(which sgdisk) --randomize-guids $(disk_ssd)
-       sudo $$(which sgdisk) --backup=$(machine)_ssd.sgdisk $(disk_ssd)
+       sudo $$(which sgdisk) --backup=$(hostName)_ssd.sgdisk $(disk_ssd)
 
 format: umount format-efi format-boot format-zpool
 format-efi:
-       sudo blkid /dev/disk/by-partlabel/$(machine)_ssd_efi -t TYPE=vfat || \
-       sudo mkfs.vfat -F 16 -s 1 -n EFI /dev/disk/by-partlabel/$(machine)_ssd_efi
+       sudo blkid /dev/disk/by-partlabel/$(hostName)_ssd_efi -t TYPE=vfat || \
+       sudo mkfs.vfat -F 16 -s 1 -n EFI /dev/disk/by-partlabel/$(hostName)_ssd_efi
 format-boot:
-       sudo mkdir -p /mnt/$(machine)
-       sudo blkid -t TYPE=ext2 /dev/disk/by-partlabel/$(machine)_ssd_boot; test $$? != 2 || \
-       sudo mkfs.ext2 /dev/disk/by-partlabel/$(machine)_ssd_boot
+       sudo mkdir -p /mnt/$(hostName)
+       sudo blkid -t TYPE=ext2 /dev/disk/by-partlabel/$(hostName)_ssd_boot; test $$? != 2 || \
+       sudo mkfs.ext2 /dev/disk/by-partlabel/$(hostName)_ssd_boot
 format-zpool:
        sudo zpool list $(zpool) 2>/dev/null || \
        sudo zpool create -o ashift=12 \
@@ -40,7 +39,7 @@ format-zpool:
         $(if $(cipher),-O encryption=$(cipher) \
         -O keyformat=passphrase \
         -O keylocation=prompt) \
-        -R /mnt/$(machine) $(zpool) /dev/disk/by-partlabel/$(machine)_ssd_zpool
+        -R /mnt/$(hostName) $(zpool) /dev/disk/by-partlabel/$(hostName)_ssd_zpool
        sudo zpool set \
         autotrim=$(autotrim) \
         $(zpool)
@@ -77,7 +76,7 @@ format-zpool:
                 $(zpool)/"$$p" ; \
         done
        #sudo zfs set sync=disabled $(zpool)/var/tmp
-       #sudo zfs set copies=2 $(zpool)/home/documents
+       #sudo zfs set copies=2 $(zpool)/home/files
 
 mount: mount-zpool mount-boot mount-efi
 mount-zpool:
@@ -91,28 +90,28 @@ mount-zpool:
        grep -q '^$(zpool)\s*keystatus\s*available' || \
        sudo zfs load-key $(zpool)
        # /
-       sudo mkdir -p /mnt/$(machine)
-       sudo mountpoint /mnt/$(machine) || \
-       sudo mount -v -t zfs $(zpool)/root /mnt/$(machine)
+       sudo mkdir -p /mnt/$(hostName)
+       sudo mountpoint /mnt/$(hostName) || \
+       sudo mount -v -t zfs $(zpool)/root /mnt/$(hostName)
        # /*
        for p in \
         nix \
         var \
         ; do \
-               sudo mkdir -p /mnt/$(machine)/"$$p"; \
-               sudo mountpoint /mnt/$(machine)/"$$p" || \
-               sudo mount -v -t zfs $(zpool)/"$$p" /mnt/$(machine)/"$$p" ; \
+               sudo mkdir -p /mnt/$(hostName)/"$$p"; \
+               sudo mountpoint /mnt/$(hostName)/"$$p" || \
+               sudo mount -v -t zfs $(zpool)/"$$p" /mnt/$(hostName)/"$$p" ; \
         done
-       #sudo chmod 1777 /mnt/$(machine)/var/tmp
+       #sudo chmod 1777 /mnt/$(hostName)/var/tmp
 mount-boot:
-       sudo mkdir -p /mnt/$(machine)/boot
-       sudo mountpoint /mnt/$(machine)/boot || \
-       sudo mount -v /dev/disk/by-partlabel/$(machine)_ssd_boot /mnt/$(machine)/boot
-       #sudo mount -v -t zfs bpool/boot /mnt/$(machine)/boot
+       sudo mkdir -p /mnt/$(hostName)/boot
+       sudo mountpoint /mnt/$(hostName)/boot || \
+       sudo mount -v /dev/disk/by-partlabel/$(hostName)_ssd_boot /mnt/$(hostName)/boot
+       #sudo mount -v -t zfs bpool/boot /mnt/$(hostName)/boot
 mount-efi: | mount-boot
-       sudo mkdir -p /mnt/$(machine)/boot/efi
-       sudo mountpoint /mnt/$(machine)/boot/efi || \
-       sudo mount -v /dev/disk/by-partlabel/$(machine)_ssd_efi /mnt/$(machine)/boot/efi
+       sudo mkdir -p /mnt/$(hostName)/boot/efi
+       sudo mountpoint /mnt/$(hostName)/boot/efi || \
+       sudo mount -v /dev/disk/by-partlabel/$(hostName)_ssd_efi /mnt/$(hostName)/boot/efi
 
 bootstrap: mount
        # Workaround https://dev.gnupg.org/T3908
@@ -120,8 +119,8 @@ bootstrap: mount
        
        sudo --preserve-env \
        $$(which nixos-install) \
-        --root /mnt/$(machine) \
-        --flake '.#$(machine)' \
+        --root /mnt/$(hostName) \
+        --flake '.#$(hostName)' \
         --no-root-passwd \
         --no-channel-copy \
         --option allow-import-from-derivation true \
@@ -138,8 +137,8 @@ umount:
         var \
         "" \
         ; do \
-               ! sudo mountpoint /mnt/$(machine)/"$$p" || \
-               sudo umount -v /mnt/$(machine)/"$$p" ; \
+               ! sudo mountpoint /mnt/$(hostName)/"$$p" || \
+               sudo umount -v /mnt/$(hostName)/"$$p" ; \
         done
        ! sudo zpool list $(zpool) 2>/dev/null || \
        zfs get -H encryption $(zpool) | \
@@ -153,6 +152,6 @@ umount:
        sudo zpool export $(zpool)
 
 unlock:
-       pass machines/$(machine)/zfs/zpool | \
+       pass hostNames/$(hostName)/zfs/zpool | \
        NIXOPS_DEPLOYMENT="$${NIXOPS_DEPLOYMENT:-$(LOSURDO_DEPLOYMENT)}" \
-       nixops ssh $(machine) -p 2222 'zfs load-key $(zpool) && pkill zfs'
+       nixops ssh $(hostName) -p 2222 'zfs load-key $(zpool) && pkill zfs'