aboutsummaryrefslogtreecommitdiff
path: root/docker/centos/binary
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-06-19 15:54:54 +0000
committerGerrit Code Review <review@openstack.org>2015-06-19 15:54:54 +0000
commit037b8c4d466869fb8e179edad6a6b7ef59397df2 (patch)
tree5cd946b2ffa89fac1ea0c1bd8c82f1e1a14e321e /docker/centos/binary
parentf3d47fe965d8a576a469b9521aa432cad97d588f (diff)
parent1420d63c7f9edc91fba5d2a50ae89a52e3f9b5fc (diff)
downloadkolla-037b8c4d466869fb8e179edad6a6b7ef59397df2.tar.gz
kolla-037b8c4d466869fb8e179edad6a6b7ef59397df2.zip
Merge "Add designate-sink service"
Diffstat (limited to 'docker/centos/binary')
-rwxr-xr-xdocker/centos/binary/designate/designate-base/config-designate.sh17
-rw-r--r--docker/centos/binary/designate/designate-sink/Dockerfile11
l---------docker/centos/binary/designate/designate-sink/build1
-rwxr-xr-xdocker/centos/binary/designate/designate-sink/start.sh64
4 files changed, 93 insertions, 0 deletions
diff --git a/docker/centos/binary/designate/designate-base/config-designate.sh b/docker/centos/binary/designate/designate-base/config-designate.sh
index 5a31401ee..6edfd1bd2 100755
--- a/docker/centos/binary/designate/designate-base/config-designate.sh
+++ b/docker/centos/binary/designate/designate-base/config-designate.sh
@@ -4,6 +4,23 @@ set -e
. /opt/kolla/kolla-common.sh
+get_or_create_domain() {
+ local DOMAIN_NAME=$1
+
+ DOMAIN_ID=$(designate domain-create --name $DOMAIN_NAME | awk '/id/ { print $4; }')
+ # Searching domain if not created
+ if [ -z $DOMAIN_ID ]; then
+ DOMAIN_ID=$(designate domain-list | awk "/$DOMAIN_NAME/ { print \$2; }")
+ fi
+ # Fail if domain still don't exist
+ if [ -z $DOMAIN_ID ]; then
+ echo "Creating domain failed" 1>&2
+ exit 1
+ fi
+
+ echo $DOMAIN_ID
+}
+
check_required_vars DESIGNATE_DB_PASSWORD DESIGNATE_KEYSTONE_PASSWORD \
KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST \
DESIGNATE_BIND9_RNDC_KEY DESIGNATE_BACKEND \
diff --git a/docker/centos/binary/designate/designate-sink/Dockerfile b/docker/centos/binary/designate/designate-sink/Dockerfile
new file mode 100644
index 000000000..5c7f58fb9
--- /dev/null
+++ b/docker/centos/binary/designate/designate-sink/Dockerfile
@@ -0,0 +1,11 @@
+FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%designate-base:%%KOLLA_TAG%%
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+RUN yum install -y \
+ openstack-designate-sink \
+ python-designateclient \
+ && yum clean all
+
+COPY start.sh /start.sh
+
+CMD ["/start.sh"]
diff --git a/docker/centos/binary/designate/designate-sink/build b/docker/centos/binary/designate/designate-sink/build
new file mode 120000
index 000000000..ec1913803
--- /dev/null
+++ b/docker/centos/binary/designate/designate-sink/build
@@ -0,0 +1 @@
+../../../../../tools/build-docker-image \ No newline at end of file
diff --git a/docker/centos/binary/designate/designate-sink/start.sh b/docker/centos/binary/designate/designate-sink/start.sh
new file mode 100755
index 000000000..a6a3a4bac
--- /dev/null
+++ b/docker/centos/binary/designate/designate-sink/start.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+set -e
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-designate.sh
+
+CONF=/etc/designate/designate.conf
+
+configure_nova_handler() {
+ local DOMAIN_ID=$1
+
+ crudini --set $CONF handler:nova_fixed domain_id "$DOMAIN_ID"
+ crudini --set $CONF handler:nova_fixed notification_topics "notifications"
+ crudini --set $CONF handler:nova_fixed control_exchange "nova"
+ # Configuring multiple record formats
+ for FORMAT in $DESIGNATE_SINK_NOVA_FORMATS; do
+ crudini --set $CONF handler:nova_fixed format "$FORMAT"
+ done
+}
+
+configure_neutron_handler() {
+ local DOMAIN_ID=$1
+
+ crudini --set $CONF handler:neutron_floatingip domain_id "$DOMAIN_ID"
+ crudini --set $CONF handler:neutron_floatingip notification_topics "notifications"
+ crudini --set $CONF handler:neutron_floatingip control_exchange "neutron"
+ # Configuring multiple record formats
+ for FORMAT in $DESIGNATE_SINK_NEUTRON_FORMATS; do
+ crudini --set $CONF handler:neutron_floatingip format "$FORMAT"
+ done
+}
+
+check_required_vars DESIGNATE_API_SERVICE_HOST DESIGNATE_API_SERVICE_PORT \
+ DESIGNATE_DEFAULT_POOL_NS_RECORD
+
+check_for_os_service_endpoint designate DESIGNATE_API_SERVICE_HOST DESIGNATE_API_SERVICE_PORT || exit $?
+
+if [ -z "$DESIGNATE_SINK_NOVA_DOMAIN_NAME" && -z "$DESIGNATE_SINK_NEUTRON_DOMAIN_NAME" ]; then
+ echo "Please specify either Nova or Neutron domain name for Designate Sink"
+ exit 1
+fi
+
+designate server-create --name ${DESIGNATE_DEFAULT_POOL_NS_RECORD}
+if [ $? != 0 ]; then
+ echo "Creating server failed" 1>&2
+ exit 1
+fi
+
+if [ -n "$DESIGNATE_SINK_NOVA_DOMAIN_NAME" ]; then
+ NOVA_DOMAIN_ID=$(get_or_create_domain $DESIGNATE_SINK_NOVA_DOMAIN_NAME)
+ configure_nova_handler $NOVA_DOMAIN_ID
+ HANDLERS="nova_fixed"
+fi
+
+if [ -n "$DESIGNATE_SINK_NEUTRON_DOMAIN_NAME" ]; then
+ NEUTRON_DOMAIN_ID=$(get_or_create_domain $DESIGNATE_SINK_NEUTRON_DOMAIN_NAME)
+ configure_neutron_handler $NEUTRON_DOMAIN_ID
+ [ -n "$HANDLERS" ] && HANDLERS+=","
+ HANDLERS+="neutron_floatingip"
+fi
+
+crudini --set $CONF service:sink enabled_notification_handlers "$HANDLERS"
+
+exec /usr/bin/designate-sink