Release Management
Once we have bootstrapped a release, it can be used to create jails. But what if we have updated all our jails to a newer release, and the old release is no longer needed?
To list available releases, run bastille list releases. This will show you
all the releases Bastille has already bootstrapped.
Destroy a Release
To destroy a release, run bastille destroy RELEASE. For legacy releases, we can
include --no-cache if we want to keep the .txz archive for some reason.
Update a Release
If a release starts getting some age behind it, it becomes necessary to update it to the latest patches and security updates.
To update a release, simply run bastille update RELEASE. This will fetch and
install the latest updates for the given release.
It is not possible to upgrade a release to a new minor or major version. Bastille
keeps each version in its own directory, so if you need the next minor version
of a release, use the bastille bootstrap command to bootstrap it.
Converting a Legacy Release to Pkgbase
If you want to convert a legacy release to a pkgbase release, we recommend destroying
it, the using --pkgbase to bootstrap it again. Otherwise you can use
the pkgbasify script created by the FreeBSD Foundation.
To do so, fetch the pkgbasify script, and run it with the --rootdir flag:
fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
chmod +x pkgbasify.lua
./pkgbasify.lua --rootdir /usr/local/bastille/releases/15.0-RELEASE
Custom Release
Bastille supports creating a customized release from any thick jail. After creating your
jail, installing the necessary packages and making the necessary changes, we can
run bastille convert JAIL RELEASE to convert our jail to a release template. Try not
to name it after an already existing release though. It can then be used to create
more jails.
See Centralized Assets.
Because Bastille validates release names when creating jails, you will have to
use the --no-validate flag when creating a jail from your newly created release.