Skip to content
Snippets Groups Projects
default.nix 1.47 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Gather up the grid library functionality and present it in a (somewhat)
    # coherent public interface.  Application code should prefer these names over
    # directly importing the source files in this directory.
    {
    
      base = import ./base.nix;
    
    
      hardware-aws = import ./issuer-aws.nix;
    
      hardware-vagrant = import ./hardware-vagrant.nix;
    
    
      issuer = import ./issuer.nix;
    
      storage = import ./storage.nix;
    
      monitoring = import ./monitoring.nix;
    
    
      modules = builtins.toString ../../nixos/modules;
    
    
      # The nixpkgs version used in our deployments. This affects both the packages
      # installed, as well as the NixOS module set that is used.
      # This is intended to be used in a grid definition like:
      #     network = { ... ; inherit (gridlib) pkgs; ... }
    
      pkgs = import ../../nixpkgs.nix {
    
        # Ensure that configuration of the system where this runs
        # doesn't leak into what we build.
        # See https://github.com/NixOS/nixpkgs/issues/62513
    
        config = { pkgs }: let lib = pkgs.lib; in {
          allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
            "megacli"
          ];
        };
    
        # Expose `nixos/pkgs` as an attribute of our package set.
        # This is is primarly consumed by `nixos/modules/packages.nix`, which
        # then exposes it as a module argument. We do this here, so that
        # the package set only needs to be evaluted once for the grid, rather
        # than once for each host.
        overlays = [
          (self: super: { ourpkgs = self.callPackage ../../nixos/pkgs {}; })
        ];