diff options
Diffstat (limited to 'mason.configure')
-rw-r--r-- | mason.configure | 139 |
1 files changed, 88 insertions, 51 deletions
diff --git a/mason.configure b/mason.configure index 1198ebd0..78212d2d 100644 --- a/mason.configure +++ b/mason.configure @@ -19,16 +19,34 @@ # a Mason instance at deployment time. It uses the following variables # from the environment: # +# * TROVE_ID +# * TROVE_HOST # * ARTIFACT_CACHE_SERVER +# +# * GERRIT_USER +# * GERRIT_HOSTNAME +# * GERRIT_HTTP_PORT +# * GERRIT_GIT_PORT +# * GERRIT_SSH_KEY +# * GERRIT_SSH_KEY_PATH +# +# * GEARMAN_HOST +# * GEARMAN_PORT +# * START_GEARMAN +# # * MASON_CLUSTER_MORPHOLOGY -# * MASON_DEFINITIONS_REF -# * MASON_DISTBUILD_ARCH -# * MASON_TEST_HOST +# * MASON_ARCHITECTURE +# * MASON_TEST_HOSTS +# * MASON_DISTBUILD_CONTROLLERS +# * MASON_TEST_INFRASTRUCTURE_TYPE +# * MASON_UPSTREAM_TROVE +# # * OPENSTACK_NETWORK_ID -# * TEST_INFRASTRUCTURE_TYPE -# * TROVE_HOST -# * TROVE_ID -# * CONTROLLERHOST +# * OPENSTACK_USER +# * OPENSTACK_PASSWORD +# * OPENSTACK_TENANT_ID +# * OPENSTACK_TENANT_NAME +# * OPENSTACK_AUTH_URL set -e @@ -39,27 +57,26 @@ 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 zuul/os-init-script "$ROOT"/usr/lib/mason/os-init-script -cp mason/mason.timer "$ROOT"/etc/systemd/system/mason.timer +cp zuul/mason-setup.service "$ROOT"/etc/systemd/system/mason-setup.service +cp zuul/zuul-server.service "$ROOT"/etc/systemd/system/zuul-server.service +cp zuul/zuul-merger.service "$ROOT"/etc/systemd/system/zuul-merger.service +cp zuul/turbo-hipster.service "$ROOT"/etc/systemd/system/turbo-hipster.service +cp zuul/lighttpd.service "$ROOT"/etc/systemd/system/lighttpd.service -cp mason/mason.service "$ROOT"/etc/systemd/system/mason.service + +# HACK AROUND BAD SYSTEMD +cp zuul/10-dhcp.network "$ROOT"/etc/systemd/network/10-dhcp.network + ########################################################################## -# 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 @@ -68,9 +85,8 @@ mkdir -p "$ROOT"/var/mason mkdir -p "$ROOT/usr/share/mason-setup" 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 +cp zuul/share/* "$ROOT/usr/share/mason-setup" +cp -r zuul/ansible "$ROOT/usr/lib/mason-setup/" ln -s ../mason-setup.service "$ROOT"/etc/systemd/system/multi-user.target.wants/mason-setup.service @@ -84,26 +100,46 @@ 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 "$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 +########################################################################## + +mkdir -p $(dirname "$ROOT$GERRIT_SSH_KEY_PATH") +cp "$GERRIT_SSH_KEY" "$ROOT$GERRIT_SSH_KEY_PATH" +cp "$GERRIT_SSH_KEY".pub "$ROOT$GERRIT_SSH_KEY_PATH".pub + +########################################################################## # Generate config variable shell snippet ########################################################################## @@ -114,26 +150,34 @@ 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={ + 'OPENSTACK_NETWORK_ID': os.environ['OPENSTACK_NETWORK_ID'], 'OS_USERNAME': os.environ['OPENSTACK_USER'], 'OS_TENANT_NAME': os.environ['OPENSTACK_TENANT'], 'OS_TENANT_ID': os.environ['OPENSTACK_TENANT_ID'], @@ -144,10 +188,3 @@ openstack_credentials={ 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 |