{ pkgs, lib, config, ... }: { # Cluster node configuration # Extends minimal-node with cluster-specific services (Consul, GlusterFS, CIFS, NFS) # Used by: compute nodes (c1, c2, c3) imports = [ ./minimal-node.nix ./unattended-encryption.nix ./cifs-client.nix ./consul.nix ./nfs-services-client.nix # New: NFS client for /data/services ]; options.networking.cluster.primaryInterface = lib.mkOption { type = lib.types.str; default = "eno1"; description = "Primary network interface for cluster communication (Consul, NFS, etc.)"; }; config = { # Wait for primary interface to be routable before considering network online systemd.network.wait-online.extraArgs = [ "--interface=${config.networking.cluster.primaryInterface}:routable" ]; }; }