main bac21c6

network-isolation.md RawHistoryFolder

Network Isolation

Installation network policy for Gordon-managed networks.

Configuration

[network_isolation]
enabled = true
network_prefix = "gordon"
internal = false

Options

Option Type Default Description
enabled bool true Enable Gordon-managed network policy
network_prefix string "gordon" Prefix filter for gordon daemon networks
internal bool false Create isolated Docker networks with Docker's Internal flag, blocking direct external egress from containers on those networks.

Per-app isolation is declared in app files, not here: each app gets a private network automatically, and services can join named shared networks with [[network.shared]] (see App Manifest). Deploy adds AND removes memberships without disconnecting unrelated services. Shared networks are created/reused only within verified Gordon ownership.

Service-to-Service Networking

Every app container joins an incarnation-owned private network. Services of the same app communicate over that network and can resolve each other by service alias.

Different apps are isolated by default: a container on one app network cannot reach another app's network. Cross-app communication happens only when both services declare the same [[network.shared]] membership, which attaches the explicitly enrolled containers to a shared network.

Readiness helpers never join shared networks and exist only on the target app's private network.

Inspecting Networks

View Gordon-managed networks:

gordon daemon networks
docker network ls | grep gordon

Inspect a network:

docker network inspect <network-name>
source
1# Network Isolation
2
3Installation network policy for Gordon-managed networks.
4
5## Configuration
6
7```toml
8[network_isolation]
9enabled = true
10network_prefix = "gordon"
11internal = false
12```
13
14## Options
15
16| Option | Type | Default | Description |
17|--------|------|---------|-------------|
18| `enabled` | bool | `true` | Enable Gordon-managed network policy |
19| `network_prefix` | string | `"gordon"` | Prefix filter for `gordon daemon networks` |
20| `internal` | bool | `false` | Create isolated Docker networks with Docker's `Internal` flag, blocking direct external egress from containers on those networks. |
21
22Per-app isolation is declared in app files, not here: each app gets a private network automatically, and services can join named shared networks with `[[network.shared]]` (see [App Manifest](./apps.md)). Deploy adds AND removes memberships without disconnecting unrelated services. Shared networks are created/reused only within verified Gordon ownership.
23
24## Service-to-Service Networking
25
26Every app container joins an incarnation-owned private network. Services of the same app communicate over that network and can resolve each other by service alias.
27
28Different apps are isolated by default: a container on one app network cannot reach another app's network. Cross-app communication happens only when both services declare the same `[[network.shared]]` membership, which attaches the explicitly enrolled containers to a shared network.
29
30Readiness helpers never join shared networks and exist only on the target app's private network.
31
32## Inspecting Networks
33
34View Gordon-managed networks:
35
36```bash
37gordon daemon networks
38docker network ls | grep gordon
39```
40
41Inspect a network:
42
43```bash
44docker network inspect <network-name>
45```
46
47## Related
48
49- [App Manifest](./apps.md)
50- [Configuration Overview](./index.md)

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close