summaryrefslogtreecommitdiff
path: root/mason.configure
diff options
context:
space:
mode:
Diffstat (limited to 'mason.configure')
-rw-r--r--mason.configure140
1 files changed, 78 insertions, 62 deletions
diff --git a/mason.configure b/mason.configure
index 1198ebd0..e0be6b2e 100644
--- a/mason.configure
+++ b/mason.configure
@@ -14,21 +14,6 @@
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# This is a "morph deploy" configuration extension to fully configure
-# a Mason instance at deployment time. It uses the following variables
-# from the environment:
-#
-# * ARTIFACT_CACHE_SERVER
-# * MASON_CLUSTER_MORPHOLOGY
-# * MASON_DEFINITIONS_REF
-# * MASON_DISTBUILD_ARCH
-# * MASON_TEST_HOST
-# * OPENSTACK_NETWORK_ID
-# * TEST_INFRASTRUCTURE_TYPE
-# * TROVE_HOST
-# * TROVE_ID
-# * CONTROLLERHOST
set -e
@@ -39,27 +24,21 @@ set -e
ROOT="$1"
mkdir -p "$ROOT"/usr/lib/mason
-cp mason/mason.sh "$ROOT"/usr/lib/mason/mason.sh
-cp mason/mason-report.sh "$ROOT"/usr/lib/mason/mason-report.sh
cp mason/os-init-script "$ROOT"/usr/lib/mason/os-init-script
-cp mason/mason.timer "$ROOT"/etc/systemd/system/mason.timer
-
-cp mason/mason.service "$ROOT"/etc/systemd/system/mason.service
+cp mason/mason-setup.service "$ROOT"/usr/lib/systemd/system/mason-setup.service
+cp mason/zuul-server.service "$ROOT"/usr/lib/systemd/system/zuul-server.service
+cp mason/zuul-merger.service "$ROOT"/usr/lib/systemd/system/zuul-merger.service
+cp mason/turbo-hipster.service "$ROOT"/usr/lib/systemd/system/turbo-hipster.service
+cp mason/lighttpd.service "$ROOT"/usr/lib/systemd/system/lighttpd.service
##########################################################################
-# Set up httpd web server
+# Create required directories
##########################################################################
-cp mason/httpd.service "$ROOT"/etc/systemd/system/httpd.service
-
-mkdir -p "$ROOT"/srv/mason
-
-cat >>"$ROOT"/etc/httpd.conf <<EOF
-.log:text/plain
-EOF
-
-mkdir -p "$ROOT"/var/mason
+mkdir -p "$ROOT"/var/www/logs
+mkdir -p "$ROOT"/var/lib/zuul
+mkdir -p "$ROOT"/var/log/zuul
##########################################################################
# Copy files needed for Ansible configuration
@@ -70,7 +49,6 @@ mkdir -p "$ROOT/usr/lib/mason-setup"
cp mason/share/* "$ROOT/usr/share/mason-setup"
cp -r mason/ansible "$ROOT/usr/lib/mason-setup/"
-cp mason/mason-setup.service "$ROOT"/etc/systemd/system/mason-setup.service
ln -s ../mason-setup.service "$ROOT"/etc/systemd/system/multi-user.target.wants/mason-setup.service
@@ -84,26 +62,64 @@ if [ -n "$MASON_GENERIC" ]; then
fi
if [ -z "$MASON_CLUSTER_MORPHOLOGY" -a \
- -z "$MASON_DEFINITIONS_REF" -a \
- -z "$MASON_DISTBUILD_ARCH" -a \
- -z "$MASON_TEST_HOST" ]; then
+ -z "$MASON_ARCHITECTURE" -a \
+ -z "$MASON_TEST_HOSTS" -a \
+ -z "$MASON_DISTBUILD_CONTROLLERS" -a \
+ -z "$MASON_TEST_INFRASTRUCTURE_TYPE" -a \
+ -z "$MASON_UPSTREAM_TROVE" ]; then
# No Mason options defined, do nothing.
exit 0
fi
-if [ -z "$ARTIFACT_CACHE_SERVER" -o \
- -z "$CONTROLLERHOST" -o \
- -z "$MASON_CLUSTER_MORPHOLOGY" -o \
- -z "$MASON_DEFINITIONS_REF" -o \
- -z "$MASON_DISTBUILD_ARCH" -o \
- -z "$MASON_TEST_HOST" -o \
+if [ -z "GERRIT_HTTP_PORT" ]; then
+ GERRIT_HTTP_PORT="8080"
+fi
+
+if [ -z "GERRIT_GIT_PORT" ]; then
+ GERRIT_GIT_PORT="29418"
+fi
+
+if [ -z "GEARMAN_PORT" ]; then
+ GEARMAN_PORT="4730"
+fi
+
+if [ -z "START_GEARMAN" ]; then
+ START_GEARMAN="yes"
+fi
+
+if [ -z "$TROVE_ID" -o \
-z "$TROVE_HOST" -o \
- -z "$TROVE_ID" ]; then
+ -z "$ARTIFACT_CACHE_SERVER" -o \
+ -z "$GERRIT_USER" -o \
+ -z "$GERRIT_HOSTNAME" -o \
+ -z "$GERRIT_HTTP_PORT" -o \
+ -z "$GERRIT_GIT_PORT" -o \
+ -z "$GERRIT_SSH_KEY" -o \
+ -z "$GERRIT_SSH_KEY_PATH" -o \
+ -z "$GEARMAN_HOST" -o \
+ -z "$GEARMAN_PORT" -o \
+ -z "$START_GEARMAN" -o \
+ -z "$MASON_CLUSTER_MORPHOLOGY" -o \
+ -z "$MASON_ARCHITECTURE" -o \
+ -z "$MASON_TEST_HOSTS" -o \
+ -z "$MASON_DISTBUILD_CONTROLLERS" -o \
+ -z "$MASON_TEST_INFRASTRUCTURE_TYPE" -o \
+ -z "$MASON_UPSTREAM_TROVE" ]; then
echo Some options required for Mason were defined, but not all.
exit 1
fi
##########################################################################
+# Copy SSH keys into the system
+##########################################################################
+
+ssh_dir=$(dirname "$ROOT$GERRIT_SSH_KEY_PATH")
+mkdir -p "$ssh_dir"
+cp -a "$GERRIT_SSH_KEY" "$ROOT$GERRIT_SSH_KEY_PATH"
+cp -a "$GERRIT_SSH_KEY".pub "$ROOT$GERRIT_SSH_KEY_PATH".pub
+cp -a mason/ssh-config "$ssh_dir"/config
+
+##########################################################################
# Generate config variable shell snippet
##########################################################################
@@ -114,40 +130,40 @@ python <<'EOF' >"$MASON_DATA/mason.conf"
import os, sys, yaml
mason_configuration={
- 'ARTIFACT_CACHE_SERVER': os.environ['ARTIFACT_CACHE_SERVER'],
- 'MASON_CLUSTER_MORPHOLOGY': os.environ['MASON_CLUSTER_MORPHOLOGY'],
- 'MASON_DEFINITIONS_REF': os.environ['MASON_DEFINITIONS_REF'],
- 'MASON_DISTBUILD_ARCH': os.environ['MASON_DISTBUILD_ARCH'],
- 'MASON_TEST_HOST': os.environ['MASON_TEST_HOST'],
- 'OPENSTACK_NETWORK_ID': os.environ['OPENSTACK_NETWORK_ID'],
- 'TEST_INFRASTRUCTURE_TYPE': os.environ['TEST_INFRASTRUCTURE_TYPE'],
'TROVE_ID': os.environ['TROVE_ID'],
'TROVE_HOST': os.environ['TROVE_HOST'],
- 'CONTROLLERHOST': os.environ['CONTROLLERHOST'],
+ 'ARTIFACT_CACHE_SERVER': os.environ['ARTIFACT_CACHE_SERVER'],
+ 'GERRIT_USER': os.environ['GERRIT_USER'],
+ 'GERRIT_HOSTNAME': os.environ['GERRIT_HOSTNAME'],
+ 'GERRIT_HTTP_PORT': os.environ['GERRIT_HTTP_PORT'],
+ 'GERRIT_GIT_PORT': os.environ['GERRIT_GIT_PORT'],
+ 'GERRIT_SSH_KEY_PATH': os.environ['GERRIT_SSH_KEY_PATH'],
+ 'GEARMAN_HOST': os.environ['GEARMAN_HOST'],
+ 'GEARMAN_PORT': os.environ['GEARMAN_PORT'],
+ 'START_GEARMAN': os.environ['START_GEARMAN'],
+ 'MASON_CLUSTER_MORPHOLOGY': os.environ['MASON_CLUSTER_MORPHOLOGY'],
+ 'MASON_ARCHITECTURE': os.environ['MASON_ARCHITECTURE'],
+ 'MASON_TEST_HOSTS': os.environ['MASON_TEST_HOSTS'],
+ 'MASON_DISTBUILD_CONTROLLERS': os.environ['MASON_DISTBUILD_CONTROLLERS'],
+ 'MASON_TEST_INFRASTRUCTURE_TYPE': os.environ['MASON_TEST_INFRASTRUCTURE_TYPE'],
+ 'MASON_UPSTREAM_TROVE': os.environ['MASON_UPSTREAM_TROVE'],
}
yaml.dump(mason_configuration, sys.stdout, default_flow_style=False)
EOF
-if [ "$TEST_INFRASTRUCTURE_TYPE" = "openstack" ]; then
+if [ "$MASON_TEST_INFRASTRUCTURE_TYPE" = "openstack" ]; then
python <<'EOF' >>"$MASON_DATA/mason.conf"
import os, sys, yaml
openstack_credentials={
- 'OS_USERNAME': os.environ['OPENSTACK_USER'],
- 'OS_TENANT_NAME': os.environ['OPENSTACK_TENANT'],
- 'OS_TENANT_ID': os.environ['OPENSTACK_TENANT_ID'],
- 'OS_AUTH_URL': os.environ['OPENSTACK_AUTH_URL'],
- 'OS_PASSWORD': os.environ['OPENSTACK_PASSWORD'],
+ 'OPENSTACK_NETWORK_ID': os.environ['MASON_OPENSTACK_NETWORK_ID'],
+ 'OS_USERNAME': os.environ['MASON_OPENSTACK_USER'],
+ 'OS_TENANT_NAME': os.environ['MASON_OPENSTACK_TENANT'],
+ 'OS_AUTH_URL': os.environ['MASON_OPENSTACK_AUTH_URL'],
+ 'OS_PASSWORD': os.environ['MASON_OPENSTACK_PASSWORD'],
}
yaml.dump(openstack_credentials, sys.stdout, default_flow_style=False)
EOF
fi
-
-##########################################################################
-# Enable services
-##########################################################################
-
-ln -s ../mason.timer "$ROOT"/etc/systemd/system/multi-user.target.wants/mason.timer
-ln -s ../httpd.service "$ROOT"/etc/systemd/system/multi-user.target.wants/httpd.service