hcp_packer_registry 블록

hcp_packer_registry 블록

이 글에서는 hcp_packer_registry 블록에 대한 레퍼런스 정보를 다뤄요.

출처: Packer 공식 문서

본문

설명 (Description)

hcp_packer_registry 블록은 Packer가 HCP Packer 레지스트리에서 만들거나 갱신하는 이미지에 대한 세부 정보를 구성해요. hcp_packer_registry 블록을 사용해 Packer가 HCP Packer Registry로 보내는 메타데이터를 사용자 정의할 수 있어요.

HCP Packer를 시작하려면 HCP Packer 문서를 참고하거나 HCP Packer 시작 튜토리얼을 따라 해 보세요.

사용법 (Usage)

이 블록은 Packer 1.7.7부터 사용할 수 있어요.

HCP Packer 모드를 활성화하려면 템플릿 파일에 hcp_packer_registry 블록을 추가해 주세요. HCP Packer 모드에서는 적절한 HCP 자격 증명(HCP_CLIENT_ID와 HCP_CLIENT_SECRET)이 설정돼 있으면, Packer가 템플릿의 모든 빌드에 대한 메타데이터를 원격 레지스트리로 푸시해요. HCP 자격 증명이 설정되지 않았다면 Packer는 정의된 builder(source 블록)와 HCP Packer 레지스트리 사이의 잠재적인 아티팩트 드리프트를 피하기 위해 빌드를 실패 처리하고 즉시 종료해요.

참고: 비활성화되거나 삭제된 레지스트리의 메타데이터를 참조하려 하면 오류가 발생해요. 관리자가 레지스트리를 수동으로 비활성화하거나 삭제할 수 있고, HCP Packer는 결제 문제가 있는 레지스트리를 자동으로 비활성화해요. 궁금한 점은 HashiCorp Support에 문의해 주세요.

# file: builds.pkr.hcl
source "happycloud" "macos" {
  os = "macos_amd64"
}

build {
  sources = ["source.happycloud.macos"]
}
hcp_packer_registry {
  bucket_name = "ios-dev"

  description = <<EOT
Some nice description about the image which artifact is being published to HCP Packer Registry. =D
  EOT

  bucket_labels = {
    "team" = "ios-development",
    "os"   = "macos"
  }

  build_labels = {
    "xcode"   = "11.3.0"
    "version" = "Big Sur"
  }
}
  • bucket_name (string) - 이미지가 HCP Packer 레지스트리에 게시될 때의 이미지 이름. 항상 같아야 해요. 그렇지 않으면 새 이미지가 만들어지거든요. 설정되지 않으면 build.name을 기본값으로 해요. HCP_PACKER_BUCKET_NAME이 설정되면 덮어써져요.

  • bucket_labels (map[string]string) - 라벨 맵. 도구 버전(예: Go 1.17, Python 3.5 등) 같은 어떤 정보든 담을 수 있어요. bucket 라벨은 이미지의 메인 페이지에 나타나며, 변경되고 버킷에 대한 새 iteration이 HCP Packer 레지스트리로 푸시될 때마다 갱신돼요.

  • build_labels (map[string]string) - 라벨 맵. 도구 버전(예: Go 1.17, Python 3.5 등) 같은 어떤 정보든 담을 수 있어요. build 라벨은 iteration의 build 섹션에 나타나요. Build 라벨은 iteration에 특정되고, HCP Packer 레지스트리로 푸시될 때 빌드에 추가돼요. 완료된 iteration의 build 라벨 업데이트는 허용되지 않아요.

  • description (string) - 이미지 설명. 이미지에 대한 요약을 제공하는 데 유용해요. 설명은 이미지의 메인 페이지에 나타나며, 변경되고 새 빌드가 HCP Packer 레지스트리로 푸시될 때마다 갱신돼요. 최대 255자여야 해요. 설정되지 않으면 build.description을 기본값으로 해요.

  • labels (map[string]string) - Packer 1.7.9에서 더 이상 사용되지 않아요(deprecated). 자세한 내용은 bucket_labels를 참고해 주세요.