]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/log
ceph-ci.git
3 weeks agoinclude/encoding: add encoder helpers for sized ints
Patrick Donnelly [Tue, 24 Jun 2025 02:37:16 +0000 (22:37 -0400)]
include/encoding: add encoder helpers for sized ints

When the raw type may not match the required encoded size, this helper makes
intent clear and avoids a common verbose pattern:

    intX_t t = val;
    encode(t, bl);

and

    intX_t t;
    decode(t, p);
    val = t;

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon: add health checks for insecure keys
Patrick Donnelly [Sun, 1 Jun 2025 00:54:30 +0000 (20:54 -0400)]
mon: add health checks for insecure keys

This commit prompted the previous refactor as it was inconvenient to check for
health warnings as part of AuthMonitor::tick and then pass those up via
PaxosService::encode_health.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon: cleanup for loop
Patrick Donnelly [Fri, 30 May 2025 18:47:07 +0000 (14:47 -0400)]
mon: cleanup for loop

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon/HealthMonitor: refactor quorum_checks/leader_checks as PaxosMap
Patrick Donnelly [Tue, 24 Jun 2025 16:21:55 +0000 (12:21 -0400)]
mon/HealthMonitor: refactor quorum_checks/leader_checks as PaxosMap

To codify protocol and catch bugs.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon: refactor health check map through PaxosMap
Patrick Donnelly [Sun, 1 Jun 2025 00:53:55 +0000 (20:53 -0400)]
mon: refactor health check map through PaxosMap

This was motivated by confusing persistence of some health warnings during
testing of health warnings for cephx upgrades. Some services are only doing
health checks during ::encode_pending and others during ::tick. Make it
consistent.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon/PaxosMap: add map template for managing Paxos structures
Patrick Donnelly [Tue, 24 Jun 2025 16:14:19 +0000 (12:14 -0400)]
mon/PaxosMap: add map template for managing Paxos structures

To protect access and codify protocol. Based loosely on PaxosFSMap which can be
refactored to use this later.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth: improve programmability of key dumps
Patrick Donnelly [Mon, 7 Jul 2025 18:55:57 +0000 (14:55 -0400)]
auth: improve programmability of key dumps

Notably:

- improve names (avoid repeated "keys")
- output type_str

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocommon/entity_name: dump type name as string
Patrick Donnelly [Fri, 13 Jun 2025 20:52:23 +0000 (16:52 -0400)]
common/entity_name: dump type name as string

For easier selection without hard-coded constants.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocommon/entity_name: remove dead method
Patrick Donnelly [Mon, 7 Jul 2025 18:02:05 +0000 (14:02 -0400)]
common/entity_name: remove dead method

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocommon/entity_name: cleanup entity_name::type
Patrick Donnelly [Sat, 31 May 2025 23:52:33 +0000 (19:52 -0400)]
common/entity_name: cleanup entity_name::type

This should use the entity_type_t from the msg headers. The only awkwardness is
that the encode/decode of the type needs to continue using a uint32_t.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocephx: add note to address technical debt
Patrick Donnelly [Thu, 29 May 2025 16:01:41 +0000 (12:01 -0400)]
cephx: add note to address technical debt

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth: check service key is valid before decryption
Patrick Donnelly [Thu, 29 May 2025 15:57:55 +0000 (11:57 -0400)]
auth: check service key is valid before decryption

CryptoKey::empty is the correct mechanism to check for an invalid key (and this
is codified elsewhere, fixed in this commit). Decryption would fail with an
abort if the key handler was unset. This would happen after rotating the "mon."
key and then restarting one of the mons.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth: add more debugging for service tickets
Patrick Donnelly [Thu, 29 May 2025 15:57:13 +0000 (11:57 -0400)]
auth: add more debugging for service tickets

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth/cephx: set error message when decryption fails
Patrick Donnelly [Thu, 29 May 2025 15:53:04 +0000 (11:53 -0400)]
auth/cephx: set error message when decryption fails

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth/cephx: provide more debugging when sig checks fail
Patrick Donnelly [Thu, 29 May 2025 15:52:34 +0000 (11:52 -0400)]
auth/cephx: provide more debugging when sig checks fail

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon: provide emergency mechanism to use mon keyring
Patrick Donnelly [Thu, 29 May 2025 15:04:00 +0000 (11:04 -0400)]
mon: provide emergency mechanism to use mon keyring

