Home

Awesome

Garden Linux

Garden-Linux is not actively developed anymore. We are currently focusing on the OCI Garden backend: garden-runc.

Note: This repository should be imported as code.cloudfoundry.org/garden-linux.

A Linux backend for Garden.

You can deploy Garden-Linux using the Garden-Linux BOSH Release. This is the only "supported" way to use Garden-Linux. If you're not using BOSH, and still want to have a play, follow the insructions below.

Installing Garden-Linux

Note: the rest of these instructions assume you arranged for the garden-linux code and dependencies to be present in your $GOPATH on a machine running Ubuntu 14.04 or later with Go 1.6 installed. The easiest way to achieve this is actually to check out the Garden-Linux BOSH Release, since that's the only place that all the dependency version data is recorded. The steps are:

git clone --recursive git@github.com:cloudfoundry/garden-linux-release
cd garden-linux-release
export GOPATH=$PWD

Install and load aufs

sudo apt-get install linux-image-extra-$(uname -r)
sudo modprobe aufs

Build garden-linux

cd $GOPATH/src/code.cloudfoundry.org/garden-linux # assuming your $GOPATH has only one entry
make

Set up necessary directories

sudo mkdir -p /opt/garden/depot /opt/garden/graph /opt/garden/state

Download a RootFS (Optional)

If you plan to run docker images instead of using rootfs from disk, you can skip this step.

e.g. if you want to use the default Cloud Foundry rootfs:

wget https://github.com/cloudfoundry/stacks/releases/download/1.19.0/cflinuxfs2-1.19.0.tar.gz
sudo mkdir /opt/garden/rootfs
sudo tar -xzpf cflinuxfs2-1.19.0.tar.gz -C /opt/garden/rootfs

Run garden-linux

Note that if you opted not to download a rootfs in the previous step, you can remove the -rootfs=/opt/garden/rootfs parameter from the command.

cd $GOPATH/src/code.cloudfoundry.org/garden-linux # assuming your $GOPATH has only one entry
sudo ./out/garden-linux \
       -depot=/opt/garden/depot \
       -graph=/opt/garden/graph \
       -stateDir=/opt/garden/state \
       -rootfs=/opt/garden/rootfs \
       -bin=$PWD/linux_backend/bin \
       -listenNetwork=tcp \
       -listenAddr=127.0.0.1:7777

Kick the tyres

The easiest way to start creating containers is using the unofficial gaol command line client. For more advanced use cases, you'll want to use the Garden client package.

Development

See the Developer's Guide to get started.

Many integration tests are in another repository, Garden Integration Tests.