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.

knkubectl

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

  1. kn source list

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

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

NameAPI VersionMaintainerDescription
APIServerSourcev1KnativeBrings Kubernetes API server events into Knative. The APIServerSource fires a new event each time a Kubernetes resource is created, updated or deleted.
Apache CamelN/AApache Software FoundationEnables 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.
Apache CouchDBv1alpha1KnativeBrings Apache CouchDB messages into Knative.
Apache Kafkav1beta1KnativeBrings 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.
ContainerSourcev1KnativeThe 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.
GitHubv1alpha1KnativeRegisters 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.
GitLabv1alpha1KnativeRegisters 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.
HeartbeatsN/AKnativeUses an in-memory timer to produce events at the specified interval.
KogitoSourcev1alpha1KnativeAn implementation of the Kogito Runtime custom resource managed by the Kogito Operator.
PingSourcev1beta2KnativeProduces events with a fixed payload on a specified Cron schedule. See the Ping Source example for more details.
RabbitMQActive developmentKnativeBrings RabbitMQ messages into Knative.
SinkBindingv1KnativeThe 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.
WebSocketN/AKnativeOpens a WebSocket to the specified source and packages each received message as a Knative event.

Third-Party Sources

NameAPI VersionMaintainerDescription
Amazon CloudWatchSupportedTriggerMeshCollects metrics from Amazon CloudWatch. (installation) (example)
Amazon CloudWatch LogsSupportedTriggerMeshSubscribes to log events from an Amazon CloudWatch Logs stream. (installation) (example)
AWS CodeCommitSupportedTriggerMeshRegisters for events emitted by an AWS CodeCommit source code repository. (installation) (example)
Amazon Cognito IdentitySupportedTriggerMeshRegisters for events from Amazon Cognito identity pools. (installation) (example)
Amazon Cognito UserSupportedTriggerMeshRegisters for events from Amazon Cognito user pools. (installation) (example)
Amazon DynamoDBSupportedTriggerMeshReads records from an Amazon DynamoDB stream. (installation) (example)
Amazon KinesisSupportedTriggerMeshReads records from an Amazon Kinesis stream. (installation) (example)
Amazon RDS Performance InsightsSupportedTriggerMeshSubscribes to metrics from Amazon RDS Performance Insights. (installation) (example)
Amazon S3SupportedTriggerMeshSubscribes to event notifications from an Amazon S3 bucket. (installation) (example)
Amazon SNSSupportedTriggerMeshSubscribes to messages from an Amazon SNS topic. (installation) (example)
Amazon SQSSupportedTriggerMeshConsumes messages from an Amazon SQS queue. (installation) (example)
Auto Container SourceProof of ConceptNoneAutoContainerSource is a controller that allows the Source CRDs without needing a controller. It notices CRDs with a specific label and starts controlling resources of that type. It utilizes Container Source as underlying infrastructure.
Azure Activity LogsSupportedTriggerMeshCapture activity logs from Azure Activity Logs. (installation) (example)
Azure Blob StorageSupportedTriggerMeshSubscribes to events from an Azure Blob Storage account. (installation) (example)
Azure Event GridSupportedTriggerMeshRetrieves events from Azure Event Grid. (installation) (example)
Azure Event HubsSupportedTriggerMeshConsumes events from Azure Event Hubs. (installation) (example)
Azure IoT HubSupportedTriggerMeshConsumes event from Azure IoT Hub. (installation) (example)
Azure Queue StorageSupportedTriggerMeshRetrieves messages from Azure Queue Storage. (installation) (example)
Azure Service Bus QueuesSupportedTriggerMeshConsumes messages from an Azure Service Bus queue. (installation) (example)
Azure Service Bus TopicsSupportedTriggerMeshSubscribes to messages from an Azure Service Bus topic. (installation) (example)
BitBucketProof of ConceptNoneRegisters for events of the specified types on the specified BitBucket organization/repository. Brings those events into Knative.
CloudAuditLogsSourcev1GoogleRegisters for events of the specified types on the specified Google Cloud Audit Logs. Brings those events into Knative. Refer to the CloudAuditLogsSource example for more details.
CloudPubSubSourcev1GoogleBrings Cloud Pub/Sub messages into Knative. The CloudPubSubSource fires a new event each time a message is published on a Google Cloud Platform PubSub topic. See the CloudPubSubSource example for more details.
CloudSchedulerSourcev1GoogleCreate, update, and delete Google Cloud Scheduler Jobs. When those jobs are triggered, receive the event inside Knative. See the CloudSchedulerSource example for further details.
CloudStorageSourcev1GoogleRegisters for events of the specified types on the specified Google Cloud Storage bucket and optional object prefix. Brings those events into Knative. See the CloudStorageSource example.
DirektivProof of conceptDirektivReceive events from Direktiv.
DockerHubSourcev1alpha1NoneRetrieves events from Docker Hub Webhooks and transforms them into CloudEvents for consumption in Knative.
FTP / SFTPProof of conceptNoneWatches for files being uploaded into a FTP/SFTP and generates events for those.
GitHub Issue CommentsProof of ConceptNonePolls a specific GitHub issue for new comments.
Google Cloud Audit LogsSupportedTriggerMeshCaptures audit logs from Google Cloud Audit Logs. (installation) (example)
Google Cloud BillingSupportedTriggerMeshCaptures budget notifications from Google Cloud Billing. (installation) (example)
Google Cloud IoTSupportedTriggerMeshSubscribes to messages from a Google Cloud IoT registry. (installation) (example)
Google Cloud Pub/SubSupportedTriggerMeshSubscribes to messages from a Google Cloud Pub/Sub topic. (installation) (example)
Google Cloud Source RepositoriesSupportedTriggerMeshConsumes events from Google Cloud Source Repositories. (installation) (example)
Google Cloud StorageSupportedTriggerMeshCaptures change notifications from a Google Cloud Storage bucket. (installation) (example)
HTTP PollerSupportedTriggerMeshPeriodically pulls events from an HTTP/S URL. (installation) (example)
HeartbeatProof of ConceptNoneUses an in-memory timer to produce events as the specified interval. Uses AutoContainerSource for underlying infrastructure.
K8sProof of ConceptNoneBrings Kubernetes cluster events into Knative. Uses AutoContainerSource for underlying infrastructure.
KonnekActive DevelopmentNoneRetrieves events from cloud platforms (like AWS and GCP) and transforms them into CloudEvents for consumption in Knative.
Oracle Cloud InfrastructureSupportedTriggerMeshRetrieves metrics from Oracle Cloud Infrastructure. (installation) (example)
RedisSourcev1alpha1NoneBrings Redis Stream into Knative.
SalesforceSupportedTriggerMeshConsumes events from a Salesforce channel. (installation) (example)
SlackSupportedTriggerMeshSubscribes to events from Slack. (installation) (example)
SNMPProof of conceptDirektivReceive events via SNMP.
TwilioSupportedTriggerMeshReceive events from Twilio. (installation) (example)
VMwareActive DevelopmentVMwareBrings vSphere events into Knative.
WebhookSupportedTriggerMeshIngest events from a webhook using HTTP. (installation) (example)
ZendeskSupportedTriggerMeshSubscribes to events from Zendesk. (installation) (example)

Additional resources