Producer Portal을 통해 Terraform Kubernetes 앱을 온보딩하기 전에 Google Cloud Marketplace용 Google Cloud 환경과 Terraform Kubernetes 앱을 준비하는 것이 좋습니다.
시작하기 전에
Producer Portal에 액세스하려면 Cloud Marketplace 프로젝트 정보 양식을 작성해야 합니다.
작업공간 만들기
Google Cloud 콘솔에서 Cloud Marketplace 제품에 주로 사용할 새 프로젝트를 만들고 프로젝트 ID는 -public
으로 끝나는 것이 좋습니다. 자세한 안내는 프로젝트 만들기 및 관리를 참고하세요.
Cloud Marketplace에서 판매할 프로젝트를 이미 설정한 경우 Identity and Access Management (IAM) 역할이 Kubernetes에 올바르게 부여되었는지 확인하고 이 문서의 Artifact Registry 설정으로 바로 건너뜁니다.
Identity and Access Management 역할 부여 및 프로젝트의 보안 담당자 지정
Identity and Access Management (IAM) 역할을 부여하고 프로젝트의 보안 담당자를 지정하려면 다음 단계를 완료하세요.
프로젝트 수준에서 다음 IAM 역할을 부여합니다.
cloud-commerce-marketplace-onboarding@twosync-src.google.com
에 프로젝트 편집자cloud-commerce-marketplace-onboarding@twosync-src.google.com
및managed-services@cloud-marketplace.iam.gserviceaccount.com
에 Service Management 관리자(roles/servicemanagement.serviceAdmin
)cloud-commerce-producer@system.gserviceaccount.com
에 구성 편집자(roles/servicemanagement.configEditor
)
자세한 내용은 리소스에 대한 액세스 권한 부여, 변경, 취소를 참고하세요.
서비스 수준에서 다음 역할을
cloud-commerce-procurement@system.gserviceaccount.com
에 부여합니다.- 서비스 소비자(
roles/servicemanagement.serviceConsumer
) - 서비스 컨트롤러(
roles/servicemanagement.serviceController
)
서비스 수준에서 액세스 권한을 부여하는 단계는 API에 대한 액세스 권한 부여 및 취소를 참고하세요.
- 서비스 소비자(
보안 연락처를 지정합니다. 자세한 내용은 알림 연락처 관리를 참조하세요.
Artifact Registry 설정
아티팩트 레지스트리를 설정하려면 다음 단계를 완료하세요.
- gcloud CLI를 설치합니다.
기존 설치를 업데이트하려면
gcloud components update
명령어를 실행합니다. 참고: Ubuntu에서 Debian 패키지를 사용하여 gcloud CLI를 설치합니다. gcloud CLI 스냅 패키지에는 gcloud CLI를 사용하여 Artifact Registry로 인증하기 위한kubectl
또는 확장 프로그램이 포함되어 있지 않습니다. - Docker가 아직 설치되어 있지 않으면 설치합니다.
- Artifact Registry에 푸시할 수 있는 Artifact Registry API를 사용 설정합니다.
API 사용 설정 - 스테이징 Artifact Registry 저장소를 만듭니다. 자세한 단계는 Artifact Registry에 Docker 컨테이너 이미지 저장을 참고하세요.
- Artifact Registry 저장소에 보안 스캔을 허용하는 Artifact Analysis를 사용 설정합니다.
- 앱에서 배포하려는 이미지에 태그를 지정하고 스테이징 Artifact Registry 저장소로 푸시합니다.
이미지 태그 지정 및 푸시
이미지에 태그를 지정하고 Artifact Registry에 푸시하려면 다음 단계를 완료하세요.
- Artifact Registry 스테이징 저장소 경로를 선택합니다. 저장소에서 다음 구조를 사용하는 것이 좋습니다.
us-docker.pkg.dev/YOUR_PARTNER_ID/YOUR_SOLUTION_ID
스테이징 저장소는us-docker.pkg.dev
내에 있어야 합니다. Cloud Marketplace는 Terraform Kubernetes 앱에 대해europe-docker.pkg.dev
,gcr.io
,eu.gcr.io
와 같은 다른 리전이나gcr.io
도메인을 지원하지 않습니다. - Producer Portal에서 제품을 만들 때 사용할 스테이징 저장소 경로를 저장하거나 복사합니다.
- Artifact Registry 스테이징 저장소에 푸시하려는 이미지를 빌드합니다.
Docker를 사용하여 이미지에 버전 번호(예:
1.0
)로 태그를 지정합니다.docker tag IMAGE_NAME STAGING_REPO_PATH:VERSION_NUMBER
예를 들어 이 명령어는
docker tag test-image us-docker.pkg.dev/testpartner/testsolution:1.0
일 수 있습니다.gcloud
를 사용하여 이미지를 푸시합니다.gcloud docker push STAGING_REPO_PATH:tag
스테이징 저장소에 추가하려는 추가 태그 또는 이미지에 대해 이전 단계를 반복합니다. 하나의 이미지에 여러 태그를 추가할 수 있습니다.
스테이징 저장소로 이미지를 푸시한다고 해서 사용자에게 이미지가 자동으로 표시되지는 않습니다. 이미지를 게시하면 사용자에게 이미지가 표시됩니다.
Kubernetes Engine에서 개발 클러스터 만들기
Google Kubernetes Engine을 사용하여 Kubernetes 클러스터를 관리하고 확장합니다. 테스트 클러스터를 만들고 여기에 기본 앱을 배포하려면 Google Kubernetes Engine 빠른 시작을 따르세요.
발표곡 정리
일반적으로 앱의 모든 버전은 MAJOR.MINOR.PATCH
번호 지정 규칙을 따르는 시맨틱 버전 관리 2.0을 채택해야 합니다. 각 버전에는 1.0.1
, 1.0.2
, 1.3.1
등과 같은 고유한 버전 번호가 있어야 합니다. 선택적으로 출시 전 한정자를 추가하려면 버전 번호 뒤에 대시를 사용합니다(예: 1.3.1-alpha201910
). 출시 전 한정자를 사용하여 버전을 만든 날짜를 나타내는 빌드 날짜와 같이 유용한 추가 정보를 저장하고 강조 표시할 수 있습니다.
트랙에서 소프트웨어를 출시하는 것이 좋습니다. 각 트랙은 이전 버전과의 호환되는 업데이트가 있는 일련의 버전입니다. 출시 트랙은 4.1.x
와 같은 부 버전을 기반으로 해야 합니다. newest
과 같은 일반적인 버전 이름은 사용하지 마세요.
예를 들어 Cloud Marketplace에서 앱 버전 2.0
을 출시하고 버전 2.0.1
, 2.0.5
등이 2.0
과 호환될 것으로 예상되는 경우 2.0
출시 트랙에서 이러한 출시를 구성합니다.
앱의 이전 버전과 호환되지 않는 버전 또는 사용자가 수동 마이그레이션 단계를 수행해야 하는 버전을 출시할 경우에는 새 트랙에서 출시하여 사용자가 업데이트를 계획할 수 있도록 합니다.
Terraform 모듈 래퍼를 만들어 Cloud Storage에 업로드
Cloud Marketplace 사용자가 Terraform Kubernetes 앱을 배포하는 데 사용할 수 있는 Terraform 모듈을 제공해야 합니다. 이 모듈은 Helm 제공자를 사용하여 제공된 Helm 차트를 배포합니다. Terraform Kubernetes 앱과 호환되는 Terraform 모듈을 만드는 단계는 GitHub의 Terraform Kubernetes 파트너 가이드를 참고하세요.
(UI 배포만 해당) 커스텀 Terraform 모듈의 메타데이터 만들기
커스텀 모듈이 UI 배포를 지원하도록 하려면 Cloud Marketplace가 모듈을 올바르게 파싱하고 고객을 위해 UI에서 렌더링하기 위해 사용하는 메타데이터를 만들고 추가해야 합니다.
이 메타데이터를 만들고 추가하려면 오픈소스 CFT CLI 도구를 사용하여 다음 단계를 완료하세요.
CFT CLI 도구를 설치합니다.
VERSION
값을latest
로 지정하고PLATFORM
을 다음 값 중 하나로 설정하는 것이 좋습니다.linux
windows
darwin
자세한 내용은 CFT CLI 문서를 참고하세요.
다음 명령어를 실행합니다.
cft blueprint metadata -p TF_PACKAGE_PATH -q -d --nested=false
이 명령어에서 플래그는 다음과 같이 사용됩니다.
-p
플래그는 Terraform 패키지의 경로를 제공합니다.-q
플래그는 원격 저장소에 대한 정보 요구 없이 메타데이터를 생성합니다.-d
플래그는metadata.display.yaml
파일을 생성합니다.--nested=false
플래그는 루트 모듈에 대한 메타데이터를 생성하고modules/
폴더의 모듈은 건너뜁니다.
이전 단계를 완료하면 CFT CLI 도구가 다음 파일을 생성합니다.
metadata.yaml
metadata.display.yaml
커스텀 Terraform 모듈의 메타데이터 맞춤설정
Cloud Marketplace는 metadata.display.yaml
파일을 사용해서 고객이 UI를 통해 제품을 배포하기 위해 사용하는 양식을 만듭니다. 고객에게 표시되는 양식을 맞춤설정하려면 metadata.display.yaml
의 필드 값을 변경하세요. 사용 가능한 맞춤설정 옵션에 대한 자세한 내용은 오픈소스 Blueprint UI 문서 또는 Blueprint UI 스키마를 참고하세요.
메타데이터를 수정하려면 GooglePropertyExtensions
확장 프로그램을 사용하는 것이 좋습니다. GooglePropertyExtensions
에서는 고객이Google Cloud 프로젝트에 이미 있는 Virtual Private Cloud (VPC) 네트워크만 선택할 수 있도록 강제하는 것과 같은 Google Cloud에 특정한 검증을 사용할 수 있습니다. 예를 들어 샘플 커스텀 Terraform 모듈을 참고하세요.
커스텀 모듈의 메타데이터 검증
커스텀 모듈의 메타데이터를 검증하려면 다음 명령어를 실행합니다.
cft blueprint metadata -p TF_PACKAGE_PATH -v
이전 명령어에서 플래그는 다음과 같이 작동합니다.
-p
플래그는 Terraform 패키지의 경로를 제공합니다.-v
플래그는BlueprintMetadata
스키마에 따라 제공된 경로의 모든 메타데이터 파일을 검증합니다.
제품 식별자 선택
회사, 제품, 컨테이너 이미지에 다음 식별자를 선택해야 합니다. 이러한 식별자는 Cloud Marketplace URL 및 컨테이너 이미지 URI를 만드는 데 사용됩니다.
- 회사 이름. 예를 들어 회사 이름이 Examplesoft Inc.인 경우
examplesoft
식별자를 사용할 수 있습니다. - 제품 이름. 예를 들어 제품 이름이 Example Pro인 경우
example-pro
식별자를 사용합니다. - 제품의 출시 트랙(예 :
4.0
) 자세한 내용은 이 페이지의 이전 섹션인 출시 버전 구성하기를 참고하세요.
샘플 제품 식별자
예를 들어 Examplesoft Inc. 회사는 해당 제품인 Example Pro에 대해 다음과 같은 식별자를 선택합니다.
이름 | 식별자 | |
---|---|---|
회사 | Examplesoft Inc | examplesoft |
제품 | Example Pro | example-pro |
Helm 차트 | Helm 차트 | 차트 |
이미지 [1] | 데이터베이스 예 | example-db |
이미지 [2] | Example Queue | example-queue |
출시 트랙 [1] | 버전 4.x.x | 4.0 |
출시 트랙 [2] | 버전 5.x.x | 5.0 |
이러한 식별자로부터 다음 정보가 자동으로 생성됩니다.
- Cloud Marketplace의 제품 URL:
https://console.cloud.google.com/marketplace/details/examplesoft/example-pro
- 프로젝트의 Artifact Registry URI:
us-docker.pkg.dev/examplesoft/example-pro/chart:4.0
us-docker.pkg.dev/examplesoft/example-pro/example-db:4.0
us-docker.pkg.dev/examplesoft/example-pro/example-query:4.0
us-docker.pkg.dev/examplesoft/example-pro/chart:5.0
us-docker.pkg.dev/examplesoft/example-pro/example-db:5.0
us-docker.pkg.dev/examplesoft/example-pro/example-query:5.0
다음 단계
Terraform Kubernetes 앱을 위한 Google Cloud 환경을 설정한 후 다음 단계를 완료하여 게시를 위해 앱을 계속 준비합니다.
- Producer Portal에 Terraform Kubernetes 앱을 추가합니다.
- 앱의 가격 정보 추가
- Helm 차트 및 컨테이너 이미지를 비롯한 앱의 배포를 구성합니다.