Files
workshop/CLAUDE.md
ArgoCD Setup 97b4b50c96 refactor: Atualizar CLAUDE.md e melhorias aula-11
- CLAUDE.md: Atualizar tabela com aulas 12 (Victoria Metrics) e 13 (Container Factory)
- aula-11: Melhorias no setup do GitLab Runner
2026-01-08 18:30:08 -03:00

2.1 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 GitLab + Registry + SSH Hetzner
11 ArgoCD + GitLab Runner Hetzner
12 Victoria Metrics (Observabilidade) Hetzner
13 Container Factory (eStargz) Hetzner

Comandos Rápidos

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

# Aulas 07-13 (Hetzner)
cd aula-08 && ./setup.sh      # Cluster base
cd aula-09 && ./setup.sh      # n8n
cd aula-10 && ./setup.sh      # GitLab
cd aula-11 && ./setup.sh      # ArgoCD
cd aula-12 && ./setup.sh      # Victoria Metrics
cd aula-13 && ./setup.sh      # Container Factory

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