]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
22 months agomgr/dashboard: CephFS add groups in subvolume tab 53394/head
Pedro Gonzalez Gomez [Thu, 31 Aug 2023 23:54:28 +0000 (01:54 +0200)]
mgr/dashboard: CephFS add groups in subvolume tab

Adds subvolume groups into the subvolume tabs in order to select the subvolumes from the appropiate group.
Also adds the capabilities to manage the subvolume groups of the subvolume in the different actions, create, edit, remove.

Fixes: https://tracker.ceph.com/issues/62675
Signed-off-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
(cherry picked from commit 041bc0c362bf4109416ecc12bc44aa7496ebb9d1)

22 months agoMerge pull request #53392 from rhcs-dashboard/wip-62792-reef
Nizamudeen A [Mon, 11 Sep 2023 13:58:10 +0000 (19:28 +0530)]
Merge pull request #53392 from rhcs-dashboard/wip-62792-reef

reef: mgr/dashboard: fix rgw port manipulation error in dashboard

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
22 months agoMerge pull request #53386 from rhcs-dashboard/wip-62717-reef
Nizamudeen A [Mon, 11 Sep 2023 12:22:53 +0000 (17:52 +0530)]
Merge pull request #53386 from rhcs-dashboard/wip-62717-reef

reef: mgr/dashboard: remove green tick on old password field

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
22 months agoMerge pull request #53378 from rhcs-dashboard/wip-62786-reef
Nizamudeen A [Mon, 11 Sep 2023 12:22:09 +0000 (17:52 +0530)]
Merge pull request #53378 from rhcs-dashboard/wip-62786-reef

reef: mgr/dashboard: add validator for size field in the forms

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
22 months agomgr/dashboard: fix rgw port manipulation error in dashboard 53392/head
Nizamudeen A [Thu, 7 Sep 2023 08:15:00 +0000 (13:45 +0530)]
mgr/dashboard: fix rgw port manipulation error in dashboard

Fixes: https://tracker.ceph.com/issues/62735
Signed-off-by: Nizamudeen A <nia@redhat.com>
(cherry picked from commit 9529163d29ab2d7fdb1e20b4066196dbb838917f)

22 months agoMerge pull request #53388 from rhcs-dashboard/wip-62790-reef
Nizamudeen A [Mon, 11 Sep 2023 11:54:41 +0000 (17:24 +0530)]
Merge pull request #53388 from rhcs-dashboard/wip-62790-reef

reef: mgr/dashboard: images -> edit -> disable checkboxes for layering and deef-flatten

Reviewed-by: Nizamudeen A <nia@redhat.com>
22 months agomgr/dashboard: images: disable checkboxes for layering & deef-flatten 53388/head
avanthakkar [Mon, 21 Aug 2023 16:51:32 +0000 (22:21 +0530)]
mgr/dashboard: images: disable checkboxes for layering & deef-flatten

Fixes: https://tracker.ceph.com/issues/62502
Signed-off-by: avanthakkar <avanjohn@gmail.com>
(cherry picked from commit 9e820cf42e22a6586f18edc4232e1ce1f4e2c443)

22 months agomgr/dashboard: remove green tick on old password field 53386/head
Nizamudeen A [Wed, 30 Aug 2023 05:20:30 +0000 (10:50 +0530)]
mgr/dashboard: remove green tick on old password field

a green tick is showing to the field where we enter the old password in
login password change form. It starts showing green tick as soon as we
start typing on it. Removing that because its misleads the user.

Fixes: https://tracker.ceph.com/issues/62644
Signed-off-by: Nizamudeen A <nia@redhat.com>
(cherry picked from commit 798a95dece66095db8ef0de9ed81c99fe23c4a11)

22 months agoMerge pull request #53381 from aaSharma14/wip-62768-reef
Nizamudeen A [Mon, 11 Sep 2023 08:26:19 +0000 (13:56 +0530)]
Merge pull request #53381 from aaSharma14/wip-62768-reef

reef: mgr/dashboard: Object gateway sync status cards keeps loading when multisite is not configured

Reviewed-by: Nizamudeen A <nia@redhat.com>
22 months agoMerge pull request #53380 from aaSharma14/wip-62765-reef
Nizamudeen A [Mon, 11 Sep 2023 08:25:44 +0000 (13:55 +0530)]
Merge pull request #53380 from aaSharma14/wip-62765-reef

reef: mgr/dashboard: rgw multisite topology view shows blank table for multisite entities

Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
22 months agoMerge pull request #53379 from aaSharma14/wip-62766-reef
Nizamudeen A [Mon, 11 Sep 2023 08:25:11 +0000 (13:55 +0530)]
Merge pull request #53379 from aaSharma14/wip-62766-reef

reef: mgr/dashboard: replace sync progress bar with last synced timestamp in rgw multisite sync status card

Reviewed-by: Nizamudeen A <nia@redhat.com>
22 months agomgr/dashboard: Object gateway sync status cards keeps loading when multisite is not... 53381/head
Aashish Sharma [Thu, 31 Aug 2023 13:24:21 +0000 (18:54 +0530)]
mgr/dashboard: Object gateway sync status cards keeps loading when multisite is not configured

Fixes: https://tracker.ceph.com/issues/62665
Signed-off-by: Aashish Sharma <aasharma@redhat.com>
(cherry picked from commit 88042039409edcc6d3d6ea394bcc5a01e1adfb80)

22 months agomgr/dashboard: rgw multisite topology view shows blank table for multisite entities 53380/head
Aashish Sharma [Fri, 1 Sep 2023 09:26:41 +0000 (14:56 +0530)]
mgr/dashboard: rgw multisite topology view shows blank table for multisite entities

Toplology view in multi-site dashboard displaying blank table regarding realm, zonegroup and zones in chrome browser

Fixes: https://tracker.ceph.com/issues/62677
Signed-off-by: Aashish Sharma <aasharma@redhat.com>
(cherry picked from commit de84e35d144bb978a6946d1335641fcec20ce58a)

