Files
workshop/aula-09/base-n8n-values.yaml
Allyson de Paula 07b7ee62d3 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
2025-12-31 17:57:02 -03:00

141 lines
3.8 KiB
YAML

# =============================================================================
# Base Values para n8n de Clientes
# =============================================================================
#
# Este arquivo contém configurações base para instalações de n8n por cliente.
# O script add-client.sh usa este arquivo como template.
#
# Personalizações por cliente são feitas via --set no helm install.
#
# =============================================================================
# Imagem
image:
repository: n8nio/n8n
tag: "2.0.3"
pullPolicy: IfNotPresent
# Chave de criptografia (será sobrescrita por cliente se necessário)
# IMPORTANTE: Em produção, use uma chave única por cliente
encryptionKey: "workshop-n8n-encryption-key-32ch"
# =============================================================================
# BANCO DE DADOS
# =============================================================================
db:
type: postgresdb
postgresql:
enabled: true
auth:
database: n8n
username: n8n
# Em produção, use secrets únicos por cliente
password: "n8n-postgres-workshop-2025"
primary:
persistence:
enabled: true
size: 10Gi # Mínimo Hetzner ($0.0484/GB)
storageClass: hcloud-volumes
# =============================================================================
# REDIS
# =============================================================================
redis:
enabled: true
architecture: standalone
auth:
enabled: true
password: "n8n-redis-workshop-2025"
master:
persistence:
enabled: true
size: 10Gi # Mínimo Hetzner ($0.0484/GB)
storageClass: hcloud-volumes
# =============================================================================
# INGRESS
# =============================================================================
# Host é configurado dinamicamente pelo add-client.sh
ingress:
enabled: true
className: nginx
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
# =============================================================================
# MAIN NODE
# =============================================================================
# N8N_SECURE_COOKIE é configurado dinamicamente pelo add-client.sh via --set
main:
persistence:
enabled: true
size: 10Gi # Mínimo Hetzner ($0.0484/GB)
storageClass: hcloud-volumes
mountPath: "/home/node/.n8n"
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
# =============================================================================
# WORKERS (Queue Mode)
# =============================================================================
worker:
mode: queue
count: 1
concurrency: 10
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
autoscaling:
enabled: true
minReplicas: 1
maxReplicas: 3
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
# =============================================================================
# WEBHOOKS
# =============================================================================
webhook:
mode: queue
count: 1
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
autoscaling:
enabled: false # Manter simples para clientes menores
# =============================================================================
# SEGURANÇA
# =============================================================================
securityContext:
runAsNonRoot: true
runAsUser: 1000