]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
4 years agodoc/cephadm: use 'apt' to install cephadm on Ubuntu
Josh [Sun, 7 Mar 2021 03:59:46 +0000 (21:59 -0600)]
doc/cephadm: use 'apt' to install cephadm on Ubuntu

Adjusted so Ubuntu command uses 'apt' and added Fedora since that uses 'dnf'.

(cherry picked from commit ffc08b930b32fa34e4d22164feda04719a34dd6b)

4 years agomgr/cephadm: remove duplicate labels when adding a host
Adam King [Fri, 5 Mar 2021 15:10:25 +0000 (10:10 -0500)]
mgr/cephadm: remove duplicate labels when adding a host

Fixes: https://tracker.ceph.com/issues/49626
Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 030fb9d30fbd0b6914ee1ec8283fe7618ed1b8a5)

4 years agomgr/cephadm: tolerate failure to update daemon caps
Sage Weil [Mon, 15 Mar 2021 16:55:36 +0000 (11:55 -0500)]
mgr/cephadm: tolerate failure to update daemon caps

If we're upgrading from 15.2.0, we may fail to update caps.  Instead of
failing the upgrade hard, warn to the log and continue.  This is less
than ideal, but the caps will get corrected the next time the daemon is
redeployed on the next upgrade, and most likely the previous caps will
continue to work (given they were presumably working before the upgrade).

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 8ceea1961f818dc2d07edf9c256ebe5150b6b133)

4 years agomgr/cephadm: fix get_keyring_with_caps
Sage Weil [Fri, 12 Mar 2021 16:15:35 +0000 (10:15 -0600)]
mgr/cephadm: fix get_keyring_with_caps

1- Pass caps to 'auth get-or-create'
2- Only try 'auth caps' if the get-or-create failed

Note that the 'auth caps' step can fail if upgrading from 15.2.0 since
'profile mgr' didn't include 'auth caps' until 15.2.1.  We're not
addressing that for now...

Fixes: 7c0d532f3a4839f4199a13773fb5fa8b6fb3f183
Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 6127d7f20bc8a6ad02d8ea144584eaf2bfc9590e)

4 years agopython-common: fix PlacementSpec target size method
Sage Weil [Wed, 10 Mar 2021 22:27:28 +0000 (17:27 -0500)]
python-common: fix PlacementSpec target size method

- Rename get_host_selection_size() to get_target_size() since the host
  part of the name was a bit misleading
- Take count-per-host into consideration.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 2904c5ece0e6d3cabaf16b2e977bdcdf5d8f68dd)

4 years agopython-common: count-per-host must be combined with label or hosts or host_pattern
Sage Weil [Wed, 10 Mar 2021 22:31:31 +0000 (17:31 -0500)]
python-common: count-per-host must be combined with label or hosts or host_pattern

I think this is better for the same reason we made PlacementSpec() not
mean 'all hosts' by default.  If you really want N daemons for every host
in the cluster, be specific with 'count-per-host:2 *'.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit c7e0fb1e8e7cb06097c23d9e1643b6ba852f0eb0)

4 years agomgr/cephadm: handle bare 'count-per-host:NNN', fix comments
Sage Weil [Wed, 10 Mar 2021 13:32:11 +0000 (08:32 -0500)]
mgr/cephadm: handle bare 'count-per-host:NNN', fix comments

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit b481b7de6b9944bcf4adfd9a6e76828ca85dae0f)

4 years agomgr/cephadm/schedule: remove Scheduler abstraction (for now at least)
Sage Weil [Wed, 10 Mar 2021 13:28:20 +0000 (08:28 -0500)]
mgr/cephadm/schedule: remove Scheduler abstraction (for now at least)

It no longer does anything except slice the array.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 36ef062c942df711afb55b188f4113195c59a499)

4 years agomgr/cephadm/schedule: calculate additions/removals in place()
Sage Weil [Wed, 10 Mar 2021 00:01:39 +0000 (19:01 -0500)]
mgr/cephadm/schedule: calculate additions/removals in place()

We already have to examine existing daemons to choose the placements.
There is no reason to make the caller call another method to (re)calculate
what the net additions and removals are.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 0000b21b71b2eb7dd2710a81fbf2e8f245f367fd)

4 years agomgr/cephadm/schedule: allow colocation of certain daemon types
Sage Weil [Tue, 9 Mar 2021 23:49:51 +0000 (18:49 -0500)]
mgr/cephadm/schedule: allow colocation of certain daemon types

For certain daemon types, we can deploy more than one per host (mds,
rbd-mirror, rgw).

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 6d0098d1cd6b639880e12a5f471dd8d31e7c0017)

4 years agomgr/cephadm/schedule: shuffle candidates, not final placements
Sage Weil [Tue, 9 Mar 2021 23:47:34 +0000 (18:47 -0500)]
mgr/cephadm/schedule: shuffle candidates, not final placements

Otherwise we may end out randomly doubling up on some hosts and none on
others (when we have more than one placement per host).

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 8931958580c3d876fb45b2cec864817b4321a1c2)