If they key is lost for the `mon.` credential, it's very inconvenient to get it
out of the "auth" database in the mon store. So, allow the operator to create a
new keyring for the mons and use it instead to get mons in quorum again.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon: cycle through keyring or key_server for auth with mons
Patrick Donnelly [Thu, 29 May 2025 14:13:40 +0000 (10:13 -0400)]
mon: cycle through keyring or key_server for auth with mons

After commit `mon: use key_server for looking up mon key`, the mons will now
use the key_server to lookup the `mon.` key when a mon connects.  We need to
make the mons prefer using that key with authenticating during probing other
mons. However, the protocol doesn't allow falling back to another key. This is
necessary if what's in the key_server database is out-of-date due to an earlier
loss of quorum. In that case, the operator should update the local keyring file
and the mon should give that a try if auth fails.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon: use key_server for looking up mon key
Patrick Donnelly [Thu, 29 May 2025 14:07:52 +0000 (10:07 -0400)]
mon: use key_server for looking up mon key

Note: the key_server is already configured to fallback (via
KeyServerData::extra_secrets) to the Monitor::keyring which is sourced from the
mon's keyring file.

Using the Monitor::key_server allows us to maintain the mon's secret in the
auth database alongside all other secrets. This makes rotating the mons' keys
the same as all other entities in Ceph. Before this, to rotate the mons' key
you would need to turn off all montitors and then rotate the key files
manually. This is obviously disruptive since it's not a rolling upgrade.

If the key is sourced from the Monitor::key_server, then the key can be rotated
and all mons are aware of the new key. The mons can then proceed to restart as
needed in a non-disruptive fashion.

A followup commit will cleanup the monitor to try either its local keyring key
or the key in the key_server (if present) when authenticating with other mons.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon: dout chosen addrs after startup
Patrick Donnelly [Thu, 29 May 2025 14:05:55 +0000 (10:05 -0400)]
mon: dout chosen addrs after startup

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon/MonClient: improve error message when failing to auth
Patrick Donnelly [Wed, 14 May 2025 23:33:43 +0000 (19:33 -0400)]
mon/MonClient: improve error message when failing to auth

Currently you just see:

    2025-05-14T23:07:37.244+0000 7f00dedd1640 -1 monclient(hunting): handle_auth_bad_method server allowed_methods [2] but i only support [2]

which is terrible at communicating the problem.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth,mon: add _exit config when auth fails
Patrick Donnelly [Wed, 26 Mar 2025 02:02:26 +0000 (22:02 -0400)]
auth,mon: add _exit config when auth fails

This is largely for testing: we want a client to exit immediately if auth
failures occur. Presently, those clients will try to reconnect forever.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agotools/ceph_authtool: allow configuring a preferred cipher
Patrick Donnelly [Wed, 26 Mar 2025 02:05:09 +0000 (22:05 -0400)]
tools/ceph_authtool: allow configuring a preferred cipher

This makes testing easier as we can configure all keys in the cluster to be the
given "old" type without modifying each location that ceph-authtool is used.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon/AuthMonitor: shutdown session connection on auth failure
Patrick Donnelly [Tue, 13 May 2025 16:28:39 +0000 (12:28 -0400)]
mon/AuthMonitor: shutdown session connection on auth failure

Currently the mons will allow the session to persist even though an auth
failure has occurred, probably while trying to obtain new tickets.

A sequence to easily trigger this:

    ceph auth rotate osd.0
    ceph auth wipe-rotating-service-keys

The osd.0 will continue interacting with the mons until restart or a network
interruption occurs.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomsg: add interface to shutdown Connection
Patrick Donnelly [Tue, 13 May 2025 16:26:48 +0000 (12:26 -0400)]
msg: add interface to shutdown Connection

