]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/log
ceph-ci.git
4 months agomgr/dashboard: fix prometheus API error when not configured
Nizamudeen A [Mon, 22 Sep 2025 15:43:52 +0000 (21:13 +0530)]
mgr/dashboard: fix prometheus API error when not configured

Resolves: rhbz#2398040

Fixes: https://tracker.ceph.com/issues/73174
Signed-off-by: Nizamudeen A <nia@redhat.com>
(cherry picked from commit 0c0e0d436e63fa767da149402fead6a25e513978)
(cherry picked from commit 4689bb4a039ac33353fbf386d1e4feb6254ffebf)

4 months agomgr/dashboard: Rename side-nav panel items
Naman Munet [Mon, 29 Sep 2025 04:51:06 +0000 (10:21 +0530)]
mgr/dashboard: Rename side-nav panel items

Fixes: https://tracker.ceph.com/issues/73252
Resolves: rhbz#2402656

Commit includes changes:
1) Renaming Topic to Notification destination
2) Renaming Tiering to Storage class
3) Renaming Users to User Management
4) fix storage class table refresh after delete
5) Also made changes to internal routing for topic and storage class

Signed-off-by: Naman Munet <naman.munet@ibm.com>
(cherry picked from commit 7aac42984c7ea24555ba1f8936a550c39902c389)
(cherry picked from commit 79c4abd9a2521fdb6a373eb205d5a3a74d04e417)

4 months agoblk/kernel: bring "bdev_async_discard" config parameter back.
Igor Fedotov [Wed, 12 Mar 2025 14:42:24 +0000 (17:42 +0300)]
blk/kernel: bring "bdev_async_discard" config parameter back.

To ensure backword compatibility for clusters with this parameter
previously set to true.

Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit 7b914cb49d50241b2ed7811d8660fce27a80ae39)
(cherry picked from commit 615ca9bfbc279bd0be7c0545b35d681dd168d088)

Resolves: rhbz#2394395

4 months agorgw/dedup: Grant dedup process full RGW permissions.
Gabriel BenHanokh [Sun, 5 Oct 2025 08:29:53 +0000 (08:29 +0000)]
rgw/dedup: Grant dedup process full RGW permissions.
This is necessary to allow for the creation of intermediate SLAB objects on systems configured with Ceph authentication.

Remove bogus assert

Resolves: rhbz#2401399

Signed-off-by: Gabriel BenHanokh <gbenhano@redhat.com>
(cherry picked from commit a984ad83e7dfc37d968ba95b7b95c629b8f16670)

4 months agomgr: avoid explicitly dropping ref of MgrOpRequest.request
Milind Changire [Fri, 4 Apr 2025 01:50:02 +0000 (07:20 +0530)]
mgr: avoid explicitly dropping ref of MgrOpRequest.request

Fixes: 66efcaae7a05abaefb12758239b0e1ad5cbd85c9
Fixes: https://tracker.ceph.com/issues/70618
Signed-off-by: Milind Changire <mchangir@redhat.com>
(cherry picked from commit 941c5edac00b750e7a0d40c7f8b12b72d39178dc)
(cherry picked from commit 663e7a3418ed8064bb900ac825e1ffb0832d47e4)

Resolves: rhbz#2383180

4 months agorgw: add rate limit for LIST & DELETE ops
Mark Kogan [Wed, 30 Jul 2025 12:54:19 +0000 (12:54 +0000)]
rgw: add rate limit for LIST & DELETE ops

Add rate limiting specific to LIST ops,
similar to the current rate-limiting
(https://docs.ceph.com/en/latest/radosgw/admin/#rate-limit-management)

Example usage:

```
./bin/radosgw-admin ratelimit set --ratelimit-scope=user --uid=<UID> --max_list_ops=2
./bin/radosgw-admin ratelimit set --ratelimit-scope=user --uid=<UID> --max_delete_ops=2
./bin/radosgw-admin ratelimit enable --ratelimit-scope=user --uid=<UID>

./bin/radosgw-admin ratelimit get --ratelimit-scope=user --uid=<UID>
{
  "user_ratelimit": {
    "max_read_ops": 0,
    "max_write_ops": 0,
    "max_list_ops": 2,
    "max_delete_ops": 2,
    "max_read_bytes": 0,
    "max_write_bytes": 0,
    "enabled": true
  }
}

pkill -9 radosgw
./bin/radosgw -c ./ceph.conf ...

aws --endpoint-url 'http://0:8000' s3 mb s3://bkt
aws --endpoint-url 'http://0:8000' s3 cp  ./ceph.conf s3://bkt

aws --endpoint-url http://0:8000 s3api list-objects-v2 --bucket bkt --prefix 'ceph.conf' --delimiter '/'
{
    "Contents": [
        {
            "Key": "ceph.conf",
            "LastModified": "2025-07-30T13:59:38+00:00",
            "ETag": "\"13d11d431ae290134562c019d9e40c0e\"",
            "Size": 32346,
            "StorageClass": "STANDARD"
        }
    ],
    "RequestCharged": null
}

aws --endpoint-url http://0:8000 s3api list-objects-v2 --bucket bkt --prefix 'ceph.conf' --delimiter '/'
{
    "Contents": [
        {
            "Key": "ceph.conf",
            "LastModified": "2025-07-30T13:59:38+00:00",
            "ETag": "\"13d11d431ae290134562c019d9e40c0e\"",
            "Size": 32346,
            "StorageClass": "STANDARD"
        }
    ],
    "RequestCharged": null
}

aws --endpoint-url http://0:8000 s3api list-objects-v2 --bucket bkt --prefix 'ceph.conf' --delimiter '/'
argument of type 'NoneType' is not iterable

tail -F ./out/radosgw.8000.log | grep beast
...
beast: 0x7fffbbe09780:  [30/Jul/2025:15:44:50.359 +0000] " GET /bkt?list-type=2&delimiter=%2F&prefix=ceph.conf&encoding-type=url HTTP/1.1" 200 535 - "aws-cli/2.15.31 Python/3.9.21 Linux/5.14.0-570.28.1.el9_6.x86_64 source/x86_64.rhel.9 prompt/off command/s3api.list-objects-v2" - latency=0.000999995s
beast: 0x7fffbbe09780:  [30/Jul/2025:15:44:53.904 +0000] " GET /bkt?list-type=2&delimiter=%2F&prefix=ceph.conf&encoding-type=url HTTP/1.1" 200 535 - "aws-cli/2.15.31 Python/3.9.21 Linux/5.14.0-570.28.1.el9_6.x86_64 source/x86_64.rhel.9 prompt/off command/s3api.list-objects-v2" - latency=0.000999995s
                                                                                                                                           vvv
beast: 0x7fffbbe09780:  [30/Jul/2025:15:44:58.192 +0000] " GET /bkt?list-type=2&delimiter=%2F&prefix=ceph.conf&encoding-type=url HTTP/1.1" 503 228 - "aws-cli/2.15.31 Python/3.9.21 Linux/5.14.0-570.28.1.el9_6.x86_64 source/x86_64.rhel.9 prompt/off command/s3api.list-objects-v2" - latency=0.000000000s
beast: 0x7fffbbe09780:  [30/Jul/2025:15:44:58.798 +0000] " GET /bkt?list-type=2&delimiter=%2F&prefix=ceph.conf&encoding-type=url HTTP/1.1" 503 228 - "aws-cli/2.15.31 Python/3.9.21 Linux/5.14.0-570.28.1.el9_6.x86_64 source/x86_64.rhel.9 prompt/off command/s3api.list-objects-v2" - latency=0.000999994s
beast: 0x7fffbbe09780:  [30/Jul/2025:15:44:59.807 +0000] " GET /bkt?list-type=2&delimiter=%2F&prefix=ceph.conf&encoding-type=url HTTP/1.1" 503 228 - "aws-cli/2.15.31 Python/3.9.21 Linux/5.14.0-570.28.1.el9_6.x86_64 source/x86_64.rhel.9 prompt/off command/s3api.list-objects-v2" - latency=0.000000000s

s3cmd put ./ceph.conf s3://bkt/1
s3cmd put ./ceph.conf s3://bkt/2
s3cmd put ./ceph.conf s3://bkt/3

s3cmd rm s3://bkt/1
s3cmd rm s3://bkt/2
s3cmd rm s3://bkt/3

delete: 's3://bkt/1'
delete: 's3://bkt/2'
WARNING: Retrying failed request: /3 (503 (SlowDown))
WARNING: Waiting 3 sec...
WARNING: Retrying failed request: /3 (503 (SlowDown))
                                      ^^^
```

Fixes: https://tracker.ceph.com/issues/72894
Signed-off-by: Mark Kogan <mkogan@ibm.com>
Update PendingReleaseNotes

Co-authored-by: Yuval Lifshitz <yuvalif@yahoo.com>
Signed-off-by: Mark Kogan <31659604+mkogan1@users.noreply.github.com>
Update PendingReleaseNotes

Co-authored-by: Yuval Lifshitz <yuvalif@yahoo.com>
Signed-off-by: Mark Kogan <31659604+mkogan1@users.noreply.github.com>
(cherry picked from commit dae572d50080609c77d7131cfc99b1fb3f16d31b)
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
Resolves: rhbz#2393790

4 months agomgr/cephadm: Cephadm support for NFS-Ganesha TLS configuration
Shweta Bhosale [Tue, 23 Sep 2025 15:50:04 +0000 (21:20 +0530)]
mgr/cephadm: Cephadm support for NFS-Ganesha TLS configuration

Fixes: https://tracker.ceph.com/issues/73035
Signed-off-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
Resolves: rhbz#2395169

 Conflicts:
src/cephadm/cephadmlib/daemons/nfs.py
src/pybind/mgr/cephadm/serve.py
src/pybind/mgr/cephadm/services/nfs.py
src/pybind/mgr/nfs/cluster.py
src/pybind/mgr/nfs/module.py
src/python-common/ceph/deployment/service_spec.py

4 months agomgr/cephadm: Adding support for custom CA cert
Shweta Bhosale [Tue, 23 Sep 2025 12:55:11 +0000 (18:25 +0530)]
mgr/cephadm: Adding support for custom CA cert

Fixes: https://tracker.ceph.com/issues/73035
Signed-off-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
Resolves: rhbz#2395169

 Conflicts:
src/pybind/mgr/cephadm/services/ingress.py

4 months agoRGW | fixed enqueueing the overwritten object for gc
Ali Masarwa [Tue, 12 Aug 2025 12:15:23 +0000 (15:15 +0300)]
RGW | fixed enqueueing the overwritten object for gc

Resolves: rhbz#2379914

Signed-off-by: Ali Masarwa <amasarwa@redhat.com>
(cherry picked from commit 69353cfe247f3757853c1964f1b607b2a4952d94)

4 months agorelease note: add a note that "subvolume info" cmd output can also...
Rishabh Dave [Wed, 4 Jun 2025 06:32:54 +0000 (12:02 +0530)]
release note: add a note that "subvolume info" cmd output can also...

contain "source field" in it.

Resolves: rhbz#2349154
Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 37244a7972b9842e3cb8f8ddbd4a1d9ca875bbe3)
(cherry picked from commit 7339f4e45f97cf2ee568a270cc395226f0c8da1c)

