aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPradeep Kilambi <pkilambi@cisco.com>2014-10-17 16:44:31 -0400
committerPradeep Kilambi <pkilambi@cisco.com>2014-11-12 14:31:03 -0500
commitaed78804ef9c87931d61a8036bcfa229704ae0e6 (patch)
tree0853543be0972c05f8571fc72648d7aa147be721
parent277f2448e8fde089cfed0a3dfe2e74dc265af447 (diff)
downloadkolla-aed78804ef9c87931d61a8036bcfa229704ae0e6.tar.gz
kolla-aed78804ef9c87931d61a8036bcfa229704ae0e6.zip
Add Ceilometer service support
Implements: blueprint kube-ceilometer-container Change-Id: Ic9be6f2fb57641aa77f7f3a31481b166adad3f36
-rw-r--r--docker/ceilometer/ceilometer-alarm/Dockerfile7
l---------docker/ceilometer/ceilometer-alarm/build1
-rw-r--r--docker/ceilometer/ceilometer-alarm/start.sh10
-rw-r--r--docker/ceilometer/ceilometer-api/Dockerfile9
l---------docker/ceilometer/ceilometer-api/build1
-rw-r--r--docker/ceilometer/ceilometer-api/start.sh46
-rw-r--r--docker/ceilometer/ceilometer-base/Dockerfile5
l---------docker/ceilometer/ceilometer-base/build1
-rw-r--r--docker/ceilometer/ceilometer-base/config-ceilometer.sh69
-rw-r--r--docker/ceilometer/ceilometer-central/Dockerfile7
l---------docker/ceilometer/ceilometer-central/build1
-rw-r--r--docker/ceilometer/ceilometer-central/start.sh14
-rw-r--r--docker/ceilometer/ceilometer-collector/Dockerfile7
l---------docker/ceilometer/ceilometer-collector/build1
-rw-r--r--docker/ceilometer/ceilometer-collector/start.sh9
-rw-r--r--docker/ceilometer/ceilometer-compute/Dockerfile8
l---------docker/ceilometer/ceilometer-compute/build1
-rw-r--r--docker/ceilometer/ceilometer-compute/start.sh25
-rw-r--r--docker/ceilometer/ceilometer-notification/Dockerfile7
l---------docker/ceilometer/ceilometer-notification/build1
-rw-r--r--docker/ceilometer/ceilometer-notification/start.sh9
-rw-r--r--k8s/pod/ceilometer-controller-pod.yaml55
-rw-r--r--k8s/pod/nova-compute-pod.yaml9
-rw-r--r--k8s/service/ceilometer-api-service.yaml7
-rwxr-xr-xtools/start-all-pods1
-rwxr-xr-xtools/start-all-services1
26 files changed, 312 insertions, 0 deletions
diff --git a/docker/ceilometer/ceilometer-alarm/Dockerfile b/docker/ceilometer/ceilometer-alarm/Dockerfile
new file mode 100644
index 000000000..7bcbf30ae
--- /dev/null
+++ b/docker/ceilometer/ceilometer-alarm/Dockerfile
@@ -0,0 +1,7 @@
+FROM kollaglue/fedora-rdo-ceilometer-base
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+RUN yum install -y openstack-ceilometer-alarm && yum clean all
+
+ADD ./start.sh /start.sh
+CMD ["/start.sh"]
diff --git a/docker/ceilometer/ceilometer-alarm/build b/docker/ceilometer/ceilometer-alarm/build
new file mode 120000
index 000000000..43944faa0
--- /dev/null
+++ b/docker/ceilometer/ceilometer-alarm/build
@@ -0,0 +1 @@
+../../../tools/build-docker-image \ No newline at end of file
diff --git a/docker/ceilometer/ceilometer-alarm/start.sh b/docker/ceilometer/ceilometer-alarm/start.sh
new file mode 100644
index 000000000..2096348c4
--- /dev/null
+++ b/docker/ceilometer/ceilometer-alarm/start.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+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/ceilometer/ceilometer-api/Dockerfile b/docker/ceilometer/ceilometer-api/Dockerfile
new file mode 100644
index 000000000..29a46b39f
--- /dev/null
+++ b/docker/ceilometer/ceilometer-api/Dockerfile
@@ -0,0 +1,9 @@
+FROM kollaglue/fedora-rdo-ceilometer-base
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+RUN yum install -y openstack-ceilometer-api && yum clean all
+
+EXPOSE 8777
+
+ADD ./start.sh /start.sh
+CMD ["/start.sh"]
diff --git a/docker/ceilometer/ceilometer-api/build b/docker/ceilometer/ceilometer-api/build
new file mode 120000
index 000000000..43944faa0
--- /dev/null
+++ b/docker/ceilometer/ceilometer-api/build
@@ -0,0 +1 @@
+../../../tools/build-docker-image \ No newline at end of file
diff --git a/docker/ceilometer/ceilometer-api/start.sh b/docker/ceilometer/ceilometer-api/start.sh
new file mode 100644
index 000000000..8c9acef5f
--- /dev/null
+++ b/docker/ceilometer/ceilometer-api/start.sh
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+set -e
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-ceilometer.sh
+
+check_required_vars CEILOMETER_DB_USER CEILOMETER_DB_NAME KEYSTONE_AUTH_PROTOCOL CEILOMETER_KEYSTONE_USER CEILOMETER_ADMIN_PASSWORD ADMIN_TENANT_NAME METERING_SECRET CEILOMETER_API_SERVICE_HOST PUBLIC_IP
+
+check_for_keystone
+check_for_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/ceilometer/ceilometer-base/Dockerfile b/docker/ceilometer/ceilometer-base/Dockerfile
new file mode 100644
index 000000000..c166027cd
--- /dev/null
+++ b/docker/ceilometer/ceilometer-base/Dockerfile
@@ -0,0 +1,5 @@
+FROM kollaglue/fedora-rdo-base
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+RUN mkdir -p /opt/kolla
+COPY config-ceilometer.sh /opt/kolla/config-ceilometer.sh
diff --git a/docker/ceilometer/ceilometer-base/build b/docker/ceilometer/ceilometer-base/build
new file mode 120000
index 000000000..43944faa0
--- /dev/null
+++ b/docker/ceilometer/ceilometer-base/build
@@ -0,0 +1 @@
+../../../tools/build-docker-image \ No newline at end of file
diff --git a/docker/ceilometer/ceilometer-base/config-ceilometer.sh b/docker/ceilometer/ceilometer-base/config-ceilometer.sh
new file mode 100644
index 000000000..64008ab8b
--- /dev/null
+++ b/docker/ceilometer/ceilometer-base/config-ceilometer.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+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}
+
+check_required_vars CEILOMETER_DB_PASSWORD KEYSTONE_ADMIN_TOKEN DB_ROOT_PASSWORD
+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 ${KEYSTONE_SERVICE_HOST}
+crudini --set $cfg \
+ DEFAULT rabbit_password ${RABBITMQ_PASS}
+
+crudini --set $cfg \
+ keystone_authtoken \
+ auth_uri \
+ "http://${KEYSTONE_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_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/ceilometer/ceilometer-central/Dockerfile b/docker/ceilometer/ceilometer-central/Dockerfile
new file mode 100644
index 000000000..a20c6712c
--- /dev/null
+++ b/docker/ceilometer/ceilometer-central/Dockerfile
@@ -0,0 +1,7 @@
+FROM kollaglue/fedora-rdo-ceilometer-base
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+RUN yum install -y openstack-ceilometer-central && yum clean all
+
+ADD ./start.sh /start.sh
+CMD ["/start.sh"]
diff --git a/docker/ceilometer/ceilometer-central/build b/docker/ceilometer/ceilometer-central/build
new file mode 120000
index 000000000..43944faa0
--- /dev/null
+++ b/docker/ceilometer/ceilometer-central/build
@@ -0,0 +1 @@
+../../../tools/build-docker-image \ No newline at end of file
diff --git a/docker/ceilometer/ceilometer-central/start.sh b/docker/ceilometer/ceilometer-central/start.sh
new file mode 100644
index 000000000..a40a3dde0
--- /dev/null
+++ b/docker/ceilometer/ceilometer-central/start.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-ceilometer.sh
+
+check_required_vars KEYSTONE_AUTH_PROTOCOL CEILOMETER_KEYSTONE_USER CEILOMETER_ADMIN_PASSWORD ADMIN_TENANT_NAME
+
+check_for_keystone
+check_for_db
+
+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/ceilometer/ceilometer-collector/Dockerfile b/docker/ceilometer/ceilometer-collector/Dockerfile
new file mode 100644
index 000000000..8e76f43b1
--- /dev/null
+++ b/docker/ceilometer/ceilometer-collector/Dockerfile
@@ -0,0 +1,7 @@
+FROM kollaglue/fedora-rdo-ceilometer-base
+MAINTAINER Pradeep Kilambi <pkilambi@cisco.com>
+
+RUN yum install -y openstack-ceilometer-collector && yum clean all
+
+ADD ./start.sh /start.sh
+CMD ["/start.sh"]
diff --git a/docker/ceilometer/ceilometer-collector/build b/docker/ceilometer/ceilometer-collector/build
new file mode 120000
index 000000000..43944faa0
--- /dev/null
+++ b/docker/ceilometer/ceilometer-collector/build
@@ -0,0 +1 @@
+../../../tools/build-docker-image \ No newline at end of file
diff --git a/docker/ceilometer/ceilometer-collector/start.sh b/docker/ceilometer/ceilometer-collector/start.sh
new file mode 100644
index 000000000..21de9d315
--- /dev/null
+++ b/docker/ceilometer/ceilometer-collector/start.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -e
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-ceilometer.sh
+
+
+exec /usr/bin/ceilometer-collector
diff --git a/docker/ceilometer/ceilometer-compute/Dockerfile b/docker/ceilometer/ceilometer-compute/Dockerfile
new file mode 100644
index 000000000..07b38bcc5
--- /dev/null
+++ b/docker/ceilometer/ceilometer-compute/Dockerfile
@@ -0,0 +1,8 @@
+FROM kollaglue/fedora-rdo-ceilometer-base
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+RUN yum install -y openstack-ceilometer-compute python-ceilometerclient python-pecan \
+ && yum clean all
+
+ADD ./start.sh /start.sh
+CMD ["/start.sh"]
diff --git a/docker/ceilometer/ceilometer-compute/build b/docker/ceilometer/ceilometer-compute/build
new file mode 120000
index 000000000..43944faa0
--- /dev/null
+++ b/docker/ceilometer/ceilometer-compute/build
@@ -0,0 +1 @@
+../../../tools/build-docker-image \ No newline at end of file
diff --git a/docker/ceilometer/ceilometer-compute/start.sh b/docker/ceilometer/ceilometer-compute/start.sh
new file mode 100644
index 000000000..3e3c6c82a
--- /dev/null
+++ b/docker/ceilometer/ceilometer-compute/start.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-ceilometer.sh
+
+
+check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_SERVICE_HOST KEYSTONE_AUTH_PROTOCOL CEILOMETER_KEYSTONE_USER ADMIN_TENANT_NAME
+
+check_for_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 ${KEYSTONE_SERVICE_HOST}
+crudini --set $cfg rabbit_password ${RABBITMQ_PASS}
+
+
+exec /usr/bin/ceilometer-agent-compute
diff --git a/docker/ceilometer/ceilometer-notification/Dockerfile b/docker/ceilometer/ceilometer-notification/Dockerfile
new file mode 100644
index 000000000..385a27248
--- /dev/null
+++ b/docker/ceilometer/ceilometer-notification/Dockerfile
@@ -0,0 +1,7 @@
+FROM kollaglue/fedora-rdo-ceilometer-base
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+RUN yum install -y openstack-ceilometer-notification && yum clean all
+
+ADD ./start.sh /start.sh
+CMD ["/start.sh"]
diff --git a/docker/ceilometer/ceilometer-notification/build b/docker/ceilometer/ceilometer-notification/build
new file mode 120000
index 000000000..43944faa0
--- /dev/null
+++ b/docker/ceilometer/ceilometer-notification/build
@@ -0,0 +1 @@
+../../../tools/build-docker-image \ No newline at end of file
diff --git a/docker/ceilometer/ceilometer-notification/start.sh b/docker/ceilometer/ceilometer-notification/start.sh
new file mode 100644
index 000000000..f2f84789e
--- /dev/null
+++ b/docker/ceilometer/ceilometer-notification/start.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -e
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-ceilometer.sh
+
+
+exec /usr/bin/ceilometer-agent-notification
diff --git a/k8s/pod/ceilometer-controller-pod.yaml b/k8s/pod/ceilometer-controller-pod.yaml
new file mode 100644
index 000000000..ef94094f5
--- /dev/null
+++ b/k8s/pod/ceilometer-controller-pod.yaml
@@ -0,0 +1,55 @@
+desiredState:
+ manifest:
+ containers:
+ - env:
+ - name: DB_ROOT_PASSWORD
+ value: password
+ - name: CEILOMETER_DB_PASSWORD
+ value: ceilometerdbpassword
+ - name: KEYSTONE_ADMIN_TOKEN
+ value: ADMINTOKEN
+ image: kollaglue/fedora-rdo-ceilometer-api
+ name: ceilometer-api
+ ports:
+ - containerPort: 8777
+ - env:
+ - name: DB_ROOT_PASSWORD
+ value: password
+ - name: CEILOMETER_DB_PASSWORD
+ value: ceilometerdbpassword
+ - name: KEYSTONE_ADMIN_TOKEN
+ value: ADMINTOKEN
+ image: kollaglue/fedora-rdo-ceilometer-notification
+ name: ceilometer-notification
+ - env:
+ - name: DB_ROOT_PASSWORD
+ value: password
+ - name: CEILOMETER_DB_PASSWORD
+ value: ceilometerdbpassword
+ - name: KEYSTONE_ADMIN_TOKEN
+ value: ADMINTOKEN
+ image: kollaglue/fedora-rdo-ceilometer-central
+ name: ceilometer-central
+ - env:
+ - name: DB_ROOT_PASSWORD
+ value: password
+ - name: CEILOMETER_DB_PASSWORD
+ value: ceilometerdbpassword
+ - name: KEYSTONE_ADMIN_TOKEN
+ value: ADMINTOKEN
+ image: kollaglue/fedora-rdo-ceilometer-collector
+ name: ceilometer-collector
+ - env:
+ - name: DB_ROOT_PASSWORD
+ value: password
+ - name: CEILOMETER_DB_PASSWORD
+ value: ceilometerdbpassword
+ - name: KEYSTONE_ADMIN_TOKEN
+ value: ADMINTOKEN
+ image: kollaglue/fedora-rdo-ceilometer-alarm
+ name: ceilometer-alarm
+ id: ceilometer-1
+ version: v1beta1
+id: ceilometer
+labels:
+ name: ceilometer-controller
diff --git a/k8s/pod/nova-compute-pod.yaml b/k8s/pod/nova-compute-pod.yaml
index 7cd4ac444..446324010 100644
--- a/k8s/pod/nova-compute-pod.yaml
+++ b/k8s/pod/nova-compute-pod.yaml
@@ -21,6 +21,15 @@ desiredState:
name: nova-libvirt
ports:
- containerPort: 16509
+ - env:
+ - name: DB_ROOT_PASSWORD
+ value: password
+ - name: CEILOMETER_DB_PASSWORD
+ value: ceilometerdbpassword
+ - name: KEYSTONE_ADMIN_TOKEN
+ value: ADMINTOKEN
+ image: kollaglue/fedora-rdo-ceilometer-compute
+ name: ceilometer-compute
id: nova-1
version: v1beta1
id: nova
diff --git a/k8s/service/ceilometer-api-service.yaml b/k8s/service/ceilometer-api-service.yaml
new file mode 100644
index 000000000..e831cf481
--- /dev/null
+++ b/k8s/service/ceilometer-api-service.yaml
@@ -0,0 +1,7 @@
+apiVersion: v1beta1
+containerPort: 8777
+id: ceilometer-api
+kind: Service
+port: 8777
+selector:
+ name: ceilometer-controller
diff --git a/tools/start-all-pods b/tools/start-all-pods
index c3860266b..e2ee16c53 100755
--- a/tools/start-all-pods
+++ b/tools/start-all-pods
@@ -10,6 +10,7 @@ glance
nova-controller
neutron-controller
heat
+ceilometer-controller
'
for pod in $pods; do
diff --git a/tools/start-all-services b/tools/start-all-services
index a8856e8b4..51520ec66 100755
--- a/tools/start-all-services
+++ b/tools/start-all-services
@@ -3,6 +3,7 @@
cd $(git rev-parse --show-toplevel)
services='
+ceilometer-api
glance-api
glance-registry
keystone-admin