###
# File specifying all the deployement options for the nodes administrated by the dgnum.
#
# Node metadata template is:
#
# NODE_NAME = {
#   adminGroups = []; # List of groups that have root access
#   admins = []; # List of individuals that have root access
#   deployment = {}; # Colmena deployment options
#   nixpkgs = "unstable" or "22.11"; # nixpkgs version
# }

/*
  Liste des différents sites :
  - rat01 -> VM du NPSPI
  - pav01 -> Salle serveur sous le pavillon Pasteur
  - oik01 -> Local DGNum Jourdan
  - hyp01 -> Salle serveur Hypnos 1
  - luj01 -> VM de Luj
*/
{
  web01 = {
    site = "rat01";

    deployment.tags = [ "web" ];

    stateVersion = "23.05";
    vm-cluster = "Hyperviseur NPS";

    nix-modules = [ "services/crabfit" ];
  };

  compute01 = {
    site = "pav01";

    stateVersion = "23.05";
    nix-modules = [ "services/stirling-pdf" ];
  };

  geo01 = {
    site = "oik01";
    deployment.tags = [ "geo" ];

    stateVersion = "24.05";
    nixpkgs = "unstable";
  };

  geo02 = {
    site = "oik01";
    deployment.tags = [ "geo" ];

    stateVersion = "24.05";
    nixpkgs = "unstable";
  };

  storage01 = {
    site = "pav01";
    stateVersion = "23.11";

    nix-modules = [ "services/forgejo-nix-runners" ];
  };

  vault01 = {
    site = "hyp01";
    deployment.targetHost = "vault01.dgnum";

    stateVersion = "23.11";
    nixpkgs = "unstable";

    adminGroups = [ "fai" ];
  };

  web02 = {
    site = "rat01";

    stateVersion = "24.05";
    nixpkgs = "unstable";
    vm-cluster = "Hyperviseur NPS";
  };

  rescue01 = {
    site = "luj01";

    deployment.targetHost = "v6.rescue01.luj01.infra.dgnum.eu";

    stateVersion = "23.11";
    vm-cluster = "Hyperviseur Luj";
  };
}