# Example mssql-general Secret
# This secret contains ONLY sensitive credentials (passwords, keys)
# Non-sensitive configuration is in the ConfigMap (tests/k8s-mssql-configmap-example.yaml)
#
# Usage:
#   1. Copy this file and update with your actual values
#   2. Apply ConfigMap: kubectl apply -f tests/k8s-mssql-configmap.yaml
#   3. Apply Secret: kubectl apply -f tests/k8s-mssql-secret.yaml
#   4. Deploy: kubectl apply -f tests/k8s-statefulset-with-sidecar.yaml

apiVersion: v1
kind: Secret
metadata:
  name: mssql-general
  namespace: default # Update with your namespace
type: Opaque
stringData:
  # ============================================
  # MSSQL Server Credentials
  # ============================================
  MSSQL_SA_PASSWORD: "YourStrong@Passw0rd" # Must meet SQL Server complexity requirements

  # ============================================
  # Database Backup Credentials
  # ============================================
  DATABASE_USER: "sa"
  DATABASE_PASSWORD: "YourStrong@Passw0rd" # Same as MSSQL_SA_PASSWORD

  # ============================================
  # AWS S3 Credentials
  # ============================================
  S3_ACCESS_KEY_ID: "AKIAIOSFODNN7EXAMPLE"
  S3_SECRET_ACCESS_KEY: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"

  # ============================================
  # Optional: GPG Encryption Passphrase
  # ============================================
  # Uncomment to enable encryption of backup files before upload
  # PASSPHRASE: "my-super-secret-gpg-passphrase"

---
# Notes:
#
# 1. Password Requirements:
#    - MSSQL_SA_PASSWORD must meet SQL Server complexity requirements:
#      * At least 8 characters
#      * Mix of uppercase, lowercase, digits, and symbols
#      * Example: "MyP@ssw0rd123"
#
# 2. For production, consider using:
#    - SealedSecrets: https://github.com/bitnami-labs/sealed-secrets
#    - External Secrets Operator: https://external-secrets.io/
#    - AWS Secrets Manager, Azure Key Vault, or HashiCorp Vault
#
# 3. Non-sensitive configuration (bucket, endpoints, schedule):
#    These are now in the ConfigMap (tests/k8s-mssql-configmap-example.yaml)
#    This keeps secrets clean and allows easier configuration changes
#
# 4. Alternative: Create secret from command line:
#    kubectl create secret generic mssql-general \
#      --from-literal=MSSQL_SA_PASSWORD='YourStrong@Passw0rd' \
#      --from-literal=DATABASE_USER='sa' \
#      --from-literal=DATABASE_PASSWORD='YourStrong@Passw0rd' \
#      --from-literal=S3_ACCESS_KEY_ID='YOUR_KEY' \
#      --from-literal=S3_SECRET_ACCESS_KEY='YOUR_SECRET'
#
# 4. To view the secret (base64 encoded):
#    kubectl get secret mssql-general -o yaml
#
# 5. To decode a specific key:
#    kubectl get secret mssql-general -o jsonpath='{.data.DATABASE_NAME}' | base64 -d

