Usar o Skaffold com o Cloud Deploy

Neste artigo, descrevemos o Skaffold, como e por que o Cloud Deploy o usa e o que você precisa fazer para que ele funcione para você.

O Cloud Deploy usa o Skaffold para operações de renderização e implantação. Também é possível usá-la para desenvolvimento local, criação, teste e para recursos avançados de implantação. No entanto, o Cloud Deploy exige apenas uma configuração do Skaffold que identifique os manifestos a serem renderizados e aplicados.

O que é o Skaffold?

O Skaffold é uma ferramenta de linha de comando que permite o desenvolvimento contínuo de aplicativos nativos do Kubernetes. Use o Skaffold para configurar um espaço de trabalho de desenvolvimento local para usar com pipelines de entrega contínua do Cloud Deploy.

O Skaffold inclui os seguintes recursos:

  • Ele oferece um controle discreto de atividades do pipeline de CI/CD (criação, renderização, implantação de teste e assim por diante).

  • Ele é útil como ferramenta de desenvolvimento local.

  • Os perfis do Skaffold permitem diferenciar entre diferentes ambientes, com diferentes configurações de compilação, teste e implantação, tudo no mesmo arquivo de configuração.

Por que o Cloud Deploy usa o Skaffold?

O Google Cloud Deploy usa o Skaffold para separar as ferramentas de renderização do pipeline de entrega. O pipeline de entrega simplesmente define a progressão do destino para o destino, enquanto a configuração do Skaffold define quais manifestos são renderizados e como. Isso torna a renderização de manifesto flexível sem afetar a maneira como você define o pipeline de entrega.

Veja algumas das vantagens que o Skaffold oferece quando usado com o Cloud Deploy:

  • Integração fácil

    Comece com um loop de desenvolvimento local. Você pode compartilhar o arquivo skaffold.yaml com sua equipe, o que pode ajudar a manter a consistência dos novos membros da equipe.

  • Controle consistente sobre a renderização em diversos destinos de implantação

    Você pode usar perfis do Skaffold com renderização e implantação diferentes para destinos distintos.

  • Escolha das ferramentas de renderização sem comprometer a definição dos pipelines de entrega

    O uso do Skaffold permite que o Cloud Deploy separe a definição do pipeline de entrega dos detalhes da renderização. Essa separação permite testar seus manifestos sem interromper o pipeline de entrega.

  • Processo de renderização coerente

    A origem da renderização e os contêineres são usados para gerar manifestos renderizados.

  • Verificações de integridade da implantação

    O Skaffold faz a execução delas e o Cloud Deploy as usa.

Como o Cloud Deploy usa o Skaffold?

  • A origem da renderização e as referências às imagens de contêiner são transmitidas para o Cloud Deploy quando você cria uma versão.

    Como parte da criação da versão, o Cloud Deploy chama o Cloud Build, que, por sua vez, invoca skaffold diagnose e skaffold render para renderizar o manifesto ou os manifestos usando essa origem de renderização e essas imagens.

  • Use perfis do Skaffold para diferenciar manifestos que serão aplicados a diferentes destinos.

  • O Cloud Deploy é compatível com módulos estáticos do Skaffold.

  • Durante a implantação, o Cloud Deploy chama skaffold apply para aplicar o manifesto renderizado ou os manifestos ao cluster de destino.

  • O Cloud Deploy não é compatível com o uso de outros implantadores para implantar seu aplicativo, a menos que você use destinos personalizados. No entanto, é possível usar ferramentas como Helm ou Kustomize (links em inglês) como renderizadores. Para saber mais sobre como o Cloud Deploy implanta sem usar implantadores específicos (como o Helm), consulte Arquitetura de serviço.

Faça o Skaffold trabalhar para você

  1. Configure o Skaffold de acordo com as necessidades de pipeline.

    1. Determine as necessidades do pipeline de entrega.

      Quantas metas você terá? A renderização e a implantação são iguais em cada uma delas. Se a configuração for a mesma para cada destino na sua progressão, não será necessário usar perfis do Skaffold. Você só precisa de um arquivo skaffold.yaml que descreva os manifestos para renderizar.

    2. Crie um perfil do Skaffold para cada destino, se aplicável

      Defina isso no arquivo skaffold.yaml e vincule-o à sequência de progressão de definição do pipeline de entrega.

      Consulte a documentação do Skaffold (em inglês) para mais informações sobre os perfis do Skaffold. Além disso, o documento Como gerenciar manifestos no Cloud Deploy inclui exemplos de configurações de perfil.

  2. Conecte o Cloud Deploy ao sistema de integração contínua.

    No final do processo de CI, transmita o skaffold.yaml, a origem de renderização e as imagens do contêiner a serem preenchidas no manifesto renderizado.

  3. Opcional: configure o loop de desenvolvimento local usando o Skaffold.

    Usar o Skaffold para desenvolvimento é opcional no Cloud Deploy. A única coisa necessária para que o Cloud Deploy funcione é um arquivo skaffold.yaml que identifica os manifestos que devem ser renderizados.

A seguir

  • Acesse o site da Skaffold para saber como ele funciona e o que ele pode fazer por você.

  • Saiba como o Cloud Deploy seleciona a versão do Skaffold a ser usada, quando a versão do Skaffold é alterada e como determinar qual versão está em uso atualmente.

  • Saiba como usar os perfis do Skaffold com ferramentas avançadas de gerenciamento de manifesto, como Helm, Kustomize e kpt.

  • Teste o tutorial de perfis do Skaffold.