Skip to content

Bastille 0.10.20231125 - Thanksgiving 2023

Pre-release
Pre-release
Compare
Choose a tag to compare
@cedwards cedwards released this 26 Nov 02:48
· 95 commits to master since this release
3a4ebc6

We're Thankful For First-Time Contributors!

This release had eight first-time contributors. Thank you for becoming a part of Bastille history. Welcome to the club!

New Contributors

Release Highlights

Support BETA and RC branches

Bastille now supports bootstrapping and testing FreeBSD BETA and RC branches. While we didn't get this out in time for 14.0-RELEASE, this will be a great way to help test future releases.

Example:

bastille bootstrap 14.0-RC4
bastille bootstrap 14.0-BETA1

Support EOL releases (>=9.0-RELEASE)

In addition to BETA and RC releases, Bastille now supports bootstrapping EOL releases all the way back to FreeBSD 9.0-RELEASE! Documentation on how to bootstrap EOL releases is now found in the Bastille bootstrap documentation.

Example:

export BASTILLE_URL_FREEBSD=http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/
bastille bootstrap 11.1-RELEASE
bastille bootstrap 12.2-RELEASE

sysrc bastille_rcorder=YES

This release introduces an improvement to the Bastille startup script that supports an alternative startup/shutdown ordering of jails using rcorder. The existing bastille_list="jail1 jail2 jail3" is still supported, but alternatively you can use bastille_rcorder=YES instead to dynamically build the startup/shutdown list. If you enable bastille_rcorder, disable bastille_list.

Example:

sysrc bastille_enable=YES
sysrc bastille_rcorder=YES

This method will ignore any jail with # KEYWORD: nostart in the jail.conf. Additionally, it will build dependencies using the # REQUIRE: foo and # PROVIDE: foo syntax. See #629 for details.

beta/jail.conf

# KEYWORD: nostart
beta {
...
}

alpha/jail.conf

# REQUIRE: db
alpha {
...
}

db/jail.conf

# PROVIDE: db
db {
...
}

What this means is you can define jail dependencies by adding # PROVIDE: and # REQUIRE: statements to jail.conf files.

bastille rcp

Bastille now includes an rcp sub-command. Reverse-copy, for when you want to copy files from containers back to the host.
This command should essentially do the opposite of the cp sub-command.

osrelease

Bastille now sets osrelease = ${RELEASE}; in jail.conf for new containers. This variable will be set to match the jail's FreeBSD release. The result of this change means uname -r will properly report jail release version instead of host release version.

combine create options

Bastille now supports combining create options.

Example:

 bastille create -CV 01-clone-vnet 14.0-RELEASE DHCP em0 
 bastille create -TB 01-thick-bridge 14.0-RELEASE DHCP bridge0
 bastille create -TV 01-thick-vnet 14.0-RELEASE DHCP em0
 bastille create -CB 01-clone-bridge 14.0-RELEASE DHCP bridge0

Note: combined options are supported in any order (-CV|-VC), (-TB|-BT), etc and each respective base template should be applied.

bastille setup vnet

Bastille setup will now populate an /etc/devfs.rules file for use with VNET jails. The file will include these rules:

[bastille_vnet=13]
add include $devfsrules_hide_all
add include $devfsrules_unhide_basic
add include $devfsrules_unhide_login
add include $devfsrules_jail
add include $devfsrules_jail_vnet
add path 'bpf*' unhide

bastille_zfs_enable=([Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)

Long overdue, Bastille no longer includes any tests looking for a hard-coded uppercase "YES" when testing whether ZFS is enabled. It now uses a standard test throughout the code that runs a simple checkyesno function. This function tests for any combination of upper and/or lowercase values for: yes, true, on, 1 for enabled. It will treat any combination of upper and/or lowercase values for no, false, off, 0 for disabled. Anything else reports that the value is not properly configured.

Documentation Updates

We've made a number of updates to the Bastille documentation. New and upgraded documents include:

  • iocage migration example
  • notes regarding container MOTD, uname and the use of .hushlogin
  • examples on how to compile ports inside containers
  • documented the "official" container upgrade/downgrade process
  • bootstrap EOL releases of FreeBSD (>=9.0-RELEASE)

As always, the latest documentation can be found at https://docs.bastillebsd.org

Merged Changes

Full Changelog: 0.10.20231013...0.10.20231125