4 months agodoc/cephfs: update docs since "subvolume info" cmd output can also...
Rishabh Dave [Wed, 4 Jun 2025 06:28:11 +0000 (11:58 +0530)]
doc/cephfs: update docs since "subvolume info" cmd output can also...

contain source field in it.

Resolves: rhbz#2349154
Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 0a029149df824ef0f026af912925d809b31862ef)
(cherry picked from commit 4a1c47909d3a10bf2645373528ec436ace6db466)

Conflicts:
doc/cephfs/fs-volumes.rst
- Absence of fscrypt work on upstream branch but its presence on this
  downstream branch led to this conflict.

4 months agoqa/cephfs: add test to check clone source info's present in...
Rishabh Dave [Fri, 9 May 2025 16:02:27 +0000 (21:32 +0530)]
qa/cephfs: add test to check clone source info's present in...

.meta file of a cloned subvolume after cloning is finished and in the
output of "ceph fs subvolume info" command.

Resolves: rhbz#2349154
Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 44cacaf1e46b46f96ac3641cad02f27c4c753532)
(cherry picked from commit cf3347c8742097247c523126aa7f2ca7680320bd)

4 months agomgr/vol: show clone source info in "subvolume info" cmd output
Rishabh Dave [Fri, 9 May 2025 16:40:47 +0000 (22:10 +0530)]
mgr/vol: show clone source info in "subvolume info" cmd output

Include clone source information in output of "ceph fs subvolume info"
command so that users can access this information conveniently.

Resolves: rhbz#2349154
Fixes: https://tracker.ceph.com/issues/71266
Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 0ef6da69d993ca58270010e0b458bad0dff29034)
(cherry picked from commit fbba4629cf6182fec31b8d3c391ed86b5b9f9d8f)

4 months agomgr/vol: keep clone source info even after cloning is finished
Rishabh Dave [Thu, 8 May 2025 15:05:39 +0000 (20:35 +0530)]
mgr/vol: keep clone source info even after cloning is finished

Instead of removing the information regarding source of a cloned
subvolume from the .meta file after the cloning has finished, keep it as
it is as the user may find it useful.

Fixes: https://tracker.ceph.com/issues/71266
Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit bbacfdae1a2e7eb60f91b75852bcd1096b6e3c84)
(cherry picked from commit 2c9a84a8c949c7ace5d98780819f40ff2c19f544)

4 months agomgr/dashboard: add an option to control the dashboard crypto caller
Justin Caratzas [Mon, 6 Oct 2025 23:25:44 +0000 (19:25 -0400)]
mgr/dashboard: add an option to control the dashboard crypto caller

Add a mgr config option `crypto_caller` that lets a ceph user override
the default behavior of using the remote crypto caller. Supported
values are `internal` and `remote`.

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

Resolves: rhbz#2401206

4 months agomgr/cephadm: always use the internal cryptocaller
Justin Caratzas [Mon, 6 Oct 2025 23:25:44 +0000 (19:25 -0400)]
mgr/cephadm: always use the internal cryptocaller

The cephadm modules needs to use python cryptography module for ssh (via
asyncssh) and thus there's no need to use the remote crypto caller in
cephadm. Configure cephadm to always use the internal cryptocaller.

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

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: catch all failures to read cert
Justin Caratzas [Mon, 6 Oct 2025 23:25:44 +0000 (19:25 -0400)]
python-common/cryptotools: catch all failures to read cert

Previously, the internal crypto caller would catch (and convert) some
errors when reading the cert but not all cases. Move the logic to catch
the errors to a common location and do it once consistently.

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

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: create module for selecting crypto caller
Justin Caratzas [Mon, 6 Oct 2025 23:25:44 +0000 (19:25 -0400)]
python-common/cryptotools: create module for selecting crypto caller

Add a module to select a desired crypto caller. Update the callers
to use the crypto caller interface.

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

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: move internal crypto caller to new file
Justin Caratzas [Mon, 6 Oct 2025 23:25:44 +0000 (19:25 -0400)]
python-common/cryptotools: move internal crypto caller to new file

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

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: add caller module for base class
Justin Caratzas [Mon, 6 Oct 2025 23:25:44 +0000 (19:25 -0400)]
python-common/cryptotools: add caller module for base class

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

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: unify and organize all endpoint functions
Justin Caratzas [Mon, 6 Oct 2025 23:25:44 +0000 (19:25 -0400)]
python-common/cryptotools: unify and organize all endpoint functions

Lightly reorganize and make the "endpoint" functions in cryptotools.py more
consistent and uniform. Use small functions for input and output
handling so that the handling is done the same way throughout. Pass a
pre-constructed crypto caller via the args to then endpoint functions.
Make generating the private key it's own named function rather than
one single (and only) function with overloaded behavior controlled by
a cli switch.

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

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: use a main function
Justin Caratzas [Mon, 6 Oct 2025 23:25:44 +0000 (19:25 -0400)]
python-common/cryptotools: use a main function

Use a main function to encapsulate the cli parsing rather than a block
of code in module scope.

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

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: move actual crypto opts into a class
Justin Caratzas [Mon, 6 Oct 2025 23:25:44 +0000 (19:25 -0400)]
python-common/cryptotools: move actual crypto opts into a class

The functions now handle the i/o but allow the crypto function class
to centralize the functions that actually use the crypto libs.

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

Resolves: rhbz#2401206

4 months agopybind/mgr: fix test case in test_tls.py
Justin Caratzas [Mon, 6 Oct 2025 23:25:44 +0000 (19:25 -0400)]
pybind/mgr: fix test case in test_tls.py

Why violate the typing in a test? mypy never noticed this because tests
are not type checked but there seems to be no need to turn a str into
bytes to pass to a function that is typed only as taking str!

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

