Workshop completo: aulas 08-10 com Talos, n8n e GitLab na Hetzner

Aula 08 - Cluster Kubernetes HA:
- Setup interativo com OpenTofu para Talos na Hetzner
- CCM, CSI Driver, Cluster Autoscaler, Metrics Server
- NGINX Ingress com LoadBalancer (HTTP/HTTPS/SSH)

Aula 09 - n8n na Hetzner:
- Deploy via Helm com PostgreSQL e Redis
- Suporte multi-tenant com add-client.sh
- Integração com Hetzner CSI para volumes persistentes

Aula 10 - GitLab na Hetzner:
- Setup agnóstico: CloudFlare (trusted proxies) ou Let's Encrypt
- Anti-affinity para distribuir webservice/sidekiq em nós diferentes
- Container Registry e SSH via TCP passthrough
- Documentação do erro 422 e solução com trustedCIDRsForXForwardedFor

Melhorias gerais:
- READMEs atualizados com arquitetura e troubleshooting
- Scripts cleanup.sh para todas as aulas
- CLAUDE.md atualizado com contexto do projeto
This commit is contained in:
Allyson de Paula
2025-12-31 17:57:02 -03:00
parent 50dc74c1d8
commit 07b7ee62d3
35 changed files with 4665 additions and 311 deletions

56
aula-05/cleanup.sh Executable file
View File

@@ -0,0 +1,56 @@
#!/bin/bash
# =============================================================================
# Cleanup da Aula 05 - Remove KEDA, Victoria Metrics e aplicação
# =============================================================================
set -e
# Cores para output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[OK]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo ""
echo "============================================"
echo " Cleanup - Aula 05"
echo "============================================"
echo ""
# Remover recursos da aplicação
log_info "Removendo aplicação node-bugado..."
kubectl delete -f "$SCRIPT_DIR/scaledobject.yaml" 2>/dev/null || true
kubectl delete -f "$SCRIPT_DIR/ingress-nginx.yaml" 2>/dev/null || true
kubectl delete -f "$SCRIPT_DIR/service.yaml" 2>/dev/null || true
kubectl delete -f "$SCRIPT_DIR/deployment.yaml" 2>/dev/null || true
kubectl delete -f "$SCRIPT_DIR/configmap.yaml" 2>/dev/null || true
log_success "Aplicação removida"
# Remover NGINX Ingress
log_info "Removendo NGINX Ingress Controller..."
helm uninstall nginx-ingress -n ingress-nginx 2>/dev/null || true
kubectl delete namespace ingress-nginx 2>/dev/null || true
log_success "NGINX Ingress removido"
# Remover KEDA
log_info "Removendo KEDA..."
helm uninstall keda -n keda 2>/dev/null || true
kubectl delete namespace keda 2>/dev/null || true
log_success "KEDA removido"
# Remover Victoria Metrics
log_info "Removendo Victoria Metrics..."
helm uninstall vm -n monitoring 2>/dev/null || true
kubectl delete namespace monitoring 2>/dev/null || true
log_success "Victoria Metrics removido"
echo ""
log_success "Cleanup concluído!"
echo ""