Files
workshop/CLAUDE.md
ArgoCD Setup d380cd8585 refactor: migrar GitLab → Gitea (aulas 10, 11, 13)
- 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
2026-03-14 01:44:30 -03:00

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: 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