Resolves: rhbz#2401206

4 months agomgr/dashboard: replace direct use of bcrypt in dashboard
Justin Caratzas [Mon, 6 Oct 2025 23:25:44 +0000 (19:25 -0400)]
mgr/dashboard: replace direct use of bcrypt in dashboard

Replace a direct usage of bycrypt with our cryptocaller wrapper.

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

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: give the parsers more sensible names
Justin Caratzas [Mon, 6 Oct 2025 23:25:43 +0000 (19:25 -0400)]
python-common/cryptotools: give the parsers more sensible names

Name the parser objects after their functions and not `foo` and `bar`.

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

Resolves: rhbz#2401206

4 months agopybind/mgr: Appropriately rename function.
Justin Caratzas [Mon, 6 Oct 2025 23:25:43 +0000 (19:25 -0400)]
pybind/mgr: Appropriately rename function.

Signed-off-by: Paulo E. Castro <pecastro@wormholenet.com>
(cherry picked from commit 21d6e1d493dc5652b2242ef2e0dc7e1c12714d20)

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: Remove ascii and utf-8 references from encode/decode.
Justin Caratzas [Mon, 6 Oct 2025 23:25:43 +0000 (19:25 -0400)]
python-common/cryptotools: Remove ascii and utf-8 references from encode/decode.

Signed-off-by: Paulo E. Castro <pecastro@wormholenet.com>
(cherry picked from commit e364df3914094b8e1c931a09ff8d6863b6d2845f)

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: fix error path in verify tls function
Justin Caratzas [Mon, 6 Oct 2025 23:25:43 +0000 (19:25 -0400)]
python-common/cryptotools: fix error path in verify tls function

The remote verify_tls function was not raising errors when it should.
Fix the function so that it always returns an object when it succeeds or
fails gracefully. Always parse that function in the crypto caller class.

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

Resolves: rhbz#2401206

4 months agopybind/mgr: Correct code to ensure cephadm/tests/test_certmgr.py passes.
Justin Caratzas [Mon, 6 Oct 2025 23:25:43 +0000 (19:25 -0400)]
pybind/mgr: Correct code to ensure cephadm/tests/test_certmgr.py passes.

Signed-off-by: Paulo E. Castro <pecastro@wormholenet.com>
(cherry picked from commit 218d84fc15d818d2df56c92cd71aeb2aa85f1590)

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: Always encode, Err via stderr and signal the exit.
Justin Caratzas [Mon, 6 Oct 2025 23:25:43 +0000 (19:25 -0400)]
python-common/cryptotools: Always encode, Err via stderr and signal the exit.

Signed-off-by: Paulo E. Castro <pecastro@wormholenet.com>
(cherry picked from commit 56d508f9dc1b5503a465cb2b25838a1e81182a49)

Resolves: rhbz#2401206

4 months agopython-common: Correct typo in private_key naming field.
Justin Caratzas [Mon, 6 Oct 2025 23:25:43 +0000 (19:25 -0400)]
python-common: Correct typo in private_key naming field.

Signed-off-by: Paulo E. Castro <pecastro@wormholenet.com>
(cherry picked from commit 4bcab139830eead485412219509fbe390b046aec)

Resolves: rhbz#2401206

4 months agopybind/mgr: update mgr_util to use cryptotools CryptoCaller class
Justin Caratzas [Mon, 6 Oct 2025 23:25:43 +0000 (19:25 -0400)]
pybind/mgr: update mgr_util to use cryptotools CryptoCaller class

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

Resolves: rhbz#2401206

4 months agopython-common: remove unused dir
Justin Caratzas [Mon, 6 Oct 2025 23:25:43 +0000 (19:25 -0400)]
python-common: remove unused dir

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

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: use one single dir for cryptotools
Justin Caratzas [Mon, 6 Oct 2025 23:25:43 +0000 (19:25 -0400)]
python-common/cryptotools: use one single dir for cryptotools

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

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: create CrytpoCaller interface class
Justin Caratzas [Mon, 6 Oct 2025 23:25:43 +0000 (19:25 -0400)]
python-common/cryptotools: create CrytpoCaller interface class

Create a class to act as a common shim between the cryptotools external
functions and the mgr. It provides common conversion mechanisms and
could possibly act as an abstraction in case we decide to make
the external function calls in different ways in the future.

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

Resolves: rhbz#2401206

4 months agopython-common/cryptotools: use json for structured output
Justin Caratzas [Mon, 6 Oct 2025 23:25:43 +0000 (19:25 -0400)]
python-common/cryptotools: use json for structured output

Where possible try to use structured output in JSON for easier parsing
and interaction with the parent process.

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

Resolves: rhbz#2401206

4 months agopybind/mgr: Hack around the 'ImportError: PyO3 modules may only be initialized once...
Justin Caratzas [Mon, 6 Oct 2025 23:25:43 +0000 (19:25 -0400)]
pybind/mgr: Hack around the 'ImportError: PyO3 modules may only be initialized once per interpreter process' issue.

Fixes: https://tracker.ceph.com/issues/64213
Signed-off-by: Paulo E. Castro <pecastro@wormholenet.com>
(cherry picked from commit 717d0a6f3530ad3e07f4423002810327b2addcf1)

Resolves: rhbz#2401206

4 months agomgr/cephadm: Fixed nfs daemon restart logic when same rank daemon get removed
Shweta Bhosale [Mon, 6 Oct 2025 10:02:51 +0000 (15:32 +0530)]
mgr/cephadm: Fixed nfs daemon restart logic when same rank daemon get removed

Signed-off-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
Resolves: rhbz#2397780

4 months agoceph-dencoder: add `SnapRealmInfoNew` in ceph-dencoder types
Venky Shankar [Sun, 5 Oct 2025 11:49:04 +0000 (17:19 +0530)]
ceph-dencoder: add `SnapRealmInfoNew` in ceph-dencoder types

Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit c31990d8912a7ac847632e7a78fa12b49309d38b)
Resolves: rhbz#2400565
Resolves: https://jsw.ibm.com/browse/ISCE-1465

4 months agosnap_types: fix encode/decode for the newly added fiels in SnapRealmInfoNew
Venky Shankar [Sun, 5 Oct 2025 11:48:49 +0000 (17:18 +0530)]
snap_types: fix encode/decode for the newly added fiels in SnapRealmInfoNew

Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 53b71ca1857885541f606832338d513b27f972f3)
Resolves: rhbz#2400565
Resolves: https://jsw.ibm.com/browse/ISCE-1465

4 months agonvmeofgw: fix issue of delete all gws from the pool/group
Leonid Chernin [Tue, 26 Aug 2025 12:34:32 +0000 (15:34 +0300)]
nvmeofgw: fix issue of delete all gws from the pool/group
          when gws not removed from the map

Resolves: rhbz#2390708

Signed-off-by: Leonid Chernin <leonidc@il.ibm.com>
4 months agomgr/dashboard: fix the separation between CLI and API only commands
Tomer Haskalovitch [Sun, 28 Sep 2025 10:40:45 +0000 (13:40 +0300)]
mgr/dashboard: fix the separation between CLI and API only commands

Resolves: rhbz#2399968

Signed-off-by: Tomer Haskalovitch <tomer.haska@ibm.com>
(cherry picked from commit 7b71919a44ebd21cf60edbe5dbc9d4cc152d6f1a)

4 months agorgw/sts : get-caller-identity fix#72982
Raja Sharma [Tue, 30 Sep 2025 15:46:09 +0000 (21:16 +0530)]
rgw/sts : get-caller-identity fix#72982

Resolves: rhbz#2400177

Tracker: https://tracker.ceph.com/issues/72982

Signed-off-by: Raja Sharma <raja@ibm.com>
(cherry picked from commit b1d819e0ed45ac0e23cb7ae14b2379aa07d98148)

4 months agomgr/dashboard: fix command alias help message
Tomer Haskalovitch [Sun, 21 Sep 2025 09:49:29 +0000 (12:49 +0300)]
mgr/dashboard: fix command alias help message

Resolves: rhbz#2399965

Signed-off-by: Tomer Haskalovitch <tomer.haska@ibm.com>
(cherry picked from commit 30872b2ae746324083f315a2be00144dea048f19)

4 months agomgr/dashboard: fix None force param handling in ns add_host so it won't raise exceptions
Tomer Haskalovitch [Sun, 14 Sep 2025 06:10:22 +0000 (09:10 +0300)]
mgr/dashboard: fix None force param handling in ns add_host so it won't raise exceptions

