feat(ops/modules): Add module for automatically collecting garbage
Adds a module that automatically collects garbage based on disk space thresholds, and configures it to run hourly on whitby. This is implemented as an alternative to cl/2937, which I've been told uses a Nix feature that doesn't actually work. Under-the-hood this is simply a systemd timer running a shell script which checks available disk space and runs GC when necessary. Change-Id: I3c6b5de85b74ea52e7e16c53f2f900e0911c9805 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3014 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
This commit is contained in:
parent
605302091d
commit
cc903bc3b0
2 changed files with 100 additions and 0 deletions
|
|
@ -6,6 +6,7 @@ let
|
|||
inherit (lib) range;
|
||||
in {
|
||||
imports = [
|
||||
"${depot.path}/ops/modules/automatic-gc.nix"
|
||||
"${depot.path}/ops/modules/clbot.nix"
|
||||
"${depot.path}/ops/modules/irccat.nix"
|
||||
"${depot.path}/ops/modules/monorepo-gerrit.nix"
|
||||
|
|
@ -187,6 +188,15 @@ in {
|
|||
challengeResponseAuthentication = false;
|
||||
};
|
||||
|
||||
# Automatically collect garbage from the Nix store.
|
||||
services.depot.automatic-gc = {
|
||||
enable = true;
|
||||
interval = "1 hour";
|
||||
diskThreshold = 200; # GiB
|
||||
maxFreed = 420; # GiB
|
||||
preserveGenerations = "90d";
|
||||
};
|
||||
|
||||
# Run a handful of Buildkite agents to support parallel builds.
|
||||
services.depot.buildkite = {
|
||||
enable = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue