Giter Club home page Giter Club logo

skyhookdm-ceph-cls's Introduction

SkyhookDM Ceph RADOS Class

Build Status

What is SkyhookDM?

TODO

Try it locally

TODO

On Kubernetes (via Rook)

TODO

Questions

For questions, please ask about SkyhookDM on StackOverflow with the tag [skyhook-ceph]

Dev setup

These instructions explain the container-native development setup for SkyhookDM. With this approach, there's no need to install build dependencies, and instead we download a Docker image containing the toolchain that builds, tests and packages the library. For information on how to install Docker, take a look at the official documentation.

In addition, instead of making use of docker commands directly, we automate and document these tasks using Popper. You can think of Popper as make for containers. The Popper tasks defined for this project (dev-init, build, test, and build-rook-img) are defined in the .popper.yml file. For information on how to install Popper, take a look at the official documentation.

Any of the tasks defined in the .popper.yml file can be executed in interactive mode. For example, to open a shell on the build step:

popper sh build

The above opens an interactive shell inside an instance of the builder image, which is a pre-built image with all the dependencies needed to build the CLS.

Note that each task depends on having executed the previous one at least once. In the example above, we must have executed the dev-init task.

dev-init

popper run dev-init

The above clones ceph and creates symlinks to this project within the ceph tree so that the cls folder is referenced to the right place (ceph/src/cls/tabular within the cloned ceph/ tree is a symlink to the root of this project).

build

Build the skyhookdm library:

popper run build

The above builds the code inside the build/ directory generated by CMake inside the ceph/ folder, as one would normally expect.

interactive build

To interactively build the RADOS class, or run tests within this dev environment, we can open a shell in this build container for this step:

popper sh build

Then, inside the container, we can run tests by doing:

cd ceph/build

# build
make -j4

vstart.sh

# TODO: complete it
# - create pools
# - run bin/ceph_test_skyhook_query
# - etc

build-rook-img

Once the build step has been executed, whether in interactive (popper sh) or non-interactive (popper run) way, this next step generates a rook-compatible docker image:

popper run build-rook-img

The image contains, in addition to upstream ceph packages, the libcls_tabular.so, and auxiliary binaries so that container instances of this image can be deployed as OSDs and be able to run the tabular class methods.

test

The tests execute on the image built previously (the rook image). This is done so that we can test that the SkyhookDM RADOS class can be loaded in an upstream installation. In addition, this step also produces an image that can be uploaded to a container image registry that Rook can pull from.

To run tests on the ceph/ folder, you can run the build step in interactive mode as described previously.

popper run test

skyhookdm-ceph-cls's People

Contributors

jlefevre avatar kdahlgren avatar ivotron avatar ashayshirwadkar avatar nitesh1994 avatar michaelsevilla avatar aditigupta17 avatar rjsheth avatar carlosmalt avatar jayjeetatgithub avatar drin avatar gusperson avatar

Watchers

James Cloos avatar  avatar

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.