Merge pull request #11290 from travisn/storage-provider-status
docs: Clarify in docs and readme that Rook focuses on Ceph
This commit is contained in:
4 files changed
+15
-121
No files matched your search
@@ -2,5 +2,4 @@ nav:
|
||||
- development-flow.md
|
||||
- development-environment.md
|
||||
- documentation.md
|
||||
- storage-providers.md
|
||||
- ...
|
||||
@@ -1,93 +0,0 @@
|
||||
---
|
||||
title: Storage Providers
|
||||
---
|
||||
|
||||
Rook is the home for operators for multiple storage providers. Each of these storage providers
|
||||
has specific requirements and each of them is very independent. There is no runtime dependency
|
||||
between the storage providers. Development is where the storage providers benefit from one another.
|
||||
|
||||
Rook provides a development framework with a goal of enabling storage providers to create
|
||||
operators for Kubernetes to manage their storage layer. As the storage provider community
|
||||
grows, we expect this framework to grow as common storage constructs are identified
|
||||
that will benefit the community. Rook does not aim to replace other frameworks or
|
||||
communities, but to fill gaps not provided by other core projects.
|
||||
|
||||
Storage providers in Rook are currently built on the [Controller Runtime](https://github.com/kubernetes-sigs/controller-runtime),
|
||||
but may also be built on other frameworks such as the [Operator SDK](https://sdk.operatorframework.io/)
|
||||
or [Kubebuilder](https://github.com/kubernetes-sigs/kubebuilder). The choice of the
|
||||
underlying framework is up to the storage provider.
|
||||
|
||||
Rook does not aim to be a general framework for storage, but to provide a
|
||||
very specific set of helpers to meet the storage provider needs in the Rook project.
|
||||
|
||||
## Rook Framework
|
||||
|
||||
Rook provides the following framework to assist storage providers in building an operator:
|
||||
|
||||
* Common golang packages shared by storage providers are in the main [Rook repo](https://github.com/rook/rook).
|
||||
* Common build scripts for building the operator images are in the main
|
||||
[Rook repo](https://github.com/rook/rook/tree/master/build).
|
||||
* Each provider has its own repo under the [Rook org](https://github.com/rook).
|
||||
* Multiple community members are given push access to the repo, including
|
||||
owners of the storage provider, Rook steering committee members,
|
||||
and other Rook maintainers if deemed helpful or necessary by the steering
|
||||
committee. Maintainers for the new provider are added according to the
|
||||
[governance](https://github.com/rook/rook/blob/master/GOVERNANCE.md).
|
||||
* Providers added to Rook prior to 2020 are grandfathered into the main
|
||||
[Rook repo](https://github.com/rook/rook).
|
||||
* Storage providers must follow the Rook [governance](https://github.com/rook/rook/blob/master/GOVERNANCE.md)
|
||||
in the interest of the good of the overall project. Storage providers have
|
||||
autonomy in their feature work, while collaboration with the community
|
||||
is expected for shared features.
|
||||
* A quarterly release cadence is in place for the operators in the main Rook repo.
|
||||
Operators in their own repo define their own cadence and versioning scheme as desired.
|
||||
* Storage providers own their release process, while following Rook best practices to
|
||||
ensure high quality.
|
||||
* Each provider owns independent CI based on GitHub actions, with patterns and build
|
||||
automation that can be re-used by providers
|
||||
* Docker images are pushed to the [Rook DockerHub](https://hub.docker.com/u/rook) where
|
||||
each storage provider has its own repo.
|
||||
* Helm charts are published to [charts.rook.io](https://charts.rook.io/release)
|
||||
* Documentation for the storage provider is to be written by the storage provider
|
||||
members. The build process will publish the documentation to the [Rook website](https://rook.io/docs/rook/latest/).
|
||||
* All storage providers are added to the [Rook.io website](https://rook.io/)
|
||||
* A great Slack community is available where you can communicate amongst developers and users
|
||||
|
||||
## Considering Joining Rook?
|
||||
|
||||
If you own a storage provider and are interested in joining the Rook project to create
|
||||
an operator, please consider the following:
|
||||
|
||||
* You are making a clear commitment to the development of the storage provider.
|
||||
Creating an operator is not a one-time engineering cost, but is a long term commitment
|
||||
to the community.
|
||||
* Support for a storage provider in Rook requires dedication and community support.
|
||||
* Do you really need an operator? Many storage applications (e.g. CSI drivers)
|
||||
can be deployed with tools such as a Helm chart and don't really need the
|
||||
flexibility of an operator.
|
||||
* Joining Rook is also about community, not just the framework.
|
||||
|
||||
## Engineering Requirements
|
||||
|
||||
The engineering costs of each storage provider include:
|
||||
|
||||
* Develop the operator
|
||||
* Rook maintainers will help answer questions along the way, but ultimately
|
||||
you own the development
|
||||
* If there are test failures in the CI, they should be investigated in a timely manner
|
||||
* If issues are opened in GitHub, they need investigation and triage to provide
|
||||
expectations about the priority and timeline
|
||||
* If users have questions in Slack, they should be answered in a timely manner.
|
||||
Community members can also be redirected to other locations if desired for the provider.
|
||||
* A regular cadence of releases is expected. Software always needs to evolve with new versions
|
||||
of K8s, accommodate new features in the storage provider, etc.
|
||||
* Each provider maintains a ROADMAP.md in the root of their repo, updates it regularly
|
||||
(e.g. quarterly or with the release cadence), and provides input to the overall Rook
|
||||
[roadmap](https://github.com/rook/rook/blob/master/ROADMAP.md) for common features.
|
||||
|
||||
### Inactive Providers
|
||||
|
||||
If a storage provider does not have engineering resources, Rook cannot claim to support it.
|
||||
After some months of inactivity Rook will deprecate a storage provider. The timing
|
||||
will be decided on a case by case basis by the steering committee. The repo and other artifacts
|
||||
for deprecated storage providers will be left intact for reference.
|
||||
@@ -4,13 +4,16 @@ title: Rook
|
||||
|
||||
# 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 is an open source **cloud-native storage orchestrator**, providing the platform, framework, and support for
|
||||
Ceph storage 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.
|
||||
[Ceph](https://ceph.com/) is a distributed storage system that provides file, block and object storage and is deployed in large scale production clusters.
|
||||
|
||||
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.
|
||||
Rook automates deployment and management of Ceph to provide self-managing, self-scaling, and self-healing storage services.
|
||||
The Rook operator does this by building on Kubernetes resources to deploy, configure, provision, scale, upgrade, and monitor Ceph.
|
||||
|
||||
The Ceph operator was declared stable in December 2018 in the Rook v0.9 release, providing a production storage platform for several years already.
|
||||
The Ceph operator was declared stable in December 2018 in the Rook v0.9 release, providing a production storage platform for many years.
|
||||
Rook is hosted by the [Cloud Native Computing Foundation](https://cncf.io) (CNCF) as a [graduated](https://www.cncf.io/announcements/2020/10/07/cloud-native-computing-foundation-announces-rook-graduation/) level project.
|
||||
|
||||
## Quick Start Guide
|
||||
|
||||
|
||||
@@ -11,20 +11,20 @@
|
||||
|
||||
# What is Rook?
|
||||
|
||||
Rook is an open source **cloud-native storage orchestrator** for Kubernetes, providing the platform, framework, and support for a diverse set of storage solutions to natively integrate with cloud-native environments.
|
||||
Rook is an open source **cloud-native storage orchestrator** for Kubernetes, providing the platform, framework, and support for Ceph storage to natively integrate with Kubernetes.
|
||||
|
||||
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.
|
||||
[Ceph](https://ceph.com/) is a distributed storage system that provides file, block and object storage and is deployed in large scale production clusters.
|
||||
|
||||
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.
|
||||
Rook automates deployment and management of Ceph to provide self-managing, self-scaling, and self-healing storage services.
|
||||
The Rook operator does this by building on Kubernetes resources to deploy, configure, provision, scale, upgrade, and monitor Ceph.
|
||||
|
||||
For more details about the storage solutions currently supported by Rook, please refer to the [project status section](#project-status) below.
|
||||
We plan to continue adding support for other storage systems and environments based on community demand and engagement in future releases. See our [roadmap](ROADMAP.md) for more details.
|
||||
The status of the Ceph storage provider is **Stable**. Features and improvements will be planned for many future versions. Upgrades between versions are provided to ensure backward compatibility between releases.
|
||||
|
||||
Rook is hosted by the [Cloud Native Computing Foundation](https://cncf.io) (CNCF) as a [graduated](https://www.cncf.io/announcements/2020/10/07/cloud-native-computing-foundation-announces-rook-graduation/) level project. If you are a company that wants to help shape the evolution of technologies that are container-packaged, dynamically-scheduled and microservices-oriented, consider joining the CNCF. For details about who's involved and how Rook plays a role, read the CNCF [announcement](https://www.cncf.io/blog/2018/01/29/cncf-host-rook-project-cloud-native-storage-capabilities).
|
||||
|
||||
## Getting Started and Documentation
|
||||
|
||||
For installation, deployment, and administration, see our [Documentation](https://rook.github.io/docs/rook/latest).
|
||||
For installation, deployment, and administration, see our [Documentation](https://rook.github.io/docs/rook/latest-release) and [QuickStart Guide](https://rook.github.io/docs/rook/latest-release/Getting-Started/quickstart).
|
||||
|
||||
## Contributing
|
||||
|
||||
@@ -52,7 +52,7 @@ Please use the following to reach members of the community:
|
||||
- Twitter: [@rook_io](https://twitter.com/rook_io)
|
||||
- Security topics: [cncf-rook-security@lists.cncf.io](#reporting-security-vulnerabilities)
|
||||
|
||||
### Community Meeting
|
||||
## Community Meeting
|
||||
|
||||
A regular community meeting takes place every other [Tuesday at 9:00 AM PT (Pacific Time)](https://zoom.us/j/392602367?pwd=NU1laFZhTWF4MFd6cnRoYzVwbUlSUT09).
|
||||
Convert to your [local timezone](http://www.thetimezoneconverter.com/?t=9:00&tz=PT%20%28Pacific%20Time%29).
|
||||
@@ -65,23 +65,8 @@ Anyone who wants to discuss the direction of the project, design and implementat
|
||||
- [Current agenda and past meeting notes](https://docs.google.com/document/d/1exd8_IG6DkdvyA0eiTtL2z5K2Ra-y68VByUUgwP7I9A/edit?usp=sharing)
|
||||
- [Past meeting recordings](https://www.youtube.com/playlist?list=PLP0uDo-ZFnQP6NAgJWAtR9jaRcgqyQKVy)
|
||||
|
||||
## Project Status
|
||||
|
||||
The status of each storage provider supported by Rook can be found in the table below.
|
||||
Each API group is assigned its own individual status to reflect their varying maturity and stability.
|
||||
More details about API versioning and status in Kubernetes can be found on the Kubernetes [API versioning page](https://kubernetes.io/docs/concepts/overview/kubernetes-api/#api-versioning), but the key difference between the statuses are summarized below:
|
||||
|
||||
- **Alpha:** The API may change in incompatible ways in a later software release without notice, recommended for use only in short-lived testing clusters, due to increased risk of bugs and lack of long-term support.
|
||||
- **Beta:** Support for the overall features will not be dropped, though details may change. Support for upgrading or migrating between versions will be provided, either through automation or manual steps.
|
||||
- **Stable:** Features will appear in released software for many subsequent versions and support for upgrading between versions will be provided with software automation in the vast majority of scenarios.
|
||||
|
||||
| Name | Details | API Group | Status |
|
||||
| ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | ------ |
|
||||
| Ceph | [Ceph](https://ceph.com/) is a distributed storage system that provides file, block and object storage and is deployed in large scale production clusters. | ceph.rook.io/v1 | Stable |
|
||||
|
||||
This repo is for the Ceph storage provider. The [Cassandra](https://github.com/rook/cassandra) and [NFS](https://github.com/rook/nfs) storage providers moved to a separate repo to allow for each [storage provider](https://rook.github.io/docs/rook/latest/storage-providers.html) to have an independent development and release schedule.
|
||||
|
||||
### Official Releases
|
||||
## Official Releases
|
||||
|
||||
Official releases of Rook can be found on the [releases page](https://github.com/rook/rook/releases).
|
||||
Please note that it is **strongly recommended** that you use [official releases](https://github.com/rook/rook/releases) of Rook, as unreleased versions from the master branch are subject to changes and incompatibilities that will not be supported in the official releases.
|
||||
|
||||
Reference in new issue
Block a user