Resolves: rhbz#2399963

Signed-off-by: Tomer Haskalovitch <tomer.haska@ibm.com>
(cherry picked from commit 38f62c4a379bfbe0bc57ebee4fc1aa6661c75dca)

4 months agomgr/dashboard: add nsid param to ns list command
Tomer Haskalovitch [Wed, 17 Sep 2025 10:50:23 +0000 (13:50 +0300)]
mgr/dashboard: add nsid param to ns list command

Resolves: rhbz#2394006

Signed-off-by: Tomer Haskalovitch <tomer.haska@ibm.com>
(cherry picked from commit 551ff3dbd44c33c556134b319b5e0c97c7518547)

4 months agodoc: update Grafana certificate configuration to use certmgr
Redouane Kachach [Fri, 5 Sep 2025 09:11:41 +0000 (11:11 +0200)]
doc: update Grafana certificate configuration to use certmgr

With the introduction of certmgr, users must register their certificates
via `ceph orch certmgr cert set --hostname ...` instead of the old
config-key method. The updated docs clarify that Grafana certificates
are host-scoped and can only be provided by reference (or default to
cephadm-signed).

Resolves: rhbz#2400686

Signed-off-by: Redouane Kachach <rkachach@ibm.com>
(cherry picked from commit 2b5efb757a8327feaa8adf3bf21b8f96cd62b317)

4 months agodoc: update RGW HTTPS configuration to use certmgr and new fields
Redouane Kachach [Mon, 8 Sep 2025 13:20:27 +0000 (15:20 +0200)]
doc: update RGW HTTPS configuration to use certmgr and new fields

With the introduction of certmgr, RGW services now support three
certificate sources: cephadm-signed (default), inline, and reference.
Docs have been updated to:

- Show how to provide inline certificates using the new ssl_cert/ssl_key
  fields instead of the deprecated rgw_frontend_ssl_certificate.
- Explain how to register and reference user-provided certs/keys
- Clarify that cephadm-signed certificates remain the default, with
  optional wildcard SANs support.

The usage of rgw_frontend_ssl_certificate is still supported for
backward compatibility, but is now documented as deprecated.

Resolves: rhbz#2400686

Signed-off-by: Redouane Kachach <rkachach@ibm.com>
(cherry picked from commit e5d4e5b97a061f0716df4da05fa1bb05ea2b3334)

4 months agomgr/cephadm: Remove Grafana self-signed certificate migration logic
Redouane Kachach [Thu, 18 Sep 2025 08:34:52 +0000 (10:34 +0200)]
mgr/cephadm: Remove Grafana self-signed certificate migration logic

Remove the code used to migrate Grafana self-signed certificates, as
it is no longer needed. The certmgr logic now handles generating new
certificates during the upgrade, eliminating the need for any migration
code or logic.

Resolves: rhbz#2400686

Signed-off-by: Redouane Kachach <rkachach@ibm.com>
(cherry picked from commit 786f28cbb7d63ce46e2ca54c5bb71dc91108400c)

4 months agomgr/cephadm: Remove SSL RGW migration logic
Redouane Kachach [Thu, 25 Sep 2025 15:26:06 +0000 (17:26 +0200)]
mgr/cephadm: Remove SSL RGW migration logic

Remove the special-case code used for RGW service migration, as it is no
longer needed. The certmgr logic now handles populating the certstore
with the corresponding certificate and key entries by reading their values
directly from the spec. During RGW service redeployment as part of the
upgrade, certmgr will ensure the certstore is updated accordingly.

Resolves: rhbz#2400686

Signed-off-by: Redouane Kachach <rkachach@ibm.com>
(cherry picked from commit 9e05171155075daf96a070037fa2fa14f84b8bfc)

4 months agomgr/cephadm: Fix RGW spec validation for deprecated rgw cert field
Redouane Kachach [Thu, 18 Sep 2025 08:31:14 +0000 (10:31 +0200)]
mgr/cephadm: Fix RGW spec validation for deprecated rgw cert field

Starting from Tentacle, the rgw_frontend_ssl_certificate field has been
deprecated in favor of the new ssl_cert and ssl_key fields. Update the
validation logic to run after this field is automatically transformed into
the new fields, ensuring proper validation of RGW specs.

Resolves: rhbz#2400686

Signed-off-by: Redouane Kachach <rkachach@ibm.com>
(cherry picked from commit 521e2a9039cab26f3b264052c8109636569ad61b)

4 months agomgr/cephadm: Include mgmt-gateway/oauth2-proxy in upgrade process
Redouane Kachach [Thu, 18 Sep 2025 08:27:58 +0000 (10:27 +0200)]
mgr/cephadm: Include mgmt-gateway/oauth2-proxy in upgrade process

Add the new mgmt-gateway and oauth2-proxy services to the list of
services upgraded by cephadm, ensuring they are updated alongside the
rest of the cephadm-managed services.

Resolves: rhbz#2400686

Signed-off-by: Redouane Kachach <rkachach@ibm.com>
(cherry picked from commit a53f397770dbc6022a803fe11c5e4f5152bbf991)

4 months agomgr/dashboard : Hide suppressed alert on landing page
Abhishek Desai [Tue, 9 Sep 2025 18:53:05 +0000 (00:23 +0530)]
mgr/dashboard : Hide suppressed  alert on landing page
fixes : https://tracker.ceph.com/issues/72944

Resolves: rhbz#2319055

Signed-off-by: Abhishek Desai <abhishek.desai1@ibm.com>
(cherry picked from commit 280d8f66bf811bf6ca05da4703c4fdadcd89504a)
(cherry picked from commit caed5ffca7207cd7887c1d749d19ae1c7bddc2a5)

4 months agomgr/dashboard : Fixed mirrored image usage info bar
Abhishek Desai [Thu, 7 Aug 2025 07:50:38 +0000 (13:20 +0530)]
mgr/dashboard : Fixed mirrored image usage info bar
fixes : https://tracker.ceph.com/issues/72431

Resolves: rhbz#2383217

Signed-off-by: Abhishek Desai <abhishek.desai1@ibm.com>
(cherry picked from commit 3a192b7c38e3f1669f3deee31702ba802d7411fd)
(cherry picked from commit d35b384d030114165b1d6fe261f78326c5e945b0)

4 months agomgr/dashboard: Group similar alerts
Abhishek Desai [Fri, 29 Aug 2025 14:29:09 +0000 (19:59 +0530)]
mgr/dashboard: Group similar alerts
fixes : https://tracker.ceph.com/issues/72788

Resolves: rhbz#2400414

Signed-off-by: Abhishek Desai <abhishek.desai1@ibm.com>
(cherry picked from commit cdd74a35103ecea7f8031aed494868fbd618d45b)

 Conflicts:
src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard-v3/dashboard/dashboard-v3.component.scss
Accept the incoming changes

 Conflicts:
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/prometheus/active-alert-list/active-alert-list.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/prometheus/active-alert-list/active-alert-list.component.ts

(cherry picked from commit 4701b11e1bc65591dcdbf60b5ab5d3be9b99dc1a)

4 months agomonitoring: fix MTU Mismatch alert rule and expr
Aashish Sharma [Wed, 2 Jul 2025 11:05:14 +0000 (16:35 +0530)]
monitoring: fix MTU Mismatch alert rule and expr

Fixes: https://tracker.ceph.com/issues/73290
Resolves: rhbz#2374279

Signed-off-by: Aashish Sharma <aasharma@redhat.com>
(cherry picked from commit bee24dec441b9e6b263e4498c2ab333b0a60a52d)

Conflicts:
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/prometheus/active-alert-list/active-alert-list.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/prometheus/active-alert-list/active-alert-list.component.ts
(cherry picked from commit 2e75347958d499465a586581f4bf14cd66ef12d5)

4 months agomgr/dashboard: Blank entry for Storage Capacity in dashboard under Cluster > Expand...
Naman Munet [Wed, 24 Sep 2025 07:23:40 +0000 (12:53 +0530)]
mgr/dashboard: Blank entry for Storage Capacity in dashboard under Cluster > Expand Cluster > Review

Fixes: https://tracker.ceph.com/issues/73220
Resolves: rhbz#2314624

Signed-off-by: Naman Munet <naman.munet@ibm.com>
(cherry picked from commit a01909e7588c7ff757079475e3ea6f1dc3054db7)
(cherry picked from commit 5e5b0fd9d169eb0e7c108c8ad23668f576e158ac)

