Il plug-in terraform installato manualmente non riesce

Aug 22 2020

Sto usando terraform 0.13.0 e sto provando con il provider kubernetes-alpha (https://github.com/hashicorp/terraform-provider-kubernetes-alpha). Scarico il plugin per Mac e lo copio in ~/.terraform.d/plugins dir

quando eseguo terraform init non trova il plugin locale, invece sta cercando di trovarlo dal sito hashicorp

terraform init
2020/08/21 16:42:58 [WARN] Log levels other than TRACE are currently unreliable, and are supported only for backward compatibility.
  Use TF_LOG=TRACE to see Terraform's internal logs.
  ----
2020/08/21 16:42:58 [INFO] Terraform version: 0.13.0
2020/08/21 16:42:58 [INFO] Go runtime version: go1.14.2
2020/08/21 16:42:58 [INFO] CLI args: []string{"<$HOME>/bin/terraform", "init"}
2020/08/21 16:42:58 [DEBUG] Attempting to open CLI config file: <$HOME>/.terraformrc
2020/08/21 16:42:58 Loading CLI configuration from <$HOME>/.terraformrc
2020/08/21 16:42:58 [DEBUG] checking for credentials in "<$HOME>/.terraform.d/plugins"
2020/08/21 16:42:58 [DEBUG] checking for credentials in "<$HOME>/.terraform.d/plugins/darwin_amd64"
2020/08/21 16:42:58 [DEBUG] ignoring non-existing provider search directory terraform.d/plugins
2020/08/21 16:42:58 [DEBUG] will search for provider plugins in <$HOME>/.terraform.d/plugins
2020/08/21 16:42:58 [DEBUG] ignoring non-existing provider search directory <$HOME>/Library/Application Support/io.terraform/plugins
2020/08/21 16:42:58 [DEBUG] ignoring non-existing provider search directory /Library/Application Support/io.terraform/plugins
2020/08/21 16:42:58 [INFO] CLI command args: []string{"init"}
2020/08/21 16:42:58 [WARN] Log levels other than TRACE are currently unreliable, and are supported only for backward compatibility.
  Use TF_LOG=TRACE to see Terraform's internal logs.
  ----
Initializing modules...
2020/08/21 16:42:58 [WARN] Log levels other than TRACE are currently unreliable, and are supported only for backward compatibility.
  Use TF_LOG=TRACE to see Terraform's internal logs.
  ----
2020/08/21 16:42:58 [DEBUG] Module installer: begin app
- app in app
2020/08/21 16:42:58 [DEBUG] Module installer: app installed at app
2020/08/21 16:42:58 [DEBUG] Module installer: begin gke
- gke in gke
2020/08/21 16:42:58 [DEBUG] Module installer: gke installed at gke
2020/08/21 16:42:58 [DEBUG] Module installer: begin iam
2020/08/21 16:42:58 [DEBUG] Module installer: iam installed at iam
2020/08/21 16:42:58 [DEBUG] Module installer: begin vpc
- iam in iam
2020/08/21 16:42:58 [DEBUG] Module installer: vpc installed at vpc
Initializing the backend...
2020/08/21 16:42:58 [DEBUG] New state was assigned lineage "7541d58f-fc27-1b61-d496-834e76d1fcdb"
2020/08/21 16:42:58 [DEBUG] checking for provisioner in "."

Initializing provider plugins...
- Finding latest version of hashicorp/kubernetes-alpha...
2020/08/21 16:42:58 [DEBUG] checking for provisioner in "<$HOME>/bin"
2020/08/21 16:42:58 [DEBUG] checking for provisioner in "<$HOME>/.terraform.d/plugins"
2020/08/21 16:42:58 [DEBUG] checking for provisioner in "<$HOME>/.terraform.d/plugins/darwin_amd64"
2020/08/21 16:42:58 [INFO] Failed to read plugin lock file .terraform/plugins/darwin_amd64/lock.json: open .terraform/plugins/darwin_amd64/lock.json: no such file or directory
2020/08/21 16:42:58 [WARN] Failed to scan provider cache directory .terraform/plugins: cannot search .terraform/plugins: lstat .terraform/plugins: no such file or directory
2020/08/21 16:42:58 [DEBUG] Service discovery for registry.terraform.io at https://registry.terraform.io/.well-known/terraform.json
2020/08/21 16:42:58 [WARN] Log levels other than TRACE are currently unreliable, and are supported only for backward compatibility.
  Use TF_LOG=TRACE to see Terraform's internal logs.
  ----
2020/08/21 16:42:58 [DEBUG] GET https://registry.terraform.io/v1/providers/hashicorp/kubernetes-alpha/versions
- Finding latest version of hashicorp/google...
- Installing hashicorp/google v3.35.0...
- Installed hashicorp/google v3.35.0 (unauthenticated)
2020/08/21 16:42:59 [WARN] Log levels other than TRACE are currently unreliable, and are supported only for backward compatibility.
  Use TF_LOG=TRACE to see Terraform's internal logs.
  ----
2020/08/21 16:42:59 [DEBUG] GET https://registry.terraform.io/v1/providers/-/kubernetes-alpha/versions

Error: Failed to install provider

Error while installing hashicorp/kubernetes-alpha: provider registry
registry.terraform.io does not have a provider named
registry.terraform.io/hashicorp/kubernetes-alpha

Successivamente ho provato a forzare il plug-in aggiungendo un require

terraform {
  required_providers {
    kubernetes-alpha = {
      source  = "localdomain/provider/kubernetes-alpha"
      version = "0.1.0"
    }
  }
}

e ho copiato il plugin in $HOME/.terraform.d/plugins/localdomain/provider/kubernetes-alpha/0.1.0/darwin_amd64

Initializing provider plugins...
2020/08/21 16:54:41 [DEBUG] Service discovery for registry.terraform.io at https://registry.terraform.io/.well-known/terraform.json
- Finding localdomain/provider/kubernetes-alpha versions matching "0.1.0"...
- Finding latest version of hashicorp/google...
- Finding latest version of hashicorp/kubernetes-alpha...
2020/08/21 16:54:42 [WARN] Log levels other than TRACE are currently unreliable, and are supported only for backward compatibility.
  Use TF_LOG=TRACE to see Terraform's internal logs.
  ----
2020/08/21 16:54:42 [DEBUG] GET https://registry.terraform.io/v1/providers/hashicorp/kubernetes-alpha/versions
- Installing hashicorp/google v3.35.0...
- Installed hashicorp/google v3.35.0 (unauthenticated)
- Installing localdomain/provider/kubernetes-alpha v0.1.0...
- Installed localdomain/provider/kubernetes-alpha v0.1.0 (unauthenticated)
2020/08/21 16:54:42 [WARN] Log levels other than TRACE are currently unreliable, and are supported only for backward compatibility.
  Use TF_LOG=TRACE to see Terraform's internal logs.
  ----
2020/08/21 16:54:42 [DEBUG] GET https://registry.terraform.io/v1/providers/-/kubernetes-alpha/versions

Error: Failed to install provider

Error while installing hashicorp/kubernetes-alpha: provider registry
registry.terraform.io does not have a provider named
registry.terraform.io/hashicorp/kubernetes-alpha

Non riesco a capire perché stia cercando di trovare il plug-in nel registro anziché utilizzare local.

Sono nuovo di terraformare e mi chiedo se mi manca qualcosa di base.

Risposte

5 NickKeenan Aug 24 2020 at 05:59

Dovrai eseguire terraform state replace-provider 'registry.terraform.io/-/kubernetes-alpha' 'localdomain/provider/kubernetes-alpha'per correggere eventuali provider legacy / senza spazio dei nomi. Consulta la guida all'aggiornamento 0.13 qui per maggiori dettagli.