Unfortunately this doesn't work as-is because I couldn't find primitives to
flush the out_queue. It's left as a to-do for now.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocrimson/mon/MonClient: call _wipe_secrets_and_tickets when needed
Matan Breizman [Thu, 12 Jun 2025 09:23:37 +0000 (09:23 +0000)]
crimson/mon/MonClient: call _wipe_secrets_and_tickets when needed

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocrimson/mon/MonClient: refacor Client::handle_monmap
Matan Breizman [Thu, 12 Jun 2025 09:22:22 +0000 (09:22 +0000)]
crimson/mon/MonClient: refacor Client::handle_monmap

Use coroutines, should help with future changes.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocrimson/mon/MonClient: introduce handle_auth_failure
Matan Breizman [Wed, 11 Jun 2025 12:28:26 +0000 (12:28 +0000)]
crimson/mon/MonClient: introduce handle_auth_failure

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocrimson/mon/MonClient: add asock TODO comment
Matan Breizman [Wed, 11 Jun 2025 12:26:59 +0000 (12:26 +0000)]
crimson/mon/MonClient: add asock TODO comment

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocrimson/osd/MonClient: Introduce Client::_wipe_secrets_and_tickets())
Matan Breizman [Wed, 11 Jun 2025 09:38:59 +0000 (09:38 +0000)]
crimson/osd/MonClient: Introduce Client::_wipe_secrets_and_tickets())

Similar to MonClient::_wipe_secrets_and_tickets())

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocrimson/mon/MonClient: imitate Classic's _check_auth_tickets
Matan Breizman [Wed, 11 Jun 2025 09:34:30 +0000 (09:34 +0000)]
crimson/mon/MonClient: imitate Classic's _check_auth_tickets

Imitating this interface from Classicals MonClient::_check_auth_tickets()
should make it easier to understand Crimson's counterpart.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocrimson/mon/MonClient: cleanup redundant private
Matan Breizman [Wed, 11 Jun 2025 09:33:20 +0000 (09:33 +0000)]
crimson/mon/MonClient: cleanup redundant private

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon/MonClient: wipe secrets and invalidate tickets on auth epoch change
Patrick Donnelly [Fri, 9 May 2025 18:56:10 +0000 (14:56 -0400)]
mon/MonClient: wipe secrets and invalidate tickets on auth epoch change

* This causes service daemons to drop all known service tickets and request new
  ones from the auth server.

* This causes the clients (and service daemons) to request new tickets from the
  auth server which will include tickets signed with the new service keys.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon/AuthMonitor: bump auth epoch when wiping service keys
Patrick Donnelly [Fri, 9 May 2025 18:54:47 +0000 (14:54 -0400)]
mon/AuthMonitor: bump auth epoch when wiping service keys

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon/MonmapMonitor: wire up interface to bump auth epoch
Patrick Donnelly [Fri, 9 May 2025 18:19:18 +0000 (14:19 -0400)]
mon/MonmapMonitor: wire up interface to bump auth epoch

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon/MonMap: add auth epoch
Patrick Donnelly [Fri, 9 May 2025 18:15:09 +0000 (14:15 -0400)]
mon/MonMap: add auth epoch

This will be used to indicate to clients / service daemons that the auth
service keys have been rotated. Clients and service daemons are expected to
invalidate their tickets and reauth. Service daemons should wipe their service
keys.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon/AuthMonitor: add dump-keys and wipe-rotating-service-keys
Patrick Donnelly [Wed, 26 Mar 2025 01:59:34 +0000 (21:59 -0400)]
mon/AuthMonitor: add dump-keys and wipe-rotating-service-keys

`auth dump-keys` allows examining the key types for each entity and also the
rotating session keys. This lets us confirm key upgrades are done as expected.

`wipe-rotating-service-keys` clears out existing non-auth service keys so that we do not
need to wait for the rotating key expiration. It is not disruptive so long as clients
renew their tickets when prompted by the auth epoch change.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon/AuthMonitor: add key-type switch
Patrick Donnelly [Fri, 21 Mar 2025 16:56:06 +0000 (12:56 -0400)]
mon/AuthMonitor: add key-type switch