4 years agomgr/cephadm/schedule: pass per-type allow_colo to the scheduler
Sage Weil [Tue, 9 Mar 2021 23:26:43 +0000 (18:26 -0500)]
mgr/cephadm/schedule: pass per-type allow_colo to the scheduler

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 927694ba4aeed42b2fa70c962c96e3ef5882d46c)

4 years agomgr/cephadm/services/cephadmservice: fix typo
Sage Weil [Tue, 9 Mar 2021 23:19:35 +0000 (18:19 -0500)]
mgr/cephadm/services/cephadmservice: fix typo

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit eb932eec6340dd5890d0b0406530836eac99b4a8)

4 years agomgr/cephadm/schedule: pass daemons, not get_daemons_func
Sage Weil [Tue, 9 Mar 2021 23:17:49 +0000 (18:17 -0500)]
mgr/cephadm/schedule: pass daemons, not get_daemons_func

- simpler
- many/most callers already have the daemon list, so we save ourselves
duplicated effort

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 3201516ea0708873b2d93d4452b38e1802346932)

4 years agomgr/cephadm: use local var
Sage Weil [Tue, 9 Mar 2021 23:15:25 +0000 (18:15 -0500)]
mgr/cephadm: use local var

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 6244a857381f26c38207394af0d643d551c011cc)

4 years agomgr/cephadm/schedule: move host filtering into get_candidates()
Sage Weil [Tue, 9 Mar 2021 21:12:21 +0000 (16:12 -0500)]
mgr/cephadm/schedule: move host filtering into get_candidates()

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 1bf09d143990c5199f71a28c88d6e591b6fbd934)

4 years agopython-common/ceph/deployment/service_spec: disallow max-per-host + explicit placement
Sage Weil [Tue, 9 Mar 2021 21:09:12 +0000 (16:09 -0500)]
python-common/ceph/deployment/service_spec: disallow max-per-host + explicit placement

At least for now we don't have a reasonable way to stamp out N placements
when we're also constraining the name/network/ip--not in the general case.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 42d1f5a0a3843ecc369f1df998e867080d5f178f)

4 years agomgr/cephadm/schedule: respect count-per-host
Sage Weil [Sat, 6 Mar 2021 15:10:42 +0000 (10:10 -0500)]
mgr/cephadm/schedule: respect count-per-host

In the no-count cases, our job is simple: we have a set of hosts specified
via some other means (label, filter, explicit list) and simply need to
do N instances for each of those hosts.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit d8d808cf30eb5406e8cf6545d6c9900bc1e2be58)

4 years agomgr/cephadm: adjust deployment logic to allow multiple daemons per host
Sage Weil [Sat, 6 Mar 2021 15:09:31 +0000 (10:09 -0500)]
mgr/cephadm: adjust deployment logic to allow multiple daemons per host

If we are told to deploy multiple instances on a host, do it.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 7c083af2d8cd79518be279b37722297ca9c768c3)

4 years agopython-common: add count-per-host to PlacementSpec
Sage Weil [Thu, 4 Mar 2021 13:45:45 +0000 (08:45 -0500)]
python-common: add count-per-host to PlacementSpec

Cannot be combined with 'count'.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 04755fad72d4a7215ec251aba62d86fb3597c540)

4 years agomgr/cephadm: do not worry about even # of monitors
Sage Weil [Thu, 4 Mar 2021 23:30:35 +0000 (18:30 -0500)]
mgr/cephadm: do not worry about even # of monitors

Ceph works just fine with an even number of monitors.

Upside: more copies of critical cluster data
Downside: we can tolerate the same number of down mons as N-1, and now
 we are slightly more likely to have a failing mon because we have 1 more
 that might fail.

On balance it's not clear that have one fewer mon is any better, so avoid
the confusion and complexity of second-guessing ourselves.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit ba88a8e5bf81431c37011ba96ffc843eb970683f)

4 years agomgr/cephadm: add iscsi and nfs to upgrade
Adam King [Wed, 24 Feb 2021 21:44:57 +0000 (16:44 -0500)]
mgr/cephadm: add iscsi and nfs to upgrade

Fixes: https://tracker.ceph.com/issues/49462
Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 20e7b4d5aaaf60442f5600dc914080b3c9615795)

4 years agomgr/cephadm: update caps if necessary when getting keyring
Adam King [Wed, 24 Feb 2021 21:13:01 +0000 (16:13 -0500)]
mgr/cephadm: update caps if necessary when getting keyring

If the caps change from the old version to the new one it causes
issues in the upgrade. This allows the caps to be updated. Currently
only seeing this with iscsi but changing it for other as a precaution

Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 7c0d532f3a4839f4199a13773fb5fa8b6fb3f183)

4 years agomgr/cephadm: add cephfs-mirror to CEPH_UPGRADE_ORDER
Sebastian Wagner [Fri, 26 Feb 2021 12:34:52 +0000 (13:34 +0100)]
mgr/cephadm: add cephfs-mirror to CEPH_UPGRADE_ORDER

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit f885072ffa14dcbf74e42ec364867e36aacdd926)