4 months agotest/libcephfs: add test cases for Client::mksnap and Client::rmsnap
Dhairya Parmar [Wed, 3 Sep 2025 11:40:34 +0000 (17:10 +0530)]
test/libcephfs: add test cases for Client::mksnap and Client::rmsnap

they exist as libceohfs APIs but aren't being called by FUSE/pybind clients,
make sure they work as intended.

Fixes: https://tracker.ceph.com/issues/71740
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
(cherry picked from commit 91319f4e7964403600e9656b00cb5007d110acda)
Resolves: https://jsw.ibm.com/browse/ISCE-1465

4 months agomgr/volumes: disable client_respect_subvolume_snapshot_visibility in CephfsConnection...
Dhairya Parmar [Wed, 27 Aug 2025 10:58:31 +0000 (16:28 +0530)]
mgr/volumes: disable client_respect_subvolume_snapshot_visibility in CephfsConnectionPool::connect

To prevent any type of config change (via mons, args, envvar, tell command) on the ceph-mgr from breaking the volume plugin.

Conflicts:
fscrypt changes exist downstream 01a4d2a0356e5f66b7260dad7de70a5fa9cc3aa7 but not upstream,
hence a conflict and kept both changes.

Fixes: https://tracker.ceph.com/issues/71740
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
(cherry picked from commit f8abcf3c3a0141a5c518382556dee42339879396)
Resolves: https://jsw.ibm.com/browse/ISCE-1465

4 months agodoc/cephfs/fs-volumes: add documentation for controlling snapshot visibility
Dhairya Parmar [Sun, 3 Aug 2025 23:56:05 +0000 (05:26 +0530)]
doc/cephfs/fs-volumes: add documentation for controlling snapshot visibility

for subvolume based paths

Fixes: https://tracker.ceph.com/issues/71740
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
(cherry picked from commit 0d50f9205a82b401548e2046a4290d88c75f69b6)
Resolves: https://jsw.ibm.com/browse/ISCE-1465

4 months agoqa/tasks/cephfs: add test cases for subvolume config snapshot_visibility
Dhairya Parmar [Sun, 3 Aug 2025 21:52:11 +0000 (03:22 +0530)]
qa/tasks/cephfs: add test cases for subvolume config snapshot_visibility

Conflicts:
funcs added upstream in cc09354a49a396d85459f965de0f1cc4d3d16773 aren't backported downstream,
so it lead to conflict. Removed these functions.

Fixes: https://tracker.ceph.com/issues/71740
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
(cherry picked from commit 3611bb2a54e0cdd56b1f5b3d923d2b059303085c)
Resolves: https://jsw.ibm.com/browse/ISCE-1465

4 months agopybind/mgr/volumes: add getter and setter APIs for snapdir_visibility
Dhairya Parmar [Fri, 25 Jul 2025 14:45:06 +0000 (20:15 +0530)]
pybind/mgr/volumes: add getter and setter APIs for snapdir_visibility

Conflicts:
fscrypt changes exist downstream 01a4d2a0356e5f66b7260dad7de70a5fa9cc3aa7 but not upstream,
so it led to a conflict, kept both the changes in the branch.

Fixes: https://tracker.ceph.com/issues/71740
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
(cherry picked from commit 7a33e22c7d572ec8f48cd6973aa9da4737b6582b)
Resolves: https://jsw.ibm.com/browse/ISCE-1465

4 months agoclient: check client config and snaprealm flag before snapdir lookup
Dhairya Parmar [Tue, 8 Jul 2025 21:25:36 +0000 (02:55 +0530)]
client: check client config and snaprealm flag before snapdir lookup

this commit adds a new client config client_respect_subvolume_snapshot_visibility
which acts as knob to have a per-client control over the snapshot visibility and
checks it along with the snaprealm flag while looking up a subvolume inode.

Conficts:
Confict arose due to upstream 7ab995b715968a4d03cf91aa7c6f44e25757a45e not being part of
ceph-9.0-rhel-patches branch. Relevant code removed.

Fixes: https://tracker.ceph.com/issues/71740
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
(cherry picked from commit 1d20ac737af627667e31a09e2291d6c0e0b40ede)
Resolves: https://jsw.ibm.com/browse/ISCE-1465

4 months agocommon,mds: transmit SNAPDIR_VISIBILITY flag via SnapRealmInfoNew
Dhairya Parmar [Wed, 6 Aug 2025 21:32:05 +0000 (03:02 +0530)]
common,mds: transmit SNAPDIR_VISIBILITY flag via SnapRealmInfoNew

at the time of building snap trace

Conflicts:
upstream ed6b71246137f9793f2d56b4d050b271a3da29fd made changes to generate_test_instances()
which is not present downstream in ceph-9.0-rhel-patches, so had to adjust accordingly.

Fixes: https://tracker.ceph.com/issues/71740
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
(cherry picked from commit 9540f543011a9aa08886a14159323cc68722faa4)
Resolves: https://jsw.ibm.com/browse/ISCE-1465

4 months agomds: rebuild snaprealm cache if last_modified or change_attr changed
Dhairya Parmar [Wed, 23 Jul 2025 13:12:47 +0000 (18:42 +0530)]
mds: rebuild snaprealm cache if last_modified or change_attr changed

For the server side snapdir visibility changes to be transported to the
client â€” SnapRealm cache needs to be rebuilt otherwise the same metadata
would be sent via the send_snap_update() in C_MDS_inode_update_finish() while
setting the `ceph.dir.subvolume.snaps.visible` vxattr.

The condition used to check for the `seq` and `last_destroyed` against their
cached values but for the vxattr change, it's a rather non-feasible
heavylifting to update the `seq` which involves a set of steps to prepare the
op, commit the op, journal the changes and update snap-server/client(s) just
for a mere flag update (and updating last_destroyed anyway doesn't make sense
for this case). So, compare last_modified and change_attr with their cached
values to check if the SnapRealm cache should be rebuilt. These values are
incremented in the Server::handle_client_setvxattr while toggling the
snapshot visibility xattr and this would enforce a cache rebuild.

Fixes: https://tracker.ceph.com/issues/71740
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
(cherry picked from commit b47f88732fc31027305b069e4a9dba3ebed2f080)
Resolves: https://jsw.ibm.com/browse/ISCE-1465

4 months agomds: add ceph.dir.subvolume.snaps.visible vxattr
Dhairya Parmar [Thu, 3 Jul 2025 11:52:38 +0000 (17:22 +0530)]
mds: add ceph.dir.subvolume.snaps.visible vxattr

using SNAPDIR_VISIBILITY flag added in sr_t

Conflicts:
upstream ed6b71246137f9793f2d56b4d050b271a3da29fd made changes to generate_test_instances()
but is not present downstream in ceph-9.0-rhel-patches, so had to resort to adjust accordingly.

Fixes: https://tracker.ceph.com/issues/71740
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
(cherry picked from commit 98452c28315b53f828a1e833e288d54b9b1e29c6)
Resolves: https://jsw.ibm.com/browse/ISCE-1465

4 months agoqa/workunits/rbd: add test_resync_after_relocate_and_force_promote
Miki Patel [Thu, 18 Sep 2025 11:20:44 +0000 (16:50 +0530)]
qa/workunits/rbd: add test_resync_after_relocate_and_force_promote

Validating the status of group snapshot in resync scenario, where
primary group is first demoted and then (force) promoted.