So it's possible to test with various key-types.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocommon/cmdparse: add another template cmd_getval_or helper
Patrick Donnelly [Fri, 21 Mar 2025 16:57:25 +0000 (12:57 -0400)]
common/cmdparse: add another template cmd_getval_or helper

To mimic the conventional signature where you pass the lvalue you want to set.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon/Monitor: perfect forward universal ref of lambda
Patrick Donnelly [Fri, 9 May 2025 18:16:55 +0000 (14:16 -0400)]
mon/Monitor: perfect forward universal ref of lambda

This method doesn't currently work for std::move of a lambda.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon/Monitor: add debugging for monmap handling
Patrick Donnelly [Fri, 9 May 2025 18:19:56 +0000 (14:19 -0400)]
mon/Monitor: add debugging for monmap handling

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agomon: notify_new_monmap via MonmapMonitor::init
Patrick Donnelly [Fri, 13 Jun 2025 19:14:55 +0000 (15:14 -0400)]
mon: notify_new_monmap via MonmapMonitor::init

Otherwise, configurations are not updated during startup.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agodoc/man: document new --key-type option for ceph-authtool
Patrick Donnelly [Thu, 29 May 2025 15:11:43 +0000 (11:11 -0400)]
doc/man: document new --key-type option for ceph-authtool

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agotools/ceph_authtool: add help message for key-type switch
Patrick Donnelly [Fri, 21 Mar 2025 16:54:33 +0000 (12:54 -0400)]
tools/ceph_authtool: add help message for key-type switch

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocommon/buffer: accept "-" as stdin
Patrick Donnelly [Fri, 21 Mar 2025 16:53:38 +0000 (12:53 -0400)]
common/buffer: accept "-" as stdin

These methods are used for reading files from tools like "authtool". Read from
stdin if the conventional "-" filename is passed.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth/cephx: make some parameters const
Patrick Donnelly [Thu, 29 May 2025 14:01:37 +0000 (10:01 -0400)]
auth/cephx: make some parameters const

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth: cleanup error message formatting
Patrick Donnelly [Tue, 27 May 2025 23:25:42 +0000 (19:25 -0400)]
auth: cleanup error message formatting

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth,mon: lookup ticket ttl at runtime
Patrick Donnelly [Wed, 26 Mar 2025 02:04:20 +0000 (22:04 -0400)]
auth,mon: lookup ticket ttl at runtime

and improve debugging.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth: add API to invalidate all tickets
Patrick Donnelly [Fri, 9 May 2025 18:52:52 +0000 (14:52 -0400)]
auth: add API to invalidate all tickets

This will prompt the client to request new ones from the auth server.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth: add API to wipe rotating secrets
Patrick Donnelly [Fri, 9 May 2025 18:52:13 +0000 (14:52 -0400)]
auth: add API to wipe rotating secrets

This is for the service daemon's store of rotating service secrets.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth/cephx: enforce sorted config keys
Patrick Donnelly [Wed, 26 Mar 2025 01:55:22 +0000 (21:55 -0400)]
auth/cephx: enforce sorted config keys

Makes future additions avoid conflicts.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth/cephx: update get_tracked_keys signature
Patrick Donnelly [Tue, 18 Mar 2025 20:04:02 +0000 (16:04 -0400)]
auth/cephx: update get_tracked_keys signature

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth: fix return type
Patrick Donnelly [Mon, 24 Mar 2025 02:42:53 +0000 (22:42 -0400)]
auth: fix return type

key type is an unsigned.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocommon: break print template into separate header
Patrick Donnelly [Thu, 29 May 2025 12:58:08 +0000 (08:58 -0400)]
common: break print template into separate header

