Usar o Skaffold com o Cloud Deploy

Neste artigo, descrevemos o Skaffold, como e por que ele é usado pelo Cloud Deploy 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 os 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.

Estas são algumas das vantagens que o Skaffold oferece 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 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 de pipeline de entrega dos detalhes de 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

    Elas são executadas pelo Skaffold e pelo Cloud Deploy.

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 as 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 ou os manifestos renderizados no cluster de destino.

  • O Cloud Deploy não é compatível com o uso de outros implantadores para implantar o aplicativo, a menos que você use destinos personalizados. No entanto, é possível usar ferramentas como Helm ou 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 de geração de registros do Skaffold

      Por padrão, o nível de geração de registros do Skaffold é definido como warn. É possível alterar isso para debug na configuração do ambiente de execução de um 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.

    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 para renderização.

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 no momento.

  • 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.