mirror of
https://github.com/ditkrg/db-backup-s3.git
synced 2026-01-25 15:23:03 +00:00
Refactor test scripts and README for MSSQL backup functionality
- Updated README.md to reflect new script paths for MSSQL tests. - Added new test scripts for Kubernetes and Docker Compose environments, including setup for MinIO. - Introduced k8s-statefulset-test.yaml for deploying MSSQL with a backup sidecar. - Created setup-minio-k8s.sh for automated MinIO deployment in Kubernetes. - Enhanced test-mssql-k8s-with-minio.sh to streamline the testing process with MinIO. - Added comprehensive test-mssql-k8s.sh for validating MSSQL backup and restore operations. - Included test-mssql.sh for Docker Compose testing of MSSQL backup functionality. Signed-off-by: Shakar Bakr <5h4k4r.b4kr@gmail.com>
This commit is contained in:
78
tests/test-mssql-k8s-with-minio.sh
Executable file
78
tests/test-mssql-k8s-with-minio.sh
Executable file
@@ -0,0 +1,78 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Colors for output
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${BLUE}🚀 Complete MSSQL Backup Test with MinIO${NC}"
|
||||
echo -e "${BLUE}=========================================${NC}"
|
||||
echo ""
|
||||
|
||||
# Use same namespace for everything
|
||||
TEST_NAMESPACE="${NAMESPACE:-mssql-backup-test}"
|
||||
MINIO_USER="minioadmin"
|
||||
MINIO_PASSWORD="minioadmin"
|
||||
BUCKET_NAME="backups"
|
||||
MINIO_ENDPOINT="http://minio:9000" # Simple service name (same namespace)
|
||||
|
||||
echo -e "${GREEN}📦 Test Configuration:${NC}"
|
||||
echo -e " Namespace: ${YELLOW}$TEST_NAMESPACE${NC}"
|
||||
echo -e " Resources: MinIO + MSSQL (both in same namespace)"
|
||||
echo -e " S3 Endpoint: $MINIO_ENDPOINT"
|
||||
echo ""
|
||||
|
||||
# Check if MinIO is already running
|
||||
MINIO_EXISTS=$(kubectl get pod minio -n $TEST_NAMESPACE 2>/dev/null | grep -c "minio" || true)
|
||||
|
||||
if [ "$MINIO_EXISTS" -eq 0 ]; then
|
||||
echo -e "${YELLOW}📦 MinIO not found. Deploying MinIO in $TEST_NAMESPACE...${NC}"
|
||||
NAMESPACE=$TEST_NAMESPACE "$(dirname "$0")/setup-minio-k8s.sh"
|
||||
else
|
||||
echo -e "${GREEN}✅ MinIO already running in $TEST_NAMESPACE namespace${NC}"
|
||||
|
||||
# Verify MinIO is ready
|
||||
echo -e "${YELLOW}⏳ Checking MinIO status...${NC}"
|
||||
kubectl wait --for=condition=ready pod/minio -n $TEST_NAMESPACE --timeout=60s
|
||||
|
||||
# Ensure bucket exists
|
||||
echo -e "${YELLOW}📦 Ensuring bucket exists: $BUCKET_NAME${NC}"
|
||||
kubectl exec -n $TEST_NAMESPACE minio -- sh -c "
|
||||
mc alias set local http://localhost:9000 $MINIO_USER $MINIO_PASSWORD 2>/dev/null && \
|
||||
mc mb local/$BUCKET_NAME --ignore-existing 2>/dev/null
|
||||
" || echo "Bucket already exists or created"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}======================================${NC}"
|
||||
echo -e "${BLUE}🧪 Running MSSQL Backup Test${NC}"
|
||||
echo -e "${BLUE}======================================${NC}"
|
||||
echo ""
|
||||
|
||||
# Run the test with MinIO configuration (same namespace)
|
||||
NAMESPACE="$TEST_NAMESPACE" \
|
||||
STATEFULSET_FILE="$(dirname "$0")/k8s-statefulset-test.yaml" \
|
||||
S3_ENDPOINT="$MINIO_ENDPOINT" \
|
||||
S3_ACCESS_KEY_ID="$MINIO_USER" \
|
||||
S3_SECRET_ACCESS_KEY="$MINIO_PASSWORD" \
|
||||
S3_BUCKET="$BUCKET_NAME" \
|
||||
"$(dirname "$0")/test-mssql-k8s.sh"
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}🎉 All tests completed successfully!${NC}"
|
||||
echo ""
|
||||
echo -e "${BLUE}📊 View backups in MinIO:${NC}"
|
||||
echo -e " kubectl exec -n $TEST_NAMESPACE minio -- mc ls local/$BUCKET_NAME/mssql-backups/"
|
||||
echo ""
|
||||
echo -e "${BLUE}🌐 Access MinIO Console:${NC}"
|
||||
echo -e " kubectl port-forward -n $TEST_NAMESPACE pod/minio 9001:9001"
|
||||
echo -e " Then open: http://localhost:9001"
|
||||
echo -e " Login: $MINIO_USER / $MINIO_PASSWORD"
|
||||
echo ""
|
||||
echo -e "${BLUE}🧹 Cleanup (everything in one namespace):${NC}"
|
||||
echo -e " kubectl delete namespace $TEST_NAMESPACE"
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user