To avoid pulling in all the debug includes for some primitive headers.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocommon: remove dead option
Patrick Donnelly [Tue, 3 Jun 2025 15:26:04 +0000 (11:26 -0400)]
common: remove dead option

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agotest: fix compiler error
Patrick Donnelly [Thu, 15 May 2025 17:29:55 +0000 (13:29 -0400)]
test: fix compiler error

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoauth,*: remove conflicting fwd declarations
Matan Breizman [Mon, 9 Jun 2025 16:37:21 +0000 (16:37 +0000)]
auth,*: remove conflicting fwd declarations

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoinclude/common_fwd: Include Crypto classes
Matan Breizman [Mon, 9 Jun 2025 12:07:49 +0000 (12:07 +0000)]
include/common_fwd: Include Crypto classes

CryptoManager::cct is now used in CephContext ctor. To provide this
defintion
any ceph_context.cc target must also include Crypto.cc.

crimson-alien-common library which only had ceph_context.cc must now
also include Crypto.cc.
However, the fact that crimson-common also includes Crypto.cc would
cause multiple defintions
to any Crypto classes methods.

To resolve this, let's wrap all Crypto classes with TOPNSPC::common that
would be forwarded using common_fwd logic.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agocephx: sign messages using hmac_sha256
Yehuda Sadeh [Wed, 28 May 2025 19:51:19 +0000 (15:51 -0400)]
cephx: sign messages using hmac_sha256

if key type is newer than the original AES, calculate message
hash by using HMAC-SHA256.
We cannot use plain aes256k like we do with the aes key because
of the confounder. The other option would be to inject a
confounder, but that would weaken the cipher.

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agoauth: create slice api for calculating hmac_sha256
Yehuda Sadeh [Wed, 28 May 2025 19:50:15 +0000 (15:50 -0400)]
auth: create slice api for calculating hmac_sha256

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agotest/auth: more aes256krb5 tests
Yehuda Sadeh [Tue, 18 Mar 2025 10:53:44 +0000 (06:53 -0400)]
test/auth: more aes256krb5 tests

 - DecryptNoBl
 - multiple test vectos per each test

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agoauth: test slice interface for aes256k
Yehuda Sadeh [Mon, 17 Mar 2025 11:44:30 +0000 (07:44 -0400)]
auth: test slice interface for aes256k

AES256KRB5 uses the default slice encryption implementation, testing that
it works correctly.

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agotest/crypto: more aes256krb5 tests
Yehuda Sadeh [Mon, 17 Mar 2025 07:57:42 +0000 (03:57 -0400)]
test/crypto: more aes256krb5 tests

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agoauth: add usage param to crypto handler
Yehuda Sadeh [Mon, 17 Mar 2025 07:57:21 +0000 (03:57 -0400)]
auth: add usage param to crypto handler

Allow different usage for crypto handler users. Currently being used
in the crypto unitest to match the test vectors.

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agoauth: aes256krb5: add confounder config for unitests
Yehuda Sadeh [Mon, 17 Mar 2025 06:56:32 +0000 (02:56 -0400)]
auth: aes256krb5: add confounder config for unitests

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agocephx: add configurable to set allowed ciphers
Yehuda Sadeh [Fri, 7 Mar 2025 21:35:36 +0000 (16:35 -0500)]
cephx: add configurable to set allowed ciphers

cephx allowed ciphers: a list of ciphers that  sets what type
of keys are allowed to be used to authenticate

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agoauth: remove unused code
Yehuda Sadeh [Fri, 7 Mar 2025 18:21:44 +0000 (13:21 -0500)]
auth: remove unused code

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agoauth: add a configurable to control rotating keys cipher type
Yehuda Sadeh [Fri, 7 Mar 2025 18:20:58 +0000 (13:20 -0500)]
auth: add a configurable to control rotating keys cipher type

auth_service_cipher: a mon configurable that determines what type of cipher
the rotating keys are using. The configurable can change at runtime. Note
that the change does not invalidate existing keys, these would expire
based on their ttl.

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agoauth/cephx: session key type is set to client key type
Yehuda Sadeh [Thu, 6 Mar 2025 14:23:34 +0000 (09:23 -0500)]
auth/cephx: session key type is set to client key type

