v0.22 release

Published on: 2021-04-23 ,  Revised on: 2023-08-03

Announcing Knative v0.22 Release

A new version of Knative is now available across multiple components. Follow the instructions in the documentation Installing Knative for the respective component.

Table of Contents


  • Serving Domain Mapping improves multi-tenancy support to avoid domain name to be claim by users that don't legitimately owns them in the cluster.
  • Eventing now allows subscribers and triggers from different namespaces to be used together.
  • 1.18 is now the minimum Kubernetes version required to use the Apache Kafka broker with Knative Eventing v0.22.
  • Apache Kafka broker now supports the ability to choose between ordered and unordered delivery
  • The CLI kn v0.22.0 comes with some bug fixes and minor feature enhancements. It's mostly a polishing release. If you are using the Client API, there is a breaking change that was needed to align with Kubernetes Client API's
  • There are two new CLI plugins to align with the v0.22 release, kn-plugin-admin and kn-plugin-source-kafka
  • The Knative Operator v0.22 release contains bug fixes and supports version v0.22 of Knative Serving and Eventing.

Serving v0.22

πŸ’« New Features & Changes

  • Added an autoscaling annotation to choose a different aggregation algorithm for the autoscaling metrics. This is experimental currently. #10840
  • Added the autocreateClusterDomainClaims flag to the network ConfigMap. networking/#330

🐞 Bug Fixes

  • Added validation that a default max-scale is set if a max-scale-limit is specified in the autoscaler ConfigMap. Otherwise, the default max-scale, 0 = no max, would fail validation as it is above the max-scale-limit. #10921
  • Raised the resource request and limits of the autoscaler to 100m/100Mi, 1000m/1000Mi respectively. #10865
  • Fixed a regression where the latency of starting a pod could be 10s or more. #10992
  • Reduced required memory allocations in the activator significantly, particularly when tracing is turned off. #11016, #11013, #11009, #11008
  • Fixed the incorrect gateway name format for the domain mapping auto TLS feature for net-istio implementation. net-istio#532

Eventing v0.22

🚨 API Changes

  • v1alpha1 channel duck types are no longer supported. #5005

🐞 Bug Fixes

  • Fixed a bug that caused the PingSource adapter to not always release the leader election lease when terminating. #5162
  • Fixed a bug that caused PingSource objects to send duplicate events when the leading adapter failed to renew its lease. #4908
  • Fixed a bug that prevented namespace-scoped InMemoryChannel objects from becoming READY. #4906
  • Fixed excessive number of replicas that were being created for eventing-webhook. #5112
  • The webhook timeout for API server calls has been increased to 10 seconds. #5175

🧹 Clean up

  • Do not set a finalizer for PingSource controllers. Use reconcilekind instead. #5002

Eventing Extensions

Apache Kafka Broker v0.22

🚨 Breaking or Notable

πŸ’« New Features & Changes

  • The Kafka broker now supports ordered delivery. You can choose between ordered and unordered delivery by using the kafka.eventing.knative.dev/delivery.order label in the trigger spec. See the Kafka broker documentation. #589

🐞 Bug Fixes

  • Added a producer interceptor, io.cloudevents.kafka.PartitionKeyExtensionInterceptor, to provide ordered delivery based on the partitioning extension of the CloudEvents spec. #751
  • Fix unable to deploy KafkaSink without Kafka Broker installed. #714

Client v0.22

Managing custom domain mappings

This release adds support for CRUD management of domain mappings. You can use the kn domain CLI command, along with its sub-commands create, update, describe, list, and delete, to fully manage DomainMapping resources to use custom domains for Knative services.

# Create a domain mappings 'hello.example.com' for Knative service 'hello'
kn domain create hello.example.com --ref hello

# Update a domain mappings 'hello.example.com' for Knative service 'hello'
kn domain create hello.example.com --refFlags hello

# List all domain mappings
kn domain list

# Delete domain mappings 'hello.example.com'
kn domain delete hello.example.com
See kn domain help for more information.

Client API signature change

A context.Context object was added as the first argument to every Client API method to align with the Kubernetes Client API signatures. This change does not affect client CLI usage unless the client-specific Golang API used to communicate with the Knative backend has changed. To migrate to the updated API signature, you can pass an already existing context to the call, or use one of the available standard contexts, such as context.TODO().

CLI Plugins

πŸ’« New Features & Changes

The plugins that are released aligned with v0.22 are:

Minor CLI updates

  • kn export now uses the Export format as the default.
  • Added S column to specify built-in sources in kn source list-types.
  • Added support for namespaces for all commands that takes a --sink option.

Operator v0.22

🐞 Bug Fixes

  • Delete installed ingress resources only. #548
  • Allow the update of ingress resources with spec.additionalManifests. #531
  • Refactored the cache mechanism. #532
  • Filter redundant resources in the target manifest. #509

🧹 Clean up

  • Drop unnecessary occurrences of master #513
  • Add DEVELOPMENT.md #503

Thank you 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