4 years agocephadm: Add cephfs-mirror
Sebastian Wagner [Tue, 23 Feb 2021 15:06:56 +0000 (16:06 +0100)]
cephadm: Add cephfs-mirror

Fixes: https://tracker.ceph.com/issues/47261
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit 8fa941b35d89db6a40f7d2912b69eadf40c5004c)

4 years agoqa/cephadm: Add cephfs-mirror test
Sebastian Wagner [Tue, 23 Feb 2021 15:05:47 +0000 (16:05 +0100)]
qa/cephadm: Add cephfs-mirror test

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit d4bf7157a13970e417e79469e9db0559d612ebbb)

4 years agoqa/tasks: some type annotations
Sebastian Wagner [Tue, 23 Feb 2021 15:05:22 +0000 (16:05 +0100)]
qa/tasks: some type annotations

Mostly for making my IDE aware of things

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit 340281fe76dc1d9170815f68a0553c50fb0b157f)

4 years agomgr/orch: Add cephfs-mirror to enum
Sebastian Wagner [Tue, 23 Feb 2021 14:48:29 +0000 (15:48 +0100)]
mgr/orch: Add cephfs-mirror to enum

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit d9d8d717335227a83812acbf33e8fa8bb3383de0)

4 years agomgr/cephadm: Add CephfsMirrorService
Sebastian Wagner [Tue, 23 Feb 2021 13:45:02 +0000 (14:45 +0100)]
mgr/cephadm: Add CephfsMirrorService

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit f2f9f51d742c582c08fb590cdaa4d959ee9fb7f5)

4 years agomgr/orch: replace def add_{type}(...) with generic add_daemon()
Sebastian Wagner [Tue, 23 Feb 2021 14:42:01 +0000 (15:42 +0100)]
mgr/orch: replace def add_{type}(...) with generic add_daemon()

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit 175ee8390985ae12b1b67d602338a4d1b1c81b52)

4 years agomgr/cephadm: drop `create_func` arg from _add_daemon
Sebastian Wagner [Tue, 23 Feb 2021 13:42:38 +0000 (14:42 +0100)]
mgr/cephadm: drop `create_func` arg from _add_daemon

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit 2465f986680cc489bc82ec2a6f5652b24cdf171b)

4 years agomgr/cephadm: move CephadmExporter to new module
Sebastian Wagner [Tue, 23 Feb 2021 12:50:12 +0000 (13:50 +0100)]
mgr/cephadm: move CephadmExporter to new module

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit 935a15fd06421786096a37c4bae6571bf6467aec)

4 years agomgr/cephadm: fix CephadmExporter deployment
Sebastian Wagner [Tue, 16 Feb 2021 12:17:13 +0000 (13:17 +0100)]
mgr/cephadm: fix CephadmExporter deployment

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit c40436e70089322619ed00621354ae46a29ec9d1)

4 years agocephadm: exporter: use os.path.realpath(__file__)
Sebastian Wagner [Fri, 26 Feb 2021 10:20:35 +0000 (11:20 +0100)]
cephadm: exporter: use os.path.realpath(__file__)

Because we now always have a script on the remote hosts.

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit 470d79bee5101e7d4c11378450591f55e6ede4cc)

4 years agomgr/cephadm: root mode: call (and deploy) cephadm binary
Sebastian Wagner [Mon, 22 Feb 2021 15:30:42 +0000 (16:30 +0100)]
mgr/cephadm: root mode: call (and deploy) cephadm binary

Avoid copying cephadm all the time.

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit e7a8fac550aed5da9dbf4ef633602d3634c20da6)

4 years agocephadm: Get rid of injected_argv
Sebastian Wagner [Mon, 22 Feb 2021 14:12:39 +0000 (15:12 +0100)]
cephadm: Get rid of injected_argv

Removed the injected_argv parameter and the injection of code in the cephadm
script we send to hosts.
Now the script is copied and after that we execute the cephadm command.
I would like to copy it only one time (when adding new hosts) but this will be
part of a future PR, together with other prs to:

- Introduce cephadm version
- Get rid of packaged/root mode
- Use pex or eggs

Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit 2142dcfc2bac3159b7a24f92ae75df2a14599377)

4 years agocephadm: Make path to cephadm binary unique
Sebastian Wagner [Fri, 26 Feb 2021 10:14:52 +0000 (11:14 +0100)]
cephadm: Make path to cephadm binary unique

right now, an upgrade might overwrite the existing
binary which would force us to have the CLI stable.

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit 8f05520d03c9fb9d57a0d7ed674d4d9dba8d699c)

4 years agopython-common: continue to allow RGWSpec(realm=r,zone=z)
Sage Weil [Mon, 8 Mar 2021 14:49:14 +0000 (09:49 -0500)]
python-common: continue to allow RGWSpec(realm=r,zone=z)

This is for backward compatibility: an octopus spec yaml can still be
applied to an existing cluster.  Note that it might not work on a new
cluster, since cephadm no longer tries to create the realm or zone if
they don't exist.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit cca7391f54b724730ea091669627731bc74f3519)

