A Helm chart to deploy Cruise Control for Apache Kafka
BREAKING CHANGE
- split server and ui with multiple clusters
What's Changed
- feat: allow multi-cluster by @ialejandro in #35
Major changes:
- Introduced clustersDefaults and clusters configuration structure for better multi-cluster management
- Added support for multiple Kafka clusters with shared defaults and per-cluster overrides
- Implemented UI deployment with nginx reverse proxy for multi-cluster access
- Created comprehensive helper templates for configuration merging and inheritance
Configuration structure:
- New clustersDefaults section for shared configuration across all clusters
- Individual cluster definitions with inheritance and override capabilities
- Support for JAAS, capacity, cluster config, log4j, and Cruise Control properties per cluster
- Automatic ConfigMap generation per cluster with merged configurations
Helpers:
- Added cruise-control.cluster.config helper for configuration merging
- Added cruise-control.cluster.fullname for cluster-specific resource naming
- Added cruise-control.cluster.labels for consistent cluster labeling
- Enhanced configmap.yaml to support both legacy and multi-cluster configurations
- Created ui/ templates for reverse proxy deployment (deployment, service, configmap, ingress)
Examples:
- Completely updated all 9 existing examples to use new configuration structure
- Created 10-multi-cluster-simple.yaml for simple multi-cluster setup example
- Added comprehensive examples/README.md with documentation and patterns
- Removed deprecated env variable usage in favor of structured configuration
- Added clear section comments (METADATA CLIENT, LOAD MONITOR, ANALYZER, etc.)
Examples coverage:
- 01-basic-configuration.yaml: standard single cluster setup
- 02-high-availability.yaml: HA with anti-affinity and PDB
- 03-secure-tls.yaml: TLS and security features with JAAS
- 04-custom-advanced.yaml: advanced JBOD and self-healing
- 05-development.yaml: dev environment with debug logging
- 06-production.yaml: multi-environment (dev/staging/prod) setup
- 07-multi-region.yaml: multi-region deployment (3 regions)
- 08-performance-tuned.yaml: performance optimized configuration
- 09-minimal.yaml: absolute minimum configuration
- 10-multi-cluster-simple.yaml: simple 2-cluster management
Features:
- Backward compatible with single cluster deployments
- Configuration inheritance: clustersDefaults -> cluster-specific overrides
- Automatic UI deployment for multi-cluster scenarios
- Group classification for clusters (development, staging, production, etc.)
- Per-cluster capacity configuration (capacity, capacityCores, capacityJBOD)
- Per-cluster JAAS authentication settings
- Per-cluster log4j configuration
- Ingress routing by cluster name (/cluster-name/)
Documentation:
- Added migration guide from old env-based configuration
- Included configuration patterns and best practices
- Provided testing commands for validation
- Created comparison table for all examples
Full Changelog: v1.4.3...v2.0.0