Repository navigation
Support private resource destinations on egress rules - #21
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
matcher.private_resource_idnames a private resource as a rule's destination, mutually exclusive withdomain_patternand fixed for the rule's life. Onlyhttp/httpsresources in the rule's organization are accepted;matcher.portsstays public-only.#private-resource-<id>role attribute, which survives the service being recreated, so attaching the rule is what grants reachability and detaching revokes it.Networks.SetPrivateResourceMediation(best-effort; the Networks reconciler re-derives every pass, so a missed call heals).upstream_tls(server_name,ca_bundle_secret_idxorinsecure_skip_verify) validated for privatehttpstargets; the CA bundle secret joins the referential-integrity count.ListEgressRulesByAgent/ByEnvironmentcarry the referenced resources'intercept_hostandprotocol, read live from Networks on the lookup path, so the gateway needs no Networks call per request. A resource that cannot be resolved is omitted; the gateway refuses rather than guesses.CountRulesReferencingPrivateResource(delete and protocol-change guards),ListMediatedPrivateResources(mediation re-derivation),ListAttachedRuleDomains(grant-time collision fast-fail).Networks.ListPrivateResourcesReachableBy), a private rule refused when a public rule for the resource's hostname already reaches the target. Best-effort by design — group and environment writes reach the same state elsewhere.intercept collision:log lines naming the identity and how each side was acquired. Reported, never repaired.ListEgressRulesByEnvironment(egress-gateway SA), which was missing.Part of egress rules address private resources; protocol change in agynio/api#193.