Services (static) + ReferenceGrant (controller-managed) #29
No reviewers
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lab/authz-bridge!29
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/services-referencedgrant"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #20
The in-cluster wiring that lets Apps (in many namespaces) route to the Bridge:
authz-bridge-callback:8082,authz-bridge-oidc:8083,authz-bridge-exchange:8084 inauthz-bridge-system) as static config: newconfig/services/kustomize directory wired intoconfig/default, selectorcontrol-plane: controller-manager, matching the manager's bind addresses; the manager Deployment declares the three containerPorts.internal/controller/routegrant) watchesHTTPRoutes andGRPCRoutes across namespaces and owns aReferenceGrant(authz-bridge-grantsin the Bridge's namespace) granting each Route's namespace (deduped, sortedspec.from) permission to reference the three Services (spec.to); idempotent upsert, re-fetch before update, the grant is deleted when the last Route disappears.make manifests(purely additive role.yaml diff); wired incmd/main.goon the existing--registry-namespace;sigs.k8s.io/gateway-api v1.6.2.Verified TDD-first via the existing envtest + Ginkgo/Gomega suite pattern (Seam B, with the gateway-api standard-channel CRDs committed at
test/crds/gateway-api/): 6 specs (no-Routes delete path, HTTPRoute namespace + exactspec.toassertion, GRPCRoute namespace, dedup, last-Route deletion, appear-in-new-namespace update + idempotent no-op), RED before implementation and GREEN after.kustomize build config/defaultverified for the three Services. Full suite green (-p 1). Two-axis code review: no hard standard violations; noted for follow-up — the gateway CRDs are test-only (a Gateway implementation is expected in-cluster), and the watch-trigger path is exercised by code reading (matching the existing suite pattern).