Skip to content

@skarekrow skarekrow released this Dec 22, 2018 · 1913 commits to master since this release

It's official! The iocage rewrite is now at 1.0. Big thanks to all the users who filed issues and contributors that submitted pull requests as well! This was a massive release (yet again) that has over 350 commits. Apparently Holiday releases are a thing, as iocage's last release was a full year ago. Whoops! We'll be more nimble on releases going forwards. Patch notes below!


  • Add DEFAULT support for ip4_addr
  • Property checking when using set/create
  • VNET interfaces are by default epair0b in jails now (works around a Plex bug)
  • Add DHCP information to start process
  • Add support for not supplying interface to VNET during creation
  • Plugin Update/Upgrade support added
  • Can get jails --jid(-j) or --state(-s) now
  • Added vnet_interfaces property, this passes interfaces directly into the jail
  • During execution events we now clean the environment
  • Added IOCAGE_HOSTNAME and IOCAGE_NAME to start environment for exec_* props
  • latest|LATEST support for fetch to always grab the latest RELEASE
  • Fix processing flags with pkg
  • 2x+ improvement to fetch speed
  • --thickjail(-T)s are back!
  • vnet_default_interface property added, this will add the specified interface to an automatic bridge0 for VNET
  • hostid_strict_check property added to make sure jails only run on the host they are meant to (For migrations and such)
  • Add help to all commands instead of just --help
  • Remove chroot
  • Branch support for plugins
  • Added debug command
  • HTTP/HTTPs are now the default fetch protocols.
  • allow_mlock added as a property
  • rtsold/rtsol support for IPv6
  • --keep_jail_on_failure(-k) support for plugins that may experience a failure that requires debugging
  • allow_tun is a custom property that will unhide tun devices in the jail
  • Handle corrupt default configurations now, we use in memory defaults if that is the case
  • Rewrite how devfs_ruleset are generated, fixing lots of bugs with dhcp + other combos
  • Simplify dhcp support to just dhcp=on for all interfaces, or per interface ip4_addr=NIC|DHCP
  • Start jail silently during exec if it's not running
  • allow_mount_fusefs property added, allows mounting and unmounting fusefs filesystems in FreeBSD 12.0 or later
  • Fix hostname generation in rc.conf and /etc/hosts
  • Add thin configuration support! Now jails only have the bare minimum + user properties when created. This allows for easy movement to inherit defaults on different boxes. This is the new default.
  • Added --thickconfig(-C)uration support to create to retain old behavior.
  • Added support for a default rc.conf file in the iocage root that jails will use instead of builtin boilerplate
  • VNET nics are now created with a period in their name on the host
  • Template jails have had a variety of bugs fixed
  • Allow clones and templates to be thickjails
  • Correctly set MTU on all vnet interfaces

...and many others! Full changelog below:


