nixos/whale2: Move actions cache to a separate disk

This commit is contained in:
Jack O'Sullivan 2023-11-16 19:39:53 +00:00
parent 5ddcf927e3
commit 3ae6725f0e
2 changed files with 25 additions and 69 deletions

View File

@ -7,14 +7,13 @@
nixos.systems.colony.configuration = { lib, pkgs, config, systems, ... }: nixos.systems.colony.configuration = { lib, pkgs, config, systems, ... }:
let let
inherit (builtins) listToAttrs;
inherit (lib) mkIf mkMerge optionals; inherit (lib) mkIf mkMerge optionals;
vmLVM = vm: lv: { lvmDisk' = name: lv: {
name = lv; inherit name;
backend = { backend = {
driver = "host_device"; driver = "host_device";
filename = "/dev/main/vm-${vm}-${lv}"; filename = "/dev/main/${lv}";
# It appears this needs to be set on the backend _and_ the format # It appears this needs to be set on the backend _and_ the format
discard = "unmap"; discard = "unmap";
}; };
@ -24,6 +23,8 @@
}; };
frontend = "virtio-blk"; frontend = "virtio-blk";
}; };
lvmDisk = lv: lvmDisk' lv lv;
vmLVM = vm: lv: lvmDisk' lv "vm-${vm}-${lv}";
installerDisk = { installerDisk = {
name = "installer"; name = "installer";
@ -141,45 +142,10 @@
(mkMerge [ (vmLVM "shill" "esp") { frontendOpts.bootindex = 0; } ]) (mkMerge [ (vmLVM "shill" "esp") { frontendOpts.bootindex = 0; } ])
(vmLVM "shill" "nix") (vmLVM "shill" "nix")
(vmLVM "shill" "persist") (vmLVM "shill" "persist")
{
name = "media"; (lvmDisk "media")
backend = { (lvmDisk "minio")
driver = "host_device"; (lvmDisk "git")
filename = "/dev/main/media";
discard = "unmap";
};
format = {
driver = "raw";
discard = "unmap";
};
frontend = "virtio-blk";
}
{
name = "minio";
backend = {
driver = "host_device";
filename = "/dev/main/minio";
discard = "unmap";
};
format = {
driver = "raw";
discard = "unmap";
};
frontend = "virtio-blk";
}
{
name = "git";
backend = {
driver = "host_device";
filename = "/dev/main/git";
discard = "unmap";
};
format = {
driver = "raw";
discard = "unmap";
};
frontend = "virtio-blk";
}
]); ]);
}; };
@ -197,19 +163,9 @@
(mkMerge [ (vmLVM "whale2" "esp") { frontendOpts.bootindex = 0; } ]) (mkMerge [ (vmLVM "whale2" "esp") { frontendOpts.bootindex = 0; } ])
(vmLVM "whale2" "nix") (vmLVM "whale2" "nix")
(vmLVM "whale2" "persist") (vmLVM "whale2" "persist")
{
name = "oci"; (lvmDisk "oci")
backend = { (lvmDisk "gitea-actions-cache")
driver = "host_device";
filename = "/dev/main/oci";
discard = "unmap";
};
format = {
driver = "raw";
discard = "unmap";
};
frontend = "virtio-blk";
}
]); ]);
}; };
@ -247,19 +203,7 @@
cleanShutdown.timeout = 120; cleanShutdown.timeout = 120;
drives = [ drives = [
(mkMerge [ (vmLVM "darts" "root") { frontendOpts.bootindex = 0; } ]) (mkMerge [ (vmLVM "darts" "root") { frontendOpts.bootindex = 0; } ])
{ (lvmDisk' "media" "darts-media")
name = "media";
backend = {
driver = "host_device";
filename = "/dev/main/darts-media";
discard = "unmap";
};
format = {
driver = "raw";
discard = "unmap";
};
frontend = "virtio-blk";
}
]; ];
}; };
}; };

View File

@ -8,10 +8,21 @@ let
container = { container = {
network = "colony"; network = "colony";
}; };
cache = {
enabled = true;
dir = "/var/cache/gitea-runner";
};
}); });
in in
{ {
config = { config = {
fileSystems = {
"/var/cache/gitea-runner" = {
device = "/dev/disk/by-label/actions-cache";
fsType = "ext4";
};
};
services = { services = {
gitea-actions-runner.instances = { gitea-actions-runner.instances = {
main = { main = {
@ -42,6 +53,7 @@ in
services = { services = {
gitea-runner-main.serviceConfig = { gitea-runner-main.serviceConfig = {
# Needs to be able to read its secrets # Needs to be able to read its secrets
CacheDirectory = "gitea-runner";
DynamicUser = mkForce false; DynamicUser = mkForce false;
User = "gitea-runner"; User = "gitea-runner";
Group = "gitea-runner"; Group = "gitea-runner";