diff --git a/software/cloudooo/instance-cloudoo.cfg.in b/software/cloudooo/instance-cloudoo.cfg.in
index b8377e0a380035566c1358b86c9ac5e4901b6656..fbb4a63fcaa58bfcb23e9401398e21a4cc1c20dd 100644
--- a/software/cloudooo/instance-cloudoo.cfg.in
+++ b/software/cloudooo/instance-cloudoo.cfg.in
@@ -1,20 +1,9 @@
+{% if slap_software_type != 'haproxy' -%}
 {% set ipv4 = (ipv4_set | list)[0] -%}
 {% set bin_directory = parameter_dict['buildout-bin-directory'] -%}
 {% set section_list = [] -%}
+{% set publish_list = [] -%}
 {% macro section(name) %}{% do section_list.append(name) %}{{ name }}{% endmacro -%}
-[buildout]
-parts =
-  publish-cloudooo-connection-information
-  cloudooo-test-runner
-
-eggs-directory = {{ eggs_directory }}
-develop-eggs-directory = {{ develop_eggs_directory }}
-offline = true
-
-[publish-cloudooo-connection-information]
-recipe = slapos.cookbook:publish.serialised
-url = cloudooo://${haproxy:ip}:${haproxy:port}/
-
 [cloudooo-base]
 recipe = slapos.cookbook:generic.cloudooo
 ip = {{ ipv4 }}
@@ -39,25 +28,14 @@ openoffice-port = {{ cloudooo_port + 1 }}
 configuration-file = ${directory:etc}/{{ name }}.cfg
 data-directory = ${directory:srv}/{{ name }}
 wrapper = ${directory:services}/{{ name }}
-
+{% set publish_info = ipv4 ~ ':' ~ cloudooo_port -%}
+{% do publish_list.append(publish_info) -%}
 {%   set cloudooo_port = cloudooo_port + 2 -%}
 {% endfor -%}
 
-[haproxy]
-recipe = slapos.cookbook:haproxy
-name = cloudooo
-conf-path = ${directory:etc}/haproxy.cfg
-socket-path = ${directory:run}/haproxy.sock
-ip = {{ ipv4 }}
-port = 8001
-maxconn = 1
-wrapper-path = ${directory:services}/haproxy
-binary-path = {{ parameter_dict['haproxy'] }}/sbin/haproxy
-ctl-path = ${directory:bin}/haproxy-ctl
-backend-list =
-{%- for section_name in section_list %}
-  {{ "${" ~ section_name ~ ":ip}:${" ~ section_name ~ ":port}" }}
-{%- endfor %}
+[cloudooo-instance]
+# Paths: Data
+data-directory = ${directory:cloudooo-data}
 
 [cloudooo-test-runner]
 recipe = slapos.cookbook:cloudooo.test
@@ -99,6 +77,21 @@ link-binary =
   {{ parameter_dict['poppler'] }}/bin/pdftotext
   {{ parameter_dict['poppler'] }}/bin/pdftohtml
 
+[publish-cloudooo-cluster-information]
+recipe = slapos.cookbook:publish.serialised
+cloudooo-address-list = {{ dumps(publish_list) }}
+url = cloudooo://${cloudooo-0:ip}:${cloudooo-0:port}/
+
+[buildout]
+parts =
+  publish-cloudooo-cluster-information
+  cloudooo-test-runner
+  {{ section_list | join('\n\t') }}
+
+eggs-directory = {{ eggs_directory }}
+develop-eggs-directory = {{ develop_eggs_directory }}
+offline = true
+
 # rest of parts are candidates for some generic stuff
 [directory]
 recipe = slapos.cookbook:mkdirectory
@@ -109,3 +102,4 @@ run = ${:var}/run
 services = ${:etc}/run
 srv = ${buildout:directory}/srv
 var = ${buildout:directory}/var
