ceph/

directory
v0.17.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 6, 2020 License: Apache-2.0

README

Ceph to Knative Receive Adapters

The following receive adapters convert bucket notifications from Ceph format into CloudEvents format, and inject them into Knative. Adapter logic follow the one described for AWS S3 bucket notifications.

There are 4 different transport options:

HTTP

This receive adapter expects bucket notifications from Ceph over HTTP transport, as payload in POST messages.

Note that this adapted does not assume the CloudEvents HTTP binding in the incoming messages.

Testing
  • Create a namespace for the tests:
kubectl apply -f samples/ceph-eventing-ns.yaml
  • Deploy a service for the bucket notification messages coming from Ceph:
kubectl apply -f samples/ceph-bucket-notification-svc.yaml -n ceph-eventing
  • Deploy the ceph-event-display Knative service together with a channel and subscribe it to the channel:
ko apply -f samples/ceph-display-resources.yaml -n ceph-eventing
  • Build and deploy the Ceph source adapter with SinkBinding to inject the sink:
ko apply -f samples/ceph-source.yaml -n ceph-eventing
  • Deploy a test pod that has cURL installed and a JSON file with bucket notifications (names records.json):
kubectl apply -f samples/test-pod.yaml -n ceph-eventing
  • Execute cURL command on the test pod to send the JSON bucket notifications to the ceph-bucket-notifications service:
kubectl exec test -n ceph-eventing -- curl -d "@records.json" -X POST ceph-bucket-notifications.ceph-eventing.svc.cluster.local
  • To verify that the events reached the ceph-event-display service, call:
kubectl logs -l serving.knative.dev/service=ceph-event-display -n ceph-eventing -c ceph-display-container --tail=100

PubSub (TODO)

This receive adapter is pulling bucket notifications from a special "pubsub" zone in Ceph, and acking them once they are successfully sent to Knative. More information about this mechanism could be found here.

Note that this adapter needs access to the Ceph cluster to pull the notifications and ack them.

AMQP0.9.1 (TODO)

This receive adapter is subscribed to a list of AMQP topics, on which bucket notifications are expected.

Note that this adapted does not assume the CloudEvents AMQP binding in the incoming messages.

Kafka (TODO)

This receive adapter is subscribed to a list of Kafka topics, on which bucket notifications are expected.

Note that this adapted does not assume the CloudEvents Kafka binding in the incoming messages.

Directories

Path Synopsis
cmd
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL