[buildout] extends = ../../component/6tunnel/buildout.cfg ../../component/curl/buildout.cfg ../../component/dash/buildout.cfg ../../component/qemu-kvm/buildout.cfg ../../component/noVNC/buildout.cfg ../../component/openssl/buildout.cfg ../../component/netcat/buildout.cfg ../../component/pycurl/buildout.cfg ../../stack/slapos.cfg ../../stack/nodejs.cfg ../../stack/resilient/buildout.cfg # stacks are listed from most generic to most specific, # to avoid versioning issues common-parts = template eggs # XXX: we have to manually add this for resilience rdiff-backup pbs-recipe-egg parts = ${:common-parts} #XXX-Cedric : Currently, one can only access to KVM using noVNC. # Ideally one should be able to access KVM by using either NoVNC or VNC. # Problem is : no native crypto support in web browsers. So we have to disable ssl # In qemu builtin vnc server, and make it available only for localhost # so that only novnc can listen to it. #XXX-Cedric: Check status of https://github.com/kanaka/noVNC/issues/13 to see # When qemu has builtin support for websockets in vnc server to get rid of # Websockify (socket <-> websocket proxy server) when it is ready. # May solve previous XXX depending on the implementation. #XXX-Cedric : add list of keyboard layouts (azerty/us querty/...) parameter to qemu [eggs] recipe = zc.recipe.egg eggs = ${python-cffi:egg} ${python-cryptography:egg} ${lxml-python:egg} websockify slapos.cookbook slapos.toolbox erp5.util cns.recipe.symlink collective.recipe.template plone.recipe.command ${pycurl:egg} [http-proxy] # https://github.com/nodejitsu/node-http-proxy recipe = slapos.recipe.build:download-unpacked #XXX-Cedric : use upstream when merged url = https://nodeload.github.com/desaintmartin/node-http-proxy/zipball/20120621 md5sum = 20204d0b29c2cef26e1c91e99eedca6b [proxy-by-url] # https://github.com/dominictarr/proxy-by-url recipe = slapos.recipe.build:download-unpacked #XXX-Cedric : use upstream when merged url = https://nodeload.github.com/desaintmartin/proxy-by-url/zipball/20120621 md5sum = c2609948aa708581f93b981b23880314 [npm-modules] recipe = plone.recipe.command destination = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_} command = export HOME=${:location}; rm -fr ${:destination} && mkdir -p ${:destination} && cd ${:destination} && ${nodejs:location}/bin/node ${nodejs:location}/bin/npm install colors@0.6.0-1 && ${nodejs:location}/bin/node ${nodejs:location}/bin/npm install socket.io@0.8.7 && ${nodejs:location}/bin/node ${nodejs:location}/bin/npm install socket.io-client@0.8.7 && ${nodejs:location}/bin/node ${nodejs:location}/bin/npm install optimist@0.3.1 && ${nodejs:location}/bin/node ${nodejs:location}/bin/npm install pkginfo@0.2.3 # Create all templates that will be used to deploy instances [template] recipe = slapos.recipe.template url = ${:_profile_base_location_}/instance.cfg.in md5sum = 5c159864ce41394486867c27d65c2f50 output = ${buildout:directory}/template.cfg mode = 0644 [template-kvm] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/instance-kvm.cfg.jinja2 mode = 644 md5sum = c66ec96a73470148707937bf96436fd6 download-only = true on-update = true [template-kvm-cluster] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/instance-kvm-cluster.cfg.jinja2.in mode = 644 md5sum = 6ef7e38526f024356743e77973f0fb5f download-only = true on-update = true [template-kvm-resilient] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/instance-kvm-resilient.cfg.jinja2 mode = 644 md5sum = 700676dff4a3835a9d6cde015d91922e download-only = true on-update = true [template-kvm-import] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/instance-kvm-import.cfg.jinja2.in md5sum = 5e21ad759c148d26134ecefbb4d3d9f1 mode = 0644 download-only = true on-update = true [template-kvm-import-script] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/template/kvm-import.sh.jinja2 filename = kvm-import.sh.jinja2 md5sum = cd0008f1689dfca9b77370bc4d275b70 download-only = true mode = 0755 [template-kvm-export] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/instance-kvm-export.cfg.jinja2 mode = 644 md5sum = c2ab8a5ff9d8cd351682382ea06b3328 download-only = true on-update = true [template-kvm-export-script] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/template/kvm-export.sh.jinja2 filename = kvm-export.sh.jinja2 md5sum = c18e958bf374d5fa35dbb952686595fb download-only = true mode = 0755 [template-nbd] recipe = slapos.recipe.template url = ${:_profile_base_location_}/instance-nbd.cfg.in md5sum = f634a5249b773658b7a7bc9fa9bb0368 output = ${buildout:directory}/template-nbd.cfg mode = 0644 [template-frontend] recipe = slapos.recipe.template url = ${:_profile_base_location_}/instance-frontend.cfg.in md5sum = cdb690495e9eb007d2b7d2f8e12f5c59 output = ${buildout:directory}/template-frontend.cfg mode = 0644 [template-ansible-promise] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/template/ansible-promise.in md5sum = 2036bf145f472f62ef8dee5e729328fd mode = 0644 download-only = true filename = ansible-promise.in [template-kvm-run] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/template/template-kvm-run.in mode = 644 filename = template-kvm-run.in md5sum = 178a24cdad77cb6c2e519ac629dd0e74 download-only = true on-update = true [template-kvm-controller] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/template/kvm-controller-run.in mode = 644 filename = kvm-controller-run.in md5sum = 71afd2d13f6e56993ae413a168e012d7 download-only = true on-update = true [template-apache-conf] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/template/apache.conf.in mode = 644 filename = apache.conf.in md5sum = ac97f6a52e1c5a19a646242ef85abb8a download-only = true on-update = true [template-content] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/template/template-content.in mode = 644 filename = template-content.in md5sum = 822737e483864bf255ad1259237bef2a download-only = true on-update = true [template-qemu-ready] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/template/qemu-is-ready.in mode = 644 filename = qemu-is-ready.in md5sum = 0066fa0f5f3dd47bded5e5924df2550d download-only = true on-update = true [file-download-script] recipe = hexagonit.recipe.download ignore-existing = true url = ${:_profile_base_location_}/template/download_file.in mode = 644 filename = download_file md5sum = 599dbbbd438fe7801e3f8642ae9e9a78 download-only = true on-update = true [template-httpd] recipe = slapos.recipe.template:jinja2 filename = template-httpd.cfg template = ${:_profile_base_location_}/instance-kvm-http.cfg.in rendered = ${buildout:parts-directory}/${:_buildout_section_name_}/instance-kvm-http.cfg md5sum = 26a181a48046ce88570adb32334747ef context = key apache_location apache:location raw openssl_executable_location ${openssl:location}/bin/openssl raw template_apache_conf ${template-apache-conf:location}/${template-apache-conf:filename}