Coder Social home page Coder Social logo

slinkydeveloper / eventing-ceph Goto Github PK

View Code? Open in Web Editor NEW

This project forked from knative-extensions/eventing-ceph

0.0 2.0 0.0 65.56 MB

Converts Ceph notifications to Cloud Events for use with Knative Eventing.

License: Apache License 2.0

Go 86.47% Shell 13.53%

eventing-ceph's Introduction

Knative Eventing Ceph Source

go.dev reference Go Report Card Releases LICENSE Slack Status

The Knative Eventing Ceph project provides source implementation that registers events for Ceph storage notifications.

For complete documentation about Knative Eventing, see the following repos:

If you are interested in contributing, see CONTRIBUTING.md and DEVELOPMENT.md.

Ceph Source Custom Resource

The Ceph source converts bucket notifications from Ceph format into CloudEvents format, and inject them into Knative. Conversion logic follow the one described for AWS S3 bucket notifications. The Ceph source expects HTTP transport, and requires a port on whitch it is listening as part of its configurations.

Note that the receive adapter doing the conversion does not assume the CloudEvents HTTP binding in the incoming messages.

Deployment

To build and deploy on a kubernetes cluster (after knative is installed) run:

ko apply -f config

Testing

  • Deploy a service for the bucket notification messages coming from Ceph:
kubectl apply -f samples/ceph-source-svc.yaml
  • Deploy the event-display Knative service:
ko apply -f samples/event-display.yaml
  • Deploy the Ceph Source resource:
kubectl apply -f samples/ceph-source.yaml
  • 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
  • Execute cURL command on the test pod to send the JSON bucket notifications to the ceph-bucket-notifications service:
kubectl exec test -- curl -d "@records.json" -X POST my-ceph-source-svc.default.svc.cluster.local
  • To verify that the events reached the event-display service, call:
kubectl logs -l serving.knative.dev/service=event-display -c display-container --tail=100

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.