What’s New in Knative Eventing V.0.8

Image for post
Image for post

By Yuanyi

Overview

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.

New Features

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.

apiVersion: messaging.knative.dev/v1alpha1
kind: Choice
metadata:
name: check-assignment
spec:
channelTemplate:
apiVersion: messaging.knative.dev/v1alpha1
kind: InMemoryChannel
cases:
- filter:
ref:
apiVersion: serving.knative.dev/v1alpha1
kind: Service
name: data-assigned
subscriber:
ref:
apiVersion: serving.knative.dev/v1alpha1
kind: Service
name: send-notice

Let’s take a quick look at the key elements in the preceding snippet:

  • ChannelTemplate: sets the channel to be used.

Default Channel

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.

apiVersion: messaging.knative.dev/v1alpha1
kind: Channel
metadata:
name: default-channel
namespace: default

Control the setting of the default channel by using ConfigMap as shown below.

apiVersion: v1
kind: ConfigMap
metadata:
name: default-ch-webhook
namespace: knative-eventing
data:
default-ch-config: |
clusterDefault:
apiVersion: messaging.knative.dev/v1alpha1
kind: InMemoryChannel
namespaceDefaults:
some-namespace:
apiVersion: messaging.knative.dev/v1alpha1
kind: KafkaChannel
spec:
numPartitions: 2
replicationFactor: 1

This case specifies two default channels:

  • clusterDefault: (InMemoryChannel) Default channel at the cluster level.

Additionally, in case of no channel specification, both Brokers and Sequences support the default channel.

CloudEvents

After upgrade, the current version supports CloudEvents since version 0.3.

Enhanced Monitoring

Following are the key monitoring enhancement capabilities:

  • Webhook supports the statistical feature.

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.

Other Features

In addition to the preceding features, there are a few more feature upgrades, such as:

  • CronJobSource and ApiServerSource support the registration of event types.

Other Major Changes

The following are other essential changes in the latest release of Knative Eventing:

  • The path github.com/knative/pkg is updated to knative.dev/pkg. Note that this change may affect the setting of Knative dependency packages used during code development.

Summary

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.

Original Source:

Written by

Follow me to keep abreast with the latest technology news, industry insights, and developer trends.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store