Skip to content

smb: add keybridge support and fscrypt configuration#64641

Open
phlogistonjohn wants to merge 16 commits intoceph:mainfrom
phlogistonjohn:jjm-smb-keybridge
Open

smb: add keybridge support and fscrypt configuration#64641
phlogistonjohn wants to merge 16 commits intoceph:mainfrom
phlogistonjohn:jjm-smb-keybridge

Conversation

@phlogistonjohn
Copy link
Contributor

@phlogistonjohn phlogistonjohn commented Jul 23, 2025

Depends on #64372
Depends on #65069
Depends on #61137
Depends on #64743
Depends on #67406

Ceph smb mgr module and cephadm patches to add keybridge (KMIP proxy) and basic fscrypt support.

Contribution Guidelines

  • To sign and title your commits, please refer to Submitting Patches to Ceph.

  • If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.

  • When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an x between the brackets: [x]. Spaces and capitalization matter when checking off items this way.

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • New feature (ticket optional)
    • Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • No impact that needs to be tracked
  • Documentation (select at least one)
    • Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)
Show available Jenkins commands

@github-actions
Copy link

This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved

@github-actions
Copy link

This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved

@github-actions
Copy link

This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved

@anoopcs9 anoopcs9 added the wip-spuiuk-tracking Sachin Prabhu - tracking label Sep 12, 2025
@avanthakkar
Copy link
Contributor

jenkins test make check

@phlogistonjohn phlogistonjohn force-pushed the jjm-smb-keybridge branch 3 times, most recently from 9bf6c29 to 2523fa8 Compare January 20, 2026 15:56
@phlogistonjohn phlogistonjohn changed the title [WIP] smb: add keybridge support and fscrypt configuration smb: add keybridge support and fscrypt configuration Jan 30, 2026
@phlogistonjohn
Copy link
Contributor Author

https://pulpito.ceph.com/phlogistonjohn-2026-02-24_15:13:45-orch-wip-phlogistonjohn-testing-1-2026-02-23-0827-distro-default-trial/

Errors include only known flakes. This indicates that #67406 resolves prior issues for our use-case.

@github-actions
Copy link

github-actions bot commented Mar 4, 2026

This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved

@xhernandez
Copy link
Contributor

jenkins test make check arm64

@github-actions
Copy link

github-actions bot commented Mar 7, 2026

This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved

The keybridge sidecar is enabled by the keybridge feature flag.
This sidecar will be used to help fetch keys over various protocols
for the ceph module to use to set up fs encryption.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
Signed-off-by: John Mulligan <jmulligan@redhat.com>
The keybridge uses the sambacc configuration but can also be passed
CLI options. Since cephadm writes the cert files, cephadm must also
pass the file names to use to the container args.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add special handling for the case where a string is passed instead of a
list. Without this fix a string will be converted into a list of single
letter items, something pretty much no one ever wants. Raise an
exception instead.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add the set_data/get_data methods to the MemConfigStore so that future
test updates will not fail to save tls credential objects.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add a pair of enum types that will be used for configuring the
keybridge. The scope type identifies what kind of scope is being
used. The peer policy can be used to allow a dev or other user
more access to the keybridge api for development purposes.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add keybridge service configuration classes and parameters to the
resources module. This supports enabling the keybridge, setting up
scopes for the keybridge and it's access control.

A helper class is added that parses and helps validate the scope names.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add a new field to the cephfs configuration section for shares. This
section selects the keybridge scope and key name to use when acquiring
the key to use for fscrypt.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
Validate that scope names are not re-used, etc. Check on things that
can't be done in single object validation.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add support for generating the sambacc configuration section for
keybridge. Add support for configuring smb shares for keybridge access.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add docs for the keybrige configuration and cephfs fscrypt options
added to the smb mgr module resource definitions.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
The unit test was looking for the wrong string (but the right
condition). This fixes the string to check.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
Signed-off-by: John Mulligan <jmulligan@redhat.com>
This will enable the config watch sidecar to signal processes
with a SIGHUP to tell them to reload configuration when config
watch has detected a configuration change. Currently only used
by keybridge.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
Update the authorizer class in fs.py to request all caps (*) for our
volume. This is necessary in order to make use of the fscrypt feature
from smbd.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants