Chapter 22. Ceph Source Receive data from an Ceph Bucket, managed by a Object Storage Gateway. 22.1. Configuration Options The following table summarizes the configuration options available for the ceph-source Kamelet: Property Name Description Type Default Example accessKey * Access Key The access key. string bucketName * Bucket Name The Ceph Bucket name. string cephUrl * Ceph Url Address Set the Ceph Object Storage Address Url. string "http://ceph-storage-address.com" secretKey * Secret Key The secret key. string zoneGroup * Bucket Zone Group The bucket zone group. string autoCreateBucket Autocreate Bucket Specifies to automatically create the bucket. boolean false delay Delay The number of milliseconds before the poll of the selected bucket. integer 500 deleteAfterRead Auto-delete Objects Specifies to delete objects after consuming them. boolean true ignoreBody Ignore Body If true, the Object body is ignored. Setting this to true overrides any behavior defined by the includeBody option. If false, the object is put in the body. boolean false includeBody Include Body If true, the exchange is consumed and put into the body and closed. If false, the Object stream is put raw into the body and the headers are set with the object metadata. boolean true prefix Prefix The bucket prefix to consider while searching. string "folder/" Note Fields marked with an asterisk (*) are mandatory. 22.2. Dependencies At runtime, the ceph-source Kamelet relies upon the presence of the following dependencies: camel:aws2-s3 camel:kamelet 22.3. Usage This section describes how you can use the ceph-source . 22.3.1. Knative Source You can use the ceph-source Kamelet as a Knative source by binding it to a Knative object. ceph-source-binding.yaml apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: ceph-source-binding spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: ceph-source properties: accessKey: "The Access Key" bucketName: "The Bucket Name" cephUrl: "http://ceph-storage-address.com" secretKey: "The Secret Key" zoneGroup: "The Bucket Zone Group" sink: ref: kind: Channel apiVersion: messaging.knative.dev/v1 name: mychannel 22.3.1.1. Prerequisite Make sure you have "Red Hat Integration - Camel K" installed into the OpenShift cluster you're connected to. 22.3.1.2. Procedure for using the cluster CLI Save the ceph-source-binding.yaml file to your local drive, and then edit it as needed for your configuration. Run the source by using the following command: oc apply -f ceph-source-binding.yaml 22.3.1.3. Procedure for using the Kamel CLI Configure and run the source by using the following command: kamel bind ceph-source -p "source.accessKey=The Access Key" -p "source.bucketName=The Bucket Name" -p "source.cephUrl=http://ceph-storage-address.com" -p "source.secretKey=The Secret Key" -p "source.zoneGroup=The Bucket Zone Group" channel:mychannel This command creates the KameletBinding in the current namespace on the cluster. 22.3.2. Kafka Source You can use the ceph-source Kamelet as a Kafka source by binding it to a Kafka topic. ceph-source-binding.yaml apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: ceph-source-binding spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: ceph-source properties: accessKey: "The Access Key" bucketName: "The Bucket Name" cephUrl: "http://ceph-storage-address.com" secretKey: "The Secret Key" zoneGroup: "The Bucket Zone Group" sink: ref: kind: KafkaTopic apiVersion: kafka.strimzi.io/v1beta1 name: my-topic 22.3.2.1. Prerequisites Ensure that you've installed the AMQ Streams operator in your OpenShift cluster and created a topic named my-topic in the current namespace. Make also sure you have "Red Hat Integration - Camel K" installed into the OpenShift cluster you're connected to. 22.3.2.2. Procedure for using the cluster CLI Save the ceph-source-binding.yaml file to your local drive, and then edit it as needed for your configuration. Run the source by using the following command: oc apply -f ceph-source-binding.yaml 22.3.2.3. Procedure for using the Kamel CLI Configure and run the source by using the following command: kamel bind ceph-source -p "source.accessKey=The Access Key" -p "source.bucketName=The Bucket Name" -p "source.cephUrl=http://ceph-storage-address.com" -p "source.secretKey=The Secret Key" -p "source.zoneGroup=The Bucket Zone Group" kafka.strimzi.io/v1beta1:KafkaTopic:my-topic This command creates the KameletBinding in the current namespace on the cluster. 22.4. Kamelet source file https://github.com/openshift-integration/kamelet-catalog/ceph-source.kamelet.yaml

Commands:
apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: ceph-source-binding spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: ceph-source properties: accessKey: "The Access Key" bucketName: "The Bucket Name" cephUrl: "http://ceph-storage-address.com" secretKey: "The Secret Key" zoneGroup: "The Bucket Zone Group" sink: ref: kind: Channel apiVersion: messaging.knative.dev/v1 name: mychannel
apply -f ceph-source-binding.yaml
kamel bind ceph-source -p "source.accessKey=The Access Key" -p "source.bucketName=The Bucket Name" -p "source.cephUrl=http://ceph-storage-address.com" -p "source.secretKey=The Secret Key" -p "source.zoneGroup=The Bucket Zone Group" channel:mychannel
apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: ceph-source-binding spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: ceph-source properties: accessKey: "The Access Key" bucketName: "The Bucket Name" cephUrl: "http://ceph-storage-address.com" secretKey: "The Secret Key" zoneGroup: "The Bucket Zone Group" sink: ref: kind: KafkaTopic apiVersion: kafka.strimzi.io/v1beta1 name: my-topic
apply -f ceph-source-binding.yaml
kamel bind ceph-source -p "source.accessKey=The Access Key" -p "source.bucketName=The Bucket Name" -p "source.cephUrl=http://ceph-storage-address.com" -p "source.secretKey=The Secret Key" -p "source.zoneGroup=The Bucket Zone Group" kafka.strimzi.io/v1beta1:KafkaTopic:my-topic