diff options
| author | Paul Bourke <paul.bourke@oracle.com> | 2015-06-17 11:14:59 +0000 |
|---|---|---|
| committer | Paul Bourke <paul.bourke@oracle.com> | 2015-06-19 17:12:05 +0000 |
| commit | 897337cdd61f1702aa7e68da0466804bf0d21a86 (patch) | |
| tree | d8489ef0f286ff69f10ebe0b42eca6cf8b1cc123 /docker/common/ceilometer | |
| parent | c2b05b576f45ddf432571f817be45e6bcb188f75 (diff) | |
| download | kolla-897337cdd61f1702aa7e68da0466804bf0d21a86.tar.gz kolla-897337cdd61f1702aa7e68da0466804bf0d21a86.zip | |
Symlink all non Dockerfile resources in images
The only files in the docker image directories that differ majorly between
distros are the Dockerfiles (e.g. different package manager mechanisms,
different repo sources, etc).
The supporting files such as the start.sh/check.sh and config files should
largely stay the same between base images.
This change moves these files up into a "common" directory, and symlinks them
in the same way that the build script is managed. This means when adding a new
base distro only new Dockerfiles need to be created. Also, if a distro does
happen to require a vastly different start.sh script for example, one can
choose to simply not symlink to the common and instead drop in a custom one.
Implements: blueprint refactor-base-image-layout
Change-Id: Ic4db69d31ff54a1fb95af4853a2e5ae490064284
Diffstat (limited to 'docker/common/ceilometer')
7 files changed, 189 insertions, 0 deletions
diff --git a/docker/common/ceilometer/ceilometer-alarm/start.sh b/docker/common/ceilometer/ceilometer-alarm/start.sh new file mode 100644 index 000000000..7470ae608 --- /dev/null +++ b/docker/common/ceilometer/ceilometer-alarm/start.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-ceilometer.sh + + +exec /usr/bin/ceilometer-alarm-evaluator & +exec /usr/bin/ceilometer-alarm-notifier diff --git a/docker/common/ceilometer/ceilometer-api/start.sh b/docker/common/ceilometer/ceilometer-api/start.sh new file mode 100644 index 000000000..f081c9f84 --- /dev/null +++ b/docker/common/ceilometer/ceilometer-api/start.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-ceilometer.sh + +check_required_vars CEILOMETER_DB_USER CEILOMETER_DB_NAME \ + CEILOMETER_DB_PASSWORD KEYSTONE_ADMIN_TOKEN \ + KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_HOST \ + KEYSTONE_ADMIN_SERVICE_PORT ADMIN_TENANT_NAME \ + CEILOMETER_KEYSTONE_USER CEILOMETER_ADMIN_PASSWORD \ + CEILOMETER_API_SERVICE_HOST PUBLIC_IP + +fail_unless_os_service_running keystone +fail_unless_db + +#TODO(pkilambi): Add mongodb support + +mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF +CREATE DATABASE IF NOT EXISTS ${CEILOMETER_DB_NAME} DEFAULT CHARACTER SET utf8; +GRANT ALL PRIVILEGES ON ${CEILOMETER_DB_NAME}.* TO + '${CEILOMETER_DB_USER}'@'%' IDENTIFIED BY '${CEILOMETER_DB_PASSWORD}' + +EOF + + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" + + +crux user-create -n ${CEILOMETER_KEYSTONE_USER} \ + -p ${CEILOMETER_ADMIN_PASSWORD} \ + -t ${ADMIN_TENANT_NAME} \ + -r admin + +crux service-create -n ${CEILOMETER_KEYSTONE_USER} -t metering \ + -d "Ceilometer Telemetry Service" + +crux endpoint-create i--remove-all -n ${CEILOMETER_KEYSTONE_USER} -t metering \ + -I "${KEYSTONE_AUTH_PROTOCOL}://${CEILOMETER_API_SERVICE_HOST}:8777" \ + -P "${KEYSTONE_AUTH_PROTOCOL}://${PUBLIC_IP}:8777" \ + -A "${KEYSTONE_AUTH_PROTOCOL}://${CEILOMETER_API_SERVICE_HOST}:8777" + +cfg=/etc/ceilometer/ceilometer.conf +crudini --set $cfg \ + DEFAULT connection + "mysql://${CEILOMETER_DB_USER}:${CEILOMETER_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${CEILOMETER_DB_NAME}" + + +exec /usr/bin/ceilometer-api diff --git a/docker/common/ceilometer/ceilometer-base/config-ceilometer.sh b/docker/common/ceilometer/ceilometer-base/config-ceilometer.sh new file mode 100644 index 000000000..a2316dcd1 --- /dev/null +++ b/docker/common/ceilometer/ceilometer-base/config-ceilometer.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +set -e +. /opt/kolla/kolla-common.sh + +: ${CEILOMETER_DB_USER:=ceilometer} +: ${CEILOMETER_DB_NAME:=ceilometer} +: ${KEYSTONE_AUTH_PROTOCOL:=http} +: ${CEILOMETER_KEYSTONE_USER:=admin} +: ${CEILOMETER_ADMIN_PASSWORD:=kolla} +: ${ADMIN_TENANT_NAME:=admin} +: ${METERING_SECRET:=ceilometer} +: ${RABBIT_PASSWORD:=guest} + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + KEYSTONE_ADMIN_SERVICE_PORT KEYSTONE_PUBLIC_SERVICE_HOST \ +dump_vars + +cat > /openrc <<EOF +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" +EOF + + +cfg=/etc/ceilometer/ceilometer.conf + +crudini --set $cfg \ + DEFAULT rpc_backend rabbit +crudini --set $cfg \ + DEFAULT rabbit_host ${RABBITMQ_SERVICE_HOST} +crudini --set $cfg \ + DEFAULT rabbit_password ${RABBIT_PASSWORD} + +crudini --set $cfg \ + keystone_authtoken \ + auth_uri \ + "http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/" +crudini --set $cfg \ + keystone_authtoken \ + admin_tenant_name \ + "${ADMIN_TENANT_NAME}" +crudini --set $cfg \ + keystone_authtoken \ + admin_user \ + "${CEILOMETER_KEYSTONE_USER}" +crudini --set $cfg \ + keystone_authtoken \ + admin_password \ + ${CEILOMETER_ADMIN_PASSWORD} + +crudini --set $cfg \ + service_credentials \ + os_auth_url \ + ${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/ +crudini --set $cfg \ + service_credentials \ + os_username \ + ceilometer +crudini --set $cfg \ + service_credentials \ + os_tenant_name \ + service +crudini --set $cfg \ + service_credentials \ + os_password \ + ${CEILOMETER_ADMIN_PASSWORD} + +crudini --set $cfg \ + publisher + metering_secret + ${METERING_SECRET} diff --git a/docker/common/ceilometer/ceilometer-central/start.sh b/docker/common/ceilometer/ceilometer-central/start.sh new file mode 100644 index 000000000..76f9a1fc2 --- /dev/null +++ b/docker/common/ceilometer/ceilometer-central/start.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-ceilometer.sh + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_AUTH_PROTOCOL \ + KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_PORT + +fail_unless_os_service_running keystone + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" + +exec /usr/bin/ceilometer-agent-central diff --git a/docker/common/ceilometer/ceilometer-collector/start.sh b/docker/common/ceilometer/ceilometer-collector/start.sh new file mode 100644 index 000000000..1ed4c9e7d --- /dev/null +++ b/docker/common/ceilometer/ceilometer-collector/start.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-ceilometer.sh + + +exec /usr/bin/ceilometer-collector diff --git a/docker/common/ceilometer/ceilometer-compute/start.sh b/docker/common/ceilometer/ceilometer-compute/start.sh new file mode 100644 index 000000000..f4fc30bae --- /dev/null +++ b/docker/common/ceilometer/ceilometer-compute/start.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-ceilometer.sh + + +check_required_vars KEYSTONE_ADMIN_TOKEN RABBITMQ_SERVICE_HOST RABBIT_PASSWORD + +fail_unless_os_service_running keystone + +# Nova conf settings +crudini --set /etc/nova/nova.conf DEFAULT instance_usage_audit True +crudini --set /etc/nova/nova.conf DEFAULT instance_usage_audit_period hour +crudini --set /etc/nova/nova.conf DEFAULT notify_on_state_change vm_and_task_state +crudini --set /etc/nova/nova.conf DEFAULT notification_driver nova.openstack.common.notifier.rpc_notifier +crudini --set /etc/nova/nova.conf DEFAULT notification_driver ceilometer.compute.nova_notifier + +#ceilometer settings +cfg=/etc/ceilometer/ceilometer.conf +crudini --set $cfg publisher_rpc metering_secret ${KEYSTONE_ADMIN_TOKEN} +crudini --set $cfg rabbit_host ${RABBITMQ_SERVICE_HOST} +crudini --set $cfg rabbit_password ${RABBIT_PASSWORD} + + +exec /usr/bin/ceilometer-agent-compute diff --git a/docker/common/ceilometer/ceilometer-notification/start.sh b/docker/common/ceilometer/ceilometer-notification/start.sh new file mode 100644 index 000000000..939734549 --- /dev/null +++ b/docker/common/ceilometer/ceilometer-notification/start.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-ceilometer.sh + + +exec /usr/bin/ceilometer-agent-notification |
