mjmac/DAOS 18783 pr7 ftest - #18731
Draft
mjmac wants to merge 7 commits into
Draft
Conversation
mjmac
commented
Jul 28, 2026
Contributor
- DAOS-18783 pool: add pool_ca and cert_watermarks byteval properties
- DAOS-18783 pool: wire changes for pool connect and gRPC
- DAOS-18783 control: per-pool node cert security library
- DAOS-18783 client: request and attach per-pool node certs
- DAOS-18783 control: enforce per-pool node cert at connect
- DAOS-18783 control: dmg pool admin surface for node auth
- DAOS-18783 test: ftest coverage for per-pool node authentication
|
Errors are component not formatted correctly,Ticket number prefix incorrect,PR title is malformatted. See https://daosio.atlassian.net/wiki/spaces/DC/pages/11133911069/Commit+Comments,Unable to load ticket data |
mjmac
force-pushed
the
mjmac/DAOS-18783-pr7-ftest
branch
from
July 28, 2026 15:35
7285602 to
042850c
Compare
Flesh out support for byteval pool properties, and add new properties for per-pool CA bundle and CN revocation watermarks. Manually tested for upgrade/downgrade support without requiring a pool version bump or explicit pool upgrade. Older servers ignore the unknown properties, and newer servers gracefully handle unset optional properties. Patch: 1/7 Features: pool Signed-off-by: Michael MacDonald <github@macdonald.cx>
Pack all of the RPC and protobuf changes into a single commit for easier review. Subsequent patches in the stack will make use of them to enable new functionality. Major changes: * Add v8 pool_connect RPC with optional per-pool node certs * Add Pool cert management RPCs to mgmt protobufs * Add PoP (Proof of Possession) proto message Patch: 2/7 Features: pool Signed-off-by: Michael MacDonald <github@macdonald.cx>
Extend the security package with new types and utility methods for managing per-pool node certificates. When per-pool auth is enabled, clients must present a signed proof-of-possession which is validated by the server before allowing a connection. Subsequent commits will build on this infrastructure to implement the full feature. Patch: 3/7 Signed-off-by: Michael MacDonald <github@macdonald.cx>
When connecting to a v8 server, the client asks the agent for a per-pool node cert and proof-of-possession along with the user credential, and attaches them to the pool connect request. Old servers cost nothing: the cert request is skipped entirely when the negotiated protocol cannot carry it. On the agent, the feature is gated by explicit configuration rather than cert-file presence, and requires transport security. A pool with no deployed cert is passed through for the server to judge; any other cert failure fails the credential request with BadCert so misconfiguration surfaces at the client instead of as an opaque server-side rejection. Adds two new daos_agent credential_config parameters: * pool_auth_enabled: (true|default false) * node_cert_dir: defaults to /etc/daos/certs/<system_name>/node_certs/ Patch: 4/7 Features: daos_agent Signed-off-by: Michael MacDonald <github@macdonald.cx>
When a pool has a CA installed, the engine forwards the presented node cert and proof-of-possession to the control plane over dRPC, where the security library validates it; the connect is rejected unless the presentation checks out. Pools without a CA behave exactly as before. The control-plane handler is a thin adapter: sentinel-error-to-status mapping and a bounded replay cache keyed on the proof's (pool, handle) binding. Adds a pool_cert_max_clock_skew transport config option to widen the PoP freshness window for deployments with sloppy clocks. Patch: 5/7 Features: pool Signed-off-by: Michael MacDonald <github@macdonald.cx>
Add dmg subcommands and Control API for managing per-pool CAs and client certificates. Patch: 6/7 Signed-off-by: Michael MacDonald <github@macdonald.cx>
Add ftest scenarios for the node-cert lifecycle (set-cert, get-cert, add-client, delete-cert) and for revocation (revoke-client must evict active handles and prevent reconnect with the old cert). Patch: 7/7 Features: pool_cert Signed-off-by: Michael MacDonald <github@macdonald.cx>
mjmac
force-pushed
the
mjmac/DAOS-18783-pr7-ftest
branch
from
July 28, 2026 18:11
042850c to
fd95e2e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.