Antes de integrar seu app do Kubernetes do Terraform pelo Portal do Produtor, recomendamos que você prepare seu ambiente Google Cloud e seu app do Kubernetes do Terraform para o Google Cloud Marketplace.
Antes de começar
Para ter acesso ao Portal do Produtor, verifique se você preencheu o Formulário de informações do projeto do Cloud Marketplace.
Criar o espaço de trabalho
Recomendamos que você crie um novo projeto no
Google Cloud console,
com um ID do projeto que termine em -public
, principalmente para seus produtos do Cloud Marketplace. Para instruções detalhadas, consulte
Como criar e gerenciar projetos.
Se você já tiver um projeto configurado para vender no Cloud Marketplace, verifique se as funções do Identity and Access Management (IAM) foram concedidas corretamente para o Kubernetes e pule diretamente para Configurar o Artifact Registry neste documento.
Conceder papéis do Identity and Access Management e especificar um contato de segurança para seu projeto
Para conceder papéis do Identity and Access Management (IAM) e especificar um contato de segurança para seu projeto, siga estas etapas:
Conceda os seguintes papéis do IAM no nível do projeto:
- Editor do projeto, para
cloud-commerce-marketplace-onboarding@twosync-src.google.com
- Administrador do Service Management
(
roles/servicemanagement.serviceAdmin
), paracloud-commerce-marketplace-onboarding@twosync-src.google.com
emanaged-services@cloud-marketplace.iam.gserviceaccount.com
- Editor de configuração (
roles/servicemanagement.configEditor
) paracloud-commerce-producer@system.gserviceaccount.com
Para instruções detalhadas, consulte Como conceder, alterar e revogar acesso a recursos.
- Editor do projeto, para
Conceda os seguintes papéis, no nível do serviço, a
cloud-commerce-procurement@system.gserviceaccount.com
:- Consumidor de serviços (
roles/servicemanagement.serviceConsumer
) - Controlador de serviço (
roles/servicemanagement.serviceController
)
Para ver as etapas de concessão de acesso no nível do serviço, consulte Como conceder e revogar acesso à API.
- Consumidor de serviços (
Especifique um contato de segurança. Para saber mais, consulte Como gerenciar contatos para notificações.
Configurar o Artifact Registry
Para configurar o Artifact Registry, siga estas etapas:
- Instale a CLI da gcloud.
Para atualizar uma instalação, execute o comando
gcloud components update
. Observação: no Ubuntu, use o pacote Debian para instalar a CLI gcloud. O pacote snap da CLI gcloud não incluikubectl
ou extensões para autenticação com o Artifact Registry usando a CLI gcloud. - Instale o Docker se ele ainda não estiver instalado.
- Ative a API Artifact Registry, que permite fazer push para o Artifact Registry.
Ativar a API - Crie um repositório de teste do Artifact Registry. Para etapas detalhadas, consulte Armazenar imagens de contêiner do Docker no Artifact Registry.
- Ative o Artifact Analysis, que permite a verificação de segurança, para seu repositório do Artifact Registry.
- Marque e envie as imagens que você quer distribuir no app para o repositório de teste do Artifact Registry.
Marcar e enviar imagens
Para adicionar tags e enviar as imagens ao Artifact Registry, siga estas etapas:
- Escolha o caminho do repositório de teste do Artifact Registry. Recomendamos que seu repositório use a seguinte estrutura:
us-docker.pkg.dev/YOUR_PARTNER_ID/YOUR_SOLUTION_ID
. O repositório de preparação precisa estar emus-docker.pkg.dev
. O Cloud Marketplace não oferece suporte a outras regiões ou domíniosgcr.io
, comoeurope-docker.pkg.dev
,gcr.io
oueu.gcr.io
, para apps do Kubernetes do Terraform. - Salve ou copie o caminho do repositório de teste para criar o produto no Portal do Produtor.
- Crie a imagem que você quer enviar para o repositório de teste do Artifact Registry.
Use o Docker para marcar a imagem com o número da versão, como
1.0
:docker tag IMAGE_NAME STAGING_REPO_PATH:VERSION_NUMBER
Por exemplo, este comando pode ser:
docker tag test-image us-docker.pkg.dev/testpartner/testsolution:1.0
.Use
gcloud
para enviar a imagem:gcloud docker push STAGING_REPO_PATH:tag
Repita as etapas anteriores para cada tag ou imagem que você quer adicionar ao seu repositório de teste. É possível adicionar várias tags a uma única imagem.
Enviar uma imagem ao repositório de teste não a torna visível aos usuários automaticamente. As imagens ficam visíveis para os usuários depois que você as publica.
Criar um cluster de desenvolvimento no Kubernetes Engine
Você usa o Google Kubernetes Engine para gerenciar e dimensionar clusters do Kubernetes. Para criar um cluster de teste e implantar um aplicativo básico, siga o Guia de início rápido do Google Kubernetes Engine.
Organizar seus lançamentos
Em geral, todas as versões do seu aplicativo devem adotar o Versionamento semântico 2.0, que segue a convenção de numeração MAJOR.MINOR.PATCH
. Cada versão precisa ter um número exclusivo, como 1.0.1
, 1.0.2
ou 1.3.1
. Opcionalmente, para adicionar
um modificador de pré-lançamento, use um traço após o número da versão, como
1.3.1-alpha201910
. É possível usar modificadores de pré-lançamento para armazenar e destacar
qualquer informação adicional que você achar útil, como datas de criação que indicam
quando as versões foram criadas.
Recomendamos que você libere seu software em faixas. Cada faixa é uma série
de versões com atualizações compatíveis com versões anteriores. As faixas de lançamento precisam ser
baseadas em versões secundárias, como 4.1.x
. Evite usar nomes genéricos de versão,
como newest
.
Por exemplo, se você estiver lançando a versão 2.0
do seu app no
Cloud Marketplace e esperar que as versões 2.0.1
, 2.0.5
e mais recentes
sejam compatíveis com versões anteriores com 2.0
, organize esses lançamentos na faixa de lançamento 2.0
.
Quando você lançar uma versão incompatível com versões anteriores do seu app ou uma versão que exija que os usuários passem pelas etapas de migração manual, libere-a em uma nova faixa, para que os usuários possam planejar as atualizações.
Criar e fazer upload do wrapper do módulo do Terraform para o Cloud Storage
Você precisa fornecer um módulo do Terraform que os usuários do Cloud Marketplace possam usar para implantar seu app do Terraform Kubernetes. Esse módulo usa o provedor Helm para implantar os gráficos do Helm que você forneceu. Para saber como criar um módulo do Terraform compatível com seu app do Terraform Kubernetes, consulte o guia de parceiros do Terraform Kubernetes no GitHub.
Escolher os identificadores de produto
Você precisa selecionar os seguintes identificadores para sua empresa, produto e imagens de contêiner, que são usados para criar seus URLs do Cloud Marketplace e os URIs para suas imagens de contêiner:
- O nome da empresa. Por exemplo, se o nome da sua empresa for Examplesoft Inc., você poderá usar o identificador
examplesoft
. - O nome do produto. Por exemplo, se o nome do produto for Example Pro, use o identificador
example-pro
. - A faixa de lançamento do seu produto, como
4.0
. Para mais detalhes, consulte Organizar suas versões, anteriormente nesta página.
Exemplos de identificadores de produto
Por exemplo, a empresa Examplesoft Inc. escolhe os seguintes identificadores para o produto, Example Pro:
Nome | Identificador | |
---|---|---|
Empresa | Examplesoft Inc | examplesoft |
Produto | Example Pro | example-pro |
Gráfico do Helm | Gráfico do Helm | gráfico |
Imagem [1] | Exemplo de banco de dados | example-db |
Imagem [2] | Example Queue | example-queue |
Faixa de lançamento [1] | Version 4.x.x | 4,0 |
Faixa de lançamento [2] | Version 5.x.x | 5.0 |
Com base nesses identificadores, as seguintes informações são geradas automaticamente:
- O URL do produto no Cloud Marketplace:
https://console.cloud.google.com/marketplace/details/examplesoft/example-pro
- Os URIs do Artifact Registry no seu projeto:
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
A seguir
Depois de configurar seu ambiente Google Cloud para apps do Terraform Kubernetes, continue preparando seus apps para publicação seguindo estas etapas:
- Adicione seu app do Kubernetes do Terraform ao Portal do Produtor.
- Adicione informações de preços para seu app.
- Configure a implantação do app, incluindo o gráfico do Helm e as imagens de contêiner.