Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
skipper-v0.22.87-windows-amd64.zip | 2025-08-11 | 72.4 MB | |
skipper-v0.22.87-linux-armv7.tar.gz | 2025-08-11 | 65.1 MB | |
skipper-v0.22.87-linux-arm64.tar.gz | 2025-08-11 | 66.7 MB | |
skipper-v0.22.87-linux-amd64.tar.gz | 2025-08-11 | 71.8 MB | |
skipper-v0.22.87-darwin-arm64.tar.gz | 2025-08-11 | 67.6 MB | |
skipper-v0.22.87-darwin-amd64.tar.gz | 2025-08-11 | 71.3 MB | |
sha256sum.txt | 2025-08-11 | 613 Bytes | |
README.md | 2025-08-11 | 4.2 kB | |
v0.22.87 source code.tar.gz | 2025-08-11 | 4.3 MB | |
v0.22.87 source code.zip | 2025-08-11 | 5.1 MB | |
Totals: 10 Items | 424.4 MB | 0 |
Changes
OPA JWT token cache configuration (#3572)
Context
With https://github.com/open-policy-agent/opa/pull/7274 Open Policy Agent added configurable token cache to io.jwt token verification built-in functions to improve performance. See changelog.
Changes
With this pull request JWT cache reading and writing is enabled and benchmark tests are added to measure JWT validation performance with cache configuration.
Fix in opa-envoy-plugin After initial round of benchmark tests that showed no impact on perfomence the bug was found in opa-envoy-plugin and contribution with the fix was made.
Benchmark tests result after fix
- results for test with vs without cache configuration
for 10 runs, each 20 s: attached: jwt-validation-cache-benchmark-results-10runs-20s.txt
:::goos: darwin
goarch: arm64
pkg: github.com/zalando/skipper/filters/openpolicyagent/opaauthorizerequest
cpu: Apple M1
│ sec/op │
JwtValidation/without_jwt_cache-8 20.10µ ± 4%
JwtValidation/with_jwt_cache-8 10.65µ ± 3%
geomean 14.63µ
│ B/op │
JwtValidation/without_jwt_cache-8 38.11Ki ± 0%
JwtValidation/with_jwt_cache-8 29.89Ki ± 0%
geomean 33.75Ki
│ allocs/op │
JwtValidation/without_jwt_cache-8 621.0 ± 0%
JwtValidation/with_jwt_cache-8 512.0 ± 0%
geomean 563.9
-
results for test with cache set for max number of 5 tokens in the cache and varying number of tokens in the test (1, 5, 6, 10, 100)
:::goos: darwin goarch: arm64 pkg: github.com/zalando/skipper/filters/openpolicyagent/opaauthorizerequest cpu: Apple M1 │ B/op │ JwtValidationWithVaryingTokenCounts/tokens_count_1-8 9.892µ ± 14% JwtValidationWithVaryingTokenCounts/tokens_count_5-8 10.38µ ± 9% JwtValidationWithVaryingTokenCounts/tokens_count_6-8 13.38µ ± 3% JwtValidationWithVaryingTokenCounts/tokens_count_10-8 16.23µ ± 7% JwtValidationWithVaryingTokenCounts/tokens_count_100-8 22.25µ ± 14%
│ B/op │
JwtValidationWithVaryingTokenCounts/tokens_count_1-8 29.89Ki ± 0% JwtValidationWithVaryingTokenCounts/tokens_count_5-8 29.90Ki ± 0% JwtValidationWithVaryingTokenCounts/tokens_count_6-8 31.78Ki ± 0% JwtValidationWithVaryingTokenCounts/tokens_count_10-8 34.57Ki ± 0% JwtValidationWithVaryingTokenCounts/tokens_count_100-8 38.27Ki ± 0% geomean 32.73Ki
│ allocs/op │
JwtValidationWithVaryingTokenCounts/tokens_count_1-8 512.0 ± 0% JwtValidationWithVaryingTokenCounts/tokens_count_5-8 512.0 ± 0% JwtValidationWithVaryingTokenCounts/tokens_count_6-8 538.0 ± 0% JwtValidationWithVaryingTokenCounts/tokens_count_10-8 577.0 ± 0% JwtValidationWithVaryingTokenCounts/tokens_count_100-8 631.5 ± 0%
Multiarch Docker image
Multiarch Docker image is available in Github's docker registry:
docker run -it ghcr.io/zalando/skipper:v0.22.87 skipper --help
Docker image
Docker image is available in Zalando's Open Source registry:
docker run -it registry.opensource.zalan.do/teapot/skipper:v0.22.87 skipper --help