apple / apple/container

[Request]: Support registering network plugins at runtime (no code changes)

Open
#1,923 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Swift
Stars
49.9k
Forks
1.8k
Avg merge
1d 20h
Merged PRs (30d)
22

Description

### Feature or enhancement request details

I am currently having issues with establishing a connection from inside a container to resources with my company's software-defined perimeter. My experience is similar to

- #1307
- #1519

However, it seems to be more difficult to address since we run in a split-tunnel configuration.
While I wait for progress to be made on the above issues, I discovered that it would be possible to implement a quick solution with the help of `pf` rules and a network plugin. When adding support for my experimental plugin here:

https://github.com/apple/container/blob/e1a5cfdc701e96ffe4a8bb463646eaaff8badb4e/Sources/Plugins/RuntimeLinux/RuntimeLinuxHelper%2BStart.swift#L66-L72

I noticed the `FIXME:` comment. I interpret it to mean what I am requesting in this feature... that there be a system property or config that can be used to identify the supported network plugins and their associated interface strategy.

Could this be handled with new entries in config.toml?
@katiewasnothere

I figured this might be a good initial contribution.

### Code of Conduct

- [x] I agree to follow this project's Code of Conduct

Contributor guide

Open the contributing guide

Research direction

Start at Sources/Plugins/RuntimeLinux/RuntimeLinuxHelper+Start.swift around the mentioned FIXME and review issues #1307 and #1519 for related context. Then inspect the existing config.toml handling. Done means the runtime can identify supported network plugins and their interface strategies through configuration without code changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
infrastructure, networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.