es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo solucionar el error “Failed to query available provider packages” al realizar el desarrollo local del proveedor con terraform init?

Contexto: Estoy desarrollando un nuevo proveedor de TF. Para probarlo, utilizo el siguiente consejo de la documentación de TF:

provider_installation {
  # Utiliza /home/developer/tmp/terraform-null como directorio de paquetes modificado
  # para el proveedor hashicorp/null. Esto deshabilita la verificación de versión y checksum
  # para este proveedor y obliga a Terraform a buscar el complemento del proveedor null
  # en el directorio proporcionado.
  dev_overrides {
    "hashicorp/null" = "/home/developer/tmp/terraform-null"
  }

  # Para todos los demás proveedores, instalarlos directamente desde sus registros de proveedores
  # de origen como es habitual. Si omites esto, Terraform solo usará
  # el bloque dev_overrides, y por lo tanto no estarán disponibles otros proveedores.
  direct {}
}

Y cuando ejecuto terraform plan / terraform apply, mi proveedor funciona sin problemas. Sin embargo, cuando intento ejecutar terraform init, me encuentro con el siguiente error:

Error: No se pudo consultar los paquetes de proveedores disponibles

No se pudo recuperar la lista de versiones disponibles del proveedor
hashicorp/null: no se pudo conectar a hashicorp: error
al solicitar el documento de descubrimiento: Obtener
“https://hashicorp/.well-known/terraform.json”: dial tcp: búsqueda de hashicorp en
100.217.9.1:53: no existe el host

¿Hay alguna forma de solucionarlo?

Para el contexto, mi archivo main.tf comienza con:

terraform {
  required_providers {
    null = {
      source = "hashicorp/null"
    }
  }
}

Cuando busqué en Google, encontré una publicación de blog relacionada y terraform plan parece funcionar para el autor, ya que no utiliza otros complementos, lo cual no es mi caso desafortunadamente.

Este problema en GitHub parece mostrar los mismos problemas.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que estás enfrentando problemas al consultar los paquetes de proveedores disponibles mientras ejecutas terraform init para tu nuevo proveedor de Terraform desarrollado, aunque terraform plan / terraform apply funcionan como se espera.

    Para solucionar este problema, debes agregar el punto final del registro de proveedores a tu bloque provider_installation en tu configuración de terraform, como se muestra a continuación:

    terraform {
      required_providers {
        null = {
          source = "hashicorp/null"
        }
      }
    
      provider_installation {
        # Agregar el punto final del registro de proveedores para hashicorp/null
        # para solucionar el error "Failed to query available provider packages"
        direct {
          allow_third_party = true
          exclude_kinds = ["terraform-providers"]
          include_kinds = ["provider"]
          registry_url = "https://registry.terraform.io"
        }
    
        dev_overrides {
          "hashicorp/null" = "/home/developer/tmp/terraform-null"
        }
      }
    }
    

    En el bloque provider_installation anterior, agregamos un bloque direct que especifica el punto final del registro de proveedores para hashicorp/null (que es https://registry.terraform.io`), conallow_third_partyconfigurado comotruepara permitir proveedores de terceros yexclude_kindsconfigurado para excluir cualquier proveedor que no sea un proveedor central de Terraform. También agregamosinclude_kindsconfigurado para incluir solo el tipoprovider`, que es lo que necesitamos para solucionar el error actual.

    Con este cambio, deberías poder ejecutar terraform init exitosamente y continuar probando tu nuevo proveedor de Terraform.

Comments are closed.