Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-10-24 18:06:02 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-10-24 18:06:02 +0300
commit8db8e2a34205c67e358cf544745d9eaeb30cd032 (patch)
treeabfd747d94a4a77e0dfac5ac29cd7b57343edff9 /scripts/review_apps
parent33813f993b49da58426d33a148ee70952e6835bb (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'scripts/review_apps')
-rwxr-xr-xscripts/review_apps/automated_cleanup.rb27
1 files changed, 21 insertions, 6 deletions
diff --git a/scripts/review_apps/automated_cleanup.rb b/scripts/review_apps/automated_cleanup.rb
index 2b4f1b9fe0b..731903f823b 100755
--- a/scripts/review_apps/automated_cleanup.rb
+++ b/scripts/review_apps/automated_cleanup.rb
@@ -60,6 +60,8 @@ class AutomatedCleanup
stop_threshold = threshold_time(days: days_for_stop)
deployments_look_back_threshold = threshold_time(days: days_for_delete * 5)
+ releases_to_delete = []
+
gitlab.deployments(project_path, per_page: DEPLOYMENTS_PER_PAGE, sort: 'desc').auto_paginate do |deployment|
break if Time.parse(deployment.created_at) < deployments_look_back_threshold
@@ -75,7 +77,7 @@ class AutomatedCleanup
if deployed_at < delete_threshold
delete_environment(environment, deployment)
release = Quality::HelmClient::Release.new(environment.slug, 1, deployed_at.to_s, nil, nil, review_apps_namespace)
- delete_helm_release(release)
+ releases_to_delete << release
elsif deployed_at < stop_threshold
stop_environment(environment, deployment)
else
@@ -84,6 +86,8 @@ class AutomatedCleanup
checked_environments << environment.slug
end
+
+ delete_helm_releases(releases_to_delete)
end
def perform_helm_releases_cleanup!(days:)
@@ -91,16 +95,20 @@ class AutomatedCleanup
threshold_day = threshold_time(days: days)
+ releases_to_delete = []
+
helm_releases.each do |release|
# Prevents deleting `dns-gitlab-review-app` releases or other unrelated releases
next unless release.name.start_with?('review-')
if release.status == 'FAILED' || release.last_update < threshold_day
- delete_helm_release(release)
+ releases_to_delete << release
else
print_release_state(subject: 'Release', release_name: release.name, release_date: release.last_update, action: 'leaving')
end
end
+
+ delete_helm_releases(releases_to_delete)
end
private
@@ -121,10 +129,17 @@ class AutomatedCleanup
helm.releases(args: args)
end
- def delete_helm_release(release)
- print_release_state(subject: 'Release', release_name: release.name, release_status: release.status, release_date: release.last_update, action: 'cleaning')
- helm.delete(release_name: release.name)
- kubernetes.cleanup(release_name: release.name)
+ def delete_helm_releases(releases)
+ return if releases.empty?
+
+ releases.each do |release|
+ print_release_state(subject: 'Release', release_name: release.name, release_status: release.status, release_date: release.last_update, action: 'cleaning')
+ end
+
+ releases_names = releases.map(&:name)
+ helm.delete(release_name: releases_names)
+ kubernetes.cleanup(release_name: releases_names)
+
rescue Quality::HelmClient::CommandFailedError => ex
raise ex unless ignore_exception?(ex.message, IGNORED_HELM_ERRORS)