summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyle Wiebers <kwiebers@gitlab.com>2019-09-06 16:47:47 -0500
committerKyle Wiebers <kwiebers@gitlab.com>2019-09-10 13:54:58 -0500
commitac52c7ee74f7155e5880e5a0bde37bc3682bdbd4 (patch)
tree2ec1e846c78222da7abb6128a84e4bd679723390
parentb13e18da39b24b83fdfb242ddcaf127159e23983 (diff)
downloadgitlab-ce-review-app-optimizations.tar.gz
Refine the review-app config variablesreview-app-optimizations
Add base-config.yaml to define non-environment variable config for review app deploy. Define resource requests and limits for all used apps
-rw-r--r--scripts/review_apps/base-config.yaml151
-rwxr-xr-xscripts/review_apps/review-apps.sh96
2 files changed, 156 insertions, 91 deletions
diff --git a/scripts/review_apps/base-config.yaml b/scripts/review_apps/base-config.yaml
new file mode 100644
index 00000000000..403c1df97aa
--- /dev/null
+++ b/scripts/review_apps/base-config.yaml
@@ -0,0 +1,151 @@
+global:
+ appConfig:
+ enableUsagePing: false
+ imagePullPolicy: Always
+ ingress:
+ annotations:
+ external-dns.alpha.kubernetes.io/ttl: 10
+ configureCertmanager: false
+ tls:
+ secretName: tls-cert
+certmanager:
+ install: false
+gitlab:
+ gitaly:
+ resources:
+ requests:
+ cpu: 300m
+ memory: 200M
+ limits:
+ cpu: 600m
+ memory: 420M
+ persistence:
+ size: 10G
+ gitlab-exporter:
+ enabled: false
+ mailroom:
+ enabled: false
+ migrations:
+ resources:
+ requests:
+ cpu: 350m
+ memory: 200M
+ limits:
+ cpu: 700m
+ gitlab-shell:
+ resources:
+ requests:
+ cpu: 70m
+ memory: 20M
+ limits:
+ cpu: 140m
+ memory: 40M
+ sidekiq:
+ resources:
+ requests:
+ cpu: 300m
+ memory: 800M
+ limits:
+ cpu: 400m
+ memory: 1.6G
+ task-runner:
+ resources:
+ requests:
+ cpu: 50m
+ memory: 350M
+ limits:
+ cpu: 100m
+ memory: 700M
+ unicorn:
+ resources:
+ requests:
+ cpu: 600m
+ memory: 1.4G
+ limits:
+ cpu: 1.2G
+ memory: 2.8G
+ workhorse:
+ resources:
+ requests:
+ cpu: 100m
+ memory: 100M
+ limits:
+ cpu: 200m
+ memory: 200M
+gitlab-runner:
+ resources:
+ requests:
+ cpu: 300m
+ memory: 300M
+ limits:
+ cpu: 600m
+ memory: 600M
+minio:
+ resources:
+ requests:
+ cpu: 100m
+ memory: 128M
+ limits:
+ cpu: 200m
+ memory: 280M
+nginx-ingress:
+ controller:
+ config:
+ ssl-ciphers: ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4
+ replicaCount: 2
+ resources:
+ requests:
+ cpu: 150m
+ memory: 250M
+ limits:
+ cpu: 300m
+ memory: 500M
+ minAvailable: 1
+ service:
+ enableHttp: false
+ livenessProbe:
+ timeoutSeconds: 5
+ readinessProbe:
+ timeoutSeconds: 5
+ defaultBackend:
+ resources:
+ requests:
+ cpu: 5m
+ memory: 12M
+ limits:
+ cpu: 10m
+ memory: 24M
+ replicaCount: 1
+postgresql:
+ metrics:
+ enabled: false
+ resources:
+ requests:
+ cpu: 250m
+ memory: 256M
+ limits:
+ cpu: 500m
+prometheus:
+ install: false
+redis:
+ metrics:
+ resources:
+ enabled: false
+ resources:
+ requests:
+ cpu: 100m
+ memory: 60M
+ limits:
+ cpu: 200m
+ memory: 130M
+redis-ha:
+ enabled: false
+registry:
+ minReplicas: 1
+ resources:
+ requests:
+ cpu: 50m
+ memory: 32M
+ limits:
+ cpu: 100m
+ memory: 64M
diff --git a/scripts/review_apps/review-apps.sh b/scripts/review_apps/review-apps.sh
index a9549171b54..e82b83a1e59 100755
--- a/scripts/review_apps/review-apps.sh
+++ b/scripts/review_apps/review-apps.sh
@@ -196,19 +196,13 @@ HELM_CMD=$(cat << EOF
--force \
--wait \
--timeout 900 \
+ --set ci.branch="$CI_COMMIT_REF_NAME" \
+ --set ci.commit.sha="$CI_COMMIT_SHORT_SHA" \
+ --set ci.job.url="$CI_JOB_URL" \
+ --set ci.pipeline.url="$CI_PIPELINE_URL" \
--set releaseOverride="$CI_ENVIRONMENT_SLUG" \
- --set global.appConfig.enableUsagePing=false \
- --set global.imagePullPolicy=Always \
--set global.hosts.hostSuffix="$HOST_SUFFIX" \
--set global.hosts.domain="$REVIEW_APPS_DOMAIN" \
- --set global.ingress.configureCertmanager=false \
- --set global.ingress.tls.secretName=tls-cert \
- --set global.ingress.annotations."external-dns\.alpha\.kubernetes\.io/ttl"="10" \
- --set certmanager.install=false \
- --set prometheus.install=false \
- --set nginx-ingress.controller.service.enableHttp=false \
- --set nginx-ingress.controller.replicaCount=2 \
- --set nginx-ingress.controller.config.ssl-ciphers="ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4" \
--set gitlab.migrations.image.repository="$gitlab_migrations_image_repository" \
--set gitlab.migrations.image.tag="$CI_COMMIT_REF_SLUG" \
--set gitlab.gitaly.image.repository="$gitlab_gitaly_image_repository" \
@@ -226,91 +220,11 @@ HELM_CMD=$(cat << EOF
EOF
)
-# Default requested: CPU => 100m, memory => 100Mi
-HELM_CMD=$(cat << EOF
- $HELM_CMD \
- --set nginx-ingress.controller.resources.limits.cpu=200m \
- --set nginx-ingress.controller.resources.requests.memory=210M \
- --set nginx-ingress.controller.resources.limits.memory=420M
-EOF
-)
-
-# Default requested: CPU => 5m, memory => 5Mi
-HELM_CMD=$(cat << EOF
- $HELM_CMD \
- --set nginx-ingress.defaultBackend.resources.limits.cpu=10m \
- --set nginx-ingress.defaultBackend.resources.requests.memory=12M \
- --set nginx-ingress.defaultBackend.resources.limits.memory=24M
-EOF
-)
-
-# Default requested: CPU => 100m, memory => 200Mi
-HELM_CMD=$(cat << EOF
- $HELM_CMD \
- --set gitlab.gitaly.resources.requests.cpu=150m \
- --set gitlab.gitaly.resources.limits.cpu=300m \
- --set gitlab.gitaly.resources.limits.memory=420M
-EOF
-)
-
-# Default requested: CPU => 0, memory => 6M
-HELM_CMD=$(cat << EOF
- $HELM_CMD \
- --set gitlab.gitlab-shell.resources.requests.cpu=70m \
- --set gitlab.gitlab-shell.resources.limits.cpu=140m \
- --set gitlab.gitlab-shell.resources.requests.memory=20M \
- --set gitlab.gitlab-shell.resources.limits.memory=40M
-EOF
-)
-
-# Default requested: CPU => 50m, memory => 650M
-HELM_CMD=$(cat << EOF
- $HELM_CMD \
- --set gitlab.sidekiq.resources.requests.cpu=200m \
- --set gitlab.sidekiq.resources.limits.cpu=300m \
- --set gitlab.sidekiq.resources.requests.memory=800M \
- --set gitlab.sidekiq.resources.limits.memory=1.2G
-EOF
-)
-
-# Default requested: CPU => 300m + 100m (workhorse), memory => 1.2G + 100M (workhorse)
-HELM_CMD=$(cat << EOF
- $HELM_CMD \
- --set gitlab.unicorn.resources.limits.cpu=800m \
- --set gitlab.unicorn.resources.limits.memory=2.6G
-EOF
-)
-
-# Default requested: CPU => 100m, memory => 64Mi
-HELM_CMD=$(cat << EOF
- $HELM_CMD \
- --set redis.resources.limits.cpu=200m \
- --set redis.resources.limits.memory=130M
-EOF
-)
-
-# Default requested: CPU => 100m, memory => 128Mi
-HELM_CMD=$(cat << EOF
- $HELM_CMD \
- --set minio.resources.limits.cpu=200m \
- --set minio.resources.limits.memory=280M
-EOF
-)
-
-# Default requested: CPU => 0, memory => 0
-HELM_CMD=$(cat << EOF
- $HELM_CMD \
- --set gitlab-runner.resources.requests.cpu=300m \
- --set gitlab-runner.resources.limits.cpu=600m \
- --set gitlab-runner.resources.requests.memory=300M \
- --set gitlab-runner.resources.limits.memory=600M
-EOF
-)
-
HELM_CMD=$(cat << EOF
$HELM_CMD \
--namespace="$KUBE_NAMESPACE" \
--version="$CI_PIPELINE_ID-$CI_JOB_ID" \
+ -f "../scripts/review_apps/base-config.yaml" \
"$name" .
EOF
)