aula-11: ArgoCD + GitLab Runner para GitOps CI/CD

- ArgoCD via Helm com recursos mínimos (~1Gi)
- GitLab Runner com executor Kubernetes
- Exemplo node-bugado com Dockerfile e .gitlab-ci.yml
- Manifests K8s para repositório GitOps
- README.md da aula-03 (liveness + readiness probes)
This commit is contained in:
Allyson de Paula
2025-12-31 21:19:40 -03:00
parent 07b7ee62d3
commit 8e743f6e69
14 changed files with 1611 additions and 0 deletions

119
aula-11/argocd-values.yaml Normal file
View File

@@ -0,0 +1,119 @@
# =============================================================================
# ArgoCD Helm Chart - Configuração para Hetzner CAX11
# =============================================================================
#
# Recursos mínimos otimizados para cluster pequeno (~1Gi total).
# Desabilita HA e componentes não essenciais.
#
# Valores dinâmicos (configurados via --set no setup.sh):
# - server.ingress.hosts[0]
# - server.ingress.tls[0].hosts[0]
# - server.ingress.annotations.cert-manager.io/cluster-issuer (se Let's Encrypt)
#
# =============================================================================
global:
# Domínio base (será sobrescrito via --set)
domain: argocd.kube.quest
# =============================================================================
# ARGOCD SERVER (UI + API)
# =============================================================================
server:
replicas: 1
resources:
requests:
memory: 256Mi
cpu: 100m
limits:
memory: 512Mi
cpu: 500m
ingress:
enabled: true
ingressClassName: nginx
# Não usar ssl-passthrough nem backend-protocol HTTPS
# O ArgoCD roda em modo insecure (HTTP na porta 80)
# TLS é terminado no NGINX Ingress (ou CloudFlare)
# hosts e tls configurados via --set
# Modo insecure - TLS termina no ingress/proxy, não no server
extraArgs:
- --insecure
# =============================================================================
# ARGOCD REPO SERVER (Git operations)
# =============================================================================
repoServer:
replicas: 1
resources:
requests:
memory: 256Mi
cpu: 100m
limits:
memory: 512Mi
cpu: 500m
# =============================================================================
# ARGOCD APPLICATION CONTROLLER (Reconciliation)
# =============================================================================
controller:
replicas: 1
resources:
requests:
memory: 256Mi
cpu: 100m
limits:
memory: 512Mi
cpu: 500m
# =============================================================================
# REDIS (Cache)
# =============================================================================
redis:
resources:
requests:
memory: 64Mi
cpu: 50m
limits:
memory: 128Mi
cpu: 100m
# =============================================================================
# COMPONENTES DESABILITADOS
# =============================================================================
# Redis HA - não necessário para cluster pequeno
redis-ha:
enabled: false
# Dex (SSO) - usar autenticação local
dex:
enabled: false
# ApplicationSet Controller - pode habilitar depois se necessário
applicationSet:
enabled: false
# Notifications Controller - não essencial
notifications:
enabled: false
# =============================================================================
# CONFIGURAÇÕES GLOBAIS
# =============================================================================
configs:
params:
# Timeout para operações Git
server.repo.server.timeout.seconds: "60"
# Intervalo de reconciliação (3 minutos)
timeout.reconciliation: "180s"
cm:
# Permitir acesso via HTTP (terminação TLS no ingress)
server.insecure: "true"
# Timeout de sessão admin
admin.enabled: "true"