베타에서 일반 공급(GA)으로 업데이트하기

베타에서 일반 공급(GA)으로 업데이트하기 (Update from beta to general availability)

Stacks의 GA 릴리스는 몇 가지 새로운 기능과 개선 사항을 도입해요.

출처: 문서

본문

Terraform CLI 변경 사항

Stacks 베타 동안에는 terraform-stacks-cli로 Stack을 초기화할 수 있었어요. 별도의 terraform-stacks-cli는 이제 더 이상 사용되지 않아요(deprecated). 더 통합된 경험을 제공하기 위해, 모든 Stacks 명령이 이제 주 테라폼 CLI의 새 하위 명령인 terraform stacks로 이동했어요. 이제 단일 도구에서 모든 테라폼 Stack 작업을 관리할 수 있게 되어 워크플로우가 간소화돼요. 자세한 내용은 terraform stacks CLI 명령을 참고하세요.

언어 변경 사항

Stacks의 일반 공급 릴리스는 Stacks 언어에 몇 가지 하위 호환되지 않는(backward-incompatible) 문법 변경을 도입했어요.

  • 배포 그룹과 자동 승인에 대한 문법 변경:
    • 오케스트레이션 규칙용 auto_approve, orchestrate, replan 블록은 이제 더 이상 사용되지 않아요.
    • auto_approve 블록은 deployment_group 블록의 새로운 auto_approve_checks 인자로 대체됐어요. 새 deployment_group 문법은 사용자 지정 배포 그룹 안에서 직접 자동 승인 규칙을 정의할 수 있게 해줘서 더 세밀한 제어를 제공해요. 배포 실행 조건 정의에 대해 더 알아보세요.
  • Stacks는 더 이상 <NAME>.tfstack.hcl 파일 확장자를 지원하지 않아요.
  • Stack 컴포넌트를 구성하는 새 확장자는 <NAME>.tfcomponent.hcl이에요. 파일 이름 변경은 컴포넌트 기반 구성의 정신 모델을 더 잘 반영해요.

청구 변경 사항 (Billing Changes)

Stacks 공개 베타는 HCP Terraform 조직의 RUM(Resources Under Management, 관리 중인 리소스)에 계산되지 않았어요. GA 릴리스에서는 청구 목적으로 Stacks RUM이 워크스페이스 RUM과 집계돼요.

청구 대시보드 (Billing Dashboard)

HCP Terraform 사용량 페이지가 새 청구 지표를 반영하도록 갱신됐어요. 포함 내용:

  • Billable Managed Resources — 총 Stacks RUM과 총 워크스페이스 RUM의 합을 표시해요.
  • Total Applies — 총 Stacks와 워크스페이스 apply의 합을 표시해요.
  • Applies this month — 이번 달의 Stacks와 워크스페이스 applies를 표시해요.
  • Billable Stack Resources — 총 Stacks RUM의 합을 표시해요.

청구에 대한 자세한 내용은 HCP Terraform 가격 페이지를 참고하세요.

마이그레이션 단계 (Steps for migration)

공개 베타 동안 Stacks를 사용했다면 기존 구성을 GA 릴리스로 전환하기 위해 몇 가지 단계를 거쳐야 해요.

참고: Stacks가 일반 공급으로 릴리스된 후에는 기존 베타 구성과 state 기록이 더 이상 사용할 수 없어요.

구성 파일 갱신하기 (Update your configuration files)

tfcomponent.hcl 파일 확장자와 배포 그룹·자동 승인 규칙의 새 문법을 사용하도록 Stack 구성 파일에 다음 갱신을 수행해요.

  1. 모든 <NAME>.tfstack.hcl 파일의 이름을 <NAME>.tfcomponent.hcl로 바꿔요. 예를 들어 다음 명령으로 파일 이름을 바꿀 수 있어요.
$ mv my_stack.tfstack.hcl my_stack.tfcomponent.hcl
  1. 자동 승인에 새 deployment_group 문법을 사용하도록 구성 파일을 갱신해요. 예를 들어 다음 코드 조각은 더 이상 사용되지 않는 orchestrate 블록을 사용해요.
orchestrate "auto_approve" "no_destroy" {
  check {
    condition = context.plan.changes.remove == 0
    reason    = "Plan destroys ${context.plan.changes.remove} resources."
  }
}

자동 승인 규칙을, deployment_auto_approve 블록으로 규칙을 정의한 다음 auto_approve_checks 인자로 그 규칙을 배포 그룹에 연결하는 방식으로 다시 쓸 수 있어요. 다음 예제는 배포 그룹을 사용해 auto_approve 규칙을 다시 작성해요.

# deployments.tfdeploy.hcl
deployment "my_deployment" {
  inputs = {
    # ...
  }
  deployment_group = deployment_group.my_custom_group
}

deployment_group "my_custom_group" {
  auto_approve_checks = [
    deployment_auto_approve.no_destroy
  ]
}

deployment_auto_approve "no_destroy" {
  check {
    condition = context.plan.changes.remove == 0
    reason    = "Plan destroys ${context.plan.changes.remove} resources."
  }
}

배포 그룹과 자동 승인 규칙에 대한 자세한 내용은 배포 실행 조건 정의를 참고하세요.

구성 가져오기 (Fetch your configuration)

각 Stack에 대해 새 구성 가져오기(fetch)를 트리거해요. 가져오기 프로세스는 VCS(버전 관리 시스템)에서 구성을 가져와 Stack을 다시 초기화해요. 새 CLI의 terraform stacks fetch 명령을 사용하거나 HCP Terraform UI에서 배포 실행을 트리거해서 할 수 있어요.

더 알아보기 (Learn more)