Files
workshop/CLAUDE.md
T
ArgoCD Setup 60e69c9ff6 feat: adicionar aula-16 (Flagger), remover Jaeger da aula-14 e integrar tracing Istio na aula-15
- aula-16: nova aula de canary deployment automatizado com Flagger
- aula-14: removido Jaeger (tracing movido para aula-15), corrigido
  nome do serviço Victoria Metrics, adicionado rate limiting no Kiali
- aula-15: adicionado receiver Zipkin no OTel Collector para receber
  traces do Istio, corrigida porta do Tempo (3100→3200), integração
  automática com Istio quando detectado
- aula-03: corrigido MAX_REQUESTS de 10 para 3 (valor padrão)
- CLAUDE.md: adicionada aula-16 na documentação
2026-04-10 08:43:01 -03:00

2.4 KiB

CLAUDE.md

Instruções para Claude Code neste repositório.

Visão Geral

Workshop progressivo: Docker → Kubernetes → GitOps na Hetzner Cloud. App de demonstração: node-bugado - trava após N requests para demonstrar health checks.

Estrutura

Aula Tema Ambiente
01 Docker Compose, restart policies Local
02 Liveness Probe Local
03 Replicas + Readiness Probe Local
04 NGINX Keep Request (Lua) Local
05 KEDA + Victoria Metrics Local
06 n8n via Helm Local
07 Talos Linux (snapshot Hetzner) Hetzner
08 Cluster HA (OpenTofu + CCM + CSI) Hetzner
09 n8n multi-tenant Hetzner
10 Gitea + Registry + SSH + Actions + Runner Hetzner
11 ArgoCD (GitOps) Hetzner
12 Victoria Metrics (Observabilidade) Hetzner
13 Container Factory (eStargz) Hetzner
14 Istio Traffic Splitting Hetzner
15 APM: Grafana Tempo + OpenTelemetry Hetzner
16 Canary Automatizado com Flagger Hetzner

Comandos Rápidos

# Aulas 01-06 (Local)
cd aula-XX && ./setup.sh      # ou kubectl apply -f .

# Aulas 07-15 (Hetzner)
cd aula-08 && ./setup.sh      # Cluster base
cd aula-09 && ./setup.sh      # n8n
cd aula-10 && ./setup.sh      # Gitea + Registry + Runner
cd aula-11 && ./setup.sh      # ArgoCD
cd aula-12 && ./setup.sh      # Victoria Metrics + Grafana
cd aula-13 && ./setup.sh      # Container Factory
cd aula-14 && ./setup.sh      # Istio Traffic Splitting
cd aula-15 && ./setup.sh      # APM: Tempo + OpenTelemetry
cd aula-16 && ./setup.sh      # Canary Automatizado com Flagger

App node-bugado

// Aceita requests até MAX_REQUESTS (default: 3)
// Depois para de responder (simula crash)
// /health também para de responder

Demonstra:

  • restart: always não é suficiente
  • Liveness probes detectam apps travadas
  • Readiness probes evitam tráfego para pods não-prontos

Variáveis de Ambiente

  • MAX_REQUESTS: Requests antes de travar (default: 3)
  • HCLOUD_TOKEN: Token da Hetzner Cloud (aulas 08-13)

Padrões do Projeto

Cada aula contém:

  • README.md - Documentação completa
  • setup.sh - Instalação automatizada
  • cleanup.sh - Remoção limpa
  • Manifests YAML ou Helm values

Scripts seguem o padrão:

  1. Verificar pré-requisitos
  2. Coletar configuração interativamente
  3. Salvar em .env para reutilização
  4. Instalar via kubectl/helm
  5. Exibir URLs e credenciais