22 months agomgr/dashboard: replace sync status bar with last synced timestamp in rgw multisite... 53379/head
Aashish Sharma [Mon, 4 Sep 2023 09:12:46 +0000 (14:42 +0530)]
mgr/dashboard: replace sync status bar with last synced timestamp in rgw multisite sync status card

Fixes: https://tracker.ceph.com/issues/62684
Signed-off-by: Aashish Sharma <aasharma@redhat.com>
(cherry picked from commit 62df37c1ae801745494cefd418a3abbb85ff8815)

22 months agomgr/dashboard: add validator for size field in the forms 53378/head
Nizamudeen A [Thu, 31 Aug 2023 08:39:38 +0000 (14:09 +0530)]
mgr/dashboard: add validator for size field in the forms

Fixes: https://tracker.ceph.com/issues/62655
Signed-off-by: Nizamudeen A <nia@redhat.com>
(cherry picked from commit 51bf62cb1bf1b03947bfebca89635d54ec647369)

22 months agoMerge pull request #53372 from zdover23/wip-doc-2023-09-11-backport-53371-to-reef
Anthony D'Atri [Sun, 10 Sep 2023 18:05:57 +0000 (14:05 -0400)]
Merge pull request #53372 from zdover23/wip-doc-2023-09-11-backport-53371-to-reef

reef: doc/architecture.rst - edit a sentence

22 months agodoc/architecture.rst - edit a sentence 53372/head
Zac Dover [Sun, 10 Sep 2023 16:31:30 +0000 (02:31 +1000)]
doc/architecture.rst - edit a sentence

Change the sentence structure of a sentence because the verb
"experience" looked like the abstract noun "experience" when I read it
with fresh eyes. I chose the perhaps TESOL-unfriendly verb "incur", but
I believe it is right.

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit 436fbf7a3e0960ebb51a0dc66d9c1d405bf6875f)

22 months agoMerge pull request #53366 from zdover23/wip-doc-2023-09-10-backport-53353-to-reef
Anthony D'Atri [Sun, 10 Sep 2023 12:13:29 +0000 (08:13 -0400)]
Merge pull request #53366 from zdover23/wip-doc-2023-09-10-backport-53353-to-reef

reef: doc/architecture.rst - edit up to "Cluster Map"

22 months agodoc/architecture.rst - edit up to "Cluster Map" 53366/head
Zac Dover [Sun, 10 Sep 2023 03:10:09 +0000 (13:10 +1000)]
doc/architecture.rst - edit up to "Cluster Map"

Edit doc/architecture.rst up to "Cluster Map", but not including
"Cluster Map".

Co-authored-by: Anthony D'Atri <anthony.datri@gmail.com>
Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit b3538f8ade14014f6d34c7d6271cb37a0fdd8bb5)

22 months agoMerge pull request #53349 from zdover23/wip-doc-2023-09-09-backport-53334-to-reef
zdover23 [Sun, 10 Sep 2023 03:58:41 +0000 (13:58 +1000)]
Merge pull request #53349 from zdover23/wip-doc-2023-09-09-backport-53334-to-reef

reef: doc: update test cluster commands in README.md

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
22 months agoMerge pull request #53347 from zdover23/wip-doc-2023-09-09-backport-53335-to-reef
Anthony D'Atri [Sat, 9 Sep 2023 14:48:48 +0000 (10:48 -0400)]
Merge pull request #53347 from zdover23/wip-doc-2023-09-09-backport-53335-to-reef

reef: doc/configuration: edit "bg" in mon-config-ref.rst

22 months agodoc: update test cluster commands in README.md 53349/head
Zac Dover [Fri, 8 Sep 2023 11:00:38 +0000 (21:00 +1000)]
doc: update test cluster commands in README.md

The "rbd" pool has not been created by default since Luminous. This
commit removes a command that assumed the existence of the "rbd" pool.

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit 8d606003af59cac2cd8f6f9ca02e6506bde705f0)

22 months agodoc/configuration: edit "bg" in mon-config-ref.rst 53347/head
Zac Dover [Fri, 8 Sep 2023 11:53:51 +0000 (21:53 +1000)]
doc/configuration: edit "bg" in mon-config-ref.rst

Edit the English in the section "Background" in
doc/rados/configuration/mon-config-ref.rst.

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit d009f0757cb34cf1cc9ac107905235d1b2ac65cd)

22 months agoMerge pull request #52927 from guits/wip-62039-reef
Guillaume Abrioux [Thu, 7 Sep 2023 12:58:46 +0000 (14:58 +0200)]
Merge pull request #52927 from guits/wip-62039-reef

reef: ceph-volume: add --osd-id option to raw prepare

22 months agoMerge pull request #52942 from ifed01/wip-ifed-fix-55260-ree
Guillaume Abrioux [Thu, 7 Sep 2023 12:57:22 +0000 (14:57 +0200)]
Merge pull request #52942 from ifed01/wip-ifed-fix-55260-ree

reef: os/bluestore: don't require bluestore_db_block_size when attaching new

22 months agoMerge pull request #52619 from guits/wip-62151-reef
Guillaume Abrioux [Thu, 7 Sep 2023 12:53:07 +0000 (14:53 +0200)]
Merge pull request #52619 from guits/wip-62151-reef

reef: ceph-volume: fix raw list for lvm devices

22 months agoMerge pull request #52980 from k0ste/wip-62155-reef
Guillaume Abrioux [Thu, 7 Sep 2023 12:52:50 +0000 (14:52 +0200)]
Merge pull request #52980 from k0ste/wip-62155-reef

reef: ceph-volume: fix raw list for lvm devices

22 months agoMerge pull request #52875 from ifed01/wip-ifed-encrypted-ceph-volume-ref
Guillaume Abrioux [Thu, 7 Sep 2023 12:51:42 +0000 (14:51 +0200)]
Merge pull request #52875 from ifed01/wip-ifed-encrypted-ceph-volume-ref

reef: ceph_volume: support encrypted volumes for lvm new-db/new-wal/migrate commands

22 months agoMerge pull request #53286 from guits/wip-62708-reef
Guillaume Abrioux [Thu, 7 Sep 2023 12:51:12 +0000 (14:51 +0200)]
Merge pull request #53286 from guits/wip-62708-reef

