Merged
Conversation
12243d7 to
073a084
Compare
The default network creation was not specifying an IPAM config, causing Docker to allocate from its built-in address pool. Docker's default pool only supports ~15 /16 networks, which was being exhausted when running parallel tests on CI. Now the default network uses explicit /24 subnets from 10.0.0.0/8, while the CYOA network continues using 9.128.0.0/9. This separation also fixes a test failure where tests detecting interfaces by IP range (grep 'inet 9.') would incorrectly match both networks. Also adds a pre-test cleanup step to remove orphaned networks from previous runs.
073a084 to
143f0f1
Compare
packethog
approved these changes
Feb 5, 2026
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.
Summary
Fixes Docker network address pool exhaustion errors in CI:
Problem
The e2e tests create two Docker networks per test:
The default network was not specifying an IPAM config, causing Docker to allocate from its built-in address pool. Docker's default pool (
172.17.0.0/12) was allocating/16subnets, which only allows ~15 networks total. Withparallel=12tests and accumulated orphaned networks from previous runs, this pool was being exhausted.Evidence from the CI runner:
Solution
Use separate IP ranges for each network type:
10.0.0.0/8range with/24subnets (65,536 available)9.128.0.0/9range with/24subnets (32,768 available)CI cleanup: Add pre-test step to prune orphaned networks from previous runs
The separation also fixes a test failure in
TestE2E_DeviceMaxusersRolloverwhere tests detecting interfaces by IP range (grep 'inet 9.') would incorrectly match both networks when they shared the same range.Before vs After
Testing Verification
go build ./e2e/...compiles successfullyinet 9.correctly identify only CYOA interfaces