From aa5ce08891ebaaeea1eb58bb5903b34b6560d0c8 Mon Sep 17 00:00:00 2001 From: oddlama Date: Mon, 18 Dec 2023 01:35:25 +0100 Subject: [PATCH] feat: use predictable container network creation --- modules/guests/container.nix | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/guests/container.nix b/modules/guests/container.nix index 7f05d84..96f936c 100644 --- a/modules/guests/container.nix +++ b/modules/guests/container.nix @@ -9,13 +9,16 @@ guestName: guestCfg: { }: let inherit (lib) - mapAttrs' flip + mapAttrs' nameValuePair + substring ; + + initialLinkName = "mv-${(substring 0 13 (builtins.hashString "sha256" guestName))}"; in { autoStart = guestCfg.autostart; - macvlans = ["${guestCfg.container.macvlan}:${guestCfg.networking.mainLinkName}"]; + macvlans = ["${guestCfg.container.macvlan}:${initialLinkName}"]; ephemeral = true; privateNetwork = true; bindMounts = flip mapAttrs' guestCfg.zfs ( @@ -57,6 +60,14 @@ in { device = zfsCfg.guestMountpoint; options = ["bind"]; }); + + # Rename the network interface to our liking + systemd.network.links = { + "01-${guestCfg.networking.mainLinkName}" = { + matchConfig.OriginalName = initialLinkName; + linkConfig.Name = guestCfg.networking.mainLinkName; + }; + }; } (import ./common-guest-config.nix guestName guestCfg) ]