- Aula 10: Gitea + Registry + Actions + Runner (substituiu GitLab) - gitea-values.yaml: PostgreSQL standalone, Valkey standalone, ~800Mi RAM - setup.sh/cleanup.sh: namespace gitea, Helm gitea-charts/gitea + actions - README.md: documentação completa com de→para (GitLab/Harbor/Tekton vs Gitea) - Aula 11: ArgoCD (GitOps) — removido GitLab Runner (runner vive na aula-10) - setup.sh: só ArgoCD, integração SSH com Gitea - node-bugado/.gitea/workflows/ci.yml: pipeline convertida - Aula 13: Container Factory — atualizado para Gitea - setup.sh/cleanup.sh: referências GitLab → Gitea - pipelines/postgresql/ci.yml: Gitea Actions workflow - README.md: conexão com act_runner explicada - CLAUDE.md: tabela de aulas atualizada
2.2 KiB
2.2 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 |
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 # Gitea
cd aula-11 && ./setup.sh # ArgoCD
cd aula-12 && ./setup.sh # Victoria Metrics
cd aula-13 && ./setup.sh # Container Factory
cd aula-14 && ./setup.sh # Istio Traffic Splitting
App node-bugado
// Aceita requests até MAX_REQUESTS (default: 3)
// Depois para de responder (simula crash)
// /health também para de responder
Demonstra:
restart: alwaysnã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 completasetup.sh- Instalação automatizadacleanup.sh- Remoção limpa- Manifests YAML ou Helm values
Scripts seguem o padrão:
- Verificar pré-requisitos
- Coletar configuração interativamente
- Salvar em
.envpara reutilização - Instalar via kubectl/helm
- Exibir URLs e credenciais