revamp eventing sources page (#2680)

* WIP: revamp eventing sources page

* various improvements

* fix links

* make sources a branch bundle and don't use readfile to include pingsource

* fix links

* changes after review
This commit is contained in:
Lionel Villard 2020-07-28 11:12:59 -04:00 committed by GitHub
parent 35e5cdb307
commit a0f607359b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 185 additions and 466 deletions

View File

@ -1,86 +1,43 @@
<!-- An event source is a resource object that acts as a link between an event producer and an event _sink_. A sink can be a Knative Service, Channel, or Broker that receives events from an event source.
This is a generated file and should not be changed manually. All changes should follow the
procedure:
1. Update the information in [`sources.yaml`](./sources.yaml). This page provides an index of the available source resource types as well as
links to their documentation.
2. Run the generator tool: ## Knative Sources
```shell
go run docs/eventing/sources/generator/main.go
```
-->
Event Sources are Kubernetes Custom Resources which provide a mechanism for registering interest in | Name | API Version | Maintainer | Description |
a class of events from a particular software system. Since different event sources may be described | -- | -- | -- | -- |
by different Custom Resources, this page provides an index of the available source resource types as | [APIServerSource](https://github.com/knative/eventing/blob/master/pkg/apis/sources/v1alpha1/apiserver_types.go) | v1alpha2 | Knative | Brings Kubernetes API server events into Knative. |
well as links to installation instructions. | [AWS SQS](https://github.com/knative/eventing-contrib/blob/master/awssqs/pkg/apis/sources/v1alpha1/aws_sqs_types.go) | v1alpha1 | Knative | Brings [AWS Simple Queue Service](https://aws.amazon.com/sqs/) messages into Knative. |
| [Apache Camel](https://github.com/knative/eventing-contrib/blob/master/camel/source/pkg/apis/sources/v1alpha1/camelsource_types.go) | v1alpha1 | Knative | Allows to use [Apache Camel](https://github.com/apache/camel) components for pushing events into Knative. |
| [Apache CouchDB](https://github.com/knative/eventing-contrib/blob/master/couchdb) | v1alpha1 | Knative | Brings [Apache CouchDB](https://couchdb.apache.org/) messages into Knative. |
| [Apache Kafka](https://github.com/knative/eventing-contrib/blob/master/kafka/source/pkg/apis/sources/v1alpha1/kafka_types.go) | v1beta1 | Knative | Brings [Apache Kafka](https://kafka.apache.org/) messages into Knative. |
| [Container Source](https://github.com/knative/eventing/blob/master/pkg/apis/sources/v1beta1/container_types.go) | v1beta1 | Knative | Given a `spec.template` with at least a container image specified, ContainerSource will keep 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. |
| [GitHub](https://github.com/knative/eventing-contrib/blob/master/github/pkg/apis/sources/v1alpha1/githubsource_types.go) | v1alpha1 | Knative | Registers for events of the specified types on the specified GitHub organization/repository. Brings those events into Knative. |
| [GitLab](https://github.com/knative/eventing-contrib/blob/master/gitlab/pkg/apis/sources/v1alpha1/gitlabsource_types.go) | v1alpha1 | Knative | Registers for events of the specified types on the specified GitLab repository. Brings those events into Knative. |
| [Heartbeats](https://github.com/knative/eventing-contrib/tree/master/cmd/heartbeats) | N/A | Knative | Uses an in-memory timer to produce events at the specified interval. |
| [PingSource](./pingsource.md) | v1alpha2 | Knative | Produces events with a fixed payload on a specified cron schedule. |
| [SinkBinding](https://knative.dev/docs/eventing/samples/sinkbinding/) | v1alpha2 | Knative | 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). |
| [WebSocket](https://github.com/knative/eventing-contrib/tree/master/cmd/websocketsource) | N/A | Knative | Opens a WebSocket to the specified source and packages each received message as a Knative event. |
This is a non-exhaustive list of Event sources for Knative. ## Third-Party Sources
| Name | API Version | Maintainer | Description
### Inclusion in this list is not an endorsement, nor does it imply any level of support. |--|--|--|--|
[Auto Container Source](https://github.com/Harwayne/auto-container-source) | Proof of Concept | None | AutoContainerSource 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.
[AWS CodeCommit](https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awscodecommitsource/README.md) | Supported | TriggerMesh | Registers for events of the specified types on the specified AWS CodeCommit repository. Brings those events into Knative.
## Sources [AWS Cognito](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awscognitoidentitysource/README.md) | Supported | TriggerMesh | Registers for AWS Cognito events. Brings those events into Knative.
[AWS DynamoDB](https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awsdynamodbsource/README.md) | Supported | TriggerMesh | Registers for events of on the specified AWS DynamoDB table. Brings those events into Knative.
These are sources that are installed as `CRD`s. [AWS Kinesis](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awskinesissource/README.md) | Supported | TriggerMesh | Registers for events on the specified AWS Kinesis stream. Brings those events into Knative.
[AWS SNS](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awssnssource) | Supported | TriggerMesh | Registers for events of the specified AWS SNS endpoint. Brings those events into Knative.
Name | Status | Support | Description [AWS SQS](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awssqssource/README.md) | Supported | TriggerMesh | Registers for events of the specified AWS SQS queue. Brings those events into Knative.
--- | --- | --- | ---
[AWS SQS](https://github.com/knative/eventing-contrib/blob/master/awssqs/pkg/apis/sources/v1alpha1/aws_sqs_types.go) | Proof of Concept | None | Brings [AWS Simple Queue Service](https://aws.amazon.com/sqs/) messages into Knative.
[Apache Camel](https://github.com/knative/eventing-contrib/blob/master/camel/source/pkg/apis/sources/v1alpha1/camelsource_types.go) | Proof of Concept | None | Allows to use [Apache Camel](https://github.com/apache/camel) components for pushing events into Knative.
[Apache CouchDB](https://github.com/knative/eventing-contrib/tree/{{< branch >}}/couchdb) | Active Development | None | Brings [Apache CouchDB](https://couchdb.apache.org/) messages into Knative.
[Apache Kafka](https://github.com/knative/eventing-contrib/blob/master/kafka/source/pkg/apis/sources/v1alpha1/kafka_types.go) | Proof of Concept | None | Brings [Apache Kafka](https://kafka.apache.org/) messages into Knative.
[BitBucket](https://github.com/nachocano/bitbucket-source) | Proof of Concept | None | Registers for events of the specified types on the specified BitBucket organization/repository. Brings those events into Knative. [BitBucket](https://github.com/nachocano/bitbucket-source) | Proof of Concept | None | Registers for events of the specified types on the specified BitBucket organization/repository. Brings those events into Knative.
[CloudAuditLogsSource](https://github.com/google/knative-gcp/blob/master/docs/examples/cloudauditlogssource/README.md) | Active Development | None | Registers for events of the specified types on the specified [Google Cloud Audit Logs](https://cloud.google.com/logging/docs/audit/). Brings those events into Knative. [CloudAuditLogsSource](https://github.com/google/knative-gcp/blob/master/docs/examples/cloudauditlogssource/README.md) | Active Development | None | Registers for events of the specified types on the specified [Google Cloud Audit Logs](https://cloud.google.com/logging/docs/audit/). Brings those events into Knative.
[CloudPubSubSource](https://github.com/google/knative-gcp/blob/master/docs/examples/cloudpubsubsource/README.md) | Active Development | None | Brings [Cloud Pub/Sub](https://cloud.google.com/pubsub/) messages into Knative. [CloudPubSubSource](https://github.com/google/knative-gcp/blob/master/docs/examples/cloudpubsubsource/README.md) | Active Development | None | Brings [Cloud Pub/Sub](https://cloud.google.com/pubsub/) messages into Knative.
[CloudSchedulerSource](https://github.com/google/knative-gcp/blob/master/docs/examples/cloudschedulersource/README.md) | Active Development | None | Create, update, and delete [Google Cloud Scheduler](https://cloud.google.com/scheduler/) Jobs. When those jobs are triggered, receive the event inside Knative. [CloudSchedulerSource](https://github.com/google/knative-gcp/blob/master/docs/examples/cloudschedulersource/README.md) | Active Development | None | Create, update, and delete [Google Cloud Scheduler](https://cloud.google.com/scheduler/) Jobs. When those jobs are triggered, receive the event inside Knative.
[CloudStorageSource](https://github.com/google/knative-gcp/blob/master/docs/examples/cloudstoragesource/README.md) | Active Development | None | Registers for events of the specified types on the specified [Google Cloud Storage](https://cloud.google.com/storage/) bucket and optional object prefix. Brings those events into Knative. [CloudStorageSource](https://github.com/google/knative-gcp/blob/master/docs/examples/cloudstoragesource/README.md) | Active Development | None | Registers for events of the specified types on the specified [Google Cloud Storage](https://cloud.google.com/storage/) bucket and optional object prefix. Brings those events into Knative.
[Cron Job](https://knative.dev/docs/eventing/migration/ping) | Replaced by PingSource | None | Deprecated, replace with [PingSource](https://knative.dev/docs/eventing/migration/ping) or a [CronJob using SinkBinding](https://knative.dev/docs/eventing/samples/sinkbinding/)
[GitHub](https://github.com/knative/eventing-contrib/blob/master/github/pkg/apis/sources/v1alpha1/githubsource_types.go) | Proof of Concept | None | Registers for events of the specified types on the specified GitHub organization/repository. Brings those events into Knative.
[GitLab](https://github.com/knative/eventing-contrib/blob/master/gitlab/pkg/apis/sources/v1alpha1/gitlabsource_types.go) | Proof of Concept | None | Registers for events of the specified types on the specified GitLab repository. Brings those events into Knative.
[Kubernetes](https://github.com/knative/eventing/blob/master/pkg/apis/sources/v1alpha1/apiserver_types.go) | Active Development | Knative | Brings Kubernetes API server events into Knative.
[Ping](https://github.com/knative/eventing/blob/master/pkg/apis/sources/v1alpha2/ping_types.go) | In development | None | Uses an in-memory timer to produce events with a fixed payload on a specified cron schedule.
[VMware](https://github.com/vmware-tanzu/sources-for-knative/tree/{{< branch >}}/pkg/apis/source/v1alpha1/vspheresource_types.go) | Active Development | None | Brings [vSphere](https://www.vmware.com/products/vsphere.html) events into Knative.
## Meta Sources
These are not directly usable, but make writing a Source much easier.
Name | Status | Support | Description
--- | --- | --- | ---
[Auto Container Source](https://github.com/Harwayne/auto-container-source) | Proof of Concept | None | AutoContainerSource 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.
[Container Source](https://knative.dev/docs/eventing/migration/sinkbinding) | Active Development | Knative | Given a `spec.template` with at least a container image specified, ContainerSource will keep 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.
[Sample Source](https://github.com/knative/sample-source) | Active Development | Knative | Used as reference implementation supporting [Writing an Event Source from Scratch tutorial](../samples/writing-receive-adapter-source).
[SinkBinding](https://knative.dev/docs/eventing/samples/sinkbinding/) | Active Development | Knative | 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).
### ContainerSource Containers
These are containers intended to be used with `ContainerSource`. See the docs [here](../samples/container-source/README.md).
Name | Status | Support | Description
--- | --- | --- | ---
[AWS CodeCommit](https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awscodecommitsource/README.md) | Supported | TriggerMesh | Registers for events of the specified types on the specified AWS CodeCommit repository. Brings those events into Knative.
[AWS Cognito](https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awscognitosource/README.md) | Supported | TriggerMesh | Registers for AWS Cognito events. Brings those events into Knative.
[AWS DynamoDB](https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awsdynamodbsource/README.md) | Supported | TriggerMesh | Registers for events of on the specified AWS DynamoDB table. Brings those events into Knative.
[AWS Kinesis](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awskinesissource/README.md) | Supported | TriggerMesh | Registers for events on the specified AWS Kinesis stream. Brings those events into Knative.
[AWS SNS](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awssnssource) | Supported | TriggerMesh | Registers for events of the specified AWS SNS endpoint. Brings those events into Knative.
[AWS SQS](https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awssqssource/README.md) | Supported | TriggerMesh | Registers for events of the specified AWS SQS queue. Brings those events into Knative.
[FTP / SFTP](https://github.com/vaikas-google/ftp) | Proof of concept | None | Watches for files being uploaded into a FTP/SFTP and generates events for those. [FTP / SFTP](https://github.com/vaikas-google/ftp) | Proof of concept | None | Watches for files being uploaded into a FTP/SFTP and generates events for those.
[Heartbeat](https://github.com/Harwayne/auto-container-source/tree/master/heartbeat-source) | Proof of Concept | None | Uses an in-memory timer to produce events as the specified interval. Uses AutoContainerSource for underlying infrastructure. [Heartbeat](https://github.com/Harwayne/auto-container-source/tree/master/heartbeat-source) | Proof of Concept | None | Uses an in-memory timer to produce events as the specified interval. Uses AutoContainerSource for underlying infrastructure.
[Heartbeats](https://github.com/knative/eventing-contrib/tree/{{< branch >}}/cmd/heartbeats) | Proof of Concept | None | Uses an in-memory timer to produce events at the specified interval.
[K8s](https://github.com/Harwayne/auto-container-source/tree/master/k8s-event-source) | Proof of Concept | None | Brings Kubernetes cluster events into Knative. Uses AutoContainerSource for underlying infrastructure.
[WebSocket](https://github.com/knative/eventing-contrib/tree/{{< branch >}}/cmd/websocketsource) | Active Development | None | Opens a WebSocket to the specified source and packages each received message as a Knative event.
### SinkBindings
These are containers intended to be used with `SinkBinding`. See the docs [here](../samples/sinkbinding/README.md).
Name | Status | Support | Description
--- | --- | --- | ---
[Konnek](https://konnek.github.io/docs/#/) | Active Development | None | Retrieves events from cloud platforms (like AWS and GCP) and transforms them into CloudEvents for consumption in Knative. [Konnek](https://konnek.github.io/docs/#/) | Active Development | None | Retrieves events from cloud platforms (like AWS and GCP) and transforms them into CloudEvents for consumption in Knative.
[K8s](https://github.com/Harwayne/auto-container-source/tree/master/k8s-event-source) | Proof of Concept | None | Brings Kubernetes cluster events into Knative. Uses AutoContainerSource for underlying infrastructure.
[VMware](https://github.com/vmware-tanzu/sources-for-knative/blob/master/pkg/apis/sources/v1alpha1/vspheresource_types.go) | Active Development | None | Brings [vSphere](https://www.vmware.com/products/vsphere.html) events into Knative.

View File

@ -1,69 +0,0 @@
{{ "" }}
{{- /* This will be interpreted given a yamlSources object. */ -}}
{{- /* Ignore this next paragraph, it is only intended in the generated markdown, not here. */ -}}
<!--
This is a generated file and should not be changed manually. All changes should follow the
procedure:
1. Update the information in [`sources.yaml`](./sources.yaml).
2. Run the generator tool:
```shell
go run docs/eventing/sources/generator/main.go
```
-->
Event Sources are Kubernetes Custom Resources which provide a mechanism for registering interest in
a class of events from a particular software system. Since different event sources may be described
by different Custom Resources, this page provides an index of the available source resource types as
well as links to installation instructions.
This is a non-exhaustive list of Event sources for Knative.
### Inclusion in this list is not an endorsement, nor does it imply any level of support.
## Sources
These are sources that are installed as `CRD`s.
Name | Status | Support | Description
--- | --- | --- | ---
{{ range .Sources -}}
[{{ .Name }}]({{ .Url }}) | {{ .Status }} | {{ .Support }} | {{ .Description }}
{{- end }}
## Meta Sources
These are not directly usable, but make writing a Source much easier.
Name | Status | Support | Description
--- | --- | --- | ---
{{ range .MetaSources -}}
[{{ .Name }}]({{ .Url }}) | {{ .Status }} | {{ .Support }} | {{ .Description }}
{{- end }}
### ContainerSource Containers
These are containers intended to be used with `ContainerSource`. See the docs [here](../samples/container-source/README.md).
Name | Status | Support | Description
--- | --- | --- | ---
{{ range .Containers -}}
[{{ .Name }}]({{ .Url }}) | {{ .Status }} | {{ .Support }} | {{ .Description }}
{{- end }}
### SinkBindings
These are containers intended to be used with `SinkBinding`. See the docs [here](../samples/sinkbinding/README.md).
Name | Status | Support | Description
--- | --- | --- | ---
{{ range .SinkBindings -}}
[{{ .Name }}]({{ .Url }}) | {{ .Status }} | {{ .Support }} | {{ .Description }}
{{- end }}

View File

@ -1,111 +0,0 @@
/*
Copyright 2019 The Knative Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"flag"
"io/ioutil"
"log"
"os"
"sort"
"text/template"
yaml "gopkg.in/yaml.v2"
)
var (
yamlFile = flag.String("yaml", "docs/eventing/sources/sources.yaml", "The YAML file to parse to generate the mark down.")
templateFile = flag.String("template", "docs/eventing/sources/generator/ReadmeTemplate.gomd", "The template file to fill in.")
mdFile = flag.String("md", "docs/eventing/sources/README.md", "The mark down file to write to. Any existing file will be overwritten.")
)
func main() {
flag.Parse()
yamlSources := parseYaml()
tmpl := createTemplate()
writeMarkdown(yamlSources, tmpl)
}
func parseYaml() *yamlSources {
fileBytes, err := ioutil.ReadFile(*yamlFile)
if err != nil {
log.Fatalf("Unable to read the YAML file '%s': %v", *yamlFile, err)
}
sources := &yamlSources{}
err = yaml.UnmarshalStrict(fileBytes, sources)
if err != nil {
log.Fatalf("Unable to unmarshal the YAML file '%s': %v", *yamlFile, err)
}
// Sort the three lists.
sortAlphabetically(sources.MetaSources)
sortAlphabetically(sources.Sources)
sortAlphabetically(sources.Containers)
sortAlphabetically(sources.SinkBindings)
return sources
}
func sortAlphabetically(slice []source) {
sortByName := func(i, j int) bool {
return slice[i].Name < slice[j].Name
}
sort.SliceStable(slice, sortByName)
}
type yamlSources struct {
MetaSources []source `yaml:"metaSources"`
Sources []source `yaml:"sources"`
Containers []source `yaml:"containers"`
SinkBindings []source `yaml:"sinkBindings"`
}
type source struct {
Name string `yaml:"name"`
Url string `yaml:"url"`
Status string `yaml:"status"` // TODO Make this an enum.
Support string `yaml:"support"`
Description string `yaml:"description"`
}
func createTemplate() *template.Template {
fileBytes, err := ioutil.ReadFile(*templateFile)
if err != nil {
log.Fatalf("Unable to read the template file '%s': %v", *templateFile, err)
}
fileString := string(fileBytes)
tmpl, err := template.New("markdown template").Parse(fileString)
if err != nil {
log.Fatalf("Unable to parse the template file '%s': %v", *templateFile, err)
}
return tmpl
}
func writeMarkdown(yamlSources *yamlSources, tmpl *template.Template) {
md, err := os.Create(*mdFile)
if err != nil {
log.Fatalf("Unable to create the markdown file '%s': %v", *mdFile, err)
}
defer md.Close()
err = tmpl.Execute(md, yamlSources)
if err != nil {
log.Fatalf("Unable to execute the template: %v", err)
}
}

View File

@ -0,0 +1,155 @@
---
title: "PingSource"
linkTitle: "PingSource"
weight: 31
type: "docs"
---
![version](https://img.shields.io/badge/API_Version-v1alpha2-red?style=flat-square)
A PingSource produces events with a fixed payload on a specified cron schedule.
## Installation
The PingSource source type is enabled by default when you install Knative Eventing.
## Example
This example shows how to send an event every second to a Knative Service.
### Creating a namespace
Create a new namespace called `pingsource-example` by entering the following
command:
```shell
kubectl create namespace pingsource-example
```
### Creating the event display service
In this step, you create one event consumer, `event-display` to verify that
`PingSource` is properly working.
To deploy the `event-display` con sumer to your cluster, run the following
command:
```shell
kubectl -n pingsource-example apply -f - << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: event-display
spec:
replicas: 1
selector:
matchLabels: &labels
app: event-display
template:
metadata:
labels: *labels
spec:
containers:
- name: event-display
image: gcr.io/knative-releases/knative.dev/eventing-contrib/cmd/event_display
---
kind: Service
apiVersion: v1
metadata:
name: event-display
spec:
selector:
app: event-display
ports:
- protocol: TCP
port: 80
targetPort: 8080
EOF
```
### Creating the PingSource
You can now create the `PingSource` sending an event containing
`{"message": "Hello world!"}` every second.
{{< tabs name="create-source" default="YAML" >}}
{{% tab name="YAML" %}}
```shell
kubectl create -n pingsource-example -f - <<EOF
apiVersion: sources.knative.dev/v1alpha2
kind: PingSource
metadata:
name: test-ping-source
spec:
schedule: "*/1 * * * *"
jsonData: '{"message": "Hello world!"}'
sink:
ref:
apiVersion: serving.knative.dev/v1
kind: Service
name: event-display
EOF
```
{{< /tab >}}
{{% tab name="kn" %}}
```shell
kn source ping create test-ping-source \
--namespace pingsource-example
--schedule "*/1 * * * *" \
--data '{"message": "Hello world!"}' \
--sink http://event-display.svc.cluster.local
```
{{< /tab >}}
{{< /tabs >}}
### Verify
View the logs for the `event-display` event consumer by
entering the following command:
```shell
kubectl -n pingsource-example logs -l app=event-display --tail=100
```
This returns the `Attributes` and `Data` of the events that the PingSource sent to the `event-display` Service:
```shell
☁️ cloudevents.Event
Validation: valid
Context Attributes,
specversion: 1.0
type: dev.knative.sources.ping
source: /apis/v1/namespaces/default/pingsources/test-ping-source
id: d8e761eb-30c7-49a3-a421-cd5895239f2d
time: 2019-12-04T14:24:00.000702251Z
datacontenttype: application/json
Data,
{
"message": "Hello world!"
}
```
### Cleanup
Delete the `pingsource-example` namespace and all of its resources from your
cluster by entering the following command:
```shell
kubectl delete namespace pingsource-example
```
## Reference Documentation
See the [PingSource specification](../../reference/eventing/eventing.md#sources.knative.dev/v1alpha2.PingSource).
## Contact
For any inquiries about this source, please reach out on to the
[Knative users group](https://groups.google.com/forum/#!forum/knative-users).

View File

@ -1,213 +0,0 @@
# MetaSources are not intended to be used directly by a user. Rather they are to help make other
# sources easy to write and maintain.
metaSources:
- name: SinkBinding
url: https://knative.dev/docs/eventing/samples/sinkbinding/
status: Active Development
support: Knative
description: >
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).
- name: Container Source
url: https://knative.dev/docs/eventing/migration/sinkbinding
status: Active Development
support: Knative
description: >
Given a `spec.template` with at least a container image specified, ContainerSource will keep 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.
- name: Auto Container Source
url: https://github.com/Harwayne/auto-container-source
status: Proof of Concept
support: None
description: >
AutoContainerSource 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.
- name: Sample Source
url: https://github.com/knative/sample-source
status: Active Development
support: Knative
description: >
Used as reference implementation supporting
[Writing an Event Source from Scratch tutorial](../samples/writing-receive-adapter-source).
# Sources are event sources that users can install and use directly.
sources:
- name: Apache Camel
url: https://github.com/knative/eventing-contrib/blob/master/camel/source/pkg/apis/sources/v1alpha1/camelsource_types.go
status: Proof of Concept
support: None
description: >
Allows to use [Apache Camel](https://github.com/apache/camel) components for pushing events into Knative.
- name: AWS SQS
url: https://github.com/knative/eventing-contrib/blob/master/awssqs/pkg/apis/sources/v1alpha1/aws_sqs_types.go
status: Proof of Concept
support: None
description: >
Brings [AWS Simple Queue Service](https://aws.amazon.com/sqs/) messages into Knative.
- name: Cron Job
url: https://knative.dev/docs/eventing/migration/ping
status: Replaced by PingSource
support: None
description: >
Deprecated, replace with [PingSource](https://knative.dev/docs/eventing/migration/ping) or a [CronJob using SinkBinding](https://knative.dev/docs/eventing/samples/sinkbinding/)
- name: Ping
url: https://github.com/knative/eventing/blob/master/pkg/apis/sources/v1alpha2/ping_types.go
status: In development
support: None
description: >
Uses an in-memory timer to produce events with a fixed payload on a specified cron schedule.
- name: CloudPubSubSource
url: https://github.com/google/knative-gcp/blob/master/docs/examples/cloudpubsubsource/README.md
status: Active Development
support: None
description: >
Brings [Cloud Pub/Sub](https://cloud.google.com/pubsub/) messages into Knative.
- name: CloudSchedulerSource
url: https://github.com/google/knative-gcp/blob/master/docs/examples/cloudschedulersource/README.md
status: Active Development
support: None
description: >
Create, update, and delete [Google Cloud Scheduler](https://cloud.google.com/scheduler/) Jobs. When those jobs are triggered, receive the event inside Knative.
- name: CloudStorageSource
url: https://github.com/google/knative-gcp/blob/master/docs/examples/cloudstoragesource/README.md
status: Active Development
support: None
description: >
Registers for events of the specified types on the specified [Google Cloud Storage](https://cloud.google.com/storage/) bucket and optional object prefix. Brings those events into Knative.
- name: CloudAuditLogsSource
url: https://github.com/google/knative-gcp/blob/master/docs/examples/cloudauditlogssource/README.md
status: Active Development
support: None
description: >
Registers for events of the specified types on the specified [Google Cloud Audit Logs](https://cloud.google.com/logging/docs/audit/). Brings those events into Knative.
- name: GitHub
url: https://github.com/knative/eventing-contrib/blob/master/github/pkg/apis/sources/v1alpha1/githubsource_types.go
status: Proof of Concept
support: None
description: >
Registers for events of the specified types on the specified GitHub organization/repository.
Brings those events into Knative.
- name: GitLab
url: https://github.com/knative/eventing-contrib/blob/master/gitlab/pkg/apis/sources/v1alpha1/gitlabsource_types.go
status: Proof of Concept
support: None
description: >
Registers for events of the specified types on the specified GitLab repository. Brings those
events into Knative.
- name: BitBucket
url: https://github.com/nachocano/bitbucket-source
status: Proof of Concept
support: None
description: >
Registers for events of the specified types on the specified BitBucket organization/repository.
Brings those events into Knative.
- name: Kubernetes
url: https://github.com/knative/eventing/blob/master/pkg/apis/sources/v1alpha1/apiserver_types.go
status: Active Development
support: Knative
description: >
Brings Kubernetes API server events into Knative.
- name: Apache Kafka
url: https://github.com/knative/eventing-contrib/blob/master/kafka/source/pkg/apis/sources/v1alpha1/kafka_types.go
status: Proof of Concept
support: None
description: >
Brings [Apache Kafka](https://kafka.apache.org/) messages into Knative.
- name: Apache CouchDB
url: https://github.com/knative/eventing-contrib/tree/{{< branch >}}/couchdb
status: Active Development
support: None
description: >
Brings [Apache CouchDB](https://couchdb.apache.org/) messages into Knative.
- name: VMware
url: https://github.com/vmware-tanzu/sources-for-knative/tree/{{< branch >}}/pkg/apis/source/v1alpha1/vspheresource_types.go
status: Active Development
support: None
description: >
Brings [vSphere](https://www.vmware.com/products/vsphere.html) events into Knative.
# These are containers intended to be used with ContainerSource, but are not CRDs.
containers:
- name: Heartbeats
url: https://github.com/knative/eventing-contrib/tree/{{< branch >}}/cmd/heartbeats
status: Proof of Concept
support: None
description: >
Uses an in-memory timer to produce events at the specified interval.
- name: WebSocket
url: https://github.com/knative/eventing-contrib/tree/{{< branch >}}/cmd/websocketsource
status: Active Development
support: None
description: >
Opens a WebSocket to the specified source and packages each received message as a Knative
event.
- name: K8s
url: https://github.com/Harwayne/auto-container-source/tree/master/k8s-event-source
status: Proof of Concept
support: None
description: >
Brings Kubernetes cluster events into Knative. Uses AutoContainerSource for underlying
infrastructure.
- name: Heartbeat
url: https://github.com/Harwayne/auto-container-source/tree/master/heartbeat-source
status: Proof of Concept
support: None
description: >
Uses an in-memory timer to produce events as the specified interval. Uses AutoContainerSource
for underlying infrastructure.
- name: AWS CodeCommit
url: https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awscodecommitsource/README.md
status: Supported
support: TriggerMesh
description: >
Registers for events of the specified types on the specified AWS CodeCommit repository. Brings those events into Knative.
- name: AWS Cognito
url: https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awscognitosource/README.md
status: Supported
support: TriggerMesh
description: >
Registers for AWS Cognito events. Brings those events into Knative.
- name: AWS DynamoDB
url: https://github.com/triggermesh/aws-event-sources/blob/master/cmd/awsdynamodbsource/README.md
status: Supported
support: TriggerMesh
description: >
Registers for events of on the specified AWS DynamoDB table. Brings those events into Knative.
- name: AWS Kinesis
url: https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awskinesissource/README.md
status: Supported
support: TriggerMesh
description: >
Registers for events on the specified AWS Kinesis stream. Brings those events into Knative.
- name: AWS SQS
url: https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awssqssource/README.md
status: Supported
support: TriggerMesh
description: >
Registers for events of the specified AWS SQS queue. Brings those events into Knative.
- name: AWS SNS
url: https://github.com/triggermesh/aws-event-sources/tree/master/cmd/awssnssource
status: Supported
support: TriggerMesh
description: >
Registers for events of the specified AWS SNS endpoint. Brings those events into Knative.
- name: FTP / SFTP
url: https://github.com/vaikas-google/ftp
status: Proof of concept
support: None
description: >
Watches for files being uploaded into a FTP/SFTP and generates events for those.
# These are intended to be used with SinkBinding, but are not CRDs.
sinkBindings:
- name: Konnek
url: https://konnek.github.io/docs/#/
status: Active Development
support: None
description: >
Retrieves events from cloud platforms (like AWS and GCP) and transforms them into CloudEvents for consumption in Knative.