레거시 Terraform 공급자 업그레이드

2075 단어 awsterraformgithub
나는 최근에 꽤 오래된 Terraform 프로젝트(내 생각에 v0.10.x를 사용하여 구축됨)에서 작업했습니다. 이 프로젝트의 상태는 v0.13+와 더 이상 호환되지 않으므로 명령을 실행하려고 할 때 오류가 발생합니다. 상당히 실망스럽고 문서가별로 도움이되지 않는 것 같습니다.

수동으로 0.13으로 다운그레이드하고 terraform 0.13upgrade 실행한 다음 최신 버전으로 업그레이드하는 것 외에는 문서화된 솔루션이 없는 것 같습니다.

다음과 유사한 일종의 오류가 발생할 수 있습니다.

Error: Invalid legacy provider address

This configuration or its associated state refers to the unqualified provider "aws"

You must complete the Terraform 0.13 upgrade process before upgrading to later



이미 terraform 0.13 이상으로 업그레이드했다면(이 글을 읽고 있을 가능성이 높음) 대신 상태 값을 직접 교체해야 합니다. 이것은 다음 명령으로 수행할 수 있습니다.

terraform state replace-provider registry.terraform.io/-/aws hashicorp/aws
terraform state replace-provider registry.terraform.io/-/github hashicorp/aws


이와 관련하여 Github 제공자는 hashcorp 네임스페이스에서 integrations/github 로 이동했습니다. 이 새 참조로 기존 상태를 업데이트해야 합니다. 표시되는 오류 메시지는 다음과 유사할 수 있습니다.

Warning: Additional provider information from registry

The remote registry returned warnings for registry.terraform.io/hashicorp/github:
For users on Terraform 0.13 or greater, this provider has moved to integrations/github. Please update your source in required_providers.



다음 구성으로 이 문제를 해결할 수 있습니다.

terraform {
  required_providers {
    github = {
      source  = "integrations/github"
      version = "~> 4.10"
    }
  }
}


변경이 완료되면 다음을 실행하여 상태와 동기화하세요.

terraform state replace-provider hashicorp/github integrations/github


이제 녹색으로 표시되어야 하고 사용 중인 terraform init integrations/github 를 실행할 수 있습니다.

내 현재 출력은 다음을 보여줍니다.

terraform -version
Terraform v0.15.4
on darwin_amd64
+ provider registry.terraform.io/integrations/github v4.10.1

좋은 웹페이지 즐겨찾기