4cf4c63 Fix typo and cleanup exception
0ba86d7 Travis
e25ca80 Allow clones/templates to be created as thickjails
a58389b Fix setting thickjails as a template or cloning them
65bad4a Add More tests (#740)
6110ffe tkt-65421: Fix snapremove (#745)
0face4e Return a more verbose error message on plugin failure (#739)
1a1195a Initial commit fir cirrus-ci
7ce45da tkt-62547: No longer start network services explicitly (#734)
38c9da7 tkt-63801: Check snapshot exists before destroying (#735)
548a786 Fix travis and all flake8 errors (#733)
8a73125 tkt-64899: Rewrite IOCZFS to use subprocess calls (#731)
6522b2f Supply a files list to IOCFetch with create (#732)
3e6c265 Fix mismatching RELEASEs being fetched, and a couple other bugs (#729)
4435732 Properly set mtu on all vnet interfaces (#722)
10d16ef Fix listing non-standard RELEASE naming schemes (#725)
3650e2a Fix creating additional epairs (#721)
95db4e3 Grab doc.txz by default for RELEASEs under 12.0-R (#720)
8aa3f43 tkt-64143: Only capitalize fetch RELEASE if everything is default (#724)
30769f0 Check for exec=on when issuing update/upgrade (#723)
af9e342 Cleanup some fetch code, improve error message
6b26ffe Remove extra space in downloading fetch message
eab18d0 Fix a few more remaining fetch bugs
c4068fd Remove unused missing for fetch
2530fff Don't extract if the user doesn't have a MANIFEST and uses custom server
8b928c9 Fix a few issues in extraction/downloading code
c2a72f3 Remove doc.txz from default files
2f28401 Use periods instead of colons for nic name
3c38801 Don't add all parameters to start
f411c85 Fix 'iocage fetch' sorting (#716)
a830cae Remove unneeded conditional
d83016f Add templates to quick listing
5966920 Do not create default configuration if checking datasets
aeed930 Nicer!
ff7cf76 Bug fix for template jails (#714)
71ab39a Destroy Network related setup on stop (#713)
704b5c2 Add missing pathlib.Path for freebsd_version
964bd34 Fix self.default_config not always existing
75665cb Re-set self.rc on restart
8988de3 Catch version 12 too
5409e34 Catch users using old vnet_default_interface prop value of none
5920c62 Default to auto for vnet_default_interface
bbc971f Fix bad conditional on default rc.conf usage
a926b5b Use default rc.conf file instead of builtin boilerplate
b927b29 Check for malformed fstab lines
b82abea Reads nicer!
16981c8 Raise DHCP error if DHCP not configured (#709)
32926d3 Allow auto to be set for vnet_default_interface
8bc55f2 Remove unneeded code
f54ab49 Properly install requirements.txt
5bfb19f Bump py-libzfs to latest
4cc8ec2 Massive refactor of ioc_fstab
c363f0b Create new exception class for inheritance.
8f49bfc Join multiline error messages with logit
648fe63 Remove unused line
fe289db Bug fix for always creating jails with name and count flags (#708)
d9fa7dd Bug fix for iocage fetch (#706)
531a5cf Address even more @sonicaj concerns
96e008f Remove identical if statement
75878aa Errrrr
31c8e53 Address more @sonicaj review
dbf507c Remove unused self.zfs instance per @sonicaj review
abb7ff6 Add thick configuration for creation of jails and plugins
ef5c493 Remove unneeded comment
5b5d4b9 Break ioc_json into more classes
ecc887f Fixed bug: get non-existing keys from conf (#701)
9c3a530 Move progress out of update_progress for fetch
70b1a4a Unneeded cloned_release property kept around with thick jails
db2c377 Destroy leftover snapshot for thick jail creation
9cf753b Fix pkglist and no IP options fallout with thin configuration
035344e Fix hostname in rc.conf and /etc/hosts generation
b1738d4 Move updating basejails to base module ioc_fetch
84bb1cd Correctly mount basejail and umount basejails during cloning
07a2815 Update now correctly updates the release property with the patch level
28dde0a FIx get -r
c4016ac Show devfs ruleset when starting and return correct one
42400ac Use the first item for dicts sent to get recursive
93ed523 Add basejail header to long list
da4fec1 Allow listing only basejails with -B
e7a945c Fix bad path being sent to upgrade
af3c119 Remove backup tests
fd252a7 Use en_US.UTF-8 or users LANG by default for console/exec
7600461 Need 'type' for plugins
e851782 Fix tests and default configuration loading in ioc_json
82b909b Missed an instance
3b986ef Fix lack of writing json if json_load returned True
db7d6f4 Correct typo
e1fa1be Correctly add bpf to devfs rules, change creation warnings for props
9a78f6e Skip checking configuration if the versions match
903feb6 Remove unnecessary notes variable
356b419 Fallback to using the jails freebsd_version if the RELEASE one fails
8ad2703 Write partial configurations by default
b3da684 Set templates to read/write for json writing and back to readonly
2e919c3 Add enumeration to internal sorting for RELEASEs
08297a4 Make import more robust with handling naming
313a75b Add missing return for setting default prop
76338a3 Use default gateway for mac_prefix or generate one
d6a503a Drop "zero dependency" from description (#686)
54e909e Fixed error message for corrupted default.json (ticket 56364). (#685)
618ecd2 Fix bad indent
8df370e Fixed bug: do not umount path if fstab entry is not found (#684)
3196d84 Allow dots in the name for 'iocage console' (issue 677) (#683)
5ac562b Optionally allow mounting fusefs from within the jail. (#681)
20a2166 Fix quirks with 'iocage help' (#679)
ae5b3f7 Add accept_rtadv and autoconf to jail nic when accept_rtadv is set
7e280c3 Fix debug for corrupt jails
ab5b620 Warn about dhcp/accept_rtadv during create if required props are missing
14abfe6 spotted by @jsegaert
1938c35 Properly set rtsold during creation
3c15843 Include templates in debug
5571a2b Continue on corrupt jail configurations
82294e4 Debugs now correctly start fresh
f033d1c Bump to RC
ee8700d Handle corrupt default configurations
4bfc357 Rewrite this more succinctly courtesy of @danjacques
a769ad7 Always generate a devfs ruleset for a jail
01ea597 There's nothing to see here!
ca361b4 Rewrite how devfs_rulesets are generated
be04e26 Fixed sorting jails at iocage get -r (#675)
a7b2cbb Add dnspython to reqs
5d41714 Raise proper exception for old invalid Mac addresses (#667)
cec5562 fixes confusion with on/off and yes/no (#673)
cd7a162 Quietly start jail if needed when running 'iocage exec' (#672)
25be572 Add TERM to default clean envs
be09bae Made changes to iocage docs. Came from ticket48768. (#663)
ea461c8 adds 'thickjail' to jailtypes.rst (#666)
7e90343 Simplify config upgrades
a6ecf00 Skip RELEASE checking for EMPTY jails
ec2ad76 Delete jails for all exceptions in case of jail failure by default (#664)
d0b358a Catch any exceptions trying to load freebsd-version during check_config
ad68af0 Ignore callback for exceptions
eb8675f Use Exec interface for basejail upgrades
b9868e7 Have Upgrade use Exec interface
2f284c8 Improve DNS exception for Plugins
8f5760f Do not silence plugin property setting
ca556e8 More Exec work
9a69abd We now call the bridge_cmd if the variable is added
60912b7 Don't raise a pkg error if it succeeds after the first install
c46a90b if 'vnet_default_interface' is set to 'none' no host interface will be added to the bridge (#655)
e53b9d9 Add support for placeholders in adminportal (#659)
e5896eb Make Exec a generator
3f0f53b Simplify Exec rework, make CommandFailed return an iterable
11cbf92 Add back the DNS checks from the jail side for plugins
acdfeca Avoid false positive with EOL notice on jail updates
0c92956 iocage console hangs (#653)
e77d606 Fixed building py-libzfs after updating (#651)
7fb5cbe Added package dnspython (#645)
52116ac Large rework to Exec interface
01a4cb0 3.6 -> 3 (#641)
83ee041 And these!
4f279e9 3.6 -> 3
68e40ac Update py-libzfs
ea3ea42 Add failed_dhcp for this error
3f13c16 This commit adds support for a default none value for vnet_default_interface property
8336701 Make default interface for vnet customizable
612caeb Improve validation for VNET MAC Fields
dec6ebb Bug fix for listing jails
ec8c393 Improve support for dots in jailname (#629)
a80a402 We want the jails fstab in debug
65d27aa Decomplicate things and just use pool/iocage as mount
32621b2 Fix Traceback when pkg-static install fails (#627)
1b2f1f4 exec_clean now affects exec as expected.
7b54a55 Catch by @william-gr
705b203 Allow unhiding tun devices with a custom prop "allow_tun"
c5473ff Fixed bug: setting ZFS properties via 'iocage set' raised exception (#624)
18238cf Make default interface for vnet customizable (#623)
781ca7c Fix exec_pre|post stop
f6b9c3b Fixed bug: Jail fails to start when depends jail is already running (#608) (#622)
e31c1b8 Fixed iocage list multiple IP4 addresses (#621)
0aef5eb keep_jail_on_failure should be a flag
9321111 Add rtsold support
df8a175 Yeah, once is enough for the pkg error
5aadc93 Let's add the string version of the exception too
bee2974 Tighten up reusage of code for retry
84e760f It's not even Monday!
d30883c Remove debug, add better messages.
d6576a8 What! No sys.exit.
c0e92ad Retry on pkg and pkg install failures
d587f62 Bug fix for installing packages (#607)
1000163 Do not set allow.mlock when userland < 12.0 (#619)
0b78341 Add "allow_mlock" as a new property (#617)
3c82c82 Fix wrong property in doc
c529278 @william-gr noted we should probably have a couple nice defaults
c6dd02e Be a better env...izen. Less pollution!
8add7b9 Merge pull request #37 from freenas/ticket-47085
b7674c7 Use a specific exception for pool activation issues
1abefcf Fix devfs rules that have a bracket
e965a98 Don't use ifconfig -f inet:cidr to extract IP/Mask... (#515)
72b0f16 Fix branch name for plugin repo (#614)
0374d7e Flag debug as rootcmd (#613)
48d1da8 Test variable before splitting again, honor IP only for plugin install
e3dd2ea Potential Bug fix for jail creation
3a36b86 Improved error handling
65b6b96 Silence!
3819406 Updates to iocage.8: (#612)
9558798 Let's use the right variable
e43301e Remove duplicate variable
88590ff Fixed a bug in fstab
bfe2051 Correctly create aliases for shared IP jails that don't specify iface
9dd0c5e Fix debug not being as useful as it should be for non-running jails
f54c8b0 adds thickjail feature to man (#604)
bfd56ae Initialize reference to repo after succesful porcelain.pull() (#606)
624de0d Merge pull request #17 from freenas/ticket-41694
56ab46f fixes BUG, return was one level high (#603)
85dbb8d Fix usage of git@ repos
8d2cd72 Update py-libzfs
c5dd9c6 Only show one interface for the plugin IP
8cfe862 Fix a couple issues with devfs generation
b017e5b Change devfs rule generation
c0c28a2 Read output one more time after is finished (#601)
83b1769 Fix callback usage in lib/iocage
62c48b5 Prevent CPU from spinning on plugin tasks
99ba2a5 Make some plugin exec changes to hopefully address FreeNAS #42018
78245a3 Fix Makefile names
637b993 Be less nice for plugin pkg's clogging up stdout
399a9fa We want file, not http when specified
8d66f4d Creating duplicate plugins now name them plugin_NUM
462fbec Add a debug command
1f97a09 Fix a couple typos
0c44acf Bump copyright year (better late then never?)
b575eaa Refactor callback method,
c15be3d Flatten Python module names (#592)
624e913 Check DNS for plugins
def88a2 Remove exit_on_error
62f33b0 Always Force unmount Datasets when renaming (#590)
b814bb8 Check release upon create (#589)
7477b50 Strip subnet of IP4_ADDR when building plugin's portal URL (#586)
140e17e Trrrrravis
0365d91 Check host release for plugins
c640433 Travis
414a61a Use branches with plugins
fbab332 Use branches with plugins
3c5615f DNS/SRV/Host fixes
9aadffa We want unix acl's on iocage's datasets
585d7a8 Travis
cd7e099 Fix: Check for host release being less than during interactive fetch
dc77f54 Fix sorting issues (#582)
cba10a7 Fix typo: 'matiching' should be 'matching' (#576)
117d31d Travis
7425621 Don't rely on porcelain for cloning repo
68539e7 Fix validation of 'set template' (#574)
71dff6e Fix bad destroy target for export
af413b7 Fix repo message
1fe388f Rename templates (#570)
cf4c0da Fix issue with iocage list when showing short uuids (#572)
66e75ba subprocess.check_call() raises CalledProcessError if the returncode is not equal to zero. The CalledProcessError object then has the return code in the returncode attribute. (#571)
2dc9e5d use absolute paths to omit chdir in ioc_start (#568)
387983f Allow 'iocage CMD help' as well
962ec2c Proper error reporting when ran on datasets with exec=off (#566)
ec15598 Do not allow setting DHCP while a jail is running.
2af32de Jail needs to stop before changing jail_zfs* properties (#562)
854672f Recompress iocage.8 (#564)
ee27664 Ignore exception when trying to unmount datasets that do not exist (#561)
a994c8f Added forced stop (#553)
de4ce34 Fixed Cython package name (#551)
a45ef09 Improve exception handling when renaming jails (#550)
2593d90 Add documentation for the depends property: (#549)
8c891fa Make renaming jails more robust (#547)
e4112c7 Removed chroot usage (#545)
8224755 execute pip via python3.6 -m pip in Makefile (#543)
fbf861b Chroot command removed (#542)
b6109c2 Bump versioning
63b7976 add "hosid_strickt_check" as a new value (#538)
2980c9d Iocage doc update (#522)
45ee8e1 Link to the project webside (#537)
a697526 prevents iocage from adding hostinterface to bridge (#530)
7a6c0f0 Move up check for empty jail to fix issue 512 (#531)
1d23d7f adds thickjail-feature, thick jails are copies of the release, not cl… (#516)
9c4dd9a Fix for defect 526 & typo (#527)
1908813 Travis
9f33af4 Give a nicer error for SRV and DNSSEC
1c7eccc Allow listing only official plugins and fetching only official plugins
ccaeec8 Show official plugins as official
095081a Massively improve fetch speed and display
811e42e Handle no IOCAGE_SKIP environment more gracefully
0271b76 Add vnet_interfaces to creation config
40d8e43 Fix clean with releases
4b01745 Don't process flags with iocage pkg (#509)
30a7ffa Fix for issue 507 (#508)
b4bce09 Remove DS_Store files (#504)
a3e3c28 Iocage doc update (#501)
599c2ea Properly remove interfaces from host when dhcp jail is stopped
f44a681 Correctly remove all dangling mounts and jids for clean
f8506e3 Fix bad split giving an incorrect jail name for later
dc080b2 Travis!
465263f Iocage doc updates (#500)
7cd60d7 Allow create to use -r latest
d1ec2b7 Added section on setting iocage environment variables (#497)
f036959 Iocage man page updated. (#496)
12a56ad Travis.
f5c101e Allow latest|LATEST for -r in fetch
4718685 Add a couple variables to started environment for scripting
d0abb29 Add "vnet_interfaces" as a new property
b17c5eb Issue 476 (#493)
fc7995c We now add "b" to renamed interfaces
afbe70c Added chapter about fetching/managing plugins. (#492)
fbbdd73 Updated iocage docs: Added install chapter, organized, fixed. (#490)
c9e7d9d Please travis overlord
cca4378 Allow passing "-s" or "-j" to get
c86d378 Do not falsely report zfs exceptions when creating template (#485)
643a9b7 Create current docs about ezjail migration (#489)
757cefb Deleted one of the 'bridge1'. 'bridge1' was optional;caused confusion. Issue #404 (#488)
dff205d Elaborated on the network adapter 'warning' message. Issue #404 (#487)
65a6bc5 Fix .Xr tag (#484)
1aac02f Updated the 'updating/upgrading jail' section. (#486)
a948e03 Don't fatally exit if the dataset exists during fetch
5155411 Better duplicate check for mountpoints
2c32c7f Tell the user the configuration cannot be loaded
5a3a2c1 Add plugin update/upgrade
d93a100 Add support for no interface to list
959ec20 Allow not specifying interface for vnet
baebfbf Minor change
6556e18 Add DHCP information to start
27a08d4 Actually set the new jail's DEFAULT interface
16e9cca We now rename jail vnet interfaces
52f8674 Revert "We now no longer rename interfaces in the jail"
60ca64a Add "DEFAULT" support for ip4_addr
a941b75 We now no longer rename interfaces in the jail
b9ba150 Add jails name to /etc/hosts
54cb608 Fix destroy when origin is empty
e867005 Return a property for plugins again
0ca60d4 Install ca_root_nss package if the user has a secure packagesite
75d6d9a Fix listing remote and remote plugins
a698111 Fix setting vnet while a jail is running
1251078 Log a message instead of an exception for FreeNAS rc with no active pool
a40c067 Sanitize IP addresses on set
d0b8858 Update rc.d script
68fd4da Constantly prompt for fetch dialog until EXIT, exit, q or Q
8efc8f9 Don't assume the sys.prefix is /usr/local (#455)
16bca53 Fix snaplist for non-long operations
17ba05e Fix clone destruction not destroying the snapshots
4371184 Fix unique mac generation for clone
67199cd Start 1.0 ALPHA

Assets 2