Comparador YAML
Compare dois arquivos YAML lado a lado. Formata automaticamente, ordena chaves e destaca diferenças.
Como Usar
- Paste your first YAML into the left panel
- Paste your second YAML into the right panel
- Click Compare — both sides are auto-formatted and sorted
- Differences are highlighted: red for removed lines, green for added lines
Perguntas Frequentes
-
Does key order matter?
No. Both YAML files are sorted by keys before comparing, so differences in key order are ignored.
-
Can I compare nested YAML?
Yes. Nested objects and lists are fully compared after formatting.
-
What do the colors mean?
Red lines exist only in the left input. Green lines exist only in the right input. Unchanged lines have no highlight.
-
Is my data sent to a server?
No. All processing happens entirely in your browser.
YAML Diff em Fluxos de Trabalho DevOps
O YAML tornou-se a linguagem de configuração dominante em infraestrutura moderna. Kubernetes, Helm, Docker Compose, Ansible, GitHub Actions, GitLab CI, ArgoCD — todos usam YAML. Com essa ubiquidade vem um desafio: como comparar duas versões de um arquivo de configuração de forma confiável e significativa?
Por Que o Git Diff Não é Suficiente para YAML
O git diff é excelente para código, mas para YAML de configuração tem limitações importantes:
Ordem das Chaves Não Importa Semanticamente
Em YAML (assim como em JSON), objetos são coleções não ordenadas. Um Kubernetes Deployment com replicas: 3 e image: nginx é idêntico a um com essas chaves na ordem inversa. Um git diff mostraria as linhas como alteradas, criando ruído que obscurece mudanças reais.
Reformatação Obscurece Mudanças Reais
Ferramentas de geração automática de manifests (como helm template, kubectl kustomize ou Terraform) frequentemente produzem YAML com formatação diferente de uma execução para outra. Um diff de texto puro mostraria centenas de linhas "alteradas" quando na realidade apenas um valor mudou.
Indentação Variável
YAML aceita qualquer número consistente de espaços para indentação. Uma ferramenta pode usar 2 espaços, outra usa 4. Um diff de texto marcaria todos os blocos indentados como alterados após uma reformatação.
Cenários de Uso no Kubernetes
Revisão de Mudanças em Manifests
Antes de aplicar uma atualização com kubectl apply, comparar o manifest atual (obtido via kubectl get -o yaml) com a nova versão permite identificar exatamente o que vai mudar: a versão da imagem, o número de réplicas, novos labels, mudanças em limites de recursos.
Comparação de Releases Helm
Ao fazer upgrade de um chart Helm, comparar o YAML gerado pelo helm template antes e depois do upgrade revela todas as mudanças nos recursos Kubernetes que serão aplicadas — essencial antes de um upgrade em produção.
Review de Pull Requests de Infraestrutura
Em repos de Infrastructure as Code (IaC), pull requests que alteram manifests YAML se beneficiam de um diff semântico. Um reviewer pode ver que a mudança foi apenas um bump de versão de imagem, sem alterações estruturais — sem precisar ler linha por linha.
Debugging de ArgoCD e GitOps
Ferramentas GitOps como ArgoCD comparam o estado desejado (no Git) com o estado atual (no cluster). Entender o diff entre essas duas versões YAML ajuda a diagnosticar por que uma aplicação está fora de sincronia.
Ansible e Configurações de Infraestrutura
Além de Kubernetes, o YAML diff é valioso em:
- Ansible playbooks: comparar versões de playbooks para identificar tasks adicionadas ou modificadas
- Docker Compose: verificar mudanças em
docker-compose.ymlantes de umdocker compose up - Arquivos de configuração de aplicação: comparar configurações entre ambientes (dev, staging, produção)
Boas Práticas
- Remova campos gerados automaticamente antes de comparar:
resourceVersion,generation,uid, timestamps e annotations de gerenciamento são atualizados automaticamente pelo Kubernetes e não representam mudanças intencionais. - Use namespaces consistentes: manifestos com namespaces diferentes não são equivalentes mesmo que todo o resto seja igual.
- Valide antes de comparar: um YAML inválido produzirá um diff confuso ou inútil — valide a sintaxe primeiro com um formatador.