github AbdelrhmanHamouda/locust-k8s-operator locust-k8s-operator-2.0.0

6 months ago

Locust Kubernetes Operator v2.0 - Complete Go Rewrite 🎉

I'm thrilled to announce v2.0, a complete ground-up rewrite of the Locust Kubernetes Operator in Go! This release brings dramatic performance improvements and powerful new features for cloud-native performance testing.

🚀 Breaking Changes & Migration 🚀

⚠️ This is a major version release with breaking changes

  • Complete rewrite from Java (Micronaut) to Go using Operator SDK and controller-runtime
  • New API version: locust.io/v2 (automatic conversion from v1 supported)
  • Performance improvements: 4x lower memory usage (64MB vs 256MB) and 60x faster startup (<1s vs ~60s)

Migrating from v1? See the comprehensive Migration Guide for upgrade instructions.

✨ New Features ✨

OpenTelemetry Support

  • Export traces and metrics directly with the --otel flag
  • No sidecar required - native integration with OpenTelemetry collectors
  • Full distributed tracing for load test observability

Advanced Secret & ConfigMap Injection

  • Securely inject credentials as environment variables with optional prefixes
  • Mount secrets and ConfigMaps as volumes
  • Target-specific injection (master/worker/both)

Flexible Volume Mounting

  • Mount PVCs, ConfigMaps, and Secrets with granular control
  • Target filtering per resource type
  • Support for custom volume configurations

Separate Resource Specifications

  • Independent CPU/memory configuration for master and worker pods
  • Optimize master for UI/coordination, workers for load generation
  • Better resource utilization and cost control

Enhanced Status Reporting

  • Phase tracking (Pending → Running → Succeeded/Failed)
  • Kubernetes conditions for operational insights
  • Worker connection count monitoring for health checks

🏗️ Architecture Improvements 🏗️

  • Framework: Migrated from Java Operator SDK to Go controller-runtime
  • Reconciliation: Cloud-native reconciliation patterns with leader election support
  • Webhooks: Validation and conversion webhooks for v1 ↔ v2 compatibility
  • Health Monitoring: Comprehensive pod health checks and status updates

📊 Performance Metrics 📊

Metric v1.x (Java) v2.0 (Go) Improvement
Memory ~256MB ~64MB 4x
Startup ~60s <1s 60x
Image Size Larger Optimized Smaller

📚 Documentation 📚

🔗 Links 🔗

🙏 Thank You 🙏

This release represents months of development and represents a major milestone for the project. Thank you to all contributors and users who have supported this operator since its inception in 2022!

Full Changelog: locust-k8s-operator-1.1.1...locust-k8s-operator-2.0.0

Don't miss a new locust-k8s-operator release

NewReleases is sending notifications on new releases.