reef: ceph-volume/cephadm: support lv devices in inventory

22 months agoMerge pull request #53304 from rhcs-dashboard/wip-62719-reef
Nizamudeen A [Thu, 7 Sep 2023 10:26:42 +0000 (15:56 +0530)]
Merge pull request #53304 from rhcs-dashboard/wip-62719-reef

reef: mgr/dashboard: remove used and total used columns in favor of usage bar

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
22 months agoMerge pull request #53317 from zdover23/wip-doc-2023-09-07-backport-53300-to-reef 52972/head
Anthony D'Atri [Wed, 6 Sep 2023 16:42:14 +0000 (12:42 -0400)]
Merge pull request #53317 from zdover23/wip-doc-2023-09-07-backport-53300-to-reef

reef: doc/rados: add bulk flag to pools.rst

22 months agoMerge pull request #53315 from zdover23/wip-doc-2023-09-07-backport-53314-to-reef
zdover23 [Wed, 6 Sep 2023 16:28:47 +0000 (02:28 +1000)]
Merge pull request #53315 from zdover23/wip-doc-2023-09-07-backport-53314-to-reef

reef: doc/man: radosgw-admin.rst typo

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
22 months agodoc/rados: add bulk flag to pools.rst 53317/head
Zac Dover [Wed, 6 Sep 2023 06:14:42 +0000 (16:14 +1000)]
doc/rados: add bulk flag to pools.rst

Add a link in pools.rst to the section in placement-groups.rst
describing the commands used to manage pools that are flagged "--bulk".

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit 31f1224f611b560af7c42131ef38f0aa6dcdffb3)

22 months agodoc/man: radosgw-admin.rst typo 53315/head
Zac Dover [Wed, 6 Sep 2023 14:23:06 +0000 (00:23 +1000)]
doc/man: radosgw-admin.rst typo

Edit the text in the "bucket radoslist" entry.

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit fb808732e8c8f9b64a443aa3ea30a677b1347be3)

22 months agoMerge pull request #53312 from zdover23/wip-doc-2023-09-07-backport-53302-to-reef
Anthony D'Atri [Wed, 6 Sep 2023 15:15:16 +0000 (11:15 -0400)]
Merge pull request #53312 from zdover23/wip-doc-2023-09-07-backport-53302-to-reef

reef: doc/man: remove docs about support for unix domain sockets

22 months agodoc/man: remove docs about support for unix domain sockets 53312/head
Zac Dover [Wed, 6 Sep 2023 06:33:43 +0000 (16:33 +1000)]
doc/man: remove docs about support for unix domain sockets

doc/man: support for unix domain sockets is not implemented, hence we
removed documentation about it.

(Note: the changes in this commit were the work of Rok Jaklič in
https://github.com/ceph/ceph/pull/48537. This pull request has been
raised because that pull request was for some mysterious reason causing
merge conflicts that were never resolved.)

Co-authored-by: Rok Jaklič rjaklic@gmail.com
Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit fa40b7ef560fc60a107dad1604650e0bcf27e77e)

22 months agomgr/dashboard: remove used and total used columns in favor of usage bar 53304/head
Pedro Gonzalez Gomez [Mon, 4 Sep 2023 14:45:30 +0000 (16:45 +0200)]
mgr/dashboard: remove used and total used columns in favor of usage bar

Fixes: https://tracker.ceph.com/issues/62697
Signed-off-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
(cherry picked from commit 802410d4b15c63e756c31672816ef8985341b47c)

22 months agoMerge pull request #53254 from rhcs-dashboard/wip-62657-reef
Nizamudeen A [Wed, 6 Sep 2023 05:20:18 +0000 (10:50 +0530)]
Merge pull request #53254 from rhcs-dashboard/wip-62657-reef

reef: mgr/dashboard: fix image columns naming

Reviewed-by: Nizamudeen A <nia@redhat.com>
22 months agoceph-volume: support partitions in inventory 53286/head
Guillaume Abrioux [Thu, 10 Aug 2023 09:01:22 +0000 (09:01 +0000)]
ceph-volume: support partitions in inventory

This makes ceph-volume report partitions in inventory.
A partition is a valid device for `ceph-volume lvm prepare`
so we should report them in inventory (when using `--list-all`
parameter).

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 00ba00fdfab8cb4969d46838e44cff3a03fc16ca)

22 months agoceph-volume: drop is_locked_raw_device()
Guillaume Abrioux [Thu, 10 Aug 2023 08:01:12 +0000 (08:01 +0000)]
ceph-volume: drop is_locked_raw_device()

This functions works for what it is supposed to do:

check if a device is busy.

That being said, this induces a race condition in `get_devices()`

Indeed, it does:

1/ `os.open()` with `(os.O_RDWR | os.O_EXCL)`
2/ `os.close()`

The second call has an effect: it triggers a udev event which causes
systemd-udevd to re-process the device. This seems to be a question of
millisecond but because of this, /sys (sysfs) isn't fully populated as
expected. Given that get_devices() collects a lot of details from sysfs
in a loop, some of these details can be missed.

ceph-volume overall doesn't make decisions based on `is_locked_raw_device()`
This detail is used only for reporting (inventory).
For this reason, dropping this function seems reasonnable.
As a compromise, we can check if the device has partitions and/or a FileSystem
on it.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 2422ad867dff9d526d7e8be543178c897991097f)

22 months agoceph-volume: add two unit tests
Guillaume Abrioux [Wed, 9 Aug 2023 08:22:13 +0000 (08:22 +0000)]
ceph-volume: add two unit tests

This adds two unit tests in order to cover `test_get_mapper_from_lv_path()`
and `test_get_lv_path_from_mapper()` functions from `api.lvm`

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit a485883f62df388ed19bd91a996ec543c0a9a30f)

22 months agocephadm: add new config option
Guillaume Abrioux [Tue, 8 Aug 2023 15:04:17 +0000 (15:04 +0000)]
cephadm: add new config option

This adds a new config option 'inventory_list_all' so one can make
the command `ceph orch device ls` report lvm devices too as they are
valid devices that can be used to be prepared as OSDs.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit e98ec820cf3acd1711d09e63ec5df8787a369cef)

