diff --git a/docker/centos/binary/designate/designate-api/Dockerfile b/docker/centos/binary/designate/designate-api/Dockerfile index b68da474fd813c26f446130fed78326caab3e0a4..926d88e9af2ed45a80b12b9894351d508c442235 100644 --- a/docker/centos/binary/designate/designate-api/Dockerfile +++ b/docker/centos/binary/designate/designate-api/Dockerfile @@ -6,5 +6,6 @@ RUN yum install -y \ && yum clean all COPY start.sh /start.sh +COPY config-internal.sh config-external.sh /opt/kolla/ CMD ["/start.sh"] diff --git a/docker/centos/binary/designate/designate-api/config-external.sh b/docker/centos/binary/designate/designate-api/config-external.sh new file mode 120000 index 0000000000000000000000000000000000000000..da641a600606b972089b3ca797bcf5856bbe8469 --- /dev/null +++ b/docker/centos/binary/designate/designate-api/config-external.sh @@ -0,0 +1 @@ +../../../../common/designate/designate-api/config-external.sh \ No newline at end of file diff --git a/docker/centos/binary/designate/designate-api/config-internal.sh b/docker/centos/binary/designate/designate-api/config-internal.sh new file mode 120000 index 0000000000000000000000000000000000000000..438a6fd752080371da4bf89ea6be6d6b016aff65 --- /dev/null +++ b/docker/centos/binary/designate/designate-api/config-internal.sh @@ -0,0 +1 @@ +../../../../common/designate/designate-api/config-internal.sh \ No newline at end of file diff --git a/docker/centos/binary/designate/designate-backend-bind9/Dockerfile b/docker/centos/binary/designate/designate-backend-bind9/Dockerfile index 7f57786c4b597623e1eeaab8acc4b3a57f24c145..0c9baca2a4d6b5ec4d0ff9e22064c4ea01f7bdc7 100644 --- a/docker/centos/binary/designate/designate-backend-bind9/Dockerfile +++ b/docker/centos/binary/designate/designate-backend-bind9/Dockerfile @@ -6,5 +6,6 @@ RUN yum install -y bind \ && cp -pr /var/named /opt/kolla/var-named COPY start.sh /start.sh +COPY config-internal.sh config-external.sh /opt/kolla/ CMD ["/start.sh"] diff --git a/docker/centos/binary/designate/designate-backend-bind9/config-external.sh b/docker/centos/binary/designate/designate-backend-bind9/config-external.sh new file mode 120000 index 0000000000000000000000000000000000000000..98eabc775e729d96b4302a761e4153d2cd8894a4 --- /dev/null +++ b/docker/centos/binary/designate/designate-backend-bind9/config-external.sh @@ -0,0 +1 @@ +../../../../common/designate/designate-backend-bind9/config-external.sh \ No newline at end of file diff --git a/docker/centos/binary/designate/designate-backend-bind9/config-internal.sh b/docker/centos/binary/designate/designate-backend-bind9/config-internal.sh new file mode 120000 index 0000000000000000000000000000000000000000..7d7c0d0e4d227161381bf828e4bb43685a0ec74c --- /dev/null +++ b/docker/centos/binary/designate/designate-backend-bind9/config-internal.sh @@ -0,0 +1 @@ +../../../../common/designate/designate-backend-bind9/config-internal.sh \ No newline at end of file diff --git a/docker/centos/binary/designate/designate-central/Dockerfile b/docker/centos/binary/designate/designate-central/Dockerfile index 59e0a0e32411dba9f91063b766895863d570b83e..4b7cca50063814f631c8039fb36c6e467bdc4460 100644 --- a/docker/centos/binary/designate/designate-central/Dockerfile +++ b/docker/centos/binary/designate/designate-central/Dockerfile @@ -6,5 +6,6 @@ RUN yum install -y \ && yum clean all COPY start.sh /start.sh +COPY config-internal.sh config-external.sh /opt/kolla/ CMD ["/start.sh"] diff --git a/docker/centos/binary/designate/designate-central/config-external.sh b/docker/centos/binary/designate/designate-central/config-external.sh new file mode 120000 index 0000000000000000000000000000000000000000..abe5bcd3950adca1ce10b10dae2a838f548207ed --- /dev/null +++ b/docker/centos/binary/designate/designate-central/config-external.sh @@ -0,0 +1 @@ +../../../../common/designate/designate-central/config-external.sh \ No newline at end of file diff --git a/docker/centos/binary/designate/designate-central/config-internal.sh b/docker/centos/binary/designate/designate-central/config-internal.sh new file mode 120000 index 0000000000000000000000000000000000000000..94fcafd40c3f8cad21146a06b42378313c24b334 --- /dev/null +++ b/docker/centos/binary/designate/designate-central/config-internal.sh @@ -0,0 +1 @@ +../../../../common/designate/designate-central/config-internal.sh \ No newline at end of file diff --git a/docker/centos/binary/designate/designate-mdns/Dockerfile b/docker/centos/binary/designate/designate-mdns/Dockerfile index 87f4fdfc81ea770801ba3d02fec10308091a4a7d..3aa77d14f363ae7fc311c5e467323a04dd7d9b18 100644 --- a/docker/centos/binary/designate/designate-mdns/Dockerfile +++ b/docker/centos/binary/designate/designate-mdns/Dockerfile @@ -5,5 +5,6 @@ RUN yum install -y openstack-designate-mdns \ && yum clean all COPY start.sh /start.sh +COPY config-internal.sh config-external.sh /opt/kolla/ CMD ["/start.sh"] diff --git a/docker/centos/binary/designate/designate-mdns/config-external.sh b/docker/centos/binary/designate/designate-mdns/config-external.sh new file mode 120000 index 0000000000000000000000000000000000000000..e450238fcca42d680fa14e914c1a02b7be1d0437 --- /dev/null +++ b/docker/centos/binary/designate/designate-mdns/config-external.sh @@ -0,0 +1 @@ +../../../../common/designate/designate-mdns/config-external.sh \ No newline at end of file diff --git a/docker/centos/binary/designate/designate-mdns/config-internal.sh b/docker/centos/binary/designate/designate-mdns/config-internal.sh new file mode 120000 index 0000000000000000000000000000000000000000..c838250c926285eded59778cdff66047e9f1a4a5 --- /dev/null +++ b/docker/centos/binary/designate/designate-mdns/config-internal.sh @@ -0,0 +1 @@ +../../../../common/designate/designate-mdns/config-internal.sh \ No newline at end of file diff --git a/docker/centos/binary/designate/designate-poolmanager/Dockerfile b/docker/centos/binary/designate/designate-poolmanager/Dockerfile index 25581d3db817f8ecbcea10cf9cafbcb820a2951a..a69a3acac9a1136dc35f860c20165b59d6e6d140 100644 --- a/docker/centos/binary/designate/designate-poolmanager/Dockerfile +++ b/docker/centos/binary/designate/designate-poolmanager/Dockerfile @@ -8,5 +8,6 @@ RUN yum install -y \ && yum clean all COPY start.sh /start.sh +COPY config-internal.sh config-external.sh /opt/kolla/ CMD ["/start.sh"] diff --git a/docker/centos/binary/designate/designate-poolmanager/config-external.sh b/docker/centos/binary/designate/designate-poolmanager/config-external.sh new file mode 120000 index 0000000000000000000000000000000000000000..461acb12ac8f8fc52e2bd2ac2881633846b2cc42 --- /dev/null +++ b/docker/centos/binary/designate/designate-poolmanager/config-external.sh @@ -0,0 +1 @@ +../../../../common/designate/designate-poolmanager/config-external.sh \ No newline at end of file diff --git a/docker/centos/binary/designate/designate-poolmanager/config-internal.sh b/docker/centos/binary/designate/designate-poolmanager/config-internal.sh new file mode 120000 index 0000000000000000000000000000000000000000..6b43b0ddddd13a1a783200d9d06ad0b392dec005 --- /dev/null +++ b/docker/centos/binary/designate/designate-poolmanager/config-internal.sh @@ -0,0 +1 @@ +../../../../common/designate/designate-poolmanager/config-internal.sh \ No newline at end of file diff --git a/docker/centos/binary/designate/designate-sink/Dockerfile b/docker/centos/binary/designate/designate-sink/Dockerfile index 5c7f58fb997b811f138706498cc75088f4a4b2e6..dffb6384a1e025a4c2ebd3766ab73cef3a19d513 100644 --- a/docker/centos/binary/designate/designate-sink/Dockerfile +++ b/docker/centos/binary/designate/designate-sink/Dockerfile @@ -7,5 +7,6 @@ RUN yum install -y \ && yum clean all COPY start.sh /start.sh +COPY config-internal.sh config-external.sh /opt/kolla/ CMD ["/start.sh"] diff --git a/docker/centos/binary/designate/designate-sink/config-external.sh b/docker/centos/binary/designate/designate-sink/config-external.sh new file mode 120000 index 0000000000000000000000000000000000000000..edc94e6e434ff277012888a8d3cb415f911174e3 --- /dev/null +++ b/docker/centos/binary/designate/designate-sink/config-external.sh @@ -0,0 +1 @@ +../../../../common/designate/designate-sink/config-external.sh \ No newline at end of file diff --git a/docker/centos/binary/designate/designate-sink/config-internal.sh b/docker/centos/binary/designate/designate-sink/config-internal.sh new file mode 120000 index 0000000000000000000000000000000000000000..713fc1b22c61271d184ecb99805045cb1b07415e --- /dev/null +++ b/docker/centos/binary/designate/designate-sink/config-internal.sh @@ -0,0 +1 @@ +../../../../common/designate/designate-sink/config-internal.sh \ No newline at end of file diff --git a/docker/common/designate/designate-api/config-external.sh b/docker/common/designate/designate-api/config-external.sh new file mode 100644 index 0000000000000000000000000000000000000000..ce302ea0c58de0359702ea3934fbf0b8c35f4ef1 --- /dev/null +++ b/docker/common/designate/designate-api/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/designate/designate.conf" +TARGET="/etc/designate/designate.conf" +OWNER="designate" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/common/designate/designate-api/config-internal.sh b/docker/common/designate/designate-api/config-internal.sh new file mode 100644 index 0000000000000000000000000000000000000000..aae50ea8f1b6a22aaae67e6171b77f35547f8a2f --- /dev/null +++ b/docker/common/designate/designate-api/config-internal.sh @@ -0,0 +1,37 @@ +#!/bin/bash +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-designate.sh + +CONF=/etc/designate/designate.conf + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + DESIGNATE_KEYSTONE_USER DESIGNATE_KEYSTONE_PASSWORD \ + KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \ + DESIGNATE_API_SERVICE_HOST DESIGNATE_API_SERVICE_PORT \ + KEYSTONE_ADMIN_SERVICE_PORT + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" + +fail_unless_os_service_running keystone + +crux user-create \ + -n ${DESIGNATE_KEYSTONE_USER} \ + -p ${DESIGNATE_KEYSTONE_PASSWORD} \ + -t ${ADMIN_TENANT_NAME} \ + -r admin + +crux endpoint-create \ + --remove-all \ + -n ${DESIGNATE_KEYSTONE_USER} \ + -t dns \ + -I "${KEYSTONE_AUTH_PROTOCOL}://${DESIGNATE_API_SERVICE_HOST}:${DESIGNATE_API_SERVICE_PORT}/v1" \ + -P "${KEYSTONE_AUTH_PROTOCOL}://${DESIGNATE_API_SERVICE_HOST}:${DESIGNATE_API_SERVICE_PORT}/v1" \ + -A "${KEYSTONE_AUTH_PROTOCOL}://${DESIGNATE_API_SERVICE_HOST}:${DESIGNATE_API_SERVICE_PORT}/v1" + +crudini --set $CONF service:api api_paste_config "/usr/share/designate/api-paste.ini" +crudini --set $CONF service:api api_port "${DESIGNATE_API_SERVICE_PORT}" + +exec /usr/bin/designate-api diff --git a/docker/common/designate/designate-api/start.sh b/docker/common/designate/designate-api/start.sh index aae50ea8f1b6a22aaae67e6171b77f35547f8a2f..90d17bb5306108addefb44cfc3b679cb8d26ee8d 100755 --- a/docker/common/designate/designate-api/start.sh +++ b/docker/common/designate/designate-api/start.sh @@ -1,37 +1,20 @@ #!/bin/bash -set -e -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-designate.sh +set -o errexit +CMD="/usr/bin/designate-api" +ARGS="" -CONF=/etc/designate/designate.conf +# Loading common functions. +source /opt/kolla/kolla-common.sh -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - DESIGNATE_KEYSTONE_USER DESIGNATE_KEYSTONE_PASSWORD \ - KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \ - DESIGNATE_API_SERVICE_HOST DESIGNATE_API_SERVICE_PORT \ - KEYSTONE_ADMIN_SERVICE_PORT +# Config-internal script exec out of this function, it does not return here. +set_configs -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" +# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases +# of the KOLLA_BOOTSTRAP variable being set, including empty. +if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then + su -s /bin/sh -c "designate-manage db_sync" designate + exit 0 +fi -fail_unless_os_service_running keystone - -crux user-create \ - -n ${DESIGNATE_KEYSTONE_USER} \ - -p ${DESIGNATE_KEYSTONE_PASSWORD} \ - -t ${ADMIN_TENANT_NAME} \ - -r admin - -crux endpoint-create \ - --remove-all \ - -n ${DESIGNATE_KEYSTONE_USER} \ - -t dns \ - -I "${KEYSTONE_AUTH_PROTOCOL}://${DESIGNATE_API_SERVICE_HOST}:${DESIGNATE_API_SERVICE_PORT}/v1" \ - -P "${KEYSTONE_AUTH_PROTOCOL}://${DESIGNATE_API_SERVICE_HOST}:${DESIGNATE_API_SERVICE_PORT}/v1" \ - -A "${KEYSTONE_AUTH_PROTOCOL}://${DESIGNATE_API_SERVICE_HOST}:${DESIGNATE_API_SERVICE_PORT}/v1" - -crudini --set $CONF service:api api_paste_config "/usr/share/designate/api-paste.ini" -crudini --set $CONF service:api api_port "${DESIGNATE_API_SERVICE_PORT}" - -exec /usr/bin/designate-api +exec $CMD $ARGS diff --git a/docker/common/designate/designate-backend-bind9/config-external.sh b/docker/common/designate/designate-backend-bind9/config-external.sh new file mode 100644 index 0000000000000000000000000000000000000000..ce302ea0c58de0359702ea3934fbf0b8c35f4ef1 --- /dev/null +++ b/docker/common/designate/designate-backend-bind9/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/designate/designate.conf" +TARGET="/etc/designate/designate.conf" +OWNER="designate" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/common/designate/designate-backend-bind9/config-internal.sh b/docker/common/designate/designate-backend-bind9/config-internal.sh new file mode 100644 index 0000000000000000000000000000000000000000..90d2de676bef4e1e4457beaa3486ebf2909e3166 --- /dev/null +++ b/docker/common/designate/designate-backend-bind9/config-internal.sh @@ -0,0 +1,60 @@ +#!/bin/bash +set -e + +. /opt/kolla/kolla-common.sh + +check_required_vars DESIGNATE_MASTERNS DESIGNATE_SLAVENS DESIGNATE_BIND9_RNDC_KEY \ + DESIGNATE_ALLOW_RECURSION + +NAMEDCFG=/etc/named.conf + +# /var/named is coming from a VOLUME definition but at first boot it needs to +# be populated from the original container since else it would be missing some +# Bind9 core files. These files have been saved during the build phase. + +if [ ! -f /var/named/named.ca ]; then + cp -pr /opt/kolla/var-named/* /var/named/ +fi + +# When rndc adds a new domain, bind adds the call in an nzf file in this +# directory. +chmod 770 /var/named +chown root:named /var/named + +# Default Bind9 behavior is to enable recursion, disable if wanted. +if [ "${DESIGNATE_ALLOW_RECURSION}" == "false" ]; then + sed -i -r "s/(recursion) yes/\1 no/" $NAMEDCFG +fi + +sed -i -r "/listen-on port 53/d" $NAMEDCFG +sed -i -r "/listen-on-v6/d" $NAMEDCFG +sed -i -r "s,/\* Path to ISC DLV key \*/,allow-new-zones yes;," $NAMEDCFG +sed -i -r "/allow-query .+;/d" $NAMEDCFG + +if ! grep -q rndc-key /etc/named.conf; then + cat >> /etc/named.conf <<EOF +include "/etc/rndc.key"; +controls { + inet ${DESIGNATE_SLAVENS} allow { ${DESIGNATE_MASTERNS}; } keys { "rndc-key"; }; +}; +EOF +fi + +cat > /etc/rndc.key <<EOF +key "rndc-key" { + algorithm hmac-md5; + secret "${DESIGNATE_BIND9_RNDC_KEY}"; +}; +EOF +cat > /etc/rndc.conf <<EOF +options { + default-key "rndc-key"; + default-server 127.0.0.1; + default-port 953; +}; +EOF +cat /etc/rndc.key >> /etc/rndc.conf +chown named /etc/rndc.key + +# Launch and keep in the foreground. +exec /usr/sbin/named -u named -g diff --git a/docker/common/designate/designate-backend-bind9/start.sh b/docker/common/designate/designate-backend-bind9/start.sh index 90d2de676bef4e1e4457beaa3486ebf2909e3166..180cb4f25e3d87ec6634ec36f984f2c7c65c56b3 100755 --- a/docker/common/designate/designate-backend-bind9/start.sh +++ b/docker/common/designate/designate-backend-bind9/start.sh @@ -1,60 +1,13 @@ #!/bin/bash -set -e -. /opt/kolla/kolla-common.sh +set -o errexit +CMD="/usr/sbin/named" +ARGS="-u named -g" -check_required_vars DESIGNATE_MASTERNS DESIGNATE_SLAVENS DESIGNATE_BIND9_RNDC_KEY \ - DESIGNATE_ALLOW_RECURSION +# Loading common functions. +source /opt/kolla/kolla-common.sh -NAMEDCFG=/etc/named.conf +# Config-internal script exec out of this function, it does not return here. +set_configs -# /var/named is coming from a VOLUME definition but at first boot it needs to -# be populated from the original container since else it would be missing some -# Bind9 core files. These files have been saved during the build phase. - -if [ ! -f /var/named/named.ca ]; then - cp -pr /opt/kolla/var-named/* /var/named/ -fi - -# When rndc adds a new domain, bind adds the call in an nzf file in this -# directory. -chmod 770 /var/named -chown root:named /var/named - -# Default Bind9 behavior is to enable recursion, disable if wanted. -if [ "${DESIGNATE_ALLOW_RECURSION}" == "false" ]; then - sed -i -r "s/(recursion) yes/\1 no/" $NAMEDCFG -fi - -sed -i -r "/listen-on port 53/d" $NAMEDCFG -sed -i -r "/listen-on-v6/d" $NAMEDCFG -sed -i -r "s,/\* Path to ISC DLV key \*/,allow-new-zones yes;," $NAMEDCFG -sed -i -r "/allow-query .+;/d" $NAMEDCFG - -if ! grep -q rndc-key /etc/named.conf; then - cat >> /etc/named.conf <<EOF -include "/etc/rndc.key"; -controls { - inet ${DESIGNATE_SLAVENS} allow { ${DESIGNATE_MASTERNS}; } keys { "rndc-key"; }; -}; -EOF -fi - -cat > /etc/rndc.key <<EOF -key "rndc-key" { - algorithm hmac-md5; - secret "${DESIGNATE_BIND9_RNDC_KEY}"; -}; -EOF -cat > /etc/rndc.conf <<EOF -options { - default-key "rndc-key"; - default-server 127.0.0.1; - default-port 953; -}; -EOF -cat /etc/rndc.key >> /etc/rndc.conf -chown named /etc/rndc.key - -# Launch and keep in the foreground. -exec /usr/sbin/named -u named -g +exec $CMD $ARGS diff --git a/docker/common/designate/designate-central/config-external.sh b/docker/common/designate/designate-central/config-external.sh new file mode 100644 index 0000000000000000000000000000000000000000..ce302ea0c58de0359702ea3934fbf0b8c35f4ef1 --- /dev/null +++ b/docker/common/designate/designate-central/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/designate/designate.conf" +TARGET="/etc/designate/designate.conf" +OWNER="designate" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/common/designate/designate-central/config-internal.sh b/docker/common/designate/designate-central/config-internal.sh new file mode 100644 index 0000000000000000000000000000000000000000..44cf89130b4394951b8663e790cd41fa9eeebd55 --- /dev/null +++ b/docker/common/designate/designate-central/config-internal.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-designate.sh + +check_required_vars MARIADB_SERVICE_HOST DB_ROOT_PASSWORD DESIGNATE_DB_NAME \ + DESIGNATE_DB_USER DESIGNATE_DB_PASSWORD INIT_DESIGNATE_DB + +fail_unless_db + +CONF=/etc/designate/designate.conf + +if [ "${INIT_DESIGNATE_DB}" == "true" ]; then + echo "Configuring database" + mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql <<EOF +CREATE DATABASE IF NOT EXISTS ${DESIGNATE_DB_NAME}; +GRANT ALL PRIVILEGES ON ${DESIGNATE_DB_NAME}.* TO '${DESIGNATE_DB_USER}'@'%' IDENTIFIED BY '${DESIGNATE_DB_PASSWORD}' +EOF + + designate-manage database sync +fi + +exec /usr/bin/designate-central diff --git a/docker/common/designate/designate-central/start.sh b/docker/common/designate/designate-central/start.sh index 44cf89130b4394951b8663e790cd41fa9eeebd55..6a5af5adcbad3fc05f71892802b53b2a4cb6236a 100755 --- a/docker/common/designate/designate-central/start.sh +++ b/docker/common/designate/designate-central/start.sh @@ -1,24 +1,13 @@ #!/bin/bash -set -e -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-designate.sh +set -o errexit +CMD="/usr/bin/designate-central" +ARGS="" -check_required_vars MARIADB_SERVICE_HOST DB_ROOT_PASSWORD DESIGNATE_DB_NAME \ - DESIGNATE_DB_USER DESIGNATE_DB_PASSWORD INIT_DESIGNATE_DB +# Loading common functions. +source /opt/kolla/kolla-common.sh -fail_unless_db +# Config-internal script exec out of this function, it does not return here. +set_configs -CONF=/etc/designate/designate.conf - -if [ "${INIT_DESIGNATE_DB}" == "true" ]; then - echo "Configuring database" - mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${DESIGNATE_DB_NAME}; -GRANT ALL PRIVILEGES ON ${DESIGNATE_DB_NAME}.* TO '${DESIGNATE_DB_USER}'@'%' IDENTIFIED BY '${DESIGNATE_DB_PASSWORD}' -EOF - - designate-manage database sync -fi - -exec /usr/bin/designate-central +exec $CMD $ARGS diff --git a/docker/common/designate/designate-mdns/config-external.sh b/docker/common/designate/designate-mdns/config-external.sh new file mode 100644 index 0000000000000000000000000000000000000000..ce302ea0c58de0359702ea3934fbf0b8c35f4ef1 --- /dev/null +++ b/docker/common/designate/designate-mdns/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/designate/designate.conf" +TARGET="/etc/designate/designate.conf" +OWNER="designate" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/common/designate/designate-mdns/config-internal.sh b/docker/common/designate/designate-mdns/config-internal.sh new file mode 100644 index 0000000000000000000000000000000000000000..a3e5df2747db943a1bec999c4f180446a3bffb7c --- /dev/null +++ b/docker/common/designate/designate-mdns/config-internal.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-designate.sh + +check_required_vars DESIGNATE_MASTERNS DESIGNATE_MDNS_PORT + +CONF=/etc/designate/designate.conf + +crudini --set $CONF service:mdns workers "1" +crudini --set $CONF service:mdns host "${DESIGNATE_MASTERNS}" +crudini --set $CONF service:mdns port "${DESIGNATE_MDNS_PORT}" +crudini --set $CONF service:mdns tcp_backlog "100" +crudini --set $CONF service:mdns all_tcp "False" + +exec /usr/bin/designate-mdns diff --git a/docker/common/designate/designate-mdns/start.sh b/docker/common/designate/designate-mdns/start.sh index a3e5df2747db943a1bec999c4f180446a3bffb7c..ee3d19e33b538d46f4d6a6ed51bb8037c5a9214b 100755 --- a/docker/common/designate/designate-mdns/start.sh +++ b/docker/common/designate/designate-mdns/start.sh @@ -1,17 +1,13 @@ #!/bin/bash -set -e -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-designate.sh +set -o errexit +CMD="/usr/bin/designate-mdns" +ARGS="" -check_required_vars DESIGNATE_MASTERNS DESIGNATE_MDNS_PORT +# Loading common functions. +source /opt/kolla/kolla-common.sh -CONF=/etc/designate/designate.conf +# Config-internal script exec out of this function, it does not return here. +set_configs -crudini --set $CONF service:mdns workers "1" -crudini --set $CONF service:mdns host "${DESIGNATE_MASTERNS}" -crudini --set $CONF service:mdns port "${DESIGNATE_MDNS_PORT}" -crudini --set $CONF service:mdns tcp_backlog "100" -crudini --set $CONF service:mdns all_tcp "False" - -exec /usr/bin/designate-mdns +exec $CMD $ARGS diff --git a/docker/common/designate/designate-poolmanager/config-external.sh b/docker/common/designate/designate-poolmanager/config-external.sh new file mode 100644 index 0000000000000000000000000000000000000000..ce302ea0c58de0359702ea3934fbf0b8c35f4ef1 --- /dev/null +++ b/docker/common/designate/designate-poolmanager/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/designate/designate.conf" +TARGET="/etc/designate/designate.conf" +OWNER="designate" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/common/designate/designate-poolmanager/config-internal.sh b/docker/common/designate/designate-poolmanager/config-internal.sh new file mode 100644 index 0000000000000000000000000000000000000000..f5222b3f46751cc1c26191056696696146edeeda --- /dev/null +++ b/docker/common/designate/designate-poolmanager/config-internal.sh @@ -0,0 +1,54 @@ +#!/bin/bash +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-designate.sh + +check_required_vars DESIGNATE_MASTERNS DESIGNATE_BACKEND DESIGNATE_SLAVENS \ + DESIGNATE_MDNS_PORT DESIGNATE_DNS_PORT DESIGNATE_POOLMAN_POOLID \ + DESIGNATE_POOLMAN_TARGETS DESIGNATE_POOLMAN_NSS \ + DESIGNATE_POOLMAN_POOLID + +CONF=/etc/designate/designate.conf + +if [ "${DESIGNATE_BACKEND}" == "bind9" ]; then + TYPE="bind9" + OPTIONS="rndc_host: ${DESIGNATE_SLAVENS}, rndc_key_file: /etc/rndc.key" +else + echo Unsupported backend: ${DESIGNATE_BACKEND} + exit +fi + +crudini --set $CONF service:pool_manager workers "1" +crudini --set $CONF service:pool_manager enable_recovery_timer "False" +crudini --set $CONF service:pool_manager periodic_recovery_interval "120" +crudini --set $CONF service:pool_manager enable_sync_timer "True" +crudini --set $CONF service:pool_manager periodic_sync_interval "1800" +crudini --set $CONF service:pool_manager poll_max_retries "10" +crudini --set $CONF service:pool_manager poll_delay "5" +crudini --set $CONF service:pool_manager poll_retry_interval "15" +crudini --set $CONF service:pool_manager pool_id "${DESIGNATE_POOLMAN_POOLID}" +crudini --set $CONF service:pool_manager cache_driver "noop" + +# TODO: use this to use memcached +#crudini --set $CONF service:pool_manager cache_driver memcache +#crudini --set $CONF service:pool_manager memcached_servers ${MEMCACHED_HOST} + +# Specify the id of the pool managed through pool_manager. Central gets +# configured with this pool_id as well. +crudini --set $CONF service:pool_manager pool_id "${DESIGNATE_POOLMAN_POOLID}" + +crudini --set $CONF pool:${DESIGNATE_POOLMAN_POOLID} nameservers "${DESIGNATE_POOLMAN_NSS}" +crudini --set $CONF pool:${DESIGNATE_POOLMAN_POOLID} targets "${DESIGNATE_POOLMAN_TARGETS}" + +crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} type "${TYPE}" +crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} options "${OPTIONS}" +# This is the mdns container, which is the master nameserver. +crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} masters "${DESIGNATE_MASTERNS}:${DESIGNATE_MDNS_PORT}" +crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} host "${DESIGNATE_MASTERNS}" +crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} port "${DESIGNATE_DNS_PORT}" + +crudini --set $CONF pool_nameserver:${DESIGNATE_POOLMAN_NSS} host "${DESIGNATE_MASTERNS}" +crudini --set $CONF pool_nameserver:${DESIGNATE_POOLMAN_NSS} port "${DESIGNATE_DNS_PORT}" + +exec /usr/bin/designate-pool-manager diff --git a/docker/common/designate/designate-poolmanager/start.sh b/docker/common/designate/designate-poolmanager/start.sh index f5222b3f46751cc1c26191056696696146edeeda..860163999037c3138b6cf6fc02b8966d14363dfd 100755 --- a/docker/common/designate/designate-poolmanager/start.sh +++ b/docker/common/designate/designate-poolmanager/start.sh @@ -1,54 +1,13 @@ #!/bin/bash -set -e -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-designate.sh +set -o errexit +CMD="/usr/bin/designate-pool-manager" +ARGS="" -check_required_vars DESIGNATE_MASTERNS DESIGNATE_BACKEND DESIGNATE_SLAVENS \ - DESIGNATE_MDNS_PORT DESIGNATE_DNS_PORT DESIGNATE_POOLMAN_POOLID \ - DESIGNATE_POOLMAN_TARGETS DESIGNATE_POOLMAN_NSS \ - DESIGNATE_POOLMAN_POOLID +# Loading common functions. +source /opt/kolla/kolla-common.sh -CONF=/etc/designate/designate.conf +# Config-internal script exec out of this function, it does not return here. +set_configs -if [ "${DESIGNATE_BACKEND}" == "bind9" ]; then - TYPE="bind9" - OPTIONS="rndc_host: ${DESIGNATE_SLAVENS}, rndc_key_file: /etc/rndc.key" -else - echo Unsupported backend: ${DESIGNATE_BACKEND} - exit -fi - -crudini --set $CONF service:pool_manager workers "1" -crudini --set $CONF service:pool_manager enable_recovery_timer "False" -crudini --set $CONF service:pool_manager periodic_recovery_interval "120" -crudini --set $CONF service:pool_manager enable_sync_timer "True" -crudini --set $CONF service:pool_manager periodic_sync_interval "1800" -crudini --set $CONF service:pool_manager poll_max_retries "10" -crudini --set $CONF service:pool_manager poll_delay "5" -crudini --set $CONF service:pool_manager poll_retry_interval "15" -crudini --set $CONF service:pool_manager pool_id "${DESIGNATE_POOLMAN_POOLID}" -crudini --set $CONF service:pool_manager cache_driver "noop" - -# TODO: use this to use memcached -#crudini --set $CONF service:pool_manager cache_driver memcache -#crudini --set $CONF service:pool_manager memcached_servers ${MEMCACHED_HOST} - -# Specify the id of the pool managed through pool_manager. Central gets -# configured with this pool_id as well. -crudini --set $CONF service:pool_manager pool_id "${DESIGNATE_POOLMAN_POOLID}" - -crudini --set $CONF pool:${DESIGNATE_POOLMAN_POOLID} nameservers "${DESIGNATE_POOLMAN_NSS}" -crudini --set $CONF pool:${DESIGNATE_POOLMAN_POOLID} targets "${DESIGNATE_POOLMAN_TARGETS}" - -crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} type "${TYPE}" -crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} options "${OPTIONS}" -# This is the mdns container, which is the master nameserver. -crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} masters "${DESIGNATE_MASTERNS}:${DESIGNATE_MDNS_PORT}" -crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} host "${DESIGNATE_MASTERNS}" -crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} port "${DESIGNATE_DNS_PORT}" - -crudini --set $CONF pool_nameserver:${DESIGNATE_POOLMAN_NSS} host "${DESIGNATE_MASTERNS}" -crudini --set $CONF pool_nameserver:${DESIGNATE_POOLMAN_NSS} port "${DESIGNATE_DNS_PORT}" - -exec /usr/bin/designate-pool-manager +exec $CMD $ARGS diff --git a/docker/common/designate/designate-sink/config-external.sh b/docker/common/designate/designate-sink/config-external.sh new file mode 100644 index 0000000000000000000000000000000000000000..ce302ea0c58de0359702ea3934fbf0b8c35f4ef1 --- /dev/null +++ b/docker/common/designate/designate-sink/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/designate/designate.conf" +TARGET="/etc/designate/designate.conf" +OWNER="designate" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/common/designate/designate-sink/config-internal.sh b/docker/common/designate/designate-sink/config-internal.sh new file mode 100644 index 0000000000000000000000000000000000000000..a6a3a4bacbb436580d1ebccb62b9f1e07252a70c --- /dev/null +++ b/docker/common/designate/designate-sink/config-internal.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 diff --git a/docker/common/designate/designate-sink/start.sh b/docker/common/designate/designate-sink/start.sh index a6a3a4bacbb436580d1ebccb62b9f1e07252a70c..41637a5f62dcfcab51d828485f1ffd5ddf0ec954 100755 --- a/docker/common/designate/designate-sink/start.sh +++ b/docker/common/designate/designate-sink/start.sh @@ -1,64 +1,13 @@ #!/bin/bash -set -e -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-designate.sh +set -o errexit +CMD="/usr/bin/designate-sink" +ARGS="" -CONF=/etc/designate/designate.conf +# Loading common functions. +source /opt/kolla/kolla-common.sh -configure_nova_handler() { - local DOMAIN_ID=$1 +# Config-internal script exec out of this function, it does not return here. +set_configs - 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 +exec $CMD $ARGS