Skip to content

sustainable-computing-io/kepler-operator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Kepler Operator

License CI Status Codecov Release zread

Kepler Operator is a Kubernetes operator that automates the deployment and management of Kepler on Kubernetes and OpenShift clusters.

πŸ” What is Kepler?

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

πŸš€ Getting Started

For Users

Quick Start (Kubernetes with Helm)

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-monitor

Next Steps:

To ensure Kepler is working correctly, follow these validation guides:

Need Help?

Quick Start (OpenShift)

Install from OperatorHub via the OpenShift Web Console. See the OpenShift Installation Guide for details.

User Documentation

For detailed installation, configuration, and usage instructions, see the User Guides:

For Developers

Quick Start

# 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/

Developer Documentation

For contribution guidelines, architecture details, and development workflows, see the Developer Documentation

🀝 Contributing

You can contribute by:

  • Reporting issues
  • Fixing issues by opening Pull Requests
  • Improving documentation
  • Sharing your success stories with Kepler

πŸ“ License

This project is licensed under the Apache License 2.0 - see the LICENSES for details.

About

Kepler Operator

Topics

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 19