diff options
author | Lin Jen-Shin <godfat@godfat.org> | 2019-04-19 13:33:58 +0000 |
---|---|---|
committer | Lin Jen-Shin <godfat@godfat.org> | 2019-04-19 13:33:58 +0000 |
commit | 1879486daf66141088f2c935c76b38e0a4ce7df1 (patch) | |
tree | 8e708c67d05da8bd144862ebe1b43e396e3aa20f | |
parent | 1a4206d8eb34130c46a9cb6d188e0f83f8ec0186 (diff) | |
parent | d0efb430ce43953d659b1f62bf58a9ac41804bc3 (diff) | |
download | gitlab-ce-1879486daf66141088f2c935c76b38e0a4ce7df1.tar.gz |
Merge branch 'retry-review-deploy-twice' into 'master'
Retry the review-deploy job twice and make the Review App cleanup more efficient
See merge request gitlab-org/gitlab-ce!27489
-rw-r--r-- | .gitlab/ci/review.gitlab-ci.yml | 3 | ||||
-rw-r--r-- | lib/quality/kubernetes_client.rb | 2 | ||||
-rwxr-xr-x | scripts/review_apps/review-apps.sh | 6 | ||||
-rw-r--r-- | spec/lib/quality/kubernetes_client_spec.rb | 4 |
4 files changed, 9 insertions, 6 deletions
diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml index dee72930a28..9cfb50eeefc 100644 --- a/.gitlab/ci/review.gitlab-ci.yml +++ b/.gitlab/ci/review.gitlab-ci.yml @@ -32,7 +32,6 @@ environment: &review-environment name: review/${CI_COMMIT_REF_NAME} url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN} - before_script: [] .review-docker: &review-docker <<: *review-base @@ -48,6 +47,7 @@ DOCKER_HOST: tcp://docker:2375 LATEST_QA_IMAGE: "gitlab/${CI_PROJECT_NAME}-qa:nightly" QA_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab/${CI_PROJECT_NAME}-qa:${CI_COMMIT_REF_SLUG}" + before_script: [] build-qa-image: <<: *review-docker @@ -85,6 +85,7 @@ schedule:review-build-cng: .review-deploy-base: &review-deploy-base <<: *review-base + retry: 2 allow_failure: true variables: HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}" diff --git a/lib/quality/kubernetes_client.rb b/lib/quality/kubernetes_client.rb index 2ff9e811425..190b48ba7cb 100644 --- a/lib/quality/kubernetes_client.rb +++ b/lib/quality/kubernetes_client.rb @@ -18,6 +18,8 @@ module Quality 'delete', 'ingress,svc,pdb,hpa,deploy,statefulset,job,pod,secret,configmap,pvc,secret,clusterrole,clusterrolebinding,role,rolebinding,sa', '--now', + '--ignore-not-found', + '--include-uninitialized', %(-l release="#{release_name}") ] diff --git a/scripts/review_apps/review-apps.sh b/scripts/review_apps/review-apps.sh index 51cfd145ba8..b55ce1af55e 100755 --- a/scripts/review_apps/review-apps.sh +++ b/scripts/review_apps/review-apps.sh @@ -68,7 +68,7 @@ function delete() { echoinfo "Deleting release '$name'..." true - helm delete --purge "$name" || true + helm delete --purge "$name" } function cleanup() { @@ -81,8 +81,8 @@ function cleanup() { kubectl -n "$KUBE_NAMESPACE" delete \ ingress,svc,pdb,hpa,deploy,statefulset,job,pod,secret,configmap,pvc,secret,clusterrole,clusterrolebinding,role,rolebinding,sa \ - -l release="$CI_ENVIRONMENT_SLUG" \ - || true + --now --ignore-not-found --include-uninitialized \ + -l release="$CI_ENVIRONMENT_SLUG" } function get_pod() { diff --git a/spec/lib/quality/kubernetes_client_spec.rb b/spec/lib/quality/kubernetes_client_spec.rb index f35d9464d48..4e77dcc97e6 100644 --- a/spec/lib/quality/kubernetes_client_spec.rb +++ b/spec/lib/quality/kubernetes_client_spec.rb @@ -13,7 +13,7 @@ RSpec.describe Quality::KubernetesClient do expect(Gitlab::Popen).to receive(:popen_with_detail) .with([%(kubectl --namespace "#{namespace}" delete ) \ 'ingress,svc,pdb,hpa,deploy,statefulset,job,pod,secret,configmap,pvc,secret,clusterrole,clusterrolebinding,role,rolebinding,sa ' \ - "--now -l release=\"#{release_name}\""]) + "--now --ignore-not-found --include-uninitialized -l release=\"#{release_name}\""]) .and_return(Gitlab::Popen::Result.new([], '', '', double(success?: false))) expect { subject.cleanup(release_name: release_name) }.to raise_error(described_class::CommandFailedError) @@ -23,7 +23,7 @@ RSpec.describe Quality::KubernetesClient do expect(Gitlab::Popen).to receive(:popen_with_detail) .with([%(kubectl --namespace "#{namespace}" delete ) \ 'ingress,svc,pdb,hpa,deploy,statefulset,job,pod,secret,configmap,pvc,secret,clusterrole,clusterrolebinding,role,rolebinding,sa ' \ - "--now -l release=\"#{release_name}\""]) + "--now --ignore-not-found --include-uninitialized -l release=\"#{release_name}\""]) .and_return(Gitlab::Popen::Result.new([], '', '', double(success?: true))) # We're not verifying the output here, just silencing it |