What’s New in Knative Eventing V.0.8

By Yuanyi

Overview

New Features

New Custom Resource Definitions: Choice

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.
  • 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.

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.
  • namespaceDefaults: (KafkaChannel) Default channel at the namespace level.

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

CloudEvents

Enhanced Monitoring

  • 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 addition, specific names may be used for ApiServerSource, ContainerSource, and original provisioner-based channels.

Other Features

  • CronJobSource and ApiServerSource support the registration of event types.
  • Cloud Event attributes are filtered in the trigger filter.

Other Major Changes

  • 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.
  • Broker’s Ingress Handler and metrics are moved to the pkg folder.
  • All resource objects in Eventing are tagged with eventing.knative.dev/release based 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 sourceAndType attribute will be abandoned soon, and an Attributes field will be added. This field supports both standard CloudEvents attributes and extended attributes.

Summary

We look forward to hear your thoughts and queries on Knative.

Original Source:

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