Usar o Skaffold com o Cloud Deploy

Este artigo descreve o Skaffold, como e por quê. Ele é usado pelo Cloud Deploy e o que você precisa fazer para que ele funcione para 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 um Skaffold configuração que identifica para renderizar e aplicar.

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 para usar com a entrega contínua do Cloud Deploy pipelines de dados.

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 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 o pipeline de entrega a definição 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 passadas para Cloud Deploy ao criar uma versão.

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

  • 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 aceita o uso de outros implantadores para implantar seu aplicativo, a menos que você use destinos personalizados. Mas é possível usar ferramentas como o Helm ou Kustomize como renderizadores. Para saber mais sobre como O Cloud Deploy implanta sem o uso de 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 mudar isso para debug na configuração do de um alvo. ambiente de execução 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 para o Cloud Deploy funcionar é um arquivo skaffold.yaml que que identifica 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 para determinar qual versão está em uso no momento.

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

  • Teste o tutorial de perfis do Skaffold.