{ 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" ];
  };
}
