Sage Weil [Sat, 14 Mar 2020 21:35:07 +0000 (16:35 -0500)]
update default container images
- For tests, use bleeding-edge octopus branch
- For production defaults, use ceph/ceph:v15.2 tag
- For bootstrap, grab cephadm script from latest octopus branch
Sage Weil [Mon, 16 Mar 2020 22:36:43 +0000 (17:36 -0500)]
Merge PR #33952 into octopus
* refs/pull/33952/head:
qa/workunits/cephadm: --skip-mon-network when using 127.0.0.1
cephadm: add tests
qa/tasks/cephadm: pass -v to bootstrap
mgr/cephadm: only try to place mons on hosts matching public_network
mgr/cephadm: keep track of host networks, ips
cephadm: automatically infer mon public_network, if we can
cephadm: add list-networks command
Sage Weil [Mon, 16 Mar 2020 22:36:17 +0000 (17:36 -0500)]
Merge PR #33955 into octopus
* refs/pull/33955/head:
mgr/cephadm: respect 'unmanaged' flag in spec
mgr/orch: orch ls: show <no spec> or <unmanaged> as appropriate
mgr/orch: orch ls: rename SPEC -> PLACEMENT
mgr/orch: add 'unmanaged' property to ServiceSpec
mgr/orch: combine 'orch daemon add <type> ...' into one command
mgr/orch: combine 'orch apply <type> [<placement>]' into one command
Sage Weil [Fri, 13 Mar 2020 14:11:31 +0000 (09:11 -0500)]
mgr/cephadm: only try to place mons on hosts matching public_network
Only try to schedule new mons on hosts that match the configured
public_network, if any. If we do not have one configured, then don't
try to place new mons at all.
Note that there are other restrictions that ceph-mon supports that we
aren't considering, here: public_network_interface in particular, which
might further limit which IPs we consider binding to.
Jason Dillaman [Mon, 16 Mar 2020 17:17:17 +0000 (13:17 -0400)]
librbd: defer event socket completion until after callback issued
A change post-Nautilus fixed an issue where multiple threads could
concurrently invoke callbacks to librbd clients. However, it also
introduced the potential that a callback hasn't yet fired by the
time the event socket is completed. This resulted in a crash of
fio under high-throughput testing since it expected both a callback
and the event socket completion, in that order.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Sage Weil [Fri, 13 Mar 2020 22:49:25 +0000 (17:49 -0500)]
cephadm: add-repo: add --version
Instead of --release octopus, which would get the latest octopus
version (whatever it might be), or possibly a repo with many build versions
inside, you can instead do --version 15.2.1 to get a repo with a
specific version and that version only.
Jason Dillaman [Mon, 16 Mar 2020 13:13:56 +0000 (09:13 -0400)]
rbd-mirror: hold lock while updating local image name
There is a potential for an independently scheduled status update to
request the local image name from the bootstrap state machine during its
initialization.
Fixes: https://tracker.ceph.com/issues/44391 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Sage Weil [Mon, 16 Mar 2020 12:44:59 +0000 (07:44 -0500)]
Merge PR #33980 into octopus
* refs/pull/33980/head:
cephadm: bootstrap: allow --output-dir
cephadm: do not infer image for bootstrap
cephadm: write output files to /etc/ceph by default
cephadm: verify the output files' containing directory exists
Kefu Chai [Mon, 16 Mar 2020 09:26:06 +0000 (17:26 +0800)]
doc/_static/css: fine tune the spacing
* `ul.simple > li` is also used in front page, where the items are too
sparse now. so we need to restore the default spacing.
* `ul.simple > li > ul > li:last-child` is used to control the spacing
between nested unordered list. we need have more spacing there.
* `div.section > ul > li > p` is added to decrease the spacing of nested
list items.
Sage Weil [Mon, 16 Mar 2020 02:01:07 +0000 (21:01 -0500)]
Merge PR #33973 into octopus
* refs/pull/33973/head:
mgr/orch,cephadm: elevate --force flag for daemons to interface
cephadm: backup data when we remove stateful daemons (mon, osd, prometheus)
cephadm: do not zap disk after removing an OSD daemon
Kefu Chai [Sun, 15 Mar 2020 15:39:22 +0000 (23:39 +0800)]
doc/releases/octopus.rst: formatting tweaks
* use console lexer for highlighting command lines
otherwise they will be rendered as python code
* use bold font instead italic in subsection headers,
they look more formal this way
* fix a typo: delineated
Kefu Chai [Sun, 15 Mar 2020 03:52:54 +0000 (11:52 +0800)]
pybind/mgr: apply_drivegroups should return Sequence[Completion]
* change annotation of `orchestrator.Orchestrator.apply_drivegroups()` so it returns
`Sequence[Completion]`
see
https://mypy.readthedocs.io/en/latest/generics.html#variance-of-generic-types
* to follow the interface defined by `orchestrator.Orchestrator`. change
all its implementations. see `orchestrator/_interface.py`.
Sage Weil [Sat, 14 Mar 2020 13:55:35 +0000 (08:55 -0500)]
cephadm: backup data when we remove stateful daemons (mon, osd, prometheus)
This avoids doing permanent damage when removing stateful daemons.
We include OSDs here even though in most cases no precious data lives in
the osd data directory because there might be some important metadata
there--particularly for adopted OSDs from older clusters.
Sage Weil [Fri, 13 Mar 2020 12:24:09 +0000 (07:24 -0500)]
ceph.in: use os._exit when we don't shut down
If we experience a timeout, we don't bother shutting down rados, because
it can't currently handle one thread blocked (or running) library init
at the same time that another thread calls rados_shutdown(). This
behavior was recently introduced by c8f353c50bcd2a30be9e3600dba91912b8cd0429
However, sys.exit() runs all kinds of shutdown work that will also
interfere with the running librados threads.
Fix by using os._exit instead of sys.exit.
Fixes: https://tracker.ceph.com/issues/44566 Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 13 Mar 2020 13:35:19 +0000 (08:35 -0500)]
Merge PR #33905 into octopus
* refs/pull/33905/head:
install-deps.sh: remove the workaround to bootstrap a new venv
install-deps.sh: install additional repo for RHEL8
install-deps.sh: install rhel-7-server-optional-rpms on el7 only
Kefu Chai [Fri, 13 Mar 2020 05:11:49 +0000 (13:11 +0800)]
doc: overide the default margin for "ul.simple > li"
by default, the user agent's css sets `margin-block-end` of "ul ul" to
"0", which renders the unordered lists in release notes cluttered. as we
are using nested unordered list to present the changes in different
components.
in this change a customized css is added to reset the begin and end
margin of ul to 1em, which is the default value of top level ul.
Sebastian Wagner [Fri, 13 Mar 2020 11:13:13 +0000 (12:13 +0100)]
python-common: PlacementSpec.from_string: drop `host_pattern:` prefix
* `host_pattern` is works as any other host spec.
* Improved type annotations
* Added tests
* `mgr/cephadm/test_scheduling`: Remove tests that don't have a valid spec.
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>