Oferecer apps do Kubernetes do Terraform no Cloud Marketplace

Com os apps do Kubernetes do Terraform no Google Cloud Marketplace, seus clientes podem usar o Terraform para implantar apps conteinerizados no Google Kubernetes Engine. Os usuários não recebem cobranças pelo uso dos apps do Kubernetes do Terraform, mas recebem cobranças pelo uso dos recursos do Google Cloud . É possível oferecer apps do Kubernetes do Terraform publicamente a todos os usuários do Cloud Marketplace ou de forma privada usando ofertas privadas.

Os apps do Kubernetes do Terraform oferecidos pelo Cloud Marketplace definem as configurações usando gráficos do Helm, que são hospedados no Artifact Registry. Depois de configurar, você integra o app ao Cloud Marketplace pelo Portal do Produtor.

Visão geral da integração de um app do Kubernetes do Terraform

Para oferecer um app do Terraform Kubernetes no Cloud Marketplace, siga estas etapas:

  1. Prepare seu app do Kubernetes do Terraform para o Cloud Marketplace. Isso inclui configurar o Artifact Registry e enviar as imagens do app para ele.

  2. Adicione informações de preços para seu app no Portal do Produtor.

  3. Configure a implantação do app no Portal do Produtor, incluindo o módulo do Terraform, o gráfico do Helm e as imagens de contêiner.

  4. Publique seu produto no Cloud Marketplace. Ao integrar seu produto, envie várias partes dele para análise. A equipe do Cloud Marketplace analisa cada envio e trabalha com você para resolver qualquer problema antes de aprovar. Após a aprovação de todos os envios, será possível publicar e lançar o produto em alguns minutos.

Requisitos para apps do Kubernetes do Terraform

Todos os produtos oferecidos no Cloud Marketplace precisam obedecer aos requisitos de listagem do serviço.

Seu app do Terraform Kubernetes precisa atender aos seguintes requisitos adicionais:

  • Seu app precisa ser executado em nós do GKE que usam processadores x86.
  • Todos os gráficos do Helm e as imagens de contêiner do seu app precisam ser enviados para o registro do Artifact Registry, no mesmo repositório e projeto que você está usando para o app do Kubernetes do Terraform.
  • Seu registro do Artifact Registry precisa incluir um gráfico do Helm.
  • O módulo do Terraform precisa ser hospedado como um arquivo ZIP em um bucket do Cloud Storage localizado no mesmo projeto que você está usando para o app do Terraform Kubernetes.
  • É necessário ativar o controle de versões para o bucket do Cloud Storage que você usa para hospedar o módulo do Terraform.
  • Você precisa incluir um guia do usuário com etapas para implantar, configurar e usar o app na linha de comando. Para mais detalhes, consulte Requisitos para o guia do usuário neste documento.
  • Para proteger os usuários contra APIs instáveis, use apenas recursos Beta ou amplamente disponíveis do Kubernetes.

Requisitos para as imagens do app

As imagens do app precisam atender aos seguintes requisitos:

  • Todas as imagens do seu app precisam ser marcadas com a faixa de lançamento e a versão atual. Por exemplo, se você estiver lançando a versão 2.0.5 na faixa de lançamento 2.0, todas as imagens correspondentes deverão ser marcadas com 2.0 e 2.0.5. Para mais detalhes, consulte Organizar seus lançamentos.
  • Todas as imagens do app precisam conter a seguinte anotação no manifesto de imagem:

    com.googleapis.cloudmarketplace.product.service.name=services/SERVICE_NAME
    

    SERVICE_NAME pelo nome do serviço; Para encontrar o nome do seu serviço, consulte a tabela de produtos na página Visão geral do Portal do Produtor. Para mais informações sobre anotações, consulte a documentação da Open Container Initiative sobre anotações no GitHub.

Requisitos para o repositório do Artifact Registry

O gráfico do Helm e as imagens de contêiner do seu app precisam fazer parte de um único repositório do Artifact Registry.

Por exemplo, se o repositório do Artifact Registry for us-docker.pkg.dev/exampleproject, o gráfico do Helm e as imagens de contêiner do app serão semelhantes a estes:

  • us-docker.pkg.dev/exampleproject/exampleapp/chart
  • us-docker.pkg.dev/exampleproject/exampleapp/image1
  • us-docker.pkg.dev/exampleproject/exampleapp/image2

Requisitos para o módulo do Terraform

Os clientes usam o módulo do Terraform para implantar seu produto no Cloud Marketplace pelo Infrastructure Manager. O módulo do Terraform empacota a configuração do Kubernetes do seu app.

Use o módulo de exemplo como ponto de partida e siga o guia para parceiros para criar um módulo do Terraform compatível com seu app.

Parâmetros passados para o aplicativo

Seu módulo do Terraform precisa declarar parâmetros que precisam ser coletados dos clientes quando eles selecionam seu app. Esses parâmetros são fornecidos ao contêiner de gráfico Helm quando os usuários implantam o app.

Para configurar esses parâmetros, seu módulo do Terraform precisa incluir um arquivo schema.yaml.

Para saber como criar um schema.yaml, consulte o guia de criação de um esquema no GitHub.

Solicitações de cluster da GPU

Se o aplicativo tiver necessidades específicas de GPU ou for intensivo, especifique o tipo e o número de GPUs no cluster usando o esquema do implantador. Se você especificar as necessidades da GPU, a criação assistida de clusters será desativada.

O app pode solicitar uma GPU Nvidia genérica ou uma plataforma Nvidia específica.

Requisitos do guia do usuário do app

O guia do usuário do app precisa incluir as seguintes informações:

  • Visão geral: uma visão geral do seu app, abrangendo funções básicas e opções de configuração. Esta seção também precisa ter um link para o app publicado no Cloud Marketplace.
  • Configuração única: inclui etapas para configurar o Helm e instalar o CustomResourceDefinition do aplicativo (CRD) para que o cluster possa gerenciar o recurso do aplicativo.
  • Instalação: inclui o seguinte:
  • Uso básico: guias para as seguintes tarefas:
    • Modificação de nomes de usuário e senhas
    • Conexão com um console de administração, se aplicável
    • Conexão de uma ferramenta de cliente e execução de um comando de amostra, se aplicável
    • Ativação da entrada e instalação de certificados TLS, se aplicável
  • Backup e restauração: informações sobre como fazer backup e restaurar o estado do app.
  • Atualizações de imagens: informações sobre como atualizar as imagens do app para patches ou pequenas atualizações.
  • Escalonamento: informações sobre o escalonamento do app, se aplicável.
  • Exclusão: guias para excluir o app e limpar todos os recursos que podem permanecer, como PersistentVolumeClaims (em inglês).

A seguir