Skip to content

Releases: knative/eventing

Knative Eventing release v0.8.0

06 Aug 19:19
Compare
Choose a tag to compare
Pre-release
Artifact Description
eventing.yaml The core knative/eventing components: Channel, Subscription, ClusterChannelProvisioner, Broker, Trigger, APIServerSource, ContainerSource, CronJobSource, EventType, Sequence, Choice
gcp-pubsub.yaml The GCP PubSub ChannelProvisioner
in-memory-channel-crd.yaml The InMemoryChannel CRD
in-memory-channel-provisioner.yaml The in-memory ChannelProvisioner
natss.yaml The NatssChannel CRD
release.yaml Core knative/eventing components bundled with the in-memory ClusterChannelProvisioner

Eventing

ClusterChannelProvisioners have been deprecated and will be removed in a future release. Please transition to using CRD-based channel implementations instead.

Existing CCP Replacement CRD
in-memory InMemoryChannel
kafka KafkaChannel in https://github.com/knative/eventing-contrib
natss NatssChannel
gcp-pubsub Channel.pubsub.cloud.run in https://github.com/GoogleCloudPlatform/cloud-run-events

Action Required

  • The Kafka channels, both the provisioner-based one as well as the KafkaChannel CRD, have been moved to https://github.com/knative/eventing-contrib. Install them from there. #1609.
  • sourceAndType filtering on Triggers has been deprecated. A new attributes filter is available, where besides filtering on standard CloudEvents attributes, it allows to filter based on extension attributes.

New Features

  • A new Choice CRD has been added for defining functions to execute based on some condition. #1529, #1595, #1608, #1611, #1642
  • Default channel support for Channel CRDs. #1560
  • Introduced a new Channel object in messaging.knative.dev API group to be used in case users want a channel but are not interested in its actual implementation (e.g., whether it is an InMemoryChannel, KafkaChannel, NatssChannel, etc.). #1560
  • Brokers now leverage the default channel support for CRDs to set up a default channel, if not specified. #1560
  • Sequences now leverage the default channel support for CRDs to set up a default channel, if not specified. #1569
  • Migrated to use v0.3 of CloudEvents Spec. #1535, #1575
  • Added stats reporter for webhook. #1520
  • Added access to metrics with Grafana and Prometheus. Follow this guide to understand the details. #1584
  • Exposed the registration delay for the webhook. #1534
  • ApiServerSource now updates its receive adapter, if needed. #1576, #1577
  • Broker and Trigger now use fixed names. The old Channels and Subscriptions with a generated name will continue to exist, but will be garbage collected once Brokers/Triggers are deleted. #1563
  • ApiServerSource now uses fixed names. #1602
  • ContainerSource now uses fixed names. #1628
  • CronJobSource and ApiServerSource are discoverable. By describing their CRDs, you can identify what are the event types they can produce. #1638
  • Channels based on the provisioner model now use fixed names. #1588.
  • Added metric to measure the time from when an event is received by the Broker ingress until it is delivered to the function. #1635
  • Added attributes filter on Triggers. #1643

Bug Fixes

  • Tracing service name for CronJobSource is now cronjobsource. #1492
  • Added RBAC update permissions for finalizers sub-resource of Sequences. #1495
  • Added missing json tags in Sequence's SubscriptionStatuses and ChannelStatuses. #1501
  • Registered SequenceList to the known types scheme. #1528
  • Fixed e2e tearing down step #1541
  • Changed version to versions in CRDs. #1547
  • Added InMemoryChannel, KafkaChannel, NatssChannel, Channel.messaging.knative.dev, and Sequences to the addressable-resolver cluster role. #1600, #1601, #1608