22 months agoceph-volume: add new parameter '--list-all' to inventory
Guillaume Abrioux [Tue, 8 Aug 2023 15:03:02 +0000 (15:03 +0000)]
ceph-volume: add new parameter '--list-all' to inventory

The inventory should report LV devices as they are valid devices that
can be used to be prepared as OSDs.

Fixes: https://tracker.ceph.com/issues/62362
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 605da29be9ef2903d4d84a624c4376963d6d8ed8)

22 months agoceph-volume: support type=lvm in get_devices()
Guillaume Abrioux [Tue, 8 Aug 2023 12:08:14 +0000 (12:08 +0000)]
ceph-volume: support type=lvm in get_devices()

LV devices are valid devices, they shouldn't be filtered in
`disk.get_devices()`

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 5470a86f9259843130d379515b96f5ced7969f27)

22 months agoceph-volume: add two helper functions
Guillaume Abrioux [Tue, 8 Aug 2023 12:06:41 +0000 (12:06 +0000)]
ceph-volume: add two helper functions

this adds `get_lv_path_from_mapper()` and `get_mapper_from_lv_path()`
functions in api.lvm.

they will help translating either an LV path from `/dev/mapper/LV`
to the format `/dev/VG/LV` or the opposite.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit c7164dfd599a1b406f9f1c870212cc0cbf08317d)

22 months agoMerge pull request #53220 from rhcs-dashboard/wip-62642-reef
Nizamudeen A [Tue, 5 Sep 2023 06:36:39 +0000 (12:06 +0530)]
Merge pull request #53220 from rhcs-dashboard/wip-62642-reef

reef: mgr/dashboard: cleanup rbd-mirror process in dashboard e2e

Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
22 months agoMerge pull request #53267 from zdover23/wip-doc-2023-09-04-backport-53264-to-reef
Anthony D'Atri [Sun, 3 Sep 2023 22:13:04 +0000 (18:13 -0400)]
Merge pull request #53267 from zdover23/wip-doc-2023-09-04-backport-53264-to-reef

reef: doc/man/8: improve radosgw-admin.rst

22 months agodoc/man/8: improve radosgw-admin.rst 53267/head
Anthony D'Atri [Sun, 3 Sep 2023 13:56:44 +0000 (09:56 -0400)]
doc/man/8: improve radosgw-admin.rst

Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
(cherry picked from commit d986537f9b06e7e848b9624718a2eda21bb54f70)

22 months agoMerge pull request #53261 from zdover23/wip-doc-2023-09-03-backport-50360-to-reef
Anthony D'Atri [Sun, 3 Sep 2023 12:17:18 +0000 (08:17 -0400)]
Merge pull request #53261 from zdover23/wip-doc-2023-09-03-backport-50360-to-reef

reef: doc/radosgw: multisite - edit "migrating a single-site"

22 months agodoc/radosgw: multisite - edit "migrating a single-site" 53261/head
tgfree [Fri, 3 Mar 2023 03:17:59 +0000 (11:17 +0800)]
doc/radosgw: multisite - edit "migrating a single-site"
Add the import step of the section "Migrating a Single-Site Deployment to Multi-Site"
in doc/radosgw/multisite.rst. The field "name" and "api_name" should be matched.

Signed-off-by: Qi Tao <tgfree7@gmail.com>
(cherry picked from commit 579c14055d202429ad25a469c30a3d68e0329391)

22 months agoMerge pull request #53260 from zdover23/wip-doc-2023-09-02-backport-48180-to-reef
zdover23 [Sun, 3 Sep 2023 05:33:10 +0000 (15:33 +1000)]
Merge pull request #53260 from zdover23/wip-doc-2023-09-02-backport-48180-to-reef

reef: doc: make instructions to get an updated cephadm common

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
Reviewed-by: John Mulligan <jmulligan@redhat.com>
22 months agoMerge pull request #53258 from zdover23/wip-doc-2023-09-02-backport-53247-to-reef
Anthony D'Atri [Fri, 1 Sep 2023 23:10:09 +0000 (19:10 -0400)]
Merge pull request #53258 from zdover23/wip-doc-2023-09-02-backport-53247-to-reef

reef: doc/README.md - improve "Running a test cluster"

22 months agodoc: make instructions to get an updated cephadm common 53260/head
John Mulligan [Wed, 24 May 2023 17:42:26 +0000 (13:42 -0400)]
doc: make instructions to get an updated cephadm common

As discussed in person and over the ceph orch weekly, we want all users
to use a recent supported version of cephadm. Previously, the
instructions only had those downloading cephadm with curl using the
"add-repo" and "install" commands to get a up-to-date cephadm build.
According to ADK we've seen cases of users get "old" distro packages
in the past. Change the instructions so that the "update cephadm" steps
are common after acquiring a "bootstrap copy" of cephadm.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit d7921e88d69b4bc355da9c0327cc33e59e7d7abb)
(cherry picked from commit d11cf0e82aab8d4cef9d423e5d463a373eaf383a)
(cherry picked from commit 9ad38033cc5c7f177cb8fe3bae696682687e0346)

doc: update the cephadm download instructions

Starting with reef, cephadm is a compiled (zipapp) python application.
The cephadm script has been renamed and thus the old curl-based
download instructions will no loner work. While cephadm still has
no dependencies outside the Python stdlib, this will be changed in
future versions so it is no longer appropriate to just download the
source file of cephadm and run it either.

This change updates the `Install cephadm` section of the doc to explain
how to acquire a "compiled" version of cephadm as well as:
* moving and tweaking the note that the two installation methods are
  distinct
* adding a new note linking to instructions on building cephadm
* moving the distribution-specific installations before the curl-based
  installation to subtly hint that we prefer you to get it using
  packages if you can
* Noting cephadm's minimal required python verision and how to run it
  with a particular python version.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit d11cf0e82aab8d4cef9d423e5d463a373eaf383a)

doc: add instructions for compiling cephadm

Now that cephadm is based on zipapp, add a short section to the
developer docs explaining how to build cephadm yourself.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 9ad38033cc5c7f177cb8fe3bae696682687e0346)

