Postgres PVC hit 100% → crash-looped → GitLab webservice couldn't verify SSH keys → all git operations failed. Root cause: 10Gi PVC outgrown by GitLab database. Fixes applied: - Expand postgres PVC 10Gi → 20Gi - Expand minio PVC 100Gi → 150Gi (was 81.8% full) - Expand prometheus PVC 2Gi → 10Gi, retentionSize 1500MB → 8GB - Scale gitlab-webservice to 2 replicas for HA - Add PVC autoscaler CronJob (every 15min, auto-expand at 85%) - Add daily postgres backup CronJob (pg_dump → MinIO, 7d + 4w retention) - Add PrometheusRule storage alerts (75% warning, 90% critical) - Add network policies for maintenance job egress Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
197 lines
3.9 KiB
YAML
197 lines
3.9 KiB
YAML
# GitLab CE - Foxhunt deployment
|
|
# Runs on 'infra' node pool alongside platform services
|
|
# External Postgres + Redis on same pool
|
|
|
|
global:
|
|
edition: ce
|
|
kas:
|
|
enabled: false
|
|
hosts:
|
|
domain: fxhnt.ai
|
|
gitlab:
|
|
name: git.fxhnt.ai
|
|
https: true
|
|
registry:
|
|
name: git.fxhnt.ai
|
|
https: true
|
|
ingress:
|
|
enabled: false
|
|
configureCertmanager: false
|
|
shell:
|
|
port: 2222
|
|
psql:
|
|
host: postgres.foxhunt.svc.cluster.local
|
|
port: 5432
|
|
database: gitlab
|
|
username: gitlab
|
|
password:
|
|
secret: gitlab-secrets
|
|
key: db-password
|
|
redis:
|
|
host: redis.foxhunt.svc.cluster.local
|
|
port: 6379
|
|
auth:
|
|
enabled: false
|
|
minio:
|
|
enabled: false
|
|
registry:
|
|
bucket: foxhunt-gitlab-registry
|
|
appConfig:
|
|
lfs:
|
|
bucket: foxhunt-gitlab-artifacts
|
|
connection:
|
|
secret: gitlab-s3-credentials
|
|
key: connection
|
|
artifacts:
|
|
bucket: foxhunt-gitlab-artifacts
|
|
connection:
|
|
secret: gitlab-s3-credentials
|
|
key: connection
|
|
uploads:
|
|
bucket: foxhunt-gitlab-artifacts
|
|
connection:
|
|
secret: gitlab-s3-credentials
|
|
key: connection
|
|
packages:
|
|
bucket: foxhunt-gitlab-artifacts
|
|
connection:
|
|
secret: gitlab-s3-credentials
|
|
key: connection
|
|
gitlab_kas:
|
|
enabled: false
|
|
|
|
# Disable bundled databases — use external
|
|
postgresql:
|
|
install: false
|
|
redis:
|
|
install: false
|
|
|
|
# Disable components we don't need
|
|
installCertmanager: false
|
|
certmanager:
|
|
installCRDs: false
|
|
nginx-ingress:
|
|
enabled: false
|
|
prometheus:
|
|
install: true
|
|
rbac:
|
|
create: true
|
|
alertmanager:
|
|
enabled: false
|
|
server:
|
|
nodeSelector:
|
|
k8s.scaleway.com/pool-name: infra
|
|
persistentVolume:
|
|
enabled: false
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 512Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 1Gi
|
|
gitlab-runner:
|
|
install: false
|
|
|
|
# Registry — S3-backed, NodePort for kubelet image pulls
|
|
# Token auth disabled (cluster-internal only, secured by network policies)
|
|
# Pods pull via gitlab-registry.foxhunt.svc.cluster.local:5000 (internal DNS)
|
|
registry:
|
|
replicaCount: 1
|
|
hpa:
|
|
minReplicas: 1
|
|
maxReplicas: 1
|
|
service:
|
|
type: NodePort
|
|
nodePort: 30500
|
|
storage:
|
|
secret: gitlab-s3-credentials
|
|
key: registry
|
|
redirect:
|
|
disable: true
|
|
nodeSelector:
|
|
k8s.scaleway.com/pool-name: infra
|
|
|
|
# GitLab core components — all on infra node pool
|
|
gitlab:
|
|
webservice:
|
|
replicaCount: 2
|
|
hpa:
|
|
minReplicas: 2
|
|
maxReplicas: 2
|
|
workerProcesses: 2
|
|
workhorse:
|
|
extraArgs: "-apiLimit 0 -apiQueueLimit 0"
|
|
nodeSelector:
|
|
k8s.scaleway.com/pool-name: infra
|
|
resources:
|
|
requests:
|
|
cpu: 500m
|
|
memory: 2Gi
|
|
limits:
|
|
cpu: 2000m
|
|
memory: 4Gi
|
|
extraEnv:
|
|
REDIS_URL: "redis://redis.foxhunt.svc.cluster.local:6379/8"
|
|
|
|
sidekiq:
|
|
replicas: 1
|
|
hpa:
|
|
minReplicas: 1
|
|
maxReplicas: 1
|
|
concurrency: 10
|
|
nodeSelector:
|
|
k8s.scaleway.com/pool-name: infra
|
|
resources:
|
|
requests:
|
|
cpu: 250m
|
|
memory: 1Gi
|
|
limits:
|
|
cpu: 1000m
|
|
memory: 2Gi
|
|
extraEnv:
|
|
REDIS_URL: "redis://redis.foxhunt.svc.cluster.local:6379/8"
|
|
|
|
gitaly:
|
|
persistence:
|
|
enabled: true
|
|
size: 50Gi
|
|
nodeSelector:
|
|
k8s.scaleway.com/pool-name: infra
|
|
resources:
|
|
requests:
|
|
cpu: 200m
|
|
memory: 512Mi
|
|
limits:
|
|
cpu: 1000m
|
|
memory: 2Gi
|
|
|
|
gitlab-shell:
|
|
replicaCount: 1
|
|
hpa:
|
|
minReplicas: 1
|
|
maxReplicas: 1
|
|
nodeSelector:
|
|
k8s.scaleway.com/pool-name: infra
|
|
service:
|
|
type: NodePort
|
|
nodePort: 32222
|
|
|
|
toolbox:
|
|
backups:
|
|
objectStorage:
|
|
config:
|
|
secret: gitlab-s3-credentials
|
|
key: connection
|
|
nodeSelector:
|
|
k8s.scaleway.com/pool-name: infra
|
|
|
|
kas:
|
|
enabled: false
|
|
hpa:
|
|
minReplicas: 0
|
|
maxReplicas: 0
|
|
|
|
gitlab-exporter:
|
|
enabled: false
|