Archived
Check NixOS configurations / eval-hosts (push) Successful in 10m39s
Infrastructure changes already applied to pve1:
- vmbr2 internal bridge created (192.168.5.0/24, no physical uplink)
- VM 200 (ha-server-1): net2 added → vmbr2 (ens20)
- VM 201 (ha-server-2): net2 added → vmbr2 (ens20)
- CT 105 (docker): net1 added → vmbr2 (eth1)
- VM 101 (server): net1 added → vmbr2 (ens19) — needs reboot to activate
NixOS config (deploy to ha nodes to complete; docker/server at cutover):
- ha-server-{1,2}/host.nix: ens20 with 192.168.5.{228,227}/24
- docker/host.nix: eth1 with 192.168.5.225/24
- server/host.nix: ens19 with 192.168.5.226/24
- cluster-config.nix: corosync ring1 on LAN IPs as backup heartbeat path
- cluster-config.nix: allow haClientCidr (192.168.5.0/24) in iptables
- ha-server.nix: NFS exports now allow both lanCidr and haClientCidr
- VIP moves from 192.168.2.229 (vmbr0/LAN) to 192.168.5.229 (vmbr2)
- iSCSI portal to be rebound from [::0] to 192.168.5.229 at cutover
variables.nix: haStorageCidr corrected to 192.168.4.224/29; new vars:
vmStorageClientInterface, lxcStorageInterface, haServer{1,2}ClientIp,
dockerStorageIp, serverStorageIp, haClientCidr/PrefixLength; haServerVip
updated to 192.168.5.229.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
26 lines
992 B
Nix
26 lines
992 B
Nix
{ vars, ... }:
|
|
|
|
{
|
|
networking = {
|
|
hostName = "docker";
|
|
hostId = "007f0200";
|
|
useDHCP = false;
|
|
interfaces = {
|
|
${vars.vmLanInterface}.ipv4.addresses = [{ address = vars.dockerIp; prefixLength = vars.lanPrefixLength; }];
|
|
${vars.lxcStorageInterface}.ipv4.addresses = [{ address = vars.dockerStorageIp; prefixLength = vars.haClientPrefixLength; }];
|
|
};
|
|
defaultGateway = { address = vars.lanGateway; interface = vars.vmLanInterface; };
|
|
nameservers = [ vars.domainControllerIp ];
|
|
};
|
|
boot.zfs.forceImportRoot = false;
|
|
|
|
# Only advertise the LAN interface to IPA DNS. Without this, SSSD registers
|
|
# every Docker bridge (172.x.x.x) as an A record for docker.sweet.home —
|
|
# the default dyndns.interface = "*" catches them all.
|
|
security.ipa.dyndns.interface = vars.lxcLanInterface; # eth0
|
|
|
|
# Preserved from the pre-refactor `docker` target — stateVersion must never
|
|
# be bumped on an already-installed machine.
|
|
system.stateVersion = "25.05";
|
|
}
|