Container Registry에 대한 Terraform 설정
IBM Cloud®의 Terraform을 사용하면 IBM Cloud 서비스를 예측 가능하고 일관되게 프로비저닝할 수 있으므로, IaC(Infrastructure as Code) 원칙을 준수하는 복잡한 다중 계층 클라우드 환경을 신속하게 빌드할 수 있습니다. IBM Cloud CLI 또는 API 및 SDK 사용과 비슷하게, HCL(HashiCorp Configuration Language)을 사용하여 IBM Cloud® Container Registry 인스턴스의 프로비저닝, 업데이트 및 삭제를 자동화할 수 있습니다.
IBM Cloud 솔루션에서 관리되는 Terraform을 찾으십니까? IBM Cloud Schematics을(를) 시도하십시오. Schematics를 사용하면 익숙한 Terraform 스크립팅 언어를 사용할 수 있지만 Terraform 명령행 및 IBM Cloud 제공자 플러그인을 설정하고 유지보수하는 것을 걱정할 필요가 없습니다. Schematics에서는 IBM Cloud 카탈로그에서 설치할 수 있는 사전 정의된 Terraform 템플리트도 제공합니다.
Terraform 설치 및 Container Registry 네임스페이스 작성
시작하기 전에 IBM Cloud Container Registry 리소스를 작성하고 관리하기 위한 필수 액세스 권한이 있는지 확인하십시오.
-
Terraform CLI를 설치하고 Terraform에 맞게 IBM Cloud 제공자 플러그인을 구성하려면 IBM Cloud 기반 Terraform 시작하기 튜토리얼의 내용을 수행하십시오. 플러그인에서는 Container Registry 리소스를 프로비저닝, 업데이트 또는 삭제하는 데 사용되는 IBM Cloud API를 요약합니다.
-
이름이
main.tf
인 Terraform 구성 파일을 작성하십시오. 구성을 추가하여 Container Registry 네임스페이스 및 사용자에게 IAM 할당 액세스 정책사용자, 서비스 ID 및 액세스 그룹에 계정 리소스에 대한 액세스 권한을 부여하는 방법입니다. 액세스 정책에는 주체, 대상 및 역할이 포함됩니다. ~에 Cloud Identity and Access Management (IAM)을 사용하여 해당 네임스페이스에 대해 HashiCorp 구성 언어(HCL). 자세한 내용은 다음을 참조하세요. Terraform 언어 문서.다음 예에서는 기본적으로 네임스페이스를 만듭니다. 리소스 그룹포함된 리소스 인스턴스가 따르는 환경과 제한조건입니다. 협업을 사용하기 위해 사용자를 리소스 그룹과 연관시킬 수 있습니다. 원하는 이름으로 지정하고 10개의 이미지를 유지하는 해당 네임스페이스에 이미지 보존 정책을 연결합니다. 기본 자원 그룹의 ID를 검색하기 위해
ibm_resource_group
데이터 소스가 사용됩니다. 그런 다음 IAM 액세스 정책에서user@ibm.com
사용자에게 특정 지역의 네임스페이스에 대한 관리자 역할이 지정됩니다. 1단계에서 작성한terraform.tfvars
파일에서 지역이 검색됩니다.data "ibm_resource_group" "group" { name = "default" } resource "ibm_cr_namespace" "cr_namespace" { name = "<namespace_name>" resource_group_id = data.ibm_resource_group.group.id } resource "ibm_cr_retention_policy" "cr_retention_policy" { namespace = ibm_cr_namespace.cr_namespace.id images_per_repo = 10 } resource "ibm_iam_user_policy" "policy" { ibm_id = "user@ibm.com" roles = ["Manager"] resources { service = "container-registry" resource = ibm_cr_namespace.cr_namespace.id resource_type = "namespace" region = var.region } }
Terraform을 사용하여 네임스페이스를 업데이트하는 기능은 지원되지 않습니다. Terraform을 사용하는 경우 네임스페이스를 작성 및 제거만 할 수 있습니다.
-
Terraform CLI를 초기화하십시오.
terraform init
-
Terraform 실행 플랜을 작성하십시오. Terraform 실행 플랜에서는 계정에 Container Registry 네임스페이스 및 IAM 액세스 정책을 작성하기 위해 실행해야 하는 모든 조치를 요약합니다.
terraform plan
-
IBM Cloud에서 Container Registry 네임스페이스 및 IAM 액세스 정책을 작성하십시오.
terraform apply
-
로부터 Container Registry 네임스페이스 개요 페이지 에서 네임스페이스가 성공적으로 생성되었는지 확인하세요.
-
IAM 액세스 정책이 성공적으로 지정되었는지 확인하십시오. 자세한 정보는 콘솔에서 지정된 액세스 권한 검토를 참조하십시오.
다음 단계
IBM Cloud에서 Terraform을 사용하여 첫 번째 Container Registry 네임스페이스를 작성했으므로 다음 태스크 중에서 선택할 수 있습니다.
- 네임스페이스에 이미지 추가 방법을 알아보십시오.
- 에 대해 지원되는 다른 인수 및 속성을 살펴보세요.Container Registry Terraform 리소스 및 데이터 소스 이 예에서 사용된 것입니다.