Test case validates fix proposed in commit b162d7df0c06 ("rbd-mirror:
do not prune primary snapshots as part of the secondary daemon").

Signed-off-by: Miki Patel <miki.patel132@gmail.com>
Resolves: rhbz#2399618

4 months agolibrbd: fix segfault when removing non-existent group
Prasanna Kumar Kalever [Thu, 25 Sep 2025 14:31:06 +0000 (20:01 +0530)]
librbd: fix segfault when removing non-existent group

Removing a non-existent group triggers a segfault in
librbd::mirror::GroupGetInfoRequest::send(). The issue is caused by a missing
return after finish(), which allows execution to fall through into
GroupGetInfoRequest::get_id() and access invalid memory.

Also, makesure to ignore ENOENT throughout the method Group::remove()
except at cls_client::dir_get_id()

Credits to Ilya Dryomov <idryomov@gmail.com>

Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Resolves: rhbz#2399618

4 months agoqa/workunits: add scenario to "test_force_promote_delete_group"
Ramana Raja [Mon, 8 Sep 2025 02:50:51 +0000 (22:50 -0400)]
qa/workunits: add scenario to "test_force_promote_delete_group"

... in rbd_mirror_group_simple test suite.

After the group and its images are removed from the secondary, the test
can run in one of two scenarios. In Scenario 1, the test confirms that
the group is completely synced from the primary to the secondary. In
Scenario 2, the test disables and re-enables the primary, and then
confirms the group syncs from the primary to the secondary. Currently,
both of the scenarios fail occassionally when trying to confirm that
group is completely synced from the primary to the secondary.

Signed-off-by: Ramana Raja <rraja@redhat.com>
Resolves: rhbz#2399618

4 months agorbd-mirror: skip validation of primary demote snapshots
Prasanna Kumar Kalever [Mon, 22 Sep 2025 14:36:40 +0000 (20:06 +0530)]
rbd-mirror: skip validation of primary demote snapshots

Problem:
When a primary demotion is in progress, the demote snapshot is in an incomplete
state. However, the group replayer incorrectly attempts to validate this
snapshot using validate_local_group_snapshots(), treating the cluster as if it
were secondary. This results in the group status being incorrectly set to
up+replaying instead of up+unknown.

Solution:
Avoid validating snapshots that are in the process of being demoted on the
primary. This ensures the group replayer does not mistakenly assign an
incorrect role or state during transition.

Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Resolves: rhbz#2399618

4 months agorgw: add rate limit for LIST & DELETE ops, hotfix syncup
Mark Kogan [Wed, 30 Jul 2025 12:54:19 +0000 (12:54 +0000)]
rgw: add rate limit for LIST & DELETE ops, hotfix syncup

Add rate limiting specific to LIST ops,
similar to the current rate-limiting
(https://docs.ceph.com/en/latest/radosgw/admin/#rate-limit-management)

Example usage:

```
./bin/radosgw-admin ratelimit set --ratelimit-scope=user --uid=<UID> --max_list_ops=2
./bin/radosgw-admin ratelimit set --ratelimit-scope=user --uid=<UID> --max_delete_ops=2
./bin/radosgw-admin ratelimit enable --ratelimit-scope=user --uid=<UID>

./bin/radosgw-admin ratelimit get --ratelimit-scope=user --uid=<UID>
{
  "user_ratelimit": {
    "max_read_ops": 0,
    "max_write_ops": 0,
    "max_list_ops": 2,
    "max_delete_ops": 2,
    "max_read_bytes": 0,
    "max_write_bytes": 0,
    "enabled": true
  }
}

pkill -9 radosgw
./bin/radosgw -c ./ceph.conf ...

aws --endpoint-url 'http://0:8000' s3 mb s3://bkt
aws --endpoint-url 'http://0:8000' s3 cp  ./ceph.conf s3://bkt

aws --endpoint-url http://0:8000 s3api list-objects-v2 --bucket bkt --prefix 'ceph.conf' --delimiter '/'
{
    "Contents": [
        {
            "Key": "ceph.conf",
            "LastModified": "2025-07-30T13:59:38+00:00",
            "ETag": "\"13d11d431ae290134562c019d9e40c0e\"",
            "Size": 32346,
            "StorageClass": "STANDARD"
        }
    ],
    "RequestCharged": null
}

aws --endpoint-url http://0:8000 s3api list-objects-v2 --bucket bkt --prefix 'ceph.conf' --delimiter '/'
{
    "Contents": [
        {
            "Key": "ceph.conf",
            "LastModified": "2025-07-30T13:59:38+00:00",
            "ETag": "\"13d11d431ae290134562c019d9e40c0e\"",
            "Size": 32346,
            "StorageClass": "STANDARD"
        }
    ],
    "RequestCharged": null
}

aws --endpoint-url http://0:8000 s3api list-objects-v2 --bucket bkt --prefix 'ceph.conf' --delimiter '/'
argument of type 'NoneType' is not iterable

tail -F ./out/radosgw.8000.log | grep beast
...
beast: 0x7fffbbe09780:  [30/Jul/2025:15:44:50.359 +0000] " GET /bkt?list-type=2&delimiter=%2F&prefix=ceph.conf&encoding-type=url HTTP/1.1" 200 535 - "aws-cli/2.15.31 Python/3.9.21 Linux/5.14.0-570.28.1.el9_6.x86_64 source/x86_64.rhel.9 prompt/off command/s3api.list-objects-v2" - latency=0.000999995s
beast: 0x7fffbbe09780:  [30/Jul/2025:15:44:53.904 +0000] " GET /bkt?list-type=2&delimiter=%2F&prefix=ceph.conf&encoding-type=url HTTP/1.1" 200 535 - "aws-cli/2.15.31 Python/3.9.21 Linux/5.14.0-570.28.1.el9_6.x86_64 source/x86_64.rhel.9 prompt/off command/s3api.list-objects-v2" - latency=0.000999995s
                                                                                                                                           vvv
beast: 0x7fffbbe09780:  [30/Jul/2025:15:44:58.192 +0000] " GET /bkt?list-type=2&delimiter=%2F&prefix=ceph.conf&encoding-type=url HTTP/1.1" 503 228 - "aws-cli/2.15.31 Python/3.9.21 Linux/5.14.0-570.28.1.el9_6.x86_64 source/x86_64.rhel.9 prompt/off command/s3api.list-objects-v2" - latency=0.000000000s
beast: 0x7fffbbe09780:  [30/Jul/2025:15:44:58.798 +0000] " GET /bkt?list-type=2&delimiter=%2F&prefix=ceph.conf&encoding-type=url HTTP/1.1" 503 228 - "aws-cli/2.15.31 Python/3.9.21 Linux/5.14.0-570.28.1.el9_6.x86_64 source/x86_64.rhel.9 prompt/off command/s3api.list-objects-v2" - latency=0.000999994s
beast: 0x7fffbbe09780:  [30/Jul/2025:15:44:59.807 +0000] " GET /bkt?list-type=2&delimiter=%2F&prefix=ceph.conf&encoding-type=url HTTP/1.1" 503 228 - "aws-cli/2.15.31 Python/3.9.21 Linux/5.14.0-570.28.1.el9_6.x86_64 source/x86_64.rhel.9 prompt/off command/s3api.list-objects-v2" - latency=0.000000000s

s3cmd put ./ceph.conf s3://bkt/1
s3cmd put ./ceph.conf s3://bkt/2
s3cmd put ./ceph.conf s3://bkt/3

s3cmd rm s3://bkt/1
s3cmd rm s3://bkt/2
s3cmd rm s3://bkt/3

delete: 's3://bkt/1'
delete: 's3://bkt/2'
WARNING: Retrying failed request: /3 (503 (SlowDown))
WARNING: Waiting 3 sec...
WARNING: Retrying failed request: /3 (503 (SlowDown))
                                      ^^^
```

Resolves: rhbz#2393774
Resolves: rhbz#2393477
Resolves: rhbz#2395642
Resolves: rhbz#2391529
Resolves: rhbz#2389280

Signed-off-by: Mark Kogan <mkogan@ibm.com>
Update PendingReleaseNotes

Co-authored-by: Yuval Lifshitz <yuvalif@yahoo.com>
Signed-off-by: Mark Kogan <31659604+mkogan1@users.noreply.github.com>
5 months agomgr/dashboard: Form retains old data when switching from edit to create mode
pujashahu [Thu, 11 Sep 2025 13:40:27 +0000 (19:10 +0530)]
mgr/dashboard: Form retains old data when switching from edit to create mode

Fixes: https://tracker.ceph.com/issues/72989
Resolves: rhbz#2161889

Signed-off-by: pujashahu <pshahu@redhat.com>
(cherry picked from commit 918dff407d912b3a5ac068e0050467396668163c)
(cherry picked from commit da174509298da14857479515cf8e7c7ea9e541de)

5 months agomgr/cephadm: Fixed stats frontend to always enable health url
Shweta Bhosale [Tue, 23 Sep 2025 16:33:05 +0000 (22:03 +0530)]
mgr/cephadm: Fixed stats frontend to always enable health url

Fixes: https://tracker.ceph.com/issues/71707
Signed-off-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
(cherry picked from commit 4cf55bdb9e541a62c01286729125bf1e0a6178b2)

Resolves: rhbz#2353516

5 months agomgr/cephadm: Allow Ingress service to expose the metrics via HTTPS also add fields...
Shweta Bhosale [Wed, 3 Sep 2025 14:37:53 +0000 (20:07 +0530)]
mgr/cephadm: Allow Ingress service to expose the metrics via HTTPS also add fields in spec to accept monitor ips/ monitor networks

Fixes: https://tracker.ceph.com/issues/71707
Signed-off-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
(cherry picked from commit da5d3ab0f32dc9e19da73ae01a0dbb95b2d1f8b6)

Conflicts:
src/pybind/mgr/cephadm/services/ingress.py
src/pybind/mgr/cephadm/services/service_discovery.py
src/pybind/mgr/cephadm/templates/services/ingress/haproxy.cfg.j2
src/pybind/mgr/cephadm/tests/test_services.py
src/python-common/ceph/deployment/service_spec.py

Resolves: rhbz#2353516

5 months agomgr/cephadm: Adding genric cert/key name support for get certificates
Shweta Bhosale [Wed, 3 Sep 2025 14:34:54 +0000 (20:04 +0530)]
mgr/cephadm: Adding genric cert/key name support for get certificates

Fixes: https://tracker.ceph.com/issues/71707
Signed-off-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
(cherry picked from commit 14b1dd781de7088683433dde394ddbdbafedaa0e)

Resolves: rhbz#2353516

5 months agomgr/cephadm: split host cache entries if they exceed max mon store entry size
Adam King [Thu, 25 Sep 2025 20:13:18 +0000 (16:13 -0400)]
mgr/cephadm: split host cache entries if they exceed max mon store entry size

If the json blob we attempt to store for a host entry
exceeds the max mon store entry size, we become unable
to continue to store that hosts information in the
config key store. This means we only ever have the
information from the last time the json blob was
under the size limit each time the mgr fails over,
resulting in a number of stray host/daemon warnings
being generated and very outdated information being
reported by `ceph orch ps` and `ceph orch ls` around
the time of the failover

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

Resolves: rhbz#2345474

5 months agomgr/dashboard: add nsid param to ns add command
Tomer Haskalovitch [Wed, 10 Sep 2025 09:02:03 +0000 (12:02 +0300)]
mgr/dashboard: add nsid param to ns add command

Resolves: rhbz#2398049

Signed-off-by: Tomer Haskalovitch <tomer.haska@ibm.com>
(cherry picked from commit ee37978e7341ad3c29f986f316d89cb76b26efb5)

5 months agomgr/dashboard: --no-group-append default value to False, aligned with old CLI
Tomer Haskalovitch [Fri, 12 Sep 2025 00:58:44 +0000 (03:58 +0300)]
mgr/dashboard: --no-group-append default value to False, aligned with old CLI

Resolves: rhbz#2391725

Signed-off-by: Tomer Haskalovitch <tomer.haska@ibm.com>
(cherry picked from commit 46b74faa763e7894e62558f14f786c870d740b29)

5 months agotest/libcephfs: use more entries to reproduce snapdiff fragmentation
Igor Fedotov [Thu, 21 Aug 2025 10:42:54 +0000 (13:42 +0300)]
test/libcephfs: use more entries to reproduce snapdiff fragmentation
issue.

Snapdiff listing fragments have different boundaries in Reef and Squid+
releases hence original reproducer (made for Reef) doesn't work properly
in S+ releases. This patch fixes that at cost of longer execution.
This might be redundant/senseless when backporting to Reef.

Resolves: rhbz#2390060

Related-to: https://tracker.ceph.com/issues/72518
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit 23397d32607fc307359d63cd651df3c83ada3a7f)
(cherry picked from commit 04c34b62a7ebad9296593edfcc8132b1c7351513)

5 months agomds: rollback the snapdiff fragment entries with the same name if needed.
Igor Fedotov [Tue, 12 Aug 2025 13:17:49 +0000 (16:17 +0300)]
mds: rollback the snapdiff fragment entries with the same name if needed.

This is required when more entries with the same name don't fit into the
fragment. With the existing means for fragment offset specification such a splitting to be
prohibited.

Resolves: rhbz#2390060

Fixes: https://tracker.ceph.com/issues/72518
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit 24955e66f4826f8623d2bec1dbfc580f0e4c39ae)
(cherry picked from commit 0a9e33733c50aacac223bd409813b0a711b7b181)

