Git Product home page Git Product logo

maya's Introduction

Overview

Build Status Go Report codecov GoDoc License

Visit https://docs.openebs.io to learn about Container Attached Storage(CAS) and full documentation on using OpenEBS Maya.

OpenEBS Maya extends the capabilities of Kubernetes to orchestrate CAS (aka Container Native) Storage Solutions like OpenEBS Jiva, OpenEBS cStor, etc. Maya (meaning Magic), seamlessly integrates into the Kubernetes Storage Workflow and helps provision and manage the CAS based Storage Volumes. The core-features of Maya include:

  • Maintaining the inventory of the underlying disks on the Kubernetes Nodes.

  • Managing the allocation of Disks to CAS Storage Engines.

  • Provisioning of CAS Volumes by interfacing with K8s Dynamic Volume Provisioner.

  • Managing the high availability of the CAS volumes by tuning the scheduling parameters of CAS Deployments (Pods).

  • Provide adapters to CAS Volumes to interact with Kubernetes and related infrastructure components like Prometheus, Grafana etc.

Maya orchestration and management capabilities are delivered through a set of services and tools. Currently, these services support deploying the CAS Storage Solutions in Kubernetes Clusters. In future, these can be extended to support other Container Orchestrators.

Maya Architecture

Maya Architecture

Maya components can be broadly classified based on their deployment type as follows:

  • Control Plane Components - These are containers that are initialized as part of enabling OpenEBS in a Kubernetes cluster.

    • maya-apiserver helps with creation of CAS Volumes and provides API endpoints to manage those volumes. maya-apiserver can also be considered as a template engine that can be easily extended to support any kind of CAS storage solutions. It takes as input a set of CAS templates that are converted into CAS K8s YAMLs based on user requests.

    • provisioner is an implementation of Kubernetes Dynamic Provisioner that processes the PVC requests by interacting with maya-apiserver.

  • CAS Side-car Components - These are adapter components that help with managing the CAS containers that do not inherently come up with the required endpoints. For example:

    • maya-exporter helps in providing a metrics endpoint to the CAS container.
    • cas-mgmt components can be attached as side-cars for helping to store/retrieve configuration information from Kubernetes Config Store (etcd). For cStor CAS solution, cstor-pool-mgmt is one such cas-mgmt component.
  • CLI - While most of the operations can be performed via the kubectl, Maya also comes with mayactl that helps retrieve storage related information for debugging/troubleshooting storage related issues.

Install

Please refer to our documentation at OpenEBS Documentation.

Contributing

Head over to the CONTRIBUTING.md.

Community

See the OpenEBS Community page for reaching out to the OpenEBS Developers.

More Info

  • Design proposals for Maya components are located at OpenEBS Designs directory.

  • The issues related to Maya are logged under openebs/openebs.

  • To build Maya from the source code, see [developer's documentation].

  • Maya uses [golang dep] to manage dependencies. Usage can be found on [dep README].

  • The source code for OpenEBS Provisioner is available at openebs/external-storage.

  • mayactl is shipped along with the maya-apiserver container.

[Go environment]: https://golang.org/doc/install

[developer's documentation]: https://github.com/openebs/maya/blob/master/docs/developer.md

[golang dep]: https://github.com/golang/dep

[dep README]: https://github.com/golang/dep#usage

License

Maya is licensed under the Apache License, Version 2.0. See LICENSE for the full license text. Some of the projects used by the Maya project may be governed by a different license, please refer to its specific license.

maya's People

Contributors

prateekpandey14 avatar kmova avatar utkarshmani1997 avatar gkganesh126 avatar sonasingh46 avatar satyamz avatar moteesh avatar ashishranjan738 avatar slalwani97 avatar qiell avatar avishnu avatar imumesh18 avatar fortrieb avatar chentex avatar keydrevolta avatar naveenbellary avatar waseem18 avatar ggarg2906sumo avatar thepriefy avatar benkim0414 avatar payes avatar ferhatelmas avatar ctxplorer avatar sadpandabear avatar cpanato avatar rajukalidindi avatar theramis avatar rajatvaryani avatar ecliptik avatar mrwako avatar

Stargazers

Dhruv Sehgal avatar

Watchers

James Cloos avatar Dhruv Sehgal 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.