Skip to content

Latest commit

 

History

History
97 lines (76 loc) · 2.26 KB

README.md

File metadata and controls

97 lines (76 loc) · 2.26 KB

Garden in Go, on linux

Running

For development, you can just spin up the Vagrant VM and run the server locally, pointing at its host:

# if you need it:
vagrant plugin install vagrant-omnibus

# then:
librarian-chef install
vagrant up
ssh-copy-id vagrant@192.168.50.5
ssh vagrant@192.168.50.5 sudo cp -r .ssh/ /root/.ssh/
./scripts/add-route
./scripts/run-garden-remote-linux

# or run from inside the vm:
vagrant ssh
sudo su -
goto garden-linux
./scripts/run-garden-linux

This runs the server locally and configures the Linux backend to do everything over SSH to the Vagrant box.

Testing

Pre-requisites

  • Docker v0.9.0 or later (for creating a root filesystem)
  • git (for garden and its dependencies on github)
  • mercurial (for some dependencies not on github)

Run all the following commands as root.

Make a directory to contain go code:

# mkdir ~/go

From now on, we assume this directory is in /root/go.

Install Go 1.2.1 or later. For example, install gvm and issue:

# gvm install go1.2.1
# gvm use go1.2.1

Extend $GOPATH and $PATH:

# export GOPATH=/root/go:$GOPATH
# export PATH=$PATH:/root/go/bin

Install godep (used to manage garden's dependencies):

# go get github.com/kr/godep

Get garden and its dependencies:

# go get github.com/cloudfoundry-incubator/garden-linux
# cd /root/go/src/github.com/cloudfoundry-incubator/garden-linux
# godep restore

Make the C code:

# make

Create a root filesystem, extract it (still as root), and point to it:

# make garden-test-rootfs.tar
# gzip garden-test-rootfs.tar
# mkdir -p /var/garden/rootfs
# tar xzf garden-test-rootfs.tar.gz -C /var/garden/rootfs
# export GARDEN_TEST_ROOTFS=/var/garden/rootfs

(You may wish to save the root filesystem tar.gz file for future use.)

Install ginkgo (used to test garden):

# go install github.com/onsi/ginkgo/ginkgo

Run the tests:

# ginkgo -r