---
# System prepended metadata

title: Benchmark Operator

---

# Benchmark Operator

[GitHub Project Link](https://github.com/cloud-bulldozer/benchmark-operator)

## Overview

The Benchmark Operator is a Kubernetes Operator that defines a **Benchmark** Custom Resource and Controller. The intent of the Operator is to deploy common workloads in order to establish performance baselines. Benchmark Custom Resource Definitions specify a **Workload** which is used to associate the resource to a specific performance test. Currently defined Workloads include:

* **fio** (Storage)
* **Iperf3** (Networking)

For a full list see:

[Benchmark Operator Workloads](https://github.com/cloud-bulldozer/benchmark-operator#workloads-status)

The Operator is developed using the [Operator SDK/Ansible Operator](https://sdk.operatorframework.io/). Adding a new workload is accomplished by adding an Ansible Role.

## Moving Forward

The Storage team would like to employ the Benchmark Operator for testing block storage in NC 3.0. The idea has been discussed with the Aqua team who have expressed an interest in integrating the Operator into Aqua. The Storage team would develop a Helm Chart to deploy the Operator itself while the Aqua team would focus on providing a user interface.

## Questions

1. Would the Benchmark Operator deployment be persistent or created on demand when a CRD is submitted? I would prefer persistent.
2. Workload results are typically forwarded to Elasticsearch (and possibly Prometheus in the future). Would the LMA Elasticsearch instance be available for this?
3. Can the existing workload container images be used or would we need to define our own?
4. The GitHub project is fast moving. How will we keep the deployment up to date? 



