let
  sources = import ./npins;
  system = builtins.currentSystem;
  pkgs = import sources.nixpkgs {
    inherit system;
    config = { };
    overlays = [ (import "${sources.gomod2nix}/overlay.nix") ];
  };
  helmfile-nix = import sources.helmfile-nix { inherit pkgs; };
  helmWrap =
    with pkgs;
    wrapHelm kubernetes-helm {
      plugins = with kubernetes-helmPlugins; [
        helm-diff
        helm-git
      ];
    };
  helmfileWrap = pkgs.helmfile-wrapped.override { inherit (helmWrap) pluginsDir; };
in
pkgs.mkShellNoCC {
  name = "clstr";

  packages = with pkgs; [
    # nix helpers
    just
    npins
    nix-converter

    # helm
    helmWrap
    helmfileWrap
    helmfile-nix

    # kubectl tools
    kubectl-cnpg
    kubectl-neat
    kubelogin
    kubelogin-oidc

    # linkerd
    step-cli
    linkerd

    # dapr
    dapr-cli
  ];

  ARGOCD_ENV_CLUSTER_NAME = "oceanbox";
  HELM_GIT_ACCESS_TOKEN = "glpat-xxx";
}
