Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

network: Support adding/removing multiple interfaces in jails #783

Open
wants to merge 20 commits into
base: master
Choose a base branch
from

Conversation

tschettervictor
Copy link
Collaborator

@tschettervictor tschettervictor commented Dec 30, 2024

This PR adds a subcommand called "network"

It allows you to add and remove interfaces to each jail, by adding/removing a network block to the jail.con file.
It also makes some changes to clone and create, as the way bastille numbers it's interfaces is by counting the jails. This PR now counts them by grepping each jail.conf file for "epair" and "bastille" as that is what gets created when an interface is created.

To test -
Create a jail
Make sure everything functions as usual
Add an IF (bridged or otherwise) using the network subcommand
Add another IF i you prefer (only one entry per interface is allowed)
Restart to confirm interfaces function properly
Clone that jail
Restart the cloned jail
Confirm jail.conf and /etc/rc.conf are updated as they should be when cloning a jail

Note: cloned jails will set the default interface to the IP specofied, and all other interfaces to SYNCDHCP. This can cause jails to take 10-20 seconds to fully start.

I'm not sure if this is best going forward, but it's the quickest way right now to implement this feature.

Everything works great on my end, so please report any bugs you might encounter.

@tschettervictor tschettervictor changed the title Support Multiple Interfaces in Jails network: Support adding/removing multiple interfaces in jails Jan 1, 2025
@tschettervictor
Copy link
Collaborator Author

At @JRGTH suggestion, I've implemented a "-m|--static-mac" switch here to make the static MAC address optional. If this is agreeable with @bmac2 and @yaazkal I will implement the same in "create.sh" and "clone.sh"

Merge add/remove functions to avoid having unnecessarily long code blocks and functions.
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.

1 participant