ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
               interface:
                 Ref: ControlVirtualInterface
+        haproxy:
+          nodes:
+            Merge::Map:
+              controller0:
+                ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+                name: {"Fn::Select": [ name, {"Fn::GetAtt": [controller0, show]} ] }
+          net_binds:
+            - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+          services:
+            - name: keystone_admin
+              port: 35357
+            - name: keystone_public
+              port: 5000
+            - name: horizon
+              port: 80
+            - name: neutron
+              port: 9696
+            - name: cinder
+              port: 8776
+            - name: glance_api
+              port: 9292
+            - name: glance_registry
+              port: 9191
+            - name: heat_api
+              port: 8004
+            - name: heat_cloudwatch
+              port: 8003
+            - name: heat_cfn
+              port: 8000
+            - name: nova_ec2
+              port: 8773
+            - name: nova_osapi
+              port: 8774
+            - name: nova_metadata
+              port: 8775
+            - name: ceilometer
+              port: 8777
+            - name: swift_proxy_server
+              port: 8080
   controllerPassthrough:
     Type: OS::Heat::StructuredConfig
     Properties: