Skip to content

Network isolation for deployments (edge + workspace networks) - rebase - #51

Open
zbal wants to merge 4 commits into
developmentfrom
network-isolation-rebase
Open

Network isolation for deployments (edge + workspace networks) - rebase#51
zbal wants to merge 4 commits into
developmentfrom
network-isolation-rebase

Conversation

@zbal

@zbal zbal commented Jan 26, 2026

Copy link
Copy Markdown
Collaborator

Note

Same PR as #48 but rebased after update of development version to v0.3.2

Why

Today all runner containers share a single devpush_runner network, which allows lateral movement between deployments. This change introduces per‑deployment and per‑workspace networks so each deployment is only reachable via its own edge network (for Traefik) and a workspace‑scoped private network (for same‑team traffic).

Summary

This introduces a two‑tier network model: an edge network per deployment for Traefik routing and probes, and a workspace network per team for east/west traffic between a team’s deployments. Monitoring attaches to workspace networks on demand, while Traefik attachment is reconciled via a dedicated ARQ task to survive container restarts.

Changes

  • Network topology:

    • New per‑deployment edge networks devpush_edge_<deployment-id>
    • New per‑team workspace networks devpush_workspace_<team-id>
  • Runner container wiring:

    • Runner containers attach to both edge + workspace networks
    • Traefik label traefik.docker.network points to the edge network
    • Runner labels now include devpush.edge_network and devpush.workspace_network
  • Monitoring:

    • Monitor attaches to workspace networks only when needed to probe
    • Probe detaches when a workspace no longer has deployment containers
    • Legacy fallback remains for devpush_runner where labels are missing
  • Traefik resiliency:

    • New ARQ job reconcile_edge_network (scoped by deployment id)
    • Runs after deployment start and once on worker startup
  • Ops tooling:

    • New network-reconcile.sh to enqueue reconcile manually

Testing

  • Not run (manual)

Dvorinka added a commit to Dvorinka/devpush that referenced this pull request Aug 24, 2026
…s#66/hunvreus#69, update docs

Merge PR hunvreus#51 (network isolation: per-deployment edge networks, per-team
workspace networks) and PR hunvreus#57 (deployment reconciliation, observed
status tracking, restart policy controls).

Fix issue hunvreus#66 (team_index MissingGreenlet crash by eager-loading
Deployment.project) and issue hunvreus#69 (storage reset failure now sets
status to error instead of active, with migration edfa1de408be).

Rewrite README to document fork status, merged PRs, bug fixes, and
evaluated issues. Update ROADMAP and ARCHITECTURE.md to reflect new
networking model, reconciliation loop, and community issue tracking.

Authored By: TDvorak <info@tdvorak.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant