A Kubernetes scheduler plugin that makes your cluster carbon and cost-aware. Delay flexible workloads to cleaner, cheaper times—automatically.
Built on the Kubernetes Scheduler Plugins framework.
Many Kubernetes workloads don't need to run right now. ML training jobs, batch processing, CI pipelines—these can often wait minutes or hours. Compute Gardener uses that flexibility to:
- Reduce carbon emissions by scheduling during low-carbon periods using real-time grid data
- Lower electricity costs by avoiding peak pricing windows
- Track actual savings with comprehensive metrics and a Grafana dashboard
The scheduler monitors carbon intensity (via Electricity Maps) and electricity prices, holding pods until conditions improve—or releasing them when your configured max delay is reached.
- Carbon-Aware Scheduling: Real-time carbon intensity data with configurable thresholds
- Price-Aware Scheduling: Time-of-use electricity pricing with peak/off-peak detection
- Accurate Power Modeling: Hardware-specific profiles for CPUs and GPUs, datacenter PUE, Kepler integration
- Energy Budgets: Set kWh limits per workload with configurable enforcement actions
- Cloud Region Mapping: Auto-maps AWS, GCP, Azure regions to carbon intensity zones
- Observability: Prometheus metrics, Grafana dashboard, per-job emissions tracking
- Namespace Policies: Apply default thresholds and budgets at namespace level
helm repo add compute-gardener https://elevated-systems.github.io/compute-gardener-scheduler
helm repo update
helm install compute-gardener-scheduler compute-gardener/compute-gardener-scheduler \
--namespace compute-gardener \
--create-namespace \
--set carbonAware.electricityMap.apiKey=YOUR_API_KEYThen schedule pods with schedulerName: compute-gardener-scheduler. See the Getting Started Guide for detailed setup.
Not ready to install a secondary scheduler? Dry-run mode lets you evaluate potential savings without affecting your workloads.
It installs a lightweight admission webhook that evaluates every pod using the same carbon/price logic, recording what would happen via Prometheus metrics. Track potential savings, validate data quality for your region, and build confidence—all before committing to the scheduler.
helm install compute-gardener ./manifests/install/charts/compute-gardener-scheduler \
--namespace compute-gardener \
--create-namespace \
--set dryRun.enabled=true \
--set carbonAware.electricityMap.apiKey=YOUR_API_KEYSee Dry-Run Mode Documentation for details.
- Getting Started Guide - Installation and configuration
- Carbon Calculations - How emissions and savings are computed
- Hardware Profiles - Power modeling configuration
- Project Roadmap - What's next
We welcome contributions. See CONTRIBUTING.md and our open issues.
