diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b576da048a94b2eaaec3f8f39b45e8793370407f..51e6a28f58b37fb9766f3d3bc99d6d96681c42db 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -168,3 +168,22 @@ nightly1:
     - kubernetes
     - mhvtl
     - xlarge
+
+regressioneos:
+  stage: test
+  only:
+    - triggers
+    - schedules
+  script:
+    - echo "Running nightly eos regression tests"
+    - export NAMESPACE="archiveretrieve-${CTA_BUILD_ID}-$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 4 | head -n 1)"
+    - cd continuousintegration/orchestration/; ./run_systemtest.sh -n ${NAMESPACE} -p ${CI_PIPELINE_ID} -s tests/upgrade-eos.sh -O -D -S
+  artifacts:
+    when: always
+    expire_in: 30 days
+    paths:
+    - pod_logs
+  tags:
+    - kubernetes
+    - mhvtl
+    - xlarge
diff --git a/continuousintegration/orchestration/tests/upgrade-eos.sh b/continuousintegration/orchestration/tests/upgrade-eos.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ed856b993d328dacb6d3ff5323e37e9037927600
--- /dev/null
+++ b/continuousintegration/orchestration/tests/upgrade-eos.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+usage() { cat <<EOF 1>&2
+Usage: $0 -n <namespace>
+EOF
+exit 1
+}
+
+while getopts "n:" o; do
+    case "${o}" in
+        n)
+            NAMESPACE=${OPTARG}
+            ;;
+        *)
+            usage
+            ;;
+    esac
+done
+shift $((OPTIND-1))
+
+if [ -z "${NAMESPACE}" ]; then
+    usage
+fi
+
+if [ ! -z "${error}" ]; then
+    echo -e "ERROR:\n${error}"
+    exit 1
+fi
+
+kubectl -n ${NAMESPACE} exec ctaeos -- yum-config-manager --disable cta-artifacts
+
+echo -e "[eos-ci-eos]\nname=EOS CI repo for eos packages\nbaseurl=http://storage-ci.web.cern.ch/storage-ci/eos/citrine/commit/el-7/x86_64/\npriority=4\ngpgcheck=0\nenabled=1\n\n" | kubectl -n ${NAMESPACE} exec -i ctaeos -- bash -c "cat > /etc/yum.repos.d/eos-ci.repo"
+echo -e "[eos-ci-eos-depend]\nname=EOS CI repo for eos depend packages\nbaseurl=http://storage-ci.web.cern.ch/storage-ci/eos/citrine-depend/el-7/x86_64/\npriority=4\ngpgcheck=0\nenabled=1\n\n"  | kubectl -n ${NAMESPACE} exec -i ctaeos -- bash -c "cat >> /etc/yum.repos.d/eos-ci.repo"
+
+kubectl -n ${NAMESPACE} exec ctaeos -- eos version
+
+kubectl -n ${NAMESPACE} exec ctaeos -- sed -i '/^.:eos.*/d' /etc/yum/pluginconf.d/versionlock.list
+
+kubectl -n ${NAMESPACE} exec ctaeos -- sed -i '/.*protected=1.*/d' /etc/yum.repos.d/cta-ci.repo
+
+kubectl -n ${NAMESPACE} exec ctaeos -- yum install -y eos-server eos-client
+
+kubectl -n ${NAMESPACE} exec ctaeos -- systemctl restart eos@*
+
+kubectl -n ${NAMESPACE} exec ctaeos -- systemctl status eos@*
+
+kubectl -n ${NAMESPACE} exec ctaeos -- eos version
+
+echo "Launching archive_retrieve.sh:"
+./archive_retrieve.sh -n ${NAMESPACE}