v0.26 release

Published on: 2021-10-05 ,  Revised on: 2023-08-03

Announcing Knative v0.26 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


  • Kubernetes 1.20+ is now required
  • Improvements for Istio mesh compatibility mode.
  • New features in eventing kafka
  • New CLI plugins available
  • Many improvements in install operator

Serving v0.26

🚨 Breaking or Notable Changes

  • Kubernetes 1.20+ is now required

πŸ’« New Features & Changes

  • Allow users to set container[*].securityContext.runAsGroup (#12003)
  • A new setting, mesh-compatibility-mode, in the networking config map allows an administrator to explicitly tell Activator and Autoscaler to use Direct Pod IP (most efficient, but not compatible with mesh being enabled), Cluster IP (less efficient, but needed if mesh is enabled), or to Autodetect (the current behaviour, and the default, causes Activator and Autoscaler to first attempt Direct Pod IP communication, and then fall back to Cluster IP if it sees a mesh-related error status code). (#11999)
  • Adds more debug logs to background digest resolver (#11959)
  • Dropped the startup probe on the queue-proxy which makes the pods start ~500ms quicker on average. (#11965)
  • Removes the ServiceName field from RevisionStatus which has been deprecated for several releases. This field was effectively equal to the revision name. (#11817)
  • When enabled, queue proxy tracks the request count for each pod (disabled by default) (#11783)

🐞 Bug Fixes

  • User-supplied readinessProbes with a probePeriod set greater than zero are no longer silently ignored after pod startup. (#11190)

Eventing v0.26

🚨 Breaking or Notable Changes

  • Kubernetes 1.20+ is now required

πŸ’« New Features & Changes

  • Add new kreference-naming experimental feature. When enabled, it allows overriding the default Knative reference resolver behavior. See the document for more details. (#5599)
  • The heartbeats sample app now supports Golang-style time durations as the period interval (#5683)
  • Dead Letter Sink CloudEvents from certain Channels will include the knativeerrordest extension attribute indicating the original destination URL of the failed event. (#5727)
  • Event Display and Heartbeats sample programs will emit traces to a trace endpoint if it's configured (#5631)
  • Traces are exported by the mtbroker controller (#5634)
  • Trigger accepts a timeout field in its delivery parameters spec.delivery.timeout (#5687)

🐞 Bug Fixes

  • Validate CloudEvent overrides as defined by the CloudEvent spec. (#5730)
  • Fix DeadLetterSinkURI not persisting to Trigger status (#5642)

🧹 Clean up

  • NewListableTracker is deprecated, use NewListableTrackerFromTracker instead. (#5651)
  • Adopted app.kubernetes.io labels (#5628)
  • Clarify the semantic of ceOverrides (#5641)
  • The post job is now having a generated name, instead of an unmaintained versioned name. (#5664)

Eventing Extensions

Apache Kafka Broker v0.26

🚨 Breaking or Notable Changes
  • Kubernetes 1.20+ is now required
🐞 Bug Fixes
  • The fields Broker.spec.delivery.deadLetterSink.ref.namespace and Trigger.spec.delivery.deadLetterSink.ref.namespace are optional. By default the controller uses the object namespace. (#1254)

Apache Kafka Source and Channels v0.26

πŸ’« New Features & Changes
  • KafkaChannel CRD Spec now includes a RetentionDuration field, allowing per-channel control over retention. A Post-Install Job (config/post-install/retentionupdate) is available to migrate existing KafkaChannels forward by populating this field. The "topic" configuration defaults which were not working have been removed from the config-kafka ConfigMap. (#828)
  • KafkaChannel ConfigMap now supports custom Labels and Annotations for dynamically generated resources. (#806)
  • Provide an option for the user to specify the initial offset for a consumer group in Kafka source, this field is honored only if there are no prior offsets committed for the consumer group. (#779)
  • KafkaSource now supports ceOverrides. (#811)
  • The Multi-tenant KafkaSource calculates an optimal maximum allowed replica number based on Kafka source partitions count so that scheduler does not schedule more vreplicas than the calculated number (#822)
  • Autoscaling annotations can now be automatically added to KafkaSource objects. See the documentation for more details. (#855)
🐞 Bug Fixes
  • Fix bug: status.address of KafkaChannel is not required anymore, thus conditions are reflected successfully in case of an early stage error (#857)
  • Remove confusing error message Kafka source is not ready. This error is returned as an event regardless the Kafka source has any real issue or not and users should not see this error message unless it is a legitimate error or it is an error they can fix. (#809)
  • multi-tenant source webhook cluster role has update permission for namespaces/finalizers. (#854)
🧹 Clean up
  • Inherent immutability of KafkaChannel and ResetOffset spec fields is now enforced by the kafka-webhook. (#863)
  • Next generation Multi-Tenant Scheduler and Descheduler: uses a plugin interface to specify a Scheduler profile with predicates and priorities that run filtering and scoring of pods, respectively to compute the best vreplica placements. When the autoscaler adds new pods, scheduler performs a rebalancing of the already placed vreplicas along with the new vreplicas. A Descheduler profile must be installed when vreplicas need to be scaled down and placements removed. (#768)
  • The consolidated KafkaChannel dispatcher is now owned by the controller. (#798)

Eventing Kogito v0.26

πŸ’« New Features & Changes
  • Introduce the new Kogito Source CRD and add support to K_SINK environment variable to Kogito services (#1)

Client v0.26

πŸ’« New Features & Changes

  • Add --env-file option to function create/update command (#1433)
  • New CLI plugin kn-plugin-kamelet, a Knative CLI plugin for managing Kamelets and KameletBindings as Knative event sources. Download latest release here
    • List available Kamelets
    • Describe Kamelet and print detailed information (e.g. provider, support level, properties)
    • Bind Kamelet as source to a Knative sink (broker, channel, service)
    • List Kamelet bindings
    • Create Kamelet binding to bind source to Knative sink (broker, channel, service)
  • New CLI experimental functions plugin kn-plugin-func Download latest release here
  • New CLI experimental cloud event plugin kn-plugin-event Download latest release here

🧹 Clean up

  • Remove DeprecatedImageDigest field (#1454)
  • Reuse conflict retry loop from client-go/util/retry (#1441)

Operator v0.26

πŸ’« New Features & Changes

  • Detect missing Istio requirement and suggests user to instal the Istio Gateway CRD (#697)
  • Adding COC, contributing doc (#790)
  • Remove pingsource-mt-adapter from the list of unsupported HA (#788)
  • Apply high-availability to all deployments managed by operator (#749)
  • fix misspelling of with (#781)
  • Add the support of spec.deployments.affinity (#777)
  • Adjust maxReplicas in HPA when high-availability has larger number (#748)
  • Prepare the Knative Operator for the label app.kubernetes.io/version (#738)
  • Allow to set Tolerations via spec.deployments.tolerations (#747)
  • Remove pingsource from HA scaling (#740)
  • Drop deprecated enabledComponents field setting (#735)
  • Use knative.dev/hack/codegen-library.sh in hack/update-codegen.sh (#734)
  • Remove heartbeats for eventing (#792)

🐞 Bug Fixes

  • Fix the error issue with installing spec.manifests (#750)

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