Architecture
Control Flow
InferenceIdentityBinding
|
| targetRef
v
InferenceObjective
|
| spec.poolRef
v
InferencePool
|
| selector + container discriminator + safety selectors
v
kleym
|
| rendered SPIFFE ID + rendered workload selectors
v
ClusterSPIFFEID
|
v
SPIRE Controller Manager
|
v
SPIRE registration state
Responsibility Boundaries
InferenceIdentityBindingexpresses identity intent.InferenceObjectivetellskleymwhich serving pool an objective uses.InferencePoolprovides the workload provenancekleymturns into selector input.kleymvalidates the references, enforces selector safety, detects deterministic collisions, and rendersClusterSPIFFEID.- SPIRE Controller Manager applies the
ClusterSPIFFEIDobjects and manages SPIRE registration state. - SPIRE Server and Agent remain responsible for issuance and rotation.
Why The Flow Matters
The architecture keeps identity registration derived from existing inference objects instead of from ad hoc labels or manual SPIRE entry management.
That gives kleym three useful properties:
- identity stays tied to current GAIE intent
- registration remains deterministic and idempotent
- issuance and rotation stay delegated to SPIRE instead of being reimplemented in the controller
See Also
- Read concepts for the mode and selector model.
- Read managed resources for the concrete output object shape.
- Read reconciliation for the controller flow in more detail.