Skip to content

Releases: SupportTools/go-sql-proxy

v1.0.2

15 Jul 20:18
c970f1c

Choose a tag to compare

Changes

Performance Improvements

  • Reduce Kubernetes health check frequency by 75% (liveness: 60s, readiness: 30s intervals)
  • Add proper probe timeouts and failure thresholds for better reliability

Infrastructure

  • Add dockerhub imagePullSecret for private registry access

Bug Fixes

  • Resolve excessive database connection creation from frequent health checks
  • Improve connection management and reduce resource usage

This release addresses connection spam issues reported in production deployments.

🤖 Generated with Claude Code

Release v1.0.0

15 Jul 19:28
c970f1c

Choose a tag to compare

go-sql-proxy v1.0.0

Initial release of go-sql-proxy with SSL/TLS support and flag-based configuration.

Features

SSL/TLS Support

  • Flag-based SSL control using USE_SSL environment variable
  • Support for custom CA certificates (SSL_CA_FILE)
  • Client certificate support for mutual TLS (SSL_CERT_FILE, SSL_KEY_FILE)
  • SSL certificate verification control (SSL_SKIP_VERIFY)
  • Compatible with PlanetScale and other SSL-enabled MySQL services on any port

Core Functionality

  • MySQL proxy server with transparent traffic forwarding
  • Protocol decoding capabilities for packet inspection
  • Prometheus metrics collection and HTTP endpoints
  • Health check endpoints (/healthz, /readyz, /version, /metrics)
  • Context-based lifecycle management with graceful shutdown
  • Concurrent connection handling

Deployment

  • Docker images available at fruition/go-sql-proxy:v1.0.0
  • Helm chart available at fruition/go-sql-proxy
  • Kubernetes deployment support with comprehensive configuration options

Configuration

Environment Variables

  • USE_SSL: Enable SSL/TLS connection to upstream MySQL
  • SSL_SKIP_VERIFY: Skip SSL certificate verification
  • SSL_CA_FILE: Path to CA certificate file
  • SSL_CERT_FILE: Path to client certificate file
  • SSL_KEY_FILE: Path to client key file
  • DEBUG: Enable debug logging
  • METRICS_PORT: Port for metrics/health endpoints (default: 9090)
  • SOURCE_DATABASE_SERVER: Target MySQL server hostname
  • SOURCE_DATABASE_PORT: Target MySQL server port (default: 25060)
  • SOURCE_DATABASE_USER: MySQL username
  • SOURCE_DATABASE_PASSWORD: MySQL password
  • SOURCE_DATABASE_NAME: Default database name
  • BIND_ADDRESS: Proxy bind address (default: 0.0.0.0)
  • BIND_PORT: Proxy listening port (default: 3306)

Installation

Docker

docker run -d \
  -p 3306:3306 \
  -p 9090:9090 \
  -e SOURCE_DATABASE_SERVER=your-mysql-server.com \
  -e SOURCE_DATABASE_USER=username \
  -e SOURCE_DATABASE_PASSWORD=password \
  -e USE_SSL=true \
  fruition/go-sql-proxy:v1.0.0

Helm

helm repo add fruition https://fruition.github.io/helm-chart/
helm repo update
helm install my-proxy fruition/go-sql-proxy --version v1.0.0

Example: PlanetScale Configuration

docker run -d \
  -p 3306:3306 \
  -p 9090:9090 \
  -e SOURCE_DATABASE_SERVER=your-database.planetscale.com \
  -e SOURCE_DATABASE_PORT=3306 \
  -e SOURCE_DATABASE_USER=your-username \
  -e SOURCE_DATABASE_PASSWORD=your-password \
  -e SOURCE_DATABASE_NAME=your-database \
  -e USE_SSL=true \
  -e SSL_SKIP_VERIFY=true \
  fruition/go-sql-proxy:v1.0.0

What's New

  • Complete SSL/TLS implementation with comprehensive certificate support
  • Flag-based SSL control replacing port-based logic
  • Enhanced Helm chart with SSL configuration options
  • Improved CI/CD pipeline with tag-based versioning
  • Updated documentation and examples
  • Security improvements and modern Go practices

Breaking Changes

  • SSL behavior is now controlled by USE_SSL flag instead of port-based logic
  • Docker images moved from supporttools/go-sql-proxy to fruition/go-sql-proxy
  • Helm charts moved to fruition/helm-chart repository

🤖 Generated with Claude Code