I have a terraform project that provisions some infrastructure. terraform apply is executed from a Pipeline inside Azure DevOps.
I have the steps split into "Build" and "Deploy"
Build:
terraform init -backend=false -input=false
terraform validate
Deploy:
cd ./IaC/TerraformBundle
chmod +x ./.terraform/plugins/*/*
terraform init -get-plugins=false -get=false -no-color
terraform workspace select testing -no-color
terraform apply -auto-approve -input=false -no-color
The Deploy step gets the output of the Build Step as artefact (The Deploy step is part of a release pipeline). Build is done on every commit. To overcome the broken file permissions of the providers I run above chmod command.
I get the following error:
2020/07/02 09:53:31 [TRACE] module.squad_backends.module.snapshot_creation: eval: *terraform.EvalRefreshDependencies
2020/07/02 09:53:31 [TRACE] module.squad_backends.module.snapshot_creation: eval: *terraform.EvalRefresh
2020/07/02 09:53:31 [TRACE] GRPCProvider: ReadResource
2020/07/02 09:53:31 [TRACE] module.squad_backends.module.snapshot_creation: eval: *terraform.EvalRefreshDependencies
2020/07/02 09:53:31 [TRACE] module.squad_backends.module.snapshot_creation: eval: *terraform.EvalRefresh
2020/07/02 09:53:31 [TRACE] GRPCProvider: ReadResource
2020/07/02 09:53:31 [TRACE] module.squad_backends.module.snapshot_creation: eval: *terraform.EvalRefreshDependencies
2020/07/02 09:53:31 [TRACE] module.squad_backends.module.snapshot_creation: eval: *terraform.EvalRefresh
2020/07/02 09:53:31 [TRACE] GRPCProvider: ReadResource
2020/07/02 09:53:31 [TRACE] module.squad_backends.module.snapshot_creation: eval: *terraform.EvalWriteState
2020/07/02 09:53:31 [TRACE] EvalWriteState: recording 9 dependencies for module.squad_backends.module.snapshot_creation.null_resource.pack_upload["bidderoffer"]
2020/07/02 09:53:31 [TRACE] EvalWriteState: writing current state object for module.squad_backends.module.snapshot_creation.null_resource.pack_upload["bidderoffer"]
2020/07/02 09:53:31 [TRACE] [walkRefresh] Exiting eval tree: module.squad_backends.module.snapshot_creation.null_resource.pack_upload["bidderoffer"]
2020/07/02 09:53:31 [TRACE] vertex "module.squad_backends.module.snapshot_creation.null_resource.pack_upload[\"bidderoffer\"]": visit complete
2020/07/02 09:53:31 [TRACE] module.squad_backends.module.snapshot_creation: eval: *terraform.EvalWriteState
2020/07/02 09:53:31 [TRACE] EvalWriteState: recording 9 dependencies for module.squad_backends.module.snapshot_creation.null_resource.pack_upload["businessintelligence"]
2020/07/02 09:53:31 [TRACE] EvalWriteState: writing current state object for module.squad_backends.module.snapshot_creation.null_resource.pack_upload["businessintelligence"]
2020/07/02 09:53:31 [TRACE] [walkRefresh] Exiting eval tree: module.squad_backends.module.snapshot_creation.null_resource.pack_upload["businessintelligence"]
2020/07/02 09:53:31 [TRACE] vertex "module.squad_backends.module.snapshot_creation.null_resource.pack_upload[\"businessintelligence\"]": visit complete
2020/07/02 09:53:31 [TRACE] module.squad_backends.module.snapshot_creation: eval: *terraform.EvalWriteState
2020/07/02 09:53:31 [TRACE] EvalWriteState: recording 9 dependencies for module.squad_backends.module.snapshot_creation.null_resource.pack_upload["leistungsmeldung"]
2020/07/02 09:53:31 [TRACE] EvalWriteState: writing current state object for module.squad_backends.module.snapshot_creation.null_resource.pack_upload["leistungsmeldung"]
2020/07/02 09:53:31 [TRACE] [walkRefresh] Exiting eval tree: module.squad_backends.module.snapshot_creation.null_resource.pack_upload["leistungsmeldung"]
2020/07/02 09:53:31 [TRACE] vertex "module.squad_backends.module.snapshot_creation.null_resource.pack_upload[\"leistungsmeldung\"]": visit complete
2020/07/02 09:53:31 [TRACE] module.squad_backends.module.snapshot_creation: eval: *terraform.EvalWriteState
2020/07/02 09:53:31 [TRACE] EvalWriteState: recording 9 dependencies for module.squad_backends.module.snapshot_creation.null_resource.pack_upload["mobilelv"]
2020/07/02 09:53:31 [TRACE] EvalWriteState: writing current state object for module.squad_backends.module.snapshot_creation.null_resource.pack_upload["mobilelv"]
2020/07/02 09:53:31 [TRACE] [walkRefresh] Exiting eval tree: module.squad_backends.module.snapshot_creation.null_resource.pack_upload["mobilelv"]
2020/07/02 09:53:31 [TRACE] vertex "module.squad_backends.module.snapshot_creation.null_resource.pack_upload[\"mobilelv\"]": visit complete
2020/07/02 09:53:31 [TRACE] dag/walk: visiting "root"
2020/07/02 09:53:31 [TRACE] vertex "root": starting visit (terraform.graphNodeRoot)
2020/07/02 09:53:31 [TRACE] vertex "root": visit complete
2020/07/02 09:53:31 [TRACE] vertex "module.squad_backends.module.snapshot_creation.null_resource.pack_upload": dynamic subgraph completed successfully
2020/07/02 09:53:31 [TRACE] vertex "module.squad_backends.module.snapshot_creation.null_resource.pack_upload": visit complete
2020/07/02 09:53:31 [TRACE] dag/walk: visiting "provider.null (close)"
2020/07/02 09:53:31 [TRACE] vertex "provider.null (close)": starting visit (*terraform.graphNodeCloseProvider)
2020/07/02 09:53:31 [TRACE] vertex "provider.null (close)": evaluating
2020/07/02 09:53:31 [TRACE] [walkRefresh] Entering eval tree: provider.null (close)
2020/07/02 09:53:31 [TRACE] <root>: eval: *terraform.EvalCloseProvider
2020/07/02 09:53:31 [TRACE] GRPCProvider: Close
2020-07-02T09:53:31.311Z [DEBUG] plugin: plugin process exited: path=/home/vsts/work/r1/a/IaC/TerraformBundle/.terraform/plugins/linux_amd64/terraform-provider-null_v2.1.2_x4 pid=3000
2020-07-02T09:53:31.311Z [DEBUG] plugin: plugin exited
2020/07/02 09:53:31 [TRACE] [walkRefresh] Exiting eval tree: provider.null (close)
2020/07/02 09:53:31 [TRACE] vertex "provider.null (close)": visit complete
2020/07/02 09:53:31 [TRACE] dag/walk: upstream of "root" errored, so skipping
Warning: using archive_file as a resource is deprecated; consider using the data source instead
on .terraform/modules/squad_backends.snapshot_creation/ForEach/main.tf line 69, in resource "archive_file" "packs":
69: resource "archive_file" "packs" {
Error: rpc error: code = Unavailable desc = transport is closing
Error: rpc error: code = Canceled desc = context canceled
Error: rpc error: code = Canceled desc = context canceled
Error: rpc error: code = Canceled desc = context canceled
Error: rpc error: code = Canceled desc = context canceled
If I move over the Deploy step into the Build Pipeline. The step executes without problems. I expect that it has something to do with the artefact, but I can not figure out what is wrong.
EDIT:
I did now dig further into the issue and can now exclude that the artefact causes the error. After manually setting up git credentials and initialising the complete terraform code without a existing .terraform folder (so basically a clean setup) with terraform init. It still fails with the same error.