Other Changes

  • Updated opencensus dependencies. #1532
  • Removed old deprecated webhook called webhook. #1322
  • Migrated to knative.dev/pkg. #1475
  • Migrated to knative.dev/test-infra. #1604
  • Added importers category to ApiServerSource, ContainerSource, and CronJobSource. #1473
  • Added e2e test for Sequences. #1482
  • Skipped flaky tests. #1502
  • Added channel spec draft. #1420, #1514, #1572, #1617
  • Made gcloud a no-op if not available for test scripts #1508
  • Changed environment variable names for release process #1542
  • Replaced AddressableTracker with ResourceTracker. #1522
  • Added point release documentation for knative/test-infra. #1548
  • Disabled logging headers in NATSS dispatcher. #1552
  • Updated roadmap documentation. #1574
  • Increased UT coverage. #1568, #1570, #1571
  • ApiServerSource now propagates its receive adapter's status. #1578
  • Removed e2e tests for channel provisioners. #1489
  • Moved Broker ingress to pkg. #1612
  • Allowed running e2e tests on oidc clusters and dockerhub. #1620
  • Small CronJobSource improvements. #1630, #1632
  • Documented steps to create a release. #1639
  • Added automatic release version labels. #1644
  • Made e2e tests work on macOS. #1641
  • New service account for eventing-source-controller. #1490
  • Added scrape annotation to services exporting metrics. #1510
  • Added permissions to admin default roles. #1503

Knative Eventing release v0.7.1

03 Jul 00:51
Compare
Choose a tag to compare
Pre-release
Artifact Description
eventing.yaml The core knative/eventing components: Channel, Subscription, ClusterChannelProvisioner, Broker, Trigger, APIServerSource, ContainerSource, CronJobSource, EventType, Sequence
gcp-pubsub.yaml The GCP PubSub ChannelProvisioner
in-memory-channel-crd.yaml The InMemoryChannel CRD
in-memory-channel-provisioner.yaml The in-memory ChannelProvisioner
kafka.yaml The KafkaChannel CRD
kafka-ccp.yaml The Kafka ChannelProvisioner
natss.yaml The NatssChannel CRD
natss-ccp.yaml The Natss ChannelProvisioner
release.yaml Core knative/eventing components bundled with the in-memory ClusterChannelProvisioner

Eventing

ClusterChannelProvisioners have been deprecated and will be removed in a future release. Please transition to using CRD-based channel implementations instead.

Existing CCP Replacement CRD
in-memory InMemoryChannel
kafka KafkaChannel
natss NatssChannel
gcp-pubsub Channel.pubsub.cloud.run in https://github.com/GoogleCloudPlatform/cloud-run-events

Bug Fixes

  • The Kafka and Natss ClusterChannelProvisioners have returned as release artifacts alongside the CRD Channels. #1486 #1488
  • The Sequence controller now has the proper RBAC permissions on OpenShift. #1495 #1497

Knative Eventing release v0.6.1

27 Jun 01:45
Compare
Choose a tag to compare
Pre-release
Artifact Description
eventing.yaml Just the core knative/eventing components without Sources or ChannelProvisioners
gcp-pubsub.yaml Just the GCP PubSub ChannelProvisioner
in-memory-channel.yaml Just the in-memory ChannelProvisioner
kafka.yaml Just the Kafka ChannelProvisioner
natss.yaml Just the NATS Streaming ChannelProvisioner
release.yaml Core components bundled with the in-memory ChannelProvisioner

Eventing

Bug fixes

  • Broker no longer drops messages with an incorrect "no TTL" error. #1466

Knative Eventing release v0.7.0

26 Jun 01:32
ab26009
Compare
Choose a tag to compare
Pre-release
Artifact Description
eventing.yaml The core knative/eventing components: Channel, Subscription, ClusterChannelProvisioner, Broker, Trigger, APIServerSource, ContainerSource, CronJobSource, EventType, Sequence
gcp-pubsub.yaml The GCP PubSub ChannelProvisioner
in-memory-channel-crd.yaml The InMemoryChannel CRD
in-memory-channel-provisioner.yaml The in-memory ChannelProvisioner
kafka.yaml The KafkaChannel CRD
natss.yaml The NatssChannel CRD
release.yaml Core knative/eventing components bundled with the in-memory ClusterChannelProvisioner