22 months agodoc/README.md - improve "Running a test cluster" 53258/head
Zac Dover [Fri, 1 Sep 2023 00:19:58 +0000 (10:19 +1000)]
doc/README.md - improve "Running a test cluster"

Improve the English in the section "Running a test cluster in the
ceph/README.md file.

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit 420ecc7addaad1969cb634289c2399ea38ea9a90)

22 months agoMerge pull request #53256 from zdover23/wip-doc-2023-09-02-backport-53249-to-reef
Anthony D'Atri [Fri, 1 Sep 2023 18:31:44 +0000 (14:31 -0400)]
Merge pull request #53256 from zdover23/wip-doc-2023-09-02-backport-53249-to-reef

reef: doc/start: correct ABC test chart

22 months agodoc/start: correct ABC test chart 53256/head
Dmitry Kvashnin [Fri, 1 Sep 2023 10:53:18 +0000 (10:53 +0000)]
doc/start: correct ABC test chart

Signed-off-by: Dmitry Kvashnin <dm.kvashnin@gmail.com>
(cherry picked from commit fdbd567d913bdacbbd36d2c3b9180af8a1750228)

22 months agomgr/dashboard: fix image columns naming 53254/head
Pedro Gonzalez Gomez [Wed, 23 Aug 2023 16:34:55 +0000 (18:34 +0200)]
mgr/dashboard: fix image columns naming

Fixes: https://tracker.ceph.com/issues/62551
Signed-off-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
(cherry picked from commit 338bb5c8a46e2a84fd139c392302e7ff846d3ef8)

22 months agoMerge pull request #53124 from adk3798/reef-batch-pre-refactor
Adam King [Thu, 31 Aug 2023 19:38:36 +0000 (15:38 -0400)]
Merge pull request #53124 from adk3798/reef-batch-pre-refactor

reef: cephadm batch backport Aug 23

Reviewed-by: John Mulligan <jmulligan@redhat.com>
22 months agomgr/cephadm: filter hosts that can't support VIP for ingress 53124/head
Adam King [Tue, 1 Aug 2023 21:43:36 +0000 (17:43 -0400)]
mgr/cephadm: filter hosts that can't support VIP for ingress

Keepalive daemons need the host to have an interface
on which they can set up their VIP. If a host
does not have any interface that can work, we should
filter it out

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

22 months agomgr/cephadm: select IPs/interface based on VIP for keepalive conf
Adam King [Tue, 1 Aug 2023 20:32:06 +0000 (16:32 -0400)]
mgr/cephadm: select IPs/interface based on VIP for keepalive conf

We need to make sure the keepalive conf sets
the unicast src and peer IPs to be the ones
in the same subnet as the VIP we're setting up,
as well as specify the correct interface. Otherwise,
the keepalive daemons don't speak to each other
properly and all end up going into MASTER state.

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

Conflicts:
src/pybind/mgr/cephadm/tests/test_services.py

22 months agoCephadm: Add first_virtual_router_id to generated yaml on test
Luis Domingues [Tue, 20 Jun 2023 10:20:39 +0000 (12:20 +0200)]
Cephadm: Add first_virtual_router_id to generated yaml on test

It seems that the ServiceSpec, when dump to yaml will generate
a yaml with first_virtual_router_id, as its default value is 50.

Signed-off-by: Luis Domingues <domingues.luis@protonmail.ch>
(cherry picked from commit 0901f98a05e5d55b8b3cc17a0cae38094ae88a6f)
(cherry picked from commit 929cf28a1edb47db9e9e18e0212a919072c33c7b)

22 months agocephadm: Add parameter to set keepalived's virtual router id
Luis Domingues [Tue, 20 Jun 2023 07:07:57 +0000 (09:07 +0200)]
cephadm: Add parameter to set keepalived's virtual router id

When deploying more than 1 ingress, two instances of keepalived
can be generated with the same virtual_router_id. This commit
adds posibility to change the virtual_router_id of keepalived
from the spec file.

Signed-off-by: Luis Domingues <domingues.luis@protonmail.ch>
(cherry picked from commit bb69368fb5cd1def58cbe638dbd4d3bcf63e431f)
(cherry picked from commit 12cb31447e9a4efe02b32b03271d288a2ebcb0ab)

22 months agocephadm: Split multicast interface and unicast_ip in keepalived.conf
Luis Domingues [Tue, 13 Jun 2023 07:59:35 +0000 (09:59 +0200)]
cephadm: Split multicast interface and unicast_ip in keepalived.conf

When deploying keepalived, cephadm set interface and unicast_src_ip
in keepalived.conf. However, having both options are set, but
if unicast_src_ip is not in the interface set by 'interface',
the instrances of keepalived will not properly commuicate.

This commit makes both options exclusive, and add an option to set
either one or the other. Default is set to 'interface', as it seems
multicast is the default way to deploy keepalived.

Signed-off-by: Luis Domingues <domingues.luis@protonmail.ch>
(cherry picked from commit 0dfe3e68a9284736f643a06acfda719cec0a6ea4)
(cherry picked from commit 837c273da2aa3dd3b3fe09b9ac04fd032149de6d)

22 months agocephadm: fixups for unit tests
Adam King [Wed, 23 Aug 2023 21:24:13 +0000 (17:24 -0400)]
cephadm: fixups for unit tests

These fixes really should be part of the commits
that brought in/changed the tests, but it's
difficult to find the exact commits as part of
this batch backport so I'm doing these minor fixups
in their own commit

Signed-off-by: Adam King <adking@redhat.com>
22 months agopybind/mgr/cephadm: extend haproxy protocol test case
John Mulligan [Wed, 12 Jul 2023 14:18:49 +0000 (10:18 -0400)]
pybind/mgr/cephadm: extend haproxy protocol test case

Extend that haproxy protocol test case so that for host1 we exercise the
new logic for gathering known-good IPs for the host and add those to
the ganesha config.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 1e960026d01a94d97ab960c820227fd5fa4157fa)

