Running warp on kubernetes
August 11, 2026 ยท View on GitHub
This document describes with simple examples on how to automate running warp on Kubernetes with yaml files. You can also use Warp Helm Chart to
deploy Warp with advanced configuration options. For details on Helm chart based deployment, refer the document here.
Create warp client listeners
Create warp client listeners to run distributed warp benchmark, here we will run them as stateful sets across client nodes.
~ kubectl create -f warp.yaml
~ kubectl get pods -l app=warp
NAME READY STATUS RESTARTS AGE
warp-0 1/1 Running 0 6m53s
warp-1 1/1 Running 0 6m57s
warp-2 1/1 Running 0 7m8s
warp-3 1/1 Running 0 7m17s
Now prepare your warp-job.yaml (we have included a sample please edit for your needs) to benchmark your MinIO cluster
~ kubectl create -f warp-job.yaml
~ kubectl get pods -l job-name=warp-job
NAME READY STATUS RESTARTS AGE
warp-job-6xt5k 0/1 Completed 0 8m53s
To obtain the console output look at the job logs
~ kubectl logs warp-job-6xt5k
...
...
-------------------
Operation: PUT. Concurrency: 256. Hosts: 4.
* Average: 412.73 MiB/s, 12.90 obj/s (1m48.853s, starting 19:14:51 UTC)
Throughput by host:
* http://minio-0.minio.default.svc.cluster.local:9000: Avg: 101.52 MiB/s, 3.17 obj/s (2m32.632s, starting 19:14:30 UTC)
* http://minio-1.minio.default.svc.cluster.local:9000: Avg: 103.82 MiB/s, 3.24 obj/s (2m32.654s, starting 19:14:30 UTC)
* http://minio-2.minio.default.svc.cluster.local:9000: Avg: 103.39 MiB/s, 3.23 obj/s (2m32.635s, starting 19:14:30 UTC)
* http://minio-3.minio.default.svc.cluster.local:9000: Avg: 105.31 MiB/s, 3.29 obj/s (2m32.636s, starting 19:14:30 UTC)
Aggregated Throughput, split into 108 x 1s time segments:
* Fastest: 677.1MiB/s, 21.16 obj/s (1s, starting 19:15:54 UTC)
* 50% Median: 406.4MiB/s, 12.70 obj/s (1s, starting 19:14:51 UTC)
* Slowest: 371.5MiB/s, 11.61 obj/s (1s, starting 19:15:42 UTC)
-------------------
Operation: GET. Concurrency: 256. Hosts: 4.
* Average: 866.56 MiB/s, 27.08 obj/s (4m28.204s, starting 19:17:30 UTC)
Throughput by host:
* http://minio-0.minio.default.svc.cluster.local:9000: Avg: 180.39 MiB/s, 5.64 obj/s (4m59.817s, starting 19:17:12 UTC)
* http://minio-1.minio.default.svc.cluster.local:9000: Avg: 179.02 MiB/s, 5.59 obj/s (4m59.24s, starting 19:17:12 UTC)
* http://minio-2.minio.default.svc.cluster.local:9000: Avg: 182.98 MiB/s, 5.72 obj/s (4m59.697s, starting 19:17:12 UTC)
* http://minio-3.minio.default.svc.cluster.local:9000: Avg: 322.47 MiB/s, 10.08 obj/s (4m59.929s, starting 19:17:12 UTC)
Aggregated Throughput, split into 268 x 1s time segments:
* Fastest: 881.9MiB/s, 27.56 obj/s (1s, starting 19:20:49 UTC)
* 50% Median: 866.4MiB/s, 27.08 obj/s (1s, starting 19:18:46 UTC)
* Slowest: 851.4MiB/s, 26.61 obj/s (1s, starting 19:17:37 UTC)
Using Helm Chart with Configuration File
The Warp Helm chart now supports two configuration methods:
Method 1: Traditional Configuration (Simple)
Edit values.yaml with basic configuration:
warpConfiguration:
s3ServerURL: minio-{0...3}.minio.default.svc.cluster.local:9000
s3AccessKey: "minio"
s3SecretKey: "minio123"
operationToBenchmark: mixed
Method 2: Full YAML Configuration File (Advanced)
Use the configFile option in values.yaml for complete control over Warp configuration:
configFile: |
warp:
api: v1
benchmark: mixed
remote:
region: us-east-1
access-key: 'minioadmin'
secret-key: 'minioadmin'
host:
- 'minio-{0...3}.minio.default.svc.cluster.local:9000'
tls: true
insecure: true
params:
duration: 5m
concurrent: 16
objects: 2500
obj:
size: 10MiB
This method provides access to all Warp YAML configuration options including:
- Advanced IO settings
- Auto-termination
- Analysis configuration
- Custom prefixes and storage classes
- And more
For complete configuration examples, see:
Installing with Custom Configuration
# Using the example configuration file
helm install warp -n warp --create namespace ./helm -f ./helm/values-configfile-example.yaml
# Or provide your own YAML config file
helm install warp -n warp --create namespace ./helm --set-file configFile=my-warp-config.yml