Commit Graph
2042 Commits
Author SHA1 Message Date
John Mulligan e67b0317c7 doc: document csi naming "prefix" as the rook operator namespace
Update the rbd and cephfs docs to include the new prefixed style
of name for the rook-managed csi instances. Document that this
prefix must match the namespace the rook operator is deployed in.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2019-08-14 12:49:38 -04:00
Travis Nielsen b240c30050 Merge pull request #3597 from mgfritch/wip-ceph-pool-doc
docs: Add Clarity to Ceph CRDs
2019-08-13 14:59:24 -06:00
Michael Fritch fbf9f95378 docs: Add Clarity to Ceph CRDs
- Improve readability of 'Replicated' and 'Erasure Coded' sections
- Clarify replicated sample requires 1 OSD located on 3 different nodes
- Add whitespace to 'Pool Settings' section
- Add link to the k8s 'StorageClass' concept
- Rename instances of 'object store' as literal
`CephObjectStore`
- Rename instances of 'object store user' as literal
`CephObjectStoreUser`
- Other minor verbiage and syntax clean-up

Signed-off-by: Michael Fritch <mfritch@suse.com>
2019-08-13 10:24:19 -06:00
travisn 113da4a94f update the default ceph version from 14.2.1 to 14.2.2
The Nautilus v14.2.2 release was out last week. This is the new
default version for Rook in the documentation and manifests.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-13 07:23:00 -06:00
travisn 9a3dc52a11 ceph: minimum version allowed is mimic 13.2.4
With the 1.1 release we should not be creating bluestore OSDs
with rook's legacy partitioning scheme. All new bluestore OSDs
should be created with ceph-volume. Therefore, the miminum
version allowed is a version of mimic supporting ceph-volume.

This commit also adds consistent version checking between
the Add and Update methods for the operator handling the
CR events.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-13 07:22:59 -06:00
Ashish Ranjanandrohan47 157975d7bf Updated documentations and release notes for StorageClassDeviceSets
- Updated Ceph Cluster CRD docuementation on how to use StorageClassDeviceSets to create OSD on PVC with examples CRD
- Updated the release notes with the new StorageClassDeviceSets functionality.

Co-authored-by: rohan47 <rohgupta@redhat.com>
Co-authored-by: Ashish Ranjan <aranjan@redhat.com>
Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2019-08-12 09:25:41 -06:00
Kristoffer Grönlund 71e51bf0a0 Documentation (Ceph): Fix typos and formatting
Mostly minor spelling mistakes and formatting cleanups.

Signed-off-by: Kristoffer Grönlund <kgronlund@suse.com>
2019-08-12 10:08:20 +02:00
Travis Nielsen 0a79c82543 Merge pull request #3562 from travisn/enable-csi-driver
Enable the ceph-csi driver by default
2019-08-07 11:53:17 -06:00
travisn 0a3fbf62f3 enable the ceph-csi driver by default
CSI is now the preferred storage driver for Rook.
By default both the CSI and flex drivers will be started
by the operator. In a future release the flex driver
will be deprecated, but for now is still supported.

The drivers can be disabled with an environment
variable in the operator deployment in operator.yaml.
If users are only using one driver or the other there is
no need to enable both drivers.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-07 10:00:41 -06:00
Travis Nielsen 7fb43d72eb Merge pull request #3546 from noahdesu/mon-pvc
ceph: base monitor storage of pvc
2019-08-02 22:25:57 -06:00
Noah Watkins 4173c5544e ceph: base monitor storage of pvc
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2019-08-02 10:30:23 -07:00
Umanga Chapagain d30c06860d fixes permissions and servicemonitor configurations
this adds the access for rook to create monitoring resources
across namespaces and provides servicemonitor config to
monitor the current service being created

