mirror of
https://github.com/ditkrg/db-backup-s3.git
synced 2026-01-22 13:56:47 +00:00
- 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>
79 lines
2.7 KiB
Bash
Executable File
79 lines
2.7 KiB
Bash
Executable File
#!/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 ""
|
|
|