The latest release of Knative Eventing, version 0.8 focuses on improving Eventing features. This article thoroughly explains new features to help you quickly understand version 0.8.
Let’s deep dive into the key new features of the Knative Eventing version 0.8.
New Custom Resource Definitions: Choice
Similar to sequence, Choice defines a function running process. It allows processing events by using a function that is selected based on conditions. The following snippet defines Choice more specifically.
Let’s take a quick look at the key elements in the preceding snippet:
- ChannelTemplate: sets the channel to be used.
- Cases: indicates the selection conditions.
- Filter: indicates the filtering conditions. In this case, events are filtered by service.
- Subscriber: indicates the service that is sent at last after the events are filtered.
When underlying implementation is not required, it is possible to create a channel as the default channel.
Create a default channel using the commands below.
Note that the channel is set in
messaging.knative.dev/v1alpha1. The original channel based on the Provisioner model in
eventing.knative.dev will be abandoned in version 0.9.
Control the setting of the default channel by using ConfigMap as shown below.
This case specifies two default channels:
- clusterDefault: (InMemoryChannel) Default channel at the cluster level.
- namespaceDefaults: (KafkaChannel) Default channel at the namespace level.
Additionally, in case of no channel specification, both Brokers and Sequences support the default channel.
After upgrade, the current version supports CloudEvents since version 0.3.
Following are the key monitoring enhancement capabilities:
- Webhook supports the statistical feature.
- Grafana and Prometheus support the collection of Eventing metrics.
- Metric measurement is added to Broker Ingress.
Resource Name Customization
In the original Broker and Trigger, channels and subscriptions are created by using
GenerateName. Since their names are automatically generated, if the listers data is not up-to-date, the channels or subscriptions may generate multiple times.
In addition, specific names may be used for ApiServerSource, ContainerSource, and original provisioner-based channels.
In addition to the preceding features, there are a few more feature upgrades, such as:
- CronJobSource and ApiServerSource support the registration of event types.
- Cloud Event attributes are filtered in the trigger filter.
Other Major Changes
The following are other essential changes in the latest release of Knative Eventing:
- The path
github.com/knative/pkgis updated to
knative.dev/pkg. Note that this change may affect the setting of Knative dependency packages used during code development.
- Broker’s Ingress Handler and metrics are moved to the pkg folder.
- All resource objects in Eventing are tagged with
eventing.knative.dev/releasebased on the policy in Serving. It is possible to set the value to the release version or devel.
- Kafka channels are transferred to knative-eventing-contrib.
- In Triggers, the
sourceAndTypeattribute will be abandoned soon, and an Attributes field will be added. This field supports both standard CloudEvents attributes and extended attributes.
This article summarizes how Knative Eventing v0.8 focuses on feature improvement. Upgrades indirectly reflect that the Knative Eventing features are becoming increasingly mature. We believe that subsequent version iterations will continue to focus on feature improvement and optimization.
We look forward to hear your thoughts and queries on Knative.