utiliser le vrai id de la vm dans la config

merge-requests/47/merge
lzebulon 2025-12-16 11:37:29 +01:00
parent eb86f85eb8
commit b7db94b1ec
11 changed files with 26 additions and 21 deletions

View File

@ -13,7 +13,7 @@
enable = true; enable = true;
networking = { networking = {
id = "50"; id = 150;
srvNat.enable = true; srvNat.enable = true;
}; };

View File

@ -13,7 +13,7 @@
enable = true; enable = true;
networking = { networking = {
id = "63"; id = 163;
srv = { srv = {
enable = true; enable = true;
ipv4 = "185.230.79.15"; ipv4 = "185.230.79.15";

View File

@ -13,7 +13,7 @@
enable = true; enable = true;
networking = { networking = {
id = "40"; id = 140;
srvNat.enable = true; srvNat.enable = true;
}; };

View File

@ -16,7 +16,7 @@
enable = true; enable = true;
networking = { networking = {
id = "41"; id = 141;
srv = { srv = {
enable = true; enable = true;
ipv4 = "185.230.79.5"; ipv4 = "185.230.79.5";

View File

@ -12,7 +12,7 @@
crans = { crans = {
enable = true; enable = true;
networking = { networking = {
id = "46"; id = 146;
srvNat = { srvNat = {
enable = true; enable = true;
interface = "ens20"; interface = "ens20";

View File

@ -13,7 +13,7 @@
enable = true; enable = true;
networking = { networking = {
id = "18"; id = 118;
srvNat.enable = true; srvNat.enable = true;
}; };

View File

@ -13,7 +13,7 @@
enable = true; enable = true;
networking = { networking = {
id = "39"; id = 139;
srvNat.enable = true; srvNat.enable = true;
}; };

View File

@ -17,7 +17,7 @@
enable = true; enable = true;
networking = { networking = {
id = "51"; id = 151;
srvNat.enable = true; srvNat.enable = true;
srv = { srv = {
enable = true; enable = true;

View File

@ -12,7 +12,7 @@
enable = true; enable = true;
networking = { networking = {
id = "35"; id = 135;
srvNat = { srvNat = {
enable = true; enable = true;
interface = "ens19"; interface = "ens19";

View File

@ -13,7 +13,7 @@
enable = true; enable = true;
networking = { networking = {
id = "59"; id = 159;
srvNat.enable = true; srvNat.enable = true;
}; };

View File

@ -9,16 +9,21 @@ let
mkOption mkOption
types types
; ;
in
idString = toString cfg.id;
hostId = lib.mod cfg.id 100;
hostIdString = lib.fixedWidthString 2 "0" (toString hostId);
isVm = cfg.id >= 100;
isVmString = toString isVm;
in
{ {
options.crans.networking = { options.crans.networking = {
enable = mkEnableOption "Configuration réseaux commune à toutes les machines du Crans."; enable = mkEnableOption "Configuration réseaux commune à toutes les machines du Crans.";
id = mkOption { id = mkOption {
type = types.str; type = types.int;
example = "35"; example = 135;
description = "Le numéro de la VM dans Proxmox (sans le `1` devant)."; description = "Le numéro de la VM dans Proxmox.";
}; };
adm = { adm = {
@ -97,14 +102,14 @@ in
adm = { adm = {
ipv4.addresses = [ ipv4.addresses = [
{ {
address = "172.16.10.1${cfg.id}"; address = "172.16.10.${idString}";
prefixLength = 24; prefixLength = 24;
} }
]; ];
ipv6.addresses = [ ipv6.addresses = [
{ {
address = "fd00::10:0:ff:fe01:${cfg.id}10"; address = "fd00::10:0:ff:fe0${isVmString}:${hostIdString}10";
prefixLength = 64; prefixLength = 64;
} }
]; ];
@ -130,7 +135,7 @@ in
ipv6 = { ipv6 = {
addresses = [ addresses = [
{ {
address = "2a0c:700:2::ff:fe01:${cfg.id}02"; address = "2a0c:700:2::ff:fe0${isVmString}:${hostIdString}02";
prefixLength = 64; prefixLength = 64;
} }
]; ];
@ -149,7 +154,7 @@ in
ipv4 = { ipv4 = {
addresses = [ addresses = [
{ {
address = "172.16.3.1${cfg.id}"; address = "172.16.3.${idString}";
prefixLength = 24; prefixLength = 24;
} }
]; ];
@ -165,7 +170,7 @@ in
ipv6 = { ipv6 = {
addresses = [ addresses = [
{ {
address = "2a0c:700:3::ff:fe01:${cfg.id}03"; address = "2a0c:700:3::ff:fe0${isVmString}:${hostIdString}03";
prefixLength = 64; prefixLength = 64;
} }
]; ];
@ -183,14 +188,14 @@ in
san = { san = {
ipv4.addresses = [ ipv4.addresses = [
{ {
address = "172.16.4.1${cfg.id}"; address = "172.16.4.${idString}";
prefixLength = 24; prefixLength = 24;
} }
]; ];
ipv6.addresses = [ ipv6.addresses = [
{ {
address = "fd00::4:0:ff:fe01:${cfg.id}04"; address = "fd00::4:0:ff:fe0${isVmString}:${hostIdString}04";
prefixLength = 64; prefixLength = 64;
} }
]; ];