×
Community Blog What's New in Knative Eventing V.0.8

What's New in Knative Eventing V.0.8

This article pivots around the Knative Eventing version 0.8. It explains how the latest version, v0.8 focuses on feature improvement and gives a detailed account of the new features.

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

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

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

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.

0 0 0
Share on

Alibaba Container Service

164 posts | 29 followers

You may also like

Comments

Alibaba Container Service

164 posts | 29 followers

Related Products