22 months agopybind/mgr/cephadm: add all known good IPs for hosts to haproxy list
John Mulligan [Tue, 11 Jul 2023 21:07:25 +0000 (17:07 -0400)]
pybind/mgr/cephadm: add all known good IPs for hosts to haproxy list

Fixes: https://tracker.ceph.com/issues/61852
It was discovered that when the primary IP address of hosts managed by
cephadm are not all on the same subnet, then there's a chance that
ganesha will reject haproxy protocol connections.

Expand the list to all valid addresses for the hosts under management
such that we will not reject proxy protocol messages from the hosts
under cephadm management. This method was chosen over more sophisticated
possible approaches because we do not want to complicate the workflow
for the people setting up haxproxy+ganesha and do not want to miss any
possible subtle edge cases by trying to come up with the "perfect" list
of addresses.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit aab6a04df274e74d873827724247a1145797441b)

22 months agopybind/mgr/cephadm: move haproxy client addrs to func
John Mulligan [Tue, 11 Jul 2023 20:29:44 +0000 (16:29 -0400)]
pybind/mgr/cephadm: move haproxy client addrs to func

Move the list comprehension that gets the list of IP addresses for the
haproxy_hosts list to a separate function. This is in preparation for
making the logic more complex in a later commit.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit b1d2bb6ec53c2aa3574db2f5d3dc3878d2969a58)

22 months agocephadm: have attempt_bind raise up OSErrors
Adam King [Fri, 18 Aug 2023 16:32:38 +0000 (12:32 -0400)]
cephadm: have attempt_bind raise up OSErrors

Before it was always converting the OSError to
our self-defined "Error" class. This causes an issue
with the port_in_use function that has special handling
for OSError when the errno is EADDRNOTAVAIL or
EAFNOSUPPORT. Since the error being raised was no
longer an OSError it wasn't being caught and checked
properly in port_in_use.

This has the additional property of being necessary
to check port availability for haproxy on its VIP. If
we fail deployment when EADDRNOTAVAIL is raised, it becomes
difficult to deploy the ingress service. If we deploy
haproxy first it fails because the VIP isn't available
yet (since keepalive isn't up) and it fails saying the port
it wants to bind to is unavailable (specifically EADDRNOTAVAIL).
If we try to deploy keepalive first it fails because it
needs to know the location of the haproxy daemons in
order to build its config file. This has worked in the past
by just having the haproxy fail to bind at first and then
fix itself once the keepalive daemon is deployed. That
no longer works if the haproxy daemon fails to deploy
because cephadm is reporting the port it needs is
unavailable. Since EADDRNOTAVAIL when deploying
haproxy likely means the VIP is not up rather than
something else is taking up the port it needs, fixing
the handling of this allows ingress deployment to
work while also allowing multiple haproxy daemons
on the same host to use the same frontend port
bound to different VIPs.

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

22 months agomgr/cephadm: only check haproxy frontend_port conflicts on VIP
Adam King [Fri, 11 Aug 2023 18:00:31 +0000 (14:00 -0400)]
mgr/cephadm: only check haproxy frontend_port conflicts on VIP

If we know what IP the frontend_port will be binding
to, we can pass that down through the port_ips mapping
so cephadm will only check if that port on that specific
VIP if in use. This allows multiple haproxy daemons
to be bound to the same port on different VIPs on the
same host.

Note that you still must use a different monitor port
for the two different ingress services as that port
is bound to on the actual IP of the host. Only the
frontend port can be the same for haproxies on the
same host as long as the VIP is different.

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

Conflicts:
src/pybind/mgr/cephadm/tests/test_services.py

22 months agocephadm: support for specifying IP a port will be bound to on
Adam King [Fri, 11 Aug 2023 17:35:10 +0000 (13:35 -0400)]
cephadm: support for specifying IP a port will be bound to on

This is mostly for checking for port conflicts.
Currently, we just check if the port is bound to
on any IP on the host. This mechanism should allow
certain daemon types to specify a port -> IP mapping
that will be passed to the cephadm binary. That
mapping will then be used by cephadm to only
check for the port being bound to on that specific
IP rather than any IP on the host. The end result
is we could have daemons bound to the same
port on different IPs on the same node.

It's expected that daemon types will set this
up as part of their prepare_create or generate_config
functions where they may have more info about the
specific IPs and ports they need.

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

Conflicts:
src/cephadm/cephadm.py

22 months agodoc/cephadm: document haproxy protocol options
John Mulligan [Tue, 21 Mar 2023 20:47:35 +0000 (16:47 -0400)]
doc/cephadm: document haproxy protocol options

There are now two ways to run NFS with ingress using haxproxy. This
makes three distinct modes for ingress. Document these.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 92ce0ae60039be899ae04e14504badd9b0e8939e)

Conflicts:
doc/mgr/nfs.rst

22 months agoqa/cephadm: teuthology test for nfs ingress-mode=haproxy-protocol
John Mulligan [Tue, 21 Mar 2023 20:20:42 +0000 (16:20 -0400)]
qa/cephadm: teuthology test for nfs ingress-mode=haproxy-protocol

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit a1f6314fd831eb934e19dce95d532e6744ffef39)

22 months agomgr/cephadm: add test explicitly validating proxy protocol
John Mulligan [Tue, 21 Mar 2023 19:40:17 +0000 (15:40 -0400)]
mgr/cephadm: add test explicitly validating proxy protocol

Adds a test case that specifically ensures that the proper values
appear in the configuration files for both nfs and haproxy when
the proxy protocol is enabled.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 509cab9833fddcc5bf9ba54f84901f4ab2ddbebb)

22 months agomgr/cephadm: parametrize test for haproxy protocol support
John Mulligan [Tue, 21 Mar 2023 17:51:48 +0000 (13:51 -0400)]
mgr/cephadm: parametrize test for haproxy protocol support

Make a few small tweaks to an existing test to validate that it
functions similarly when the haxproxy protocol is disabled or enabled.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 23bcc7573a0cc6f01942a40dcf84a916545272d5)

22 months agomgr/cephadm: minor reorganizing of nfs service test
John Mulligan [Tue, 21 Mar 2023 15:42:25 +0000 (11:42 -0400)]
mgr/cephadm: minor reorganizing of nfs service test

