Files
workshop/CLAUDE.md
T
ArgoCD Setup 17a2891329 feat(aula-17): adicionar Cloud Native PostgreSQL (CNPG)
- Cluster PostgreSQL 3 instâncias com anti-affinity por hostname (hard)
  e por zona (soft) para spread entre datacenters Hetzner
- Backup automático via Barman Cloud para Hetzner Object Storage (S3)
- ScheduledBackup diário às 03:00
- App demo que valida conexão com o banco
- setup.sh: instala operator, cria cluster, deploya demo
- cleanup.sh: remoção limpa (backups S3 preservados)
2026-05-09 02:14:22 -03:00

83 lines
2.5 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 |
| 16 | Canary Automatizado com Flagger | Hetzner |
| 17 | Cloud Native PostgreSQL (CNPG) | Hetzner |
## Comandos Rápidos
```bash
# Aulas 01-06 (Local)
cd aula-XX && ./setup.sh # ou kubectl apply -f .
# Aulas 07-17 (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
cd aula-17 && ./setup.sh # CNPG - PostgreSQL HA
```
## 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