Prevent k3s disk pressure and registry retention
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user