Files
workshop/aula-11/gitlab-runner-values.yaml
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

149 lines
4.4 KiB
YAML

# =============================================================================
# GitLab Runner Helm Chart - Executor Kubernetes
# =============================================================================
#
# Configura GitLab Runner para executar jobs como pods no Kubernetes.
# Suporta Docker-in-Docker para build de imagens.
#
# Valores dinâmicos (configurados via --set no setup.sh):
# - gitlabUrl
# - runnerToken (novo método) ou runnerRegistrationToken (legacy)
#
# =============================================================================
# Número máximo de jobs simultâneos
concurrent: 2
# Intervalo de check por novos jobs (segundos)
checkInterval: 30
# Intervalo de heartbeat (segundos)
heartbeatInterval: 30
# =============================================================================
# CONFIGURAÇÃO DO RUNNER
# =============================================================================
runners:
# Executor: kubernetes (jobs rodam como pods)
executor: kubernetes
# Privileged mode necessário para Docker-in-Docker
privileged: true
# Namespace onde os jobs serão executados
namespace: gitlab
# Tags para identificar o runner
tags: "kubernetes,docker,hetzner"
# Rodar jobs sem tag também
runUntagged: true
# Proteger branches protegidas
protected: false
# Imagem padrão para jobs
image: alpine:latest
# Helper image (para git clone, artifacts, etc)
helper:
image: gitlab/gitlab-runner-helper:alpine-latest
# Configuração TOML adicional
config: |
[[runners]]
[runners.kubernetes]
image = "alpine:latest"
privileged = true
# IMPORTANTE: Helper image para ARM64 (Hetzner CAX nodes)
# Sem isso, o runner tenta usar x86_64 e falha
helper_image = "gitlab/gitlab-runner-helper:arm64-latest"
# Recursos para pods de job (aumentados para builds Docker)
# CAX31 tem 8 vCPU e 16GB - aproveitar para builds rápidos
cpu_request = "500m"
cpu_limit = "4000m"
memory_request = "1Gi"
memory_limit = "8Gi"
# Timeout para pods
poll_timeout = 600
# Pull policy
pull_policy = ["if-not-present"]
# Node selector para usar o build-pool (CAX31)
[runners.kubernetes.node_selector]
"node-pool" = "build"
# Toleration para o taint do build-pool
[[runners.kubernetes.node_tolerations]]
key = "dedicated"
operator = "Equal"
value = "builds"
effect = "NoSchedule"
# Volume para Docker certs (DinD)
[[runners.kubernetes.volumes.empty_dir]]
name = "docker-certs"
mount_path = "/certs/client"
medium = "Memory"
# Volume para cache de build
[[runners.kubernetes.volumes.empty_dir]]
name = "build-cache"
mount_path = "/cache"
medium = ""
# =============================================================================
# RECURSOS DO RUNNER (manager pod)
# =============================================================================
resources:
requests:
memory: 128Mi
cpu: 50m
limits:
memory: 256Mi
cpu: 200m
# =============================================================================
# RBAC
# =============================================================================
rbac:
create: true
# Permissões para criar pods, secrets, configmaps
rules:
- apiGroups: [""]
resources: ["pods", "pods/exec", "secrets", "configmaps"]
verbs: ["get", "list", "watch", "create", "patch", "update", "delete"]
- apiGroups: [""]
resources: ["pods/attach", "pods/log"]
verbs: ["get", "create"]
# =============================================================================
# SERVICE ACCOUNT
# =============================================================================
serviceAccount:
create: true
name: gitlab-runner
# =============================================================================
# MÉTRICAS (opcional)
# =============================================================================
metrics:
enabled: false
# =============================================================================
# POD SECURITY
# =============================================================================
podSecurityContext:
runAsNonRoot: true
runAsUser: 100
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: false
capabilities:
drop: ["ALL"]