Signed-off-by: Guy Margalit <guymguym@gmail.com> Co-Authored-By: Sébastien Han <seb@redhat.com> Co-Authored-By: Travis Nielsen <tnielsen@redhat.com> This change is meant to allow running operators locally on a developer machine. The idea is to allow faster development cycles by reducing the time and complexity of building -> deploying -> debugging on cluster. For operators that rely only on kubernetes API this works easily - see cockroachdb and minio examples in development-flow doc. The change includes: - rook.NewContext() - Refactored to remove repeating initialization code that was copy-pasted in most of the operators in order to create the clusterd.Context and the Clientsets. Also it detects the mode of working in-cluster vs external and sets up the external mode with standard user config (~/.kube/config) and a job executor. - rook.GetOperatorImage() - Refactor this repeating code in many operators to detect the operator pod image. Also added a global flag --operator-image that developers can use to override this when running locally. - rook.TerminateOnError() - Added a convenient function.
Rook
Rook is an open source cloud-native storage orchestrator, providing the platform, framework, and support for a diverse set of storage solutions to natively integrate with cloud-native environments.
Rook turns storage software into self-managing, self-scaling, and self-healing storage services. It does this by automating deployment, bootstrapping, configuration, provisioning, scaling, upgrading, migration, disaster recovery, monitoring, and resource management. Rook uses the facilities provided by the underlying cloud-native container management, scheduling and orchestration platform to perform its duties.
Rook integrates deeply into cloud native environments leveraging extension points and providing a seamless experience for scheduling, lifecycle management, resource management, security, monitoring, and user experience.
For more details about the status of storage solutions currently supported by Rook, please refer to the project status section of the Rook repository. We plan to continue adding support for other storage systems and environments based on community demand and engagement in future releases.
Quick Start Guides
Starting Rook in your cluster is as simple as two kubectl commands. See our Quickstart guide for the details on what you need to get going.
Storage Provider Designs
High-level Storage Provider design documents:
| Storage Provider | Status | Description |
|---|---|---|
| Ceph | Stable | Ceph is a highly scalable distributed storage solution for block storage, object storage, and shared file systems with years of production deployments. |
| EdgeFS | Beta | EdgeFS is high-performance and fault-tolerant object storage system with Geo-Transparent data access to file, block or object. |
Low level design documentation for supported list of storage systems collected at design docs section.