본문 바로가기
공부/IaC

[OpenTofu] 프로바이더 반복하기

by haejang 2024. 12. 19.
728x90
728x90

 

 

난 테라폼을 정말 사랑하지만... 프로바이더 반복이 안되는 점에 대해 매우 답답해 했었다.

물론 프로바이더 반복으로 인해 다양한 골치아픈 일이 발생할수도 있단 점은 인지하지만 (eks모듈 안에서 쿠버/헬름 프로바이더 쓸때만 해도 머리아파 죽음)

그래도... 반복이 가능했으면 더 좋았을텐데, 하고 있었는데

 

https://github.com/opentofu/opentofu/releases/tag/v1.9.0-beta1

 

Release v1.9.0-beta1 · opentofu/opentofu

⚠️ Do not use this release for production workloads! ⚠️ It's time for the beta release of the 1.9.0 version! This includes a lot of major and minor new features, as well as a ton of community contr...

github.com

 

토푸에서 프로바이더 반복 지원을 시작했다. (아직은 rc버전까지만 나옴)

바빠서 테스트는 못해보다가 오늘 테스트 해봄.

v1.9.0-rc1 버전으로 테스트 해봤다.

 

 

1. tofu 설치

tfenv처럼 tofuenv 도구가 존재한다.

# tofuenv 설치
brew install tofuenv

# 특정 버전의 tofu 설치
tofuenv install 1.9.0-rc1
tofuenv use 1.9.0-rc1

# tofu 버전 확인
tofu --version

 

 

2. 코드 작성 (w. AWS)

`~/.aws/credentials` 파일에 (또는 config) "terraform" 이란 profile을 만들어두고 진행하였다.

테스트 코드 - https://github.com/suminhong/opentofu-test/blob/main/main.tf

 

opentofu-test/main.tf at main · suminhong/opentofu-test

OpenTofu Test. Contribute to suminhong/opentofu-test development by creating an account on GitHub.

github.com

 

locals {
  aws_regions = {
    seoul    = "ap-northeast-2"
    virginia = "us-east-1"
    tokyo    = "ap-northeast-1"
  }
}

provider "aws" {
  for_each = local.aws_regions
  alias    = "by_region"

  region  = each.value
  profile = "terraform"
}

resource "aws_vpc" "this" {
  for_each = local.aws_regions
  provider = aws.by_region[each.key]

  cidr_block = "10.0.0.0/16"
  tags = {
    Name = "${each.key}-vpc"
  }
}

 

 

3. tofu 실행

테라폼이랑 똑같다.

tofu init
tofu plan
tofu apply

 

무너가 이런 경고 문구가 뜬다. 대충 조심하라는 뜻인거같음. (근데 알빠아님)

 

잘 생성되었는지 확인해보면?

 

 

셋 다 잘만들어진걸 볼 수 있다. 대박!!!!!!!!!

나중에 회사에서도 토푸로 변환하게 될지도..............

 

오픈두부 화이팅~.~

 

 

 

728x90
728x90

댓글