Criar um destino personalizado

Neste documento, descrevemos como criar um tipo de destino personalizado do Cloud Deploy e usar esse tipo como um destino em um pipeline de entrega do Cloud Deploy.

Confira a seguir o processo geral para criar um tipo de destino personalizado e usá-lo no pipeline de entrega:

  1. Crie um aplicativo em contêineres ou aplicativos que incluam a funcionalidade de implantação no destino personalizado e que atendam aos requisitos do Cloud Deploy para tipos de destino personalizados.

  2. Crie uma definição de CustomTargetType com tarefas que referenciam o contêiner e especificam o comando ou os comandos a serem executados nele.

  3. Defina uma nova meta com uma propriedade customTarget que identifica seu novo tipo de meta personalizada.

  4. Faça referência a esse destino na progressão do pipeline de entrega.

  5. Crie uma versão.

Cada uma dessas etapas é descrita em detalhes no restante deste documento.

Criar aplicativos conteinerizados

A funcionalidade de implantação no destino personalizado é definida em aplicativos em contêineres, que você fornece ao Cloud Deploy na definição CustomTargetType. Quando seu pipeline de entrega inclui um destino que usa um tipo de destino personalizado, o Cloud Deploy chama os contêineres definidos para esse tipo de destino personalizado para executar a renderização e a implantação personalizadas que você definiu.

O comportamento dos seus aplicativos depende de você. No entanto, ele precisa consumir as variáveis de ambiente de entrada fornecidas pelo Cloud Deploy e retornar as saídas necessárias.

Na maioria dos casos, você vai criar um contêiner para a renderização personalizada e outro para a implantação personalizada, para cada tipo de destino personalizado criado. A renderização personalizada é opcional, mas você precisa criar uma, a menos que seu destino personalizado funcione corretamente se for renderizado com os renderizadores integrados. O Cloud Deploy usa o skaffold render por padrão para renderizar seus manifestos.

Definir seu tipo de segmentação personalizada

Para definir uma meta personalizada, primeiro crie um tipo de meta personalizada usando a configuraçãoCustomTargetType. É possível criar o CustomTargetType no mesmo arquivo que a definição do pipeline de entrega ou com definições de destino ou em um arquivo separado.

A definição de CustomTargetType é a seguinte:

apiVersion: deploy.cloud.google.com/v1
kind: CustomTargetType
metadata:
  name: [CUSTOM_TARGET_TYPE_NAME]
  annotations:
  labels:
description:
tasks:
  render: [RENDER_TASK]
  deploy: [DEPLOY_TASK]

Onde

Registrar seu tipo de segmentação personalizada

Depois de configurar o CustomTargetType, execute o comando gcloud deploy apply para registrar o recurso CustomTargetType em um projeto Google Cloud :

gcloud deploy apply --file=[FILE] --project=[PROJECT] --region=[REGION]

Em que:

FILE é o nome do arquivo em que você definiu esse tipo de segmentação personalizada.

PROJECT é o projeto Google Cloud em que o recurso será criado. O CustomTargetType precisa estar no mesmo projeto que o recurso Target que faz referência a ele. Não é necessário especificar o projeto se você o tiver definido como padrão para a Google Cloud CLI.

REGION é a região (por exemplo, us-central1) em que o recurso será criado. O CustomTargetType precisa estar na mesma região que o recurso Target que o referencia. Não é necessário especificar a região se você a tiver definido como padrão para a CLI gcloud.

Com o CustomTargetType criado como um recurso do Cloud Deploy, é possível usá-lo em uma definição de Target para criar seu destino personalizado.

Para mais informações sobre a definição de CustomTargetType, consulte a referência do esquema de configuração do Cloud Deploy.

Defina sua meta

A única diferença entre uma definição de destino para um tipo compatível e uma definição personalizada é que a personalizada inclui uma estrofe customTarget. A sintaxe de um customTarget é a seguinte:

customTarget:
  customTargetType: [CUSTOM_TARGET_TYPE_NAME]

Em que CUSTOM_TARGET_TYPE_NAME é o valor da propriedade name definida na configuração de tipo de destino personalizado.

Adicionar seu destino ao pipeline de entrega

Você pode usar um destino personalizado em um pipeline de entrega exatamente como usaria um tipo de destino compatível. Ou seja, não há diferença na progressão do pipeline de veiculação entre destinos de um tipo compatível e destinos personalizados.

Todos os destinos em um pipeline de entrega precisam usar o mesmo tipo de destino. Por exemplo, não é possível ter um pipeline de entrega com alguns destinos implantando no Google Kubernetes Engine e outros destinos personalizados.

Assim como nos tipos de destino compatíveis, é possível incluir parâmetros de implantação na etapa do pipeline.

Criar uma versão

Com seu tipo de segmentação personalizada totalmente definido e uma segmentação criada para usar esse tipo, agora você pode criar um lançamento da maneira normal:

gcloud deploy releases create [RELEASE_NAME] \
  --project=[PROJECT_NAME] \
  --region=[REGION] \
  --delivery-pipeline=[PIPELINE_NAME]

Após a criação da versão, a renderização personalizada é executada para cada destino no pipeline de entrega, incluindo o processamento de parâmetros de implantação configurados na versão, nos destinos ou no pipeline de entrega. O Cloud Deploy fornece os parâmetros de implantação como entrada para o contêiner de renderização personalizada.

Ver a saída das suas segmentações personalizadas

Se a tarefa de renderização personalizada atender aos requisitos para destinos personalizados, use o console Google Cloud para ver os artefatos renderizados.

Siga estas etapas para conferir a saída da sua tarefa de renderização personalizada.

  1. No console Google Cloud , navegue até a página Pipelines de entrega do Cloud Deploy para conferir seu pipeline de entrega.

    Abrir a página "Pipelines de entrega"

  2. Clique no nome do pipeline de entrega.

    A visualização do pipeline mostra o status de implantação do app, e sua versão é listada na guia Versões em Detalhes do pipeline de entrega.

  3. Clique no nome da versão.

    A página Detalhes da versão é mostrada.

  4. Clique na guia Artefatos.

  5. Em Artefatos de destino, clique na seta ao lado de Ver artefatos.

    Os artefatos renderizados são listados, incluindo o arquivo de configuração do Skaffold e o arquivo de manifesto renderizado gerado pelo renderizador personalizado. Clique no link Local de armazenamento ao lado de cada um para acessar o bucket do Cloud Storage e ver esses arquivos.

    Você também pode clicar no link Ver artefatos para conferir esses arquivos por versão, destino ou fase usando o inspetor de versões.

A seguir