Repository navigation
v1.30.0
Run an Apache Kafka performance test and enforce an A–F SLA grade gate in GitHub Actions with Kates.
The action installs the kates CLI (when not already on PATH), runs kates gate -o json against a reachable Kates API, exposes the run's grade and verdict as step outputs, writes a Markdown SLA summary table to $GITHUB_STEP_SUMMARY, and exits non-zero when the grade falls below min-grade.
Usage
steps:
- name: Run Kafka SLA Quality Gate
id: kafka-gate
uses: bmscomp/kates@v1.30.1
with:
api-url: http://localhost:8080
api-key: ${{ secrets.KATES_API_KEY }}
min-grade: B
type: LOAD
records: 100000
timeout: 180Inputs
| Input | Default | Description |
|---|---|---|
api-url |
http://localhost:8080 |
URL of the Kates API |
api-key |
"" |
API key for the Kates API (from Secret kates-api-key) |
min-grade |
C |
Minimum passing performance grade (A, B, C, D, or F) |
type |
LOAD |
Workload type (LOAD, STRESS, SPIKE, ENDURANCE, VOLUME, CAPACITY, ROUND_TRIP, INTEGRITY) |
records |
50000 |
Number of records to produce |
backend |
"" |
Benchmark backend (native or trogdor) |
timeout |
180 |
Timeout in seconds |
version |
latest |
Kates CLI release tag to install (latest or a tag such as v1.30.0) |
Outputs
| Output | Description |
|---|---|
run-id |
ID of the test run created by kates gate |
grade |
Computed A–F performance grade |
passed |
Whether the run met or exceeded min-grade (true or false) |
Grading Thresholds
| Grade | Minimum Avg Throughput | Maximum P99 Latency |
|---|---|---|
| A | >= 50,000 rec/s |
< 5 ms |
| B | >= 30,000 rec/s |
< 20 ms |
| C | >= 15,000 rec/s |
< 50 ms |
| D | >= 5,000 rec/s |
< 200 ms |
| F | Below grade D thresholds | >= 200 ms |
Links
- Documentation: Kates — The Definitive Guide
- Repository: github.com/bmscomp/kates
What's Changed
- fix(chart): kyvernoPolicy.cosign verifies the release's keyless signatures by @bmscomp in #465
- fix(chart): the kafka-cluster perf test reports MB/s, not max latency by @bmscomp in #466
- feat(cli): deploy checks the cosign signature of every chart it pulls by @bmscomp in #469
- feat(cli): a kind cluster deploy creates gets the proxy and CA of make cluster by @bmscomp in #470
- feat(cli): deploy keeps its files out of a directory that is not a checkout by @bmscomp in #471
- feat(cli): deploy from a chart mirror, or offline from a bundle by @bmscomp in #472
- feat(cli): kates migrate runs without a checkout by @bmscomp in #473
- feat: Kafka Connect's PostgreSQL comes from this repository's chart, not Bitnami's by @bmscomp in #474
- feat(cli): a chart bundle carries cert-manager, Kyverno and the stack's images by @bmscomp in #476
- ci(release): the release deploys its published charts before it is published by @bmscomp in #475
- feat(cli): deploy checks the build provenance of every chart it pulls by @bmscomp in #477
- feat(cli): pull every image from one mirror registry, and bundle the legacy Kafka images by @bmscomp in #478
- feat(chart): cdc-postgresql pins its image, checks its values, and tests what Debezium needs by @bmscomp in #480
- chore(release): prepare v1.30.0 by @bmscomp in #479
- docs: overhaul README with Why Kates comparison and terminal screenshots by @bmscomp in #481
- docs: add 1280x640 social preview card and Quarto book GitHub star tool by @bmscomp in #482
- feat(cli,ci): link exported reports to the repository, add a gate Action and server.json by @bmscomp in #483
Full Changelog: v1.29.3...v1.30.0