Repository navigation
feat(ingress): prepare a recoverable gateway peer boundary - #5547
Conversation
The initial CI failures are addressed at The approved-render delta contains exactly two identities: one changed infrastructure Kustomization, whose only new setting requires the encrypted receiver substitution source, and that one new Secret with three encrypted string fields and the existing production recovery recipient. The infrastructure object fingerprint is With the approved renderer, the actual authorization validator passed. Race-enabled authorization, receiver-binding and ARC staging regression packages passed. Full CI is rerunning; the PR remains a draft. Deployment must also prove the positive public paths. Denied direct paths and forged client claims still require native acceptance before client-identity forwarding can be enabled. |
Reshaped at The native Kubernetes 1.36.4 CEL and JSONPatch engine exercised the actual policy files: every TLS chain gets the fixed physical peer, the existing plain HTTP chain is preserved, repeat mutation is stable, and unrelated Gateways are excluded. Unsafe peers, broader prefixes, fallback chains, alternate matchers and protobuf field aliases were rejected. The alias controls have observed RED/GREEN evidence. Rollback tests also have RED/GREEN evidence: a foreign second binding no longer permits partial removal, and an active PROXY listener is checked before any write. Conditional deletion and patching use observed object identities and versions; readback resolves lost acknowledgements and refuses replacements. Production schema validation, race tests, lint and the approved-render authorization validator passed locally; CI is running at this head. The approval delta from main now contains four identities: the required infrastructure substitution source, its encrypted Secret, and the two unbound policy definitions. No binding is selected and no existing admission scope is widened. Native allowed/denied peer probes, controller stability, the real Email client path and observed recovery remain required before activation; this preparation does not claim those outcomes. |
The publication and conservation failures are addressed at The policy expressions now use a stable literal-block format. Real Kustomize output and deployed-spec readback agree exactly; the regression exercises both actual policy files. Only their two authorization fingerprints moved. Approved-render validation, race tests, lint, source bootstrap and canonical upgrade checks passed locally. CI is running again; the PR remains a draft with forwarding and the physical fence disabled. |
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. More of your lovely PRs please. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Ready at
The fresh base was checked for clean integration, the template passed, and no foreign worktree holder was found. This lands unbound definitions and the disabled-state recovery path. Actual physical-peer denials, protocol activation and the full Email administration path remain acceptance gates under #5448; this PR does not claim them. |
Prior hold: #5170 — merge-group 40895798668 and its main restoration failed a public HTTP check without recording the status. That historical cause remains unknown. The maintainer explicitly approved one fresh protected, instrumented trial at Resuming for that single trial under the normal protected queue. Transport and the physical fence remain disabled. No historical-cause, production-recovery or long-term reliability success is claimed; #5170 stays open. Any new failure must be diagnosed before another attempt. |
Readiness at The evaluated behavior is preparation and verification of the disabled receiver baseline: native tests reject unbound sources and inappropriate policy changes, while the physical-peer binding remains unselected. This does not enable forwarded identity or move Email data. Production verification remains part of the protected deployment; later transport activation and client-identity acceptance remain in #5448. |
…-boundary-5448-23e2' into codex/email-gateway-bootstrap-5547-23e2
@coderabbitai review |
|
CodeRabbit declined this request because of its included review limit; no review of this head was delivered. Continuing with the next permitted reviewer. |
@codex review |
|
Codex Review: Didn't find any major issues. Keep it up! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Readiness at The evaluated behavior remains the disabled receiver preparation. Its encrypted configuration now follows the existing decrypting bootstrap path; the physical-peer binding remains unselected. Production readback remains a protected-deployment gate and is not claimed here. The refreshed base differs only in the vulnerability-scanning action pin. All readable required gates passed and GitHub reports CLEAN; the configured code-quality gate remains opaque to the API and is enforced by the protected queue. Broader transport activation and real client-identity acceptance remain in #5448. |
Why
Email needs reliable client identity before its public administration and account rollout can complete. The gateway first needs a recoverable boundary that distinguishes its provider connection from client-supplied metadata.
What
Prepares that boundary in a disabled state, keeps its encrypted configuration on the normal bootstrap recovery path, and adds checks and recovery. Traffic forwarding stays on its existing baseline; activation and real connection tests remain part of the wider Email work.
Part of #5448
📦 New dependency: Kubernetes policy evaluator — checks the planned protection before activation.