cstor-operators
Collection of enhanced Operators for OpenEBS cStor Data Engine.
Project Status
This project is under active development and is considered to be in alpha state.
The data engine operators works in conjunction with the cStor CSI driver to finally
provide a consumable volume for stateful workloads.
The current implementation supports the following Operations on cStor pools and volumes:
- Provisioning and De-provisioning of cStor pools.
- Pool expansion by adding disk.
- Disk replacement by removing a disk.
- Volume replica scale up and scale down.
- Volume resize.
We are actively working on the following additional tasks for the beta release:
- Reactor the Velero-plugin to work with cStor CSI abstractions
- Support migration from old cStor operators to new operators backed by CSI.
- Seamless upgrades
Table of contents:
Overview
At a high-level, cstor operators consists 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 obejct 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 nodes where cStor pool should
be created. The pool-manager deployment watches for its corresponding CSPI on the node and finally execute commands to
perform pool operations e.g pool provisioning.
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.
Issues And PRs
We consider issues also as a part of contribution to the project.
If you want to raise any issue for cstor-operators please do that at openebs/openebs.
We are tracking issues for all the OpenEBS components at the same place.
If you are unsure about how to proceed, do not hesitate in communicating in
OpenEBS community slack channel.
See contributing section to learn more about how to contribute to cstor-operators.
Contributing
Please read the contributing guidelines here.
Code of conduct
Pleae read the community code of conduct here.