aboutsummaryrefslogtreecommitdiff
path: root/docker/common/ceilometer
diff options
context:
space:
mode:
authorPaul Bourke <paul.bourke@oracle.com>2015-06-17 11:14:59 +0000
committerPaul Bourke <paul.bourke@oracle.com>2015-06-19 17:12:05 +0000
commit897337cdd61f1702aa7e68da0466804bf0d21a86 (patch)
treed8489ef0f286ff69f10ebe0b42eca6cf8b1cc123 /docker/common/ceilometer
parentc2b05b576f45ddf432571f817be45e6bcb188f75 (diff)
downloadkolla-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')
-rw-r--r--docker/common/ceilometer/ceilometer-alarm/start.sh10
-rw-r--r--docker/common/ceilometer/ceilometer-api/start.sh51
-rw-r--r--docker/common/ceilometer/ceilometer-base/config-ceilometer.sh71
-rw-r--r--docker/common/ceilometer/ceilometer-central/start.sh14
-rw-r--r--docker/common/ceilometer/ceilometer-collector/start.sh9
-rw-r--r--docker/common/ceilometer/ceilometer-compute/start.sh25
-rw-r--r--docker/common/ceilometer/ceilometer-notification/start.sh9
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