We are using Terraform Cloud and I have a custom provide that we are using and I’m building it and including it our git repo.
Our file structure looks like this:
├── README.md
├── docker-compose.yaml
├── respositories.tf
├── terraform.d
│ └── plugins
│ ├── darwin_amd64
│ │ └── terraform-provider-cyral_v0.1.0
│ └── linux_amd64
│ └── terraform-provider-cyral_v0.1.0
└── terraform.tf
When I run this locally in a docker container it executes without and issues. When I run it in Terraform Enterprise, I get the following error:
Error: Failed to instantiate provider "cyral" to obtain schema: fork/exec /terraform/terraform.d/plugins/linux_amd64/terraform-provider-cyral_v0.1.0: no such file or directory
Terraform v0.12.24
Configuring remote state backend...
Initializing Terraform configuration...
2020/05/20 00:17:04 [DEBUG] Using modified User-Agent: Terraform/0.12.24 TFC/d33daf519f
2020/05/20 00:17:04 [DEBUG] Using modified User-Agent: Terraform/0.12.24 TFC/d33daf519f
2020/05/20 00:17:04 [INFO] Terraform version: 0.12.24
2020/05/20 00:17:04 [INFO] Go runtime version: go1.12.13
2020/05/20 00:17:04 [INFO] CLI args: []string{"/usr/local/bin/terraform", "plan", "-out", "/terraform/terraform.tfplan", "-detailed-exitcode", "-var-file=/terraform/terraform.tfvars", "-lock=false", "-parallelism=10"}
2020/05/20 00:17:04 [DEBUG] Attempting to open CLI config file: /tmp/cli.tfrc
2020/05/20 00:17:04 Loading CLI configuration from /tmp/cli.tfrc
2020/05/20 00:17:04 [DEBUG] Using modified User-Agent: HashiCorp Terraform/0.12.24 (+https://www.terraform.io) TFC/d33daf519f
2020/05/20 00:17:04 [INFO] CLI command args: []string{"plan", "-out", "/terraform/terraform.tfplan", "-detailed-exitcode", "-var-file=/terraform/terraform.tfvars", "-lock=false", "-parallelism=10"}
2020/05/20 00:17:04 [DEBUG] Using modified User-Agent: Terraform/0.12.24 TFC/d33daf519f
2020/05/20 00:17:04 [DEBUG] Using modified User-Agent: HashiCorp Terraform/0.12.24 (+https://www.terraform.io) TFC/d33daf519f
2020/05/20 00:17:04 [TRACE] Meta.Backend: built configuration for "remote" backend with hash value 504897656
2020/05/20 00:17:04 [TRACE] Preserving existing state lineage "12f318d2-7de7-124b-a77f-c6d85bf58dd7"
2020/05/20 00:17:04 [TRACE] Preserving existing state lineage "12f318d2-7de7-124b-a77f-c6d85bf58dd7"
2020/05/20 00:17:04 [TRACE] Meta.Backend: working directory was previously initialized for "remote" backend
2020/05/20 00:17:04 [TRACE] Meta.Backend: using already-initialized, unchanged "remote" backend configuration
2020/05/20 00:17:04 [DEBUG] Service discovery for app.terraform.io at https://app.terraform.io/.well-known/terraform.json
2020/05/20 00:17:04 [TRACE] HTTP client GET request to https://app.terraform.io/.well-known/terraform.json
2020/05/20 00:17:05 [TRACE] Meta.Backend: instantiated backend of type *remote.Remote
2020/05/20 00:17:05 [DEBUG] checking for provider in "."
2020/05/20 00:17:05 [DEBUG] checking for provider in "/usr/local/bin"
2020/05/20 00:17:05 [DEBUG] checking for provider in "terraform.d/plugins/linux_amd64"
2020/05/20 00:17:05 [DEBUG] found provider "terraform-provider-cyral_v0.1.0"
2020/05/20 00:17:05 [DEBUG] checking for provider in ".terraform/plugins/linux_amd64"
2020/05/20 00:17:05 [DEBUG] found valid plugin: "cyral", "0.1.0", "/terraform/terraform.d/plugins/linux_amd64/terraform-provider-cyral_v0.1.0"
2020/05/20 00:17:05 [DEBUG] checking for provisioner in "."
2020/05/20 00:17:05 [DEBUG] checking for provisioner in "/usr/local/bin"
2020/05/20 00:17:05 [DEBUG] checking for provisioner in "terraform.d/plugins/linux_amd64"
2020/05/20 00:17:05 [DEBUG] checking for provisioner in ".terraform/plugins/linux_amd64"
2020/05/20 00:17:05 [TRACE] Meta.Backend: backend *remote.Remote supports operations
2020/05/20 00:17:05 [INFO] backend/local: starting Plan operation
2020/05/20 00:17:05 [TRACE] backend/local: requesting state manager for workspace "default"
2020/05/20 00:17:05 [TRACE] backend/local: requesting state lock for workspace "default"
2020/05/20 00:17:05 [TRACE] backend/local: reading remote state for workspace "default"
2020/05/20 00:17:05 [TRACE] backend/local: retrieving local state snapshot for workspace "default"
2020/05/20 00:17:05 [TRACE] backend/local: building context for current working directory
2020/05/20 00:17:05 [DEBUG] backend/local: Skipping interactive prompts for variables because input is disabled
2020/05/20 00:17:05 [TRACE] terraform.NewContext: starting
2020/05/20 00:17:05 [TRACE] terraform.NewContext: resolving provider version selections
2020/05/20 00:17:05 [TRACE] terraform.NewContext: loading provider schemas
2020/05/20 00:17:05 [TRACE] LoadSchemas: retrieving schema for provider type "cyral"
2020-05-20T00:17:05.564Z [INFO] plugin: configuring client automatic mTLS
2020-05-20T00:17:05.600Z [DEBUG] plugin: starting plugin: path=/terraform/terraform.d/plugins/linux_amd64/terraform-provider-cyral_v0.1.0 args=[/terraform/terraform.d/plugins/linux_amd64/terraform-provider-cyral_v0.1.0]
Error: Failed to instantiate provider "cyral" to obtain schema: fork/exec /terraform/terraform.d/plugins/linux_amd64/terraform-provider-cyral_v0.1.0: no such file or directory
I can see that it successfully finds the plugin.
And I have double-checked that the permissions are correct and it’s executable and give that it works in a docker image, I’m pretty sure it’s correctly built as linux_amd64. It’s build with the following env vars GOOS=linux GOARCH=amd64
Thanks