aboutsummaryrefslogtreecommitdiffstats
path: root/assets/wrapper
diff options
context:
space:
mode:
authorPaul McGoldrick <paul.mcgoldrick@att.com>2017-09-28 10:03:44 -0700
committerPaul McGoldrick <paul.mcgoldrick@att.com>2017-09-28 10:15:18 -0700
commit08c301ebf380dfe292cca86355c6110bd999940a (patch)
tree11b8149144ee54fab40ac6e5b2e3274b24d268ee /assets/wrapper
parent3e82c2dd1bf4fed5874024bc7c309abc7af75fb2 (diff)
initial seed code commit VVP-6
Change-Id: I62f1f86c7a187585e98ccf52b68f57c8d9073175 Signed-off-by: Paul McGoldrick <paul.mcgoldrick@att.com>
Diffstat (limited to 'assets/wrapper')
-rwxr-xr-xassets/wrapper202
1 files changed, 202 insertions, 0 deletions
diff --git a/assets/wrapper b/assets/wrapper
new file mode 100755
index 0000000..5377301
--- /dev/null
+++ b/assets/wrapper
@@ -0,0 +1,202 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+# org.onap.vvp/gitlab
+# ===================================================================
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the “License”);
+# you may not use this software 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.
+#
+#
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# 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.
+#
+# ============LICENSE_END============================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+set -e
+
+chmod 755 /
+echo "setting up /etc/hosts"
+echo "127.0.0.1 localhost localhost.localdomain" >>/etc/hosts
+chmod 644 /etc/hosts
+
+echo "setting up resolv.conf"
+echo "nameserver 8.8.8.8" >> /etc/resolv.conf
+chmod 644 /etc/resolv.conf
+
+function sigterm_handler() {
+ echo "SIGTERM signal received, try to gracefully shutdown all services..."
+ gitlab-ctl stop
+}
+
+trap "sigterm_handler; exit" TERM
+
+source /RELEASE
+echo "Thank you for using GitLab Docker Image!"
+echo "Current version: $RELEASE_PACKAGE=$RELEASE_VERSION"
+echo ""
+if [[ "$PACKAGECLOUD_REPO" == "unstable" ]]; then
+ echo "You are using UNSTABLE version of $RELEASE_PACKAGE!"
+ echo ""
+fi
+echo "Configure GitLab for your system by editing /etc/gitlab/gitlab.rb file"
+echo "And restart this container to reload settings."
+echo "To do it use docker exec:"
+echo
+echo " docker exec -it gitlab vim /etc/gitlab/gitlab.rb"
+echo " docker restart gitlab"
+echo
+echo "For a comprehensive list of configuration options please see the Omnibus GitLab readme"
+echo "https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md"
+echo
+echo "If this container fails to start due to permission problems try to fix it by executing:"
+echo
+echo " docker exec -it gitlab update-permissions"
+echo " docker restart gitlab"
+echo
+
+# Copy gitlab.rb for the first time
+if [[ ! -e /etc/gitlab/gitlab.rb ]]; then
+ echo "Installing gitlab.rb config..."
+ cp /opt/gitlab/etc/gitlab.rb.template /etc/gitlab/gitlab.rb
+ chmod 0600 /etc/gitlab/gitlab.rb
+fi
+
+# Generate ssh host key for the first time
+if [[ ! -f /etc/gitlab/ssh_host_rsa_key ]]; then
+ echo "Generating ssh_host_rsa_key..."
+ ssh-keygen -f /etc/gitlab/ssh_host_rsa_key -N '' -t rsa
+ chmod 0600 /etc/gitlab/ssh_host_rsa_key
+fi
+if [[ ! -f /etc/gitlab/ssh_host_ecdsa_key ]]; then
+ echo "Generating ssh_host_ecdsa_key..."
+ ssh-keygen -f /etc/gitlab/ssh_host_ecdsa_key -N '' -t ecdsa
+ chmod 0600 /etc/gitlab/ssh_host_ecdsa_key
+fi
+if [[ ! -f /etc/gitlab/ssh_host_ed25519_key ]]; then
+ echo "Generating ssh_host_ed25519_key..."
+ ssh-keygen -f /etc/gitlab/ssh_host_ed25519_key -N '' -t ed25519
+ chmod 0600 /etc/gitlab/ssh_host_ed25519_key
+fi
+
+# Remove all services, the reconfigure will create them
+echo "Preparing services..."
+rm -f /opt/gitlab/service/*
+ln -s /opt/gitlab/sv/sshd /opt/gitlab/service
+mkdir -p /var/log/gitlab/sshd
+
+# Start service manager
+echo "Starting services..."
+GITLAB_OMNIBUS_CONFIG=/opt/gitlab/embedded/bin/runsvdir-start &
+/opt/gitlab/embedded/bin/runsvdir-start &
+
+
+# Configure gitlab package
+# WARNING:
+# the preinst script has the database backup
+# It will not be executed, because all services are not yet started
+# They will be started when `reconfigure` is executed
+echo "Configuring GitLab package..."
+/var/lib/dpkg/info/${RELEASE_PACKAGE}.preinst upgrade
+
+echo "Configuring GitLab..."
+gitlab-ctl reconfigure
+
+echo "Waiting up to three minutes for the postgres socket to appear..."
+for f in `seq 12`; do
+ ls -l "/var/opt/gitlab/postgresql/.s.PGSQL.5432" && break
+ sleep 15
+done
+
+[ -e "/var/opt/gitlab/postgresql/.s.PGSQL.5432" ] || {
+ echo "ERROR: Postgres socket file still unavailable. Aborting."
+ mount
+ exit 5
+}
+
+echo "Attempting to connect to the postgres database..."
+su gitlab-psql -c "`which psql` -h /var/opt/gitlab/postgresql/ gitlabhq_production -c \"select 'database up';\"" || {
+ echo "ERROR: Could not run simple command in postgresql database. Aborting."
+ mount
+ exit 6
+}
+
+# TODO psql is installed. use it to test connection to database.
+
+if [ "$ADMIN_PASSWORD" ]; then
+ echo "Setting admin password from environment..."
+ # set the admin password
+ gitlab-rails runner '
+ u = User.where(id: 1).first
+ u.password = ENV["ADMIN_PASSWORD"]
+ u.password_confirmation = ENV["ADMIN_PASSWORD"]
+ u.password_expires_at = nil
+ u.reset_password_token = nil
+ u.reset_password_sent_at = nil
+ u.password_automatically_set = false
+ u.authentication_token = ENV["AUTHENTICATION_TOKEN"]
+ u.save!
+ '
+ echo "[DBG] $0: Passed the gitlab-rails runner"
+else
+ echo "$0: Warning: ADMIN_PASSWORD was not set in the environment." >&2
+fi
+
+echo "Setting initial jenkins deploy key into admin user ssh keys..."
+python -c '
+import requests
+import os
+
+def auth(request):
+ request.headers["PRIVATE-TOKEN"] = os.environ["AUTHENTICATION_TOKEN"]
+ return request
+
+# Delete any old deploy keys
+for old_key in requests.get("http://localhost/api/v3/user/keys",
+ auth=auth).json():
+
+ if old_key["title"] != "Jenkins deploy key":
+ continue
+
+ requests.delete("http://localhost/api/v3/user/keys/{id}".format(**old_key),
+ auth=auth)
+
+# Set the new deploy key
+requests.post("http://localhost/api/v3/user/keys",
+ params={
+ "title": "Jenkins deploy key",
+ "key": open("/tmp/deploykey/deploykey.pub").read(),
+ },
+ auth=auth)
+'
+
+# Tail all logs
+echo "Tailing logs..."
+gitlab-ctl tail &
+
+# Wait for SIGTERM
+wait