From 793d68a29ca0a3724714b27441ddd87ecbe0e44d Mon Sep 17 00:00:00 2001 From: Ryan Hallisey <rhallise@redhat.com> Date: Tue, 14 Apr 2015 11:39:38 -0400 Subject: [PATCH] Cinder container Cinder is going to be split up into four containers. - cinder-api - cinder-scheduler - cinder-volume - cinder-backup Co-Authored-By: Daneyon Hansen <danehans@cisco.com> Co-Authored-By: Ian Main <imain@redhat.com> Implements: blueprint cinder-container Closes-bug: #1460136 Change-Id: I688471151ffa54d547b9aa0f2f2e2ea7f68f288d --- .../binary/cinder-app/cinder-api/Dockerfile | 6 + .../centos/binary/cinder-app/cinder-api/build | 1 + .../binary/cinder-app/cinder-api/check.sh | 16 ++ .../binary/cinder-app/cinder-api/start.sh | 73 +++++++++ .../cinder-app/cinder-backup/Dockerfile | 6 + .../binary/cinder-app/cinder-backup/build | 1 + .../binary/cinder-app/cinder-backup/start.sh | 36 +++++ .../cinder-base}/Dockerfile | 3 +- .../binary/cinder-app/cinder-base/build | 1 + .../cinder-app/cinder-base/config-cinder.sh | 132 ++++++++++++++++ .../cinder-app/cinder-scheduler/Dockerfile | 6 + .../binary/cinder-app/cinder-scheduler/build | 1 + .../cinder-app/cinder-scheduler/start.sh | 32 ++++ .../cinder-app/cinder-volume/Dockerfile | 17 ++ .../binary/cinder-app/cinder-volume/build | 1 + .../binary/cinder-app/cinder-volume/start.sh | 75 +++++++++ .../cinder-volume/volume-group-create.sh | 22 +++ docker/centos/binary/cinder-data/Dockerfile | 9 ++ .../binary/{cinder => cinder-data}/build | 0 docker/centos/binary/cinder/start.sh | 145 ------------------ 20 files changed, 436 insertions(+), 147 deletions(-) create mode 100644 docker/centos/binary/cinder-app/cinder-api/Dockerfile create mode 120000 docker/centos/binary/cinder-app/cinder-api/build create mode 100755 docker/centos/binary/cinder-app/cinder-api/check.sh create mode 100755 docker/centos/binary/cinder-app/cinder-api/start.sh create mode 100644 docker/centos/binary/cinder-app/cinder-backup/Dockerfile create mode 120000 docker/centos/binary/cinder-app/cinder-backup/build create mode 100755 docker/centos/binary/cinder-app/cinder-backup/start.sh rename docker/centos/binary/{cinder => cinder-app/cinder-base}/Dockerfile (77%) create mode 120000 docker/centos/binary/cinder-app/cinder-base/build create mode 100644 docker/centos/binary/cinder-app/cinder-base/config-cinder.sh create mode 100644 docker/centos/binary/cinder-app/cinder-scheduler/Dockerfile create mode 120000 docker/centos/binary/cinder-app/cinder-scheduler/build create mode 100755 docker/centos/binary/cinder-app/cinder-scheduler/start.sh create mode 100644 docker/centos/binary/cinder-app/cinder-volume/Dockerfile create mode 120000 docker/centos/binary/cinder-app/cinder-volume/build create mode 100755 docker/centos/binary/cinder-app/cinder-volume/start.sh create mode 100755 docker/centos/binary/cinder-app/cinder-volume/volume-group-create.sh create mode 100644 docker/centos/binary/cinder-data/Dockerfile rename docker/centos/binary/{cinder => cinder-data}/build (100%) delete mode 100755 docker/centos/binary/cinder/start.sh diff --git a/docker/centos/binary/cinder-app/cinder-api/Dockerfile b/docker/centos/binary/cinder-app/cinder-api/Dockerfile new file mode 100644 index 0000000000..6fcb41eecc --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-api/Dockerfile @@ -0,0 +1,6 @@ +FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%cinder-base:%%KOLLA_TAG%% +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +COPY ./start.sh ./check.sh / + +CMD ["/start.sh"] diff --git a/docker/centos/binary/cinder-app/cinder-api/build b/docker/centos/binary/cinder-app/cinder-api/build new file mode 120000 index 0000000000..ec19138031 --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-api/build @@ -0,0 +1 @@ +../../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-api/check.sh b/docker/centos/binary/cinder-app/cinder-api/check.sh new file mode 100755 index 0000000000..57b88f5669 --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-api/check.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +RES=0 + +. /openrc +if ! keystone token-get > /dev/null; then + echo "ERROR: keystone token-get failed" >&2 + RES=1 +else + if ! cinder list > /dev/null; then + echo "ERROR: cinder list failed" >&2 + RES=1 + fi +fi + +exit $RES diff --git a/docker/centos/binary/cinder-app/cinder-api/start.sh b/docker/centos/binary/cinder-app/cinder-api/start.sh new file mode 100755 index 0000000000..28293ac6cc --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-api/start.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-cinder.sh + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + ADMIN_TENANT_NAME PUBLIC_IP CINDER_API_SERVICE_HOST \ + KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_PORT \ + CINDER_KEYSTONE_USER CINDER_KEYSTONE_PASSWORD \ + CINDER_API_LOG_FILE CINDER_API_SERVICE_LISTEN \ + CINDER_API_SERVICE_PORT CINDER_API_SERVICE_LISTEN + +fail_unless_os_service_running keystone + +cfg=/etc/cinder/cinder.conf + +# Set the auth credentials +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" + +# Create Keystone User +crux user-create --update \ + -n "${CINDER_KEYSTONE_USER}" \ + -p "${CINDER_KEYSTONE_PASSWORD}" \ + -t "${ADMIN_TENANT_NAME}" \ + -r admin + +# Configure Keystone +crux endpoint-create --remove-all \ + -n cinder \ + -t volume \ + -P "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" \ + -A "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" \ + -I "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" + +crux endpoint-create --remove-all \ + -n cinderv2 \ + -t volumev2 \ + -P "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" \ + -A "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" \ + -I "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" + +# Logging +crudini --set $cfg \ + DEFAULT \ + log_file \ + "${CINDER_API_LOG_FILE}" + +# API Configuration +crudini --set $cfg \ + DEFAULT \ + osapi_volume_listen \ + "${CINDER_API_SERVICE_LISTEN}" + +crudini --set $cfg \ + DEFAULT \ + osapi_volume_listen_port \ + "${CINDER_API_SERVICE_PORT}" + +crudini --set $cfg \ + DEFAULT \ + enable_v1_api \ + "true" + +crudini --set $cfg \ + DEFAULT \ + enable_v2_api \ + "true" + +echo "Starting cinder-api" +exec /usr/bin/cinder-api --config-file $cfg diff --git a/docker/centos/binary/cinder-app/cinder-backup/Dockerfile b/docker/centos/binary/cinder-app/cinder-backup/Dockerfile new file mode 100644 index 0000000000..fb44155b30 --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-backup/Dockerfile @@ -0,0 +1,6 @@ +FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%cinder-base:%%KOLLA_TAG%% +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +COPY ./start.sh /start.sh + +CMD ["/start.sh"] diff --git a/docker/centos/binary/cinder-app/cinder-backup/build b/docker/centos/binary/cinder-app/cinder-backup/build new file mode 120000 index 0000000000..ec19138031 --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-backup/build @@ -0,0 +1 @@ +../../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-backup/start.sh b/docker/centos/binary/cinder-app/cinder-backup/start.sh new file mode 100755 index 0000000000..5dff79b356 --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-backup/start.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-cinder.sh + +check_required_vars CINDER_BACKUP_DRIVER CINDER_BACKUP_MANAGER \ + CINDER_BACKUP_API_CLASS CINDER_BACKUP_NAME_TEMPLATE + +cfg=/etc/cinder/cinder.conf + +# volume backup configuration +crudini --set $cfg \ + DEFAULT \ + backup_driver \ + "${CINDER_BACKUP_DRIVER}" +crudini --set $cfg \ + DEFAULT \ + backup_topic \ + "cinder-backup" +crudini --set $cfg \ + DEFAULT \ + backup_manager \ + "${CINDER_BACKUP_MANAGER}" +crudini --set $cfg \ + DEFAULT \ + backup_api_class \ + "${CINDER_BACKUP_API_CLASS}" +crudini --set $cfg \ + DEFAULT \ + backup_name_template \ + "${CINDER_BACKUP_NAME_TEMPLATE}" + +echo "Starting cinder-backup" +exec /usr/bin/cinder-backup --config-file $cfg diff --git a/docker/centos/binary/cinder/Dockerfile b/docker/centos/binary/cinder-app/cinder-base/Dockerfile similarity index 77% rename from docker/centos/binary/cinder/Dockerfile rename to docker/centos/binary/cinder-app/cinder-base/Dockerfile index 3dd7eca59b..643f0645ba 100644 --- a/docker/centos/binary/cinder/Dockerfile +++ b/docker/centos/binary/cinder-app/cinder-base/Dockerfile @@ -3,6 +3,5 @@ MAINTAINER Kolla Project (https://launchpad.net/kolla) RUN yum -y install openstack-cinder && yum clean all -ADD ./start.sh /start.sh -CMD ["/start.sh"] +COPY config-cinder.sh /opt/kolla/config-cinder.sh diff --git a/docker/centos/binary/cinder-app/cinder-base/build b/docker/centos/binary/cinder-app/cinder-base/build new file mode 120000 index 0000000000..ec19138031 --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-base/build @@ -0,0 +1 @@ +../../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-base/config-cinder.sh b/docker/centos/binary/cinder-app/cinder-base/config-cinder.sh new file mode 100644 index 0000000000..f82cb5510c --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-base/config-cinder.sh @@ -0,0 +1,132 @@ +#!/bin/sh + +set -e + +. /opt/kolla/kolla-common.sh + +check_required_vars CINDER_DB_PASSWORD CINDER_KEYSTONE_PASSWORD \ + KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST \ + GLANCE_API_SERVICE_HOST MARIADB_SERVICE_HOST \ + RABBITMQ_SERVICE_HOST RABBITMQ_SERVICE_PORT \ + RABBIT_USERID RABBIT_PASSWORD GLANCE_API_SERVICE_HOST \ + GLANCE_API_SERVICE_PORT ADMIN_TENANT_NAME \ + CINDER_DB_NAME CINDER_DB_USER CINDER_KEYSTONE_USER \ + PUBLIC_IP KEYSTONE_AUTH_PROTOCOL CINDER_LOG_DIR + +dump_vars + +cat > /openrc <<EOF +export OS_AUTH_URL="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" +export OS_USERNAME="${CINDER_KEYSTONE_USER}" +export OS_PASSWORD="${CINDER_KEYSTONE_PASSWORD}" +export OS_TENANT_NAME="${ADMIN_TENANT_NAME}" +EOF + +cfg=/etc/cinder/cinder.conf + +# Logging +crudini --set $cfg \ + DEFAULT \ + log_dir \ + "${CINDER_LOG_DIR}" +crudini --set $cfg \ + DEFAULT \ + verbose \ + "${VERBOSE_LOGGING}" +crudini --set $cfg \ + DEFAULT \ + debug \ + "${DEBUG_LOGGING}" + +# backend +crudini --set $cfg \ + DEFAULT \ + rpc_backend \ + "cinder.openstack.common.rpc.impl_kombu" + +# rabbit +crudini --set $cfg \ + DEFAULT \ + rabbit_host \ + "${RABBITMQ_SERVICE_HOST}" +crudini --set $cfg \ + DEFAULT \ + rabbit_port \ + "${RABBITMQ_SERVICE_PORT}" +crudini --set $cfg \ + DEFAULT \ + rabbit_hosts \ + "${RABBITMQ_SERVICE_HOST}:${RABBITMQ_SERVICE_PORT}" +crudini --set $cfg \ + DEFAULT \ + rabbit_userid \ + "${RABBIT_USERID}" +crudini --set $cfg \ + DEFAULT \ + rabbit_password \ + "${RABBIT_PASSWORD}" +crudini --set /etc/cinder/cinder.conf \ + DEFAULT \ + rabbit_virtual_host \ + "/" +crudini --set /etc/cinder/cinder.conf \ + DEFAULT \ + rabbit_ha_queues \ + "False" + +# control_exchange +crudini --set /etc/cinder/cinder.conf \ + DEFAULT \ + control_exchange \ + "openstack" + +# glance +crudini --set $cfg \ + DEFAULT \ + glance_host \ + "${GLANCE_API_SERVICE_HOST}" +crudini --set $cfg \ + DEFAULT \ + glance_port \ + "${GLANCE_API_SERVICE_PORT}" + +# database +crudini --set $cfg \ + database \ + connection \ + "mysql://${CINDER_DB_USER}:${CINDER_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${CINDER_DB_NAME}" + +# keystone +crudini --set $cfg \ + DEFAULT \ + auth_strategy \ + "keystone" +crudini --del $cfg \ + keystone_authtoken \ + auth_protocol +crudini --del $cfg \ + keystone_authtoken \ + auth_host +crudini --del $cfg \ + keystone_authtoken \ + auth_port +crudini --set $cfg \ + keystone_authtoken \ + auth_uri \ + "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" +crudini --set $cfg \ + keystone_authtoken \ + identity_uri \ + "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}" +crudini --set $cfg \ + keystone_authtoken \ + admin_tenant_name \ + "${ADMIN_TENANT_NAME}" +crudini --set $cfg \ + keystone_authtoken \ + admin_user \ + "${CINDER_KEYSTONE_USER}" +crudini --set $cfg \ + keystone_authtoken \ + admin_password \ + "${CINDER_KEYSTONE_PASSWORD}" diff --git a/docker/centos/binary/cinder-app/cinder-scheduler/Dockerfile b/docker/centos/binary/cinder-app/cinder-scheduler/Dockerfile new file mode 100644 index 0000000000..344dc142f5 --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-scheduler/Dockerfile @@ -0,0 +1,6 @@ +FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%cinder-base:%%KOLLA_TAG%% +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +ADD ./start.sh /start.sh + +CMD ["/start.sh"] diff --git a/docker/centos/binary/cinder-app/cinder-scheduler/build b/docker/centos/binary/cinder-app/cinder-scheduler/build new file mode 120000 index 0000000000..ec19138031 --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-scheduler/build @@ -0,0 +1 @@ +../../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-scheduler/start.sh b/docker/centos/binary/cinder-app/cinder-scheduler/start.sh new file mode 100755 index 0000000000..93efeb4062 --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-scheduler/start.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-cinder.sh + +fail_unless_db + +check_required_vars MARIADB_SERVICE_HOST DB_ROOT_PASSWORD \ + CINDER_DB_NAME CINDER_DB_USER CINDER_DB_PASSWORD \ + CINDER_SCHEDULER_LOG_FILE INIT_CINDER_DB + +cfg=/etc/cinder/cinder.conf + +if [ "${INIT_CINDER_DB}" == "true" ]; then + mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF +CREATE DATABASE IF NOT EXISTS ${CINDER_DB_NAME}; +GRANT ALL PRIVILEGES ON ${CINDER_DB_NAME}.* TO +'${CINDER_DB_USER}'@'%' IDENTIFIED BY '${CINDER_DB_PASSWORD}' +EOF + + su -s /bin/sh -c "cinder-manage db sync" cinder +fi + +crudini --set $cfg \ + DEFAULT \ + log_file \ + "${CINDER_SCHEDULER_LOG_FILE}" + +echo "Starting cinder-scheduler" +exec /usr/bin/cinder-scheduler --config-file $cfg diff --git a/docker/centos/binary/cinder-app/cinder-volume/Dockerfile b/docker/centos/binary/cinder-app/cinder-volume/Dockerfile new file mode 100644 index 0000000000..d82fed03c3 --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-volume/Dockerfile @@ -0,0 +1,17 @@ +FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%cinder-base:%%KOLLA_TAG%% +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +# Install required packages +# https://bugs.launchpad.net/kolla/+bug/1460129 +# Iscsi will be removed from cinder-volume in a later patch +# so that we continue to follow the container best practices. +# There will also be other backends for cinder and iscsi should +# not be hardcoded here. +RUN yum install -y lvm2 scsi-target-utils && yum clean all + +# Add start scripts +COPY start.sh /start.sh +COPY volume-group-create.sh /opt/kolla/volume-group-create.sh + +# Start supervisor +CMD ["/start.sh"] diff --git a/docker/centos/binary/cinder-app/cinder-volume/build b/docker/centos/binary/cinder-app/cinder-volume/build new file mode 120000 index 0000000000..ec19138031 --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-volume/build @@ -0,0 +1 @@ +../../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-volume/start.sh b/docker/centos/binary/cinder-app/cinder-volume/start.sh new file mode 100755 index 0000000000..db29e75deb --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-volume/start.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-cinder.sh +. /opt/kolla/volume-group-create.sh + +check_required_vars CINDER_VOLUME_API_LISTEN ISCSI_HELPER ISCSI_IP_ADDRESS \ + CINDER_VOLUME_GROUP CINDER_LVM_LO_VOLUME_SIZE \ + CINDER_VOLUME_BACKEND_NAME CINDER_VOLUME_DRIVER \ + CINDER_ENABLED_BACKEND CINDER_VOLUME_LOG_FILE + +cfg=/etc/cinder/cinder.conf + +# Logging +crudini --set $cfg \ + DEFAULT \ + log_file \ + "${CINDER_VOLUME_LOG_FILE}" + +# IP address on which OpenStack Volume API listens +crudini --set $cfg \ + DEFAULT \ + osapi_volume_listen \ + "${CINDER_VOLUME_API_LISTEN}" + +# The IP address that the iSCSI daemon is listening on +crudini --set $cfg \ + DEFAULT \ + iscsi_ip_address \ + "${ISCSI_IP_ADDRESS}" + +# Set to false when using loopback devices (testing) +crudini --set $cfg \ + DEFAULT \ + secure_delete \ + "false" + +crudini --set $cfg \ + DEFAULT \ + enabled_backends \ + "${CINDER_ENABLED_BACKEND}" + +crudini --set $cfg \ + lvm57 \ + iscsi_helper \ + "${ISCSI_HELPER}" + +crudini --set $cfg \ + lvm57 \ + volume_group \ + "${CINDER_VOLUME_GROUP}" + +crudini --set $cfg \ + lvm57 \ + volume_driver \ + "${CINDER_VOLUME_DRIVER}" + +crudini --set $cfg \ + lvm57 \ + iscsi_ip_address \ + "${ISCSI_IP_ADDRESS}" + +crudini --set $cfg \ + lvm57 \ + volume_backend_name \ + "${CINDER_VOLUME_BACKEND_NAME}" + +sed -i 's/udev_sync = 1/udev_sync = 0/' /etc/lvm/lvm.conf +sed -i 's/udev_rules = 1/udev_rules = 0/' /etc/lvm/lvm.conf +sed -i 's/use_lvmetad = 1/use_lvmetad = 0/' /etc/lvm/lvm.conf + +echo "Starting cinder-volume" +exec /usr/bin/cinder-volume --config-file /etc/cinder/cinder.conf diff --git a/docker/centos/binary/cinder-app/cinder-volume/volume-group-create.sh b/docker/centos/binary/cinder-app/cinder-volume/volume-group-create.sh new file mode 100755 index 0000000000..908d987b0d --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-volume/volume-group-create.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# The script will create the cinder-volume volume group that will +# allow cinder to create volumes from a backing file. +# This is based off devstack. +set -e + +backing_file=/opt/data/cinder_volume + +check_required_vars CINDER_LVM_LO_VOLUME_SIZE CINDER_VOLUME_GROUP + +if ! vgs ${CINDER_VOLUME_GROUP}; then + [[ ! -f $backing_file ]] && truncate -s ${CINDER_LVM_LO_VOLUMES_SIZE} $backing_file + vg_dev=`losetup -f --show $backing_file` + if ! vgs ${CINDER_VOLUME_GROUP}; then + vgcreate ${CINDER_VOLUME_GROUP} $vg_dev + fi +fi + +# Remove iscsi targets +cinder-rtstool get-targets | xargs -rn 1 cinder-rtstool delete + diff --git a/docker/centos/binary/cinder-data/Dockerfile b/docker/centos/binary/cinder-data/Dockerfile new file mode 100644 index 0000000000..117e74da1f --- /dev/null +++ b/docker/centos/binary/cinder-data/Dockerfile @@ -0,0 +1,9 @@ +FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%base:%%KOLLA_TAG%% +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +RUN mkdir -p /opt/data +VOLUME [ "/opt/data" ] + +# Command needed to start the data container. +# Note: data containers do not need to be persistent. +CMD ["/bin/true"] diff --git a/docker/centos/binary/cinder/build b/docker/centos/binary/cinder-data/build similarity index 100% rename from docker/centos/binary/cinder/build rename to docker/centos/binary/cinder-data/build diff --git a/docker/centos/binary/cinder/start.sh b/docker/centos/binary/cinder/start.sh deleted file mode 100755 index c0d796f02c..0000000000 --- a/docker/centos/binary/cinder/start.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/bash -e - -: ${CINDER_DB_USER:=cinder} -: ${CINDER_DB_NAME:=cinder} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${CINDER_KEYSTONE_USER:=cinder} -: ${ADMIN_TENANT_NAME:=admin} - -if ! [ "$CINDER_DB_PASSWORD" ]; then - CINDER_DB_PASSWORD=$(openssl rand -hex 15) - export CINDER_DB_PASSWORD -fi - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - CINDER_ADMIN_PASSWORD -fail_unless_db - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${CINDER_DB_NAME}; -GRANT ALL PRIVILEGES ON glance* TO - '${CINDER_DB_USER}'@'%' IDENTIFIED BY '${CINDER_DB_PASSWORD}' -EOF - -#-----Cinder.conf setup----- - -# Cinder database -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - db_driver \ - "cinder.db" - -# Rabbit -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - rabbit_host \ - "127.0.0.1" -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - rabbit_port \ - "5672" -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - rabbit_hosts \ - "127.0.0.1:5672" -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - rabbit_userid \ - "guest" -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - rabbit_password \ - "guest" -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - rabbit_virtual_host \ - "/" -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - rabbit_ha_queues \ - "False" - -# backend -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - rpc_backend \ - "cinder.openstack.common.rpc.impl_kombu" - -# control_exchange -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - control_exchange \ - "openstack" - -# osapi -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - osapi_volume_listen \ - "0.0.0.0" - -# api_paste_config -crudini --set /etc/cinder/cinder.conf \ - DEFUALT \ - api_paste_config \ - "/etc/cinder/api-paste.ini" - -# auth_strategy -crudini --set /etc/cinder/cinder.conf \ - DEFUALT \ - auth_strategy \ - "keystone" - -# debug -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - debug \ - "False" - -# verbose -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - verbose \ - "True" - -# logs -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - log_dir \ - "/var/log/cinder/" -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - log_file \ - "/var/log/cinder/cinder.log" - -# use_sysloge -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - use_syslog \ - "False" - -# iscsi -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - iscsi_ip_address \ - "127.0.0.1" -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - iscsi_helper \ - "tgtadm" - -# volume_group -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - volume_group \ - "cinder-volumes" - - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" - -/bin/keystone user-create --name ${CINDER_KEYSTONE_USER} --pass ${CINDER_ADMIN_PASSWORD} -/bin/keystone role-create --name ${CINDER_KEYSTONE_USER} -/bin/keystone user-role-add --user ${CINDER_KEYSTONE_USER} --role admin --tenant ${ADMIN_TENANT_NAME} - -exec /usr/bin/cinder-all -