Commit Graph
172 Commits
Author SHA1 Message Date
Satoru Takeuchi c2adbdd8a8 ceph: remove an missing field in crd
`CephObjectStore->gateway->type` is not used. Rook has only supported s3-like
interface and hasn't had no code which handles `type` field.

In addition, this field was removed from CRD in the following commit.

ceph: auto-gen crds
31db03fece

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2021-05-17 07:51:13 +00:00
Santosh Pillai aee8f56853 ceph: update podDisruptionBudget controller for OSD
This PR has following changes around OSD pdbs
- Detect node drains more reliably. When OSD is down and OSD pod is not scheduled to any node or if the scheduled node is not ready, then assume that node is draining.
- Don't set no-out flag on the failure domain if the OSD is down due to reasons other than node drain (say disk failure)
- update unit tests
- update design doc to reflect above changes

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2021-05-10 12:59:40 +05:30
Travis Nielsen 43594adbbb ceph: example manifests deploy with v15.2.11
The latest octopus release is v15.2.11 so we should use
it in the default examples to pick up the latest fixes.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-04-22 08:54:08 -06:00
Blaine Gardner 795124b7a8 ceph: update osds in parallel
Update OSDs in parallel per the design in
design/ceph/update-osds-in-parallel.md

The max number of OSDs updated in parallel is currently fixed at 20.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-03-29 10:55:28 -06:00
Sébastien Han 31db03fece ceph: auto-gen crds
Finally! We can now stop editing manually our crds definition. Simply
run `make crds-gen`. These two files:

* `cluster/examples/kubernetes/ceph/crds.yaml`
* `cluster/charts/rook-ceph/templates/resources.yaml`

will be autogenerated for us.

We rely on the controller-gen tool, it reads our API definitions from
`pkg/apis/` and produces the CRD files accordingly.

It uses "markers" to add extra yaml fields to the CRD, for instance we
have a lot fields with:

```
nullable: true
x-kubernetes-preserve-unknown-fields: true
```

The corresponding API type markers are:

```
// +kubebuilder:pruning:PreserveUnknownFields
// +nullable
```

For more API convention see
https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#optional-vs-required
and for the markers see: https://book.kubebuilder.io/reference/markers/crd-validation.html

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-03-16 09:16:24 +01:00
subhamkrai 51910d0fed docs: updating according to the markdown convention
this commit update all the docs according to the
markdown convention for the command.

[skip ci]

Signed-off-by: subhamkrai <srai@redhat.com>
2021-03-05 10:45:04 +05:30
Blaine Gardner efa7d66d45 ceph: remove driveGroup support
Remove features and design that supports adding OSDs to Ceph clusters
via `spec:driveGroups`. Update the Ceph upgrade doc that informs users
who currently use Drive Groups (we believe there are none of these
users) how to migrate to using the `spec:storage` config.

Resolves https://github.com/rook/rook/issues/7275

Revert "ceph: fix drive group deployment failure"
This reverts commit 76f1d9944e.

Revert "ceph: osd: add drive groups spec to cluster CR"
This reverts commit 7117fc12b7.

Revert "design: ceph orchestrator module add/remove OSDs"
This reverts commit 178187d035.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-02-25 17:08:47 -07:00
Blaine Gardner 818342cbfb ceph: update build and examples to use v15.2.9
There are still references to v15.2.7 in integration tests to allow
testing OSDs on partitions.

The newest dated Ceph image is ceph/ceph:v15.2.9-20210224

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-02-24 15:15:26 -07:00
Blaine Gardner 2c624df7ff docs: add design to update ceph osds in parallel
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-02-18 09:58:08 -07:00
Travis Nielsen 043f947321 build: remove yugabytedb operator
The YugabyteDB team has decided to move support of their operator
to a new repo at https://github.com/yugabyte/yugabyte-operator.
The operator in Rook is no longer needed. Further usage of
the YugabyteDB operator is recommended at the new location.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-02-06 00:03:41 -07:00
Travis Nielsen 1f2346a988 docs: remove stale ozone design doc
The ozone operator was proposed over a year ago and then
was not implemented. Removing the design doc to clean up
since there was no further community support.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-01-29 15:48:35 -07:00
Travis Nielsen 53ed11f15b build: remove the edgefs operator from rook
The EdgeFS operator has been deprecated for some time in Rook.
If the replacement is added back to Rook it can be completed
according to the new guidelines in the documentation.
https://rook.io/docs/rook/master/storage-providers.html

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-01-25 17:51:24 -07:00
Travis Nielsen 89a9a35e74 Merge pull request #6425 from thotz/bucket-notification-designdoc
ceph: bucket notifications CRD documentation
2021-01-25 12:18:27 -07:00
Sébastien Han 720380e3d3 Merge pull request #7024 from travisn/remove-cockroachdb
build: Remove the CockroachDB operator from Rook
2021-01-25 10:04:44 +01:00
Guillaume Moutier b28ce38ca9 ceph: bucket notifications CRD documentation
This documents the Ceph topics and buckets notification management by rook through CRs.

