Support multiple different types of base OSes
Ideally we want to support Fedora and CentOS as a base operating system type. The build scripts will rewrite the Dockerfile build scripts to pull in the correct base OS. Change-Id: Ia41e21811caa3a1989c79cc42ce6615eec0c977b Partially-implements: blueprint multi-baseos
This commit is contained in:
parent
de13d7eb50
commit
82f950f5a5
79
docker/base/kolla-common.sh
Normal file
79
docker/base/kolla-common.sh
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
. /opt/kolla/service_hosts.sh
|
||||||
|
|
||||||
|
# Set some generally useful defaults.
|
||||||
|
MY_IP=$(ip route get $(ip route | awk '$1 == "default" {print $3}') |
|
||||||
|
awk '$4 == "src" {print $5}')
|
||||||
|
|
||||||
|
: ${PUBLIC_IP:=${MY_IP}}
|
||||||
|
|
||||||
|
# Iterate over a list of variable names and exit if one is
|
||||||
|
# undefined.
|
||||||
|
check_required_vars() {
|
||||||
|
for var in $*; do
|
||||||
|
if [ -z "${!var}" ]; then
|
||||||
|
echo "ERROR: missing $var" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Exit unless we receive a successful response from corresponding OpenStack
|
||||||
|
# service.
|
||||||
|
check_for_os_service() {
|
||||||
|
local name=$1
|
||||||
|
local host_var=$2
|
||||||
|
local port=$3
|
||||||
|
local api_version=$4
|
||||||
|
|
||||||
|
check_required_vars $host_var
|
||||||
|
|
||||||
|
local endpoint="http://${!host_var}:$port/$api_version"
|
||||||
|
|
||||||
|
curl -sf -o /dev/null "$endpoint" || {
|
||||||
|
echo "ERROR: $name is not available @ $endpoint" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "$name is active @ $endpoint"
|
||||||
|
}
|
||||||
|
|
||||||
|
check_for_glance() {
|
||||||
|
check_for_os_service glance GLANCE_API_SERVICE_HOST 9292
|
||||||
|
}
|
||||||
|
|
||||||
|
check_for_keystone() {
|
||||||
|
check_for_os_service keystone KEYSTONE_PUBLIC_SERVICE_HOST 5000 v2.0
|
||||||
|
}
|
||||||
|
|
||||||
|
check_for_nova() {
|
||||||
|
check_for_os_service nova NOVA_API_SERVICE_HOST 8774
|
||||||
|
}
|
||||||
|
|
||||||
|
check_for_neutron() {
|
||||||
|
check_for_os_service neutron NEUTRON_SERVER_SERVICE_HOST 9696
|
||||||
|
}
|
||||||
|
|
||||||
|
# Exit unless we receive a successful response from the database server.
|
||||||
|
# Optionally takes a database name to check for. Defaults to 'mysql'.
|
||||||
|
check_for_db() {
|
||||||
|
local database=${1:-mysql}
|
||||||
|
check_required_vars MARIADB_SERVICE_HOST DB_ROOT_PASSWORD
|
||||||
|
|
||||||
|
mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" \
|
||||||
|
-e "select 1" $database > /dev/null 2>&1 || {
|
||||||
|
echo "ERROR: database $database is not available @ $MARIADB_SERVICE_HOST" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "database is active @ ${MARIADB_SERVICE_HOST}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Dump shell environment to a file
|
||||||
|
dump_vars() {
|
||||||
|
set -o posix
|
||||||
|
set > /pid_$$_vars.sh
|
||||||
|
set +o posix
|
||||||
|
}
|
||||||
|
|
45
docker/base/service_hosts.sh
Executable file
45
docker/base/service_hosts.sh
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Kubernetes currently creates FOO_SERVICE_HOST and FOO_SERVICE_PORT env vars
|
||||||
|
# as part of starting the containers. However this is not done when starting
|
||||||
|
# them with plain docker. Defaulting variables to their common version if
|
||||||
|
# they're not already set allows the usage of --link in plain 'docker run' to
|
||||||
|
# wire together containers.
|
||||||
|
|
||||||
|
: ${BARBICAN_ADMIN_SERVICE_HOST:=$BARBICAN_ADMIN_PORT_9312_TCP_ADDR}
|
||||||
|
: ${BARBICAN_ADMIN_SERVICE_PORT:=9312}
|
||||||
|
: ${BARBICAN_PUBLIC_SERVICE_HOST:=$BARBICAN_PUBLIC_PORT_9311_TCP_ADDR}
|
||||||
|
: ${BARBICAN_PUBLIC_SERVICE_PORT:=9311}
|
||||||
|
: ${CEILOMETER_API_SERVICE_HOST:=$CEILOMETER_API_PORT_8777_TCP_ADDR}
|
||||||
|
: ${CEILOMETER_API_SERVICE_PORT:=8777}
|
||||||
|
: ${GLANCE_API_SERVICE_HOST:=$GLANCE_API_PORT_9292_TCP_ADDR}
|
||||||
|
: ${GLANCE_API_SERVICE_PORT:=9292}
|
||||||
|
: ${GLANCE_REGISTRY_SERVICE_HOST:=$GLANCE_REGISTRY_PORT_9191_TCP_ADDR}
|
||||||
|
: ${GLANCE_REGISTRY_SERVICE_PORT:=9191}
|
||||||
|
: ${HEAT_API_SERVICE_HOST:=$HEAT_API_PORT_8004_TCP_ADDR}
|
||||||
|
: ${HEAT_API_SERVICE_PORT:=8004}
|
||||||
|
: ${HORIZON_SERVICE_HOST:=$HORIZON_PORT_80_TCP_ADDR}
|
||||||
|
: ${HORIZON_SERVICE_PORT:=80}
|
||||||
|
: ${KEYSTONE_ADMIN_SERVICE_HOST:=$KEYSTONE_ADMIN_PORT_35357_TCP_ADDR}
|
||||||
|
: ${KEYSTONE_ADMIN_SERVICE_PORT:=35357}
|
||||||
|
: ${KEYSTONE_PUBLIC_SERVICE_HOST:=$KEYSTONE_PUBLIC_PORT_5000_TCP_ADDR}
|
||||||
|
: ${KEYSTONE_PUBLIC_SERVICE_PORT:=5000}
|
||||||
|
: ${MARIADB_SERVICE_HOST:=$MARIADB_PORT_3306_TCP_ADDR}
|
||||||
|
: ${MARIADB_SERVICE_PORT:=3306}
|
||||||
|
: ${MONGODB_SERVICE_HOST:=$MONGODB_PORT_27017_TCP_ADDR}
|
||||||
|
: ${MONGODB_SERVICE_PORT:=27017}
|
||||||
|
: ${NEUTRON_SERVER_SERVICE_HOST:=$NEUTRON_SERVER_PORT_9696_TCP_ADDR}
|
||||||
|
: ${NEUTRON_SERVER_SERVICE_PORT:=9696}
|
||||||
|
: ${NOVA_API_SERVICE_HOST:=$NOVA_API_PORT_8774_TCP_ADDR}
|
||||||
|
: ${NOVA_API_SERVICE_PORT:=8774}
|
||||||
|
: ${NOVA_EC2_API_SERVICE_HOST:=$NOVA_EC2_API_PORT_8773_TCP_ADDR}
|
||||||
|
: ${NOVA_EC2_API_SERVICE_PORT:=8773}
|
||||||
|
: ${NOVA_LIBVIRT_SERVICE_HOST:=$NOVA_LIBVIRT_PORT_16509_TCP_ADDR}
|
||||||
|
: ${NOVA_LIBVIRT_SERVICE_PORT:=16509}
|
||||||
|
: ${NOVA_METADATA_API_SERVICE_HOST:=$NOVA_METADATA_API_PORT_8775_TCP_ADDR}
|
||||||
|
: ${NOVA_METADATA_API_SERVICE_PORT:=8775}
|
||||||
|
: ${RABBITMQ_SERVICE_HOST:=$RABBITMQ_PORT_5672_TCP_ADDR}
|
||||||
|
: ${RABBITMQ_SERVICE_PORT:=5672}
|
||||||
|
: ${ZAQAR_SERVER_SERVICE_HOST:=$ZAQAR_SERVER_PORT_8888_TCP_ADDR}
|
||||||
|
: ${ZAQAR_SERVER_SERVICE_PORT:=8888}
|
||||||
|
|
@ -1,79 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
. /opt/kolla/service_hosts.sh
|
|
||||||
|
|
||||||
# Set some generally useful defaults.
|
|
||||||
MY_IP=$(ip route get $(ip route | awk '$1 == "default" {print $3}') |
|
|
||||||
awk '$4 == "src" {print $5}')
|
|
||||||
|
|
||||||
: ${PUBLIC_IP:=${MY_IP}}
|
|
||||||
|
|
||||||
# Iterate over a list of variable names and exit if one is
|
|
||||||
# undefined.
|
|
||||||
check_required_vars() {
|
|
||||||
for var in $*; do
|
|
||||||
if [ -z "${!var}" ]; then
|
|
||||||
echo "ERROR: missing $var" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Exit unless we receive a successful response from corresponding OpenStack
|
|
||||||
# service.
|
|
||||||
check_for_os_service() {
|
|
||||||
local name=$1
|
|
||||||
local host_var=$2
|
|
||||||
local port=$3
|
|
||||||
local api_version=$4
|
|
||||||
|
|
||||||
check_required_vars $host_var
|
|
||||||
|
|
||||||
local endpoint="http://${!host_var}:$port/$api_version"
|
|
||||||
|
|
||||||
curl -sf -o /dev/null "$endpoint" || {
|
|
||||||
echo "ERROR: $name is not available @ $endpoint" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "$name is active @ $endpoint"
|
|
||||||
}
|
|
||||||
|
|
||||||
check_for_glance() {
|
|
||||||
check_for_os_service glance GLANCE_API_SERVICE_HOST 9292
|
|
||||||
}
|
|
||||||
|
|
||||||
check_for_keystone() {
|
|
||||||
check_for_os_service keystone KEYSTONE_PUBLIC_SERVICE_HOST 5000 v2.0
|
|
||||||
}
|
|
||||||
|
|
||||||
check_for_nova() {
|
|
||||||
check_for_os_service nova NOVA_API_SERVICE_HOST 8774
|
|
||||||
}
|
|
||||||
|
|
||||||
check_for_neutron() {
|
|
||||||
check_for_os_service neutron NEUTRON_SERVER_SERVICE_HOST 9696
|
|
||||||
}
|
|
||||||
|
|
||||||
# Exit unless we receive a successful response from the database server.
|
|
||||||
# Optionally takes a database name to check for. Defaults to 'mysql'.
|
|
||||||
check_for_db() {
|
|
||||||
local database=${1:-mysql}
|
|
||||||
check_required_vars MARIADB_SERVICE_HOST DB_ROOT_PASSWORD
|
|
||||||
|
|
||||||
mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" \
|
|
||||||
-e "select 1" $database > /dev/null 2>&1 || {
|
|
||||||
echo "ERROR: database $database is not available @ $MARIADB_SERVICE_HOST" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "database is active @ ${MARIADB_SERVICE_HOST}"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Dump shell environment to a file
|
|
||||||
dump_vars() {
|
|
||||||
set -o posix
|
|
||||||
set > /pid_$$_vars.sh
|
|
||||||
set +o posix
|
|
||||||
}
|
|
||||||
|
|
1
docker/fedora-rdo-base/kolla-common.sh
Symbolic link
1
docker/fedora-rdo-base/kolla-common.sh
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../base/kolla-common.sh
|
@ -1,45 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Kubernetes currently creates FOO_SERVICE_HOST and FOO_SERVICE_PORT env vars
|
|
||||||
# as part of starting the containers. However this is not done when starting
|
|
||||||
# them with plain docker. Defaulting variables to their common version if
|
|
||||||
# they're not already set allows the usage of --link in plain 'docker run' to
|
|
||||||
# wire together containers.
|
|
||||||
|
|
||||||
: ${BARBICAN_ADMIN_SERVICE_HOST:=$BARBICAN_ADMIN_PORT_9312_TCP_ADDR}
|
|
||||||
: ${BARBICAN_ADMIN_SERVICE_PORT:=9312}
|
|
||||||
: ${BARBICAN_PUBLIC_SERVICE_HOST:=$BARBICAN_PUBLIC_PORT_9311_TCP_ADDR}
|
|
||||||
: ${BARBICAN_PUBLIC_SERVICE_PORT:=9311}
|
|
||||||
: ${CEILOMETER_API_SERVICE_HOST:=$CEILOMETER_API_PORT_8777_TCP_ADDR}
|
|
||||||
: ${CEILOMETER_API_SERVICE_PORT:=8777}
|
|
||||||
: ${GLANCE_API_SERVICE_HOST:=$GLANCE_API_PORT_9292_TCP_ADDR}
|
|
||||||
: ${GLANCE_API_SERVICE_PORT:=9292}
|
|
||||||
: ${GLANCE_REGISTRY_SERVICE_HOST:=$GLANCE_REGISTRY_PORT_9191_TCP_ADDR}
|
|
||||||
: ${GLANCE_REGISTRY_SERVICE_PORT:=9191}
|
|
||||||
: ${HEAT_API_SERVICE_HOST:=$HEAT_API_PORT_8004_TCP_ADDR}
|
|
||||||
: ${HEAT_API_SERVICE_PORT:=8004}
|
|
||||||
: ${HORIZON_SERVICE_HOST:=$HORIZON_PORT_80_TCP_ADDR}
|
|
||||||
: ${HORIZON_SERVICE_PORT:=80}
|
|
||||||
: ${KEYSTONE_ADMIN_SERVICE_HOST:=$KEYSTONE_ADMIN_PORT_35357_TCP_ADDR}
|
|
||||||
: ${KEYSTONE_ADMIN_SERVICE_PORT:=35357}
|
|
||||||
: ${KEYSTONE_PUBLIC_SERVICE_HOST:=$KEYSTONE_PUBLIC_PORT_5000_TCP_ADDR}
|
|
||||||
: ${KEYSTONE_PUBLIC_SERVICE_PORT:=5000}
|
|
||||||
: ${MARIADB_SERVICE_HOST:=$MARIADB_PORT_3306_TCP_ADDR}
|
|
||||||
: ${MARIADB_SERVICE_PORT:=3306}
|
|
||||||
: ${MONGODB_SERVICE_HOST:=$MONGODB_PORT_27017_TCP_ADDR}
|
|
||||||
: ${MONGODB_SERVICE_PORT:=27017}
|
|
||||||
: ${NEUTRON_SERVER_SERVICE_HOST:=$NEUTRON_SERVER_PORT_9696_TCP_ADDR}
|
|
||||||
: ${NEUTRON_SERVER_SERVICE_PORT:=9696}
|
|
||||||
: ${NOVA_API_SERVICE_HOST:=$NOVA_API_PORT_8774_TCP_ADDR}
|
|
||||||
: ${NOVA_API_SERVICE_PORT:=8774}
|
|
||||||
: ${NOVA_EC2_API_SERVICE_HOST:=$NOVA_EC2_API_PORT_8773_TCP_ADDR}
|
|
||||||
: ${NOVA_EC2_API_SERVICE_PORT:=8773}
|
|
||||||
: ${NOVA_LIBVIRT_SERVICE_HOST:=$NOVA_LIBVIRT_PORT_16509_TCP_ADDR}
|
|
||||||
: ${NOVA_LIBVIRT_SERVICE_PORT:=16509}
|
|
||||||
: ${NOVA_METADATA_API_SERVICE_HOST:=$NOVA_METADATA_API_PORT_8775_TCP_ADDR}
|
|
||||||
: ${NOVA_METADATA_API_SERVICE_PORT:=8775}
|
|
||||||
: ${RABBITMQ_SERVICE_HOST:=$RABBITMQ_PORT_5672_TCP_ADDR}
|
|
||||||
: ${RABBITMQ_SERVICE_PORT:=5672}
|
|
||||||
: ${ZAQAR_SERVER_SERVICE_HOST:=$ZAQAR_SERVER_PORT_8888_TCP_ADDR}
|
|
||||||
: ${ZAQAR_SERVER_SERVICE_PORT:=8888}
|
|
||||||
|
|
1
docker/fedora-rdo-base/service_hosts.sh
Symbolic link
1
docker/fedora-rdo-base/service_hosts.sh
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../base/service_hosts.sh
|
Loading…
Reference in New Issue
Block a user