4 years agoPendingReleaseNodes: note changes in cephadm rgw behavior
Sage Weil [Mon, 8 Mar 2021 14:47:57 +0000 (09:47 -0500)]
PendingReleaseNodes: note changes in cephadm rgw behavior

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit f4ff70941fa585e14cdc628f913b001c208a3327)

4 years agoqa/tasks/cephadm: drop realm.zone convention for rgw
Sage Weil [Fri, 5 Mar 2021 21:30:20 +0000 (16:30 -0500)]
qa/tasks/cephadm: drop realm.zone convention for rgw

Note that cephadm.py will no longer do anything with rgw realms and
zones.  That means that the setup of rgw roles here is only useful
for the default zone and a non-multisite config.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 1bfb0cd84b86e23896a967214a3fa89941addd27)

4 years agodoc: update docs
Sage Weil [Tue, 9 Mar 2021 19:29:39 +0000 (14:29 -0500)]
doc: update docs

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 50bc4913735e684c7f0b7feda9444b38fc96588a)

4 years agodoc/cephadm: rewrite "adoption process"
Zac Dover [Mon, 8 Mar 2021 22:06:05 +0000 (08:06 +1000)]
doc/cephadm: rewrite "adoption process"

This rewrites the "Adoption Process" section
of the "Converting and Existing Cluster to
cephadm" chapter of the Cephadm guide.

Signed-off-by: Zac Dover <zac.dover@gmail.com>
(cherry picked from commit c01112189377e17966fb342262b2f0e16121c882)

4 years agodoc/cephadm: rewrite "preparation" in adoption.rst
Zac Dover [Mon, 8 Mar 2021 16:23:51 +0000 (02:23 +1000)]
doc/cephadm: rewrite "preparation" in adoption.rst

This rewrites the "Adoption" section of
preparation.rst in the Cephadm manual.

Signed-off-by: Zac Dover <zac.dover@gmail.com>
(cherry picked from commit 2a47caff720424c895724b7927139f9fbe3d3fee)

4 years agodoc/cephadm: add prompts to adoption.rst
Zac Dover [Tue, 2 Mar 2021 18:16:27 +0000 (04:16 +1000)]
doc/cephadm: add prompts to adoption.rst

This PR formats the bash prompts. It also formats the
bash output so that it appears in the correct (easily
copy-and-pasteable) format. This PR will be followed by
a grammar-improving PR, but this PR is just a
formatting PR.

Signed-off-by: Zac Dover <zac.dover@gmail.com>
(cherry picked from commit 7eb65fe2cfa5fe78f40f7978191848a7a2a49a71)

4 years agodoc/cephadm: rewrite part of adoption.rst
Zac Dover [Fri, 5 Mar 2021 18:37:01 +0000 (04:37 +1000)]
doc/cephadm: rewrite part of adoption.rst

This PR adds a bit of explanatory text to the
section of the cephadm docs that explains how
to convert Ceph deployments that were not deployed
with cephadm to deployments that can be managed by
the cephadm command line tool.

(cherry picked from commit a445653511b07af360bda37175eadf2870e053f7)

4 years agopython-common/ceph/deployment: RGWSpec: accept (and drop) subcluster arg
Sage Weil [Fri, 5 Mar 2021 21:01:00 +0000 (16:01 -0500)]
python-common/ceph/deployment: RGWSpec: accept (and drop) subcluster arg

This is just so we can load up a stored spec after upgrade.  We'll silently
drop it, since we have the service_id, and this was only used to generate
that anyway.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit d35e1d791bedd8d2ed48a456fd1f5bba978f7f37)

4 years agomgr/orchestrator: drop $realm.$zone naming convention
Sage Weil [Mon, 15 Mar 2021 22:05:45 +0000 (17:05 -0500)]
mgr/orchestrator: drop $realm.$zone naming convention

- Let users name the rgw service(s) whatever they like
- Make the rgw_zone and rgw_realm arguments optional, so that they can
  omit them and let radosgw start up in the generic single-cluster
  configuration (whichk, notably, has no realm).
- Continue to set the rgw_realm and rgw_zone options for the daemon(s),
  but only when those values are specified.
- Adjust the CLI accordingly.  Drop the subcluster argument, which was
  only used to generate a service_id.
- Adjust rook. This is actually a simplification and improved mapping onto
  the rook CRD, *except* that for octopus we enforced the realm.zone
  naming *and* realm==zone.  I doubt a single user actually did this
  so it is not be worth dealing with, but we need a special case for
  where there is a . in the service name.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit af0216d93fb522d239b10b5d7d18208ee02fed77)

# Conflicts:
# src/pybind/mgr/rook/rook_cluster.py
  - pacific branch does not have type annotation on apply_objectstore()

4 years agomgr/cephadm: rgw: do not mess with realm configuration
Sage Weil [Fri, 5 Mar 2021 18:13:56 +0000 (13:13 -0500)]
mgr/cephadm: rgw: do not mess with realm configuration

