Skip to content

Event sources

An event source is a Kubernetes custom resource (CR), created by a developer or cluster administrator, that acts as a link between an event producer and an event sink. A sink can be a k8s service, including Knative Services, a Channel, or a Broker that receives events from an event source.

Event sources are created by instantiating a CR from a Source object. The Source object defines the arguments and parameters needed to instantiate a CR.

All Sources are part of the sources category.

You can list existing event sources on your cluster by entering the kn command:

kn source list

You can list existing event sources on your cluster by entering the command:

kubectl get sources

Note

Event Sources that import events from other messaging technologies such as Kafka or RabbitMQ are not responsible for setting Optional Attributes such as the datacontenttype. This is a responsibility of the original event producer; the Source just appends attributes if they exist.

Knative Sources

Name Status Maintainer Description
APIServerSource Stable Knative Brings Kubernetes API server events into Knative. The APIServerSource fires a new event each time a Kubernetes resource is created, updated or deleted.
Apache CouchDB Alpha Knative Brings Apache CouchDB messages into Knative.
Apache Kafka Stable Knative Brings Apache Kafka messages into Knative. The KafkaSource reads events from an Apache Kafka Cluster, and passes these events to a sink so that they can be consumed. See the Kafka Source example for more details.
CephSource Beta Knative The Ceph source converts bucket notifications from Ceph format into CloudEvents format, and inject them into Knative. Conversion logic follow the one described for AWS S3 bucket notifications.
ContainerSource Stable Knative The ContainerSource instantiates container image(s) that can generate events until the ContainerSource is deleted. This may be used, for example, to poll an FTP server for new files or generate events at a set time interval. Given a spec.template with at least a container image specified, the ContainerSource keeps a Pod running with the specified image(s). K_SINK (destination address) and KE_CE_OVERRIDES (JSON CloudEvents attributes) environment variables are injected into the running image(s). It is used by multiple other Sources as underlying infrastructure. Refer to the Container Source example for more details.
GitHub Beta Knative Registers for events of the specified types on the specified GitHub organization or repository, and brings those events into Knative. The GitHubSource fires a new event for selected GitHub event types. See the GitHub Source example for more details.
GitLab Beta Knative Registers for events of the specified types on the specified GitLab repository, and brings those events into Knative. The GitLabSource creates a webhooks for specified event types, listens for incoming events, and passes them to a consumer. See the GitLab Source example for more details.
KogitoSource Alpha Knative An implementation of the Kogito Runtime custom resource managed by the Kogito Operator.
PingSource Stable Knative Produces events with a fixed payload on a specified Cron schedule. See the Ping Source example for more details.
RabbitMQ Stable Knative Brings RabbitMQ messages into Knative.
RedisSource Beta Knative Brings Redis Stream into Knative.
SinkBinding Stable Knative The SinkBinding can be used to author new event sources using any of the familiar compute abstractions that Kubernetes makes available (e.g. Deployment, Job, DaemonSet, StatefulSet), or Knative abstractions (e.g. Service, Configuration). SinkBinding provides a framework for injecting K_SINK (destination address) and K_CE_OVERRIDES (JSON cloudevents attributes) environment variables into any Kubernetes resource which has a spec.template that looks like a Pod (aka PodSpecable). See the SinkBinding example for more details.

Third-Party Sources

Name Status Maintainer Description
Amazon CloudWatch Stable TriggerMesh Collects metrics from Amazon CloudWatch. (installation) (example)
Amazon CloudWatch Logs Stable TriggerMesh Subscribes to log events from an Amazon CloudWatch Logs stream. (installation) (example)
AWS CodeCommit Stable TriggerMesh Registers for events emitted by an AWS CodeCommit source code repository. (installation) (example)
Amazon Cognito Identity Stable TriggerMesh Registers for events from Amazon Cognito identity pools. (installation) (example)
Amazon Cognito User Stable TriggerMesh Registers for events from Amazon Cognito user pools. (installation) (example)
Amazon DynamoDB Stable TriggerMesh Reads records from an Amazon DynamoDB stream. (installation) (example)
Amazon Kinesis Stable TriggerMesh Reads records from an Amazon Kinesis stream. (installation) (example)
Amazon S3 Stable TriggerMesh Subscribes to event notifications from an Amazon S3 bucket. (installation) (example)
Amazon SNS Stable TriggerMesh Subscribes to messages from an Amazon SNS topic. (installation) (example)
Amazon SQS Stable TriggerMesh Consumes messages from an Amazon SQS queue. (installation) (example)
Apache Camel Stable Apache Software Foundation Enables use of Apache Camel components for pushing events into Knative. Camel sources are now provided via Kamelets as part of the Apache Camel K project.
Azure Activity Logs Stable TriggerMesh Capture activity logs from Azure Activity Logs. (installation) (example)
Azure Blob Storage Stable TriggerMesh Subscribes to events from an Azure Blob Storage account. (installation) (example)
Azure Event Grid Stable TriggerMesh Retrieves events from Azure Event Grid. (installation) (example)
Azure Event Hubs Stable TriggerMesh Consumes events from Azure Event Hubs. (installation) (example)
Azure IoT Hub Stable TriggerMesh Consumes event from Azure IoT Hub. (installation) (example)
Azure Queue Storage Stable TriggerMesh Retrieves messages from Azure Queue Storage. (installation) (example)
Azure Service Bus Queues Stable TriggerMesh Consumes messages from an Azure Service Bus queue. (installation) (example)
Azure Service Bus Topics Stable TriggerMesh Subscribes to messages from an Azure Service Bus topic. (installation) (example)
Debezium Alpha Debezium Consume database changes as CloudEvents in Knative. (knative configuration)
Direktiv Alpha Direktiv Receive events from Direktiv.
DockerHubSource Alpha None Retrieves events from Docker Hub Webhooks and transforms them into CloudEvents for consumption in Knative.
Google Cloud Audit Logs Stable TriggerMesh Captures audit logs from Google Cloud Audit Logs. (installation) (example)
Google Cloud Billing Stable TriggerMesh Captures budget notifications from Google Cloud Billing. (installation) (example)
Google Cloud Pub/Sub Stable TriggerMesh Subscribes to messages from a Google Cloud Pub/Sub topic. (installation) (example)
Google Cloud Source Repositories Stable TriggerMesh Consumes events from Google Cloud Source Repositories. (installation) (example)
Google Cloud Storage Stable TriggerMesh Captures change notifications from a Google Cloud Storage bucket. (installation) (example)
HTTP Poller Stable TriggerMesh Periodically pulls events from an HTTP/S URL. (installation) (example)
Oracle Cloud Infrastructure Stable TriggerMesh Retrieves metrics from Oracle Cloud Infrastructure. (installation) (example)
Salesforce Stable TriggerMesh Consumes events from a Salesforce channel. (installation) (example)
Slack Stable TriggerMesh Subscribes to events from Slack. (installation) (example)
Twilio Supported TriggerMesh Receive events from Twilio. (installation) (example)
VMware Alpha VMware Brings vSphere events into Knative.
Webhook Stable TriggerMesh Ingest events from a webhook using HTTP. (installation) (example)
Zendesk Stable TriggerMesh Subscribes to events from Zendesk. (installation) (example)

Additional resources

We use analytics and cookies to understand site traffic. Information about your use of our site is shared with Google for that purpose. Learn more.

× OK