diff --git a/docker/horizon/Dockerfile.j2 b/docker/horizon/Dockerfile.j2
index 623a5a992d032f11678323bdc6285e98f3dbc23c..5076804e689188d8a2c1df9b73f31894f1f77f75 100644
--- a/docker/horizon/Dockerfile.j2
+++ b/docker/horizon/Dockerfile.j2
@@ -94,6 +94,7 @@ RUN echo > /etc/apache2/ports.conf \
     {% endif %}
 
 ADD horizon-archive /horizon-source
+ADD plugins-archive /
 RUN ln -s horizon-source/* horizon \
     && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /horizon \
     && useradd --user-group horizon \
@@ -102,6 +103,11 @@ RUN ln -s horizon-source/* horizon \
     && cp -r /horizon/openstack_dashboard/conf/* /etc/openstack-dashboard/ \
     && cp /horizon/openstack_dashboard/local/local_settings.py.example /etc/openstack-dashboard/local_settings \
     && cp /horizon/manage.py /var/lib/kolla/venv/bin/manage.py \
+    && if [ "$(ls /plugins)" ]; then \
+           pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /plugins/*; \
+           ln -s `find /plugins -name 'neutron-lbaas-dashboard-*' -type d`/neutron_lbaas_dashboard/enabled/_1481_project_ng_loadbalancersv2_panel.py \
+                 /var/lib/kolla/venv/lib/python2.7/site-packages/openstack_dashboard/enabled/_1481_project_ng_loadbalancersv2_panel.py; \
+       fi \
     && /var/lib/kolla/venv/bin/python /var/lib/kolla/venv/bin/manage.py collectstatic --noinput --clear \
     && (cd /var/lib/kolla/venv/lib/python2.7/site-packages/horizon && /var/lib/kolla/venv/bin/python /var/lib/kolla/venv/bin/manage.py compilemessages) \
     && (cd /var/lib/kolla/venv/lib/python2.7/site-packages/openstack_dashboard && /var/lib/kolla/venv/bin/python /var/lib/kolla/venv/bin/manage.py compilemessages) \
diff --git a/kolla/common/config.py b/kolla/common/config.py
index 9de8a8198b9d8425c792db9ded183a790df3ccd8..ba94f1f39c1e65cdef86510dd3aa7732e486d84f 100644
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -209,6 +209,10 @@ SOURCES = {
         'type': 'url',
         'location': ('http://tarballs.openstack.org/horizon/'
                      'horizon-master.tar.gz')},
+    'horizon-plugin-neutron-lbaas-dashboard': {
+        'type': 'url',
+        'location': ('http://tarballs.openstack.org/neutron-lbaas-dashboard/'
+                     'neutron-lbaas-dashboard-master.tar.gz')},
     'ironic-base': {
         'type': 'url',
         'location': ('http://tarballs.openstack.org/ironic/'
diff --git a/kolla/image/build.py b/kolla/image/build.py
index 1eb3a4634a74c7b789ab8f1eac581117652eeb53..03534b7971cc65549d33c123e6fc2d66c88aeb5f 100644
--- a/kolla/image/build.py
+++ b/kolla/image/build.py
@@ -824,8 +824,14 @@ class KollaWorker(object):
                                (re.search('{}-plugin-.+'.format(image.name),
                                           section) for section in
                                self.conf.list_all_sections()) if match]:
-                    self.conf.register_opts(common_config.get_source_opts(),
-                                            plugin)
+                    try:
+                        self.conf.register_opts(
+                            common_config.get_source_opts(),
+                            plugin
+                        )
+                    except cfg.DuplicateOptError:
+                        LOG.debug('Plugin %s already registered in config',
+                                  plugin)
                     image.plugins.append(
                         process_source_installation(image, plugin))