A reusable devenv w/ common tools needed for Kubernetes
For a quick one-off shell with all the tools:
nix develop github:LCOGT/devenv-k8s --impure
Assuming you are using flake-parts, add the following to your flake.nix
:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
+ devenv-k8s.url = "github:LCOGT/devenv-k8s";
};
outputs = inputs@{ flake-parts, ... }:
flake-parts.lib.mkFlake { inherit inputs; } {
imports = [
+ inputs.devenv-k8s.flakeModules.default
];
systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ];
perSystem = { lib, config, ... }: {
+ config.devenv.shells.default = {
+ # ...
+ };
};
};
}
Next nix develop --impure
, it will install the packages & scripts in this devenv
in addition to any project specific ones.
For a new project you can simply use one of the provided templates to get started:
nix flake init -t github:LCOGT/devenv-k8s#app-repo
To pull in changes from upstream you need to run the following in the project that imports this:
nix flake update devenv-k8s
Some tools may require compiling. You can setup Nix to pull from a pre-built binary cache. This only needs to be done once:
nix profile install nixpkgs#cachix
cachix use lco-public