diff --git a/README.md b/README.md
index 3d52602d3719ed43b6d4123d2dc498b26caf44b9..fb85c1192aab272c37caf6c2181329658db1d369 100644
--- a/README.md
+++ b/README.md
@@ -46,6 +46,7 @@ services:
 * Horizon
 * Zaqar
 * Magnum
+* Gnocchi
 
 ```
 $ sudo docker search kollaglue
diff --git a/compose/gnocchi.yml b/compose/gnocchi.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cd3ead33023cdc4a1a39df2bb0e1800c8e0af59c
--- /dev/null
+++ b/compose/gnocchi.yml
@@ -0,0 +1,15 @@
+gnocchiapi:
+  image: kollaglue/centos-rdo-gnocchi-api:latest
+  name: gnocchiapi
+  restart: always
+  env_file:
+    - openstack.env
+  net: "host"
+
+gnocchistatsd:
+  image: kollaglue/centos-rdo-gnocchi-statsd:latest
+  name: gnocchistatsd
+  restart: always
+  env_file:
+    - openstack.env
+  net: "host"
diff --git a/docker/centos/binary/gnocchi/gnocchi-api/Dockerfile b/docker/centos/binary/gnocchi/gnocchi-api/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..cd5974a22d23b7f711022a39703b2cbbed143664
--- /dev/null
+++ b/docker/centos/binary/gnocchi/gnocchi-api/Dockerfile
@@ -0,0 +1,10 @@
+FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%gnocchi-base:%%KOLLA_TAG%%
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+RUN yum install -y openstack-gnocchi-api \
+    openstack-gnocchi-carbonara \
+    openstack-gnocchi-indexer-sqlalchemy \
+    && yum clean all
+
+COPY ./start.sh /start.sh
+CMD ["/start.sh"]
diff --git a/docker/centos/binary/gnocchi/gnocchi-api/build b/docker/centos/binary/gnocchi/gnocchi-api/build
new file mode 120000
index 0000000000000000000000000000000000000000..ec19138031a79efca08ea540f84f25ef77ed2f22
--- /dev/null
+++ b/docker/centos/binary/gnocchi/gnocchi-api/build
@@ -0,0 +1 @@
+../../../../../tools/build-docker-image
\ No newline at end of file
diff --git a/docker/centos/binary/gnocchi/gnocchi-api/config-external.sh b/docker/centos/binary/gnocchi/gnocchi-api/config-external.sh
new file mode 120000
index 0000000000000000000000000000000000000000..471d03664b9b6a373dc0219639b3f565abfdb0d4
--- /dev/null
+++ b/docker/centos/binary/gnocchi/gnocchi-api/config-external.sh
@@ -0,0 +1 @@
+../../../../common/gnocchi/gnocchi-api/config-external.sh
\ No newline at end of file
diff --git a/docker/centos/binary/gnocchi/gnocchi-api/config-internal.sh b/docker/centos/binary/gnocchi/gnocchi-api/config-internal.sh
new file mode 120000
index 0000000000000000000000000000000000000000..79578ce601a1fd271093b175205145dd5e7d45dc
--- /dev/null
+++ b/docker/centos/binary/gnocchi/gnocchi-api/config-internal.sh
@@ -0,0 +1 @@
+../../../../common/gnocchi/gnocchi-api/config-internal.sh
\ No newline at end of file
diff --git a/docker/centos/binary/gnocchi/gnocchi-api/start.sh b/docker/centos/binary/gnocchi/gnocchi-api/start.sh
new file mode 120000
index 0000000000000000000000000000000000000000..99320c6d03160e7aa6914a6cbf962e14b1a7c790
--- /dev/null
+++ b/docker/centos/binary/gnocchi/gnocchi-api/start.sh
@@ -0,0 +1 @@
+../../../../common/gnocchi/gnocchi-api/start.sh
\ No newline at end of file
diff --git a/docker/centos/binary/gnocchi/gnocchi-base/Dockerfile b/docker/centos/binary/gnocchi/gnocchi-base/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..e9d67da7cead787ab698f24b3fc024e1cc047ff4
--- /dev/null
+++ b/docker/centos/binary/gnocchi/gnocchi-base/Dockerfile
@@ -0,0 +1,4 @@
+FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%base:%%KOLLA_TAG%%
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+COPY config-gnocchi.sh /opt/kolla/config-gnocchi.sh
diff --git a/docker/centos/binary/gnocchi/gnocchi-base/build b/docker/centos/binary/gnocchi/gnocchi-base/build
new file mode 120000
index 0000000000000000000000000000000000000000..ec19138031a79efca08ea540f84f25ef77ed2f22
--- /dev/null
+++ b/docker/centos/binary/gnocchi/gnocchi-base/build
@@ -0,0 +1 @@
+../../../../../tools/build-docker-image
\ No newline at end of file
diff --git a/docker/centos/binary/gnocchi/gnocchi-base/config-gnocchi.sh b/docker/centos/binary/gnocchi/gnocchi-base/config-gnocchi.sh
new file mode 120000
index 0000000000000000000000000000000000000000..75a8a5e104f88e9e56312be3f10bb4745fdb195d
--- /dev/null
+++ b/docker/centos/binary/gnocchi/gnocchi-base/config-gnocchi.sh
@@ -0,0 +1 @@
+../../../../common/gnocchi/gnocchi-base/config-gnocchi.sh
\ No newline at end of file
diff --git a/docker/centos/binary/gnocchi/gnocchi-statsd/Dockerfile b/docker/centos/binary/gnocchi/gnocchi-statsd/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..7998a3621e28682fa9d33fcef3c94934e26a1916
--- /dev/null
+++ b/docker/centos/binary/gnocchi/gnocchi-statsd/Dockerfile
@@ -0,0 +1,7 @@
+FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%gnocchi-base:%%KOLLA_TAG%%
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+RUN yum install -y openstack-gnocchi-statsd && yum clean all
+
+COPY ./start.sh /start.sh
+CMD ["/start.sh"]
diff --git a/docker/centos/binary/gnocchi/gnocchi-statsd/build b/docker/centos/binary/gnocchi/gnocchi-statsd/build
new file mode 120000
index 0000000000000000000000000000000000000000..ec19138031a79efca08ea540f84f25ef77ed2f22
--- /dev/null
+++ b/docker/centos/binary/gnocchi/gnocchi-statsd/build
@@ -0,0 +1 @@
+../../../../../tools/build-docker-image
\ No newline at end of file
diff --git a/docker/centos/binary/gnocchi/gnocchi-statsd/config-external.sh b/docker/centos/binary/gnocchi/gnocchi-statsd/config-external.sh
new file mode 120000
index 0000000000000000000000000000000000000000..fe516e42ce08787dbcdbc6d4bb5d2ae5cb0f2a14
--- /dev/null
+++ b/docker/centos/binary/gnocchi/gnocchi-statsd/config-external.sh
@@ -0,0 +1 @@
+../../../../common/gnocchi/gnocchi-statsd/config-external.sh
\ No newline at end of file
diff --git a/docker/centos/binary/gnocchi/gnocchi-statsd/config-internal.sh b/docker/centos/binary/gnocchi/gnocchi-statsd/config-internal.sh
new file mode 120000
index 0000000000000000000000000000000000000000..9d9ebfa7d614f2fb3eec2edb4acc4c09d48e5acc
--- /dev/null
+++ b/docker/centos/binary/gnocchi/gnocchi-statsd/config-internal.sh
@@ -0,0 +1 @@
+../../../../common/gnocchi/gnocchi-statsd/config-internal.sh
\ No newline at end of file
diff --git a/docker/centos/binary/gnocchi/gnocchi-statsd/start.sh b/docker/centos/binary/gnocchi/gnocchi-statsd/start.sh
new file mode 120000
index 0000000000000000000000000000000000000000..ad961553e2b04db7aeb5e72466f163a83b109170
--- /dev/null
+++ b/docker/centos/binary/gnocchi/gnocchi-statsd/start.sh
@@ -0,0 +1 @@
+../../../../common/gnocchi/gnocchi-statsd/start.sh
\ No newline at end of file
diff --git a/docker/common/gnocchi/gnocchi-api/config-external.sh b/docker/common/gnocchi/gnocchi-api/config-external.sh
new file mode 100755
index 0000000000000000000000000000000000000000..59639ba637148d1ea10628207b1fa51c7e668844
--- /dev/null
+++ b/docker/common/gnocchi/gnocchi-api/config-external.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+SOURCE="/opt/kolla/gnocchi-api/gnocchi-api.conf"
+TARGET="/etc/gnocchi/gnocchi-api.conf"
+OWNER="gnocchi"
+
+if [[ -f "$SOURCE" ]]; then
+    cp $SOURCE $TARGET
+    chown ${OWNER}: $TARGET
+    chmod 0644 $TARGET
+fi
diff --git a/docker/common/gnocchi/gnocchi-api/config-internal.sh b/docker/common/gnocchi/gnocchi-api/config-internal.sh
new file mode 100755
index 0000000000000000000000000000000000000000..411e9ae8ae906964ae72b6f939b945c6935dc327
--- /dev/null
+++ b/docker/common/gnocchi/gnocchi-api/config-internal.sh
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+set -e
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-gnocchi.sh
+
+check_required_vars KEYSTONE_ADMIN_TOKEN \
+                    KEYSTONE_AUTH_PROTOCOL \
+                    KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT \
+                    ADMIN_TENANT_NAME \
+                    GNOCCHI_DB_NAME \
+                    GNOCCHI_DB_USER \
+                    GNOCCHI_DB_PASSWORD \
+                    GNOCCHI_SERVICE_PROTOCOL \
+                    GNOCCHI_SERVICE_PORT \
+                    GNOCCHI_ARCHIVE_POLICY \
+                    GNOCCHI_STORAGE_BACKEND \
+                    GNOCCHI_KEYSTONE_USER \
+                    GNOCCHI_ADMIN_PASSWORD \
+                    GNOCCHI_API_SERVICE_HOST
+
+fail_unless_os_service_running keystone
+fail_unless_db
+
+mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF
+CREATE DATABASE IF NOT EXISTS ${GNOCCHI_DB_NAME} DEFAULT CHARACTER SET utf8;
+GRANT ALL PRIVILEGES ON ${GNOCCHI_DB_NAME}.* TO
+       '${GNOCCHI_DB_USER}'@'%' IDENTIFIED BY '${GNOCCHI_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 ${GNOCCHI_KEYSTONE_USER} \
+    -p ${GNOCCHI_ADMIN_PASSWORD} \
+    -t ${ADMIN_TENANT_NAME} \
+    -r service
+
+crux service-create -n ${GNOCCHI_KEYSTONE_USER} -t "metric" \
+    -d "OpenStack Metric Service"
+
+crux endpoint-create i--remove-all -n ${GNOCCHI_KEYSTONE_USER} -t metric \
+    -I "${GNOCCHI_SERVICE_PROTOCOL}://${GNOCCHI_API_SERVICE_HOST}:${GNOCCHI_SERVICE_PORT}" \
+    -P "${GNOCCHI_SERVICE_PROTOCOL}://${GNOCCHI_API_SERVICE_HOST}:${GNOCCHI_SERVICE_PORT}" \
+    -A "${GNOCCHI_SERVICE_PROTOCOL}://${GNOCCHI_API_SERVICE_HOST}:${GNOCCHI_SERVICE_PORT}"
+
+exec /usr/bin/gnocchi-api
diff --git a/docker/common/gnocchi/gnocchi-api/start.sh b/docker/common/gnocchi/gnocchi-api/start.sh
new file mode 100755
index 0000000000000000000000000000000000000000..704183ac87c36fd2e7d0424e039d6a502aa5649e
--- /dev/null
+++ b/docker/common/gnocchi/gnocchi-api/start.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+set -o errexit
+
+CMD="/usr/bin/gnocchi-api"
+ARGS=""
+
+# Loading common functions.
+source /opt/kolla/kolla-common.sh
+
+# Config-internal script exec out of this function, it does not return here.
+set_configs
+
+# 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 "gnocchi-manage db_sync" gnocchi
+    exit 0
+fi
+
+exec $CMD $ARGS
+
diff --git a/docker/common/gnocchi/gnocchi-base/config-gnocchi.sh b/docker/common/gnocchi/gnocchi-base/config-gnocchi.sh
new file mode 100755
index 0000000000000000000000000000000000000000..fb5f5c55c4b95b622bb8bf31fd6861ab910edede
--- /dev/null
+++ b/docker/common/gnocchi/gnocchi-base/config-gnocchi.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+set -e
+. /opt/kolla/kolla-common.sh
+
+check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT KEYSTONE_PUBLIC_SERVICE_HOST \
+                    GNOCCHI_STORAGE_BACKEND GNOCCHI_DATA_DIR GNOCCHI_SERVICE_PORT
+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/gnocchi/gnocchi.conf
+crudini --set $cfg \
+    storage driver "$GNOCCHI_STORAGE_BACKEND"
+crudini --set $cfg \
+    storage file_basepath "$GNOCCHI_DATA_DIR"
+crudini --set $cfg \
+    indexer url "mysql://$GNOCCHI_DB_USER:$GNOCCHI_DB_PASSWORD@$MARIADB_SERVICE_HOST/$GNOCCHI_DB_NAME?charset=utf8"
diff --git a/docker/common/gnocchi/gnocchi-statsd/config-external.sh b/docker/common/gnocchi/gnocchi-statsd/config-external.sh
new file mode 100755
index 0000000000000000000000000000000000000000..59639ba637148d1ea10628207b1fa51c7e668844
--- /dev/null
+++ b/docker/common/gnocchi/gnocchi-statsd/config-external.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+SOURCE="/opt/kolla/gnocchi-api/gnocchi-api.conf"
+TARGET="/etc/gnocchi/gnocchi-api.conf"
+OWNER="gnocchi"
+
+if [[ -f "$SOURCE" ]]; then
+    cp $SOURCE $TARGET
+    chown ${OWNER}: $TARGET
+    chmod 0644 $TARGET
+fi
diff --git a/docker/common/gnocchi/gnocchi-statsd/config-internal.sh b/docker/common/gnocchi/gnocchi-statsd/config-internal.sh
new file mode 100755
index 0000000000000000000000000000000000000000..81a71da1608be66bd0ad6bd5ea1e207966b4a83b
--- /dev/null
+++ b/docker/common/gnocchi/gnocchi-statsd/config-internal.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+set -e
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-gnocchi.sh
+
+exec /usr/bin/gnocchi-statsd
diff --git a/docker/common/gnocchi/gnocchi-statsd/start.sh b/docker/common/gnocchi/gnocchi-statsd/start.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7e9024f15d16489132c73d95d9b88916f42b4282
--- /dev/null
+++ b/docker/common/gnocchi/gnocchi-statsd/start.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+set -o errexit
+
+CMD="/usr/bin/gnocchi-statsd"
+ARGS=""
+
+# Loading common functions.
+source /opt/kolla/kolla-common.sh
+
+# Config-internal script exec out of this function, it does not return here.
+set_configs
+
+exec $CMD $ARGS
+
diff --git a/docs/integration-guide.md b/docs/integration-guide.md
index 029f370b0c5369da55e46bc56433a11e35b2daa5..e131e85628a2ef8f3b27ff89bf5c53cf4bdff852 100755
--- a/docs/integration-guide.md
+++ b/docs/integration-guide.md
@@ -68,6 +68,12 @@ all containers.  This allows a simple method of ensuring every type of node
     GLANCE_KEYSTONE_PASSWORD=<password> - Keystone DB password
     GLANCE_KEYSTONE_USER=<keystone> - Glance Keystone User
     GLANCE_REGISTRY_SERVICE_HOST=<glance IP> Glance registry service host
+    GNOCCHI_ADMIN_PASSWORD=<password> - admin password for gnocchi user
+    GNOCCHI_API_SERVICE_HOST=<IP> - address where gnocchi API is running
+    GNOCCHI_KEYSTONE_PASSWORD=<gnocchi> - Gnocchi keystone password
+    GNOCCHI_KEYSTONE_USER=<gnocchi> - Gnocchi Keystone User
+    GNOCCHI_SERVICE_PORT=<8041> - Port where gnocchi operates
+    GNOCCHI_STORAGE_BACKEND=<file>  - Storage backend for gnocchi
     KEYSTONE_ADMIN_PASSWORD=<password>
     KEYSTONE_ADMIN_SERVICE_HOST=<IP> - IP Address of Keystone Host
     KEYSTONE_ADMIN_SERVICE_PORT=<35357> - Port where Keystone admin endpoint operates.
diff --git a/docs/minimal-environment-vars.md b/docs/minimal-environment-vars.md
index 80dbc3815d1fb7bc225e24f118245cfc2c833ae2..752505b5ecbc14ecfc926c2c24d35efd6a99257f 100644
--- a/docs/minimal-environment-vars.md
+++ b/docs/minimal-environment-vars.md
@@ -229,6 +229,38 @@ In order for each service to function, there is a minimum set of required variab
     GLANCE_DB_USER
     MARIADB_SERVICE_HOST
 
+# Gnocchi-api
+
+    ADMIN_TENANT_NAME
+    GNOCCHI_ADMIN_PASSWORD
+    GNOCCHI_API_SERVICE_HOST
+    GNOCCHI_ARCHIVE_POLICY
+    GNOCCHI_DB_NAME
+    GNOCCHI_DB_PASSWORD
+    GNOCCHI_DB_USER
+    GNOCCHI_KEYSTONE_USER
+    GNOCCHI_SERVICE_PORT
+    GNOCCHI_SERVICE_PROTOCOL
+    GNOCCHI_STORAGE_BACKEND
+    KEYSTONE_ADMIN_SERVICE_HOST
+    KEYSTONE_ADMIN_SERVICE_PORT
+    KEYSTONE_ADMIN_TOKEN
+    KEYSTONE_AUTH_PROTOCOL
+
+# Gnocchi-base
+
+    GNOCCHI_DATA_DIR
+    GNOCCHI_SERVICE_PORT
+    GNOCCHI_STORAGE_BACKEND
+    KEYSTONE_ADMIN_SERVICE_HOST
+    KEYSTONE_ADMIN_SERVICE_PORT
+    KEYSTONE_ADMIN_TOKEN
+    KEYSTONE_PUBLIC_SERVICE_HOST
+
+# Gnocchi-statsd
+
+    None
+
 # Haproxy
 
     None
diff --git a/tools/genenv b/tools/genenv
index 84b42163c3aa6e7b392ca2726ee7bab97f70b66a..40d60a2f8de32248898e7367bcdda1c0fb590665 100755
--- a/tools/genenv
+++ b/tools/genenv
@@ -118,6 +118,18 @@ GLANCE_KEYSTONE_PASSWORD=glance
 GLANCE_API_SERVICE_HOST=$HOST_IP
 GLANCE_REGISTRY_SERVICE_HOST=$HOST_IP
 
+# Gnocchi
+GNOCCHI_DB_PASSWORD=gnocchi
+GNOCCHI_DB_NAME=gnocchi
+GNOCCHI_DB_USER=gnocchi
+GNOCCHI_SERVICE_PROTOCOL=http
+GNOCCHI_SERVICE_PORT=8041
+GNOCCHI_STORAGE_BACKEND=file
+GNOCCHI_KEYSTONE_USER=gnocchi
+GNOCCHI_KEYSTONE_PASSWORD=gnocchi
+GNOCCHI_ADMIN_PASSWORD=gnocchi
+GNOCCHI_API_SERVICE_HOST=$HOST_IP
+
 # Nova
 NOVA_DB_PASSWORD=nova
 NOVA_DB_NAME=nova
diff --git a/tools/kolla b/tools/kolla
index b65f7b0229305255da1643f5b442d71d0b43113d..4df9ea4dbb7fe867d4dfc714d8cdfc79e9fe9c01 100755
--- a/tools/kolla
+++ b/tools/kolla
@@ -46,6 +46,7 @@ function process_all {
     process cinder-backup
     process cinder-volume
     process ceilometer
+    process gnocchi
 }
 
 function check_selinux {