diff --git a/Documentation/Contributing/.pages b/Documentation/Contributing/.pages index e98330f88..f1474069f 100644 --- a/Documentation/Contributing/.pages +++ b/Documentation/Contributing/.pages @@ -2,5 +2,4 @@ nav: - development-flow.md - development-environment.md - documentation.md - - storage-providers.md - ... diff --git a/Documentation/Contributing/storage-providers.md b/Documentation/Contributing/storage-providers.md deleted file mode 100644 index 311dc1599..000000000 --- a/Documentation/Contributing/storage-providers.md +++ /dev/null @@ -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. diff --git a/Documentation/README.md b/Documentation/README.md index 98db404f2..d49595108 100644 --- a/Documentation/README.md +++ b/Documentation/README.md @@ -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 diff --git a/README.md b/README.md index bf2df1db1..9d358670f 100644 --- a/README.md +++ b/README.md @@ -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.