This change makes some formatting and organizational changes to one of
the nfs + ingress test cases. This is in preparation for a future change
that will parametrize this function allowing it to test haproxy config
when proxy protocol is enabled and when not.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 5ad7f2d0d57adb0a7f94403090ecb82c748c16c1)

22 months agomgr/nfs: add support for selecting between haproxy ingress modes
John Mulligan [Tue, 21 Mar 2023 15:42:25 +0000 (11:42 -0400)]
mgr/nfs: add support for selecting between haproxy ingress modes

When the haproxy-standard mode is selected, the haproxy ingress will
behave as in previous versions of ceph. When the haproxy-protocol mode
is selected, we need to enable protocol support on the ingress service
and nfs service.

While were at it, make a few organization tweaks to improve readability.

Fixes: https://tracker.ceph.com/issues/58933
Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 322c109f6bd6fa9c4449b4f938d907e1bc75629d)

22 months agomgr/cephadm: add two new ingress types for haproxy
John Mulligan [Tue, 21 Mar 2023 15:42:25 +0000 (11:42 -0400)]
mgr/cephadm: add two new ingress types for haproxy

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 61f25e39a2146ebceef100abdf697d712defa5a4)

22 months agomgr/cephadm: add haproxy hosts to nfs ganesha configuration
John Mulligan [Tue, 21 Mar 2023 15:42:25 +0000 (11:42 -0400)]
mgr/cephadm: add haproxy hosts to nfs ganesha configuration

When haproxy protocol support is enabled a list of IP Addresses where
valid haproxy instances can be needs to be supplied to the ganesha server.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 2f5023aa726de7e28daffcee66ecaa99251d4047)

22 months agomgr/cephadm: set haxproxy protocol in config when enabled
John Mulligan [Tue, 21 Mar 2023 15:42:25 +0000 (11:42 -0400)]
mgr/cephadm: set haxproxy protocol in config when enabled

When the haproxy protocol is enabled at the service level, add the
'send-proxy-v2' option to the haproxy configuration file.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit c56953f2570337e48c812a137338a96f989b6cfb)

22 months agomgr/cephadm: add enable_haproxy_protocol to ingress and nfs service specs
John Mulligan [Tue, 21 Mar 2023 15:42:25 +0000 (11:42 -0400)]
mgr/cephadm: add enable_haproxy_protocol to ingress and nfs service specs

Add a new boolean field, enable_haproxy_protocol, to both the ingress
service spec and the nfs service spec. The ingress service spec needs
the field to tell haproxy to enable proxy protocol (v2) support.
The nfs service spec needs the field to allow the nfs server to accept
proxy protocol messages.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 5691def1f8634e4e0a55b313febea1fd0d8cb41a)

Conflicts:
src/python-common/ceph/deployment/service_spec.py

22 months agomgr/cephadm: add optional HAProxy_Hosts field to ganesha conf template
John Mulligan [Tue, 21 Mar 2023 15:42:25 +0000 (11:42 -0400)]
mgr/cephadm: add optional HAProxy_Hosts field to ganesha conf template

When NFS-Ganesha is used behind a HAProxy with proxy protocol support
enabled ganesha requires that HAProxy_Hosts is set to a list of hosts
that are permitted to use the proxy protocol. This change adds support
for specifying HAProxy_Hosts in the ganesha configuration file template.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 7c7b7b672118c9ec3803f46998a3174cccb6dfb6)

22 months agomgr/cephadm: add support for default server options to template
John Mulligan [Tue, 21 Mar 2023 15:42:25 +0000 (11:42 -0400)]
mgr/cephadm: add support for default server options to template

Add support for default server-options within the haproxy backend
section. This change will later be used to enable haproxy proxy protocol
(v2)  support.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 9613181e286f2e11574d8240d531c592a2196881)

22 months agomgr/cephadm: bump nvmeof image version to 0.0.2
Adam King [Tue, 8 Aug 2023 14:51:57 +0000 (10:51 -0400)]
mgr/cephadm: bump nvmeof image version to 0.0.2

0.0.2 includes a patch that allows the nvmeof
daemon to use non-admin keyrings, so we should
use it over 0.0.1

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

22 months agomgr/cephadm: rename "igw_id" to "nvmeof_gw_id"
Adam King [Wed, 2 Aug 2023 19:53:10 +0000 (15:53 -0400)]
mgr/cephadm: rename "igw_id" to "nvmeof_gw_id"

"igw_id" was leftover from the nvmeof implementation
being taken heavily from the iscsi implementation. "igw"
means nothing in this context, so we can change the name.

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

22 months agomgr/cephadm: configure nvmeof with ip of target host
Adam King [Fri, 28 Jul 2023 21:27:55 +0000 (17:27 -0400)]
mgr/cephadm: configure nvmeof with ip of target host

This is the IP the nvmeof daemon will bind
to, so it should be the IP of the host we're
deploying the nvmeof daemon on, not the IP
of the active mgr

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

22 months agomgr/cephadm: make nvme-of auth keyring more restricted
Adam King [Fri, 28 Jul 2023 20:59:42 +0000 (16:59 -0400)]
mgr/cephadm: make nvme-of auth keyring more restricted

Rather than giving full admin privileges,
try to be a bit more strict by limiting it
to profile rbd mon caps and full OSD
privileges for rbd tagged pools. I also wanted
to include an OSD cap like

allow all pool="*" object_prefix "nvmeof.state"

but this caused a failure in the nvme-of daemon

RADOS permission error (Failed to operate write op for oid nvmeof.None.state)

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

22 months agoqa/cephadm: add basic nvmeof deployment test
Adam King [Fri, 28 Jul 2023 18:01:11 +0000 (14:01 -0400)]
qa/cephadm: add basic nvmeof deployment test

Similar to what is done for iscsi, basic deployment
test to make sure we can deploy the daemon and
it comes up in running state with no issue

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

22 months agomgr/cephadm: still remove daemons in error state if ok-to-stop fails
Adam King [Fri, 28 Jul 2023 17:24:06 +0000 (13:24 -0400)]
mgr/cephadm: still remove daemons in error state if ok-to-stop fails

