# Example mssql-config ConfigMap # This ConfigMap contains non-sensitive configuration for MSSQL and backup sidecar # # Usage: # 1. Copy this file and update with your actual values # 2. Apply: kubectl apply -f tests/k8s-mssql-configmap.yaml # 3. Create secret: kubectl apply -f tests/k8s-mssql-secret.yaml # 4. Deploy: kubectl apply -f tests/k8s-statefulset-with-sidecar.yaml apiVersion: v1 kind: ConfigMap metadata: name: mssql-config namespace: default # Update with your namespace data: # ============================================ # Database Configuration # ============================================ DATABASE_SERVER: "mssql" DATABASE_HOST: "mssql-service" # MSSQL hostname (overridden to "localhost" in sidecar pattern) DATABASE_NAME: "MyDatabase" # The database to backup DATABASE_PORT: "1433" # ============================================ # MSSQL Specific Configuration # ============================================ MSSQL_DATA_DIR: "/var/opt/mssql/data" # MSSQL_EXTRA_OPTS: "" # Additional sqlcmd options if needed # ============================================ # Backup Schedule and Retention # ============================================ SCHEDULE: "0 2 * * *" # Daily at 2 AM (cron format) BACKUP_KEEP_DAYS: "7" # Keep backups for 7 days # Cron schedule examples: # "@daily" - Once per day at midnight # "@weekly" - Once per week at midnight Sunday # "@hourly" - Once per hour # "0 */6 * * *" - Every 6 hours # "0 2 * * *" - Every day at 2 AM # "0 3 * * 0" - Every Sunday at 3 AM # "0 0 1 * *" - First day of every month at midnight # ============================================ # AWS S3 Configuration # ============================================ S3_BUCKET: "my-database-backups" S3_PREFIX: "mssql-backups" S3_REGION: "us-east-1" # ============================================ # Optional: S3-Compatible Storage (MinIO, Wasabi, etc.) # ============================================ # Uncomment and configure if using non-AWS S3-compatible storage S3_ENDPOINT: "https://s3.example.com" # Your S3-compatible endpoint S3_S3V4: "yes" # Use Signature Version 4 # Common S3-compatible endpoints: # MinIO: "https://minio.example.com" # Wasabi: "https://s3.wasabisys.com" # DigitalOcean: "https://nyc3.digitaloceanspaces.com" # Backblaze B2: "https://s3.us-west-001.backblazeb2.com" --- # Notes: # # 1. ConfigMap vs Secret: # - ConfigMap: Non-sensitive configuration (endpoints, names, schedules) # - Secret: Sensitive data (passwords, access keys) # # 2. To update ConfigMap after deployment: # kubectl apply -f k8s-mssql-configmap.yaml # kubectl rollout restart statefulset/mssql # # 3. To view the ConfigMap: # kubectl get configmap mssql-config -o yaml # # 4. DATABASE_HOST behavior: # - In sidecar pattern: Set to "localhost" (overridden in StatefulSet) # - In CronJob pattern: Use service name like "mssql-service" # The ConfigMap default is for CronJob; sidecar overrides it in the pod spec. # # 5. Alternative: Create from command line: # kubectl create configmap mssql-config \ # --from-literal=DATABASE_SERVER='mssql' \ # --from-literal=DATABASE_HOST='mssql-service' \ # --from-literal=DATABASE_NAME='MyDatabase' \ # --from-literal=DATABASE_PORT='1433' \ # --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' \ # --from-literal=S3_PREFIX='mssql-backups' \ # --from-literal=S3_REGION='us-east-1' \ # --from-literal=S3_ENDPOINT='https://s3.example.com' \ # --from-literal=S3_S3V4='yes'