5 months agotest/libcephfs: Polisihing SnapdiffDeletionRecreation case
Igor Fedotov [Tue, 12 Aug 2025 13:07:43 +0000 (16:07 +0300)]
test/libcephfs: Polisihing SnapdiffDeletionRecreation case

Resolves: rhbz#2390060

Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit daf3350621cfafa383cd9deea81b60b775a53093)
(cherry picked from commit a16e0395b9d8e1303617fda956c1d89c58c6f0fd)

5 months agoTest failure: LibCephFS.SnapdiffDeletionRecreation
sajibreadd [Mon, 11 Aug 2025 08:46:39 +0000 (10:46 +0200)]
Test failure: LibCephFS.SnapdiffDeletionRecreation

Resolves: rhbz#2390060

Reproduces: https://tracker.ceph.com/issues/72518
Signed-off-by: Md Mahamudur Rahaman Sajib <mahamudur.sajib@croit.io>
(cherry picked from commit 4ff71386ac1529dc1f7c2640511f509bd6842862)
(cherry picked from commit 48f5a5d04fb2cef52c5e4a3daf452ccf988666d2)
(cherry picked from commit c79cf1af29e786161916ae0aa411bdd891fa8d29)

5 months agomds: remove duplicate `CLIENT_METRIC_TYPE_STDEV_METADATA_LATENCY` from feature bit
Venky Shankar [Thu, 25 Sep 2025 07:19:57 +0000 (12:49 +0530)]
mds: remove duplicate `CLIENT_METRIC_TYPE_STDEV_METADATA_LATENCY` from feature bit

Resolves: ISCE-2037
Signed-off-by: Venky Shankar <vshankar@redhat.com>
Reported-by: Sachin Punadikar <sachin.punadikar@ibm.com>
5 months agomgr/dashboard: Migrate from promtail to grafana alloy
Aashish Sharma [Fri, 25 Apr 2025 06:28:37 +0000 (11:58 +0530)]
mgr/dashboard: Migrate from promtail to grafana alloy

Since promtail is now deprecated, we need to start using grafana alloy for centralized logging setup

Fixes: https://tracker.ceph.com/issues/71072
Resolves: rhbz#2398027

Signed-off-by: Aashish Sharma <aasharma@redhat.com>
(cherry picked from commit f6021bd4829fe2bf3fbc63900a8f69143f7dd444)

Conflicts:
src/pybind/mgr/cephadm/migrations.py
src/pybind/mgr/cephadm/module.py
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.ts

5 months agomgr/dashboard: Local storage class creation via dashboard doesn't handle creation...
Dnyaneshwari [Fri, 5 Sep 2025 10:17:11 +0000 (15:47 +0530)]
mgr/dashboard: Local storage class creation via dashboard doesn't handle creation of pool.

Fixes: https://tracker.ceph.com/issues/72569
Resolves: rhbz#2398058

Signed-off-by: Dnyaneshwari <dtalweka@redhat.com>
mgr/dashboard: handle creation of new pool

Commit includes:
1) Provide link to create a new pool
2) Refactored validation on ACL mapping, removed required validator as default
3) fixed runtime error on console due to ACL length due to which the details section was not opening
4) Used rxjs operators to make API calls and making form ready once all data is available, fixing the form patch issues
5) Refactored some part of code to improve the performance
6) Added zone and pool information in details section for local storage class

Fixes: https://tracker.ceph.com/issues/72569
Signed-off-by: Naman Munet <naman.munet@ibm.com>
(cherry picked from commit 2d0e71c845643a26d4425ddac8ee0ff30153eff2)

src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-storage-class-form/rgw-storage-class-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw.module.ts
src/pybind/mgr/dashboard/services/rgw_client.py

(cherry picked from commit a6431bfe8de5c5e32cb62ff5b072aef00239c6e9)

5 months agomgr/dashboard: FS - Attach Command showing undefined for MountData
Dnyaneshwari [Fri, 19 Sep 2025 11:01:43 +0000 (16:31 +0530)]
mgr/dashboard: FS - Attach Command showing undefined for MountData

Fixes: https://tracker.ceph.com/issues/73137
Resolves: rhbz#2398048

Signed-off-by: Dnyaneshwari Talwekar <dtalwekar@redhat.com>
(cherry picked from commit 50ef955207e7095578dc09820885a3dd0d6b3d52)
(cherry picked from commit f79cc7bfecf795c359f6cb9c06833e69d24c9ff3)

