6adb5c0aa5
The existing gate partitioned a disk for use with docker, depending on the gate it would use the swap disk (RAX) or a spare disk (HP). However, with the new gates (Bluebox + OVH) there is neither a spare disk nor a swap disk. This leaves us with one choice: File based loop device. This patch creates a file at /swapfile to ensure we have swap. It creates a file at /docker to ensure we have a loop device for Docker. Right now the /docker file is 10GB and the /swapfile is 4GB due to size limitations in the gate across all servers and types. This has proven to be enough space for all our current tests. Additionally, reduce the number of threads the gate uses to 4 to prevent the lockup and hour timeout we have been seeing as more recently in the gate. The scripts that setup the gate are moved to the tools directory rather than the tests directory to match the structure of the other projects. Partially-Implements: blueprint functional-testing-gate Change-Id: I3e370f2382b6df36103d8b2ceda9b21d9b4229d5
48 lines
1.5 KiB
Bash
Executable File
48 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -o xtrace
|
|
set -o errexit
|
|
|
|
function setup_disk {
|
|
sudo swapoff -a
|
|
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
|
|
sudo chmod 0600 /swapfile
|
|
sudo mkswap /swapfile
|
|
sudo /sbin/swapon /swapfile
|
|
|
|
sudo dd if=/dev/zero of=/docker bs=1M count=10240
|
|
losetup -f /docker
|
|
DEV=$(losetup -a | awk -F: '/\/docker/ {print $1}')
|
|
|
|
# Format Disks and setup Docker to use BTRFS
|
|
sudo parted ${DEV} -s -- mklabel msdos
|
|
sudo rm -rf /var/lib/docker
|
|
sudo mkdir /var/lib/docker
|
|
|
|
# We want to snapshot the entire docker directory so we have to first create a
|
|
# subvolume and use that as the root for the docker directory.
|
|
sudo mkfs.btrfs -f ${DEV}
|
|
sudo mount ${DEV} /var/lib/docker
|
|
sudo btrfs subvolume create /var/lib/docker/docker
|
|
sudo umount /var/lib/docker
|
|
sudo mount -o noatime,subvol=docker ${DEV} /var/lib/docker
|
|
}
|
|
|
|
# (SamYaple)TODO: Remove the path overriding
|
|
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
|
|
|
# Setup Docker repo and add signing key
|
|
echo 'deb http://apt.dockerproject.org/repo ubuntu-trusty main' | sudo tee /etc/apt/sources.list.d/docker.list
|
|
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
|
|
sudo apt-get update
|
|
sudo apt-get install -y --no-install-recommends docker-engine btrfs-tools
|
|
|
|
sudo service docker stop
|
|
setup_disk
|
|
echo 'DOCKER_OPTS="-s btrfs"' | sudo tee /etc/default/docker
|
|
sudo service docker start
|
|
|
|
sudo docker info
|
|
|
|
echo "Completed $0."
|