Skip to content

v1.22 release

Announcing Knative v1.22 Release

A new version of Knative is now available across multiple components.

Follow the instructions in Installing Knative to install the components you require.

Highlights

Minimal supported version of Kubernetes is now 1.34. See our release schedule for details.

Operator

Release notes: Operator 1.22

A significant release adding multi-cluster deployment support and net-gateway-api ingress, alongside several Helm fixes.

Multi-Cluster Deployment via Cluster Inventory API

The operator now supports deploying Knative across multiple clusters using the Kubernetes Cluster Inventory API (#2267 by @kahirokunn). This means you can manage Knative installations on remote clusters from a single operator, without needing to run an operator instance on each cluster individually.

net-gateway-api Ingress Support

The operator now supports net-gateway-api as an ingress option (#2251 by @kahirokunn), giving you a declarative way to configure Gateway API-based ingress through the operator.

Helm Reliability Fixes

A conflict on aggregated ClusterRoles during Helm upgrades has been fixed (#2286 by @kahirokunn), Helm chart publishing has been fixed by skipping plugin verification (#2243 by @lepeli), and CRD generation has been migrated to controller-gen with automated Helm RBAC sync (#2269 by @kahirokunn).

KUBERNETES_MIN_VERSION Propagation Fix

KUBERNETES_MIN_VERSION is now correctly propagated to operand workloads (#2245 by @eXist-FraGGer).


Serving

Release notes: Knative Serving 1.22

This release brings meaningful improvements to scaling, networking, and security.

Scale Subresource Switch (400-500ms Cold Start Improvement)

The biggest change this release is the switch to using the Kubernetes /scale subresource when updating replica counts (#16540 by @dprotaso). This reduces cold start time by approximately 400-500ms and means the autoscaler now works correctly with any resource that supports the standard Kubernetes scale subresource, not just Deployments.

Networking: EndpointSlices

The autoscaler stat forwarder has been migrated to use EndpointSlices (#16448 by @dprotaso), bringing it in line with modern Kubernetes networking and improving scalability for larger clusters.

Observability: New Request Metrics

Two new metrics have been added: kn.revision.request.queued and kn.revision.request.active (#16367 by @prashanthjos), giving better visibility into per-revision request pressure.

Security and Reliability

TLS configuration for the reconciler, activator, and queue-proxy has been consolidated under the knative.dev/pkg/tls package (#16431, #16424, #16425 by @Fedosin).

WebSocket connections in the queue-proxy now shut down gracefully (#16362 by @dprotaso).

Smarter Deployment Updates

The serving reconciler will now only update a Deployment when labels, annotations, or the spec actually change (#16554 by @dprotaso), reducing unnecessary resource churn.


Serving Networking Extensions

net-contour

Release notes: net-contour 1.22

A focused release with a notable networking improvement and a Contour version bump.

KIngress Annotation Propagation

KIngress annotations are now propagated to generated HTTPProxy resources (#1265 by @Legion2), giving you more control over Contour-level configuration from your Knative ingress resources.

Contour Updated to v1.33.3

Contour has been bumped to v1.33.3 (#1267 by @dprotaso), picking up the latest bug fixes and patches.

net-gateway-api

Release notes: net-gateway-api 1.22

This release adds tag-to-host routing support and fixes several reliability issues. Tested against Gateway API v1.4.1 with Istio v1.28.2, Contour v1.33.1, and Envoy Gateway v1.6.2.

Tag-to-Host Support

Traffic tags can now be mapped to hostnames (#944 by @kahirokunn), bringing net-gateway-api in line with the tag-to-host behavior available in other Knative networking layers.

Label and Annotation Propagation Fix

A bug was fixed where labels and annotations were not being propagated from the ingress to HTTPRoute resources on updates (#950 by @kahirokunn).

Controller Probes and Webhook Security

The controller now has probes and the webhook has improved security settings (#932 by @kahirokunn).

ingress.class Config Key Renamed

The ingress.class config key has been superseded by ingress-class (#917 by @controlol). If you have this set in your config, you will need to update it.

net-istio

Release notes: net-istio 1.22

Mesh-Only Mode

Gateways can now be disabled via config, enabling a mesh-only deployment mode (#1524 by @prashanthjos). This is useful for clusters where traffic is handled entirely through the service mesh without needing dedicated ingress gateways.

Istio Updated to v1.29.2

Istio has been bumped to v1.29.2 (#1540 by @dprotaso), picking up the latest patches across the v1.29 line.

net-kourier

Release notes: net-kourier 1.22

Informer Cache for Initial Ingress Reconciliation

The reconciler now uses the informer cache when processing the initial set of ready ingresses at startup (#1441 by @dprotaso), improving reliability and reducing unnecessary API server calls during startup.

Envoy Updated to v1.37

Envoy has been bumped to v1.37 (#1444 by @dprotaso).


Eventing

Release notes: Knative Eventing 1.22

This release focuses on security hardening, observability improvements, and expanded EventTransformer capabilities.

EventTransformer Gets Auth and EventPolicy Support

The EventTransformer now supports the auth-proxy sidecar and EventPolicy (#8883 by @Arpit529Srivastava), bringing it in line with the rest of the eventing components.

EventPolicies are also now queried dynamically by the auth-proxy (#8870 by @creydr).

TLS Hardening

TLS configuration has been centralized under knative.dev/pkg/tls (#8901 by @Fedosin), and the default minimum TLS version has been bumped to 1.3 (#8916 by @Fedosin).

Observability Fixes and Improvements

Several metrics fixes landed this release: http.response.status_code is now included in mt-broker-ingress and imc-dispatcher metrics (#8891), namespace labels have been added to source metrics (#8892).

ApiServerSource metrics port has been corrected to 9092 (#8895) — all by @creydr.

A duplicate OTEL setup in imc-dispatcher was also removed (#8885).

Source Reliability

The source Ready condition now correctly waits for zero unavailable replicas before reporting ready (#8896 by @creydr).

Probes have been added to IntegrationSource and IntegrationSink deployments (#8867 by @creydr).


Eventing Extensions

NATS Broker

This is a significant release introducing alpha support for a native NATS broker, making NATS simpler to deploy and use with Knative Eventing.

Alpha: Native NATS Broker

You can now use NATS directly as a Knative broker without needing to set up a NatsChannel or NatsSource first. This release adds the custom broker ingress (#719), filter (#720), Kubernetes configurations (#731), and shared ingress with e2e tests (#733) — all by @astelmashenko. The result is a much simpler path to using NATS as an eventing backend: deploy the broker, point it at your NATS cluster, and start routing events.

Note this feature is alpha and the API may change in future releases.

Nil Pointer Fix for Missing Retry Config

A panic caused by a nil pointer dereference when no retry config was defined has been fixed (#734 by @lepeli).

Apache Kafka Broker

Release notes: Kafka Broker 1.22

This release brings observability improvements, a deprecation removal, and an important data-plane fix.

Kubernetes Secret Fetching Fix

K8s secrets are now fetched on a separate thread from the main Vert.x instance (#4703 by @Cali0707), preventing thread contention that could impact data-plane performance.

Metrics Improvements

Tag names for resource name and namespace are now aligned with eventing-core (#4656), metric tag names are now lowercase (#4661), and a new METRICS_DISABLE_EVENT_TYPE_TAG option has been added (#4673) for cases where high event type cardinality causes metric bloat — all by @creydr.

Deprecated DefaultPartition Configuration Removed

The deprecated DefaultPartition configuration option has been removed (#4327 by @matzew). If you still have this set, it will need to be cleaned up before upgrading.

Better Kafka Topic Validation Errors

Error reporting for Kafka topic validation failures has been improved (#4641 by @creydr), making it easier to diagnose misconfigured topics.

Other Integrations

These releases contain dependency updates:


Functions

Release notes: Functions 1.22

KEDA Deployer Support

Functions can now be deployed using KEDA (#3386 by @creydr), enabling event-driven autoscaling for your functions out of the box. See the updated RBAC docs (#3427) for what permissions are required.

Better Function Visibility in describe

The describe command now shows function ready status (#3627) and the current revision label (#3629), both by @creydr, making it easier to confirm what is actually running in your cluster.

Registry Insecure Flag Now Persisted

The --registry-insecure flag is now respected in remote builds (#3484) and remembered across recurring runs (#3490), both by @creydr. Previously this had to be re-specified every time.

Platform Support for pack Builder

The pack builder now supports specifying a target platform (#3603 by @matejvasek), useful for building multi-arch images or targeting a specific OS/architecture.

Middleware Version Tracking

The middleware version is now added as an image label on both local and remote pack builds (#3408 by @gauron99, #3609 by @creydr), making it easier to track what runtime version a function image was built with.

CI Workflow Generation Improvements

Workflow files are now protected from accidental overwrites (#3407 by @twoGiants), and the generated CI config is now runtime-aware (#3479 by @twoGiants).

Notable Bug Fixes

Podman-docker detection in container engine resolution has been fixed (#3620 by @cardil), the registry is now preserved correctly when changing namespaces on OpenShift (#3445 by @gauron99), and eventing errors are now ignored gracefully when eventing is not installed (#3428 by @creydr).


Client

Release notes: Client 1.22

Istio Inject Set as Label

sidecar.istio.io/inject is now correctly set as a label instead of an annotation (#2142 by @folliehiyuki), which is required for Istio to honour the setting.

kn-plugin-quickstart

Release notes: Quickstart 1.22

Custom Minikube Flags

You can now pass custom flags through to minikube when using the quickstart plugin (#636 by @Alexander-Kita), making it easier to configure things like CPU, memory, or driver without forking the plugin.

Kubernetes Version No Longer Hardcoded

The Kubernetes version used in quickstart environments is no longer hardcoded (#643 by @dprotaso), so it will pick up whatever version is current rather than lagging behind.

Other Client Plugins

These releases contain dependency updates:


Thank you, contributors

Release Leads:

New Contributors 🎉:


Learn more

Knative is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us!

We use analytics and cookies to understand site traffic. Information about your use of our site is shared with Google for that purpose. Learn more.

× OK