It is simpler to consider this out of scope for the orchestrator.  The
user should set up their multisite realms/zones before deploying the
daemons (or the daemons will not start).  In the future we can wrap this
with a more friendly tool, perhaps.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 4498f7dc204cada316ba0ea73ca9954d23c437d2)

4 years agomgr/cephadm:Document the cephadm config-check feature
Paul Cuzner [Tue, 2 Mar 2021 02:40:46 +0000 (15:40 +1300)]
mgr/cephadm:Document the cephadm config-check feature

This patch updates the docs to describe the config-check feature,
describing how these checks can be enabled and managed.

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit e407c6343d419b7003d143c213fdf3f69462cd83)

4 years agomgr/cephadm:fix to resolve mypy issue
Paul Cuzner [Tue, 2 Mar 2021 01:18:37 +0000 (14:18 +1300)]
mgr/cephadm:fix to resolve mypy issue

Build of ceph metadata needed addition type hints.

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 14074887db099c7b9b4cf89ccad10f224453696c)

4 years agomgr/cephadm:add unit test for the lookup_check helper
Paul Cuzner [Fri, 19 Feb 2021 02:09:58 +0000 (15:09 +1300)]
mgr/cephadm:add unit test for the lookup_check helper

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit c29e6ac3dc6df27dfb777588690d8b6a21a27a6d)

4 years agomgr/cephadm:Drop active healthcheck during a disable request
Paul Cuzner [Fri, 19 Feb 2021 02:09:02 +0000 (15:09 +1300)]
mgr/cephadm:Drop active healthcheck during a disable request

The healthcheck could already be active when the admin attempts
to disable it. This patch removes the related healthcheck if it's set
during a config-check disable request.

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit f3cf41f98955a2c3b8c31374981e5ecbf5d4eda9)

4 years agomgr/cephadm:Added helper function to return a specific healthcheck
Paul Cuzner [Fri, 19 Feb 2021 02:06:45 +0000 (15:06 +1300)]
mgr/cephadm:Added helper function to return a specific healthcheck

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit baa2c9313ade4dcd40e5b42e367ab4c0f8d4b9d9)

4 years agomgr/cephadm:unit test added for nics better than most
Paul Cuzner [Thu, 18 Feb 2021 23:52:24 +0000 (12:52 +1300)]
mgr/cephadm:unit test added for nics better than most

checks that we're not raising a healthcheck for a host if it's
nic speed it better than the rest!

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 0d7ecb18e33b05bb957f4da7c43199086c7d8ab9)

4 years agomgr/cephadm:skip an alert if the linkspeed is better than most
Paul Cuzner [Thu, 18 Feb 2021 23:50:22 +0000 (12:50 +1300)]
mgr/cephadm:skip an alert if the linkspeed is better than most

The logic was issuing a healthcheck if the linkspeed was different
to the majority. But if the difference is good (i.e. better!) we should
not be raising a healthcheck

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 74a3599a83b5b1dde094721f7754d284e8acf8fa)

4 years agomgr/cephadm:fix mypy warning
Paul Cuzner [Thu, 18 Feb 2021 23:41:12 +0000 (12:41 +1300)]
mgr/cephadm:fix mypy warning

Since switching how the roles for a host are determining the
type hint was missed..this patch addresses that

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 83f531239b8d2e148bfae2eba6f1effab359b4b8)

4 years agomgr/cephadm:Remove check from ceph metadata gathering
Paul Cuzner [Thu, 18 Feb 2021 23:37:36 +0000 (12:37 +1300)]
mgr/cephadm:Remove check from ceph metadata gathering

A check for _ceph_get_server was included for unit testing, but
the tests have been updated to make this obsolete.

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit b2f0b6f6d29cbe33bfe200e9fa709284677cd6b9)

4 years agomgr/cephadm:Add unit test for hosts without public network NIC
Paul Cuzner [Thu, 18 Feb 2021 23:24:07 +0000 (12:24 +1300)]
mgr/cephadm:Add unit test for hosts without public network NIC

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit d271987a4dc8727f2d90ebcce16bdb3f8c56b6ca)

4 years agomgr/cephadm:Minor updates to address review comments
Paul Cuzner [Thu, 18 Feb 2021 23:23:13 +0000 (12:23 +1300)]
mgr/cephadm:Minor updates to address review comments

Changes to reflect review comments
- picked up on subscribed = unknown state
- using get_daemon_types() call
- use log.exception more
- changed logic and errors from the public_network check

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit c6ba8bca0ed11b8cd243a88c21e5893ba3c0ba17)

4 years agomgr/cephadm:Added CLI interface for the configuration checker
Paul Cuzner [Thu, 18 Feb 2021 03:22:11 +0000 (16:22 +1300)]
mgr/cephadm:Added CLI interface for the configuration checker

Patch to add CLI commands to show and manage the state of the
configuration checker feature

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 0668ffb36d8ba7fa57d7316fc128e7910ba86968)

