# Top-level file aggregating all machines managed from hscloud.
#
# This allows to have a common attrset of machines that can be deployed
# in the same way.
#
# Currently building/deployment is still done in a half-assed way:
#
#    machine=edge01.waw.bgp.wtf
#    nix-build -A 'ops.machines."'$machine'"'.toplevel
#
# This spits out a derivation path that correponds to the built config of that
# machine. To deploy it:
#
#    d=/nix/store/nkdfoobarbazl0ybhazkmeyaylmaoqcr-nixos-system-edge01-20.09pre-git
#    nix-copy-closure --to root@$machine $d
#    ssh root@$machine $d/bin/switch-to-configuration
#
# TODO(q3k): merge this with //cluster/clustercfg - this should be unified!

{ hscloud, pkgs, ... }:

let
  # Stopgap measure to import //cluster/nix machine definitions into new
  # //ops/machines infrastructure.
  # TODO(q3k): inject defs-cluster-k0.nix / defs-machines.nix content via
  # nixos options instead of having module definitions loading it themselves,
  # deduplicate list of machines below with defs-machines.nix somehow.
  mkClusterMachine = name: pkgs.nixos ({ config, pkgs, ... }: {
    # The hostname is used by //cluster/nix machinery to load the appropriate
    # config from defs-machines into defs-cluster-k0.
    networking.hostName = name;
    imports = [
      ../cluster/nix/modules/base.nix
      ../cluster/nix/modules/kubernetes.nix
    ];
  });

  mkMachine = paths: pkgs.nixos ({ config, pkgs, ... }: {
    imports = paths;
  });

in {
  "bc01n01.hswaw.net" = mkClusterMachine "bc01n01";
  "bc01n02.hswaw.net" = mkClusterMachine "bc01n02";
  "bc01n03.hswaw.net" = mkClusterMachine "bc01n03";
  "dcr01s22.hswaw.net" = mkClusterMachine "dcr01s22";
  "dcr01s24.hswaw.net" = mkClusterMachine "dcr01s24";

  "edge01.waw.bgp.wtf" = mkMachine [
    ../bgpwtf/machines/edge01.waw.bgp.wtf.nix
    ../bgpwtf/machines/edge01.waw.bgp.wtf-hardware.nix
  ];
}
