HCP Packer 메타데이터 저장 개요

HCP Packer 메타데이터 저장 개요

이 주제는 HCP Packer가 Packer로 빌드한 아티팩트에 대한 메타데이터를 저장하는 방법을 개요로 설명해요.

출처: 문서

본문

워크플로우

HCP Packer는 Packer 아티팩트에 대한 메타데이터를 저장하여, 업데이트를 추적하고 가장 최신의 기본 아티팩트를 사용하며 가장 최신의 다운스트림 아티팩트를 배포할 수 있게 해 줘요. 다음 프로세스는 HCP Packer가 Packer 빌드에서 메타데이터를 얻는 방법을 설명해요:

  1. HCP Packer 레지스트리에 아티팩트를 저장할 버킷을 만들어요. 빌드할 때 버킷이 이미 존재하지 않으면 HCP Packer는 자동으로 버킷을 만들어요. 자세한 내용은 버킷 생성 및 관리를 참고해 주세요.
  2. Packer 템플릿을 구성하거나 환경 변수를 설정해 HCP Packer에 아티팩트 메타데이터를 전송할 수 있게 해요. Packer 템플릿으로 메타데이터를 전송하려면 템플릿에 hcp_packer_registry 빌드 블록이 포함되어야 해요. 자세한 내용은 메타데이터를 HCP Packer로 전송하기를 참고해 주세요.
  3. Packer를 실행하고 아티팩트를 빌드해 메타데이터를 생성할 템플릿을 지정해요. Packer는 메타데이터를 HCP Packer의 레지스트리로 전송해요. Packer 명령 실행 방법은 Packer 문서를 참고해 주세요.

메타데이터 구성 계층 구조

HCP 조직의 각 HCP Packer 프로젝트에는 하나의 Packer 레지스트리가 있어요. 레지스트리는 하나 이상의 버킷을 포함해요. 각 버킷은 Packer 템플릿에서 빌드된 아티팩트와 관련된 *버전(version)*과 빌드(build) 정보를 포함해요. 또한 버전을 *채널(channel)*에 할당할 수 있는데, 채널은 소비자가 Packer 템플릿과 Terraform 구성에서 참조할 수 있는 사람이 읽을 수 있는 이름이에요. 각 구성 요소에 대한 자세한 내용은 메타데이터 개념을 참고해 주세요.

풍부한 CI/CD 파이프라인 메타데이터

Packer v1.11.2 이상으로 아티팩트를 빌드하면 HCP Packer는 CI/CD 플랫폼, 버전 관리 시스템, 운영 체제, Packer 빌드 명령 옵션 같은 빌드 파이프라인과 관련된 풍부한 메타데이터도 추적해요.

HCP Packer는 각 Packer 빌드에 대한 포괄적인 메타데이터를 제공하기 위해 풍부한 메타데이터를 추적해요. 이 메타데이터는 아티팩트의 보안과 출처(provenance)를 강화하여, 빌드 환경과 프로세스에 대한 자세한 정보가 기록되고 접근 가능하도록 보장해요.

또한 추적성을 제공하며 소프트웨어 아티팩트 공급망 수준(SLSA) L1 표준에 대한 규정 준수를 달성하는 데 도움을 줘요. 자세한 내용은 SLSA 문서를 참고해 주세요.

HCP Packer가 추적하는 메타데이터에 대한 자세한 내용은 빌드 파이프라인 메타데이터 참조를 참고해 주세요.

메타데이터 개념

HCP Packer에 저장된 메타데이터는 다음 개념을 중심으로 구성돼요.

버킷

HCP Packer는 아티팩트의 각 버전에 대한 아티팩트 메타데이터를 버킷에 저장해요. 각 HCP Packer 레지스트리에는 Packer 템플릿에 매핑되는 하나 이상의 버킷이 있어요. 자세한 내용은 버킷 생성 및 관리를 참고해 주세요.

버전

Packer 템플릿을 빌드할 때마다 레지스트리는 연결된 버킷에 새 아티팩트 *버전(version)*을 만들어요. 버전은 packer build 명령으로 생성된 불변 레코드이며, 템플릿의 모든 빌드에 대한 메타데이터를 포함해요.

버전을 사용하면 시간이 지남에 따라 아티팩트의 개정과 폐기를 추적할 수 있어요. 각 완전한 버전에는 최소 하나의 빌드가 있지만, 템플릿에서 소스를 구성한 방법에 따라 버전에는 여러 빌드가 있을 수 있어요.

빌드

각 버전에는 단일 빌더가 생성한 모든 아티팩트의 메타데이터를 포함하는 최소 하나의 *빌드(build)*가 있어요. 기본적으로 HCP Packer는 아티팩트 ID와 생성 날짜를 저장하지만, 개별 빌더는 아티팩트에 대한 추가 정보를 생성할 수도 있어요. 레지스트리는 이 정보를 각 완료된 빌드에 자동 생성 라벨로 추가해요. 자세한 내용은 Packer 문서의 빌더를 참고해 주세요.

계보(Ancestry)

*계보(ancestry)*는 소스 아티팩트(또는 부모)와 소스에서 만들어진 자식 아티팩트 사이의 관계를 나타내요. 레지스트리 채널을 사용하는지와 HCP Packer가 부모 아티팩트를 추적하도록 구성되었는지에 따라, Packer가 아티팩트 메타데이터를 레지스트리로 전송할 때 HCP Packer는 새 자식 아티팩트 버전과 소스 아티팩트 사이에 계보 관계를 만들어요. 자세한 내용은 계보 보기를 참고해 주세요.

채널

채널은 버전에 할당할 수 있는 이름이에요. 아티팩트를 소비하는 사람은 코드를 수정하지 않고도 올바른 버전을 사용할 수 있도록 Packer 템플릿 또는 Terraform 구성에 채널 이름을 포함할 수 있어요. 자세한 내용은 채널 생성 및 관리를 참고해 주세요.

더 알아보기