rook

module
v1.1.0-beta.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 7, 2019 License: Apache-2.0

README

Rook

Build Status GitHub release Docker Pulls Go Report Card CII Best Practices FOSSA Status Slack Twitter Follow

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 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 storage solutions currently supported by Rook, please refer to the project status section 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 for more details.

Rook is hosted by the Cloud Native Computing Foundation (CNCF) as an incubating 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.

Getting Started and Documentation

For installation, deployment, and administration, see our Documentation.

Contributing

We welcome contributions. See Contributing to get started.

Report a Bug

For filing bugs, suggesting improvements, or requesting new features, please open an issue.

Contact

Please use the following to reach members of the community:

Community Meeting

A regular community meeting takes place every other Tuesday at 9:00 AM PT (Pacific Time). Convert to your local timezone.

Any changes to the meeting schedule will be added to the agenda doc and posted to Slack #announcements and the rook-dev mailing list.

Anyone who wants to discuss the direction of the project, design and implementation reviews, or general questions with the broader community is welcome and encouraged to join.

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, 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
Rook Framework The framework for common storage specs and logic used to support other storage providers. rook.io/v1alpha2 Alpha
Ceph Ceph 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
CockroachDB CockroachDB is a cloud-native SQL database for building global, scalable cloud services that survive disasters. cockroachdb.rook.io/v1alpha1 Alpha
Cassandra Cassandra is a highly available NoSQL database featuring lightning fast performance, tunable consistency and massive scalability. Scylla is a close-to-the-hardware rewrite of Cassandra in C++, which enables much lower latencies and higher throughput. cassandra.rook.io/v1alpha1 Alpha
EdgeFS EdgeFS is high-performance and fault-tolerant object storage system with Geo-Transparent data access to file, block or object. edgefs.rook.io/v1 Stable
Minio Minio is a high performance distributed object storage server, designed for large-scale private cloud infrastructure. minio.rook.io/v1alpha1 Alpha
NFS Network File System (NFS) allows remote hosts to mount file systems over a network and interact with those file systems as though they are mounted locally. nfs.rook.io/v1alpha1 Alpha
YugabyteDB YugabyteDB is a high-performance, cloud-native distributed SQL database which can tolerate disk, node, zone and region failures automatically. yugabytedb.rook.io/v1alpha1 Alpha
Official Releases

Official releases of Rook can be found on the releases page. Please note that it is strongly recommended that you use official 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. Builds from the master branch can have functionality changed and even removed at any time without compatibility support and without prior notice.

Licensing

Rook is under the Apache 2.0 license.

FOSSA Status

Directories

