About this project

OpenEverest Plugin Bench is a plugin under development as part of the OpenEverest PostgreSQL benchmarking MVP. It lets users run pgbench benchmarks from the OpenEverest database cluster view, with each benchmark executing in a temporary Kubernetes Job. The project is explicitly marked as an MVP in progress and not intended for production use yet. How it works: the plugin backend coordinates a benchmark run by resolving connection details for the selected PostgreSQL instance through the OpenEverest API, creating a temporary Secret containing database credentials, creating a Kubernetes Job using the pgbench runner image, waiting for the Job and collecting runner logs, then deleting the Job and temporary Secret. The frontend currently appears as a PostgreSQL cluster detail tab; other database technologies could be added later through a driver-based design. Local development requires Docker, kubectl, Helm, k3d, Tilt, Go, and Node.js with npm. Running the plugin in a cluster also requires an OpenEverest installation and a supported PostgreSQL provider. A development cluster and Tilt environment can be started with make dev-up, or tilt up -f dev/Tiltfile if the cluster already exists. Tilt builds the frontend, coordinator image, and pgbench runner image; the runner image is used only when the coordinator starts a benchmark Job. The runner receives PostgreSQL connection details through PGHOST, PGDATABASE, PGUSER, and PGPASSWORD or PGPASSFILE. Benchmark options include BENCH_INITIALIZE (default false), BENCH_DURATION (default 60 seconds), BENCH_CLIENTS (default 1), BENCH_THREADS (default 1), and BENCH_SCALE (default 1). Setting BENCH_INITIALIZE=true drops and recreates the pgbench tables, so it should only be used with a disposable database. Useful commands include npm ci and npm run build for the frontend, go test ./... and go vet ./... in the backend, helm lint charts/plugin-bench/, and docker build for the pgbench runner image. The repository is organized into src/ for the React frontend, backend/ for the Go backend (with internal/everest for the OpenEverest API client and internal/coordinator for Kubernetes Job and Secret orchestration), runners/pgbench/ for the runner image, charts/plugin-bench/ for the Helm chart and Plugin resource, dev/ for Tilt and k3d configuration, and spec.md for MVP requirements. Current limitations: the MVP targets PostgreSQL instances managed by OpenEverest, benchmark output is collected from the runner and not yet persisted in an external database, and run history, richer result parsing, and support for additional database technologies are planned for later iterations. The project is licensed under the Apache License 2.0.