Signed-off-by: Guillaume Moutier <guillaume.moutier@gmail.com>
Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2021-01-22 10:08:38 +05:30
subhamkrai 9898e00ac5 ceph: update admission controller to v1 from v1beta1
this commit update admission controller to v1 from
v1beta1. v1beta1 is deprecated in v1.16+ and unavailable
in v1.22+.

Signed-off-by: subhamkrai <srai@redhat.com>
2021-01-21 22:26:02 +05:30
Travis Nielsen 2294851ca3 build: remove the cockroachdb operator from rook
The cockroachDB operator has not had community support in Rook.
Therefore, the time has come to deprecate and remove it.
If the sources are still needed, there is always git history.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-01-20 17:28:58 -07:00
Travis Nielsen b71c3ac293 ceph: add mon design to the official docs
The mon design and handling of failover is a topic that frequently
needs to be understood by rook users, thus moving this design doc
to the documentation and making some updates based on the latest
behavior.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-01-14 13:13:56 -07:00
Travis Nielsen 3beb625f08 ceph: update examples and operator to Ceph v15.2.8
The latest octopus release is now out with v15.2.8. We update the
operator base image and the examples to run with this version.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-17 18:21:15 -07:00
aisuko 5ccde7691c docs: replace the broken addresses of the doc
Replace the old links which were broken.

Signed-off-by: aisuko <urakiny@gmail.com>
2020-12-04 17:14:36 +08:00
Travis Nielsen 0a35a08f2f ceph: update examples and base image to v15.2.7
With the release of the latest octopus v15.2.7 we update the base
of the operator image and set the examples to use the same release
to pick up the security and other bug fixes.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-01 12:05:39 -07:00
Sébastien Han 3da9f2212f bot: fix codespell issue
Make the bot happy.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-11-24 11:41:09 +01:00
Travis Nielsen 54560250e9 Merge pull request #6497 from sp98/osd-pdb-reconciler
ceph: OSD PDB reconciler changes
2020-11-18 17:30:24 -07:00
Santosh Pillai 8602b9c116 ceph: osd pdb reconciler changes
-creates a single PDB (max-unavailable=1) for all OSDs.  This PDB allows one OSD to go down at a given time.
-When a drain is detected, blocking PDBs (max-unavailable=0) will be created for each failure domain that is not being drained and the main PDB (max-unavilable=1) will be deleted. This will allow all the OSDs in the currently drained failure domain to be removed while blocking the deletion  of OSDs in other failure domains.
-Once the PGs are healthy again, the blocking PDBs will be deleted and the main PDB will be restored.
-Add PG healthcheck timeout
-Delete any legacy node drain pods and blocking OSD PDBs

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2020-11-18 18:25:07 +05:30
Sébastien Han 2686f4e23e Merge pull request #6592 from sp98/update-cleanupPolicy-design
ceph: update cleanupPolicy design doc
2020-11-18 10:01:50 +01:00
Santosh Pillai cd936b64db ceph: update cleanupPolicy design doc
Cleanup Policy design doc is not up to date to with respect to latest implementation. This PR updates the design doc.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2020-11-17 12:59:32 +05:30
Travis Nielsen bf1d3888f4 ceph: factor out CRDs from the common.yaml and helm chart
The CRDs need to be installed and updated separately from the
rest of the manifests. Helm charts also do not have a way to update
CRDs, therefore, any updates to the CRD schema must be done separately
from the helm chart. Now the CRDs are created in a new crd.yaml that must
be created along with common.yaml and before creating the operator.

The helm chart still contains the CRDs for initial creation, though
the helm chart will never update or remove them.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-11-11 12:16:20 -07:00
Mateusz Gozdek 8ba3762fa4 docs: fix bunch of typos
Found by running the following command:

codespell -S .git,*.png,*.jpg -L \
aks,keyserver,atleast,dne,ser,ist,files\',ba,dum,iam,te -f -H

Signed-off-by: Mateusz Gozdek <mgozdekof@gmail.com>
2020-11-06 10:01:04 +01:00
Travis Nielsen a5b9fbc994 ceph: update base image and examples to v15.2.5
For the v1.5 release we use the latest version of ceph by default,
which is now v15.2.5

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-11-05 15:50:23 -07:00
subhamkraiandtravisn 1b2c15041f ceph: update deprecated CRD apiextensions.k8s.io/v1beta1 to v1
the apiextensions.k8s.io/v1beta1 version of CustomResourceDefinition
is deprecated in Kubernetes v1.16 and will no longer be supported from
v1.19. For now, we changing only for ceph and it's related documented.

