You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by wf...@apache.org on 2016/01/21 23:29:17 UTC
aurora-packaging git commit: Working version of jessie builds.
Repository: aurora-packaging
Updated Branches:
refs/heads/master 915b7f9f7 -> 092eb294b
Working version of jessie builds.
Reviewed at https://reviews.apache.org/r/42387/
Project: http://git-wip-us.apache.org/repos/asf/aurora-packaging/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora-packaging/commit/092eb294
Tree: http://git-wip-us.apache.org/repos/asf/aurora-packaging/tree/092eb294
Diff: http://git-wip-us.apache.org/repos/asf/aurora-packaging/diff/092eb294
Branch: refs/heads/master
Commit: 092eb294b8e74ad7fd51195991f7005db60a80a9
Parents: 915b7f9
Author: Dmitriy Shirchenko <ca...@gmail.com>
Authored: Thu Jan 21 14:29:13 2016 -0800
Committer: Bill Farner <wf...@apache.org>
Committed: Thu Jan 21 14:29:13 2016 -0800
----------------------------------------------------------------------
builder/deb/debian-jessie/Dockerfile | 48 +++++++++++++++++++++++
builder/deb/debian-jessie/build.sh | 40 +++++++++++++++++++
builder/deb/debian-jessie/pants.ini | 5 +++
specs/debian/aurora-executor.thermos.init | 16 +++++---
specs/debian/aurora-executor.thermos.service | 31 +++++++++++++++
specs/debian/aurora-scheduler.init | 12 ++++--
specs/debian/aurora-scheduler.service | 31 +++++++++++++++
specs/debian/aurora-scheduler.upstart | 1 -
specs/rpm/SOURCES/aurora.sysconfig | 3 --
test/deb/debian-jessie/README.md | 32 +++++++++++++++
test/deb/debian-jessie/Vagrantfile | 12 ++++++
test/deb/debian-jessie/provision.sh | 11 ++++++
12 files changed, 229 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/092eb294/builder/deb/debian-jessie/Dockerfile
----------------------------------------------------------------------
diff --git a/builder/deb/debian-jessie/Dockerfile b/builder/deb/debian-jessie/Dockerfile
new file mode 100644
index 0000000..63e89de
--- /dev/null
+++ b/builder/deb/debian-jessie/Dockerfile
@@ -0,0 +1,48 @@
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+FROM debian:jessie-backports
+
+WORKDIR /aurora
+ENV HOME /aurora
+ENV DEBIAN_FRONTEND noninteractive
+
+RUN apt-get update && apt-get -y install \
+ bison \
+ debhelper \
+ devscripts \
+ dpkg-dev \
+ curl \
+ git \
+ libapr1-dev \
+ libcurl4-openssl-dev \
+ libkrb5-dev \
+ libsvn-dev \
+ python-all-dev \
+ software-properties-common \
+ thrift-compiler
+
+RUN apt-get -y -t jessie-backports install openjdk-8-jdk \
+ && update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
+
+# TODO (shirchen): explore possiblity of downloading gradle directly from gradle. Issue is that
+# there's already a build-time dep of a package name 'gradle'.
+# Install gradle.
+RUN git clone --depth 1 https://github.com/benley/gradle-packaging \
+ && cd gradle-packaging \
+ && apt-get install -y ruby ruby-dev unzip wget \
+ && gem install fpm && ./gradle-mkdeb.sh 2.10 \
+ && dpkg -i gradle-2.10_2.10-2_all.deb \
+ && cd .. && rm -rf gradle-packaging
+
+ADD build.sh /build.sh
+ADD pants.ini /pants.ini
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/092eb294/builder/deb/debian-jessie/build.sh
----------------------------------------------------------------------
diff --git a/builder/deb/debian-jessie/build.sh b/builder/deb/debian-jessie/build.sh
new file mode 100755
index 0000000..f122a51
--- /dev/null
+++ b/builder/deb/debian-jessie/build.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#TODO (wfarner): Figure out how to symlink build files into Docker container.
+
+set -ex
+
+mkdir /scratch
+cd /scratch
+
+tar --strip-components 1 -C . -xf /src.tar.gz
+
+cp -R /specs/debian .
+
+export DEBFULLNAME='Apache Aurora'
+export DEBEMAIL='dev@aurora.apache.org'
+
+dch \
+ --newversion $AURORA_VERSION \
+ --package apache-aurora \
+ --urgency medium \
+ "Apache Aurora package builder <de...@aurora.apache.org> $(date -R)"
+dch --release ''
+
+dpkg-buildpackage -uc -b -tc
+
+mkdir /dist
+mv ../*.deb /dist
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/092eb294/builder/deb/debian-jessie/pants.ini
----------------------------------------------------------------------
diff --git a/builder/deb/debian-jessie/pants.ini b/builder/deb/debian-jessie/pants.ini
new file mode 100644
index 0000000..2ff2d5e
--- /dev/null
+++ b/builder/deb/debian-jessie/pants.ini
@@ -0,0 +1,5 @@
+[DEFAULT]
+print_exception_stacktrace: True
+
+[python-repos]
+repos: ['third_party/', 'https://svn.apache.org/repos/asf/incubator/aurora/3rdparty/ubuntu/trusty64/python/']
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/092eb294/specs/debian/aurora-executor.thermos.init
----------------------------------------------------------------------
diff --git a/specs/debian/aurora-executor.thermos.init b/specs/debian/aurora-executor.thermos.init
index e5c9401..9bc8675 100755
--- a/specs/debian/aurora-executor.thermos.init
+++ b/specs/debian/aurora-executor.thermos.init
@@ -19,7 +19,7 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin
DESC="Aurora Thermos observer"
NAME=thermos
DAEMON=/usr/sbin/thermos_observer
-PIDFILE=/var/run/thermos_observer.pid
+PIDFILE=/var/run/aurora-observer.pid
SCRIPTNAME=/etc/init.d/"$NAME"
test -f $DAEMON || exit 0
@@ -36,18 +36,22 @@ fi
[ -r /etc/default/thermos ] && . /etc/default/thermos
ARGS="--port=${OBSERVER_PORT:-1338}
- --log_to_disk=NONE
- --log_to_stderr=google:INFO"
+ --mesos-root=${MESOS_ROOT:-/var/lib/mesos}
+ --app_daemonize
+ --app_pidfile=$PIDFILE
+ --log_simple
+ --log_to_disk=google:INFO
+ --log_dir=/var/log/aurora"
case "$1" in
start)
- log_daemon_msg "Starting $DESC" "$NAME"
- mkdir -p /var/run/thermos
+ log_daemon_msg "Starting $DESC $NAME with $ARGS"
+ mkdir -p /var/log/aurora
start_daemon -p $PIDFILE $DAEMON $ARGS
log_end_msg $?
;;
stop)
- log_daemon_msg "Stopping $DESC" "$NAME"
+ log_daemon_msg "Stopping $DESC $NAME"
killproc -p $PIDFILE $DAEMON
RETVAL=$?
[ $RETVAL -eq 0 ] && [ -e "$PIDFILE" ] && rm -f $PIDFILE
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/092eb294/specs/debian/aurora-executor.thermos.service
----------------------------------------------------------------------
diff --git a/specs/debian/aurora-executor.thermos.service b/specs/debian/aurora-executor.thermos.service
new file mode 100644
index 0000000..da35116
--- /dev/null
+++ b/specs/debian/aurora-executor.thermos.service
@@ -0,0 +1,31 @@
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+[Unit]
+Description=Thermos Observer
+After=network.target
+Wants=network.target
+
+[Service]
+Type=forking
+IgnoreSIGPIPE=no
+GuessMainPID=no
+ExecStart=/etc/init.d/thermos start
+ExecStop=/etc/init.d/thermos stop
+User=root
+Group=root
+Restart=always
+RestartSec=20
+LimitNOFILE=16384
+
+[Install]
+WantedBy=multi-user.target
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/092eb294/specs/debian/aurora-scheduler.init
----------------------------------------------------------------------
diff --git a/specs/debian/aurora-scheduler.init b/specs/debian/aurora-scheduler.init
index 59b200f..b280c75 100755
--- a/specs/debian/aurora-scheduler.init
+++ b/specs/debian/aurora-scheduler.init
@@ -62,15 +62,21 @@ ARGS="-cluster_name=$CLUSTER_NAME
-thermos_executor_resources=$THERMOS_EXECUTOR_RESOURCES
-thermos_executor_flags=$THERMOS_EXECUTOR_FLAGS
-allowed_container_types=$ALLOWED_CONTAINER_TYPES
- -vlog=$LOG_LEVEL
$EXTRA_SCHEDULER_ARGS"
export JAVA_OPTS GLOG_v LIBPROCESS_PORT LIBPROCESS_IP
case "$1" in
start)
- log_daemon_msg "Starting $DESC" "$NAME"
- start_daemon -p $PIDFILE $DAEMON $ARGS
+ log_daemon_msg "Starting $DESC $NAME with $ARGS"
+ start-stop-daemon --start \
+ --quiet \
+ --oknodo \
+ --pidfile $PIDFILE \
+ --background \
+ --make-pidfile \
+ --no-close \
+ --exec $DAEMON -- $ARGS
log_end_msg $?
;;
stop)
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/092eb294/specs/debian/aurora-scheduler.service
----------------------------------------------------------------------
diff --git a/specs/debian/aurora-scheduler.service b/specs/debian/aurora-scheduler.service
new file mode 100644
index 0000000..ae33d26
--- /dev/null
+++ b/specs/debian/aurora-scheduler.service
@@ -0,0 +1,31 @@
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+[Unit]
+Description=Aurora Scheduler
+After=network.target
+Wants=network.target
+
+[Service]
+Type=forking
+IgnoreSIGPIPE=no
+GuessMainPID=no
+ExecStart=/etc/init.d/aurora-scheduler start
+ExecStop=/etc/init.d/aurora-scheduler stop
+User=aurora
+Group=aurora
+Restart=always
+RestartSec=20
+LimitNOFILE=16384
+
+[Install]
+WantedBy=multi-user.target
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/092eb294/specs/debian/aurora-scheduler.upstart
----------------------------------------------------------------------
diff --git a/specs/debian/aurora-scheduler.upstart b/specs/debian/aurora-scheduler.upstart
index 1ceb704..3c32068 100644
--- a/specs/debian/aurora-scheduler.upstart
+++ b/specs/debian/aurora-scheduler.upstart
@@ -34,6 +34,5 @@ script
-thermos_executor_resources="$THERMOS_EXECUTOR_RESOURCES" \
-thermos_executor_flags="$THERMOS_EXECUTOR_FLAGS" \
-allowed_container_types="$ALLOWED_CONTAINER_TYPES" \
- -vlog="$LOG_LEVEL" \
$EXTRA_SCHEDULER_ARGS
end script
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/092eb294/specs/rpm/SOURCES/aurora.sysconfig
----------------------------------------------------------------------
diff --git a/specs/rpm/SOURCES/aurora.sysconfig b/specs/rpm/SOURCES/aurora.sysconfig
index f421d19..166df4d 100644
--- a/specs/rpm/SOURCES/aurora.sysconfig
+++ b/specs/rpm/SOURCES/aurora.sysconfig
@@ -47,9 +47,6 @@ AURORA_FLAGS=(
# ServerSet, which keeps track of all live Aurora schedulers.
-serverset_path='/aurora/scheduler'
- # The log level of the built-in logger.
- -vlog='INFO'
-
# Allows the scheduling of containers of the provided type.
-allowed_container_types='DOCKER,MESOS'
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/092eb294/test/deb/debian-jessie/README.md
----------------------------------------------------------------------
diff --git a/test/deb/debian-jessie/README.md b/test/deb/debian-jessie/README.md
new file mode 100644
index 0000000..9be58bd
--- /dev/null
+++ b/test/deb/debian-jessie/README.md
@@ -0,0 +1,32 @@
+# Within vagrant install vagrant scp
+vagrant plugin install vagrant-scp
+# Then scp over the newly built packages
+vagrant scp \
+ ~/aurora-packaging/artifacts/aurora-debian-jessie/dist/aurora-scheduler_0.12.1.uber.3_amd64.deb \
+ aurora_jessie:aurora-scheduler_0.12.1.uber.3_amd64.deb
+
+# Install each deb via dpkg -i
+
+# Start Mesos + ZK
+sudo systemctl start mesos-master
+sudo systemctl start mesos-slave
+# Stop scheduler to setup log replication.
+sudo systemctl stop aurora-scheduler
+
+# Setup log replication
+sudo chown -R aurora:aurora /var/lib/aurora
+sudo -u aurora mesos-log initialize --path=/var/lib/aurora/scheduler/db
+
+# Start Aurora scheduler again
+sudo systemctl start aurora-scheduler
+
+## Create a job
+
+echo "
+task = SequentialTask(
+ processes = [Process(name = 'hello', cmdline = 'echo hello')],
+ resources = Resources(cpu = 1.0, ram = 128*MB, disk = 128*MB))
+jobs = [Service(
+ task = task, cluster = 'example', role = 'www-data', environment = 'prod', name = 'hello')]" > hello_world.aurora
+
+aurora job create example/www-data/prod/hello hello_world.aurora
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/092eb294/test/deb/debian-jessie/Vagrantfile
----------------------------------------------------------------------
diff --git a/test/deb/debian-jessie/Vagrantfile b/test/deb/debian-jessie/Vagrantfile
new file mode 100644
index 0000000..619b793
--- /dev/null
+++ b/test/deb/debian-jessie/Vagrantfile
@@ -0,0 +1,12 @@
+Vagrant.require_version ">= 1.5.0"
+
+Vagrant.configure(2) do |config|
+ config.vm.box = "debian/jessie64"
+
+ config.vm.provider :virtualbox do |vb|
+ vb.customize ["modifyvm", :id, "--memory", "4096"]
+ vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
+ end
+ config.vm.define "aurora_jessie"
+ config.vm.provision "shell", path: "provision.sh"
+end
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/092eb294/test/deb/debian-jessie/provision.sh
----------------------------------------------------------------------
diff --git a/test/deb/debian-jessie/provision.sh b/test/deb/debian-jessie/provision.sh
new file mode 100644
index 0000000..6970279
--- /dev/null
+++ b/test/deb/debian-jessie/provision.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+echo "deb http://http.debian.net/debian jessie-backports main" | sudo tee -a /etc/apt/sources.list
+apt-get update
+apt-get install -y openjdk-8-jre libsvn1 zookeeperd
+
+update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
+
+package=mesos_0.26.0-0.2.145.debian81_amd64.deb
+wget -c http://downloads.mesosphere.io/master/debian/8/$package
+dpkg -i $package