Signed-off-by: Umanga Chapagain <chapagainumanga@gmail.com>
2019-07-26 10:53:18 +05:30
Travis Nielsen 91d2f95f34 Merge pull request #3224 from mvollman/ceph-vol-md-fail
ceph: fail when metadataDevice not used by cephvol
2019-07-24 15:27:27 -06:00
Anton Skriptsov 3952874ae1 Add mgr pod liveness probe
Signed-off-by: Anton Skriptsov <sabbotagge@gmail.com>
2019-07-23 11:25:19 -07:00
jbmcfar 47d44e8894 minio: update documentation in regards to #3478
creating custom access/secret keys without properly base64 encoding them resulted in failed access to minio dashboard

Signed-off-by: jbmcfar <jbmcfar@sandia.gov>
2019-07-23 14:58:03 +00:00
Michael Vollman bd58df9d3b ceph: fail when metadataDevice not used by cephvol
fail when metadataDevice is specified but ceph-volume batch does not
automatically use the metadataDevice as the block.db. (#3092)

Signed-off-by: Michael Vollman <michael.b.vollman@gmail.com>
2019-07-23 07:23:51 -04:00
Blaine Gardner b872557ebb ceph example: add psp to common.yaml
Add Rook-Ceph PSP requirements to the `common.yaml` file. This is
commented for users to inspect and make informed decisions about their
own clusters just as with the rest of the file. For user clusters
without pod security policies enabled, this part of the config will be
a don't-care and not harm anything.

Because the PSP setup is now codified in `common.yaml`, it is no longer
necessary to have documentation for pod security policies, and the
`Documentation/ceph-psp.md` file is deleted.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-07-18 14:52:38 -06:00
Mateusz Gozdek f936394764 ceph: allow to set multiple tolerations for agent and discover pods
Closes #2896

Signed-off-by: Mateusz Gozdek <mgozdekof@gmail.com>
2019-07-17 23:11:18 +02:00
Dmitry Yusupov 01ba50ea3c Merge pull request #3463 from sabbot/node-add-remove
Add/remove nodes via EdgeFS cluster' CRD
2019-07-17 14:01:03 -07:00
Travis Nielsen 41005b53a6 Merge pull request #3456 from travisn/remove-legacy-conversion
Remove legacy Ceph CRD conversion from v1beta1 to v1
2019-07-17 11:52:41 -06:00
Anton Skriptsov aea098b8b5 Add/remove nodes via EdgeFS cluster' CRD
Signed-off-by: Anton Skriptsov <sabbotagge@gmail.com>
2019-07-17 09:09:52 -07:00
Sébastien Han 7d86069f6e doc: ceph: enhance upgrade section
Add more details on how upgrades are performed, as well as updating the
release note.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-07-17 00:39:18 +02:00
Sébastien Han 487ded50f3 Merge pull request #3355 from noahdesu/mon-sched2
ceph: schedule mons across failure domains
2019-07-16 22:47:07 +02:00
Sébastien Han 6d40c000c5 Merge pull request #3435 from leseb/backport-script
contrib: add an helper script to perform backports
2019-07-16 15:57:14 +02:00
travisn 9e073857c5 ceph: remove legacy conversion from v1beta1 to v1
In the 0.9 release rook converted the v1beta1 CRD resources
to v1 resources. This conversion code is no longer necessary
as we will be using v1 resources going forward.
The code paths will not be triggered anymore, thus
removing the dead code.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-07-15 16:58:37 -06:00
Sébastien Han b25b3c68c8 contrib: add an helper script to perform backports
Run the script like this:

./contrib/backport_to_stable_branch.sh STABLE_BRANCH_NAME COMMIT_SHA1 BACKPORT_BRANCH_NAME

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-07-12 09:15:07 +02:00
Blaine Gardner 5fc99a6266 Merge pull request #3369 from SUSE/cmd-reporter
Add cmd-reporter daemon; use it to get ceph version
2019-07-11 16:05:14 -06:00
Noah Watkins f034f000e1 ceph: schedule mons across failure domains
this patch introduces failure-domain aware scheduling for monitor pods.
previously the only policy was to avoid scheduling monitors on the same
nodes. the new policy tries to spread monitors across zones and nodes.

   NOTE: this patch only enforces the well-known k8s "zone"
   failure-domain label (i.e. it does not look for region labels). this
   decision is made for two reasons. first, eliminating explicit
   scheduling is an important goal and will be done as part of upcoming
   work. this will enable all supported failure-domain labels to be
   handled. second, the "zone" domain is likely more appropriate for a
   larger portion of users (as opposed to the geographical distinction
   made with region), and supporting multiple failure domain types would
   add significant complexity for a temporary resolution to failure
   domain scheduling.

at a high-level this patch introduces a data structure `NodeUsage` that
is a pairing of a v1.Node and metadata relevant to scheduling: number of
monitor pods on the node, and its status w.r.t. to being scheduable for
new monitor pods.

each scheduling event computes a unified data structure that organizes
for each node a `NodeUsage` structure into per-failure-zone groups.
subsequent algorithms rely soley on this unified structure to make
scheduling decisions.

there are two entry points to the changes made:

1) during orchestration mon:Cluster:assignMons is invoked to make a
place new monitor pods onto nodes. the core scheduling logic is now
self-contained in mon:scheduleMonitor which implements node and zone
aware scheduling policies.

