mirror of https://github.com/knative/docs.git
RabbitMQ Source docs (#5137)
* finished rabbitmq source readme and corrected some minor rabbitmq broker typos * fixed code style * Update docs/eventing/sources/rabbitmq-source/README.md Co-authored-by: Samia Nneji <snneji@vmware.com> * Update docs/eventing/broker/rabbitmq-broker/README.md Co-authored-by: Samia Nneji <snneji@vmware.com> * Update docs/eventing/sources/rabbitmq-source/README.md Co-authored-by: Samia Nneji <snneji@vmware.com> * Update docs/eventing/sources/rabbitmq-source/README.md Co-authored-by: Samia Nneji <snneji@vmware.com> * fixed pr comments * Update docs/eventing/broker/rabbitmq-broker/README.md Co-authored-by: Ashleigh Brennan <abrennan@redhat.com> * Update docs/eventing/sources/rabbitmq-source/README.md Co-authored-by: Ashleigh Brennan <abrennan@redhat.com> * Update docs/eventing/sources/rabbitmq-source/README.md Co-authored-by: Ashleigh Brennan <abrennan@redhat.com> * removed duplicated sections + created snippet for service section + removed external cluster docs and pointed to the right pages that explain so * added whitespace in prereqs * removed trailing whitespace * Update docs/eventing/broker/rabbitmq-broker/README.md * Update docs/eventing/broker/rabbitmq-broker/README.md * Update docs/eventing/broker/rabbitmq-broker/README.md * Update docs/eventing/broker/rabbitmq-broker/README.md * Update docs/eventing/broker/rabbitmq-broker/README.md Co-authored-by: Samia Nneji <snneji@vmware.com> Co-authored-by: Ashleigh Brennan <abrennan@redhat.com>
This commit is contained in:
parent
14b43e01bf
commit
afc2015250
|
@ -156,6 +156,7 @@ nav:
|
||||||
- PingSource:
|
- PingSource:
|
||||||
- Creating a PingSource object: eventing/sources/ping-source/README.md
|
- Creating a PingSource object: eventing/sources/ping-source/README.md
|
||||||
- PingSource reference: eventing/sources/ping-source/reference.md
|
- PingSource reference: eventing/sources/ping-source/reference.md
|
||||||
|
- RabbitMQSource: eventing/sources/rabbitmq-source/README.md
|
||||||
# BYO event source
|
# BYO event source
|
||||||
- Custom event sources:
|
- Custom event sources:
|
||||||
- Custom event sources overview: eventing/custom-event-source/README.md
|
- Custom event sources overview: eventing/custom-event-source/README.md
|
||||||
|
|
|
@ -4,12 +4,10 @@ This topic describes how to create a RabbitMQ Broker.
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
To use the RabbitMQ Broker, you must have the following installed:
|
1. You have installed [Knative Eventing](../../../install/yaml-install/eventing/install-eventing-with-yaml.md)
|
||||||
|
1. You have installed [CertManager v1.5.4](https://github.com/jetstack/cert-manager/releases/tag/v1.5.4) - easiest integration with RabbitMQ Messaging Topology Operator
|
||||||
1. [Knative Eventing](../../../install/yaml-install/eventing/install-eventing-with-yaml.md)
|
1. You have installed [RabbitMQ Messaging Topology Operator](https://github.com/rabbitmq/messaging-topology-operator) - our recommendation is [latest release](https://github.com/rabbitmq/messaging-topology-operator/releases/latest) with CertManager
|
||||||
1. [RabbitMQ Cluster Operator](https://github.com/rabbitmq/cluster-operator) - our recommendation is [latest release](https://github.com/rabbitmq/cluster-operator/releases/latest)
|
1. You have access to a working RabbitMQ instance. You can create a RabbitMQ instance by using the [RabbitMQ Cluster Kubernetes Operator](https://github.com/rabbitmq/cluster-operator). For more information see the [RabbitMQ website](https://www.rabbitmq.com/kubernetes/operator/using-operator.html).
|
||||||
1. [CertManager v1.5.4](https://github.com/jetstack/cert-manager/releases/tag/v1.5.4) - easiest integration with RabbitMQ Messaging Topology Operator
|
|
||||||
1. [RabbitMQ Messaging Topology Operator](https://github.com/rabbitmq/messaging-topology-operator) - our recommendation is [latest release](https://github.com/rabbitmq/messaging-topology-operator/releases/latest) with CertManager
|
|
||||||
|
|
||||||
## Install the RabbitMQ controller
|
## Install the RabbitMQ controller
|
||||||
|
|
||||||
|
@ -35,50 +33,7 @@ To use the RabbitMQ Broker, you must have the following installed:
|
||||||
rabbitmq-broker-webhook 1/1 1 1 4s
|
rabbitmq-broker-webhook 1/1 1 1 4s
|
||||||
```
|
```
|
||||||
|
|
||||||
## Create a RabbitMQ cluster
|
## Create a RabbitMQBrokerConfig object
|
||||||
|
|
||||||
1. Deploy a RabbitMQ cluster:
|
|
||||||
|
|
||||||
1. Create a YAML file using the following template:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
apiVersion: rabbitmq.com/v1beta1
|
|
||||||
kind: RabbitmqCluster
|
|
||||||
metadata:
|
|
||||||
name: <cluster-name>
|
|
||||||
annotations:
|
|
||||||
# A single RabbitMQ cluster per Knative Eventing installation
|
|
||||||
rabbitmq.com/topology-allowed-namespaces: "*"
|
|
||||||
```
|
|
||||||
Where `<cluster-name>` is the name you want for your RabbitMQ cluster,
|
|
||||||
for example, `rabbitmq`.
|
|
||||||
|
|
||||||
1. Apply the YAML file by running the command:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
kubectl create -f <filename>
|
|
||||||
```
|
|
||||||
Where `<filename>` is the name of the file you created in the previous step.
|
|
||||||
|
|
||||||
1. Wait for the cluster to become ready. When the cluster is ready, `ALLREPLICASREADY`
|
|
||||||
will be `true` in the output of the following command:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
kubectl get rmq <cluster-name>
|
|
||||||
```
|
|
||||||
Where `<cluster-name>` is the name you gave your cluster in the step above.
|
|
||||||
|
|
||||||
Example output:
|
|
||||||
|
|
||||||
```{ .bash .no-copy }
|
|
||||||
NAME ALLREPLICASREADY RECONCILESUCCESS AGE
|
|
||||||
rabbitmq True True 38s
|
|
||||||
```
|
|
||||||
|
|
||||||
For more information about configuring the `RabbitmqCluster` CRD, see the
|
|
||||||
[RabbitMQ website](https://www.rabbitmq.com/kubernetes/operator/using-operator.html).
|
|
||||||
|
|
||||||
## Create a RabbitMQ broker config object
|
|
||||||
|
|
||||||
1. Create a YAML file using the following template:
|
1. Create a YAML file using the following template:
|
||||||
```yaml
|
```yaml
|
||||||
|
@ -88,10 +43,20 @@ For more information about configuring the `RabbitmqCluster` CRD, see the
|
||||||
name: <rabbitmq-broker-config-name>
|
name: <rabbitmq-broker-config-name>
|
||||||
spec:
|
spec:
|
||||||
rabbitmqClusterReference:
|
rabbitmqClusterReference:
|
||||||
|
# Configure name if a RabbitMQ Cluster Operator is being used.
|
||||||
name: <cluster-name>
|
name: <cluster-name>
|
||||||
|
# Configure connectionSecret if an external RabbitMQ cluster is being used.
|
||||||
|
connectionSecret:
|
||||||
|
name: rabbitmq-secret-credentials
|
||||||
queueType: quorum
|
queueType: quorum
|
||||||
```
|
```
|
||||||
Where <cluster-name> is the name of the RabbitMQ cluster created in the step above.
|
Where:
|
||||||
|
|
||||||
|
- <rabbitmq-broker-config-name> is the name you want for your RabbitMQBrokerConfig object.
|
||||||
|
- <cluster-name> is the name of the RabbitMQ cluster you created earlier.
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
You cannot set `name` and `connectionSecret` at the same time, since `name` is for a RabbitMQ Cluster Operator instance running in the same cluster as the Broker, and `connectionSecret` is for an external RabbitMQ server.
|
||||||
|
|
||||||
1. Apply the YAML file by running the command:
|
1. Apply the YAML file by running the command:
|
||||||
|
|
||||||
|
@ -100,7 +65,7 @@ For more information about configuring the `RabbitmqCluster` CRD, see the
|
||||||
```
|
```
|
||||||
Where `<filename>` is the name of the file you created in the previous step.
|
Where `<filename>` is the name of the file you created in the previous step.
|
||||||
|
|
||||||
## Create a RabbitMQ broker object
|
## Create a RabbitMQBroker object
|
||||||
|
|
||||||
1. Create a YAML file using the following template:
|
1. Create a YAML file using the following template:
|
||||||
|
|
||||||
|
@ -117,7 +82,7 @@ For more information about configuring the `RabbitmqCluster` CRD, see the
|
||||||
kind: RabbitmqBrokerConfig
|
kind: RabbitmqBrokerConfig
|
||||||
name: <rabbitmq-broker-config-name>
|
name: <rabbitmq-broker-config-name>
|
||||||
```
|
```
|
||||||
Where `<rabbitmq-broker-config-name>` is the name you gave your RabbitMQ Broker config in the step above.
|
Where `<rabbitmq-broker-config-name>` is the name you gave your RabbitMQBrokerConfig in the step above.
|
||||||
|
|
||||||
1. Apply the YAML file by running the command:
|
1. Apply the YAML file by running the command:
|
||||||
|
|
||||||
|
@ -144,4 +109,5 @@ metadata:
|
||||||
|
|
||||||
## Additional information
|
## Additional information
|
||||||
|
|
||||||
To report a bug or request a feature, open an issue in the [eventing-rabbitmq repository](https://github.com/knative-sandbox/eventing-rabbitmq).
|
- For more samples visit the [`eventing-rabbitmq` Github repository samples directory](https://github.com/knative-sandbox/eventing-rabbitmq/tree/main/samples)
|
||||||
|
- To report a bug or request a feature, open an issue in the [`eventing-rabbitmq` Github repository](https://github.com/knative-sandbox/eventing-rabbitmq).
|
||||||
|
|
|
@ -0,0 +1,129 @@
|
||||||
|
# Creating a RabbitMQSource
|
||||||
|
|
||||||
|
This topic describes how to create a RabbitMQSource.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
1. You have installed [Knative Eventing](../../../install/yaml-install/eventing/install-eventing-with-yaml.md)
|
||||||
|
1. You have installed [CertManager v1.5.4](https://github.com/jetstack/cert-manager/releases/tag/v1.5.4) - easiest integration with RabbitMQ Messaging Topology Operator
|
||||||
|
1. You have installed [RabbitMQ Messaging Topology Operator](https://github.com/rabbitmq/messaging-topology-operator) - our recommendation is [latest release](https://github.com/rabbitmq/messaging-topology-operator/releases/latest) with CertManager
|
||||||
|
1. A working RabbitMQ Instance, we recommend to create one Using the [RabbitMQ Cluster Operator](https://github.com/rabbitmq/cluster-operator).
|
||||||
|
For more information about configuring the `RabbitmqCluster` CRD, see the [RabbitMQ website](https://www.rabbitmq.com/kubernetes/operator/using-operator.html)
|
||||||
|
|
||||||
|
## Install the RabbitMQ controller
|
||||||
|
|
||||||
|
1. Install the RabbitMQSource controller by running the command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl apply -f {{ artifact(org="knative-sandbox", repo="eventing-rabbitmq", file="rabbitmq-source.yaml") }}
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Verify that `rabbitmq-controller-manager` and `rabbitmq-webhook` are running:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl get deployments.apps -n knative-sources
|
||||||
|
```
|
||||||
|
|
||||||
|
Example output:
|
||||||
|
|
||||||
|
```{ .bash .no-copy }
|
||||||
|
NAME READY UP-TO-DATE AVAILABLE AGE
|
||||||
|
rabbitmq-controller-manager 1/1 1 1 3s
|
||||||
|
rabbitmq-webhook 1/1 1 1 4s
|
||||||
|
```
|
||||||
|
|
||||||
|
{% include "event-display.md" %}
|
||||||
|
|
||||||
|
## Create a RabbitMQSource object
|
||||||
|
|
||||||
|
1. Create a YAML file using the following template:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: sources.knative.dev/v1alpha1
|
||||||
|
kind: RabbitmqSource
|
||||||
|
metadata:
|
||||||
|
name: <source-name>
|
||||||
|
spec:
|
||||||
|
rabbitmqClusterReference:
|
||||||
|
# Configure name if a RabbitMQ Cluster Operator is being used.
|
||||||
|
name: <cluster-name>
|
||||||
|
# Configure connectionSecret if an external RabbitMQ cluster is being used.
|
||||||
|
connectionSecret:
|
||||||
|
name: rabbitmq-secret-credentials
|
||||||
|
rabbitmqResourcesConfig:
|
||||||
|
parallelism: 10
|
||||||
|
exchangeName: "eventing-rabbitmq-source"
|
||||||
|
queueName: "eventing-rabbitmq-source"
|
||||||
|
delivery:
|
||||||
|
retry: 5
|
||||||
|
backoffPolicy: "linear"
|
||||||
|
backoffDelay: "PT1S"
|
||||||
|
sink:
|
||||||
|
ref:
|
||||||
|
apiVersion: serving.knative.dev/v1
|
||||||
|
kind: Service
|
||||||
|
name: event-display
|
||||||
|
```
|
||||||
|
Where:
|
||||||
|
|
||||||
|
- `<source-name>` is the name you want for your RabbitMQSource object.
|
||||||
|
- `<cluster-name>` is the name of the RabbitMQ cluster you created earlier.
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
You cannot set `name` and `connectionSecret` at the same time, since `name` is for a RabbitMQ Cluster Operator instance running in the same cluster as the Source, and `connectionSecret` is for an external RabbitMQ server.
|
||||||
|
|
||||||
|
1. Apply the YAML file by running the command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl apply -f <filename>
|
||||||
|
```
|
||||||
|
Where `<filename>` is the name of the file you created in the previous step.
|
||||||
|
|
||||||
|
### Verify
|
||||||
|
|
||||||
|
Check the event-display Service to see if it is receiving events.
|
||||||
|
It might take a while for the Source to start sending events to the Sink.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl -l='serving.knative.dev/service=event-display' logs -c user-container
|
||||||
|
☁️ cloudevents.Event
|
||||||
|
Context Attributes,
|
||||||
|
specversion: 1.0
|
||||||
|
type: dev.knative.rabbitmq.event
|
||||||
|
source: /apis/v1/namespaces/default/rabbitmqsources/<source-name>
|
||||||
|
subject: f147099d-c64d-41f7-b8eb-a2e53b228349
|
||||||
|
id: f147099d-c64d-41f7-b8eb-a2e53b228349
|
||||||
|
time: 2021-12-16T20:11:39.052276498Z
|
||||||
|
datacontenttype: application/json
|
||||||
|
Data,
|
||||||
|
{
|
||||||
|
...
|
||||||
|
Random Data
|
||||||
|
...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cleanup
|
||||||
|
|
||||||
|
1. Delete the RabbitMQSource:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl delete -f <source-yaml-filename>
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Delete the RabbitMQ credentials secret:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl delete -f <secret-yaml-filename>
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Delete the event display Service:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl delete -f <service-yaml-filename>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Additional information
|
||||||
|
|
||||||
|
- For more samples visit the [`eventing-rabbitmq` Github repository samples directory](https://github.com/knative-sandbox/eventing-rabbitmq/tree/main/samples)
|
||||||
|
- To report a bug or request a feature, open an issue in the [`eventing-rabbitmq` Github repository](https://github.com/knative-sandbox/eventing-rabbitmq).
|
|
@ -0,0 +1,42 @@
|
||||||
|
## Create a Service
|
||||||
|
|
||||||
|
1. Create the `event-display` Service as a YAML file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: serving.knative.dev/v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: event-display
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- # This corresponds to
|
||||||
|
# https://github.com/knative/eventing/tree/main/cmd/event_display/main.go
|
||||||
|
image: gcr.io/knative-releases/knative.dev/eventing/cmd/event_display
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Apply the YAML file by running the command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl apply -f <filename>.yaml
|
||||||
|
```
|
||||||
|
Where `<filename>` is the name of the file you created in the previous step.
|
||||||
|
|
||||||
|
Example output:
|
||||||
|
```{ .bash .no-copy }
|
||||||
|
service.serving.knative.dev/event-display created
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Ensure that the Service Pod is running, by running the command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl get pods
|
||||||
|
```
|
||||||
|
|
||||||
|
The Pod name is prefixed with `event-display`:
|
||||||
|
```{ .bash .no-copy }
|
||||||
|
NAME READY STATUS RESTARTS AGE
|
||||||
|
event-display-00001-deployment-5d5df6c7-gv2j4 2/2 Running 0 72s
|
||||||
|
```
|
Loading…
Reference in New Issue