Glance containers need to be changed so they work without kubernetes

This patch overlaps a little bit with https://review.openstack.org/#/c/162358/.
There were some additional glance config that needs to be added to run without
kubernetes.

Co-authored by: Charles Crouch (charcrou@cisco.com)
Change-Id: I1aab2f6e4a80aaf1e6c4b7fe330bcf9a7740fdc6
This commit is contained in:
Ryan Hallisey 2015-03-10 17:04:38 -04:00
parent 797960bf26
commit a2dae48b87
6 changed files with 119 additions and 6 deletions

View File

@ -20,9 +20,9 @@
: ${HEAT_API_SERVICE_PORT:=8004} : ${HEAT_API_SERVICE_PORT:=8004}
: ${HORIZON_SERVICE_HOST:=$HORIZON_PORT_80_TCP_ADDR} : ${HORIZON_SERVICE_HOST:=$HORIZON_PORT_80_TCP_ADDR}
: ${HORIZON_SERVICE_PORT:=80} : ${HORIZON_SERVICE_PORT:=80}
: ${KEYSTONE_ADMIN_SERVICE_HOST:=$KEYSTONE_ADMIN_PORT_35357_TCP_ADDR} : ${KEYSTONE_ADMIN_SERVICE_HOST:=$KEYSTONE_PORT_35357_TCP_ADDR}
: ${KEYSTONE_ADMIN_SERVICE_PORT:=35357} : ${KEYSTONE_ADMIN_SERVICE_PORT:=35357}
: ${KEYSTONE_PUBLIC_SERVICE_HOST:=$KEYSTONE_PUBLIC_PORT_5000_TCP_ADDR} : ${KEYSTONE_PUBLIC_SERVICE_HOST:=$KEYSTONE_PORT_5000_TCP_ADDR}
: ${KEYSTONE_PUBLIC_SERVICE_PORT:=5000} : ${KEYSTONE_PUBLIC_SERVICE_PORT:=5000}
: ${MARIADB_SERVICE_HOST:=$MARIADB_PORT_3306_TCP_ADDR} : ${MARIADB_SERVICE_HOST:=$MARIADB_PORT_3306_TCP_ADDR}
: ${MARIADB_SERVICE_PORT:=3306} : ${MARIADB_SERVICE_PORT:=3306}

85
docker/fedora-rdo-base/wait_for Executable file
View File

@ -0,0 +1,85 @@
#!/bin/bash
# Based on
# https://raw.githubusercontent.com/openstack/tripleo-incubator/6931c1fc7ed98ce36998c5b82750a880b0365445/scripts/wait_for
#
# Copyright 2013 Red Hat
# All Rights Reserved.
#
# 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.
set -e # exit on the first non-zero status
set -u # exit on unset variables
#set -x # setting this actually breaks the scripts function
SCRIPT_NAME=$(basename $0)
function show_options() {
echo "Usage: $SCRIPT_NAME LOOPS_NUMBER SLEEP_TIME ARGS"
echo
echo "ARGS are read and concatenated together into a single command."
echo "Execute the command in a loop until it succeeds or the number"
echo "of attempts exceeds LOOPS_NUMBER value. After each failure"
echo "pause for SLEEP_TIME seconds."
echo
echo "An optional FAIL_MATCH_OUTPUT variable may also be set to control "
echo "if the loop exits early if the commands stdout/stderr matches the "
echo "supplied regex string."
echo
echo "Examples:"
echo " wait_for 30 10 ping -c 1 192.0.2.2"
echo " wait_for 10 1 ls file_we_are_waiting_for"
echo " wait_for 10 3 date \| grep 8"
echo " FAIL_MATCH_OUTPUT=CREATE_FAILED wait_for 30 10 heat stack-show undercloud"
echo " SUCCESSFUL_MATCH_OUTPUT=CREATE_COMPLETE wait_for 30 10 heat stack-show undercloud"
exit 1
}
LOOPS=${1:-""}
SLEEPTIME=${2:-""}
FAIL_MATCH_OUTPUT=${FAIL_MATCH_OUTPUT:-""}
SUCCESSFUL_MATCH_OUTPUT=${SUCCESSFUL_MATCH_OUTPUT:-""}
shift 2 || true
COMMAND="$@"
if [ -z "$LOOPS" -o -z "$SLEEPTIME" -o -z "$COMMAND" ]; then
show_options
fi
i=0
while [ $i -lt $LOOPS ]; do
i=$((i + 1))
STATUS=0
OUTPUT=$(eval $COMMAND 2>&1) || STATUS=$?
if [[ -n "$SUCCESSFUL_MATCH_OUTPUT" ]] \
&& [[ $OUTPUT =~ $SUCCESSFUL_MATCH_OUTPUT ]]; then
exit 0
elif [[ -n "$FAIL_MATCH_OUTPUT" ]] \
&& [[ $OUTPUT =~ $FAIL_MATCH_OUTPUT ]]; then
echo "Command output matched '$FAIL_MATCH_OUTPUT'. Exiting..."
exit 1
elif [[ -z "$SUCCESSFUL_MATCH_OUTPUT" ]] && [[ $STATUS -eq 0 ]]; then
# The command successfully completed and we aren't testing against
# it's output so we have finished waiting.
exit 0
fi
sleep $SLEEPTIME
done
SECONDS=$((LOOPS * SLEEPTIME))
printf 'Timing out after %d seconds:\nCOMMAND=%s\nOUTPUT=%s\n' \
"$SECONDS" "$COMMAND" "$OUTPUT"
exit 1