Signed-off-by: subhamkrai <srai@redhat.com>
Co-authored-by: travisn <tnielsen@redhat.com>
Signed-off-by: subhamkrai <srai@redhat.com>
2020-10-29 06:26:10 +05:30
Travis Nielsen 23e4b755b4 ceph: design doc for stretch clusters
Design document to support stretch clusters with an arbiter mon
based on the new design for stretch clusters in Ceph.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-10-12 15:33:33 -06:00
Travis Nielsen 2f86051b1c docs: remove obsolete reference to v1alpha2 in design doc
The storageClassDeviceSets unnecessarily references the obsolete v1alpha2
version.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-10-09 12:53:45 -06:00
Ahmad Nurus S 76c0bfd0c3 nfs: design nfs quota
Signed-off-by: Ahmad Nurus S <prksu.sh@gmail.com>
2020-09-24 22:12:02 +07:00
Alexander Trost be16bc455f docs: operator use rbac.authorization.k8s.io/v1
This replaces any uses of `rbac.authorization.k8s.io/v1beta1` with
`rbac.authorization.k8s.io/v1` affecting RBAC objects like ClusterRole
and ClusterRoleBindings, etc. to make it consistent.
This is done as some RBAC objects used the `v1beta1` and others already
using `v1`.

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2020-08-20 12:08:32 +02:00
Jared Watts 4f9dcfd1f3 Merge pull request #5830 from prksu/design-nfs-provisioner
doc: design nfs provisioner controlled by operator
2020-08-04 16:57:21 +02:00
Ahmad Nurus S f3352d44de docs: design nfs provisioner controlled by operator
Signed-off-by: Ahmad Nurus S <prksu.sh@gmail.com>
2020-08-04 17:54:21 +07:00
Jiffin Tony Thottan b91d1aedee docs: design doc for bucket policy feature
Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2020-07-23 18:09:26 +05:30
Ali Maredia 9dd0ea894a ceph: documentation for pulling a realm for multisite
This commit adds design revisions, examples, and
documentation for object multisite.

Changes to the CephObjectRealm to pull a realm
from another cluster, and the zone for creating
pools are amongst the larger changes

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2020-07-21 16:46:18 -04:00
Ali Maredia 0f7e55780c ceph: add pool creation for ceph-object-zone
When zones are created the ceph RGWs inside the
those zones should be using pools with the zones
name not the object-store's name

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2020-07-21 13:30:41 -04:00
Blaine Gardner 7117fc12b7 ceph: osd: add drive groups spec to cluster CR
Add the ability to provision Ceph OSDs with Drive Groups.
This adds Drive Groups to the CephCluster CRD, and it sets code
in place for propagating this config to the OSD provisioning pod.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2020-07-14 09:43:03 -06:00
Sébastien Han ccb52b84e6 ceph: configurable status checks and livenessprobe
This commit allows us to configure status check for each daemon:

* "mon": health check on the ceph monitors (quorum)
* "osd": health check on the ceph osds
* "status": ceph health status check

Each check is controlled by the following settings:

* disabled: whether to disable the check (default: false)
* internal: interval to run the check
* timeout: only valid for mons, is the timeout for unresponsive mon
before failling over.

Example to disable the status health check:

```yaml
healthCheck:
  daemonHealth:
    status:
      disabled: true
```

As part of that, pod's livenessprobe can now be configured via the
following settings:

* disabled: whether to enable or not
* probe: override the current probe in place by a new one

```yaml
healthCheck:
  livenessProbe:
    mon:
      disabled: true
```

Closes: https://github.com/rook/rook/issues/5772
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-07-10 19:21:59 +02:00
Travis Nielsen dbae36b2bb ceph: update to the latest octopus release
Update the base operator image and cluster examples to use the latest
octopus release v15.2.4. Also cleanup some old examples and unit tests
that were still based on mimic.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-07-06 12:11:47 -06:00
Sébastien Han 4a8069321e Merge pull request #5618 from leseb/external-monitoring-design
docs: add external monitoring design
2020-06-16 15:51:03 +02:00
Sébastien Han c5095fa74a docs: add external monitoring design
Enhance the external cluster functionality by plugin monitoring.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-16 15:43:19 +02:00
Jared Watts c0ed19aa4b Merge pull request #5567 from prksu/design-nfs-controller-runtime
design: nfs operator using controller-runtime
2020-06-15 12:05:49 -07:00
Sébastien Han db17533435 docs: add design doc template
Rook already has a design process in place when introducing new
functionality. The only missing thing is a clear template to bring
consistency in our design documents.

This is inspired and shrunk version of
https://github.com/openshift/enhancements/tree/master/guidelines to add
some guidelines when it comes to writing a design document.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-10 19:05:14 +02:00
Ahmad Nurus S f5f6484869 docs: design nfs operator using controller-runtime
This commit is adding a design to implement controller-runtime in nfs operator

Signed-off-by: Ahmad Nurus S <prksu.sh@gmail.com>
2020-06-10 23:41:15 +07:00
Ahmad Nurus S 714d654ec4 design: rename nfs object kind
This commit rename nfs object kind with actually implemented name `NFSServer`
instead of `NetworkFileSystem`. This commit also fix some bad url.

Signed-off-by: Ahmad Nurus S <prksu.sh@gmail.com>
2020-05-25 23:31:28 +07:00
Sébastien Han a760b6d5ae doc: ceph fix rgw links
links were pointing to dead pages.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-05-13 17:16:49 +02:00
Travis Nielsen 2eebfd5019 Merge pull request #5151 from vbnrh/rook-admission-controller-design-doc
Rook: Design document for admission controller support in rook
2020-04-14 09:14:24 -06:00