kea: use separate runtime directories for each service
Kea may clean the runtime directory when starting (or maybe systemd does it). I ran into this issue when restarting Kea after changing its configuration, so I think the fact it normally doesn't clean it is a race condition (it's cleaned on service start, and normally all Kea services start at roughly the same time).
This commit is contained in:
parent
3be4a51a23
commit
413011ddf4
4 changed files with 18 additions and 13 deletions
|
@ -333,6 +333,8 @@
|
|||
|
||||
- `ssm-agent` package and module were renamed to `amazon-ssm-agent` to be consistent with the upstream package name.
|
||||
|
||||
- `services.kea.{ctrl-agent,dhcp-ddns,dhcp,dhcp6}` now use separate runtime directories instead of `/run/kea` to work around the runtime directory being cleared on service start.
|
||||
|
||||
## Other Notable Changes {#sec-release-23.11-notable-changes}
|
||||
|
||||
- The Cinnamon module now enables XDG desktop integration by default. If you are experiencing collisions related to xdg-desktop-portal-gtk you can safely remove `xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];` from your NixOS configuration.
|
||||
|
|
|
@ -15,8 +15,8 @@ in {
|
|||
type = types.listOf types.str;
|
||||
example = literalExpression ''
|
||||
[
|
||||
"/run/kea/kea-dhcp4.socket"
|
||||
"/run/kea/kea-dhcp6.socket"
|
||||
"/run/kea-dhcp4/kea-dhcp4.socket"
|
||||
"/run/kea-dhcp6/kea-dhcp6.socket"
|
||||
]
|
||||
'';
|
||||
description = lib.mdDoc ''
|
||||
|
|
|
@ -254,7 +254,6 @@ in
|
|||
DynamicUser = true;
|
||||
User = "kea";
|
||||
ConfigurationDirectory = "kea";
|
||||
RuntimeDirectory = "kea";
|
||||
StateDirectory = "kea";
|
||||
UMask = "0077";
|
||||
};
|
||||
|
@ -289,8 +288,8 @@ in
|
|||
];
|
||||
|
||||
environment = {
|
||||
KEA_PIDFILE_DIR = "/run/kea";
|
||||
KEA_LOCKFILE_DIR = "/run/kea";
|
||||
KEA_PIDFILE_DIR = "/run/kea-ctrl-agent";
|
||||
KEA_LOCKFILE_DIR = "/run/kea-ctrl-agent";
|
||||
};
|
||||
|
||||
restartTriggers = [
|
||||
|
@ -301,6 +300,7 @@ in
|
|||
ExecStart = "${package}/bin/kea-ctrl-agent -c /etc/kea/ctrl-agent.conf ${lib.escapeShellArgs cfg.ctrl-agent.extraArgs}";
|
||||
KillMode = "process";
|
||||
Restart = "on-failure";
|
||||
RuntimeDirectory = "kea-ctrl-agent";
|
||||
} // commonServiceConfig;
|
||||
};
|
||||
})
|
||||
|
@ -329,8 +329,8 @@ in
|
|||
];
|
||||
|
||||
environment = {
|
||||
KEA_PIDFILE_DIR = "/run/kea";
|
||||
KEA_LOCKFILE_DIR = "/run/kea";
|
||||
KEA_PIDFILE_DIR = "/run/kea-dhcp4";
|
||||
KEA_LOCKFILE_DIR = "/run/kea-dhcp4";
|
||||
};
|
||||
|
||||
restartTriggers = [
|
||||
|
@ -348,6 +348,7 @@ in
|
|||
"CAP_NET_BIND_SERVICE"
|
||||
"CAP_NET_RAW"
|
||||
];
|
||||
RuntimeDirectory = "kea-dhcp4";
|
||||
} // commonServiceConfig;
|
||||
};
|
||||
})
|
||||
|
@ -376,8 +377,8 @@ in
|
|||
];
|
||||
|
||||
environment = {
|
||||
KEA_PIDFILE_DIR = "/run/kea";
|
||||
KEA_LOCKFILE_DIR = "/run/kea";
|
||||
KEA_PIDFILE_DIR = "/run/kea-dhcp6";
|
||||
KEA_LOCKFILE_DIR = "/run/kea-dhcp6";
|
||||
};
|
||||
|
||||
restartTriggers = [
|
||||
|
@ -393,6 +394,7 @@ in
|
|||
CapabilityBoundingSet = [
|
||||
"CAP_NET_BIND_SERVICE"
|
||||
];
|
||||
RuntimeDirectory = "kea-dhcp6";
|
||||
} // commonServiceConfig;
|
||||
};
|
||||
})
|
||||
|
@ -421,8 +423,8 @@ in
|
|||
];
|
||||
|
||||
environment = {
|
||||
KEA_PIDFILE_DIR = "/run/kea";
|
||||
KEA_LOCKFILE_DIR = "/run/kea";
|
||||
KEA_PIDFILE_DIR = "/run/kea-dhcp-ddns";
|
||||
KEA_LOCKFILE_DIR = "/run/kea-dhcp-ddns";
|
||||
};
|
||||
|
||||
restartTriggers = [
|
||||
|
@ -437,6 +439,7 @@ in
|
|||
CapabilityBoundingSet = [
|
||||
"CAP_NET_BIND_SERVICE"
|
||||
];
|
||||
RuntimeDirectory = "kea-dhcp-ddns";
|
||||
} // commonServiceConfig;
|
||||
};
|
||||
})
|
||||
|
|
|
@ -416,8 +416,8 @@ let
|
|||
};
|
||||
|
||||
kea = let
|
||||
controlSocketPathV4 = "/run/kea/dhcp4.sock";
|
||||
controlSocketPathV6 = "/run/kea/dhcp6.sock";
|
||||
controlSocketPathV4 = "/run/kea-dhcp4/dhcp4.sock";
|
||||
controlSocketPathV6 = "/run/kea-dhcp6/dhcp6.sock";
|
||||
in
|
||||
{
|
||||
exporterConfig = {
|
||||
|
|
Loading…
Reference in a new issue