Eventing

ClusterChannelProvisioners have been deprecated and will be removed in a future release. Please transition to using CRD-based channel implementations instead.

Existing CCP Replacement CRD
in-memory InMemoryChannel
kafka KafkaChannel
natss NatssChannel
gcp-pubsub Channel.pubsub.cloud.run in https://github.com/GoogleCloudPlatform/cloud-run-events

Action Required

  • The deprecated kafka-channel-dispatcher StatefulSet in the knative-eventing namespace is no longer installed. Please delete this StatefulSet. #1236.
  • The deprecated in-memory-channel ClusterChannelProvisioner is no longer installed. Please delete this ClusterChannelProvisioner and replace its usages with the in-memory ClusterChannelProvisioner or the InMemoryChannel CRD.
  • Broker ingress pods now use the eventing-broker-ingress ServiceAccount. If you are using a Broker in a namespace not annotated with eventing injection, then you will need to follow the manual setup instructions to create the required ServiceAccount and RoleBindings. Failure to do so could cause Broker ingress pods to crash on startup. #1241
  • The Deployment and Service objects implementing the Eventing webhook have been renamed to eventing-webhook. The webhook Deployment has been scaled to zero replicas and will be removed in a future release. #1269
  • The broker_ingress_messages_total metric is now called broker_events_total. The broker_ingress_dispatch_time is now called broker_dispatch_time. #1177

New Features

  • An InMemoryChannel CRD has been added to replace the in-memory ClusterChannelProvisioner. The in-memory ClusterChannelProvisioner has been deprecated and will be removed in a future release. #1219
  • A KafkaChannel CRD has been added to replace the kafka ClusterChannelProvisioner. The kafka ClusterChannelProvisioner has been deprecated and will be removed in a future release. #1261 #1316
  • A NatssChannel CRD has been added to replace the natss ClusterChannelProvisioner. The natss ClusterChannelProvisioner has been deprecated and will be removed in a future release. #1327
  • A Sequence CRD has been added for defining a sequence of functions to execute in order with optional reply. #1239 #1406
  • Channel, Subscription, Broker, and Trigger objects are now annotated with the name of the users who created and last updated the object. #1111
  • Subscriptions can now have different Channel kinds referenced in their spec.channel field. E.g. "InMemoryChannel", "KafkaChannel", etc. #1283
  • Addressable objects may now specify a URL as an alternative to hostname. #1296
  • Traces are visible coming out of Channel dispatchers. #1248
  • ClusterChannelProvisioners, Sources, and Broker data planes now support exporting traces to Zipkin. #704
  • ContainerSource now supports specifying the source container with a PodTemplateSpec in the spec.template field. The existing pod specification fields are deprecated and will be removed in a future release. #1321
  • CronJobSource now supports resource limits and requests fields. #1258
  • The Trigger filter now exports filter and dispatch metrics at :9090/metrics. #1177

Bug Fixes

  • Broker no longer drops messages with an incorrect "no TTL" error. This fix was also backported to v0.6.1. #1452
  • Subscriptions now detect more failure scenarios before becoming Ready. #1264
  • The EventType CRD is now installed in the first pass with other CRDs. #1298
  • The EventType CRD now has an OpenAPI schema. #1308
  • Channels and Subscriptions are no longer marked Ready before they are able to deliver messages. #1330

Other Changes

  • Eventing controller now explicitly disables istio sidecar injection for its pods. #1304
  • All Broker ingress and filter pods now retrieve observability config from cluster-wide ConfigMaps (normally in the knative-eventing namespace) instead of per-namespace ConfigMaps. #1426
  • Objects created during the install process are now labeled with the eventing.knative.dev label and value equal to the installed release version or devel. #1467 #1470

Knative Eventing release v0.6.0

