software.cfg 3.25 KB
Newer Older
Vincent Pelletier's avatar
Vincent Pelletier committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
# Note on COOKBOOK/END COOKBOOK: the areas delimited by those tags should be
# dropped when a cookbook version containing neoppod recipe is released as an
# egg on pypi.
# Note on LXML/END LXML: they delimit areas where lxml magic is needed. lxml is
# a slapos.cookbook dependency, so it should be fetched automatically. But when
# automatically fetched, it gets built against system headers/libs, which is
# forbidden in slapos. So we need to fetch lxml explicitly so it is properly
# built.

[buildout]
extends =
    ../../stack/slapos.cfg
#COOKBOOK
    ../../component/git/buildout.cfg
#END COOKBOOK
#LXML
    ../../component/lxml-python/buildout.cfg
#END LXML
    ../../component/python-2.7/buildout.cfg
    ../../component/mariadb/buildout.cfg
    ../../component/mysql-python/buildout.cfg

develop =
#COOKBOOK
# Note: as we develop a path we fetch, first buildout execution will fail as
# develop couldn't find the clone. Second (and later) runs will succeed.
    ${:parts-directory}/slapos.cookbook-repository
#END COOKBOOK

parts =
#COOKBOOK
    slapos.cookbook-repository
    check-recipe
#END COOKBOOK
    slapos-deps-eggs
# NEO & dependencies
    python2.7
    mariadb
    mysql-python
    neoppod
# NEO instanciation
    template-instance

[slapos-deps-eggs]
recipe = zc.recipe.egg
eggs =
#LXML
    ${lxml-python:egg}
#END LXML
#COOKBOOK
    slapos.cookbook
#END COOKBOOK

#LXML
[lxml-python]
python = python2.7
#END LXML

#COOKBOOK
[slapos.cookbook-repository]
recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/slapos.git
branch = neoppod
git-executable = ${git:location}/bin/git

[check-recipe]
recipe = plone.recipe.command
stop-on-error = true
update-command = ${:command}
command = test -e ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
#END COOKBOOK

[base-template]
recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/${:filename}.in
rendered = ${buildout:directory}/${:filename}
extensions = jinja2.ext.do
extra-context =
context =
    key eggs_directory buildout:eggs-directory
    key develop_eggs_directory buildout:develop-eggs-directory
    key bin_directory buildout:bin-directory
    ${:extra-context}

[template-neo-master]
< = base-template
filename = instance-neo-master.cfg
88
md5sum = f43aaf52c4eb3665c8e8d22c447138e7
Vincent Pelletier's avatar
Vincent Pelletier committed
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

[template-neo-storage-mysql]
< = base-template
filename = instance-neo-storage-mysql.cfg
md5sum = e767c66e7de58232de30bdf26188efe1
extra-context =
    key mariadb_location mariadb:location
    key master_cfg template-neo-master:rendered

[template-neo-admin]
< = base-template
filename = instance-neo-admin.cfg
md5sum = fcf1a5c937a609a934c8ccd7c1326726

[template-cluster]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/cluster.cfg.in
md5sum = fe37b2ff36fee65b44945393f63e51c3

[template-instance]
< = base-template
template = ${:_profile_base_location_}/instance.cfg.in
# XXX: "template.cfg" is hardcoded in instanciation recipe
filename = template.cfg
md5sum = 17e761b371487b55b39da1c39ebb1bb6
extra-context =
    key neo_master template-neo-master:rendered
    key neo_storage_mysql template-neo-storage-mysql:rendered
    key neo_admin template-neo-admin:rendered
    key cluster template-cluster:target

[neoppod]
recipe = zc.recipe.egg
eggs = neoppod[admin, master, storage-mysqldb]