diff --git a/ansible/roles/gnocchi/tasks/start.yml b/ansible/roles/gnocchi/tasks/start.yml
index 98d54241c64e49ef63318473fba2128a925407a3..d53ab979b57793f483726a2ecaa0c4c96bb1cfdc 100644
--- a/ansible/roles/gnocchi/tasks/start.yml
+++ b/ansible/roles/gnocchi/tasks/start.yml
@@ -19,6 +19,7 @@
     name: "gnocchi_metricd"
     volumes:
       - "{{ node_config_directory }}/gnocchi-metricd/:{{ container_config_directory }}/:ro"
+      - "gnocchi:/var/lib/gnocchi/"
       - "kolla_logs:/var/log/kolla/"
   when: inventory_hostname in groups['gnocchi-metricd']
 
@@ -30,5 +31,6 @@
     name: "gnocchi_statsd"
     volumes:
       - "{{ node_config_directory }}/gnocchi-statsd/:{{ container_config_directory }}/:ro"
+      - "gnocchi:/var/lib/gnocchi/"
       - "kolla_logs:/var/log/kolla/"
   when: inventory_hostname in groups['gnocchi-statsd']
diff --git a/ansible/roles/gnocchi/templates/wsgi-gnocchi.conf.j2 b/ansible/roles/gnocchi/templates/wsgi-gnocchi.conf.j2
index c6bc624c98d0a04461db0bb2ef3811cd8b17b83e..5d1317ec0d8e485902da36ccae7ae46d71676a9f 100644
--- a/ansible/roles/gnocchi/templates/wsgi-gnocchi.conf.j2
+++ b/ansible/roles/gnocchi/templates/wsgi-gnocchi.conf.j2
@@ -3,23 +3,15 @@ Listen {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['addr
 
 <VirtualHost *:{{ gnocchi_api_port }}>
 
-  ## Vhost docroot
-  DocumentRoot "/var/www/cgi-bin/gnocchi"
-
-  ## Directories, there should at least be a declaration for /var/www/cgi-bin/gnocchi
+  ErrorLog "/var/log/kolla/gnocchi/gnocchi-api-error.log"
+  CustomLog "/var/log/kolla/gnocchi/gnocchi-api-access.log" combined
+  WSGIApplicationGroup %{GLOBAL}
+  WSGIDaemonProcess gnocchi group=gnocchi processes=5 threads=1 user=gnocchi python-path={{ python_path }}
+  WSGIProcessGroup gnocchi
+  WSGIScriptAlias / "{{ python_path }}/gnocchi/rest/app.wsgi"
 
-  <Directory "/var/www/cgi-bin/gnocchi">
-    Options Indexes FollowSymLinks MultiViews
-    AllowOverride None
-    Require all granted
+  <Directory "{{ python_path }}/gnocchi/rest">
+        Require all granted
   </Directory>
 
-  ## Logging
-  ErrorLog "/var/log/kolla/gnocchi/gnocchi_wsgi_error.log"
-  ServerSignature Off
-  CustomLog "/var/log/kolla/gnocchi/gnocchi_wsgi_access.log" combined
-  WSGIApplicationGroup %{GLOBAL}
-  WSGIDaemonProcess gnocchi group=gnocchi processes=2 threads=2 user=gnocchi
-  WSGIProcessGroup gnocchi
-  WSGIScriptAlias / "/var/www/cgi-bin/gnocchi/app"
 </VirtualHost>
diff --git a/docker/gnocchi/gnocchi-api/extend_start.sh b/docker/gnocchi/gnocchi-api/extend_start.sh
index ac06893c86208564815742bdb90a14e80b6fde7d..bda1170e1e0071b08816816a6c88e6fc4922e609 100644
--- a/docker/gnocchi/gnocchi-api/extend_start.sh
+++ b/docker/gnocchi/gnocchi-api/extend_start.sh
@@ -13,6 +13,6 @@ fi
 # 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
-    gnocchi-upgrade --logfile /var/log/kolla/gnocchi/gnocchi-upgrade.log
+    sudo -H -i -u gnocchi gnocchi-upgrade --create-legacy-resource-types --logfile /var/log/kolla/gnocchi/gnocchi-upgrade.log
     exit 0
 fi
diff --git a/docker/gnocchi/gnocchi-base/Dockerfile.j2 b/docker/gnocchi/gnocchi-base/Dockerfile.j2
index 32e5df6cb9b7070690ad69108c59dfcf6950cb79..213a3a610d81e341cd82d834748869517d3f6837 100644
--- a/docker/gnocchi/gnocchi-base/Dockerfile.j2
+++ b/docker/gnocchi/gnocchi-base/Dockerfile.j2
@@ -17,9 +17,7 @@ MAINTAINER {{ maintainer }}
         ] %}
 
 {{ macros.install_packages(gnocchi_base_packages | customizable("packages")) }}