14 May 20:34
Compare
Choose a tag to compare
Pre-release
Artifact Description
eventing.yaml Just the core knative/eventing components without Sources or ChannelProvisioners
gcp-pubsub.yaml Just the GCP PubSub ChannelProvisioner
in-memory-channel.yaml Just the in-memory ChannelProvisioner
kafka.yaml Just the Kafka ChannelProvisioner
natss.yaml Just the NATS Streaming ChannelProvisioner
release.yaml Core components bundled with the in-memory ChannelProvisioner

Eventing

WARNING: Release 0.6.0 has a critical bug causing the Broker to drop messages. Please use 0.6.1 or later.

Action Required

  • The in-memory-channel ClusterChannelProvisioner will be deleted in release 0.7, replaced by the in-memory provisioner. Please migrate all in-memory-channel Channels to in-memory. #1044 #1057
  • Trigger's BrokerExists condition is now called Broker. #1071
  • The Kafka dispatcher StatefulSet has been scaled to 0 replicas and replaced with a Deployment. Please delete the StatefulSet eventing-sources/kafka-channel-dispatcher after upgrading to 0.6. #972 #1141
  • CronJobSource and ContainerSource are now installed as part of the Eventing release instead of Eventing Sources. #1092 #1099
  • The in-memory ClusterChannelProvisioner now depends on the config-tracing ConfigMap installed by Eventing. Eventing should be installed first. If the in-memory CCP is installed first, the in-memory dispatcher will crashloop until Eventing is installed. #1199
  • CronJobSource now uses /apis/v1/namespaces//cronjobsources/ as the CloudEvents Source for all events. This replaces the previous /CronJob value. #1209

New Features

  • A new EventType CRD has been introduced to store the event types that can be consumed from the eventing mesh. #1105
  • Upon creating a CronJobSource or ApiServerSource, its EventType will be added to the Registry. #1146 #1201
  • Istio is no longer a dependency of Eventing components. Eventing will still work if Istio is present. #294
  • A new ApiServerSource CRD has been introduced that emits events when Kubernetes objects change. #1108
  • All Channels now support tracing. Tracing is configured by the config-tracing ConfigMap. #1199 #1203 #1204 #1231
  • All controller reconcilers now expose metrics. #1200
  • The ContainerSource now provides additional Kubernetes Events and resource Conditions to assist in debugging knative/eventing-contrib#186

Other Changes

  • Triggers now use paths instead of hosts for routing to subscribers, removing the need to create Kubernetes Service and Istio VirtualService objects.
    Existing Service and VirtualService objects owned by Triggers will not be deleted proactively. They will be cleaned up by Kubernetes GC when their owning Trigger is deleted. #1045
  • Channels using the in-memory-channel provisioner will now have a Deprecated condition. #1062
  • All channels now use Kubernetes Service objects of type ExternalName instead of Istio VirtualService objects. #1044 #1058 #1074 #1099
  • Eventing data plane components no longer force the Istio sidecar to be injected. #1119

Bug Fixes

  • Broker's Ready condition is now only True when its constituent pieces are also Ready. #1064
  • Trigger's Ready condition is now only True when its constituent pieces are also Ready. The Broker condition is now called BrokerExists. #1071
  • Channel's subscriber array now uses uid as a patch key. The ref field is now deprecated. #1057
  • Controllers now have the proper finalizer RBAC permissions. #1086 #1089 #1120
  • Webhook Controller now binds to an unprivileged port. #1130
  • Subscriptions and Triggers watch and track their subscribers so subscriber changes are noticed more quickly. #1149

Knative Eventing release v0.5.0

02 Apr 22:43
Compare
Choose a tag to compare
Pre-release
Artifact Description
eventing.yaml Just the core knative/eventing components without Sources or ChannelProvisioners
gcp-pubsub.yaml Just the GCP PubSub ChannelProvisioner
in-memory-channel.yaml Just the in-memory ChannelProvisioner
kafka.yaml Just the Kafka ChannelProvisioner
natss.yaml Just the NATS Streaming ChannelProvisioner
release.yaml Core components bundled with the in-memory ChannelProvisioner

Eventing

