1.8 KiB
VyOS build flavors
VyOS supports multiple different hardware and virtual platforms. Those platforms often need custom packages and may require custom configs. To make maintenance of existing flavors simpler and to allow everyone to make and maintain their own flavors, the build scripts support storing flavor configuration in TOML files.
Flavor files must be in data/build-flavors. Here's an example:
# Generic (aka "universal") ISO image
image_format = "iso"
# Include these packages in the image regardless of the architecture
packages = [
# QEMU and Xen guest tools exist for multiple architectures
"qemu-guest-agent",
"vyos-xe-guest-utilities",
]
[architectures.amd64]
# Hyper-V and VMware guest tools are x86-only
packages = ["hyperv-daemons", "vyos-1x-vmware"]
Image format
The image_format option specifies the default format to build.
image_format = "iso"
Note: currently, ISO is the only supported format, support for different flavors is in progress.
Including custom packages
If you want the build scripts to include custom packages from repositories
in the image, you can list them in the packages field.
For example, this is how to include the GNU Hello package:
packages = ['hello']
It's possible to include packages only in images with certain build architectures by placing them in a subtable.
If you want to include GNU Hello only in AMD64 images, do this:
[architectures.amd64]
packages = ['hello']
Including custom files
You can include files inside the SquashFS filesystem by adding entries
to the includes_chroot array.
[[includes_chroot]]
path = "etc/question.txt"
data = '''
Can you guess how this file ended up in the image?
'''
path = "etc/answer.txt"
data = '''
It was in the flavor file!
'''