diff --git a/ansible/roles/haproxy/templates/haproxy.cfg.j2 b/ansible/roles/haproxy/templates/haproxy.cfg.j2
index 07fe7aacf4fe0d25b0a58132e233b0247735b5c1..bcb1be6744cf77e90e74b1ef273e8e37b36abdcd 100755
--- a/ansible/roles/haproxy/templates/haproxy.cfg.j2
+++ b/ansible/roles/haproxy/templates/haproxy.cfg.j2
@@ -66,6 +66,13 @@ listen nova_api
   server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + api_interface]['ipv4']['address'] }}:{{ nova_api_port }} check inter 2000 rise 2 fall 5
 {% endfor %}
 
+listen nova_metadata
+  # TODO(SamYaple): Make metadata port configurable throughout Ansible
+  bind {{ kolla_internal_address }}:8775
+{% for host in groups['nova-api'] %}
+  server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + api_interface]['ipv4']['address'] }}:8775 check inter 2000 rise 2 fall 5
+{% endfor %}
+
 listen neutron_server
   bind {{ kolla_internal_address }}:{{ neutron_server_port }}
 {% for host in groups['neutron-server'] %}
diff --git a/ansible/roles/nova/templates/nova.conf.j2 b/ansible/roles/nova/templates/nova.conf.j2
index b44168837ea232f47c37835bac12d538dfc89a50..6c62eacd8386e223253a55873f0fdae03fdda71b 100644
--- a/ansible/roles/nova/templates/nova.conf.j2
+++ b/ansible/roles/nova/templates/nova.conf.j2
@@ -20,8 +20,10 @@ linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
 compute_driver = libvirt.LibvirtDriver
 allow_resize_to_same_host = true
 
-vnc_enabled = true
 my_ip = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
+metadata_listen = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
+
+vnc_enabled = true
 vncserver_listen = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
 vncserver_proxyclient_address = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
 novncproxy_base_url = http://{{ kolla_internal_address }}:6080/vnc_auto.html