Running the complete service locally requires a database and Open Policy Agent (OPA). Docker Compose and Skaffold provide those dependencies.
- Stable Rust toolchain
pre-commitcargo-nextestfor integration profiles- SPIRE for live API tests
- Optional Skaffold and a Kubernetes cluster for the full deployment
Install repository hooks after cloning:
pre-commit installAlways name the crate for crate-specific Cargo commands:
cargo build -p openstack-keystone
cargo check -p openstack-keystone --message-format=short
cargo test -p openstack-keystoneThe Skaffold configuration can deploy Keystone-NG, Python Keystone, OPA, the database, and supporting identity providers to a local Kubernetes cluster:
skaffold dev --default-repo localhost:5000 -p localUse --cleanup=false when resources must remain after Skaffold exits. The
repository configuration exposes mixed, Rust-only, and Python-only endpoints;
consult skaffold.yaml for the current modules and profiles.
Point an OpenStackClient cloud entry at the deployment's Rust or mixed endpoint and provide the configured domain, project, username, and password. Use the generated OpenAPI reference when testing Keystone-NG-only v4 routes that OSC does not expose.
Run the relevant tests, pre-commit run --all-files, and
git diff --check. Commits use Conventional Commits and must include the DCO
sign-off with git commit -s.