-RUN mkdir -p /var/www/cgi-bin/gnocchi \
-    && cp -a /usr/lib/python2.7/site-packages/gnocchi/rest/app.wsgi /var/www/cgi-bin/gnocchi/app \
-    && sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf
+RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf
     {% elif base_distro in ['ubuntu'] %}
 
        {% set gnocchi_base_packages = [
@@ -30,9 +28,7 @@ RUN mkdir -p /var/www/cgi-bin/gnocchi \
         ] %}
 
 {{ macros.install_packages(gnocchi_base_packages | customizable("packages")) }}
-RUN mkdir -p /var/www/cgi-bin/gnocchi \
-    && cp -a /usr/share/gnocchi-common/app.wsgi /var/www/cgi-bin/gnocchi/app \
-    && echo > /etc/apache2/ports.conf
+RUN truncate -s 0 /etc/apache2/ports.conf
 
     {% endif %}
 {% elif install_type == 'source' %}
@@ -55,7 +51,7 @@ RUN mkdir -p /var/www/cgi-bin/gnocchi \
         ] %}
 
 {{ macros.install_packages(gnocchi_base_packages | customizable("packages")) }}
-RUN echo > /etc/apache2/ports.conf
+RUN truncate -s 0 /etc/apache2/ports.conf
 
    {% endif %}
 ADD gnocchi-base-archive /gnocchi-base-source
@@ -63,10 +59,9 @@ ADD gnocchi-base-archive /gnocchi-base-source
 RUN ln -s gnocchi-base-source/* gnocchi \
     && useradd --user-group gnocchi \
     && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt gnocchiclient /gnocchi[keystone,mysql,file] \
-    && mkdir -p /etc/gnocchi /var/log/kolla/gnocchi /home/gnocchi /var/www/cgi-bin/gnocchi \
+    && mkdir -p /etc/gnocchi /var/log/kolla/gnocchi /home/gnocchi \
     && cp -r /gnocchi/etc/gnocchi/* /etc/gnocchi/ \
-    && cp  /gnocchi/gnocchi/rest/app.wsgi /var/www/cgi-bin/gnocchi/ \
-    && chown -R gnocchi: /etc/gnocchi /var/log/kolla/gnocchi /var/www/cgi-bin/gnocchi
+    && chown -R gnocchi: /etc/gnocchi /var/log/kolla/gnocchi
 
 {% endif %}
 
@@ -74,9 +69,10 @@ COPY extend_start.sh /usr/local/bin/kolla_extend_start
 COPY gnocchi_sudoers /etc/sudoers.d/kolla_gnocchi_sudoers
 
 RUN usermod -a -G kolla gnocchi \
+    && mkdir -p /var/lib/gnocchi \
+    && chown -R gnocchi: /var/lib/gnocchi \
     && chmod 750 /etc/sudoers.d \
     && chmod 640 /etc/sudoers.d/kolla_gnocchi_sudoers \
-    && chmod 755 /var/www/cgi-bin/gnocchi \
     && touch /usr/local/bin/kolla_gnocchi_extend_start \
     && chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_gnocchi_extend_start