summaryrefslogtreecommitdiff
path: root/scripts/review_apps
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/review_apps')
-rwxr-xr-xscripts/review_apps/automated_cleanup.rb10
-rw-r--r--scripts/review_apps/base-config.yaml1
-rwxr-xr-xscripts/review_apps/review-apps.sh69
3 files changed, 17 insertions, 63 deletions
diff --git a/scripts/review_apps/automated_cleanup.rb b/scripts/review_apps/automated_cleanup.rb
index 0927481070b..5707f02d3f0 100755
--- a/scripts/review_apps/automated_cleanup.rb
+++ b/scripts/review_apps/automated_cleanup.rb
@@ -116,6 +116,12 @@ class AutomatedCleanup
delete_helm_releases(releases_to_delete)
end
+ def perform_stale_namespace_cleanup!(days:)
+ kubernetes_client = Tooling::KubernetesClient.new(namespace: nil)
+
+ kubernetes_client.cleanup_review_app_namespaces(created_before: threshold_time(days: days), wait: false)
+ end
+
def perform_stale_pvc_cleanup!(days:)
kubernetes.cleanup_by_created_at(resource_type: 'pvc', created_before: threshold_time(days: days), wait: false)
end
@@ -203,6 +209,10 @@ timed('Helm releases cleanup') do
automated_cleanup.perform_helm_releases_cleanup!(days: 7)
end
+timed('Stale Namespace cleanup') do
+ automated_cleanup.perform_stale_namespace_cleanup!(days: 14)
+end
+
timed('Stale PVC cleanup') do
automated_cleanup.perform_stale_pvc_cleanup!(days: 30)
end
diff --git a/scripts/review_apps/base-config.yaml b/scripts/review_apps/base-config.yaml
index bb4d5392b3b..981a8b51674 100644
--- a/scripts/review_apps/base-config.yaml
+++ b/scripts/review_apps/base-config.yaml
@@ -23,6 +23,7 @@ gitlab:
memory: 1500M
persistence:
size: 10G
+ storageClass: ssd
gitlab-exporter:
enabled: false
mailroom:
diff --git a/scripts/review_apps/review-apps.sh b/scripts/review_apps/review-apps.sh
index 6fb83e79f7f..a799f8cd925 100755
--- a/scripts/review_apps/review-apps.sh
+++ b/scripts/review_apps/review-apps.sh
@@ -48,7 +48,9 @@ function delete_release() {
return
fi
- delete_k8s_release_namespace
+ if deploy_exists "${namespace}" "${release}"; then
+ helm uninstall --namespace="${namespace}" "${release}"
+ fi
}
function delete_failed_release() {
@@ -66,7 +68,7 @@ function delete_failed_release() {
# Cleanup and previous installs, as FAILED and PENDING_UPGRADE will cause errors with `upgrade`
if previous_deploy_failed "${namespace}" "${release}" ; then
echoinfo "Review App deployment in bad state, cleaning up namespace ${release}"
- delete_release
+ delete_k8s_release_namespace
else
echoinfo "Review App deployment in good state"
fi
@@ -166,68 +168,9 @@ function label_namespace() {
local label="${2}"
echoinfo "Labeling the ${namespace} namespace with ${label}" true
+ echoinfo "We should pass the --overwrite option!"
- kubectl label namespace "${namespace}" "${label}"
-}
-
-function install_external_dns() {
- local namespace="${KUBE_NAMESPACE}"
- local release="dns-gitlab-review-app-helm3"
- local domain
- domain=$(echo "${REVIEW_APPS_DOMAIN}" | awk -F. '{printf "%s.%s", $(NF-1), $NF}')
- echoinfo "Installing external DNS for domain ${domain}..." true
-
- if ! deploy_exists "${namespace}" "${release}" || previous_deploy_failed "${namespace}" "${release}" ; then
- echoinfo "Installing external-dns Helm chart"
- helm repo add bitnami https://charts.bitnami.com/bitnami
- helm repo update
-
- # Default requested: CPU => 0, memory => 0
- helm install "${release}" bitnami/external-dns \
- --namespace "${namespace}" \
- --version '2.13.3' \
- --set provider="aws" \
- --set aws.credentials.secretKey="${REVIEW_APPS_AWS_SECRET_KEY}" \
- --set aws.credentials.accessKey="${REVIEW_APPS_AWS_ACCESS_KEY}" \
- --set aws.zoneType="public" \
- --set aws.batchChangeSize=400 \
- --set domainFilters[0]="${domain}" \
- --set txtOwnerId="${namespace}" \
- --set rbac.create="true" \
- --set policy="sync" \
- --set resources.requests.cpu=50m \
- --set resources.limits.cpu=100m \
- --set resources.requests.memory=100M \
- --set resources.limits.memory=200M
- else
- echoinfo "The external-dns Helm chart is already successfully deployed."
- fi
-}
-
-# This script is used to install cert-manager in the cluster
-# The installation steps are documented in
-# https://gitlab.com/gitlab-org/quality/team-tasks/snippets/1990286
-function install_certmanager() {
- local namespace="${KUBE_NAMESPACE}"
- local release="cert-manager-review-app-helm3"
-
- echoinfo "Installing cert-manager..." true
-
- if ! deploy_exists "${namespace}" "${release}" || previous_deploy_failed "${namespace}" "${release}" ; then
- kubectl apply \
- -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.10/deploy/manifests/00-crds.yaml
-
- echoinfo "Installing cert-manager Helm chart"
- helm repo add jetstack https://charts.jetstack.io
- helm repo update
-
- helm install "${release}" jetstack/cert-manager \
- --namespace "${namespace}" \
- --version v0.15.1 \
- --set installCRDS=true
- else
- echoinfo "The cert-manager Helm chart is already successfully deployed."
- fi
+ kubectl label --overwrite namespace "${namespace}" "${label}"
}
function create_application_secret() {