`deployment_group` 블록 참조
deployment_group 블록 참조 (deployment_group block reference)
deployment_group 블록을 사용해 배포를 관리하고 그 배포에 대한 오케스트레이션 규칙을 추가할 수 있는 그룹을 정의해요. 이 페이지에서는 deployment_group 블록의 구성 모델과 지원 인자를 다룰게요.
출처: 문서
본문
deployment_group 블록을 사용해 배포를 관리하고 그 배포에 대한 오케스트레이션 규칙을 추가할 수 있는 그룹을 정의해요.
배경 (Background)
참고: 배포 그룹은 현재 그룹당 하나의 배포만 지원해요.
deployment_group 블록은 개별 배포가 가입하도록 할당할 수 있는 새 그룹을 정의해요. a deployment 블록의 deployment_group 인자를 사용해 배포를 그룹에 할당할 수 있어요. 배포를 그룹에 할당하지 않으면 Terraform은 그 배포에 대한 기본 배포 그룹을 자동으로 만들어요.
배포 그룹을 사용하면 그룹 안의 배포에 오케스트레이션 규칙을 적용할 수 있어요. 더 알아보려면 배포 실행 조건 설정을 참고해요.
구성 모델 (Configuration model)
deployment_group 블록은 다음 인자를 지원해요:
deployment_group "<NAME>"블록auto_approve_checks참조 리스트
완전한 구성 (Complete configuration)
사용 가능한 모든 인자는 다음 deployment_group 블록에 정의돼 있어요:
deployment_group "<NAME>" {
auto_approve_checks = [
deployment_auto_approve.<NAME>,
deployment_auto_approve.<NAME>
]
}
사양 (Specification)
deployment_group 블록은 다음 구성을 지원해요.
deployment_group "<NAME>"
deployment_group 키워드 뒤의 레이블은 그룹의 이름이며, 같은 배포 구성 파일의 모든 배포 그룹 사이에서 고유해야 해요. 배포 그룹의 이름은 유효한 식별자라면 무엇이든 될 수 있어요.
deployment_group 블록은 다음 인자를 지원해요:
| 인자 | 설명 | 타입 | 필수? |
|---|---|---|---|
auto_approve_checks |
deployment_auto_approve 블록에 대한 참조의 리스트예요. deployment_auto_approve 블록의 모든 검사가 통과하면 이 그룹의 배포에 대한 plan이 자동으로 적용돼요. |
참조 리스트 | 필수 |
auto_approve_checks
auto_approve_checks 인자는 deployment_auto_approve 블록에 대한 참조의 리스트를 지정해요. Terraform은 각 deployment_auto_approve 블록을 평가해 배포의 plan이 수동 승인 없이 자동으로 적용되는지 결정해요.
deployment_group "<NAME>" {
auto_approve_checks = [
deployment_auto_approve.<NAME>
]
}
여러 deployment_auto_approve 블록을 참조하면 배포의 plan이 자동으로 적용되려면 모든 검사가 통과해야 해요. deployment_auto_approve 검사가 하나라도 실패하면 plan은 수동 승인이 필요해요.
요약 (Summary)
- 데이터 타입: 참조 리스트
- 기본값: 빈 리스트 (자동 승인 없음)
- 필수: 예
예시 (Examples)
다음 예시는 deployment_group 블록의 일반적인 사용 사례를 보여줘요.
배포와 함께 배포 그룹 사용 (Using deployment groups with deployments)
다음 예시에서 production_group 배포 그룹은 production 배포를 포함해요:
deployment_group "production_group" {
auto_approve_checks = [
deployment_auto_approve.no_destroys
]
}
deployment "production" {
inputs = {
environment = "production"
instance_count = 5
}
deployment_group = deployment_group.production_group
}
각 배포는 하나의 배포 그룹에만 속할 수 있어요. 배포 그룹을 지정하지 않으면 Terraform은 그 배포에 대한 기본 그룹을 자동으로 만들어요.
자동 승인이 있는 기본 배포 그룹 (Fundamental deployment group with auto-approval)
다음 예시에서 web 배포는 production 배포 그룹에 있어요. production 그룹은 no_destroys 규칙을 참조하며, 이 규칙은 리소스를 파괴할 계획이 없으면 plan이 자동으로 적용되게 해요:
deployment_auto_approve "no_destroys" {
check {
condition = context.plan.changes.remove == 0
reason = "Plan removes ${context.plan.changes.remove} resources."
}
}
deployment_group "production" {
auto_approve_checks = [
deployment_auto_approve.no_destroys
]
}
deployment "web" {
inputs = {
environment = "production"
region = "us-west-2"
}
deployment_group = deployment_group.production
}
HCP Terraform은 이제 web 배포에서 리소스를 제거하지 않는 모든 plan을 자동으로 승인해요. plan이 리소스 파괴를 포함하면 수동 승인이 필요해요.
여러 자동 승인 검사 (Multiple auto-approval checks)
다음 예시에서 staging 배포 그룹은 allow_plans과 apply_staging이라는 두 deployment_auto_approve 블록을 참조해요:
deployment_auto_approve "allow_plans" {
check {
condition = context.operation == "plan"
reason = "Apply operations need manual approval."
}
}
deployment_auto_approve "apply_staging" {
check {
condition = context.plan.deployment == deployment.staging
reason = "Automatically applying staging deployment."
}
}
deployment_group "staging" {
auto_approve_checks = [
deployment_auto_approve.no_destroys,
deployment_auto_approve.cost_limit
]
}
deployment "staging" {
inputs = {
environment = "staging"
region = "us-east-1"
}
deployment_group = deployment_group.staging
}
staging 배포 그룹은 이제 staging 배포를 대상으로 하는 계획 실행을 자동 승인해요. 이 검사 중 하나라도 실패하면 plan은 수동 승인이 필요해요.