Action Required

  • Optional: manually delete the unused eventing-controller-admin ClusterRoleBinding. #986
  • Any existing Triggers with Any values will need to be updated to the empty string instead. #985

New Features

  • Introduce Broker and Trigger as event delivery mechanisms. See docs here and here for more info. #788
  • A new channel-default-controller will monitor every channel. It will check if ClusterChannelProvisioner is installed and that the channel-provisioner-specific controller monitors the channel. If provisioner is not installed or corrupt and no controller monitors this channel, then the ProvisionerInstalled condition in status will be set to False and the channel will be marked as not ready. If the provisoner is installed and monitoring the channel then the ProvisionerInstalled condition in status will be set to True. #843
  • Kafka Channels can configure their replication factor with the ReplicationFactor argument. #869
  • Added consumer_mode config option in config map kafka-channel-controller-config, default value is multiplex which retains existing behavior, if you set consumer_mode to be partitions, it creates a go channel per partition for the consumer when dispatching the events to your service. #879
  • Add DEFAULT_NATSS_URL and DEFAULT_CLUSTER_ID configuration to NATS provisioner #881
  • Introduce a new aggregated ClusterRole for Addressable. #1013
  • CRDs are now labelled with knative.dev/crd-install=true to allow installing without race conditions or kubectl errors. #1007

Bug Fixes

  • NATSS channels now recover from connection loss. #796
  • Changed old behavior for kafka channel that existing kafka consumers are stopped and resubscribed when fanout configs are updated, now kafka consumers are reused until corresponding subscription gets deleted.
    #880
  • Add 1GiB memory limit to controller and webhook deployments #921
  • Send Trigger responses back into Broker. #917
  • Support tracing through Broker and Trigger, including replies. #936 #949
  • Expose metrics from the Broker ingress via a Prometheus endpoint. #937
  • An Event can flow through a Broker via Trigger replies only 255 times before getting dropped. #951 #1016
  • RBAC: Webhook now runs as eventing-webhook service account. Controller now runs as eventing-controller service account. Controller and webhook run with less privileges (was using cluster-admin) #872
  • RBAC: knative-eventing-webhook does not have create rule anymore for eventing.knative.dev resources. #987
  • Switch from using subscriber.dnsName to subscriber.uri. subscriber.dnsName will be removed in the next release. #994

Knative Eventing release v0.4.1

12 Mar 09:46
Compare
Choose a tag to compare
Pre-release
Artifact Description
eventing.yaml Just the core knative/eventing components without Sources or ChannelProvisioners
gcp-pubsub.yaml Just the GCP PubSub ChannelProvisioner
in-memory-channel.yaml Just the in-memory ChannelProvisioner
kafka.yaml Just the Kafka ChannelProvisioner
natss.yaml Just the NATS Streaming ChannelProvisioner
release.yaml Core components bundled with the in-memory ChannelProvisioner