4 years agomgr/cephadm:Multiple updates related to the addition of the CLI
Paul Cuzner [Thu, 18 Feb 2021 03:17:22 +0000 (16:17 +1300)]
mgr/cephadm:Multiple updates related to the addition of the CLI

Some changes needed to support the introduction of the CLI commands
used to manage the cephadm checks. For example, the main Cephadm
check class now interacts with the keystore directly to determine
status, and provides support for commands like ls to list the
check definitions. In addition the main class now handles existing
configuration checks and ensure that the stored state in the keystore
matches the checks defined by the module

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 64d5365273617af0ae6eff04796b475b2c8238a0)

4 years agomgr/cephadm:Moved 'ownership' of the checker to cephadm
Paul Cuzner [Thu, 18 Feb 2021 03:11:55 +0000 (16:11 +1300)]
mgr/cephadm:Moved 'ownership' of the checker to cephadm

Initial implementation used the Serve class as the owner of the
configuration checker. This patch moves the checker up to the
cephadm module itself, to make the CLI command logic cleaner

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 9ef3bb373362acb4436d3a6d32e290a713edc26a)

4 years agomgr/cephadm:Unit tests updated to account for upgrades
Paul Cuzner [Thu, 18 Feb 2021 03:09:27 +0000 (16:09 +1300)]
mgr/cephadm:Unit tests updated to account for upgrades

Upgrades may change the config checks, so the tests now validate
that new checks and old bogus checks are handled correctly

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit bf02fb98bb7159baa376010fa6daae0a3ebbddb2)

4 years agomgr/cephadm:Updates to CephadmConfigChecks class
Paul Cuzner [Tue, 16 Feb 2021 23:49:41 +0000 (12:49 +1300)]
mgr/cephadm:Updates to CephadmConfigChecks class

Multiple updates to ensure
- mgr health checks are raised correctly
- checks are independent and may be disabled

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 13713b5caaca151f7b45e5ef27eccd028778efd7)

4 years agomgr/cephadm:Adds unit tests for the CephadmConfigChecks class
Paul Cuzner [Tue, 16 Feb 2021 23:45:38 +0000 (12:45 +1300)]
mgr/cephadm:Adds unit tests for the CephadmConfigChecks class

Add unit tests to test suite to verify functionality. The unit tests use
a sample host definition and scale that to simulate a cluster to run
the tests against

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 4b1b136d3e97e39936f3e3bd94e2106dc6e42c73)

4 years agomgr/cephadm:add module option to enable configuration checks
Paul Cuzner [Tue, 16 Feb 2021 23:43:02 +0000 (12:43 +1300)]
mgr/cephadm:add module option to enable configuration checks

Adds config_checks_enabled (bool) option

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit fae0adf4f07d8af0d3cb0b9d0eb4c3da14a2cf78)

4 years agomgr/cephadm:added ceph version consistency check
Paul Cuzner [Thu, 11 Feb 2021 00:03:59 +0000 (13:03 +1300)]
mgr/cephadm:added ceph version consistency check

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit bcd6acf4a6ff137d98dbaa28aff4927c1075979f)

4 years agomgr/cephadm: added config checker to main serve loop
Paul Cuzner [Wed, 10 Feb 2021 22:31:22 +0000 (11:31 +1300)]
mgr/cephadm: added config checker to main serve loop

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 3ea8eaf9b5e0e60edd06da927e3c6f375687dbb1)

4 years agomgr/cephadm: adding check logic
Paul Cuzner [Wed, 10 Feb 2021 22:30:05 +0000 (11:30 +1300)]
mgr/cephadm: adding check logic

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 5a555ba93854bc8cf7cfd7ead23509fa5782374a)

4 years agomgr/cephadm: resolve rebase conflicts
Paul Cuzner [Tue, 9 Feb 2021 19:49:31 +0000 (08:49 +1300)]
mgr/cephadm: resolve rebase conflicts

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 80a9d71d3cd3add8039a52c2ba3efe4388a5185b)

4 years agomgr/cephadm:Document the intergration with libstoragemgmt
Paul Cuzner [Wed, 3 Mar 2021 00:12:05 +0000 (13:12 +1300)]
mgr/cephadm:Document the intergration with libstoragemgmt

Updates the cephadm osd documentation to include details about
including integration with libstoragement - including the potential
hardware issues that may arise.

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 3b6f21834128bdb1eb763c5fce351b113963fa66)

4 years agomgr/cephadm:Enable cephadm device scan to use LSM
Paul Cuzner [Mon, 22 Feb 2021 01:35:03 +0000 (14:35 +1300)]
mgr/cephadm:Enable cephadm device scan to use LSM

Using libstoragemgmt (LSM) in ceph-volume was disabled by default,
(nov 2020) which meant cephadm's inventory never had a way to
request the LSM data. This patch adds a module option called
'device_enhanced_scan' (bool), that if set will append the
--with-lsm parameter to the ceph-volume inventory call.

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 3105fa254b70f0fb56c86eb110580108dcd03509)

