Unverified Commit f171f4ff authored by Adam Stephens's avatar Adam Stephens
Browse files

nixos/lxc: add package option and use for incus/lxd

parent ee1428c6
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -111,7 +111,12 @@ in

      package = lib.mkPackageOption pkgs "incus-lts" { };

      lxcPackage = lib.mkPackageOption pkgs "lxc" { };
      lxcPackage = lib.mkOption {
        type = lib.types.package;
        default = config.virtualisation.lxc.package;
        defaultText = lib.literalExpression "config.virtualisation.lxc.package";
        description = "The lxc package to use.";
      };

      clientPackage = lib.mkOption {
        type = lib.types.package;
+5 −4
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ in
            {manpage}`lxc.system.conf(5)`.
          '';
      };
    package = lib.mkPackageOption pkgs "lxc" { };

    defaultConfig =
      lib.mkOption {
@@ -57,19 +58,19 @@ in
  ###### implementation

  config = lib.mkIf cfg.enable {
    environment.systemPackages = [ pkgs.lxc ];
    environment.systemPackages = [ cfg.package ];
    environment.etc."lxc/lxc.conf".text = cfg.systemConfig;
    environment.etc."lxc/lxc-usernet".text = cfg.usernetConfig;
    environment.etc."lxc/default.conf".text = cfg.defaultConfig;
    systemd.tmpfiles.rules = [ "d /var/lib/lxc/rootfs 0755 root root -" ];

    security.apparmor.packages = [ pkgs.lxc ];
    security.apparmor.packages = [ cfg.package ];
    security.apparmor.policies = {
      "bin.lxc-start".profile = ''
        include ${pkgs.lxc}/etc/apparmor.d/usr.bin.lxc-start
        include ${cfg.package}/etc/apparmor.d/usr.bin.lxc-start
      '';
      "lxc-containers".profile = ''
        include ${pkgs.lxc}/etc/apparmor.d/lxc-containers
        include ${cfg.package}/etc/apparmor.d/lxc-containers
      '';
    };
  };
+5 −4
Original line number Diff line number Diff line
@@ -35,10 +35,11 @@ in {

      package = lib.mkPackageOption pkgs "lxd-lts" { };

      lxcPackage = lib.mkPackageOption pkgs "lxc" {
        extraDescription = ''
          Required for AppArmor profiles.
        '';
      lxcPackage = lib.mkOption {
        type = lib.types.package;
        default = config.virtualisation.lxc.package;
        defaultText = lib.literalExpression "config.virtualisation.lxc.package";
        description = "The lxc package to use.";
      };

      zfsSupport = lib.mkOption {