Installing Kepler Operator on OpenShift
October 14, 2025 · View on GitHub
This guide walks you through installing the Kepler Operator on OpenShift using OperatorHub or the Community Catalog.
Prerequisites
- OpenShift cluster running version 4.x or higher
- oc CLI or access to the OpenShift Web Console
- Appropriate cluster permissions to install operators
Built-in OpenShift Features
Unlike vanilla Kubernetes, OpenShift includes several features out-of-the-box that simplify Kepler deployment:
- Service Serving Certificates: Automatic TLS certificate management (no cert-manager required)
- Prometheus Operator: Built-in monitoring stack
- User Workload Monitoring: Optional monitoring for user applications
Installation via OpenShift Web Console (Recommended)
Step 1: Navigate to OperatorHub
- Log in to the OpenShift Web Console
- Navigate to Operators → OperatorHub
- In the search box, type "Kepler Operator"
Step 2: Install the Operator
- Click on the Kepler Operator tile
- Click Install
- Configure installation options:
- Update channel: Select
alpha(or the latest stable channel) - Installation mode: Choose one of:
- All namespaces on the cluster (recommended) - Operator can manage PowerMonitors in any namespace
- A specific namespace - Operator only manages resources in selected namespace
- Installed Namespace: Select
openshift-operators(recommended) or create a custom namespace - Update approval: Choose automatic or manual updates
- Update channel: Select
- Click Install
Step 3: Verify Installation
- Navigate to Operators → Installed Operators
- Ensure the namespace filter shows your selected namespace (e.g.,
openshift-operators) - Verify Kepler Operator appears with status Succeeded
The operator is now ready to manage PowerMonitor resources.
Installation via CLI
Using operator-sdk
If you prefer command-line installation, you can use the operator-sdk tool:
# Install the operator-sdk if not already installed
# See https://sdk.operatorframework.io/docs/installation/
# Run the operator bundle
operator-sdk run bundle \
quay.io/sustainable_computing_io/kepler-operator-bundle:latest \
--install-mode AllNamespaces \
--namespace openshift-operators
Using OLM Subscription (Advanced)
Create a Subscription resource manually:
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: kepler-operator
namespace: openshift-operators
spec:
channel: alpha
name: kepler-operator
source: community-operators
sourceNamespace: openshift-marketplace
installPlanApproval: Automatic
Apply the subscription:
oc apply -f kepler-operator-subscription.yaml
Verification
Check Operator Status
Verify the operator is running:
oc get pods -n openshift-operators | grep kepler-operator
Expected output:
kepler-operator-controller-xxxxx-yyyyy 2/2 Running 0 1m
Check ClusterServiceVersion (CSV)
oc get csv -n openshift-operators | grep kepler
You should see the Kepler Operator CSV with Succeeded phase:
kepler-operator.v0.21.0 Kepler Operator 0.21.0 Succeeded
Check Custom Resource Definitions
Verify the PowerMonitor CRD is installed:
oc get crd powermonitors.kepler.system.sustainable.computing.io
OpenShift-Specific Features
Security Context Constraints (SCC)
Kepler requires privileged access to read hardware sensors. The operator automatically configures appropriate Security Context Constraints (SCC) for Kepler pods.
You can verify the SCC configuration:
oc get scc | grep kepler
Integration with OpenShift Monitoring
Kepler automatically integrates with OpenShift's built-in monitoring stack through ServiceMonitor resources. No additional configuration is needed for basic metrics collection.
To enable User Workload Monitoring (if not already enabled):
oc apply -f - <<EOF
apiVersion: v1
kind: ConfigMap
metadata:
name: cluster-monitoring-config
namespace: openshift-monitoring
data:
config.yaml: |
enableUserWorkload: true
EOF
Next Steps
Now that the operator is installed:
- Create a PowerMonitor resource to deploy Kepler
- Configure PowerMonitor for your cluster
- Set up Grafana dashboards to visualize energy metrics
Troubleshooting
Operator Not Appearing in OperatorHub
If Kepler Operator doesn't appear in OperatorHub:
-
Check if the Community Operators catalog source is enabled:
oc get catalogsource -n openshift-marketplace -
Look for
community-operatorsin the list. If missing, contact your cluster administrator.
Installation Stuck in "Installing" State
Check the install plan status:
oc get installplan -n openshift-operators
oc describe installplan <install-plan-name> -n openshift-operators
CSV Failures
View CSV details to understand failures:
oc describe csv kepler-operator.v<version> -n openshift-operators
Check operator logs:
oc logs -n openshift-operators deployment/kepler-operator-controller
For more detailed troubleshooting, see the Troubleshooting Guide.
Upgrading
OpenShift operators can be upgraded automatically or manually based on your installation configuration.
See the Upgrading Guide for details.
Uninstallation
To uninstall Kepler Operator from OpenShift, see the Uninstallation Guide.