안녕하세요? 개지니어 콩니입니다. 프로 자격증 취득 후기도 못 썼는데 엉뚱한 걸로 돌아왔네요.
오늘의 주제는 테라폼에서
│ Error: Experiment has concluded
│
│ on provider.tf line 8, in terraform:
│ 8: experiments = [module_variable_optional_attrs]
│
│ Experiment "module_variable_optional_attrs" is no longer available. The final feature corresponding to this experiment differs from the experimental form and is available in the Terraform language from
│ Terraform v1.3.0 onwards.
이런 에러가 발생했을 때 이를 해결..이라기보단 walkaround로 테라폼을 다운그레이드하여 적용하는 방법을 소개합니다.
저는 가상환경에서 작업하다 보니 대부분의 패키지들이 lts(latest) 버전으로 적용되어 있는데요,
terraform도 lts로 쓰다 보니 1.3.3 버전을 사용하고 있었습니다.
정상 동작한다는 걸 알고 있고, 로컬에서는 이슈가 없었던 리포지토리인데 아무 생각 없이 terraform init을 때렸는데
위와 같은 에러가 떨어지더라구요! 다시 일하러 가야 해서 길게는 못 쓰고 관련 내용은
https://github.com/hashicorp/terraform/issues/31692
Terraform 1.3 module_variable_optional_attrs experiment support · Issue #31692 · hashicorp/terraform
Terraform Version Terraform v1.3.0-alpha20220817 on darwin_amd64 Use Cases Migrating existing modules that make use of module_variable_optional_attrs to the new behavior requires a hard upgrade fro...
github.com
이 이슈를 참고하시면 좋겠습니다.
아무튼 제 잘못은 아닌 것이 확인되었으니 편안한 마음으로, 일단 버전을 1.3.0 버전 이상이 아닌 그 아래로 다운그레이드하여 우회하기로 하였습니다. CentOS를 사용하시면 아래의 커맨드로 1.2.9 버전으로 다운그레이드 하실 수 있고요.
sudo yum -y downgrade terraform-$(yum list --showduplicates terraform | grep 1.2. | awk '{print $2}' | tail -n 1)
머 우분투면.. apt get 써서 잘 하시면 되겠고요. 그것보다도 더 좋은 방법은 tfenv 라고 해서 테라폼을 여러 버전을 스위칭해가면서 사용하실 수 있는 툴이 있습니다.
https://github.com/tfutils/tfenv
GitHub - tfutils/tfenv: Terraform version manager
Terraform version manager. Contribute to tfutils/tfenv development by creating an account on GitHub.
github.com
1.2.9로 다운그레이드 후 init 잘 돌아서 문제 없이 사용하였습니다(저의 경우). 참고해 보시면 좋겠네요.
그럼 즐거운 테라폼 생활 되세요!