blob: f0e98184887e6603ca114df896483b769efb4b5c [file] [log] [blame]
# Copyright 2021 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
description "Start the satlab application, a set of docker containers."
author "chromium-os-dev@chromium.org"
start on started moblab-dockerd
script
mkdir -p /var/log/bootup/
exec >>/var/log/bootup/${UPSTART_JOB}.log 2>&1
set -x
set +e
APP_KEY="$(vpd -i RW_VPD -g application)"
if [ "$?" != "0" ] || [ "${APP_KEY}" != "satlab" ]; then
echo "Cannot start ${UPSTART_JOB} for APP_KEY = ${APP_KEY}."
exit 1
fi
set -e
LABEL=release
REPO_ADDR=us-docker.pkg.dev/chromeos-partner-moblab/satlab
if [ -e /etc/lsb-release ]; then
track=$(cat /etc/lsb-release | \
grep "CHROMEOS_RELEASE_TRACK" | \
awk -F = '{ print $2 }')
case $track in
beta-channel)
LABEL=beta
;;
testimage-channel | dev-channel | developer-build )
LABEL=autopush
if [ -e /dev/disk/by-label/SATLAB-DEV ] ; then
mkdir -p /usr/local/tmp/satlab-dev
umount /usr/local/tmp/satlab-dev || true
mount "$(readlink -f /dev/disk/by-label/SATLAB-DEV)" \
/usr/local/tmp/satlab-dev || true
LABEL=$(cat /usr/local/tmp/satlab-dev/dev-compose-label || echo autopush)
REPO_ADDR=$(cat /usr/local/tmp/satlab-dev/dev-compose-repo || echo "us-docker.pkg.dev/chromeos-partner-moblab/satlab")
fi
;;
esac
fi
SSH_PORT=22
case $track in
testimage-channel )
SSH_PORT=2222
;;
esac
reps=0
while [ ${reps} -lt 100 ] && ! docker info ; do
: $((reps += 1))
sleep 1
done
docker stop compose || true
docker rm compose || true
reps=0
while [ ${reps} -lt 100 ] && \
! docker pull \
"${REPO_ADDR}/satlab-compose:${LABEL}" ; do
: $((reps += 1))
sleep 1
done
# Allow other users to use docker socket.
chmod 666 /var/run/docker.sock
DRONE_HOSTNAME="satlab"
MACADDR=$(echo "$(vpd -g serial_number)" | awk '{print tolower($0)}')
DRONE_HOSTNAME="${DRONE_HOSTNAME}-${MACADDR}"
echo "Drone Name: ${DRONE_HOSTNAME}"
docker run --restart unless-stopped --name compose \
--label=com.centurylinklabs.watchtower.lifecycle.pre-update="docker-compose down" \
--label=com.centurylinklabs.watchtower.stop-signal=KILL \
-v /var/run/docker.sock:/var/run/docker.sock \
-v docker_config:/root/.docker \
-v satlab_keys:/home/satlab/keys \
-v cache_server:/home/satlab/cache_server \
-e DRONE_HOSTNAME=${DRONE_HOSTNAME} \
-e LABEL=${LABEL} \
-e SSH_PORT=${SSH_PORT} \
--add-host dockerhost:172.17.0.1 \
"${REPO_ADDR}/satlab-compose:${LABEL}" up
end script