Prevent k3s disk pressure and registry retention

This commit is contained in:
2026-07-12 01:07:09 -07:00
parent ea370c12c7
commit e5e8e60c92

View File

@@ -144,6 +144,17 @@ in {
enableGarbageCollect = true; enableGarbageCollect = true;
}; };
# The upstream NixOS unit runs registry GC without --delete-untagged, so
# every manifest ever pushed to the mutable `dev` tag remains reachable.
# Stop writes during GC, discard historical untagged manifests, and always
# bring the registry back even if collection fails.
systemd.services.docker-registry-garbage-collect.script = mkForce ''
${pkgs.systemd}/bin/systemctl stop docker-registry.service
trap '${pkgs.systemd}/bin/systemctl start docker-registry.service' EXIT
${config.services.dockerRegistry.package}/bin/registry garbage-collect \
--delete-untagged ${config.services.dockerRegistry.configFile}
'';
virtualisation.containerd = { virtualisation.containerd = {
enable = true; enable = true;
settings = { settings = {
@@ -232,9 +243,9 @@ in {
name = "k3s-config.yaml"; name = "k3s-config.yaml";
text = '' text = ''
kubelet-arg: kubelet-arg:
- "eviction-hard=nodefs.available<2Gi" - "eviction-hard=nodefs.available<2Gi,imagefs.available<2Gi"
- "eviction-soft=nodefs.available<5Gi" - "eviction-soft=nodefs.available<5Gi,imagefs.available<5Gi"
- "eviction-soft-grace-period=nodefs.available=5m" - "eviction-soft-grace-period=nodefs.available=5m,imagefs.available=5m"
''; '';
}; };
tokenFile = config.age.secrets."1896Folsom-k3s-token.age".path; tokenFile = config.age.secrets."1896Folsom-k3s-token.age".path;