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 requer 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. É possível usar 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.

Confira algumas das vantagens do Skaffold ao usá-lo 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 e ajudar os novos membros da equipe a começar.

  • 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 as executa e o Cloud Deploy as usa.

Como o Cloud Deploy usa o Skaffold?

  • A origem da renderização e as referências às imagens do 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 manifestos usando essa fonte de renderização e essas imagens.

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

  • O Cloud Deploy oferece suporte a 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 oferece suporte ao uso de outros implantadores para implantar seu aplicativo, a menos que você use destinos personalizados. No entanto, é possível usar ferramentas como o Helm ou o Kustomize 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.

    3. Definir o nível de detalhamento da geração de registros do Skaffold

      Por padrão, o nível de geração de registros do Skaffold é definido como warn. É possível mudar isso para debug na configuração de um ambiente de execução de destino definindo verbose: true.

  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.

    O uso do Skaffold para desenvolvimento é opcional no Cloud Deploy. Tudo o que é necessário para o Cloud Deploy funcionar é um arquivo skaffold.yaml que identifique manifestos para renderizar.

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 muda e como determinar qual versão está em uso atualmente.

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

  • Teste o tutorial de perfis do Skaffold.