Giter Site home page Giter Site logo

abhilashshetty04 / cstor-operators Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openebs-archive/cstor-operators

0.0 0.0 0.0 27.04 MB

Collection of OpenEBS cStor Data Engine Operators

Home Page: https://openebs.io

License: Apache License 2.0

Shell 1.32% Go 95.72% Makefile 0.86% Smarty 0.19% Dockerfile 1.06% Mustache 0.36% Jinja 0.48%

cstor-operators's Introduction

cStor Operators

Go Report Build Status Slack Community Meetings Gitpod ready-to-code

OpenEBS Logo

Project Status: Beta

We are always happy to list users who run cStor in production, check out our existing adopters, and their feedbacks.

The new cStor Operators support the following Operations on cStor pools and volumes:

  1. Provisioning and De-provisioning of cStor pools.
  2. Pool expansion by adding disk.
  3. Disk replacement by removing a disk.
  4. Volume replica scale up and scale down.
  5. Volume resize.
  6. Backup and Restore via Velero-plugin.
  7. Seamless upgrades of cStor Pools and Volumes
  8. Support migration from old cStor operators (using SPC) to new cStor operators using CSPC and CSI Driver.

Operators Overview

Collection of enhanced Kubernetes Operators for managing OpenEBS cStor Data Engine. At a high-level, cstor operators consist of following components.

  • cspc-operator
  • pool-manager
  • cvc-operator
  • volume-manager

An OpenEBS admin/user can use CSPC(CStorPoolCluster) API (YAML) to provision cStor pools in a Kubernetes cluster. As the name suggests, CSPC can be used to create a cluster of cStor pools across Kubernetes nodes. It is the job of cspc-operator to reconcile the CSPC object and provision CStorPoolInstance(s) as specified in the CSPC. A cStor pool is provisioned on node by utilising the disks attached to the node and is represented by CStorPoolInstance(CSPI) custom resource in a Kubernetes cluster. One has freedom to specify the disks that they want to use for pool provisioning.

CSPC API comes with a variety of tunables and features and the API can be viewed for here

Once a CSPC is created, cspc-operator provision CSPI CR and pool-manager deployment on each node where cStor pool should be created. The pool-manager deployment watches for its corresponding CSPI on the node and finally executes commands to perform pool operations e.g pool provisioning.

More info on cStor Pool CRs can be found here.

Note: It is not recommended to modify the CSPI CR and pool-manager in the running cluster unless you know what you are trying to do. CSPC should be the only point of interaction.

Once the CStor pool(s) get provisioned successfully after creating CSPC, admin/user can create PVC to provision csi CStor volumes. When a user creates PVC, CStor CSI driver creates CStorVolumeConfig(CVC) resource, managed and reconciled by the cvc-controller which creates different volume-specific resources for each persistent volume, later managed by their respective controllers, more info can be found here.

The cStor operators work in conjunction with the cStor CSI driver to provide cStor volumes for stateful workloads.

Minimum Supported Versions

K8S : 1.18+

Usage

Raising Issues And PRs

If you want to raise any issue for cstor-operators please do that at openebs/openebs.

Contributing

OpenEBS welcomes your feedback and contributions in any form possible.

Code of conduct

Please read the community code of conduct here.

cstor-operators's People

Contributors

abhilashshetty04 avatar ajeetrai7 avatar akhilerm avatar arcolife avatar asquare14 avatar daximillian avatar didier-durand avatar ianroberts avatar jankoehnlein avatar kmova avatar mynktl avatar nareshdesh avatar niladrih avatar nisarg1499 avatar nsathyaseelan avatar parths007 avatar prateekpandey14 avatar ranjithwingrider avatar saintmalik avatar saltperfect avatar shovanmaity avatar shubham14bajpai avatar sonasingh46 avatar soniasingla avatar sreeharimohan avatar surajssd avatar survivant avatar vaniisgh avatar w3aman avatar zlymeda 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.