Document SPIFFE association declarations - #6501
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## spiffe-integration-split3-6 #6501 +/- ##
==============================================================
Coverage ? 78.32%
==============================================================
Files ? 775
Lines ? 75794
Branches ? 0
==============================================================
Hits ? 59363
Misses ? 16426
Partials ? 5 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
b758757 to
f57d37e
Compare
5525559 to
a0921d9
Compare
f57d37e to
c5e6f6e
Compare
a0921d9 to
68125e7
Compare
JAORMX
left a comment
There was a problem hiding this comment.
The new architecture documentation accurately explains the intended model, but currently presents it as operational when it is not reachable.
The example and related text say that SPIFFE declarations create static OAuth clients, install the storage overlay, and reserve client IDs at startup (docs/arch/18-spiffe-association-declarations.md:3,34-78; docs/arch/11-auth-server-storage.md:435-445; docs/arch/09-operator-architecture.md:241). However, the current runtime hard-rejects every non-empty spiffe_trust_domains configuration before that setup can run (pkg/authserver/config.go:317-345). Applying the documented CRD example therefore prevents the embedded auth server from starting; the described static-client, collision, restart, and reservation behavior cannot yet occur.
Please describe these as declarations that are currently rejected pending live SVID verification, or defer the operational-runtime claims until that gate is lifted.
JAORMX
left a comment
There was a problem hiding this comment.
Changes requested:
docs/arch/18-spiffe-association-declarations.md:3,66-78,docs/arch/11-auth-server-storage.md:437-445, anddocs/arch/09-operator-architecture.md:241: the documentation describes static-client registration as operational, butRunConfig.Validaterejects every non-emptyspiffe_trust_domainsconfiguration before auth-server initialization. State that declarations are currently rejected pending SVID verification, or defer the operational claims.
c5e6f6e to
ff2fc59
Compare
A configuration-only foundation could otherwise be mistaken for completed SVID authentication and bundle management. Document the trust and static-client flow, validation boundaries, restart behavior, and the explicit absence of live credential verification. Also add missing item-length CRD validation markers on SPIFFEClientConfig's Audiences/Scopes fields, matching the sibling fields on the same type. Refs #6200 Refs #6205 Signed-off-by: Jakub Hrozek <jakub@stacklok.com>
68125e7 to
34db653
Compare
JAORMX
left a comment
There was a problem hiding this comment.
Changes requested:
docs/arch/18-spiffe-association-declarations.md:3,23,34,62,66-78,82-94,docs/arch/11-auth-server-storage.md:437-445,docs/arch/09-operator-architecture.md:241, anddocs/operator/crd-api.md:4251-4260,4272-4275describe static-client registration, durable reservations, decorators, restart behavior, and policy enforcement as operational.RunConfig.Validaterejects every non-empty SPIFFE trust-domain configuration before auth-server initialization (pkg/authserver/config.go:317-345), so those effects cannot occur. Describe the fields as declarations that are currently rejected pending live SVID verification, and defer the operational claims until that gate is lifted.
All current CI checks are green; no local tests were run.
Summary
A configuration-only feature (SPIFFE trust domains + static workload-to-client associations, no live SVID verification yet) could easily be mistaken for a completed authentication feature if it isn't clearly scoped in the architecture docs.
docs/arch/18-spiffe-association-declarations.md, documenting the trust/static-client flow, validation boundaries, startup collision handling, restart behavior, and an explicit list of what this feature does NOT do (bundle fetching, live SVID verification, token issuance through SPIFFE).09-operator-architecture.md,11-auth-server-storage.md, and the arch docs index.MinLength/MaxLength) onSPIFFEClientConfig.Audiences/.Scopes, matching the markers already present on sibling fields on the same type — caught while writing the doc's schema description and cross-checking it against the actual CRD markers.Refs #6200, #6205
Type of change
Test plan
task test)task lint-fix)task operator-manifests/task crdref-genre-run to confirm the CRD marker addition produces the expected schema/docs diff and nothing else drifts.API Compatibility
v1beta1API — the marker addition only narrows validation on a field with no existing users (this feature isn't released yet).Does this introduce a user-facing change?
Documentation only, plus slightly stricter (but backward-compatible) validation on two SPIFFE CRD fields.
Special notes for reviewers
This adapts a doc originally written on an earlier, abandoned branch to the current schema — every factual claim (field paths,
bundleSource/resourcesbehavior, collision-handling semantics) was independently re-verified against current source rather than carried over from the old draft; several were corrected in the process (stale field path, an outdated "fails closed on any collision" claim that's now more nuanced after #6474's hardening work, and theresourcesfield not yet flowing into the runtime OAuth client). Stacked on #6500.