Unverified Commit 1624ae8a authored by Florian Klink's avatar Florian Klink Committed by GitHub
Browse files

Merge pull request #100433 from Patryk27/fixes/38509

nixos/containers: allow containers with long names to create private networks
parents b4389c07 336ef2de
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -271,8 +271,8 @@ let
    DeviceAllow = map (d: "${d.node} ${d.modifier}") cfg.allowedDevices;
  };


  system = config.nixpkgs.localSystem.system;
  kernelVersion = config.boot.kernelPackages.kernel.version;

  bindMountOpts = { name, ... }: {

@@ -321,7 +321,6 @@ let
    };
  };


  mkBindFlag = d:
               let flagPrefix = if d.isReadOnly then " --bind-ro=" else " --bind=";
                   mountstr = if d.hostPath != null then "${d.hostPath}:${d.mountPoint}" else "${d.mountPoint}";
@@ -482,11 +481,16 @@ in
                          networking.useDHCP = false;
                          assertions = [
                            {
                              assertion =  config.privateNetwork -> stringLength name < 12;
                              assertion =
                                (builtins.compareVersions kernelVersion "5.8" <= 0)
                                -> config.privateNetwork
                                -> stringLength name <= 11;
                              message = ''
                                Container name `${name}` is too long: When `privateNetwork` is enabled, container names can
                                not be longer than 11 characters, because the container's interface name is derived from it.
                                This might be fixed in the future. See https://github.com/NixOS/nixpkgs/issues/38509
                                You should either make the container name shorter or upgrade to a more recent kernel that
                                supports interface altnames (i.e. at least Linux 5.8 - please see https://github.com/NixOS/nixpkgs/issues/38509
                                for details).
                              '';
                            }
                          ];
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ in
  containers-imperative = handleTest ./containers-imperative.nix {};
  containers-ip = handleTest ./containers-ip.nix {};
  containers-macvlans = handleTest ./containers-macvlans.nix {};
  containers-names = handleTest ./containers-names.nix {};
  containers-physical_interfaces = handleTest ./containers-physical_interfaces.nix {};
  containers-portforward = handleTest ./containers-portforward.nix {};
  containers-reloadable = handleTest ./containers-reloadable.nix {};
+3 −5
Original line number Diff line number Diff line
# Test for NixOS' container support.

let
  hostIp = "192.168.0.1";
  containerIp = "192.168.0.100/24";
@@ -7,10 +5,10 @@ let
  containerIp6 = "fc00::2/7";
in

import ./make-test-python.nix ({ pkgs, ...} : {
import ./make-test-python.nix ({ pkgs, lib, ... }: {
  name = "containers-bridge";
  meta = with pkgs.lib.maintainers; {
    maintainers = [ aristid aszlig eelco kampfschlaefer ];
  meta = {
    maintainers = with lib.maintainers; [ aristid aszlig eelco kampfschlaefer ];
  };

  machine =
+3 −3
Original line number Diff line number Diff line
@@ -8,8 +8,8 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : let

in {
  name = "containers-custom-pkgs";
  meta = with lib.maintainers; {
    maintainers = [ adisbladis earvstedt ];
  meta = {
    maintainers = with lib.maintainers; [ adisbladis earvstedt ];
  };

  machine = { config, ... }: {
+4 −3
Original line number Diff line number Diff line
# Test for NixOS' container support.

import ./make-test-python.nix ({ pkgs, ...} : {
import ./make-test-python.nix ({ pkgs, lib, ... }: {
  name = "containers-ephemeral";
  meta = {
    maintainers = with lib.maintainers; [ patryk27 ];
  };

  machine = { pkgs, ... }: {
    virtualisation.memorySize = 768;
Loading