Files
workshop/CLAUDE.md
ArgoCD Setup 2904628bef fix: auditoria de coerência entre aulas
Bugs corrigidos:
- aula-15: tracing.js fallback OTel endpoint usava service name errado
  (otel-collector vs otel-collector-opentelemetry-collector)
- aula-11/13: manifests k8s com gitea.kube.quest hardcoded → placeholder

Arquivos legado removidos (9):
- aula-10: gitlab-values.yaml, gitlab-registry-storage-secret.yaml,
  object-storage-secret.yaml, registry-storage-secret.yaml
- aula-11: gitlab-runner-values.yaml, node-bugado/.gitlab-ci.yml
- aula-13: 3x .gitlab-ci.yml (substituídos por .gitea/workflows/ci.yml)

CLAUDE.md: comandos rápidos agora incluem aula-14 e aula-15
2026-03-14 02:41:35 -03:00

2.3 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

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

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