mirror of
https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk.git
synced 2025-12-08 16:28:36 +01:00
ci(cleanup): Extend db-cleanup to flush data of external-services at StackIT
This commit is contained in:
committed by
Thorsten Roßner
parent
5160711050
commit
9e92aa3005
@@ -80,6 +80,11 @@ variables:
|
|||||||
options:
|
options:
|
||||||
- "yes"
|
- "yes"
|
||||||
- "no"
|
- "no"
|
||||||
|
FLUSH_EXTERNAL_SERVICES_TYPE:
|
||||||
|
description: >
|
||||||
|
Select the type of external services (e.g. "RUN", or "STACKIT"), as they require different
|
||||||
|
cleanup strategies. Requires `FLUSH_EXTERNAL_SERVICES_BEFORE=yes`.
|
||||||
|
value: "RUN"
|
||||||
DEBUG_ENABLED:
|
DEBUG_ENABLED:
|
||||||
description: >
|
description: >
|
||||||
Allows to set `debug.enabled` to true for a deployment, needs to be supported by stage specific
|
Allows to set `debug.enabled` to true for a deployment, needs to be supported by stage specific
|
||||||
@@ -272,7 +277,22 @@ db-cleanup:
|
|||||||
when: "on_success"
|
when: "on_success"
|
||||||
script:
|
script:
|
||||||
# yamllint disable-line rule:line-length rule:quoted-strings
|
# yamllint disable-line rule:line-length rule:quoted-strings
|
||||||
- export FILES=(${CI_PROJECT_DIR}/helmfile/environments/default/database.yaml.gotmpl ${CI_PROJECT_DIR}/helmfile/environments/dev/write-over-values-for-environment.yaml.gotmpl)
|
- |
|
||||||
|
echo "Checking FLUSH_EXTERNAL_SERVICES_TYPE value..."
|
||||||
|
case "$FLUSH_EXTERNAL_SERVICES_TYPE" in
|
||||||
|
"RUN")
|
||||||
|
echo " ... running flush procedure for RUN cluster."
|
||||||
|
;;
|
||||||
|
"STACKIT")
|
||||||
|
echo " ... running flush procedure for STACKIT provider."
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "ERROR: FLUSH_EXTERNAL_SERVICES_TYPE is not set to valid value."
|
||||||
|
echo " Expected 'RUN' or 'STACKIT', got ${FLUSH_EXTERNAL_SERVICES_TYPE}."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
- export FILES=(${CI_PROJECT_DIR}/helmfile/environments/default/database.yaml.gotmpl ${CI_PROJECT_DIR}/helmfile/environments/dev/write-over-values-for-environment.yaml.gotmpl ${CI_PROJECT_DIR}/helmfile/environments/dev/values.yaml.gotmpl)
|
||||||
# Cleanup MariaDB
|
# Cleanup MariaDB
|
||||||
- |
|
- |
|
||||||
export DATABASES="oxAppSuite"
|
export DATABASES="oxAppSuite"
|
||||||
@@ -297,26 +317,28 @@ db-cleanup:
|
|||||||
fi;
|
fi;
|
||||||
done;
|
done;
|
||||||
|
|
||||||
CONNECTION="--host=${MARIADB_HOST} \
|
CONNECTION=(
|
||||||
--port=${MARIADB_PORT} \
|
"--host=${MARIADB_HOST}"
|
||||||
--user=${MARIADB_USERNAME} \
|
"--port=${MARIADB_PORT}"
|
||||||
--password=${MARIADB_PASSWORD} \
|
"--user=${MARIADB_USERNAME}"
|
||||||
--skip-ssl"
|
"--password=${MARIADB_PASSWORD}"
|
||||||
|
"--skip-ssl"
|
||||||
|
)
|
||||||
|
|
||||||
echo "[mysql] [${ENV_DATABASE}] DROP ${MARIADB_DATABASE} on ${MARIADB_HOST}"
|
echo "[mysql] [${ENV_DATABASE}] DROP ${MARIADB_DATABASE} on ${MARIADB_HOST}"
|
||||||
mariadb ${CONNECTION} -e "DROP DATABASE IF EXISTS ${MARIADB_DATABASE};"
|
mariadb ${CONNECTION[@]} -e "DROP DATABASE IF EXISTS ${MARIADB_DATABASE};"
|
||||||
|
|
||||||
if [ "${ENV_DATABASE}" = "oxAppSuite" ]; then
|
if [ "${ENV_DATABASE}" = "oxAppSuite" ]; then
|
||||||
echo "[mysql] [${ENV_DATABASE}] DROP oxguard on ${MARIADB_HOST}"
|
echo "[mysql] [${ENV_DATABASE}] DROP oxguard on ${MARIADB_HOST}"
|
||||||
mariadb ${CONNECTION} -e "DROP DATABASE IF EXISTS oxguard;"
|
mariadb ${CONNECTION[@]} -e "DROP DATABASE IF EXISTS oxguard;"
|
||||||
echo "[mysql] [${ENV_DATABASE}] DROP oxguard_1 on ${MARIADB_HOST}"
|
echo "[mysql] [${ENV_DATABASE}] DROP oxguard_1 on ${MARIADB_HOST}"
|
||||||
mariadb ${CONNECTION} -e "DROP DATABASE IF EXISTS oxguard_1;"
|
mariadb ${CONNECTION[@]} -e "DROP DATABASE IF EXISTS oxguard_1;"
|
||||||
echo "[mysql] [${ENV_DATABASE}] DROP PRIMARYDB_9 on ${MARIADB_HOST}"
|
echo "[mysql] [${ENV_DATABASE}] DROP PRIMARYDB_9 on ${MARIADB_HOST}"
|
||||||
mariadb ${CONNECTION} -e "DROP DATABASE IF EXISTS PRIMARYDB_9;"
|
mariadb ${CONNECTION[@]} -e "DROP DATABASE IF EXISTS PRIMARYDB_9;"
|
||||||
else
|
else
|
||||||
mariadb ${CONNECTION} -e "CREATE DATABASE ${MARIADB_DATABASE};"
|
mariadb ${CONNECTION[@]} -e "CREATE DATABASE ${MARIADB_DATABASE};"
|
||||||
mariadb ${CONNECTION} -e "GRANT ALL PRIVILEGES ON ${MARIADB_DATABASE}.* TO ${MARIADB_USERNAME}@\"%\";"
|
mariadb ${CONNECTION[@]} -e "GRANT ALL PRIVILEGES ON ${MARIADB_DATABASE}.* TO ${MARIADB_USERNAME}@\"%\";"
|
||||||
mariadb ${CONNECTION} -e "FLUSH PRIVILEGES;"
|
mariadb ${CONNECTION[@]} -e "FLUSH PRIVILEGES;"
|
||||||
fi;
|
fi;
|
||||||
done;
|
done;
|
||||||
# Cleanup PostgreSQL
|
# Cleanup PostgreSQL
|
||||||
@@ -347,15 +369,26 @@ db-cleanup:
|
|||||||
fi;
|
fi;
|
||||||
done;
|
done;
|
||||||
|
|
||||||
echo "[psql] [${ENV_DATABASE}] DROP ${POSTGRES_DATABASE} on ${PGHOST}"
|
|
||||||
psql -c "DROP DATABASE ${POSTGRES_DATABASE}" || true;
|
case "$FLUSH_EXTERNAL_SERVICES_TYPE" in
|
||||||
if [ "${PGPARAMS}" = "null" ]; then
|
"STACKIT")
|
||||||
psql -c "CREATE DATABASE \"${POSTGRES_DATABASE}\";"
|
# In case of STACKIT resources the db content should just be dropped
|
||||||
else
|
echo "[psql] [${ENV_DATABASE}] DROP OWNED BY ${PGUSER} in ${POSTGRES_DATABASE} on ${PGHOST}"
|
||||||
psql -c "CREATE DATABASE \"${POSTGRES_DATABASE}\" ${PGPARAMS};"
|
psql -c "DROP OWNED BY ${PGUSER}" || true;
|
||||||
fi;
|
;;
|
||||||
psql -c "ALTER DATABASE \"${POSTGRES_DATABASE}\" OWNER TO \"${PGUSER}\"";
|
*)
|
||||||
psql -c "GRANT ALL PRIVILEGES ON DATABASE \"${POSTGRES_DATABASE}\" TO \"${PGUSER}\"";
|
# Usually, e.g. in "RUN" cluster, databases can simply be dropped and recreated
|
||||||
|
echo "[psql] [${ENV_DATABASE}] DROP ${POSTGRES_DATABASE} on ${PGHOST}"
|
||||||
|
psql -c "DROP DATABASE ${POSTGRES_DATABASE}" || true;
|
||||||
|
if [ "${PGPARAMS}" = "null" ]; then
|
||||||
|
psql -c "CREATE DATABASE \"${POSTGRES_DATABASE}\";"
|
||||||
|
else
|
||||||
|
psql -c "CREATE DATABASE \"${POSTGRES_DATABASE}\" ${PGPARAMS};"
|
||||||
|
fi;
|
||||||
|
psql -c "ALTER DATABASE \"${POSTGRES_DATABASE}\" OWNER TO \"${PGUSER}\"";
|
||||||
|
psql -c "GRANT ALL PRIVILEGES ON DATABASE \"${POSTGRES_DATABASE}\" TO \"${PGUSER}\"";
|
||||||
|
;;
|
||||||
|
esac
|
||||||
done;
|
done;
|
||||||
# Cleanup Objectstore
|
# Cleanup Objectstore
|
||||||
- |
|
- |
|
||||||
|
|||||||
Reference in New Issue
Block a user