Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding initial doc for IntegrationSink #6163

Merged
merged 6 commits into from
Nov 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions config/nav.yml
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,11 @@ nav:
- About sinks: eventing/sinks/README.md
- JobSink: eventing/sinks/job-sink.md
- Apache Kafka Sink: eventing/sinks/kafka-sink.md
- IntegrationSink:
- About IntegrationSink: eventing/sinks/integration-sink/README.md
- AWS S3 Sink: eventing/sinks/integration-sink/aws_s3.md
- AWS SQS Sink: eventing/sinks/integration-sink/aws_sqs.md
- Generic Logger Sink: eventing/sinks/integration-sink/logger.md
- Flows:
- About flows: eventing/flows/README.md
- Parallel: eventing/flows/parallel.md
Expand Down
1 change: 1 addition & 0 deletions docs/eventing/sinks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ The `svc` in `http://event-display.svc.cluster.local` determines that the sink i

| Name | Maintainer | Description |
|----------------------------------------------------------------------------------| -- |--------------------------------------|
| [IntegrationSink](./integration-sink/README.md) | Knative | Send events to a generic event sink |
| [JobSink](job-sink.md) | Knative | Trigger long-running background jobs |
| [KafkaSink](kafka-sink.md) | Knative | Send events to a Kafka topic |
| [RedisSink](https://github.com/knative-extensions/eventing-redis/tree/main/sink) | Knative | Send events to a Redis Stream |
Expand Down
12 changes: 12 additions & 0 deletions docs/eventing/sinks/integration-sink/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Knative Sink for Apache Camel Kamelet integrations

![stage](https://img.shields.io/badge/Stage-alpah-red?style=flat-square)
![version](https://img.shields.io/badge/API_Version-v1alpha1-red?style=flat-square)

The `IntegrationSink` is a Knative Eventing custom resource supporting selected [_Kamelets_](https://camel.apache.org/camel-k/latest/kamelets/kamelets.html) from the [Apache Camel](https://camel.apache.org/) project. Kamelets allow users to connect to 3rd party system for improved connectivity, they can act as "sources" or as "sinks". Therefore the `IntegrationSink` allows sending data to external systems out of Knative Eventing in the format of CloudEvents. The integration sink is part of the Knative Eventing core installation.

## Supported Kamelet sinks

* [AWS S3](./aws_s3.md)
* [AWS SQS](./aws_sqs.md)
* [Generic logger](./logger.md)
36 changes: 36 additions & 0 deletions docs/eventing/sinks/integration-sink/aws_s3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# AWS S3 Sink

The `IntegrationSink` supports the Amazon Web Services (AWS) S3 service, through its `aws.s3` property.

## Amazon credentials

For connecting to AWS the `IntegrationSink` uses Kubernetes `Secret`, present in the namespace of the reSink. The `Secret` can be created like:

```bash
kubectl -n <namespace> create secret generic my-secret --from-literal=aws.accessKey=<accessKey> --from-literal=aws.secretKey=<secretKey>
```

## AWS S3 Sink Example

Below is an `IntegrationSink` to send data to an Amazon S3 Bucket:

```yaml
apiVersion: sinks.knative.dev/v1alpha1
kind: IntegrationSink
metadata:
name: integration-sink-aws-s3
namespace: knative-samples
spec:
aws:
s3:
arn: "arn:aws:s3:::my-bucket"
region: "eu-north-1"
auth:
secret:
ref:
name: "my-secret"
```

Inside of the `aws.s3` object we define the name of the bucket (or _arn_) and its region. The credentials for the AWS service are referenced from the `my-secret` Kubernetes `Secret`

More details about the Apache Camel Kamelet [aws-s3-sink](https://camel.apache.org/camel-kamelets/latest/aws-s3-sink.html).
35 changes: 35 additions & 0 deletions docs/eventing/sinks/integration-sink/aws_sqs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# AWS Simple Queue Service Sink

The `IntegrationSink` supports the Amazon Web Services (AWS) Simple Queue Service (SQS) service, through its `aws.sqs` property.

## Amazon credentials

For connecting to AWS the `IntegrationSink` uses Kubernetes `Secret`, present in the namespace of the reSink. The `Secret` can be created like:

```bash
kubectl -n <namespace> create secret generic my-secret --from-literal=aws.accessKey=<accessKey> --from-literal=aws.secretKey=<secretKey>
```

## AWS SQS Sink Example

Below is an `IntegrationSink` to send data to AWS SQS:

```yaml
apiVersion: sinks.knative.dev/v1alpha1
kind: IntegrationSink
metadata:
name: integration-sink-aws-sqs
namespace: knative-samples
spec:
aws:
sqs:
arn: "arn:aws:s3:::my-queue"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it intentional with 3 colons s3:::my-queue?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thats the arn 😅, @dsimansk
so, yes intentional

region: "eu-north-1"
auth:
secret:
ref:
name: "my-secret"
```
Inside of the `aws.sqs` object we define the name of the queue (or _arn_) and its region. The credentials for the AWS service are referenced from the `my-secret` Kubernetes `Secret`

More details about the Apache Camel Kamelet [aws-sqs-sink](https://camel.apache.org/camel-kamelets/latest/aws-sqs-sink.html).
23 changes: 23 additions & 0 deletions docs/eventing/sinks/integration-sink/logger.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Log Sink

The `IntegrationSink` supports the _Log Sink Kamelet_ that logs all data that it receives, through its `log` property. This sink useful for debugging purposes.

## Log Sink Example

Below is an `IntegrationSink` that logs all data that it receives:

```yaml
apiVersion: sinks.knative.dev/v1alpha1
kind: IntegrationSink
metadata:
name: integration-log-sink
namespace: knative-samples
spec:
log:
showHeaders: true
level: INFO
```

Inside of the `log` object we define the logging `level` and define to also show (HTTP) headers it received.

More details about the Apache Camel Kamelet [timer-sink](https://camel.apache.org/camel-kamelets/latest/timer-sink.html).
Loading