This ensures that the client supports the specific key type.

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agoauth/cephx: switch default cipher to AES256KRB5
Yehuda Sadeh [Thu, 27 Feb 2025 22:09:26 +0000 (17:09 -0500)]
auth/cephx: switch default cipher to AES256KRB5

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agoauth/cephx: modify client + server challenges hashing
Yehuda Sadeh [Thu, 27 Feb 2025 21:14:06 +0000 (16:14 -0500)]
auth/cephx: modify client + server challenges hashing

This applies when using ciphers that are not the original
AES-128 one. Use the hmac-sha256 hash now. With AES256KRB5
the original method of encrypting the combined challenges
doesn't work as the confounder randomizes the result.

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agoceph-authtool: support --key-type param
Yehuda Sadeh [Thu, 27 Feb 2025 16:55:37 +0000 (11:55 -0500)]
ceph-authtool: support --key-type param

Also move the encryption handlers out of the ceph_context.
Handlers are now returned as a shared_ptr, to support the
creation of new handlers with different params (such as
the usage param).

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agoauth/crypto: add support for aes256-hmac384-192
Yehuda Sadeh [Fri, 21 Feb 2025 21:18:58 +0000 (16:18 -0500)]
auth/crypto: add support for aes256-hmac384-192

Using the encryption standard set in RFC 8009. This is the
encryption that is used in Kerberos 5, so naming this variation
as AES256KRB5.

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agoauth: propagate ceph context to encrypt/decrypt
Yehuda Sadeh [Mon, 24 Feb 2025 21:31:42 +0000 (16:31 -0500)]
auth: propagate ceph context to encrypt/decrypt

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
3 weeks agoMerge pull request #66092 from kshtsk/wip-fix-lua-kernel-check
kyr [Tue, 10 Feb 2026 13:16:57 +0000 (14:16 +0100)]
Merge pull request #66092 from kshtsk/wip-fix-lua-kernel-check

qa/cephfs: lua to respect missing kernel in yaml

3 weeks agoMerge pull request #66815 from bluikko/wip-doc-man-fix-directives
Anthony D'Atri [Tue, 10 Feb 2026 12:08:14 +0000 (07:08 -0500)]
Merge pull request #66815 from bluikko/wip-doc-man-fix-directives

doc/man: fix invalid directive missing a second colon

3 weeks agoMerge PR #64743 into main
Venky Shankar [Tue, 10 Feb 2026 04:51:45 +0000 (10:21 +0530)]
Merge PR #64743 into main

* refs/pull/64743/head:

Reviewed-by: Anoop C S <anoopcs@cryptolab.net>
Reviewed-by: John Mulligan <jmulligan@redhat.com>
3 weeks agoMerge pull request #66979 from idryomov/wip-73824
Ilya Dryomov [Mon, 9 Feb 2026 22:58:17 +0000 (23:58 +0100)]
Merge pull request #66979 from idryomov/wip-73824

librbd: introduce RBD_LOCK_MODE_EXCLUSIVE_TRANSIENT

Reviewed-by: Ramana Raja <rraja@redhat.com>
3 weeks agoMerge pull request #64819 from aclamk/aclamk-rocksdb-binned-cache-perf-counters
Jaya Prakash [Mon, 9 Feb 2026 19:56:51 +0000 (01:26 +0530)]
Merge pull request #64819 from aclamk/aclamk-rocksdb-binned-cache-perf-counters

kv/RocksDB: Add instrumentation to BinnedLRUCache

Reviewed-by: Jaya Prakash <jayaprakash@ibm.com>
3 weeks agoMerge pull request #67170 from afreen23/subsystem-step-3
Afreen Misbah [Mon, 9 Feb 2026 19:45:42 +0000 (01:15 +0530)]
Merge pull request #67170 from afreen23/subsystem-step-3

mgr/dashboard: Step three subsystem creation form

Reviewed-by: pujaoshahu <pshahu@redhat.com>
3 weeks agoMerge pull request #67217 from aliakseimakarau/main-s390x-fixexecstack
Ilya Dryomov [Mon, 9 Feb 2026 16:36:35 +0000 (17:36 +0100)]
Merge pull request #67217 from aliakseimakarau/main-s390x-fixexecstack

