Kepler Operator is a Kubernetes operator that automates the deployment and management of Kepler on Kubernetes and OpenShift clusters.
Kepler (Kubernetes-based Efficient Power Level Exporter) is a Prometheus exporter that measures energy consumption metrics at the container, pod, and node level in Kubernetes clusters.
Check out the project on GitHub ➡️ Kepler
Get Kepler up and running in minutes. For comprehensive installation instructions, prerequisites, configuration options, and troubleshooting, see the Kubernetes Installation Guide.
# 1. Install cert-manager (required for operator webhooks)
# For the latest version, see: https://cert-manager.io/docs/installation/
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.18.2/cert-manager.yaml
# Wait for cert-manager to be ready
kubectl wait --for=condition=available --timeout=120s deployment -n cert-manager --all
# 2. Install Prometheus Operator (required for ServiceMonitor support)
# This installs prometheus-operator + Prometheus + Grafana
# If you only need prometheus-operator, see the monitoring stack guide
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/kube-prometheus-stack \
--namespace monitoring \
--create-namespace \
--set prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false
# Wait for monitoring stack to be ready
kubectl wait --for=condition=ready --timeout=180s pod -n monitoring --all
# 3. Install Kepler Operator
helm install kepler-operator \
oci://quay.io/sustainable_computing_io/charts/kepler-operator \
--namespace kepler-operator \
--create-namespace
# Wait for operator to be ready
kubectl wait --for=condition=available --timeout=120s deployment -n kepler-operator --all
# 4. Deploy Kepler
# Note: PowerMonitor must be named "power-monitor" (enforced by operator)
kubectl apply -f https://raw.githubusercontent.com/sustainable-computing-io/kepler-operator/main/config/samples/kepler.system_v1alpha1_powermonitor.yaml
# Wait for Kepler pods to be running
kubectl wait --for=condition=ready --timeout=120s pod -n power-monitor --all
# 5. Verify installation
kubectl get pods -n power-monitorNext Steps:
To ensure Kepler is working correctly, follow these validation guides:
- Validate Prometheus Integration - Verify metrics are being collected (recommended)
- Setup Grafana Dashboards - Visualize power consumption metrics
- Configuration Options - Customize Kepler deployment
Need Help?
- Kubernetes Installation Guide - Detailed prerequisites, configuration options, and installation steps
- Validate Prometheus Integration - If Kepler is running but metrics aren't appearing
- Troubleshooting Guide - Common issues and solutions
Install from OperatorHub via the OpenShift Web Console. See the OpenShift Installation Guide for details.
For detailed installation, configuration, and usage instructions, see the User Guides:
- Installation:
- Usage:
- Reference:
# Setup local Kind cluster with prerequisites
make cluster-up
# Run operator locally
make run
# In another terminal, create a PowerMonitor
kubectl apply -k config/samples/For contribution guidelines, architecture details, and development workflows, see the Developer Documentation
You can contribute by:
- Reporting issues
- Fixing issues by opening Pull Requests
- Improving documentation
- Sharing your success stories with Kepler
This project is licensed under the Apache License 2.0 - see the LICENSES for details.