From a9c7cc4be344d051b8eb44f73437f69e4da1c8b7 Mon Sep 17 00:00:00 2001 From: Shakar Bakr <5h4k4r.b4kr@gmail.com> Date: Mon, 27 Oct 2025 12:29:01 +0300 Subject: [PATCH] Rename MSSQL_BACKUP_DIR to MSSQL_DATA_DIR across configuration files and scripts for consistency. Update README and test scripts to reflect the new variable name. This change ensures clarity in the purpose of the directory used for MSSQL data and backups. Signed-off-by: Shakar Bakr <5h4k4r.b4kr@gmail.com> --- Dockerfile | 2 +- README.md | 8 ++++---- docker-compose.yaml | 2 +- k8s-mssql-configmap-example.yaml | 4 ++-- k8s-statefulset-with-sidecar.yaml | 2 +- src/backup.sh | 2 +- src/helpers.sh | 10 +++++----- src/restore.sh | 4 ++-- tests/k8s-statefulset-test.yaml | 2 +- tests/test-mssql-k8s.sh | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Dockerfile b/Dockerfile index 87a94ad..0a34ea9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,7 +35,7 @@ ENV PGDUMP_EXTRA_OPTS '' ENV MARIADB_DUMP_EXTRA_OPTS '' ENV MARIADB_EXTRA_OPTS '' ENV MSSQL_EXTRA_OPTS '' -ENV MSSQL_BACKUP_DIR '/var/opt/mssql/data' +ENV MSSQL_DATA_DIR '/var/opt/mssql/data' ENV S3_ACCESS_KEY_ID '' ENV S3_SECRET_ACCESS_KEY '' ENV S3_BUCKET '' diff --git a/README.md b/README.md index 74cfa88..0dc7013 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ services: DATABASE_USER: sa DATABASE_PASSWORD: YourStrong@Passw0rd DATABASE_SERVER: mssql - MSSQL_BACKUP_DIR: /var/opt/mssql/data # Path where backups are stored + MSSQL_DATA_DIR: /var/opt/mssql/data # MSSQL data directory (where backups are temporarily stored) volumes: mssql-data: # Shared volume for MSSQL data and backups @@ -185,7 +185,7 @@ spec: secretKeyRef: name: db-credentials key: password - - name: MSSQL_BACKUP_DIR + - name: MSSQL_DATA_DIR value: "/var/opt/mssql/data" - name: S3_REGION value: "us-east-1" @@ -264,7 +264,7 @@ spec: value: "localhost" # Same pod - name: DATABASE_PORT value: "1433" - - name: MSSQL_BACKUP_DIR + - name: MSSQL_DATA_DIR value: "/var/opt/mssql/data" # ... (S3 and DB credentials from secrets) volumeMounts: @@ -274,7 +274,7 @@ spec: **Key Configuration:** - `DATABASE_HOST: "localhost"` - Both containers are in the same pod -- `MSSQL_BACKUP_DIR: "/var/opt/mssql/data"` - Must match MSSQL's data directory +- `MSSQL_DATA_DIR: "/var/opt/mssql/data"` - MSSQL's data directory (where backup files are temporarily stored) - Both containers mount the same volume at `/var/opt/mssql/data` - Set `SCHEDULE` env var for automated backups (cron format) diff --git a/docker-compose.yaml b/docker-compose.yaml index 47782ca..b533a8a 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -108,7 +108,7 @@ services: DATABASE_PORT: 1433 DATABASE_SERVER: mssql DATABASE_PASSWORD: YourStrong@Passw0rd - MSSQL_BACKUP_DIR: /var/opt/mssql/data # Path where MSSQL backups are stored (must match volume mount) + MSSQL_DATA_DIR: /var/opt/mssql/data # Path where MSSQL backups are stored (must match volume mount) volumes: mssql-data: # MSSQL database storage minio-data: # MinIO object storage diff --git a/k8s-mssql-configmap-example.yaml b/k8s-mssql-configmap-example.yaml index ae78293..e9ff7e4 100644 --- a/k8s-mssql-configmap-example.yaml +++ b/k8s-mssql-configmap-example.yaml @@ -24,7 +24,7 @@ data: # ============================================ # MSSQL Specific Configuration # ============================================ - MSSQL_BACKUP_DIR: "/var/opt/mssql/data" + MSSQL_DATA_DIR: "/var/opt/mssql/data" # MSSQL_EXTRA_OPTS: "" # Additional sqlcmd options if needed # ============================================ @@ -87,7 +87,7 @@ data: # --from-literal=DATABASE_HOST='mssql-service' \ # --from-literal=DATABASE_NAME='MyDatabase' \ # --from-literal=DATABASE_PORT='1433' \ -# --from-literal=MSSQL_BACKUP_DIR='/var/opt/mssql/data' \ +# --from-literal=MSSQL_DATA_DIR='/var/opt/mssql/data' \ # --from-literal=SCHEDULE='0 2 * * *' \ # --from-literal=BACKUP_KEEP_DAYS='7' \ # --from-literal=S3_BUCKET='my-backups' \ diff --git a/k8s-statefulset-with-sidecar.yaml b/k8s-statefulset-with-sidecar.yaml index 1a08493..a95dd6c 100644 --- a/k8s-statefulset-with-sidecar.yaml +++ b/k8s-statefulset-with-sidecar.yaml @@ -118,7 +118,7 @@ spec: # # ConfigMap (mssql-config) - See k8s-mssql-configmap-example.yaml # - DATABASE_SERVER, DATABASE_HOST, DATABASE_NAME, DATABASE_PORT -# - MSSQL_BACKUP_DIR, MSSQL_EXTRA_OPTS +# - MSSQL_DATA_DIR, MSSQL_EXTRA_OPTS # - SCHEDULE, BACKUP_KEEP_DAYS # - S3_BUCKET, S3_PREFIX, S3_REGION, S3_ENDPOINT, S3_S3V4 # Note: DATABASE_HOST is overridden to "localhost" in the StatefulSet for sidecar pattern diff --git a/src/backup.sh b/src/backup.sh index 2981206..f3c8d2d 100644 --- a/src/backup.sh +++ b/src/backup.sh @@ -13,7 +13,7 @@ timestamp=$(date +"%Y-%m-%dT%H:%M:%S") # MSSQL uses .bak extension, other databases use .dump if [ "$DATABASE_SERVER" = "mssql" ]; then - local_file="${MSSQL_BACKUP_DIR}/db.bak" + local_file="${MSSQL_DATA_DIR}/db.bak" s3_uri_base="s3://${S3_BUCKET}/${S3_PREFIX}/${DATABASE_NAME}_${timestamp}.bak" else local_file="db.dump" diff --git a/src/helpers.sh b/src/helpers.sh index fb4a3bd..844c10b 100644 --- a/src/helpers.sh +++ b/src/helpers.sh @@ -62,12 +62,12 @@ restore_mariadb() { backup_mssql() { # Use native BACKUP DATABASE command - # Note: Requires shared volume mounted at MSSQL_BACKUP_DIR + # Note: Requires shared volume mounted at MSSQL_DATA_DIR sqlcmd -S ${DATABASE_HOST},${DATABASE_PORT} \ -U ${DATABASE_USER} \ -P "${DATABASE_PASSWORD}" \ -C \ - -Q "BACKUP DATABASE [${DATABASE_NAME}] TO DISK = N'${MSSQL_BACKUP_DIR}/db.bak' WITH INIT;" \ + -Q "BACKUP DATABASE [${DATABASE_NAME}] TO DISK = N'${MSSQL_DATA_DIR}/db.bak' WITH INIT;" \ $MSSQL_EXTRA_OPTS } @@ -78,7 +78,7 @@ restore_mssql() { -U ${DATABASE_USER} \ -P "${DATABASE_PASSWORD}" \ -C -W \ - -Q "SET NOCOUNT ON; RESTORE FILELISTONLY FROM DISK = N'${MSSQL_BACKUP_DIR}/db.bak';" \ + -Q "SET NOCOUNT ON; RESTORE FILELISTONLY FROM DISK = N'${MSSQL_DATA_DIR}/db.bak';" \ | grep -v '^$' | awk '{print $1}' | tail -n +3) # Parse logical names (first two lines after headers) @@ -90,9 +90,9 @@ restore_mssql() { -U ${DATABASE_USER} \ -P "${DATABASE_PASSWORD}" \ -C \ - -Q "RESTORE DATABASE [${DATABASE_NAME}] FROM DISK = N'${MSSQL_BACKUP_DIR}/db.bak' WITH REPLACE, MOVE N'${data_file}' TO N'${MSSQL_BACKUP_DIR}/${DATABASE_NAME}.mdf', MOVE N'${log_file}' TO N'${MSSQL_BACKUP_DIR}/${DATABASE_NAME}_log.ldf';" \ + -Q "RESTORE DATABASE [${DATABASE_NAME}] FROM DISK = N'${MSSQL_DATA_DIR}/db.bak' WITH REPLACE, MOVE N'${data_file}' TO N'${MSSQL_DATA_DIR}/${DATABASE_NAME}.mdf', MOVE N'${log_file}' TO N'${MSSQL_DATA_DIR}/${DATABASE_NAME}_log.ldf';" \ $MSSQL_EXTRA_OPTS # Clean up backup file - rm "${MSSQL_BACKUP_DIR}/db.bak" + rm "${MSSQL_DATA_DIR}/db.bak" } diff --git a/src/restore.sh b/src/restore.sh index b3b8cc0..4747013 100644 --- a/src/restore.sh +++ b/src/restore.sh @@ -10,7 +10,7 @@ s3_uri_base="s3://${S3_BUCKET}/${S3_PREFIX}" # MSSQL uses .bak extension, other databases use .dump if [ "$DATABASE_SERVER" = "mssql" ]; then - backup_file="${MSSQL_BACKUP_DIR}/db.bak" + backup_file="${MSSQL_DATA_DIR}/db.bak" if [ -z "$PASSPHRASE" ]; then file_type=".bak" else @@ -52,7 +52,7 @@ echo "Restoring from backup..." restore # Clean up backup file -# Note: For MSSQL, the file is in MSSQL_BACKUP_DIR and cleanup happens in restore_mssql() +# Note: For MSSQL, the file is in MSSQL_DATA_DIR and cleanup happens in restore_mssql() if [ "$DATABASE_SERVER" != "mssql" ]; then rm "${backup_file}" fi diff --git a/tests/k8s-statefulset-test.yaml b/tests/k8s-statefulset-test.yaml index 8ba351c..806bff1 100644 --- a/tests/k8s-statefulset-test.yaml +++ b/tests/k8s-statefulset-test.yaml @@ -119,7 +119,7 @@ spec: # # ConfigMap (mssql-config) - See k8s-mssql-configmap-example.yaml # - DATABASE_SERVER, DATABASE_HOST, DATABASE_NAME, DATABASE_PORT -# - MSSQL_BACKUP_DIR, MSSQL_EXTRA_OPTS +# - MSSQL_DATA_DIR, MSSQL_EXTRA_OPTS # - SCHEDULE, BACKUP_KEEP_DAYS # - S3_BUCKET, S3_PREFIX, S3_REGION, S3_ENDPOINT, S3_S3V4 # Note: DATABASE_HOST is overridden to "localhost" in the StatefulSet for sidecar pattern diff --git a/tests/test-mssql-k8s.sh b/tests/test-mssql-k8s.sh index 263ab39..cca1678 100755 --- a/tests/test-mssql-k8s.sh +++ b/tests/test-mssql-k8s.sh @@ -16,7 +16,7 @@ STATEFULSET_NAME="mssql" POD_NAME="mssql-0" MSSQL_PASSWORD="YourStrong@Passw0rd" DATABASE_NAME="TestDB" -MSSQL_BACKUP_DIR="${MSSQL_BACKUP_DIR:-/var/opt/mssql/data}" +MSSQL_DATA_DIR="${MSSQL_DATA_DIR:-/var/opt/mssql/data}" S3_BUCKET="${S3_BUCKET:-test-backups}" S3_ENDPOINT="${S3_ENDPOINT:-}" # Set this if using MinIO or other S3-compatible storage STATEFULSET_FILE="${STATEFULSET_FILE:-$(dirname "$0")/../k8s-statefulset-with-sidecar.yaml}" @@ -66,7 +66,7 @@ kubectl create configmap mssql-config -n $NAMESPACE \ --from-literal=DATABASE_HOST='mssql-service' \ --from-literal=DATABASE_NAME="$DATABASE_NAME" \ --from-literal=DATABASE_PORT='1433' \ - --from-literal=MSSQL_BACKUP_DIR='/var/opt/mssql/data' \ + --from-literal=MSSQL_DATA_DIR='/var/opt/mssql/data' \ --from-literal=SCHEDULE='*/5 * * * *' \ --from-literal=BACKUP_KEEP_DAYS='7' \ --from-literal=S3_BUCKET="$S3_BUCKET" \