Mark s390x CRC assembly code as not requiring ELF execstack

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
3 weeks agoMerge pull request #67261 from Matan-B/wip-matanb-crimson-66488-revert
Matan Breizman [Mon, 9 Feb 2026 15:18:25 +0000 (17:18 +0200)]
Merge pull request #67261 from Matan-B/wip-matanb-crimson-66488-revert

Revert "crimson/os/seastore/cache: TRIM_DIRTY/CLEANER_* transactions won't invalidate other transactions anymore"

Reviewed-by: Xuehan Xu <xuxuehan@qianxin.com>
3 weeks agoMerge pull request #67266 from gbregman/main
Gil Bregman [Mon, 9 Feb 2026 15:12:08 +0000 (17:12 +0200)]
Merge pull request #67266 from gbregman/main

mgr/cephadm: Change the default value of omap_file_lock_duration in  NVMEoF spec file

3 weeks agoMerge PR #67251 into main
Patrick Donnelly [Mon, 9 Feb 2026 14:10:14 +0000 (09:10 -0500)]
Merge PR #67251 into main

* refs/pull/67251/head:
qa: set column for insertion
qa: bail sqlite3 on any error
qa: use actual sqlite3 blob instead of string
test: use json_extract instead of awkward json_tree

Reviewed-by: Nitzan Mordechai <nmordech@redhat.com>
3 weeks agoMerge pull request #66552 from Jayaprakash-ibm/wip-add-scrub-flag
Jaya Prakash [Mon, 9 Feb 2026 13:19:06 +0000 (18:49 +0530)]
Merge pull request #66552 from Jayaprakash-ibm/wip-add-scrub-flag

osd: Add flag to Identify Scrub IO

Reviewed-by: Adam Kupczyk <akupczyk@ibm.com>
Reviewed-by: Igor Fedotov <igor.fedotov@croit.io>
3 weeks agoMerge pull request #67024 from amathuria/wip-amat-fix-73791
Matan Breizman [Mon, 9 Feb 2026 10:39:04 +0000 (12:39 +0200)]
Merge pull request #67024 from amathuria/wip-amat-fix-73791

crimson/os/seastore: Add progress logging to transaction processing

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoMerge pull request #65814 from amathuria/wip-amat-crimson-add-pg-num-testing
Matan Breizman [Mon, 9 Feb 2026 10:37:48 +0000 (12:37 +0200)]
Merge pull request #65814 from amathuria/wip-amat-crimson-add-pg-num-testing

qa/suites/crimson-rados: Add pg splitting tests to crimson thrash tes…

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoqa/suites/crimson-rados/thrash: Modify osd_target_transaction_size
Aishwarya Mathuria [Wed, 21 Jan 2026 08:11:48 +0000 (08:11 +0000)]
qa/suites/crimson-rados/thrash: Modify osd_target_transaction_size

We observed in Seastore, deletion of a large batch (default osd_target_transaction_size=30)
can take a significant amount of time.

Because this happens inside the peering_pp.process stage, it blocks the PG's peering pipeline.
During this block, any incoming OSDMap updates (PGAdvanceMap) are stalled behind the deletion work.
This eventually causes a global OSD-wide map progression hang because
the OSD cannot advance past an epoch until all PGs have processed
it.

To fix this, we are reducing osd_target_transaction_size to 5 to lower
conflict rates and allow deletion transactions to complete.

Fixes: https://tracker.ceph.com/issues/73791
Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>
3 weeks agomgr/cephadm: Change the default value of omap_file_lock_duration in NVMEoF spec file
Gil Bregman [Mon, 9 Feb 2026 10:24:47 +0000 (12:24 +0200)]
mgr/cephadm: Change the default value of omap_file_lock_duration in NVMEoF spec file

Fixes: https://tracker.ceph.com/issues/74822
Signed-off-by: Gil Bregman <gbregman@il.ibm.com>
3 weeks agoRevert "crimson/os/seastore/lba_mapping: don't allow classes above" wip-matanb-crimson-66488-revert
Matan Breizman [Mon, 9 Feb 2026 08:50:31 +0000 (08:50 +0000)]
Revert "crimson/os/seastore/lba_mapping: don't allow classes above"

