Skip to content

Add support for IN_CLUSTER_PROXY node type#681

Merged
NehaManjunath merged 14 commits intoopenconfig:mainfrom
pranaysameer:inclusterproxy
Apr 7, 2026
Merged

Add support for IN_CLUSTER_PROXY node type#681
NehaManjunath merged 14 commits intoopenconfig:mainfrom
pranaysameer:inclusterproxy

Conversation

@pranaysameer
Copy link
Copy Markdown
Contributor

  • Update proto/topo.proto with IN_CLUSTER_PROXY in Vendor and Node.Type enums.
  • Create topo/node/inclusterproxy package implementing Node interface.
  • Set default image to nicolaka/netshoot:latest and enforce at least 1 Service.
  • Enforce link constraints to allow exactly one interface (eth1).
  • Add warning if socat is missing from Command or Args.
  • Update topo/topo.go to register the new node type.
  • Add unit tests in topo/node/inclusterproxy/inclusterproxy_test.go.

- Update proto/topo.proto with `IN_CLUSTER_PROXY` in Vendor and `Node.Type` enums.
- Create `topo/node/inclusterproxy` package implementing `Node` interface.
- Set default image to `nicolaka/netshoot:latest` and enforce at least 1 `Service`.
- Enforce link constraints to allow exactly one interface (`eth1`).
- Add warning if `socat` is missing from `Command` or `Args`.
- Update `topo/topo.go` to register the new node type.
- Add unit tests in `topo/node/inclusterproxy/inclusterproxy_test.go`.
@chrisy
Copy link
Copy Markdown

chrisy commented Mar 16, 2026

What does this do that simply configuring a HOST container doesn't already do? I see there's some basic validation (needs an eth1, needs a socat-based command) but does that warrant a dedicated node?

pranaysameer and others added 4 commits March 16, 2026 14:52
- Update proto/topo.proto with `IN_CLUSTER_PROXY` in Vendor and `Node.Type` enums.
- Create `topo/node/inclusterproxy` package implementing `Node` interface.
- Set default image to `nicolaka/netshoot:latest` and enforce at least 1 `Service`.
- Enforce link constraints to allow exactly one interface (`eth1`).
- Enforce that `proxy-pool-for` label is present in static configuration.
- Add static validation assuring `eth1` is connected directly to the node given in `proxy-pool-for`.
- Add automatic `socat` command generation using `peer-ip` and `target-port` labels:
    - Supports IPv4 address allocation arithmetic using `/31` masks.
    - Adds IPv6 support using `/127` arithmetic and handles `TCP6-LISTEN` argument switches.
- Update `topo/topo.go` to register the new node type.
- Update `topo/topo.go` to register the new node type.
- Add unit tests in `topo/node/inclusterproxy/inclusterproxy_test.go`.
@NehaManjunath
Copy link
Copy Markdown
Contributor

/gcbrun

Comment thread topo/node/inclusterproxy/inclusterproxy.go
Comment thread topo/node/inclusterproxy/inclusterproxy.go Outdated
@NehaManjunath
Copy link
Copy Markdown
Contributor

/gcbrun

@NehaManjunath
Copy link
Copy Markdown
Contributor

/gcbrun

@NehaManjunath
Copy link
Copy Markdown
Contributor

/gcbrun

@NehaManjunath NehaManjunath merged commit 2f54ebf into openconfig:main Apr 7, 2026
4 of 6 checks passed
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.

3 participants