Knative Event Mesh Backstage Plugin
This page describes how to use the Knative Event Mesh Backstage plugin to manage and discover Knative Eventing resources in Backstage.
The Knative Event Mesh plugin is a Backstage plugin that allows you to view and manage Knative Eventing resources. It communicates with a backend service that runs in the Kubernetes cluster and interacts with the Kubernetes API server.
Backstage is an open-source platform for building developer portals. It provides a unified way to manage and visualize the different resources that developers use in their daily work. While Backstage is not intended to replace Kubernetes dashboards, it can partially manage Knative resources and provide insights relevant to developers.
The Knative Event Mesh plugin is a Developer Preview feature. Developer Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process. For more information about the support scope of Red Hat Developer Preview features, see access.redhat.com/support/offerings/devpreview/. |
How it works
The plugin is the frontend component of Backstage, responsible for rendering the UI and communicating with the backend. The backend service retrieves data from the Kubernetes API server and sends it to the frontend for display.
This plugin leverages Backstage’s entity provider and entity processor concepts:
-
The entity provider fetches resources from the backend.
-
The entity processor processes these resources and makes them available to the Backstage frontend.
Instead of directly showing raw Kubernetes resources, the plugin provides a more user-friendly representation of Knative Eventing resources. Certain fields are excluded, combined, or transformed for better usability.
Features
The plugin shows the following Knative resources:
-
Brokers: Represented as Backstage
Component
entities. -
EventTypes: Represented as Backstage
API
entities. -
Trigger subscribers: Shown as Backstage
Component
entities if:-
They are registered in Backstage.
-
They include the
backstage.io/kubernetes-id
annotation with the Kubernetes resource name.
-
Triggers pointing to generic Addressable
endpoints or URLs are not displayed unless explicitly registered in Backstage.
Backstage’s graph capabilities can visualize relationships between Brokers, EventTypes, and Triggers, making it easier to understand how resources are interconnected.
Security
The plugin requires the administrator to configure the backend URL and a token to authenticate with the Kubernetes API server. Similar to the Backstage Kubernetes plugin, the token is stored in Backstage’s configuration and passed with each request to the backend.
catalog:
providers:
knativeEventMesh:
dev:
token: '${KNATIVE_EVENT_MESH_TOKEN}'
baseUrl: "http://eventmesh-backend.knative-eventing.svc:8080"
schedule: # optional; same options as in TaskScheduleDefinition
frequency: { minutes: 1 }
timeout: { minutes: 1 }
The token
is retrieved from the KNATIVE_EVENT_MESH_TOKEN
environment variable. For information on creating a ServiceAccount
, ClusterRole
, ClusterRoleBinding
, and the corresponding token, see the plugin installation documentation.
Usage
The plugin displays all Broker
and EventType
resources in the cluster. The subscribers of Trigger
resources are displayed if they meet the requirements specified above.
-
Brokers: Shown as Backstage
Component
entities. -
EventTypes: Shown as Backstage
API
entities. -
Trigger subscribers: Shown as
Component
entities if they are registered in Backstage and include thebackstage.io/kubernetes-id
annotation.
For more information on how to install and configure this plugin, refer to the installation guide.