diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-10-21 22:02:35 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2022-10-21 22:03:09 +0000 |
commit | f01ed9d20d4f669cd1bd598405201fced8689ea9 (patch) | |
tree | c0f343a7ac4c08781f37f1af1dfd56485854cb53 /modules/server | |
parent | 5b0e44f6bfd8aed6458d3095d4bfb6c0fd802fa8 (diff) | |
download | nixlib-f01ed9d20d4f669cd1bd598405201fced8689ea9.tar nixlib-f01ed9d20d4f669cd1bd598405201fced8689ea9.tar.gz nixlib-f01ed9d20d4f669cd1bd598405201fced8689ea9.tar.bz2 nixlib-f01ed9d20d4f669cd1bd598405201fced8689ea9.tar.lz nixlib-f01ed9d20d4f669cd1bd598405201fced8689ea9.tar.xz nixlib-f01ed9d20d4f669cd1bd598405201fced8689ea9.tar.zst nixlib-f01ed9d20d4f669cd1bd598405201fced8689ea9.zip |
modules/vultr-mon: init
This does last resort cleanups of vultr jobs used to fill the Spectrum binary cache, to ensure I don't accidentally massively overspend.
Diffstat (limited to 'modules/server')
-rw-r--r-- | modules/server/spectrum/default.nix | 2 | ||||
-rw-r--r-- | modules/server/spectrum/vultr-mon/default.nix | 24 |
2 files changed, 25 insertions, 1 deletions
diff --git a/modules/server/spectrum/default.nix b/modules/server/spectrum/default.nix index 2508b896c2fc..b819d653f5f1 100644 --- a/modules/server/spectrum/default.nix +++ b/modules/server/spectrum/default.nix @@ -3,7 +3,7 @@ { imports = [ ./acme ./cgit ./git-http-backend ./nginx ./postfix ./public-inbox - ./spectrumbot + ./spectrumbot ./vultr-mon ]; nix.settings.substituters = [ "https://cache.dataaturservice.se/spectrum/" ]; diff --git a/modules/server/spectrum/vultr-mon/default.nix b/modules/server/spectrum/vultr-mon/default.nix new file mode 100644 index 000000000000..50890d68ccbb --- /dev/null +++ b/modules/server/spectrum/vultr-mon/default.nix @@ -0,0 +1,24 @@ +{ pkgs, ... }: + +{ + systemd.services.vultr-mon = { + after = [ "network-online.target" ]; + requires = [ "network-online.target" ]; + path = with pkgs; [ coreutils curl findutils jq ]; + script = '' + api_base=https://api.vultr.com/v2 + curl -fsLSH @/var/lib/vultr-mon/key $api_base/instances | + jq -r '.instances[] | select(.date_created < $date) | .id' --arg date "$(date -uIseconds -d '24 hours ago')" | + xargs -rtd '\n' -I% curl -fsLSX DELETE -H @/var/lib/vultr-mon/key $api_base/instances/% + ''; + serviceConfig.DynamicUser = true; + serviceConfig.StateDirectory = "vultr-mon"; + serviceConfig.Type = "oneshot"; + }; + + systemd.timers.vultr-mon = { + wantedBy = [ "timers.target" ]; + timerConfig.OnActiveSec = 0; + timerConfig.OnUnitActiveSec = 3600; + }; +} |