nixos-config/terranix/graylog/shell.nix

72 lines
1.9 KiB
Nix

{ pkgs ? import <nixpkgs> { } }:
let
terranix = pkgs.callPackage (pkgs.fetchgit {
url = "https://github.com/mrVanDalo/terranix.git";
rev = "6097722f3a94972a92d810f3a707351cd425a4be";
sha256 = "1d8w82mvgflmscvq133pz9ynr79cgd5qjggng85byk8axj6fg6jw";
}) { };
# a custom provider for terraform
graylog = pkgs.buildGoModule rec {
name = "terraform-provider-graylog-${version}";
version = "v3.3.0";
subPackages = [ "./terraform" ];
src = pkgs.fetchFromGitHub {
owner = "suzuki-shunsuke";
repo = "go-graylog";
sha256 = "12b0d70qzwaqgzksiyc7ia86g7869b1a6mfymqzkp2h5h4kcwcfh";
rev = "${version}";
};
modSha256 = "0zbly0wyqa4jw6h54b1y03j6v1c5fqgslfdyrzii9rpq3y6g0kkf";
postInstall = "mv $out/bin/terraform{,-provider-graylog_${version}}";
meta = with pkgs.stdenv.lib; {
homepage = "https://github.com/suzuki-shunsuke/go-graylog";
description = "Terraform provider is used to manage graylog.";
platforms = platforms.linux;
license = licenses.mpl20;
maintainers = with maintainers; [ palo ];
};
};
terraform = pkgs.terraform.withPlugins (p: [ graylog ]);
in pkgs.mkShell {
buildInputs = [
# terraform wrapper to set access variables
# -----------------------------------------
(pkgs.writeShellScriptBin "terraform" ''
export TF_VAR_web_endpoint_uri="http://schasch.private:9000/api"
export TF_VAR_auth_name=admin
export TF_VAR_auth_password=yourpassword
${terraform}/bin/terraform "$@"
'')
# terranix to avoid HCL
# ---------------------
terranix
# tooling
# -------
pkgs.terraform-landscape
pkgs.terraform-docs
];
shellHook = ''
# save shell history in project folder
HISTFILE=${toString ./.history}
# configure password store to use subfolder
export PASSWORD_STORE_DIR=./secrets
'';
}