4 years agomgr/cephadm: prevent traceback when invalid osd id passed to 'orch osd rm stop'
Daniel Pivonka [Mon, 8 Mar 2021 19:04:29 +0000 (14:04 -0500)]
mgr/cephadm: prevent traceback when invalid osd id passed to 'orch osd rm stop'

orch osd rm exepcts a str that can be converted to an int passed to it
if the user passed something that cant be converted it shows a traceback
catching the ValueError prevents this traceback.

Signed-off-by: Daniel Pivonka <dpivonka@redhat.com>
(cherry picked from commit 6e8adcfee6ef8996badac3167007b6c76e33a2e4)

4 years agomgr/cephadm: do not prime service cache on reconfig
Sage Weil [Tue, 9 Mar 2021 18:15:20 +0000 (12:15 -0600)]
mgr/cephadm: do not prime service cache on reconfig

Ceph daemon reconfig does not need any daemon state refresh since we don't
do a restart--we just rewrite the ceph.conf.  This also avoids priming
our cache with a 'starting' state when the daemon wasn't touched.

Fixes: https://tracker.ceph.com/issues/49675
Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 248cb6a76ff52a4e5b5758b97a0d6cd812d9f9f5)

4 years agomgr/cephadm/osd: PEP-8 fix
Sebastian Wagner [Tue, 2 Mar 2021 11:22:47 +0000 (12:22 +0100)]
mgr/cephadm/osd: PEP-8 fix

Otherwise `tox -e fix` will continue to
create this hunk

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit bf9d5cb52e8c7d47ea75f3a6f193fbc198bc08b6)

4 years agomgr/cephadm: Activate existing OSDs
Sebastian Wagner [Tue, 23 Feb 2021 11:24:06 +0000 (12:24 +0100)]
mgr/cephadm: Activate existing OSDs

Adds `ceph cephadm osd activate`

Fixes: https://tracker.ceph.com/issues/49159
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit 50295a65a177dbc0803fe5af92459d51d9aff71a)

4 years agomgr/cephadm: osd: Use _run_cephadm_json()
Sebastian Wagner [Tue, 23 Feb 2021 10:30:36 +0000 (11:30 +0100)]
mgr/cephadm: osd: Use _run_cephadm_json()

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit 555cada8e554e7ec5707bae0d69336af9fe4ae51)

4 years agomgr/cephadm: document ok_to_stop output argument for clarity
Sage Weil [Thu, 4 Mar 2021 17:01:28 +0000 (12:01 -0500)]
mgr/cephadm: document ok_to_stop output argument for clarity

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 2a1c3997cdb3c046bf8db2b257e28b4cb56abfeb)

4 years agomgr/DaemonServer: make warning language a bit friendlier
Sage Weil [Fri, 26 Feb 2021 17:14:09 +0000 (12:14 -0500)]
mgr/DaemonServer: make warning language a bit friendlier

This message is shown during the upgrade process.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit fb778a3205801a49e4f9c4d3bd24e07dfb410a44)

4 years agomgr/cephadm/upgrade: improve language a bit
Sage Weil [Fri, 26 Feb 2021 17:12:24 +0000 (12:12 -0500)]
mgr/cephadm/upgrade: improve language a bit

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit bae8394c5e35b52b2cfaabfe79148a490efdf2dc)

4 years agomgr/cephadm/upgrade: restart multiple osds at once
Sage Weil [Fri, 26 Feb 2021 16:53:54 +0000 (11:53 -0500)]
mgr/cephadm/upgrade: restart multiple osds at once

Restart multiple osds in a single upgrade pass, when possible.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit b3d0420e60bcaede1d253bd551f201e756cc3d9a)

4 years agomgr/cephadm: gather other osds that are safe to stop
Sage Weil [Fri, 26 Feb 2021 16:50:51 +0000 (11:50 -0500)]
mgr/cephadm: gather other osds that are safe to stop

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 075d6fc18858bb552ed1a020d7971578680c4104)

4 years agomgr/cephadm: optional pass 'known' through to ok_to_stop
Sage Weil [Fri, 26 Feb 2021 13:46:26 +0000 (08:46 -0500)]
mgr/cephadm: optional pass 'known' through to ok_to_stop

Optionally provide a list of previously known-to-be-ok-to-stop items to
the ok_to_stop method. This has to get plumbed through a zillion instances
of this class method.

No functional change (yet).

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit d9da769079a6a78efd1016af28e7bcf0b8ab830c)

4 years agomgr/cephadm/upgrade: log start/stop/pause/resume
Sage Weil [Fri, 26 Feb 2021 14:15:39 +0000 (09:15 -0500)]
mgr/cephadm/upgrade: log start/stop/pause/resume

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 94b190d4a567ed65ece8aa1981f3aeaa59a292e7)

4 years agomgr/cephadm: add CEPHADM_STRAY_DAEMON unittest
Michael Fritch [Thu, 4 Mar 2021 20:48:35 +0000 (13:48 -0700)]
mgr/cephadm: add CEPHADM_STRAY_DAEMON unittest

Fixes: https://tracker.ceph.com/issues/49573
Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 88dc55266958d77ffa1da34a3d20c039cb249ac5)

