nixos-module/server/lxc-containers: revert lxc to 4.0.6

This commit is contained in:
Astro 2021-05-27 01:54:54 +02:00
parent 5267e4ab32
commit 97bd7bc7d5
1 changed files with 15 additions and 5 deletions

View File

@ -1,6 +1,16 @@
{ hostName, self, config, lib, pkgs, ... }: { hostName, self, config, lib, pkgs, ... }:
let let
# Downgrade: lxc-4.0.9 names network interfaces in containers eth0,
# and eth1 despite configured differently.
lxc = pkgs.lxc.overrideAttrs (_: rec {
version = "4.0.6";
src = pkgs.fetchurl {
url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz";
sha256 = "0qz4l7mlhq7hx53q606qgvkyzyr01glsw290v8ppzvxn1fydlrci";
};
});
# Containers that are run on this host # Containers that are run on this host
containers = containers =
lib.filterAttrs (_: { role, model, location, ... }: lib.filterAttrs (_: { role, model, location, ... }:
@ -134,7 +144,7 @@ in
''; '';
}; };
environment.systemPackages = [ pkgs.lxc build-script ]; environment.systemPackages = [ lxc build-script ];
# Create lxc.container.conf files # Create lxc.container.conf files
environment.etc = environment.etc =
@ -175,7 +185,7 @@ in
''; '';
}; };
}) { }) {
"lxc/common.conf".source = "${pkgs.lxc}/share/lxc/config/common.conf"; "lxc/common.conf".source = "${lxc}/share/lxc/config/common.conf";
} (builtins.attrNames containers); } (builtins.attrNames containers);
# Systemd service template for LXC containers # Systemd service template for LXC containers
@ -185,15 +195,15 @@ in
unitConfig.ConditionPathExists = "/var/lib/lxc/%i/rootfs/init"; unitConfig.ConditionPathExists = "/var/lib/lxc/%i/rootfs/init";
serviceConfig = { serviceConfig = {
Type = "simple"; Type = "simple";
ExecStart = "${pkgs.lxc}/bin/lxc-start -F -C -n %i"; ExecStart = "${lxc}/bin/lxc-start -F -C -n %i";
ExecStop = "${pkgs.lxc}/bin/lxc-stop -n %i"; ExecStop = "${lxc}/bin/lxc-stop -n %i";
ExecReload = ExecReload =
let let
script = pkgs.writeScript "reload-lxc-container.sh" '' script = pkgs.writeScript "reload-lxc-container.sh" ''
#! ${pkgs.runtimeShell} -e #! ${pkgs.runtimeShell} -e
SYSTEM=$(dirname $(readlink /var/lib/lxc/$1/rootfs/init)) SYSTEM=$(dirname $(readlink /var/lib/lxc/$1/rootfs/init))
exec ${pkgs.lxc}/bin/lxc-attach -n $1 $SYSTEM/bin/switch-to-configuration switch exec ${lxc}/bin/lxc-attach -n $1 $SYSTEM/bin/switch-to-configuration switch
''; '';
in in
"${script} %i"; "${script} %i";