• Features • Build Requirements • Quick Start • Customize •
Garden Linux is a Debian derivate that aims to provide a small, auditable linux image for most Cloud Providers and Bare Metal.
- easy to use build system for OS images
- builds are repeatable and auditable
- small footprint (based on minbase of Debian)
- subscribes for debian/testing, so no huge (problematic) version jumps needed
- whole setup is purely systemd based (network, fstab etc.) #101 #102
- initramfs is dracut generated #105
- optional complete immutability #104
- regular updates (since the whole build process is completely automated via a Tekton CI) and
- thorough automated testing
- unit tests against the local build and
- integration tests against the various cloud Providers (only rc builds)
- aiming to always integrate the latest LTS kernel #100 (currently 5.4)
- running scans against common issues like
- license voilations (we try to be completely open! #1)
- scans for outdated software versions
- project licensed under MIT
- supporting major platforms out-of-the-box
- major cloud providers AWS, Azure, Google, Alicloud
- major virtualizer VMware, OpenStack, KVM
- bare metal
The entire build runs in a docker container (well a privileged one with extended capabilities - since we need loop back support) We can run on any system supporting Docker and having loopback support and has
- 2+ GiB (use RAM-disk; use fs with sparse-file support)
- 10+ GiB free disk space
- Internet connection to access snapshot.debian.org and repo.gardenlinux.io
apt install bash docker.io docker-compose make coreutils gnupg git qemu-system-x86
apt install python3
- Alicloud: Aliyun CLI
- AWS: AWS CLI
- Azure: Azure CLI
- GCP: Cloud SDK, gsutil
- OpenStack: OpenStackCLI
ext4, loop, squashfs, vfat, vsock (for VM image builds and extended virtualized tests)
apt install bash git python
pip install tekton
Build all images:
make all
Building specific platform images:
make aws
make gcp
make azure
make ali
make vmware
make openstack
make kvm
make metal
See in build/
folder for the outcome
Our build is based on a feature system.
The feature system distinguishes between
- Platforms (aws, azure, google ...)
- Features (container host, virtual host ...)
- Modifiers (_slim. _readonly, _pxe ...)
if you want to manually build choose:
build.sh <Platform>,[<feature1>],[<featureX>],[_modifier1],[_modifierX] destination [version]
e.g. build.sh server,cloud,chost,vmware build/
builds a server image, cloud-like, with a container host for the VMware platform. The build result can be found in build/
also look into our Version scheme since adding a date or a Version targets the whole build for a specific date