2
votes

I am using terraform 0.13.0 and trying to the kubernetes-alpha provider (https://github.com/hashicorp/terraform-provider-kubernetes-alpha). I download the plugin for Mac and copied the plugin to ~/.terraform.d/plugins dir

when I run terraform init it doesn't find the local plugin, instead it is trying to find from hashicorp site

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

Next I tried to force the plugin by adding a requires

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

and copied the plugin to $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

I can't figure out why it is trying to find the plugin on registry rather than using local.

I am new to terraform and wondering if I am missing something basic.

1
You mentioned that you installed the plugin, but can you post the command you used to do that? TF is pretty finicky about the location and name of the binary. Are you interested in building it to see if that works any better?mdaniel
clone the repo and ran "make install" which built and copied the provider to ~/.terraform.d/plugins/darwin_amd64/terraform-provider-kubernetes-alpha still terraform cannot find this providerRandomQuests

1 Answers

5
votes

You'll have to run terraform state replace-provider 'registry.terraform.io/-/kubernetes-alpha' 'localdomain/provider/kubernetes-alpha' in order to fix any legacy / non-namespaced providers. See the 0.13 upgrade guide here for more details.