71 lines
1.9 KiB
Nix
71 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
|
|
'';
|
|
|
|
}
|