2) periodic health checks resolve any conflicts that may occur due to
changes to the cluster (e.g. new nodes, configuration changes, etc...).
the two existing checks: mons on invalid nodes, and overloaded nodes are
both handled.

fixes: #2603

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2019-07-11 14:23:15 -07:00
Maxime Guyot f344e2454d Add a --region in the s3cmd tutorial
Add `--region :default-placement` in RadosGW tutorial to avoid the InvalidLocationConstraint error

Signed-off-by: Maxime Guyot <maxime.guyot@elits.com>
2019-07-11 16:05:19 +02:00
Khanh Ngo b7cd33b981 Update edgefs-quickstart.md
Correct the namespace of rook cluster. It should be `rook-edgefs`

Signed-off-by: Khanh Ngo <k@ndk.name>
2019-07-11 10:31:58 +07:00
Travis Nielsen 9250c072cc Merge pull request #3322 from umangachapagain/rook-ceph-monitoring
Integrate ceph-mixins with rook-ceph
2019-07-08 18:27:03 -06:00
Alexander Trost f0b0f0e4f3 ceph: wrong pool name for CephFS StorageClass (#3400)
ceph: wrong pool name for CephFS StorageClass
2019-07-08 09:56:02 +02:00
Umanga Chapagain 732f3030d0 integrate prometheus based monitoring with rook-ceph
> add new field to cluster spec
> deploy servicemonitor
> deploy prometheusRule

Signed-off-by: Umanga Chapagain <chapagainumanga@gmail.com>
2019-07-08 11:40:17 +05:30
Blaine Gardner 2ef83c4027 ceph: use cmd-reporter for ceph version job
Use cmd-reporter to detect Ceph version.

The job to detect Ceph version needs to run in a security account context
capable of getting/creating ConfigMaps, so a new security account, role,
and role binding are created for the cmd-runner jobs. In the future, the
Ceph mgr may create jobs in this service account for running
`ceph-volume` on nodes, and this also keeps Rook operators controlling
multiple Ceph clusters independent.

Fixes #2686 - ceph version job not working correctly with graylog

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-07-05 15:37:14 -06:00
Joel Huang c404a7e68b ceph: wrong pool name for CephFS StorageClass
* This error is found in creating CephFS StorageClass using document `Documentation/ceph-csi-drivers.md`: "expect a pool named `cephfs_data` in your Ceph cluster"
* **`kubectl apply -f pool.yaml` using metadata.name "cephfs_data" produce error:** The CephBlockPool "cephfs_data" is invalid: metadata.name: Invalid value: "cephfs_data": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')
* accoding to `Documentation/ceph-filesystem-crd.md` linked from `Documentation/ceph-csi-drivers.md` file and field test, it should be `myfs-data0`

Signed-off-by: Joel Huang <joelhy@gmail.com>
2019-07-06 00:21:34 +08:00
Dmitry Yusupov 1f1f58ac1e Merge pull request #3375 from dyusupov/master
support for rook Device.FullPath
2019-07-05 07:40:47 -07:00
Joel Huang d4945d6533 ceph: fix typo error storegeclass
The word "storegeclass" should be "storageclass"

Signed-off-by: Joel Huang <joelhy@gmail.com>
2019-07-05 21:28:36 +08:00
Madhu Rajanna de9f8c1b62 Update rbd and cephfs secret
cephcsi PR https://github.com/ceph/ceph-csi/pull/395
changed the way we are storing secrets. This PR will
bring same changes to the rook as well.

Fixes: #3357

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-07-04 12:17:26 +05:30
Dmitry Yusupov 5ffe2f037c support for rook Device.FullPath
Signed-off-by: Dmitry Yusupov <dmitry.yusupov@nexenta.com>
2019-07-03 23:06:58 -07:00
Anton Skriptsov 8d0866b20e upgrade service's crds
Signed-off-by: Anton Skriptsov <sabbotagge@gmail.com>
2019-07-01 13:19:03 -07:00
Sébastien Han e6093d2c83 Merge pull request #3196 from travisn/upgrade-1.0
Ceph: upgrade test from 1.0 to master instead of 0.9 to master
2019-06-25 17:48:31 +02:00
Travis Nielsen e663624827 Merge pull request #3324 from Madhu-1/csiv1.1.0
update rook to use ceph-csi canary image
2019-06-25 08:24:21 -06:00
Madhu Rajanna 71f369303e update rook to use ceph-csi canary version
ceph-csi canary version is close to ceph-csi v1.1.0
release

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-06-25 17:15:46 +05:30
travisn 37efe00cc6 ceph: clarify that upgrade guide in master does not support upgrades
Signed-off-by: travisn <tnielsen@redhat.com>
2019-06-24 15:15:55 -06:00
Guy Margalit 2ce2382676 Refactor operator context init and allow to run local
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.
2019-06-19 20:47:55 +03:00
Sébastien Han a74f806153 ceph: add psp.yaml example
The current doc was outdated and hardcoded, so removing the example from
the doc and add a proper psp.yaml file that people can use and
contribute too.

Closes: https://github.com/rook/rook/issues/3309
Signed-off-by: Sébastien Han <seb@redhat.com>
2019-06-18 16:58:28 +02:00
Travis Nielsen 8da2221296 Merge pull request #3283 from leseb/rgw-refactor
ceph: refactor rgw bootstrap
2019-06-14 15:17:58 -06:00
Sébastien Han 93b2448619 ceph: refactor rgw bootstrap
This commit does multiple things:

* remove support for AllNodes where we would deploy one rgw per node on
all the nodes.
* a transition path is implemented in the code so that if someone has an
existing deployment, daemonsets will be removed and replaced by an
deployments.
* when using "instances", each rgw deployed has its own key which makes
Ceph reporting the exact number of rgw running, see:

```
[root@rook-ceph-operator-775cf575c5-bh4sr /]# ceph -s
  cluster:
    id:     611fcf39-0669-4864-9a12-debb35c0397a
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum a,b,c (age 12h)
    mgr: a(active, since 12h)
    osd: 3 osds: 3 up (since 12h), 3 in (since 12h)
    rgw: 3 daemons active (my.store.a, my.store.b, my.store.c)

  data:
    pools:   6 pools, 600 pgs
    objects: 235 objects, 3.8 KiB
    usage:   3.0 GiB used, 84 GiB / 87 GiB avail
    pgs:     600 active+clean
```

Closes: https://github.com/rook/rook/issues/2474, https://github.com/rook/rook/issues/2957 and https://github.com/rook/rook/issues/3245
Signed-off-by: Sébastien Han <seb@redhat.com>
2019-06-14 17:55:15 +02:00
John Mulligan 214d08718e doc: Update csi document to match new storageclass field
Update the csi document to assist the user in updating the new
`clusterID` field that is used to map to mons in the configmap
rook maintains.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2019-06-14 10:45:50 -04:00
Travis Nielsen 0f1c919b83 Merge pull request #3255 from rhcs-dashboard/ceph-dashboard-enable-object-gateway
ceph: updated doc. for enabling dashboard object gateway mgmt.
2019-06-12 15:45:02 -06:00