Collection of enhanced Operators for OpenEBS cStor Data Engine.
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
- Quickly deploy it on K8s and get started
- Pool Operations Tutorial
- High level overview
- Issues and PRs
- Contributing
- Code of conduct
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.
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.
Please read the contributing guidelines here.
Pleae read the community code of conduct here.