4 years agomgr/cephadm: alias rgw-nfs -> nfs
Michael Fritch [Wed, 3 Mar 2021 22:44:26 +0000 (15:44 -0700)]
mgr/cephadm: alias rgw-nfs -> nfs

RGW will register a daemon_type `rgw-nfs` which needs to map to
the corresponding cephadm nfs daemon to avoid stray daemon warnings

Fixes: https://tracker.ceph.com/issues/49573
Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 0f237223accbea49cf9792400a657cbf696a5d67)

4 years agoqa/tasks/cephadm: remove mirror code
Sage Weil [Wed, 3 Mar 2021 18:35:07 +0000 (12:35 -0600)]
qa/tasks/cephadm: remove mirror code

This is being done from ansible now.  Also, it breaks when
the conf file has unqualified-search-registries but not 'registry'
entries.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 208407c5c05e29c33d9decdba9455bdc2fe32e90)

4 years agocephadm: fixup `alrady` -> `already`
Michael Fritch [Thu, 25 Feb 2021 15:12:46 +0000 (08:12 -0700)]
cephadm: fixup `alrady` -> `already`

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit d6323e3e01208967a511c246337cfef18cbf141e)

4 years agocephadm: Change outer quotes to avoid escaping inner quotes (Q003)
Michael Fritch [Thu, 25 Feb 2021 15:12:37 +0000 (08:12 -0700)]
cephadm: Change outer quotes to avoid escaping inner quotes (Q003)

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 55788a0bdb1220d2b2df758579366030c8e27947)

4 years agocephadm: Remove bad quotes from multiline string (Q001)
Michael Fritch [Thu, 25 Feb 2021 15:12:24 +0000 (08:12 -0700)]
cephadm: Remove bad quotes from multiline string (Q001)

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 3b8656d496237651971332ccc29f40baad6883ee)

4 years agocephadm: Remove bad quotes (Q000)
Sage Weil [Mon, 15 Mar 2021 21:46:44 +0000 (16:46 -0500)]
cephadm: Remove bad quotes (Q000)

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 6ca31b99e14f4c5518ad348b0b30392f108f5a6a)

# Conflicts:
# src/cephadm/cephadm
  - some ' quotes were already in pacific

4 years agocephadm: introduce flake8-quotes
Michael Fritch [Wed, 24 Feb 2021 20:48:37 +0000 (13:48 -0700)]
cephadm: introduce flake8-quotes

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 49f25f56ae44b2b8d185e866d75cb7a5041c8dcc)

4 years agocephadm: line break after binary operator (W504)
Michael Fritch [Fri, 19 Feb 2021 15:09:49 +0000 (08:09 -0700)]
cephadm: line break after binary operator (W504)

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 7ac0479726b5d9ae925faff3c221f50e39547dd2)

4 years agocephadm: blank line contains whitespace (W293)
Sage Weil [Mon, 15 Mar 2021 21:45:52 +0000 (16:45 -0500)]
cephadm: blank line contains whitespace (W293)

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 06e02b73c7c1ec20d6594cdc792c5643cdd06b5f)

# Conflicts:
# src/cephadm/cephadm
 whitespace

4 years agocephadm: trailing whitespace (W291)
Sage Weil [Mon, 15 Mar 2021 21:45:32 +0000 (16:45 -0500)]
cephadm: trailing whitespace (W291)

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 1870056fa50c833d9ab545a35437013bf4bea74a)

# Conflicts:
# src/cephadm/cephadm
  - whitespace

Signed-off-by: Sage Weil <sage@newdream.net>
4 years agocephadm: local variable 'e' is assigned to but never used (F841)
Michael Fritch [Fri, 19 Feb 2021 15:09:22 +0000 (08:09 -0700)]
cephadm: local variable 'e' is assigned to but never used (F841)

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit ec56db113f28d59cf5baf833be2a77aa8eeb5863)

4 years agocephadm: 'select' imported but unused (F401)
Michael Fritch [Fri, 19 Feb 2021 15:09:08 +0000 (08:09 -0700)]
cephadm: 'select' imported but unused (F401)

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit bb0331841408cbcf7c1835974cdb77694d56fdc6)

4 years agocephadm: ambiguous variable name 'l' (E741)
Michael Fritch [Thu, 18 Feb 2021 22:30:02 +0000 (15:30 -0700)]
cephadm: ambiguous variable name 'l' (E741)

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit c58701642dad678f6cf3ff946b10fc2a78b053c0)

4 years agocephadm: do not use bare 'except' (E722)
Michael Fritch [Thu, 18 Feb 2021 22:25:27 +0000 (15:25 -0700)]
cephadm: do not use bare 'except' (E722)

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 8eb4c38f10251386b190194dd12f2787b083e383)

4 years agocephadm: statement ends with a semicolon (E703)
Michael Fritch [Thu, 18 Feb 2021 22:24:03 +0000 (15:24 -0700)]
cephadm: statement ends with a semicolon (E703)

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 6237df7527b0384b2c1d47d17369e58cf9c5b0a4)