This reverts commit 45726996d65ec07b2c35a420c3ee0e42f0bf6cb4.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoRevert "crimson/os/seastore/btree_types: BtreeCursors don't hold local copies of"
Matan Breizman [Mon, 9 Feb 2026 08:50:28 +0000 (08:50 +0000)]
Revert "crimson/os/seastore/btree_types: BtreeCursors don't hold local copies of"

This reverts commit 5a24cac63a676f0a4641257286f1d1f4f7377ce3.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoRevert "crimson/os/seastore/async_cleaner: avoid its header dependence on"
Matan Breizman [Mon, 9 Feb 2026 08:50:25 +0000 (08:50 +0000)]
Revert "crimson/os/seastore/async_cleaner: avoid its header dependence on"

This reverts commit 1aae6f34b68faf15a8691f599420f23d5a84943e.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoRevert "crimson/os/seastore/lba_manager: make sure alloc_extents return viewable"
Matan Breizman [Mon, 9 Feb 2026 08:50:21 +0000 (08:50 +0000)]
Revert "crimson/os/seastore/lba_manager: make sure alloc_extents return viewable"

This reverts commit e6fd2e87a18ed25845e5ba5f6d03ebb20818e583.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoRevert "crimson/os/seastore/async_cleaner: renew backref cursors when they are"
Matan Breizman [Mon, 9 Feb 2026 08:50:07 +0000 (08:50 +0000)]
Revert "crimson/os/seastore/async_cleaner: renew backref cursors when they are"

This reverts commit a9c17a2c0912064f51492c2b012cd5608c6a57c1.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoRevert "crimson/os/seastore/seastore_types: define rewriting transactions"
Matan Breizman [Mon, 9 Feb 2026 08:49:57 +0000 (08:49 +0000)]
Revert "crimson/os/seastore/seastore_types: define rewriting transactions"

This reverts commit 1696011379dfa5f1558b3119d4936ef4943ecedf.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoRevert "crimson/os/seastore/cache: add facilities to synchronize data and states"
Matan Breizman [Mon, 9 Feb 2026 08:49:54 +0000 (08:49 +0000)]
Revert "crimson/os/seastore/cache: add facilities to synchronize data and states"

This reverts commit 2fc047c51f37cbdfd3952f616cc07f99cf2483d7.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoRevert "crimson/os/seastore/cache: unlink mutated extents from the stable"
Matan Breizman [Mon, 9 Feb 2026 08:49:51 +0000 (08:49 +0000)]
Revert "crimson/os/seastore/cache: unlink mutated extents from the stable"

This reverts commit bfc1231e3716f7b780fb1362a76e13078e767f4c.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoRevert "crimson/os/seastore/cache: since extent committer will also set"
Matan Breizman [Mon, 9 Feb 2026 08:49:48 +0000 (08:49 +0000)]
Revert "crimson/os/seastore/cache: since extent committer will also set"

This reverts commit 7e72a79af75d24119c094c533ec4101358aa258d.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoRevert "crimson/os/seastore/cache: drop unused last_commit"
Matan Breizman [Mon, 9 Feb 2026 08:49:45 +0000 (08:49 +0000)]
Revert "crimson/os/seastore/cache: drop unused last_commit"

This reverts commit 33e63bc85fafc057974142071318a32121a62a59.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoRevert "crimson/os/seastore/cache: rewrite transactions don't invalidate other"
Matan Breizman [Mon, 9 Feb 2026 08:49:43 +0000 (08:49 +0000)]
Revert "crimson/os/seastore/cache: rewrite transactions don't invalidate other"

This reverts commit 5ba464e6050a03c8d618728a0bb214ef63d4c944.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoRevert "crimson/os/seastore: disable linked tree node operations when committing"
Matan Breizman [Mon, 9 Feb 2026 08:49:39 +0000 (08:49 +0000)]
Revert "crimson/os/seastore: disable linked tree node operations when committing"

This reverts commit 21d76b9673264ac5817d01e9e11401fbba20e895.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>