Skip to content

Commit b294e81

Browse files
committed
update README.md
Signed-off-by: Sam Barker <sam@quadrocket.co.uk> Assisted-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 2871a10 commit b294e81

File tree

1 file changed

+44
-0
lines changed
  • kroxylicious-openmessaging-benchmarks

1 file changed

+44
-0
lines changed

kroxylicious-openmessaging-benchmarks/README.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,48 @@ This project provides Helm charts and automation scripts for benchmarking Kroxyl
88

99
**Key Insight:** Kroxylicious is a transparent Kafka proxy. We simply change `bootstrap.servers` to point to Kroxylicious instead of Kafka directly.
1010

11+
## OMB Container Image
12+
13+
The published `openmessaging/openmessaging-benchmark:latest` image ships Kafka client 1.0.0 on Java 8 and is no longer suitable for benchmarking modern Kafka.
14+
We build our own image from the current upstream source (Kafka 3.6.1, JDK 17) using the `Containerfile` in this directory.
15+
16+
### Image tag convention
17+
18+
Image tags follow the format `omb-<omb-sha7>-krox-<krox-sha7>-<build>`, for example `omb-8559989-krox-a1b2c3d-42`.
19+
This encodes the upstream OMB commit, the Kroxylicious commit used for build configuration, and a monotonically increasing build number.
20+
The Helm chart's `omb.image` in `values.yaml` references a specific tag — never a floating tag like `latest` — so builds are always reproducible.
21+
22+
### Building locally
23+
24+
```bash
25+
podman build -f Containerfile -t kroxylicious-omb:test .
26+
```
27+
28+
To build from a different upstream OMB commit:
29+
30+
```bash
31+
podman build -f Containerfile \
32+
--build-arg OMB_COMMIT=<commit-sha> \
33+
-t kroxylicious-omb:test .
34+
```
35+
36+
### CI workflow
37+
38+
The GitHub Actions workflow at `/.github/workflows/build-omb-image.yml` (in the repository root) builds and pushes images on demand via `workflow_dispatch`.
39+
It accepts two inputs:
40+
41+
| Input | Required | Description |
42+
|-------|----------|-------------|
43+
| `omb_ref` | Yes | Upstream OMB commit SHA, branch, or tag to build from |
44+
| `kroxylicious_ref` | No (default: `main`) | Kroxylicious ref (branch, tag, or SHA) for build config |
45+
46+
The workflow resolves the OMB ref to a full SHA, computes the image tag, builds the image, and pushes it to the registry configured via repository variables (`REGISTRY_SERVER`, `REGISTRY_ORGANISATION`, `REGISTRY_USERNAME`, `REGISTRY_TOKEN`).
47+
When registry variables are not configured (e.g. on forks), the image is built but not pushed.
48+
49+
### Renovate
50+
51+
A Renovate custom manager in `/.github/renovate.json` (in the repository root) tracks the `omb.image` reference in `values.yaml` and opens PRs when new image builds are pushed to the registry.
52+
1153
## Current Status: Phase 1 Complete ✅
1254

1355
**Phase 1 (Baseline Scenario)** is implemented and ready for testing:
@@ -33,6 +75,8 @@ OpenMessaging Benchmark (Kafka driver)
3375
```
3476
kroxylicious-openmessaging-benchmarks/
3577
├── README.md (this file)
78+
├── Containerfile
79+
├── .dockerignore
3680
├── helm/
3781
│ └── kroxylicious-benchmark/
3882
│ ├── Chart.yaml

0 commit comments

Comments
 (0)