aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/modules/virtualisation/lxd.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/modules/virtualisation/lxd.nix')
-rw-r--r--nixpkgs/nixos/modules/virtualisation/lxd.nix17
1 files changed, 14 insertions, 3 deletions
diff --git a/nixpkgs/nixos/modules/virtualisation/lxd.nix b/nixpkgs/nixos/modules/virtualisation/lxd.nix
index 53b89a9f55b..3958fc2c1d7 100644
--- a/nixpkgs/nixos/modules/virtualisation/lxd.nix
+++ b/nixpkgs/nixos/modules/virtualisation/lxd.nix
@@ -15,7 +15,6 @@ in
###### interface
options = {
-
virtualisation.lxd = {
enable = mkOption {
type = types.bool;
@@ -25,12 +24,18 @@ in
containers. Users in the "lxd" group can interact with
the daemon (e.g. to start or stop containers) using the
<command>lxc</command> command line tool, among others.
+
+ Most of the time, you'll also want to start lxcfs, so
+ that containers can "see" the limits:
+ <code>
+ virtualisation.lxc.lxcfs.enable = true;
+ </code>
'';
};
package = mkOption {
type = types.package;
- default = pkgs.lxd;
+ default = pkgs.lxd.override { nftablesSupport = config.networking.nftables.enable; };
defaultText = "pkgs.lxd";
description = ''
The LXD package to use.
@@ -65,6 +70,7 @@ in
with nixos.
'';
};
+
recommendedSysctlSettings = mkOption {
type = types.bool;
default = false;
@@ -83,7 +89,6 @@ in
###### implementation
config = mkIf cfg.enable {
-
environment.systemPackages = [ cfg.package ];
security.apparmor = {
@@ -115,6 +120,12 @@ in
LimitNOFILE = "1048576";
LimitNPROC = "infinity";
TasksMax = "infinity";
+
+ # By default, `lxd` loads configuration files from hard-coded
+ # `/usr/share/lxc/config` - since this is a no-go for us, we have to
+ # explicitly tell it where the actual configuration files are
+ Environment = mkIf (config.virtualisation.lxc.lxcfs.enable)
+ "LXD_LXC_TEMPLATE_CONFIG=${pkgs.lxcfs}/share/lxc/config";
};
};