|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "Kroxylicious release 0.20.0" |
| 4 | +date: 2026-04-01 00:00:00 +0000 |
| 5 | +author: "Rob Young" |
| 6 | +author_url: "https://github.com/robobario" |
| 7 | +# noinspection YAMLSchemaValidation |
| 8 | +categories: blog kroxylicious-proxy releases |
| 9 | +tags: [ "releases", "kroxylicious-proxy" ] |
| 10 | +--- |
| 11 | + |
| 12 | +We're excited to announce the release of [Kroxylicious 0.20.0](https://github.com/kroxylicious/kroxylicious/releases/tag/v0.20.0)! There's a lot to dig into — check out the full [Changelog](https://github.com/kroxylicious/kroxylicious/blob/main/CHANGELOG.md#0200) for everything including deprecations, changes, and removals. |
| 13 | + |
| 14 | +Here are the highlights: |
| 15 | + |
| 16 | +### Connection Expiration Filter |
| 17 | + |
| 18 | +Thanks to the work of [May-Abo](https://github.com/May-Abo), a new filter joins the family! The Connection Expiration filter closes client connections after a configurable maximum age. This is perfect for dynamic environments like Kubernetes where you want to rebalance connections across proxy instances as pods scale up or down. |
| 19 | + |
| 20 | +### Entity Isolation Filter |
| 21 | + |
| 22 | +Multi-tenancy gets even better with the Entity Isolation filter. Initially supporting `groupId` and `transactionalId` entity types, this filter helps you enforce isolation boundaries between tenants sharing a cluster. |
| 23 | + |
| 24 | +### Apicurio v3 Upgrade |
| 25 | + |
| 26 | +Record validation just got a major upgrade with Apicurio v3. The default schema identification has changed from `globalId` to `contentId` for better interoperability with Confluent-based Kafka clients. You can still use the old behavior by setting `wireFormatVersion` to `V2`, though this mode is deprecated and will be removed in a future release. |
| 27 | + |
| 28 | +### Kubernetes Operator Enhancements |
| 29 | + |
| 30 | +Two improvements for Kubernetes users: |
| 31 | +- **Server-Side Apply**: The operator now uses Server-Side Apply for all dependent resources. Existing deployments are unaffected, and externally-applied patches (like annotations from observability tooling) will now survive operator reconciles. |
| 32 | +- **OpenShift Route Support**: Enable external access to Virtual Clusters via OpenShift Routes using `KafkaProxyIngress.spec.openShiftRoute`. Off-cluster client access is now a breeze on OpenShift. |
| 33 | + |
| 34 | +### Schema Validation with Internal Certificates |
| 35 | + |
| 36 | +You can now use schema validation with a schema registry protected by internally signed TLS certificates. One less obstacle for air-gapped or enterprise environments. |
| 37 | + |
| 38 | +### Javadocs on the Website |
| 39 | + |
| 40 | +Public API Javadocs are now published alongside version-specific documentation on [kroxylicious.io](https://kroxylicious.io), making it easier to explore our APIs without leaving your browser. |
| 41 | + |
| 42 | +### Configuration Improvements |
| 43 | + |
| 44 | +- **Configurable Netty shutdown**: New `shutdownQuietPeriod` and `shutdownTimeout` fields give you fine-grained control over Netty shutdown behavior with Go-style durations. |
| 45 | +- **Duration serialization**: Filter Config classes can now use `Duration` types that automatically serialize to/from Go-style strings (e.g., "1h") without any annotations. |
| 46 | + |
| 47 | +### Artefacts |
| 48 | + |
| 49 | +Binaries are attached to the GitHub [release](https://github.com/kroxylicious/kroxylicious/releases/tag/v0.20.0) and available through [Maven Central](https://repo1.maven.org/maven2/io/kroxylicious/kroxylicious-app/0.20.0/). |
| 50 | + |
| 51 | +Container images are available on quay.io: |
| 52 | + |
| 53 | +| Image | Repository | |
| 54 | +|---|---| |
| 55 | +| Proxy | [quay.io/kroxylicious/kroxylicious:0.20.0](https://quay.io/repository/kroxylicious/kroxylicious?tab=tags) | |
| 56 | +| Operator | [quay.io/kroxylicious/operator:0.20.0](https://quay.io/repository/kroxylicious/operator?tab=tags) | |
| 57 | + |
| 58 | +### Feedback |
| 59 | + |
| 60 | +We'd love to hear from you! Whether you're kicking the tyres, running Kroxylicious in production, or just find the project interesting — drop by and say hello. |
| 61 | +You can reach us through [Slack](https://kroxylicious.slack.com), [GitHub](https://github.com/kroxylicious/kroxylicious/issues) or even [bsky](https://bsky.app/profile/kroxylicious.io)), or tell us in person on one of our upcoming [community calls]({% link join-us/community-call/index.md %}). |
0 commit comments