View File

@ -4,11 +4,17 @@ set -e
. /opt/kolla/kolla-common.sh . /opt/kolla/kolla-common.sh
. /opt/kolla/config-glance.sh . /opt/kolla/config-glance.sh
: ${GLANCE_API_SERVICE_HOST:=$PUBLIC_IP}
check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
GLANCE_KEYSTONE_USER GLANCE_KEYSTONE_PASSWORD \ GLANCE_KEYSTONE_USER GLANCE_KEYSTONE_PASSWORD \
ADMIN_TENANT_NAME GLANCE_API_SERVICE_HOST \ ADMIN_TENANT_NAME GLANCE_API_SERVICE_HOST \
PUBLIC_IP PUBLIC_IP
/opt/kolla/wait_for 30 1 keystone \
--os-auth-url=http://${KEYSTONE_PUBLIC_SERVICE_HOST}:35357/v2.0 \
--os-username=admin --os-tenant-name=${ADMIN_TENANT_NAME} \
--os-password=${KEYSTONE_ADMIN_PASSWORD} endpoint-list
check_for_keystone check_for_keystone
export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
@ -26,4 +32,25 @@ crux endpoint-create --remove-all \
-P "http://${PUBLIC_IP}:9292" \ -P "http://${PUBLIC_IP}:9292" \
-A "http://${GLANCE_API_SERVICE_HOST}:9292" -A "http://${GLANCE_API_SERVICE_HOST}:9292"
# turn on notification sending by glance
crudini --set /etc/glance/glance-api.conf \
DEFAULT \
notification_driver \
"messaging"
crudini --set /etc/glance/glance-api.conf \
DEFAULT \
rabbit_host \
"${RABBITMQ_SERVICE_HOST}"
crudini --set /etc/glance/glance-api.conf \
DEFAULT \
registry_host \
"${GLANCE_REGISTRY_SERVICE_HOST}"
crudini --set /etc/glance/glance-api.conf \
DEFAULT \
debug \
"True"
exec /usr/bin/glance-api exec /usr/bin/glance-api

View File

@ -11,9 +11,7 @@ set -e
: ${KEYSTONE_AUTH_PROTOCOL:=http} : ${KEYSTONE_AUTH_PROTOCOL:=http}
: ${PUBLIC_IP:=$GLANCE_API_PORT_9292_TCP_ADDR} : ${PUBLIC_IP:=$GLANCE_API_PORT_9292_TCP_ADDR}
check_for_db check_required_vars GLANCE_DB_PASSWORD GLANCE_KEYSTONE_PASSWORD
check_required_vars GLANCE_DB_PASSWORD GLANCE_KEYSTONE_PASSWORD \
KEYSTONE_PUBLIC_SERVICE_HOST
dump_vars dump_vars
cat > /openrc <<EOF cat > /openrc <<EOF

View File

@ -1,6 +1,7 @@
FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%glance-base FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%glance-base
MAINTAINER Kolla Project (https://launchpad.net/kolla) MAINTAINER Kolla Project (https://launchpad.net/kolla)
EXPOSE 9191
ADD ./start.sh /start.sh ADD ./start.sh /start.sh
CMD ["/start.sh"] CMD ["/start.sh"]

View File

@ -6,6 +6,8 @@ set -e
. /opt/kolla/config-glance.sh . /opt/kolla/config-glance.sh
check_required_vars GLANCE_DB_NAME GLANCE_DB_USER GLANCE_DB_PASSWORD check_required_vars GLANCE_DB_NAME GLANCE_DB_USER GLANCE_DB_PASSWORD
# lets wait for the DB to be available
./opt/kolla/wait_for 25 1 mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" -e 'status;'
check_for_db check_for_db
mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF