Newer
Older
# 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;

Tom Prince
committed
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 {}; })
];