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
79 lines
2.3 KiB
Markdown
79 lines
2.3 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```javascript
|
|
// 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
|