diff --git a/kamelet.yaml b/kamelet.yaml new file mode 100644 index 0000000..42d2392 --- /dev/null +++ b/kamelet.yaml @@ -0,0 +1,93 @@ +apiVersion: camel.apache.org/v1 +kind: Kamelet +metadata: + name: spring-rabbitmq-sink + annotations: + camel.apache.org/kamelet.support.level: "Preview" + camel.apache.org/catalog.version: "4.10.2" + camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjcxcHgiIGhlaWdodD0iMjcxcHgiIHZpZXdCb3g9Ii03LjUgMCAyNzEgMjcxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj48cGF0aCBkPSJNMjQ1LjQ0IDEwOC4zMDhoLTg1LjA5YTcuNzM4IDcuNzM4IDAgMCAxLTcuNzM1LTcuNzM0di04OC42OEMxNTIuNjE1IDUuMzI3IDE0Ny4yOSAwIDE0MC43MjYgMGgtMzAuMzc1Yy02LjU2OCAwLTExLjg5IDUuMzI3LTExLjg5IDExLjg5NHY4OC4xNDNjMCA0LjU3My0zLjY5NyA4LjI5LTguMjcgOC4zMWwtMjcuODg1LjEzM2MtNC42MTIuMDI1LTguMzU5LTMuNzE3LTguMzUtOC4zMjVsLjE3My04OC4yNDFDNTQuMTQ0IDUuMzM3IDQ4LjgxNyAwIDQyLjI0IDBIMTEuODlDNS4zMjEgMCAwIDUuMzI3IDAgMTEuODk0VjI2MC4yMWMwIDUuODM0IDQuNzI2IDEwLjU2IDEwLjU1NSAxMC41NkgyNDUuNDRjNS44MzQgMCAxMC41Ni00LjcyNiAxMC41Ni0xMC41NlYxMTguODY4YzAtNS44MzQtNC43MjYtMTAuNTYtMTAuNTYtMTAuNTZ6bS0zOS45MDIgOTMuMjMzYzAgNy42NDUtNi4xOTggMTMuODQ0LTEzLjg0MyAxMy44NDRIMTY3LjY5Yy03LjY0NiAwLTEzLjg0NC02LjE5OS0xMy44NDQtMTMuODQ0di0yNC4wMDVjMC03LjY0NiA2LjE5OC0xMy44NDQgMTMuODQ0LTEzLjg0NGgyNC4wMDVjNy42NDUgMCAxMy44NDMgNi4xOTggMTMuODQzIDEzLjg0NHYyNC4wMDV6IiBmaWxsPSIjRjYwIi8+PC9zdmc+" + camel.apache.org/provider: "Apache Software Foundation" + camel.apache.org/kamelet.group: "RabbitMQ" + camel.apache.org/kamelet.namespace: "Messaging" + labels: + camel.apache.org/kamelet.type: "sink" +spec: + definition: + title: "RabbitMQ Sink" + description: |- + Send data to a RabbitMQ Broker. + required: + - host + - port + - exchangeName + type: object + properties: + host: + title: Server Address + description: RabbitMQ broker address + type: string + example: "localhost" + port: + title: Server Port + description: RabbitMQ broker port + type: int + example: 5672 + routingKey: + title: Routing Key + description: The routing key to use when binding a consumer queue to the exchange + type: string + username: + title: Username + description: The username to access the RabbitMQ server + type: string + x-descriptors: + - urn:camel:group:credentials + password: + title: Password + description: The password to access the RabbitMQ server + type: string + format: password + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:password + - urn:camel:group:credentials + exchangeName: + title: Exchange name + description: The exchange name determines the exchange the queue will be bound to + type: string + queues: + title: Queue name + description: The queue to receive messages from + type: string + autoDeclareProducer: + title: Auto Declare Producer + description: Specifies whether the producer should auto declare binding between exchange, queue and routing key when starting + type: boolean + default: false + vhost: + title: Virtual Host + description: The virtual host + type: string + default: "/" + dependencies: + - "camel:spring-rabbitmq" + - "camel:kamelet" + template: + beans: + - name: connectionFactory + type: "#class:org.springframework.amqp.rabbit.connection.CachingConnectionFactory" + properties: + username: '{{?username}}' + password: '{{?password}}' + host: '{{host}}' + port: '{{port}}' + virtualHost: "{{vhost}}" + from: + uri: "kamelet:source" + steps: + - to: + uri: "spring-rabbitmq://{{exchangeName}}" + parameters: + connectionFactory: "#bean:{{connectionFactory}}" + routingKey: "{{?routingKey}}" + queues: "{{?queues}}" + autoDeclareProducer: "{{autoDeclareProducer}}"