Eventing

  • Created a new in-memory Channel which buffers events and decouples
    sender and receiver. The previous in-memory-channel implementation
    was blocking and senders would block until the event had been
    delivered to the destination. (Thanks to @sbezverk)
  • Add NATS ClusterChannelProvisioner. (Thanks to @radufa)
  • Separated several ClusterChannelProvisioners from the core. (Thanks to @matzew)
  • Add a Knative-message-history attribute recording the channels
    traversed by the event
    (#688)
  • Several eventing resources (ClusterChannelProvisioner, Subscription,
    in-memory, GCP PubSub channels) now emit corev1.Events to improve
    debugging (#746).
  • Cleanup of Conditions to hide Severity=Error when conditions are
    ready.
  • Improved cleanup of subscription and reply.
  • Fixes to ensure Istio injection in the knative-eventing namespace.

Eventing Sources

  • Updated CloudEvents library to better handle both v0.1 and v0.2.

#Knative Eventing release v0.4.0

20 Feb 18:24
Compare
Choose a tag to compare
Pre-release
Artifact Description
eventing.yaml Just the core knative/eventing components without Sources or ChannelProvisioners
gcp-pubsub.yaml Just the GCP PubSub ChannelProvisioner
in-memory-channel.yaml Just the in-memory ChannelProvisioner
kafka.yaml Just the Kafka ChannelProvisioner
natss.yaml Just the NATS Streaming ChannelProvisioner
release.yaml Core components bundled with the in-memory ChannelProvisioner

Eventing

  • Created a new in-memory Channel which buffers events and decouples
    sender and receiver. The previous in-memory-channel implementation
    was blocking and senders would block until the event had been
    delivered to the destination. (Thanks to @sbezverk)
  • Add NATS ClusterChannelProvisioner. (Thanks to @radufa)
  • Separated several ClusterChannelProvisioners from the core. (Thanks to @matzew)
  • Add a Knative-message-history attribute recording the channels
    traversed by the event
    (#688)
  • Several eventing resources (ClusterChannelProvisioner, Subscription,
    in-memory, GCP PubSub channels) now emit corev1.Events to improve
    debugging (#746).
  • Cleanup of Conditions to hide Severity=Error when conditions are
    ready.
  • Improved cleanup of subscription and reply.
  • Fixes to ensure Istio injection in the knative-eventing namespace.

Eventing Sources

  • Updated CloudEvents library to better handle both v0.1 and v0.2.

Knative Eventing release v0.3.0

10 Jan 07:35
Compare
Choose a tag to compare
Pre-release
Artifact Description
eventing.yaml Just the core knative/eventing components without Sources or ChannelProvisioners
in-memory-channel.yaml Just the in-memory ChannelProvisioner
kafka.yaml Just the Kafka ChannelProvisioner
release.yaml Core components bundled with the in-memory ChannelProvisioner

Upgrade notes

  • Knative Eventing now requires Kubernetes 1.11, and provides the
    /status subresource. This causes metadata.generation to behave
    like other Kubernetes objects.
  • All conditions in Source statuses now have a Severity field
    indicating if the condition is terminal or non-terminal. See
    knative/serving#2394 (comment).

Eventing core

  • Channels now create VirtualServices using generateName, which should
    prevent collisions with similarly-named objects from other types
    (such as Knative Services).
  • Subscriptions now work with Knative 0.1 and 0.2.0 Services.
  • Defined and documented the ability to select a default
    ClusterChannelProvisioner if one is not specified by the Channel.
  • The legacy pre-0.2 routing resources have been removed.

In-memory channel

  • No substantial changes.

Kafka channel

  • Improved cleanup of finalizers to prevent Kafka channels from
    remaining stuck forever if provisioning fails.

Knative Eventing release v0.2.1

28 Nov 21:52
Compare
Choose a tag to compare
Pre-release
Artifact Description
eventing.yaml Just the core knative/eventing components without sources or channel provisioners
in-memory-channel.yaml Just the in-memory channel provisioner
kafka.yaml Just the Kafka channel provisioner
release.yaml Core components bundled with the in-memory-channel provisioner

Upgrade notes

  • On upgrade from 0.2.0 there will be <10 seconds of unavailability for all in-memory channels. During this time all messages sent to in-memory channels will be lost. The in-memory channel has no durability or reliability guarantees and should only be used for testing or ephemeral messaging.

Eventing core

  • Subscriptions may only subscribe to Channels in the same namespace.
  • Subscriptions can be deleted after their subscribed Channel is deleted.
  • Channels without a specified provisioner will have a default provisioner applied. The default provisioner is specified in the knative-eventing/default-channel-webhook ConfigMap and defaults to in-memory-channel.
  • The ClusterChannelProvisioner is now part of the provisioner CRD category.

In-memory channel

  • In-memory channel is now the default for Channels that don't specify a provisioner.
  • Renamed channel dispatcher k8s service from in-memory-channel-clusterbus.svc.cluster.local to in-memory-channel-dispatcher.svc.cluster.local.

Kafka channel

Initial release.