le plugin terraform installé manuellement échoue
J'utilise terraform 0.13.0 et j'essaie le fournisseur kubernetes-alpha (https://github.com/hashicorp/terraform-provider-kubernetes-alpha). J'ai téléchargé le plugin pour Mac et copié le plugin dans ~/.terraform.d/plugins dir
lorsque je lance terraform init, il ne trouve pas le plugin local, mais essaie de le trouver à partir du site 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
Ensuite, j'ai essayé de forcer le plugin en ajoutant un requirements
terraform {
required_providers {
kubernetes-alpha = {
source = "localdomain/provider/kubernetes-alpha"
version = "0.1.0"
}
}
}
et copié le plugin dans $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
Je n'arrive pas à comprendre pourquoi il essaie de trouver le plugin sur le registre plutôt que d'utiliser local.
Je suis nouveau sur terraform et je me demande s'il me manque quelque chose de basique.
Réponses
Vous devrez exécuter terraform state replace-provider 'registry.terraform.io/-/kubernetes-alpha' 'localdomain/provider/kubernetes-alpha'afin de corriger les fournisseurs hérités / sans espace de noms. Voir le guide de mise à jour 0.13 ici pour plus de détails.