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:
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.
Crie uma definição de
CustomTargetTypecom tarefas que referenciam o contêiner e especificam o comando ou os comandos a serem executados nele.Defina uma nova meta com uma propriedade
customTargetque identifica seu novo tipo de meta personalizada.Faça referência a esse destino na progressão do pipeline de entrega.
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
CUSTOM_TARGET_TYPE_NAMEÉ um nome arbitrário que você dá a essa definição de tipo de segmentação personalizada. Esse nome é referenciado na definição de destino para qualquer destino que use o tipo personalizado que você está definindo.
RENDER_TASKÉ a tarefa que define sua renderização personalizada. Se não for fornecido, o Cloud Deploy usará o renderizador integrado especificado na sua configuração do Skaffold.
DEPLOY_TASKÉ a tarefa que define sua implantação personalizada.
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.
No console Google Cloud , navegue até a página Pipelines de entrega do Cloud Deploy para conferir seu pipeline de entrega.
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.
Clique no nome da versão.
A página Detalhes da versão é mostrada.
Clique na guia Artefatos.
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
Confira o guia de início rápido: definir e usar um tipo de destino personalizado.
Consulte os tipos de destino personalizados de exemplo disponíveis.
Saiba mais sobre o Google Tarefas
Saiba mais sobre como configurar destinos do Cloud Deploy