|
|
|
@ -4,6 +4,8 @@ |
|
|
|
|
, buildGoPackage |
|
|
|
|
, fetchFromGitHub |
|
|
|
|
, makeWrapper |
|
|
|
|
, runCommand |
|
|
|
|
, writeText |
|
|
|
|
, terraform-providers |
|
|
|
|
}: |
|
|
|
|
|
|
|
|
@ -118,4 +120,25 @@ in rec { |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
terraform_0_11-full = terraform_0_11.withPlugins lib.attrValues; |
|
|
|
|
|
|
|
|
|
# Tests that the plugins are being used. Terraform looks at the specific |
|
|
|
|
# file pattern and if the plugin is not found it will try to download it |
|
|
|
|
# from the Internet. With sandboxing enable this test will fail if that is |
|
|
|
|
# the case. |
|
|
|
|
terraform_plugins_test = let |
|
|
|
|
mainTf = writeText "main.tf" '' |
|
|
|
|
resource "random_id" "test" {} |
|
|
|
|
''; |
|
|
|
|
terraform = terraform_0_11.withPlugins (p: [ p.random ]); |
|
|
|
|
test = runCommand "terraform-plugin-test" { buildInputs = [terraform]; } |
|
|
|
|
'' |
|
|
|
|
set -e |
|
|
|
|
# make it fail outside of sandbox |
|
|
|
|
export HTTP_PROXY=http://127.0.0.1:0 HTTPS_PROXY=https://127.0.0.1:0 |
|
|
|
|
cp ${mainTf} main.tf |
|
|
|
|
terraform init |
|
|
|
|
touch $out |
|
|
|
|
''; |
|
|
|
|
in test; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|