Add static ipv6 addresses

This commit is contained in:
asonix 2024-07-04 15:59:56 -05:00
parent 025f3c7e6d
commit 7d01f776e4
2 changed files with 60 additions and 13 deletions

View file

@ -76,11 +76,11 @@
};
makeBoardK3sConfig = modules:
{ hostname, macAddress ? null, enableK3s ? true, selfIp, serverIp }:
{ hostname, macAddress ? null, enableK3s ? true, selfIp, selfIp6, serverIp }:
makeGenericK3sConfig {
inherit hostname enableK3s serverIp;
extraModules = [ (networkModule { inherit macAddress selfIp; }) ]
extraModules = [ (networkModule { inherit macAddress selfIp selfIp6; }) ]
++ modules;
};
@ -99,6 +99,7 @@
, unlockMounts ? true
, mountVolumes ? true
, selfIp
, selfIp6
, serverIp ? null
}:
let
@ -113,7 +114,7 @@
enableK3s = unlockMounts && mountVolumes && enableK3s;
extraModules = sd-images.packages.${system}.SoQuartzBlade.modules ++ [
(networkModule { inherit selfIp; })
(networkModule { inherit selfIp selfIp6; })
(btrbkModule {
instances = [
{
@ -267,6 +268,7 @@
, unlockMounts ? true
, mountVolumes ? true
, selfIp
, selfIp6
, serverIp ? null
}:
let
@ -280,7 +282,7 @@
enableK3s = unlockMounts && mountVolumes && enableK3s;
extraModules = sd-images.packages.${system}.SoQuartzBlade.modules ++ [
(networkModule { inherit selfIp; })
(networkModule { inherit selfIp selfIp6; })
(btrbkModule {
instances = [
{
@ -410,7 +412,7 @@
};
makeBuildConfig = system:
{ hostname, macAddress ? null, selfIp }:
{ hostname, macAddress ? null, selfIp, selfIp6 }:
let
device = "/btrfs.4G";
mountDir = "/btrfs/loop";
@ -421,7 +423,7 @@
extraModules = sd-images.packages.${system}.RockPro64v2.modules ++ [
dockerModule
(networkModule { inherit macAddress selfIp; })
(networkModule { inherit macAddress selfIp selfIp6; })
(btrbkModule { instances = [{ inherit mountDir subvolumes; }]; })
(subvolumesModule { inherit device subvolumes; })
({ lib, ... }: {
@ -449,6 +451,7 @@
makeBoardBackupConfig = modules: system:
{ hostname
, selfIp
, selfIp6
, unlockMounts ? true
, mountVolumes ? true
, enableBackups ? true
@ -463,7 +466,7 @@
inherit hostname;
extraModules = modules ++ [
(networkModule { inherit selfIp; })
(networkModule { inherit selfIp selfIp6; })
(btrbkModule {
instances = backupHosts;
localMountDir = mountDir;
@ -549,7 +552,7 @@
makeQuartz64ABackupConfig = makeBoardBackupConfig sd-images.packages.${system}.Quartz64A.modules;
makeJellyfinConfig = system:
{ hostname, selfIp, macAddress ? null, unlockMounts ? true, mountVolumes ? true, enableJellyfin ? true }:
{ hostname, selfIp, selfIp6, macAddress ? null, unlockMounts ? true, mountVolumes ? true, enableJellyfin ? true }:
let
deviceLabel = "RAID";
device = "/dev/disk/by-label/${deviceLabel}";
@ -560,7 +563,7 @@
inherit hostname;
extraModules = sd-images.packages.${system}.RockPro64v2.modules ++ [
(networkModule { inherit macAddress selfIp; })
(networkModule { inherit macAddress selfIp selfIp6; })
(if unlockMounts && mountVolumes then
(btrbkModule {
instances = [{ inherit mountDir subvolumes; name = "jellyfin"; }];
@ -666,7 +669,7 @@
};
makePostgresConfig = system:
{ hostname, selfIp, macAddress, keyFile, primaryIp ? null, unlockMounts ? true, mountVolumes ? true, luksDevice ? "/dev/sda1" }:
{ hostname, selfIp, selfIp6, macAddress, keyFile, primaryIp ? null, unlockMounts ? true, mountVolumes ? true, luksDevice ? "/dev/sda1" }:
let
device = "/dev/mapper/cryptdrive1";
mountDir = "/btrfs/ssd";
@ -677,7 +680,7 @@
extraModules = sd-images.packages.${system}.Rock64.modules ++ [
dockerModule
(networkModule { inherit macAddress selfIp; })
(networkModule { inherit macAddress selfIp selfIp6; })
(if unlockMounts && mountVolumes then
(btrbkModule {
instances = [{ inherit mountDir primaryIp subvolumes; }];
@ -755,6 +758,7 @@
redtail1 = makePostgresConfig system {
hostname = "redtail1";
selfIp = "192.168.20.23";
selfIp6 = "2001:db8:20::23";
macAddress = "02:fe:30:d8:cf:64";
keyFile = "redtailKeyFile";
primaryIp = "192.168.20.24";
@ -764,6 +768,7 @@
redtail2 = makePostgresConfig system {
hostname = "redtail2";
selfIp = "192.168.20.24";
selfIp6 = "2001:db8:20::24";
macAddress = "02:8a:70:2a:a8:5e";
keyFile = "redtailKeyFile";
# primaryIp = "192.168.20.23";
@ -772,6 +777,7 @@
whitestorm1 = makePostgresConfig system {
hostname = "whitestorm1";
selfIp = "192.168.20.26";
selfIp6 = "2001:db8:20::26";
macAddress = "02:71:18:30:fc:0f";
keyFile = "whitestormKeyFile";
# primaryIp = "192.168.20.27";
@ -780,6 +786,7 @@
whitestorm2 = makePostgresConfig system {
hostname = "whitestorm2";
selfIp = "192.168.20.27";
selfIp6 = "2001:db8:20::27";
macAddress = "02:ff:ce:a9:d3:74";
keyFile = "whitestormKeyFile";
primaryIp = "192.168.20.26";
@ -788,106 +795,124 @@
build2 = makeBuildConfig system {
hostname = "build2";
selfIp = "192.168.20.101";
selfIp6 = "2001:db8:20::101";
};
k3s1 = makeOldSoQuartzK3sConfig system {
hostname = "k3s1";
selfIp = "192.168.20.120";
selfIp6 = "2001:db8:20::120";
};
k3s2 = makeOldSoQuartzK3sConfig system {
hostname = "k3s2";
selfIp = "192.168.20.121";
selfIp6 = "2001:db8:20::121";
serverIp = "192.168.20.120";
};
k3s3 = makeOldSoQuartzK3sConfig system {
hostname = "k3s3";
selfIp = "192.168.20.122";
selfIp6 = "2001:db8:20::122";
serverIp = "192.168.20.120";
};
k3s4 = makeOldSoQuartzK3sConfig system {
hostname = "k3s4";
selfIp = "192.168.20.123";
selfIp6 = "2001:db8:20::123";
serverIp = "192.168.20.120";
};
k3s5 = makeOldSoQuartzK3sConfig system {
hostname = "k3s5";
selfIp = "192.168.20.124";
selfIp6 = "2001:db8:20::124";
serverIp = "192.168.20.120";
};
k3s6 = makeSoQuartzK3sConfig system {
hostname = "k3s6";
selfIp = "192.168.20.125";
selfIp6 = "2001:db8:20::125";
serverIp = "192.168.20.120";
};
k3s7 = makeSoQuartzK3sConfig system {
hostname = "k3s7";
selfIp = "192.168.20.126";
selfIp6 = "2001:db8:20::126";
serverIp = "192.168.20.120";
};
k3s8 = makeSoQuartzK3sConfig system {
hostname = "k3s8";
selfIp = "192.168.20.127";
selfIp6 = "2001:db8:20::127";
serverIp = "192.168.20.120";
};
k3s9 = makeSoQuartzK3sConfig system {
hostname = "k3s9";
selfIp = "192.168.20.128";
selfIp6 = "2001:db8:20::128";
serverIp = "192.168.20.120";
};
k3s10 = makeSoQuartzK3sConfig system {
hostname = "k3s10";
selfIp = "192.168.20.129";
selfIp6 = "2001:db8:20::129";
serverIp = "192.168.20.120";
};
k3s11 = makeSoQuartzK3sConfig system {
hostname = "k3s11";
selfIp = "192.168.20.130";
selfIp6 = "2001:db8:20::130";
serverIp = "192.168.20.120";
};
k3s12 = makeSoQuartzK3sConfig system {
hostname = "k3s12";
selfIp = "192.168.20.131";
selfIp6 = "2001:db8:20::131";
serverIp = "192.168.20.120";
};
k3s13 = makeSoQuartzK3sConfig system {
hostname = "k3s13";
selfIp = "192.168.20.132";
selfIp6 = "2001:db8:20::132";
serverIp = "192.168.20.120";
};
k3s14 = makeSoQuartzK3sConfig system {
hostname = "k3s14";
selfIp = "192.168.20.133";
selfIp6 = "2001:db8:20::133";
serverIp = "192.168.20.120";
};
k3s15 = makeSoQuartzK3sConfig system {
hostname = "k3s15";
selfIp = "192.168.20.134";
selfIp6 = "2001:db8:20::134";
serverIp = "192.168.20.120";
};
k3s16 = makeSoQuartzK3sConfig system {
hostname = "k3s16";
selfIp = "192.168.20.135";
selfIp6 = "2001:db8:20::135";
serverIp = "192.168.20.120";
};
k3s-rock1 = makeRock64K3sConfig system {
hostname = "k3s-rock1";
selfIp = "192.168.20.110";
selfIp6 = "2001:db8:20::110";
serverIp = "192.168.20.120";
macAddress = "02:36:51:19:8c:5d";
};
@ -895,6 +920,7 @@
k3s-rock2 = makeRock64K3sConfig system {
hostname = "k3s-rock2";
selfIp = "192.168.20.111";
selfIp6 = "2001:db8:20::111";
serverIp = "192.168.20.120";
macAddress = "02:af:fa:0e:c5:41";
};
@ -902,6 +928,7 @@
k3s-rock3 = makeRock64K3sConfig system {
hostname = "k3s-rock3";
selfIp = "192.168.20.112";
selfIp6 = "2001:db8:20::112";
serverIp = "192.168.20.120";
macAddress = "02:86:c1:62:77:51";
};
@ -909,6 +936,7 @@
k3s-rock4 = makeRock64K3sConfig system {
hostname = "k3s-rock4";
selfIp = "192.168.20.113";
selfIp6 = "2001:db8:20::113";
serverIp = "192.168.20.120";
macAddress = "02:7a:2e:2c:bb:99";
};
@ -916,6 +944,7 @@
k3s-rock5 = makeRock64K3sConfig system {
hostname = "k3s-rock5";
selfIp = "192.168.20.114";
selfIp6 = "2001:db8:20::114";
serverIp = "192.168.20.120";
macAddress = "02:76:67:0f:a0:b7";
};
@ -923,6 +952,7 @@
k3s-rock6 = makeRock64K3sConfig system {
hostname = "k3s-rock6";
selfIp = "192.168.20.115";
selfIp6 = "2001:db8:20::115";
serverIp = "192.168.20.120";
macAddress = "02:6b:c5:f0:d7:6d";
};
@ -930,6 +960,7 @@
k3s-rock7 = makeRock64K3sConfig system {
hostname = "k3s-rock7";
selfIp = "192.168.20.116";
selfIp6 = "2001:db8:20::116";
serverIp = "192.168.20.120";
macAddress = "02:5b:c4:cf:25:c2";
};
@ -937,18 +968,21 @@
k3s-quartza1 = makeQuartz64AK3sConfig system {
hostname = "k3s-quartza1";
selfIp = "192.168.20.160";
selfIp6 = "2001:db8:20::160";
serverIp = "192.168.20.120";
};
k3s-rockpro1 = makeRockPro64K3sConfig system {
hostname = "k3s-rockpro1";
selfIp = "192.168.20.180";
selfIp6 = "2001:db8:20::180";
serverIp = "192.168.20.120";
};
jellyfin = makeJellyfinConfig system {
hostname = "jellyfin";
selfIp = "192.168.20.195";
selfIp6 = "2001:db8:20::195";
};
pinetab2 = makeDesktopConfig {
@ -989,6 +1023,7 @@
makeQuartz64ABackupConfig system {
hostname = "backup1";
selfIp = "192.168.20.190";
selfIp6 = "2001:db8:20::190";
backupHosts = [
(k3sMain {
ip = "192.168.20.120";
@ -1112,6 +1147,7 @@
makeRockPro64BackupConfig system {
hostname = "backup2";
selfIp = "192.168.20.191";
selfIp6 = "2001:db8:20::191";
backupHosts = (builtins.map firestar [
{
name = "hdd";

View file

@ -1,4 +1,4 @@
{ macAddress ? null, selfIp }:
{ macAddress ? null, selfIp, selfIp6 }:
{
networking = {
@ -8,8 +8,19 @@
address = selfIp;
prefixLength = 24;
}];
ipv6.addresses = [{
address = selfIp6;
prefixLength = 64;
}];
};
defaultGateway = "192.168.20.1";
nameservers = [ "192.168.20.1" ];
defaultGateway6 = {
address = "2001:db8:20::1";
interface = "end0";
};
nameservers = [
"192.168.20.1"
"2001:db8:20::1"
];
};
}