Antes de integrar a sua app Kubernetes do Terraform através do Producer Portal, recomendamos que prepare o seu ambiente e a sua app Kubernetes do Terraform para o Google Cloud Marketplace. Google Cloud
Antes de começar
Para aceder ao Producer Portal, certifique-se de que preencheu o formulário de informações do projeto do Google Cloud Marketplace.
Crie o seu espaço de trabalho
Recomendamos que crie um novo projeto na
Google Cloud consola,
com um ID do projeto que termine em -public
, principalmente para os seus produtos do Cloud Marketplace. Para ver instruções detalhadas, consulte o artigo
Criar e gerir projetos.
Se já tiver um projeto configurado para vender no Cloud Marketplace, verifique se as funções do Identity and Access Management (IAM) estão concedidas corretamente para o Kubernetes e avance diretamente para Configurar o Artifact Registry neste documento.
Conceda funções de gestão de identidade e de acesso e especifique um contacto de segurança para o seu projeto
Para conceder funções de gestão de identidade e de acesso (IAM) e especificar um contacto de segurança para o seu projeto, conclua os seguintes passos:
Conceda as seguintes funções de IAM ao nível do projeto:
- Editor de projeto, para
cloud-commerce-marketplace-onboarding@twosync-src.google.com
- Administrador de gestão de serviços
(
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 obter instruções detalhadas, consulte o artigo Conceder, alterar e revogar o acesso a recursos.
- Editor de projeto, para
Conceda as seguintes funções, ao nível do serviço, a
cloud-commerce-procurement@system.gserviceaccount.com
:- Consumidor de serviços (
roles/servicemanagement.serviceConsumer
) - Controlador de serviços (
roles/servicemanagement.serviceController
)
Para ver os passos para conceder acesso ao nível do serviço, consulte o artigo Conceder e revogar o acesso à API.
- Consumidor de serviços (
Especifique um contacto de segurança. Para mais informações, consulte o artigo Gerir contactos para notificações.
Configure o Artifact Registry
Para configurar o Artifact Registry, conclua os seguintes passos:
- Instale a CLI gcloud.
Para atualizar uma instalação existente, execute o comando
gcloud components update
. Nota: no Ubuntu, use o pacote Debian para instalar a CLI gcloud. O pacote snap da CLI gcloud não inclui okubectl
nem extensões para autenticação com o Artifact Registry através da CLI gcloud. - Instale o Docker se ainda não estiver instalado.
- Ative a API Artifact Registry, que lhe permite enviar conteúdo para o Artifact Registry.
Ative a API - Crie um repositório de preparação do Artifact Registry. Para ver passos detalhados, consulte o artigo Armazene imagens de contentores Docker no Artifact Registry.
- Ative a análise de artefactos, que permite a análise de segurança, para o seu repositório do Artifact Registry.
- Etiquete e envie as imagens que quer distribuir na sua app para o repositório de preparação do Artifact Registry.
Etiquete e envie as suas imagens
Para etiquetar e enviar as suas imagens para o Artifact Registry, conclua os seguintes passos:
- Escolha o caminho do repositório de preparação do Artifact Registry. Recomendamos que o seu repositório use a seguinte estrutura:
us-docker.pkg.dev/YOUR_PARTNER_ID/YOUR_SOLUTION_ID
. O repositório de preparação tem de estar dentro do limite deus-docker.pkg.dev
. O Cloud Marketplace não suporta outras regiões nem domíniosgcr.io
, comoeurope-docker.pkg.dev
,gcr.io
oueu.gcr.io
, para apps Kubernetes do Terraform. - Guarde ou copie o caminho do repositório de preparação para quando criar o produto no Producer Portal.
- Crie a imagem que quer enviar para o repositório de preparação do Artifact Registry.
Use o Docker para etiquetar a imagem com o respetivo número de 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 sua imagem:gcloud docker push STAGING_REPO_PATH:tag
Para cada etiqueta ou imagem adicional que queira adicionar ao repositório de preparação, repita os passos anteriores. Pode adicionar várias etiquetas a uma única imagem.
O envio de uma imagem para o repositório de preparação não a torna automaticamente visível para os utilizadores. As suas imagens ficam visíveis para os utilizadores depois de as publicar.
Crie um cluster de desenvolvimento no Kubernetes Engine
Usa o Google Kubernetes Engine para gerir e dimensionar clusters do Kubernetes. Para criar um cluster de teste e implementar uma app básica no mesmo, siga o início rápido do Google Kubernetes Engine.
Organize os seus lançamentos
Em geral, todas as versões da sua app têm de adotar a versão semântica 2.0, que segue a convenção de numeração MAJOR.MINOR.PATCH
. Cada versão tem de ter um número de versão 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
. Pode usar modificadores de pré-lançamento para armazenar e realçar quaisquer informações adicionais que considere úteis, como datas de compilação que indicam quando as versões foram criadas.
Recomendamos que lance o seu software em faixas. Cada faixa é uma série de versões com atualizações retrocompatíveis. As faixas de lançamento devem basear-se em versões secundárias, como 4.1.x
. Evite usar nomes de versões genéricos, como newest
.
Por exemplo, se estiver a lançar a versão 2.0
da sua app no
Cloud Marketplace e esperar que as versões 2.0.1
, 2.0.5
e posteriores
sejam retrocompatíveis com a versão 2.0
, organize estes lançamentos na faixa de lançamento 2.0
.
Quando lança uma versão da sua app que não é retrocompatível ou uma versão que requer que os utilizadores sigam passos de migração manuais, lance-a numa nova faixa para que os utilizadores possam planear as respetivas atualizações.
Crie e carregue o wrapper do módulo do Terraform para o Cloud Storage
Tem de fornecer um módulo Terraform que os utilizadores do Cloud Marketplace possam usar para implementar a sua app Kubernetes Terraform. Este módulo usa o fornecedor Helm para implementar os gráficos Helm que forneceu. Para ver os passos para criar um módulo Terraform compatível com a sua app Terraform Kubernetes, consulte o guia de parceiros do Terraform Kubernetes no GitHub.
Escolha os identificadores dos seus produtos
Tem de selecionar os seguintes identificadores para a sua empresa, produto e imagens de contentores, que são usados para criar os URLs do Cloud Marketplace e os URIs das suas imagens de contentores:
- O nome da sua empresa. Por exemplo, se o nome da sua empresa for Examplesoft
Inc., pode 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 ver detalhes, consulte o artigo Organize os seus lançamentos, anteriormente nesta página.
Exemplos de identificadores de produtos
Por exemplo, a empresa Examplesoft Inc. escolhe os seguintes identificadores para o respetivo produto, Example Pro:
Nome | Identificador | |
---|---|---|
Empresa | Examplesoft Inc | examplesoft |
Produto | Exemplo Pro | example-pro |
Gráfico de leme | Gráfico de leme | gráfico |
Imagem [1] | Base de dados de exemplo | example-db |
Imagem [2] | Fila de exemplos | example-queue |
Faixa de lançamento [1] | Versão 4.x.x | 4,0 |
Faixa de lançamento [2] | Versão 5.x.x | 5.0 |
A partir destes identificadores, são geradas automaticamente as seguintes informações:
- 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
O que se segue?
Depois de configurar o seu Google Cloud ambiente para apps do Terraform Kubernetes, continue a preparar as suas apps para publicação concluindo os seguintes passos:
- Adicione a sua app Kubernetes do Terraform ao portal do produtor.
- Adicione informações de preços para a sua app.
- Configure a implementação da sua app, incluindo o respetivo gráfico Helm e imagens de contentores.