Skip to content

Remove IP allocation from API server. - #1545

Merged
katiewasnothere merged 1 commit into
apple:mainfrom
jglogan:runtime-allocate
May 12, 2026
Merged

Remove IP allocation from API server.#1545
katiewasnothere merged 1 commit into
apple:mainfrom
jglogan:runtime-allocate

Conversation

@jglogan

@jglogan jglogan commented May 12, 2026

Copy link
Copy Markdown
Contributor

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update

Motivation and Context

Simplify IP allocation and make deallocation more reliable.

Testing

  • Tested locally
  • Added/updated tests
  • Added/updated docs

- Reduces the complexity and coupling for
  IP allocation.
- Runtimes connect to networks for the life
  of the running container. The runtime
  shuts down on connection loss.
- Networks automatically deallocate a
  runtime's IP address and hostname record
  on connection loss.
- Removes AllocatedAttachment as this is no
  longer necessary. The `bootstrap()` XPC
  now takes a `NetworkBootstrapInfo` array
  which parallels the attachments in the
  bundle config and provides the network
  plugin attributes needed to create VM
  network interface configurations.
@github-actions

Copy link
Copy Markdown

Code Coverage

Tier Line Coverage
Unit 33.33%
Integration 20.46%
Combined 53.21%

@katiewasnothere
katiewasnothere merged commit b466959 into apple:main May 12, 2026
4 checks passed
@jglogan
jglogan deleted the runtime-allocate branch May 12, 2026 23:35
jglogan added a commit to jglogan/container that referenced this pull request May 28, 2026
- Part of apple#1404.
- Updates containerization to 0.33.2.
- Reorganizes network plugin targets into:
  - `ContainerNetworkClient` - network plugin client
    and default types
  - `ContainerNetworkServer` - separate protocols
    for `Network` which manages the underlying
    virtual network, `NetworkService`, which takes
    a network and implements the API, and an actor
    `NetworkHarness` that marshals between the API
    and the XPC protocol. The service-harness
    separation will help us ensure XPC protocol
    compatibility in both directions as we evolve
    the plugin APIs.
- Removes `disableAllocator()` which is no longer
  used since apple#1545 switched over to using XPC
  connections between runtime and network plugin
  instances to track whether a network has attached
  containers.
jglogan added a commit that referenced this pull request May 28, 2026
- Part of #1404.
- Updates containerization to 0.33.2.
- Reorganizes network plugin targets into:
  - `ContainerNetworkClient` - network plugin client and default types
- `ContainerNetworkServer` - separate protocols for `Network` which
manages the underlying virtual network, `NetworkService`, which takes a
network and implements the API, and an actor `NetworkHarness` that
marshals between the API and the XPC protocol. The service-harness
separation will help us ensure XPC protocol compatibility in both
directions as we evolve the plugin APIs.
- Removes `disableAllocator()` which is no longer used since #1545
switched over to using XPC connections between runtime and network
plugin instances to track whether a network has attached containers.
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.

[Bug]: IP address exhaustion with container delete --force [Bug]: Unable to delete a network - IP allocator cannot be disabled with active containers

2 participants