Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
openstack-agent-plugin
command
|
|
|
openstack-server-plugin
command
|
|
|
openstack-spire-issuer
command
|
|
|
openstack-spire-issuer/command/config
Package config implements the "config" command group, which operates on the configuration files of the OpenStack metadata signer and JWKS aggregator.
|
Package config implements the "config" command group, which operates on the configuration files of the OpenStack metadata signer and JWKS aggregator. |
|
openstack-spire-issuer/command/jwks
Package jwks implements the "jwks" command group, which runs the JWKS aggregator.
|
Package jwks implements the "jwks" command group, which runs the JWKS aggregator. |
|
openstack-spire-issuer/command/service
Package service implements the "service" command group, which runs an OpenStack metadata signer replica.
|
Package service implements the "service" command group, which runs an OpenStack metadata signer replica. |
|
internal
|
|
|
issuer/aggregator
Package aggregator merges the JWK Sets published by the signer replicas into the single set the SPIRE Server-side plugin fetches.
|
Package aggregator merges the JWK Sets published by the signer replicas into the single set the SPIRE Server-side plugin fetches. |
|
issuer/attest
Package attest implements POST /attest, the endpoint Nova calls as the openstack_iid DynamicJSON vendordata target.
|
Package attest implements POST /attest, the endpoint Nova calls as the openstack_iid DynamicJSON vendordata target. |
|
issuer/auditsink
Package auditsink assembles the issuer's log handler: the regular log, optionally combined with the syslog audit sink, which sends the audit records (token_issued, key_lifecycle) to the local syslog daemon so that they can be forwarded off the host (R-1, R-3).
|
Package auditsink assembles the issuer's log handler: the regular log, optionally combined with the syslog audit sink, which sends the audit records (token_issued, key_lifecycle) to the local syslog daemon so that they can be forwarded off the host (R-1, R-3). |
|
issuer/auth
Package auth authenticates the caller of the vendordata endpoint: Nova's metadata API, which sends a Keystone token obtained with the credentials of its [vendordata_dynamic_auth] section in the X-Auth-Token header.
|
Package auth authenticates the caller of the vendordata endpoint: Nova's metadata API, which sends a Keystone token obtained with the credentials of its [vendordata_dynamic_auth] section in the X-Auth-Token header. |
|
issuer/claims
Package claims turns an authorized Nova DynamicJSON vendordata request into the claim set of an openstack_iid token.
|
Package claims turns an authorized Nova DynamicJSON vendordata request into the claim set of an openstack_iid token. |
|
issuer/clientaddr
Package clientaddr determines the address of the client behind a request, which keys the per-source rate limit and identifies the caller in logs.
|
Package clientaddr determines the address of the client behind a request, which keys the per-source rate limit and identifies the caller in logs. |
|
issuer/config
Package config loads and validates the configuration files of the OpenStack metadata JWT issuer (signer) and of the JWKS aggregator.
|
Package config loads and validates the configuration files of the OpenStack metadata JWT issuer (signer) and of the JWKS aggregator. |
|
issuer/hardening
Package hardening protects the signer's private keys in process memory (I-4, I-5): the process is made non-dumpable, and its memory is locked so that no page holding a key, or a temporary of a signature, is ever written to swap.
|
Package hardening protects the signer's private keys in process memory (I-4, I-5): the process is made non-dumpable, and its memory is locked so that no page holding a key, or a temporary of a signature, is ever written to swap. |
|
issuer/health
Package health implements the /liveness and /readiness endpoints of the signer and of the JWKS aggregator.
|
Package health implements the /liveness and /readiness endpoints of the signer and of the JWKS aggregator. |
|
issuer/jwks
Package jwks serves signing keys as an RFC 7517 JSON Web Key Set.
|
Package jwks serves signing keys as an RFC 7517 JSON Web Key Set. |
|
issuer/keystore
Package keystore manages the keys used to sign openstack_iid tokens.
|
Package keystore manages the keys used to sign openstack_iid tokens. |
|
issuer/metrics
Package metrics instruments the issuer (signer and JWKS aggregator) with OpenTelemetry metrics, exported to Prometheus or to an OpenTelemetry Collector (see .specs/openstack-spire-issuer-metrics.md).
|
Package metrics instruments the issuer (signer and JWKS aggregator) with OpenTelemetry metrics, exported to Prometheus or to an OpenTelemetry Collector (see .specs/openstack-spire-issuer-metrics.md). |
|
issuer/metrics/metricstest
Package metricstest gives tests Metrics recorded in memory, and reads the recorded values back by instrument name and attributes.
|
Package metricstest gives tests Metrics recorded in memory, and reads the recorded values back by instrument name and attributes. |
|
issuer/novalookup
Package novalookup independently verifies the instance a Nova vendordata request is about, against the Nova API, and looks up the optional enrichment claims from Nova and Keystone.
|
Package novalookup independently verifies the instance a Nova vendordata request is about, against the Nova API, and looks up the optional enrichment claims from Nova and Keystone. |
|
issuer/openstacktest
Package openstacktest provides a minimal fake OpenStack control plane for tests: a Keystone v3 endpoint that authenticates the service's own user (password or application credential), validates subject tokens issued by the test and serves project records, and a Nova compute endpoint, listed in the service catalog, that serves server records.
|
Package openstacktest provides a minimal fake OpenStack control plane for tests: a Keystone v3 endpoint that authenticates the service's own user (password or application credential), validates subject tokens issued by the test and serves project records, and a Nova compute endpoint, listed in the service catalog, that serves server records. |
|
issuer/osclient
Package osclient creates the service's authenticated OpenStack client.
|
Package osclient creates the service's authenticated OpenStack client. |
|
issuer/ratelimit
Package ratelimit implements the two rate-limiting stages of the signer: a per-source limit applied before the request body is read, and a per-instance limit the /attest handler applies right after decoding it.
|
Package ratelimit implements the two rate-limiting stages of the signer: a per-source limit applied before the request body is read, and a per-instance limit the /attest handler applies right after decoding it. |
|
issuer/requestid
Package requestid gives every HTTP request a unique ID, returned to the client in the X-Request-Id header and added as "request_id" to every log record written with the request's context, so that all the records of a request can be correlated.
|
Package requestid gives every HTTP request a unique ID, returned to the client in the X-Request-Id header and added as "request_id" to every log record written with the request's context, so that all the records of a request can be correlated. |
|
issuer/restrict
Package restrict confines /attest to the hosts Nova calls it from (S-3, D-2): a source allowlist on the client address, and a client certificate chaining to a configured CA bundle.
|
Package restrict confines /attest to the hosts Nova calls it from (S-3, D-2): a source allowlist on the client address, and a client certificate chaining to a configured CA bundle. |
|
issuer/server
Package server assembles a signer replica from its configuration: it builds every component, mounts the routes behind their middleware, runs the background loops and serves HTTPS until its context ends.
|
Package server assembles a signer replica from its configuration: it builds every component, mounts the routes behind their middleware, runs the background loops and serves HTTPS until its context ends. |
|
issuer/token
Package token mints openstack_iid tokens: it turns a Nova request into a claim set and signs it as a compact JWS with the key store's active key.
|
Package token mints openstack_iid tokens: it turns a Nova request into a claim set and signs it as a compact JWS with the key store's active key. |
|
issuer/ttlcache
Package ttlcache is a bounded cache whose entries expire individually, and which loads a missing entry once for all the callers asking for it at the same time: during boot storms, many requests need the same Nova or Keystone record at once.
|
Package ttlcache is a bounded cache whose entries expire individually, and which loads a missing entry once for all the callers asking for it at the same time: during boot storms, many requests need the same Nova or Keystone record at once. |
|
plugin/agent/openstackiid
Package openstackiid implements the agent side of the openstack_iid SPIRE node attestor: it fetches the instance identity token that the OpenStack metadata JWT issuer (openstack-spire-issuer) hands to the instance through Nova's DynamicJSON vendordata, and sends it to SPIRE Server as the attestation payload.
|
Package openstackiid implements the agent side of the openstack_iid SPIRE node attestor: it fetches the instance identity token that the OpenStack metadata JWT issuer (openstack-spire-issuer) hands to the instance through Nova's DynamicJSON vendordata, and sends it to SPIRE Server as the attestation payload. |
|
plugin/config
Package config decodes the plugin_data block SPIRE hands to the openstack_iid plugins (HCL, or JSON), rejecting unknown keys so that typos are never silently ignored, as in the issuer's configuration.
|
Package config decodes the plugin_data block SPIRE hands to the openstack_iid plugins (HCL, or JSON), rejecting unknown keys so that typos are never silently ignored, as in the issuer's configuration. |
|
plugin/logging
Package logging bridges log/slog to the hclog logger SPIRE hands to its plugins, so that the openstack_iid plugins, and the issuer code they reuse, log into SPIRE's own log rather than to the plugin process's stderr.
|
Package logging bridges log/slog to the hclog logger SPIRE hands to its plugins, so that the openstack_iid plugins, and the issuer code they reuse, log into SPIRE's own log rather than to the plugin process's stderr. |
|
plugin/server/openstackiid
Package openstackiid implements the server side of the openstack_iid SPIRE node attestor: it verifies the instance identity token issued by the OpenStack metadata JWT issuer (openstack-spire-issuer) against the issuer's published keys, and turns its claims into the agent's SPIFFE ID and selectors.
|
Package openstackiid implements the server side of the openstack_iid SPIRE node attestor: it verifies the instance identity token issued by the OpenStack metadata JWT issuer (openstack-spire-issuer) against the issuer's published keys, and turns its claims into the agent's SPIFFE ID and selectors. |
|
pkg
|
|
|
iid
Package iid defines the contract shared between the OpenStack metadata JWT issuer (openstack-spire-issuer) and the openstack_iid SPIRE node attestor plugins: the JWT header and claim schema, the fixed issuer/audience values and the shape of the vendordata response.
|
Package iid defines the contract shared between the OpenStack metadata JWT issuer (openstack-spire-issuer) and the openstack_iid SPIRE node attestor plugins: the JWT header and claim schema, the fixed issuer/audience values and the shape of the vendordata response. |
|
syslog
Package syslog sends messages to the local syslog daemon over a Unix datagram socket (e.g.
|
Package syslog sends messages to the local syslog daemon over a Unix datagram socket (e.g. |
Click to show internal directories.
Click to hide internal directories.