Skip to content

feat(openstack): Add Keystone v3 authentication support#691

Closed
benroeder wants to merge 1 commit intoapache:v0.16.xfrom
benroeder:openstack-keystone-v016
Closed

feat(openstack): Add Keystone v3 authentication support#691
benroeder wants to merge 1 commit intoapache:v0.16.xfrom
benroeder:openstack-keystone-v016

Conversation

@benroeder
Copy link

Summary

  • Add services-openstack feature with Keystone v3 password authentication
  • OpenstackConfig — loads auth_url, username, password, domain/project
    settings from env vars or fields
  • OpenstackLoader — authenticates against Keystone, caches tokens with
    2-minute expiry grace, parses service catalog
  • OpenstackCredential — token + expiry + service catalog with endpoint
    lookup by service type, interface, and region
  • OpenstackSigner — signs requests by inserting X-Auth-Token header
  • 15 unit tests covering credential validity, catalog lookup, serde,
    and request signing
  • Add services-openstack to CI build_single_feature matrix

Context

Companion to #690 (main branch). This backport targets v0.16.x which
is the version OpenDAL currently depends on. Tested against a real
OpenStack Keystone cluster.

Related: #685

Files

New (790 lines):

  • src/openstack/mod.rs — module re-exports
  • src/openstack/config.rs — Config + from_env()
  • src/openstack/credential.rs — Credential, Loader, CatalogEntry, Endpoint
  • src/openstack/signer.rs — Signer

Modified:

  • Cargo.toml — add services-openstack feature
  • src/lib.rs — add feature-gated module
  • .github/workflows/ci.yml — add to build matrix

Test plan

  • cargo fmt --all -- --check passes
  • cargo test --no-fail-fast — 81 unit + 32 integration + 7 doc-tests all pass
  • cargo check --all-features compiles clean (only pre-existing warnings)
  • Tested against real OpenStack Keystone cluster

Adds OpenStack Keystone v3 password authentication as a new
services-openstack feature, enabling token-based request signing
for OpenStack services like Swift.
@Xuanwo
Copy link
Member

Xuanwo commented Feb 23, 2026

Thank you! But we don't need to backport to v0.16 for new features.

@Xuanwo Xuanwo closed this Feb 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants