From 09723ddf937d34250078616c4bcdf5858d9f9f58 Mon Sep 17 00:00:00 2001
From: Maarten de Waard <maarten@greenhost.nl>
Date: Wed, 4 May 2022 15:19:54 +0200
Subject: [PATCH] Install Nextcloud releases in different namespaces in CI

---
 .gitlab-ci.yml              |  8 +++++---
 fully-delete-helmrelease.sh | 19 ++++++++++---------
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 04d3c5dc..3f797b10 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -24,7 +24,8 @@ include:
   stage: install-helm-chart
   script:
     - cd ${CHART_DIR:-"."}
-    - ./fully-delete-helmrelease.sh "nc$CI_MERGE_REQUEST_IID"
+    - ./fully-delete-helmrelease.sh "nc$CI_MERGE_REQUEST_IID" "nc$CI_MERGE_REQUEST_IID"
+    - kubectl delete namespace "nc$CI_MERGE_REQUEST_IID"
   extends:
     - .use_kubernetes
     - .chart_changes_rules
@@ -74,7 +75,8 @@ install-helmrelease:
     # Make sure TLS certificate secrets for different MRs do not clash
     - sed -i "s/files-cert/files-cert-nc$CI_MERGE_REQUEST_IID/" values-ci.yaml
     - sed -i "s/office-cert/office-cert-nc$CI_MERGE_REQUEST_IID/" values-ci.yaml
-    - helm install --wait "nc$CI_MERGE_REQUEST_IID" . -f values-ci.yaml
+    - kubectl create namespace "nc$CI_MERGE_REQUEST_IID"
+    - helm install -n nc$CI_MERGE_REQUEST_IID --wait "nc$CI_MERGE_REQUEST_IID" . -f values-ci.yaml
   environment:
     name: helmrelease/nc$CI_MERGE_REQUEST_IID
     url: https://files-nc$CI_MERGE_REQUEST_IID.gitlab.stackspin.net
@@ -88,7 +90,7 @@ test-helm-chart:
   stage: test-helm-chart
   script:
     - cd ${CHART_DIR:-"."}
-    - helm test --logs "nc$CI_MERGE_REQUEST_IID"
+    - helm test -n nc$CI_MERGE_REQUEST_IID --logs "nc$CI_MERGE_REQUEST_IID"
   extends:
     - .use_kubernetes
     - .chart_changes_rules
diff --git a/fully-delete-helmrelease.sh b/fully-delete-helmrelease.sh
index 59010db4..9fd36c24 100755
--- a/fully-delete-helmrelease.sh
+++ b/fully-delete-helmrelease.sh
@@ -1,18 +1,19 @@
 #! /usr/bin/env bash
 
-if [ -z "$1" ]; then
-    echo "Usage: ./fully-delete-chart RELEASE_NAME"
+if [ -z "$2" ]; then
+    echo "Usage: ./fully-delete-chart NAMESPACE RELEASE_NAME"
     exit 1
 else
-    release="$1"
+    namespace="$1"
+    release="$2"
 fi
 
-kubectl delete pod "$release-onlyoffice-documentserver-taiko-test"
+kubectl delete pod -n "$namespace" "$release-onlyoffice-documentserver-taiko-test"
 
-kubectl delete job "$release-setup-apps"
+kubectl delete job -n "$namespace" "$release-setup-apps"
 
 # This command can fail, but that is not a problem
-kubectl delete pvc \
+kubectl delete pvc -n "$namespace" \
     "$release-nextcloud-nextcloud" \
     "data-$release-rabbitmq-0" \
     "redis-data-$release-redis-master-0" \
@@ -20,13 +21,13 @@ kubectl delete pvc \
     "redis-data-$release-redis-slave-1" \
     "data-$release-mariadb-0"
 
-helm delete --wait "$release"
+helm delete -n "$namespace" --wait "$release"
 
-output=$(kubectl get pod -l "app.kubernetes.io/instance=$release")
+output=$(kubectl get pod -n "$namespace" -l "app.kubernetes.io/instance=$release")
 until [ "$output" == "" ]
 do
     echo "waiting for pods to be deleted, pods still running:"
     echo "$output"
     sleep 5
-    output=$(kubectl get pod -l "app.kubernetes.io/instance=$release")
+    output=$(kubectl get pod -n "$namespace" -l "app.kubernetes.io/instance=$release")
 done
-- 
GitLab