Como trabalhar com arquivos YAML do Google Cloud e do Kubernetes

O Cloud Code foi projetado para ajudar na edição de arquivos de configuração relacionados ao Kubernetes e ao Google Cloud, incluindo validação baseada em esquema, diagnóstico e documentação rápida.

Arquivos de configuração YAML compatíveis

Além disso, o Cloud Code também é compatível com CRDs populares do Kubernetes, como o Kubeflow, pronto para uso.

Como usar esquema personalizado

Além disso, com o Cloud Code, você pode fornecer seu próprio esquema de CRD com as configurações do IntelliJ (Arquivo > Configurações > Ferramentas > ). Cloud Code > Kubernetes ou para Mac OS X, IntelliJ IDEA > Preferences > Ferramentas > Cloud Code > Kubernetes e navegue até a seção Locais do esquema de CRD.

É possível apontar para um arquivo local ou um URL. Os URLs que apontam para github.com são convertidos automaticamente em raw.githubusercontent.com.

Como extrair o esquema de um cluster

Quando você muda para um cluster que executa o Kubernetes v1.16 e versões posteriores no Kubernetes Explorer, o Cloud Code extrai automaticamente o esquema de todos os CRDs instalados.

Compatibilidade adicional com o Skaffold

O Skaffold é o mecanismo subjacente que alimenta o Cloud Code, o que ajuda a criar, enviar e implantar seu aplicativo, além de fornecer suporte para a criação de pipelines de CI/CD.

O Cloud Code é compatível com o gerenciamento de arquivos de configuração do Skaffold. Ao abrir um projeto, o Cloud Code detecta esquemas do Skaffold que não estão atualizados e solicita (por meio do log de eventos) quando uma atualização de versão do esquema do Skaffold está disponível para o YAML do Skaffold atual.

Notificação no log de eventos solicitando que o usuário faça upgrade da versão do esquema do Skaffold porque os arquivos YAML dele não são da versão mais recente

Como alternativa, acesse Tools > Cloud Code > Kubernetes e selecione Check for Skaffold Schemas Upgrades para verificar se há upgrades de esquema disponíveis.

Como configurar com snippets

Os snippets prontos para uso no esquema YAML comum (usando Ctrl+Space para visualizar opções) tornam mais fácil iniciar um novo arquivo YAML ou adicionar um arquivo existente sem erros, basta seguir as práticas recomendadas. Além disso, é mais fácil trabalhar com campos repetitivos. Basta preencher um, e o Cloud Code incluirá as instâncias restantes.

Como usar snippets com campos repetitivos

Atualmente, os seguintes snippets são oferecidos:

  • Cloud Build - Cloud Run deployment
  • Cloud Build - Docker container build
  • Cloud Build - GKE deployment
  • Cloud Build - GKE Skaffold deployment
  • Cloud Build - Go build
  • Cloud Build - Terraform plan + apply
  • Config Connector - BigQueryDataset
  • Config Connector - BigQueryTable
  • Config Connector - BigtableCluster
  • Config Connector - BigtableInstance
  • Config Connector - PubSubSubscription
  • Config Connector - PubSubTopic
  • Config Connector - RedisInstance
  • Config Connector - SpannerInstance
  • Kubernetes - ConfigMap
  • Kubernetes - Deployment
  • Kubernetes - Ingress
  • Kubernetes - Pod
  • Kubernetes - Service
  • Migrate for Anthos - Export
  • Migrate for Anthos - PersistentVolumeClaim
  • Migrate for Anthos - StatefulSet
  • Skaffold - Bazel
  • Skaffold - Getting-started
  • Skaffold - Helm deployment
  • Skaffold - Kaniko

Como concluir com contexto

Com base no esquema atual, o Cloud Code fornecerá conclusões contextuais para ajudar você a escolher a opção certa.

Conclusões contextuais do esquema do Kubernetes

Como validar o esquema YAML

O Cloud Code é compatível com a validação de esquema sinalizando tags e valores inválidos nos arquivos YAML e sugerindo correções, quando possível.

Valor do campo de nome sublinhado em vermelho para destacar um valor inválido de "1234". Estados de texto ao passar o cursor: "Tipo incorreto. String esperada."

Como validar arquivos YAML do Skaffold

O Cloud Code fornece suporte adicional de edição de arquivos de configuração do Skaffold e modelos inteligentes, permitindo validar facilmente seus arquivos skaffold.yaml. Consulte este guia sobre como usar um app com o Cloud Code.

Modelos yaml do Skaffold

Como concluir arquivos de configuração do Skaffold com contexto

Com base no esquema atual, o Cloud Code fornece conclusões contextuais e documentações relevantes para ajudar você a escolher a opção certa.

Conclusões do Skaffold

Como ativar a sincronização de arquivos Skaffold e a recarga dinâmica

Para melhorar a eficiência do fluxo de trabalho de desenvolvimento local e evitar a necessidade de recriar, reimplantar e reiniciar os pods, o Skaffold aceita copiar arquivos alterados para um contêiner implantado. Isso significa que, ao fazer mudanças em arquivos estáticos e de código-fonte, é possível ver as alterações entrarem em vigor em questão de segundos, criando um loop de feedback acelerado.

Em arquivos estáticos, como HTML e CSS, o comportamento de cópia desse arquivo é chamado de sincronização de arquivos.

Nos arquivos de código-fonte, esse comportamento é chamado de recarga dinâmica e funciona para os seguintes tipos de arquivo:

  • Go: *.go
  • Java: *.java, *.kt, *.scala, *.groovy, *.clj.
  • Node.js: *.js, *.mjs, *.coffee, *.litcoffee, *.json

Com a recarga dinâmica configurada, o Skaffold detecta alterações nos arquivos compatíveis e sincroniza essas alterações com o contêiner em execução no cluster, ignorando a necessidade de reconstrução difícil de imagem e reinicialização do pod. Mudanças em outros tipos de arquivo, no entanto, acionam a recriação de uma imagem.

A sincronização automática de arquivos e a recarga dinâmica são ativadas por padrão quando você trabalha com o Buildpacks como o builder preferido. Para outros builders como o Docker, é possível especificar uma seção sync no skaffold.yaml para o artefato que você está personalizando.

A configuração de sincronização pode ser uma das seguintes (em ordem de preferência):

  • auto (apenas para artefatos Jib e Buildpacks)
  • infer
  • manual

Se você especificar uma sincronização manual para sincronizar todos os arquivos HTML /static-html com a pasta static no contêiner, seu skaffold.yaml conterá esta seção sync:

build:
  artifacts:
    - image: gcr.io/k8s-skaffold/node-example
      context: node
      sync:
        manual:
          - src: 'static-html/*.html'
            dest: static

Para uma visão detalhada da sincronização de arquivos e da especificação de regras de sincronização, consulte o guia do Skyffold sobre sincronização de arquivos.

Como descobrir definições usando a documentação rápida

O Cloud Code exibe a documentação relevante de um recurso quando você destaca uma linha no arquivo de configuração e acessa Visualizar > Documentação rápida.

Documentação rápida

Como inspecionar o YAML para problemas de estrutura e validação

O Cloud Code oferece suporte a inspeção de problemas comuns de esquema e fornece erros descritivos.

Como inspecionar arquivos YAML

Como aplicar um arquivo YAML

Para executar kubectl apply -f para aplicar uma alteração de configuração usando o arquivo atual, use o ícone de ações kubectl cone do kubectl actions, disponível no gutter do ambiente de desenvolvimento integrado, e selecione Apply } Isso levará a uma visualização de diferenças para você revisar as alterações antes de clicar em Aplicar.

Opção de aplicar destacada na lista de ações do kubectl

Como diferenciar arquivos YAML

Para ver as diferenças entre um arquivo YAML no controle de origem e um arquivo YAML implantado, use o ícone de ação do kubectl cone do kubectl actions disponível no gutter do seu editor. Escolha a opção Diff para abrir uma visualização de diferenças para comparar e comparar dois arquivos de esquema.

Opção de diferença destacada na lista de ações do kubectl

Como executar uma simulação de um arquivo YAML

Para executar uma simulação do seu arquivo e verificar a validade dele, use o ícone de ações do kubectlcone do kubectl actions , disponível no gutter do seu ambiente de desenvolvimento integrado, para selecionarSimulação no servidor ouSimulação no cliente de dados. Isso executa kubectl apply -f dry-run=server (ou kubectl apply -f dry-run=client, para a opção Cliente) e notifica você se seu arquivo pode ser criado na janela de Terminal.

Opção de simulação no servidor destacada na lista de ações do kubectl

Como receber suporte

Para enviar um feedback ou informar um problema no ambiente de desenvolvimento integrado do IntelliJ, acesse Tools > Cloud Code > Ajuda / Sobre > Envie feedback ou relate um problema no GitHub ou faça uma pergunta no Stack Overflow.

Você também pode participar do canal #cloud-code, que faz parte da comunidade do Google Cloud no Slack.