Skip to content
Snippets Groups Projects
Verified Commit 6327bc49 authored by Maarten de Waard's avatar Maarten de Waard :angel:
Browse files

feat: make sure helmreleases are deleted after MRs are merged

parent 8f000852
No related branches found
No related tags found
1 merge request!170Resolve "Can't install the chart twice into the same namespace"
include:
# - remote: https://open.greenhost.net/stackspin/stackspin/-/raw/main/.gitlab/ci_templates/helm_package.yml
# TODO: Remove after this MR is merged:
# https://open.greenhost.net/stackspin/stackspin/-/merge_requests/1049
- remote: https://open.greenhost.net/stackspin/stackspin/-/raw/update-helm-package-ci-template/.gitlab/ci_templates/helm_package.yml
- remote: https://open.greenhost.net/stackspin/stackspin/-/raw/main/.gitlab/ci_templates/helm_package.yml
- remote: https://open.greenhost.net/stackspin/stackspin/-/raw/main/.gitlab/ci_templates/dummy_job.yml
- template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml'
.use-kubernetes:
.use_kubernetes:
image:
name: alpine/k8s:1.22.6
entrypoint: ["/bin/sh", "-c"]
......@@ -23,6 +20,15 @@ include:
- values.yaml
- Chart.yaml
.delete_helmrelease:
stage: install-helm-chart
script:
- cd ${CHART_DIR:-"."}
- ./fully-delete-helmrelease.sh "$RELEASE_NAME"
extends:
- .use_kubernetes
- .chart_changes_rules
stages:
- lint-helm-chart
- install-helm-chart
......@@ -35,21 +41,23 @@ variables:
CHART_NAME: nextcloud-onlyoffice
RELEASE_NAME: "nc$CI_MERGE_REQUEST_IID"
delete-helmrelease:
stage: install-helm-chart
script:
- cd ${CHART_DIR:-"."}
- ./fully-delete-helmrelease.sh "$RELEASE_NAME"
environment:
name: helmrelease/$RELEASE_NAME
action: stop
pre-install-delete-helmrelease:
extends:
- .use-kubernetes
- .chart_changes_rules
- .delete_helmrelease
# This job will fail if a helmrelease didn't exist (yet). For example in a
# first pipeline for an MR.
allow_failure: true
# This will clean up helmreleases after MRs have been merged, or after some time
post-install-delete-helmrelease:
extends:
- .delete_helmrelease
# Gets triggered by on_stop of install-helmrelease, or manually
when: manual
environment:
name: helmrelease/$RELEASE_NAME
action: stop
install-helmrelease:
stage: install-helm-chart
needs:
......@@ -57,7 +65,7 @@ install-helmrelease:
- job: lint-helm
# We can't install if there's still an installation from a previous run
# present.
- job: delete-helmrelease
- job: pre-install-delete-helmrelease
script:
- cd ${CHART_DIR:-"."}
- cp values-local.yaml.example values-ci.yaml
......@@ -72,9 +80,9 @@ install-helmrelease:
name: helmrelease/$RELEASE_NAME
url: https://files-$RELEASE_NAME.gitlab.stackspin.net
auto_stop_in: 1 week
on_stop: delete-helmrelease
on_stop: post-install-delete-helmrelease
extends:
- .use-kubernetes
- .use_kubernetes
- .chart_changes_rules
test-helm-chart:
......@@ -83,5 +91,5 @@ test-helm-chart:
- cd ${CHART_DIR:-"."}
- helm test --logs "$RELEASE_NAME"
extends:
- .use-kubernetes
- .use_kubernetes
- .chart_changes_rules
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment