Releases: knative/eventing
Releases · knative/eventing
Knative Eventing release v0.8.0
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.
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 Broker
s/Trigger
s 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
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.
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
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
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.
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
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
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
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
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
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
Kafka channel
- Improved cleanup of finalizers to prevent Kafka channels from
remaining stuck forever if provisioning fails.
Knative Eventing release v0.2.1
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.