The ok-to-stop function works for certain daemons
by checking if there are at least a certain number
(typically 1) daemon(s) that are actually running
and saying it's not ok-to-stop if if that won't
be true after the removals. This case breaks down
when all the daemons are in error state, making
it so cephadm will refuse to remove a set of
daemons that aren't even working because they're
not "ok to stop". Since ok-to-stop works in a
yes or no fashion, something like this where we
want to be willing to remove a certain subset
(or potentially all currently deployed) daemons
it's easier to keep this logic as part of applying
the service

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

22 months agocephadm: mount keyring deployed for nvmeof daemon
Adam King [Thu, 27 Jul 2023 19:47:51 +0000 (15:47 -0400)]
cephadm: mount keyring deployed for nvmeof daemon

Before, we were just using the client.admin keyring
as a temporary workaround while we figured out
how to get the keyring to work. We should swap
over to using the keyring we actually generated
for the nvmeof daemon.

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

22 months agomgr/cephadm: add rados_id to nvmeof conf
Adam King [Thu, 27 Jul 2023 19:44:47 +0000 (15:44 -0400)]
mgr/cephadm: add rados_id to nvmeof conf

This is going to be used as the rados_id
to be set when connecting to the cluster using
the keyring we generate for the nvmeof daemon.

The python librados library defaults the name
to "client.admin" and so if we don't provide
a name or rados_id, we'll only be able to
use nvmeof with the "client.admin" keyring

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

22 months agoAdding support for extra args by using the field tgt_cmd_extra_args
Redouane Kachach [Tue, 11 Jul 2023 08:19:11 +0000 (10:19 +0200)]
Adding support for extra args by using the field tgt_cmd_extra_args

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
(cherry picked from commit 050c0f9b1445deacec3825406fe2e70a20d0c1fc)

22 months agoAddressing reviewers comments
Redouane Kachach [Tue, 11 Jul 2023 08:01:39 +0000 (10:01 +0200)]
Addressing reviewers comments

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
(cherry picked from commit 5a043fe6d25fd986a5ccb55b4920922c1fcd0f22)

22 months agoAdding more ports needed by nvmeof daemon
Redouane Kachach [Tue, 11 Jul 2023 07:09:50 +0000 (09:09 +0200)]
Adding more ports needed by nvmeof daemon

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
(cherry picked from commit 1dcbf61e13e2eafca88a86ea8adb1210c8f73c94)

22 months agomgr/cephadm: Adding suppport for nvmeof
Redouane Kachach [Tue, 7 Mar 2023 13:45:35 +0000 (14:45 +0100)]
mgr/cephadm: Adding suppport for nvmeof
Fixes: https://tracker.ceph.com/issues/61929
Signed-off-by: Redouane Kachach <rkachach@redhat.com>
(cherry picked from commit ea6eb5e3eec1b5be6a1d7d85f7affcad87123604)

22 months agodocs/cephadm: document new extra_{container,entrypoint}_args behavior
John Mulligan [Mon, 26 Jun 2023 16:08:34 +0000 (12:08 -0400)]
docs/cephadm: document new extra_{container,entrypoint}_args behavior

Document the new behaviors of extra_container_args and
extra_entrypoint_args. Document that current (previous in code terms)
behavior of splitting strings on spaces and document the recently added
support for ArgumentSpec objects and how they are used.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 344c89a2c646729e941fcdbbd562432d863e8220)

22 months agomgr/cephadm: rework how _process_ls_output builds a DaemonDescription
John Mulligan [Mon, 29 May 2023 20:52:31 +0000 (16:52 -0400)]
mgr/cephadm: rework how _process_ls_output builds a DaemonDescription

Previously, the _process_ls_output function would create an
DaemonDescription and then assign values to attributes one-by-one.  This
prevents the class from doing any data type/value conversions unless we
resort to more complex approaches like descriptors or `__setattr__` for
example. Update the _process_ls_output function to build a
DaemonDescription using keyword args so that we have the opportunity
later to convert data passed to it in `__init__`.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 1fd4132c7c03602719f29230732b12c8afa04779)

22 months agomgr/cephadm: update package to use ArgumentSpec based types
John Mulligan [Thu, 25 May 2023 23:30:11 +0000 (19:30 -0400)]
mgr/cephadm: update package to use ArgumentSpec based types

Update the cephadm mgr module to match the changes to use
ArgumentSpec based types for extra_container_args and extra_entrypoint
args.

Update orchestrator/_interface.py to match the changes to use
ArgumentSpec based types for extra_container_args and extra_entrypoint args.

The job of splitting up arguments is no longer done here but
lies in a method of the ArgumentSpec type.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit de16e6cb7d4bb0c4473977d56162f0d591811604)

22 months agopython-common: extend arguments test to assert splitting behavior
John Mulligan [Thu, 25 May 2023 21:46:58 +0000 (17:46 -0400)]
python-common: extend arguments test to assert splitting behavior

Use the existing arguments test to verify that the ArgumentSpec
objects split the arguments as intended.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 62b4c6cbbbd2df01af92c696a93e2d3eb833b0e2)

22 months agopython-common: extend args handling test for new ArgumentSpec type
John Mulligan [Wed, 17 May 2023 20:57:24 +0000 (16:57 -0400)]
python-common: extend args handling test for new ArgumentSpec type

Add cases to test_extra_args_handling test to verify new behaviors
brought in by the switch to ArgumentSpec and ArgumentList types.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 9eafce2c499f6d5b0e31297a3e85b5ff42ff9cc2)

22 months agopython-common: replace types for extra_*_args with ArgSpec based types
John Mulligan [Wed, 17 May 2023 17:50:19 +0000 (13:50 -0400)]
python-common: replace types for extra_*_args with ArgSpec based types

Use the ArgSpec, ArgumentList, and GeneralArgList types throughout
the deployment module to support extra_container_args and
extra_entrypoint_args. The GeneralArgList type supports all possible
input forms while ArgumentList reflects the internal representation
of the argument lists.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 925e09a46437bf9a8de0d7b853cdc3126ffe4260)

Conflicts:
src/python-common/ceph/deployment/service_spec.py