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

View File

@@ -1,10 +1,12 @@
# =============================================================================
# n8n Helm Chart - Custom Values
# n8n Helm Chart - Custom Values (Ambiente LOCAL)
# =============================================================================
# Aula 06 - Deploy n8n via Helm
# Aula 06 - Deploy n8n via Helm em cluster local
#
# Chart: community-charts/n8n
# Docs: https://community-charts.github.io/docs/charts/n8n/configuration
#
# Para cluster Hetzner Cloud, veja aula-09/
# =============================================================================
# -----------------------------------------------------------------------------
@@ -35,7 +37,7 @@ postgresql:
primary:
persistence:
enabled: true
size: 5Gi
size: 1Gi # Ambiente local - sem mínimo
# -----------------------------------------------------------------------------
# Redis (necessário para Queue Mode)
@@ -46,6 +48,10 @@ redis:
auth:
enabled: true
password: "n8n-redis-workshop-2025"
master:
persistence:
enabled: true
size: 1Gi # Ambiente local - sem mínimo
# -----------------------------------------------------------------------------
# Ingress NGINX
@@ -58,7 +64,7 @@ ingress:
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
hosts:
- host: n8n.kube.quest
- host: n8n.localhost
paths:
- path: /
pathType: Prefix
@@ -71,7 +77,7 @@ main:
N8N_SECURE_COOKIE: "false" # Permite HTTP sem HTTPS (apenas para dev/workshop)
persistence:
enabled: true
size: 2Gi
size: 1Gi # Ambiente local - sem mínimo
mountPath: "/home/node/.n8n"
resources:
requests:
@@ -121,7 +127,7 @@ worker:
webhook:
mode: queue
count: 1
url: "https://n8n.kube.quest"
url: "http://n8n.localhost"
extraEnvVars:
N8N_SECURE_COOKIE: "false"
resources: