docs(prd): add git remote host override removal plan
This commit is contained in:
@@ -0,0 +1,64 @@
|
|||||||
|
# PRD 0047: Remove Git Remote Host Overrides
|
||||||
|
|
||||||
|
- **Status:** Draft
|
||||||
|
- **Author:** didericis-codex
|
||||||
|
- **Created:** 2026-06-02
|
||||||
|
- **Issue:** #152
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
Remove git remote host override plumbing from bottle manifests and git-gate
|
||||||
|
startup. Git remote declarations should describe upstream repositories and the
|
||||||
|
git-gate credential material needed to mirror them; they should not also
|
||||||
|
configure hosts-file behavior for sidecars.
|
||||||
|
|
||||||
|
## Problem
|
||||||
|
|
||||||
|
The git remote model currently has a hosts override path that can make a git
|
||||||
|
upstream resolve differently inside the git-gate sidecar. That is surprising
|
||||||
|
because the same hostname may also be used for HTTP/API traffic that should keep
|
||||||
|
using the normal egress DNS and policy path.
|
||||||
|
|
||||||
|
Keeping host resolution in the git remote model makes repository routing,
|
||||||
|
sidecar hosts files, and egress behavior feel coupled even when the operator
|
||||||
|
only meant to configure git-gate.
|
||||||
|
|
||||||
|
## Goals / Success Criteria
|
||||||
|
|
||||||
|
- Git remote manifest parsing no longer stores host override data.
|
||||||
|
- Git-gate upstream plans no longer carry host override data.
|
||||||
|
- Docker compose rendering no longer emits sidecar `extra_hosts` entries from
|
||||||
|
git remote declarations.
|
||||||
|
- Smolmachines bundle launch planning has no unused host override path for
|
||||||
|
git-gate.
|
||||||
|
- Focused unit tests cover the absence of sidecar `extra_hosts` for git
|
||||||
|
upstreams.
|
||||||
|
- Current user-facing documentation no longer advertises git remote host
|
||||||
|
overrides.
|
||||||
|
|
||||||
|
## Non-goals
|
||||||
|
|
||||||
|
- No replacement hosts-file override feature.
|
||||||
|
- No SSH client config provisioning.
|
||||||
|
- No change to git-gate's SSH credential or known-host handling.
|
||||||
|
- No change to egress DNS, HTTP auth, or pipelock routing semantics.
|
||||||
|
|
||||||
|
## Design
|
||||||
|
|
||||||
|
Remove the host override field from the internal `GitEntry` and
|
||||||
|
`GitGateUpstream` models. Remove the git-gate aggregation helper and the Docker
|
||||||
|
compose code that converted those values into sidecar `extra_hosts`.
|
||||||
|
|
||||||
|
The manifest parser does not need a migration-specific error path. After this
|
||||||
|
change, the old hosts override key has no internal model field and no runtime
|
||||||
|
effect.
|
||||||
|
|
||||||
|
## Testing Strategy
|
||||||
|
|
||||||
|
Run:
|
||||||
|
|
||||||
|
- `python3 -m unittest discover -s tests/unit`
|
||||||
|
|
||||||
|
## Open Questions
|
||||||
|
|
||||||
|
None.
|
||||||
Reference in New Issue
Block a user