5 months agomgr/dashboard: Tiering form - Placement Target in Advanced Section
Dnyaneshwari [Wed, 20 Aug 2025 04:46:21 +0000 (10:16 +0530)]
mgr/dashboard: Tiering form - Placement Target in Advanced Section

Fixes: https://tracker.ceph.com/issues/72545
Resolves: rhbz#2398033

Signed-off-by: Dnyaneshwari Talwekar <dtalweka@redhat.com>
(cherry picked from commit aa3bb8adddac675ea3c6dcd0bd4e9143743124b8)
(cherry picked from commit 4a46b495c0c51776bfb8e9d2d12c813c45e96223)

5 months agoqa: Add test for subvolume_ls on osd full
Kotresh HR [Thu, 24 Jul 2025 17:31:12 +0000 (17:31 +0000)]
qa: Add test for subvolume_ls on osd full

Resolves: rhbz#2313740

Fixes: https://tracker.ceph.com/issues/72260
Signed-off-by: Kotresh HR <khiremat@redhat.com>
(cherry picked from commit 8547e57ebc4022ca6750149f49b68599a8af712e)
(cherry picked from commit a08fb44e28ce7c37b91774909f89356ca3ab95dd)

5 months agomds: Fix readdir when osd is full.
Kotresh HR [Thu, 24 Jul 2025 09:33:06 +0000 (09:33 +0000)]
mds: Fix readdir when osd is full.

Problem:
The readdir wouldn't list all the entries in the directory
when the osd is full with rstats enabled.

Cause:
The issue happens only in multi-mds cephfs cluster. If rstats
is enabled, the readdir would request 'Fa' cap on every dentry,
basically to fetch the size of the directories. Note that 'Fa' is
CEPH_CAP_GWREXTEND which maps to CEPH_CAP_FILE_WREXTEND and is
used by CEPH_STAT_RSTAT.

The request for the cap is a getattr call and it need not go to
the auth mds. If rstats is enabled, the getattr would go with
the mask CEPH_STAT_RSTAT which mandates the requirement for
auth-mds in 'handle_client_getattr', so that the request gets
forwarded to auth mds if it's not the auth. But if the osd is full,
the indode is fetched in the 'dispatch_client_request' before
calling the  handler function of respective op, to check the
FULL cap access for certain metadata write operations. If the inode
doesn't exist, ESTALE is returned. This is wrong for the operations
like getattr, where the inode might not be in memory on the non-auth
mds and returning ESTALE is confusing and client wouldn't retry. This
is introduced by the commit 6db81d8479b539d which fixes subvolume
deletion when osd is full.

Fix:
Fetch the inode required for the FULL cap access check for the
relevant operations in osd full scenario. This makes sense because
all the operations would mostly be preceded with lookup and load
the inode in memory or they would handle ESTALE gracefully.

Resolves: rhbz#2313740

Fixes: https://tracker.ceph.com/issues/72260
Introduced-by: 6db81d8479b539d3ca6b98dc244c525e71a36437
Signed-off-by: Kotresh HR <khiremat@redhat.com>
(cherry picked from commit 1ca8f334f944ff78ba12894f385ffb8c1932901c)
(cherry picked from commit aa339674471e2e26488252fc3c4bd458d37ccd42)

5 months agomds: use std::variant instead of boost::variant
Igor Golikov [Tue, 16 Sep 2025 14:12:58 +0000 (14:12 +0000)]
mds: use std::variant instead of boost::variant

Resolves: ISCE-2037

Signed-off-by: Igor Golikov <igolikov@redhat.com>
(cherry picked from commit 479eae30dfab1563bb0163f3fff9eb671a09ff08)

5 months agoinclude/cephfs: fix build error
Venky Shankar [Wed, 24 Sep 2025 09:15:31 +0000 (14:45 +0530)]
include/cephfs: fix build error

Resolves: ISCE-2037

Signed-off-by: Venky Shankar <vshankar@redhat.com>
5 months agomgr/dashboard: fix SMB custom DNS button and linked_to_cluster col
Pedro Gonzalez Gomez [Tue, 26 Aug 2025 12:05:45 +0000 (14:05 +0200)]
mgr/dashboard: fix SMB custom DNS button and linked_to_cluster col

- The button 'add custom DNS' in smb cluster form should only appear for active directory where is relevant.

- The linked_to_cluster column data is missing from smb standalone

- Some refactoring to remove magic strings and use FormControl for publicAddrs field

Resolves:rhbz#2361570
Resolves:rhbz#2366226

Fixes: https://tracker.ceph.com/issues/73096
Signed-off-by: Pedro Gonzalez Gomez <pegonzal@ibm.com>
(cherry picked from commit 9ce943e21558d17b3a214840b39bb57eab0cbd85)
(cherry picked from commit 766dbab7320949f7917ef60e26b1e5029ed59d9f)

5 months agomgr/dashboard: add multiple ceph users deletion
Pedro Gonzalez Gomez [Wed, 27 Aug 2025 14:41:41 +0000 (16:41 +0200)]
mgr/dashboard: add multiple ceph users deletion

Resolves:rhbz#2272916

Fixes: https://tracker.ceph.com/issues/72752
Signed-off-by: Pedro Gonzalez Gomez <pegonzal@ibm.com>
(cherry picked from commit 14ca16576d16de49c07725fb4b0feb112c8a1a43)
(cherry picked from commit 16cbb7588b378a802c0f4eebb29fc174e024cb61)

5 months agomgr/dashboard:[NFS] add Subvolume Groups and Subvolumes in "Edit NFS Export" form
Dnyaneshwari [Wed, 6 Aug 2025 09:42:43 +0000 (15:12 +0530)]
mgr/dashboard:[NFS] add Subvolume Groups and Subvolumes in "Edit NFS Export" form

Resolves: rhbz#2354020

Fixes: https://tracker.ceph.com/issues/72435
Signed-off-by: Dnyaneshwari Talwekar <dtalweka@redhat.com>
(cherry picked from commit 3862c76be6d1ba9bb0e9d8d3bf67c8a3791c2349)

5 months agomds: remove unused enum fields for subvolume metrics
Igor Golikov [Tue, 16 Sep 2025 14:14:18 +0000 (14:14 +0000)]
mds: remove unused enum fields for subvolume metrics

Resolves: ISCE-2037

Signed-off-by: Igor Golikov <igolikov@redhat.com>
Fixes: https://tracker.ceph.com/issues/73053
(cherry picked from commit 836cc49ca1809b755c1fd366e5bd6a231ad568ca)

5 months agodoc: update documentation
Igor Golikov [Sun, 13 Jul 2025 11:14:21 +0000 (11:14 +0000)]
doc: update documentation

Resolves: ISCE-2037

Fixes: https://tracker.ceph.com/issues/68931
Signed-off-by: Igor Golikov <igolikov@ibm.com>
(cherry picked from commit e6a21442ab814f426ca9f304dbfd96dfd6269509)
(cherry picked from commit 354ba41ee2f63717bf520a86a77f1d408c20e29c)

5 months agotest: add subvolume metrics sanity test
Igor Golikov [Thu, 7 Aug 2025 16:35:47 +0000 (16:35 +0000)]
test: add subvolume metrics sanity test

Resolves: ISCE-2037

Signed-off-by: Igor Golikov <igolikov@ibm.com>
Fixes: https://tracker.ceph.com/issues/68929
(cherry picked from commit 1327fc8897c8779a8f31ea7f5e8759de2e048515)
(cherry picked from commit 067962fdde079c32c26850e526211de967d60d42)

5 months agoqa/cephfs: run selective test classes from basic volumes test
Venky Shankar [Mon, 8 Sep 2025 06:40:35 +0000 (06:40 +0000)]
qa/cephfs: run selective test classes from basic volumes test

Resolves: ISCE-2037

Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 13d9baf38ea1d7df50a31da026f430110c940bf0)
(cherry picked from commit 0cd54294b78ff6b66b5bcf197a8874392e367067)

5 months agoqa/cephfs: use fuse mount for volumes/subvolume tests
Venky Shankar [Fri, 29 Aug 2025 07:15:09 +0000 (07:15 +0000)]
qa/cephfs: use fuse mount for volumes/subvolume tests

Using the kernel client is a) not really required existing
volume/subvolume test and b) per-subvolume metrics is only
supported by the user-space client library.

Resolves: ISCE-2037

Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 17c35a97ac0e580545688f71b8facbdf14fc2376)