Path Synopsis
cmd
rook/util
Package util contains top-level utility commands which are neither storage backends nor associated with a particular storage backend.
Package util contains top-level utility commands which are neither storage backends nor associated with a particular storage backend.
pkg
apis/cassandra.rook.io/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
apis/cockroachdb.rook.io/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
apis/minio.rook.io/v1alpha1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
apis/nfs.rook.io/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
apis/yugabytedb.rook.io/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/cassandra.rook.io/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/cassandra.rook.io/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/ceph.rook.io/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/ceph.rook.io/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/cockroachdb.rook.io/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/cockroachdb.rook.io/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/edgefs.rook.io/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/edgefs.rook.io/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/minio.rook.io/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/minio.rook.io/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/nfs.rook.io/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/nfs.rook.io/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/rook.io/v1alpha2
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/rook.io/v1alpha2/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/yugabytedb.rook.io/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/yugabytedb.rook.io/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
daemon/ceph/agent
Package agent to manage Kubernetes storage attach events.
Package agent to manage Kubernetes storage attach events.
daemon/ceph/agent/flexvolume
Package flexvolume to manage Kubernetes storage attach events.
Package flexvolume to manage Kubernetes storage attach events.
daemon/ceph/agent/flexvolume/attachment
Package attachment to manage Kubernetes storage attach events.
Package attachment to manage Kubernetes storage attach events.
daemon/ceph/config
Package config provides methods for creating and formatting Ceph configuration files for daemons.
Package config provides methods for creating and formatting Ceph configuration files for daemons.
daemon/discover
Package discover to discover unused devices.
Package discover to discover unused devices.
operator/ceph
Package operator to manage Kubernetes storage.
Package operator to manage Kubernetes storage.
operator/ceph/agent
Package agent to manage Kubernetes storage attach events.
Package agent to manage Kubernetes storage attach events.
operator/ceph/cluster
Package cluster to manage Kubernetes storage.
Package cluster to manage Kubernetes storage.
operator/ceph/cluster/mgr
Package mgr for the Ceph manager.
Package mgr for the Ceph manager.
operator/ceph/cluster/mon
Package mon provides methods for creating clusters of Ceph mons in Kubernetes, for monitoring the cluster's status, for taking corrective actions if the status is non-ideal, and for reporting mon cluster failures.
Package mon provides methods for creating clusters of Ceph mons in Kubernetes, for monitoring the cluster's status, for taking corrective actions if the status is non-ideal, and for reporting mon cluster failures.
operator/ceph/cluster/osd
Package osd for the Ceph OSDs.
Package osd for the Ceph OSDs.
operator/ceph/cluster/osd/config
Package config for OSD config managed by the operator Package config for OSD config managed by the operator Copyright 2016 The Rook Authors.
Package config for OSD config managed by the operator Package config for OSD config managed by the operator Copyright 2016 The Rook Authors.
operator/ceph/cluster/rbd
Package rbd for mirroring
Package rbd for mirroring
operator/ceph/config
Package config provides methods for generating the Ceph config for a Ceph cluster and for producing a "ceph.conf" compatible file from the config as well as Ceph command line-compatible flags.
Package config provides methods for generating the Ceph config for a Ceph cluster and for producing a "ceph.conf" compatible file from the config as well as Ceph command line-compatible flags.
operator/ceph/config/keyring
Package keyring provides methods for accessing keyrings for Ceph daemons stored securely in Kubernetes secrets.
Package keyring provides methods for accessing keyrings for Ceph daemons stored securely in Kubernetes secrets.
operator/ceph/disruption
Package controllers contains all the controller-runtime controllers and exports
Package controllers contains all the controller-runtime controllers and exports
operator/ceph/disruption/clusterdisruption
Package clusterdisruption implements the controller for ensuring that drains occus in a safe manner.
Package clusterdisruption implements the controller for ensuring that drains occus in a safe manner.
operator/ceph/disruption/nodedrain
Package nodedrain implements the controller for ensuring that drain detection deployments exist.
Package nodedrain implements the controller for ensuring that drain detection deployments exist.
operator/ceph/file
Package file manages a CephFS filesystem and the required daemons.
Package file manages a CephFS filesystem and the required daemons.
operator/ceph/file/mds
Package mds provides methods for managing a Ceph mds cluster.
Package mds provides methods for managing a Ceph mds cluster.
operator/ceph/nfs
Package nfs manages NFS ganesha servers for Ceph
Package nfs manages NFS ganesha servers for Ceph
operator/ceph/object
Package object for the Ceph object store.
Package object for the Ceph object store.
operator/ceph/object/user
Package objectuser to manage a rook object store user.
Package objectuser to manage a rook object store user.
operator/ceph/pool
Package pool to manage a rook pool.
Package pool to manage a rook pool.
operator/ceph/provisioner
Package provisioner to provision Rook volumes on Kubernetes.
Package provisioner to provision Rook volumes on Kubernetes.
operator/ceph/spec
Package spec provides Kubernetes controller/pod/container spec items used for many Ceph daemons
Package spec provides Kubernetes controller/pod/container spec items used for many Ceph daemons
operator/ceph/test
Package test provides common resources useful for testing many Ceph daemons.
Package test provides common resources useful for testing many Ceph daemons.
operator/cockroachdb
Package cockroachdb to manage a cockroachdb cluster.
Package cockroachdb to manage a cockroachdb cluster.
operator/discover
Package discover to discover devices on storage nodes.
Package discover to discover devices on storage nodes.
operator/edgefs
Package operator to manage Kubernetes storage.
Package operator to manage Kubernetes storage.
operator/edgefs/cluster/mgr
Package mgr for the Edgefs manager.
Package mgr for the Edgefs manager.
operator/edgefs/cluster/prepare
Package prepare for the Edgefs manager.
Package prepare for the Edgefs manager.
operator/edgefs/cluster/target/config
Package config for Edgefs target config managed by the operator
Package config for Edgefs target config managed by the operator
operator/edgefs/iscsi
scale-out, multi-cloud Edge-X ISCSI services controller Package ISCSI for the Edgefs manager.
scale-out, multi-cloud Edge-X ISCSI services controller Package ISCSI for the Edgefs manager.
operator/edgefs/isgw
scale-out, multi-cloud Edge-X ISGW (Inter-Segment Gateway) services controller Package ISGW for the Edgefs manager.
scale-out, multi-cloud Edge-X ISGW (Inter-Segment Gateway) services controller Package ISGW for the Edgefs manager.
operator/edgefs/nfs
scale-out, multi-cloud NFS Package nfs for the Edgefs manager.
scale-out, multi-cloud NFS Package nfs for the Edgefs manager.
operator/edgefs/s3
scale-out, multi-cloud Edge-X S3 services controller Package S3 for the Edgefs manager.
scale-out, multi-cloud Edge-X S3 services controller Package S3 for the Edgefs manager.
operator/edgefs/s3x
scale-out, multi-cloud Edge-X S3 services controller Package s3x for the Edgefs manager.
scale-out, multi-cloud Edge-X S3 services controller Package s3x for the Edgefs manager.
operator/edgefs/swift
scale-out, multi-cloud OpenStack/SWIFT services controller Package SWIFT for the Edgefs manager.
scale-out, multi-cloud OpenStack/SWIFT services controller Package SWIFT for the Edgefs manager.
operator/k8sutil
Package k8sutil for Kubernetes helpers.
Package k8sutil for Kubernetes helpers.
operator/minio
Package minio to manage a Minio object store.
Package minio to manage a Minio object store.
operator/nfs
Package nfs to manage an NFS export.
Package nfs to manage an NFS export.
operator/test
Package test provides common resources useful for testing many operators.
Package test provides common resources useful for testing many operators.
operator/yugabytedb
Package operator to manage Kubernetes storage.
Package operator to manage Kubernetes storage.
test
Package test for the operator tests
Package test for the operator tests
tests

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL