This release adds 3 notable features for engineering teams evaluating rollout.
Published 3mo
Dashboards & Visualization
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
carbon-emissions
carbon-footprint
cloud
co2
cost-optimization
devops
+12 more
fastapi
finops
grafana
green-computing
green-software
greenops
helm
kubernetes
prometheus
python
sustainability
svelte
Affected surfaces
auth
breaking_upgrade
Summary
AI summaryUpdates Sustainability Score engine, hourly/daily/weekly/monthly/yearly, and 1.3 across a mixed release.
Full changelog
What's Changed
Added
- Report page in the web dashboard: New
/reportroute in the SvelteKit SPA — a full-featured report builder that lets users configure time range (1 h → 1 y), namespace filter, aggregation (hourly/daily/weekly/monthly/yearly) and export format (CSV or JSON), preview totals before downloading, then trigger a direct browser download — no CLI orkubectl execrequired. GET /api/v1/report/summaryendpoint: Returns a preview of the report (row count, unique pods/namespaces, CO₂e, embodied CO₂e, energy, cost) for the current filter/aggregation parameters.GET /api/v1/report/exportendpoint: Streams a downloadable file (CSV or JSON) with correctContent-Dispositionheaders. Supports the samenamespace,last,aggregate, andgranularityparameters as the CLIgreenkube reportcommand.ReportSummaryResponseschema: New Pydantic response model inapi/schemas.py.
Fixed
- PUE fallback for unknown node provider:
Config.get_pue_for_provider()now falls back to the rawDEFAULT_PUEenvironment variable (default 1.3) when a node's cloud provider is absent or not inDATACENTER_PUE_PROFILES, instead of incorrectly re-resolving throughself.DEFAULT_PUE(which returns the configuredCLOUD_PROVIDER's profile — e.g. AWS=1.15 — even for unrelated unknown nodes). Theestimation_reasonsmessage now correctly reports 1.3 for unknown providers. CLOUD_PROVIDERdefault changed fromawstounknown: The env var andhelm-chart/values.yamlpreviously defaulted to"aws", silently applying AWS's PUE profile (1.15) on clusters where no cloud provider was configured. The default is now"unknown", which correctly triggers theDEFAULT_PUEfallback (1.3) and produces an explicit warning log instead of a silent wrong value.- Settings page API status indicator: The health dot was always red because the condition checked
health.status === 'healthy'while the API returns"ok". Fixed tohealth.status === 'ok'.
Sustainability Score engine (previous unreleased entry)
- Sustainability Score engine: New
SustainabilityScorerclass (src/greenkube/core/sustainability_score.py) computes a composite 0–100 score (100 = perfect cluster) across seven weighted dimensions:- Resource Efficiency (25%) — CPU and memory utilisation vs. requests
- Carbon Efficiency (20%) — energy-weighted
grid_intensity × PUE; penalises both dirty grids and inefficient datacentres equally - Waste Elimination (15%) — absence of zombie pods and idle namespaces
- Node Efficiency (15%) — CPU and memory utilisation at the node level
- Scaling Practices (10%) — HPA coverage and absence of over-provisioned autoscaling targets
- Carbon-Aware Scheduling (10%) — share of workloads running in low-carbon zones
- Stability (5%) — low container restart rate
- PUE-aware carbon efficiency: The carbon dimension uses
effective_intensity = grid_intensity × PUEso that a high-PUE datacenter (e.g. OVH=1.37) is penalised relative to a hyperscaler-efficient one (e.g. GCP=1.09) even on the same electrical grid. Invalid/missing PUE safely defaults to 1.0. SustainabilityResultPydantic model: Carriesoverall_scoreand adimension_scoresdict for structured downstream consumption.- New Prometheus gauges:
greenkube_sustainability_score{cluster}— composite 0–100 scoregreenkube_sustainability_dimension_score{cluster, dimension}— per-dimension breakdown
- kube-state-metrics compatible labels: All pod-level Prometheus metrics now carry
cluster,namespace,pod,node, andregionlabels, matching kube-state-metrics conventions and enabling seamless Grafana variable-based filtering. - Grafana template variables:
clusterandregiondrop-down template variables added to the pre-built Grafana dashboard for multi-cluster/multi-region environments. - Grafana golden signal panels: New panels in the Grafana dashboard:
- Composite sustainability score gauge (0–100)
- Per-dimension horizontal bar gauge
- Sustainability score timeline
- Carbon intensity by zone timeline
- Methodology documentation:
docs/sustainability-score.md— full description of the 7-dimension scoring model, formulas, reference thresholds, and PUE impact table.
Changed
carbon_intensitydimension →carbon_efficiency: The scoring dimension was renamed and its formula extended to include PUE (effective_intensity = grid_intensity × PUE). The raw Prometheus gaugesgreenkube_carbon_intensity_scoreandgreenkube_carbon_intensity_zoneare kept unchanged for backward compatibility.- Helm configmap:
CLUSTER_NAMEnow propagated to the metrics endpoint so theclusterlabel is always populated.
Docker: docker pull greenkube/greenkube:0.2.6
Helm:
helm repo add greenkube https://GreenKubeCloud.github.io/GreenKube
helm repo update
helm install greenkube greenkube/greenkube -n greenkube --create-namespace
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About GreenKube
All releases →Beta — feedback welcome: [email protected]