+{% endif -%}
diff --git a/software/cloudooo/instance-haproxy.cfg.in b/software/cloudooo/instance-haproxy.cfg.in
new file mode 100644
index 0000000000000000000000000000000000000000..eb20029235f1beb7f12e01477b04d9faaa64647a
--- /dev/null
+++ b/software/cloudooo/instance-haproxy.cfg.in
@@ -0,0 +1,39 @@
+{% if slap_software_type == 'haproxy' -%}
+{% set bin_directory = parameter_dict['buildout-bin-directory'] -%}
+[buildout]
+parts =
+  publish-cloudooo-connection-information
+
+eggs-directory = {{ eggs_directory }}
+develop-eggs-directory = {{ develop_eggs_directory }}
+offline = true
+
+[publish-cloudooo-connection-information]
+recipe = slapos.cookbook:publishurl
+url = cloudooo://${haproxy:ip}:${haproxy:port}/
+
+[haproxy]
+recipe = slapos.cookbook:haproxy
+name = cloudooo
+conf-path = ${directory:etc}/haproxy.cfg
+socket-path = ${directory:run}/haproxy.sock
+ip = {{ ipv4 }}
+port = 8001
+maxconn = 1
+wrapper-path = ${directory:services}/haproxy
+binary-path = {{ parameter_dict['haproxy'] }}/sbin/haproxy
+ctl-path = ${directory:bin}/haproxy-ctl
+backend-list =
+{%- for section_name in section_list %}
+  {{ "${" ~ section_name ~ ":ip}:${" ~ section_name ~ ":port}" }}
+{%- endfor %}
+
+# rest of parts are candidates for some generic stuff
+[directory]
+recipe = slapos.cookbook:mkdirectory
+bin = ${buildout:directory}/bin
+etc = ${buildout:directory}/etc
+run = ${:var}/run
+services = ${:etc}/run
+var = ${buildout:directory}/var
+{% endif -%}
diff --git a/software/cloudooo/instance.cfg.in b/software/cloudooo/instance.cfg.in
index 6173841fbd4afeffde0c2b72cc4deaa2797bbaa1..3a1e579a8bc9e741076b5b78ee8eac11351af06d 100644
--- a/software/cloudooo/instance.cfg.in
+++ b/software/cloudooo/instance.cfg.in
@@ -22,13 +22,13 @@ context =
     key eggs_directory buildout:eggs-directory
     key develop_eggs_directory buildout:develop-eggs-directory
     key slapparameter_dict slap-parameters:configuration
+    key slap_software_type slap-parameters:slap-software-type
     ${:extra-context}
 
 [dynamic-template-cloudooo-parameters]
 file = {{ file_location }}
 fontconfig = {{ fontconfig_location }}
 freetype = {{ freetype_location }}
-haproxy = {{ haproxy_location }}
 libICE = {{ libICE_location }}
 libpng12 = {{ libpng12_location }}
 libSM = {{ libSM_location }}
@@ -46,6 +46,10 @@ imagemagick = {{ imagemagick_location }}
 poppler = {{ poppler_location }}
 buildout-bin-directory = {{ buildout_bin_directory }}
 
+[dynamic-template-haproxy-parameters]
+haproxy = {{ haproxy_location }}
+buildout-bin-directory = {{ buildout_bin_directory }}
+
 [dynamic-template-cloudooo]
 < = jinja2-template-base
 template = {{ template_cloudooo }}
@@ -55,9 +59,19 @@ extra-context =
     section parameter_dict dynamic-template-cloudooo-parameters
     key ipv4_set slap-parameters:ipv4
 
+[dynamic-template-haproxy]
+< = jinja2-template-base
+template = {{ template_haproxy }}
+filename = instance-cloudoo.cfg
+extensions = jinja2.ext.do
+extra-context =
+    section parameter_dict dynamic-template-haproxy-parameters
+    key ipv4_set slap-parameters:ipv4
+
 [switch-softwaretype]
 recipe = slapos.cookbook:softwaretype
 default = ${dynamic-template-cloudooo:rendered}
+haproxy = ${dynamic-template-haproxy:rendered}
 
 [slap-connection]
 # part to migrate to new - separated words
diff --git a/software/cloudooo/software.cfg b/software/cloudooo/software.cfg
index 289fc649c3406df0809fec61d2d406e175190d4b..9be77d3a7ac244248f33ed23f73acf6fe6cba881 100755
--- a/software/cloudooo/software.cfg
+++ b/software/cloudooo/software.cfg
@@ -62,7 +62,7 @@ context =
 # XXX: "template.cfg" is hardcoded in instanciation recipe
 filename = template.cfg
 template = ${:_profile_base_location_}/instance.cfg.in
-md5sum = 425cb2e76d46d53bb0b0eebdb8c1aa95
+md5sum = 2456c43484286fe58bed42a417877b42
 extra-context =
     key buildout_bin_directory buildout:bin-directory
     key dcron_location dcron:location
@@ -86,13 +86,20 @@ extra-context =
     key openssl_location openssl:location
     key poppler_location poppler:location
     key template_cloudooo template-cloudooo:target
+    key template_haproxy template-haproxy:target
     key zlib_location zlib:location
     key coreutils_location coreutils:location
 
 [template-cloudooo]
 recipe = slapos.recipe.build:download
 url = ${:_profile_base_location_}/instance-cloudoo.cfg.in
-md5sum = bbe84b4c9022db62c926e8a8a4bf02a1
+md5sum = dfa79313d73c68ef65b636f9f01be54a
+mode = 640
+
+[template-haproxy]
+recipe = slapos.recipe.build:download
+url = ${:_profile_base_location_}/instance-haproxy.cfg.in
+md5sum = 3507e29619940fe8f3bd932ce3054f85
 mode = 640
 
 [networkcache]