Software types ============== Which software type is an entry point and can be used for root software instance. Parameters are expected to be passed as of *.serialised recipes expect them:: ``` <?xml version='1.0' encoding='utf-8'?> <instance> <parameter id="_">...</parameter> </instance> ``` where `...` is a json expression (typically a dict). TCPv4 ports allocation ---------------------- Service listening ports are allocated in the following pattern. Base port of each software can be overridden, those are the default values. - kumofs (persistent) 2000: manager 2001: server port (?) 2002: server listen port (?) 2003: gateway port (?) - kumofs (volatile) 2010: manager 2011: server port (?) 2012: server listen port (?) 2013: gateway port (?) - cloudooo 2020: cloudooo 2021: openoffice - mariadb 2099: mariadb - zeo & tidstorage 2100: tidstorage 2101: first zeo 2102: second zeo (etc) - haproxy 2150: first haproxy 2151: first apache 2152: second haproxy 2153: second apache (etc) - cluster-zope 2200: first zope 2201: second zope (etc) Note: these are not applicable when (yet unsupported) ipv6 mode is enabled, as stunnel (used to tunnel ipv4-only services over ipv6) needs its own listening ports. This pattern was chosen to make it possible to deploy this software release in a setup where all partitions would share the same IPv4 without having to provide many parameters. Some ports are unused in the overall range to allow software types to grow. common ------ Parameters which are available to all software types. 'mariadb-dict' (dict, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MariaDB (used for catalog, activity tables and id generator) instance parameters. Defaults to {}. Possible keys and associated value types: 'tcpv4-port' (int, optional) TCPv4 port to listen on. Defaults to 2099. 'database-list' (list, optional) Define the list of databases mariadb must provide, and the user having entire access to each database. Each entry in the list is a dict, with these possible keys and associated value types: 'name' (str, mandatory) Database name 'user' (str, mandatory) User login 'password' (str, mandatory) User password Defaults to: [{'name': 'erp5', 'user': 'user', 'password': 'insecure'}] 'test-database-amount' (int, optional) Number of test databases to generate in addition of requested databases. A test database, if it were provided as a database-list entry, would look like: {'name': 'erp5_test_0', 'user': 'testuser_0', 'password': 'testpassword0'} with '0' being all numbers from 0 to test-database-amount - 1. Defaults to 30. Note: the default is way too much for "normal" usage. You are encouraged to provide this key to some lower value: 0 if you don't intend to run any unit test (ex: production instance) 3..5 if you intend to run tests without paralellism. 'full-retention-days' (int, optional) The number of days full backups will be kept. If -1, backups are disabled. If 0, backup never expire. Defaults to 7. 'incremental-retention-days' (int, optional) The number of days binlogs will be kept. If -1, binlogs are disabled. If 0, binlogs are never expired. Defaults to 'full-retention-days' value. 'innodb-buffer-pool-size' (str, optional) See mariadb documentation for innodb_buffer_pool_size configuration parameter. Value is used verbatim in configuration file. Empty string means unconfigured (ie, bail out to mariadb's default). Defaults to "". 'innodb-log-file-size' (str, optional) See mariadb documentation for innodb_log_file_size configuration parameter. Value is used verbatim in configuration file. Empty string means unconfigured (ie, bail out to mariadb's default). Defaults to "". 'innodb-log-buffer-size' (str, optional) See mariadb documentation for innodb_log_buffer_size configuration parameter. Value is used verbatim in configuration file. Empty string means unconfigured (ie, bail out to mariadb's default). Defaults to "". 'mariadb-relaxed-writes' (int, optional) Controls relaxed writes, which improves performances at the cost of data safety. DO NOT ENABLE THIS ON PRODUCTION. It's fine for unit tests and may be acceptable for development instances. Set to 1 to enable. Default: 0 single (default) ---------------- This creates an ERP5 instance suited for small needs/resources, or local development. A minimal ERP5 site is created when instance is started. frontend-software-url ~~~~~~~~~~~~~~~~~~~~~ Software URL of an existing frontend. XXX: meaning should change (or it will go away) in order to be resilient to software updates - as they are visible at software-url level. If it is not provided, no frontend will be requested. frontend-instance-guid ~~~~~~~~~~~~~~~~~~~~~~ GUID of frontend instance. Not perfect yet: if that instance is replaced, slaves have to be reconfigured. Mandatory only if frontend-software-url is also provided. XXX: should be complemented (or replaced) by more flexible and precise criteria. frontend-software-type (optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Frontend software type as defined by the software relase at frontend-software-url. frontend-domain (optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~ Domain name frontend must recognise as belonging to this instance. cluster ------- This creates a massive ERP5 instance suited for high-demanding production setups - which also have a lot of available resources (several machines, several CPUs per machine, GBs of ram, several machines...). For each available key in the outmost dict are described below. Publishes a dict in which each entry is the URL to a balancer entry point (apache listening socket), witht the same keys as zope-partition-dict. 'zodb-software-type' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Storage mechanism to use. To know the list of supported values, see all keys in instance.cfg.in's section [switch-softwaretype] which start with "zodb-". Defaults to 'zeo'. 'zodb-tcpv4-port' (int, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Base TCPv4 port for ZODB provider, if applicable (depends on chosen software-type). Defaults to 2100. 'zodb-dict' (dict, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Describes ZODBs to create and use in the instance. At least one entry is required to achieve anything sensible with the instance. key (str) Zope internal name for this ZODB. Used to tell mountpoints apart in the ZMI when populating them. value (dict) key (str) Possible keys and associated value types: 'storage-family' (str, optional) Storage family. All zodbs requested with the same value are provided by the same service (ex: same ZEO process). Might not be supported by all zodb-software-type, silently ignored if so (ie, each ZODB gets its own family). Defaults to 'default'. 'mount-point' (str, optional) Storage mount point. Defaults to '/'. 'cache-size' (int, optional) Storage ZODB cache size (aka 'Connection cache'), in objects. No value is specified when negative is provided (ie, uses ZODB's default). Defaults to -1. 'storage-dict' (dict, optional) Storage-type-specific parameters. For example, it can be used to tell where a ZEO filestorage database is located. When zodb-software-type is 'zeo', the following keys are supported: 'path' (string, optional) FileStorage file path. Occurrences of '%(zodb)s' are replaced with the path to partition's srv/zodb directory. Defaults to '%(zodb)s/', Zope's internal name for this ZODB, and '.fs'. 'client' (dict, optional) Client(=Zope)-side settings. 'server' and 'storage' keys will be overwritten. Keys and values are expected to be strings, and map directly to options in the resulting <zeoclient> section. Defaults to {}. 'tidstorage-dict' (dict, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Backup parameters for tidstorage-related backup scripts. TIDStorage is not deployed if not provided. key (str) Possible keys and associated value types: 'zodb-dict' (dict, optional) key (str) (same as zodb-dict) value (str, optional) Path to store backups of this zodb into. Occurrences of '%(backup)s' are replaced with the path to partition's srv/backup/zodb directory. Defaults to {}. If an item is missing compared to zodb-dict, value defaults to '%(backup)s/' + key. 'timestamp-path' (str, optional) Path to backup timestamp file. Occurrences of '%(backup)s' are replaced with the path to partition's srv/backup/tidstorage directory. Defaults to '%(backup)s/repozo_tidstorage_timestamp.log'. 'zope-partition-dict' (dict, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ key (str) Instance name. value (dict) Possible keys and associated value types: 'family' (str, optional) The family this partition is part of. For example: 'public', 'admin', 'backoffice', 'web-service'... Each family gets its own frontend (=client-facing ip & port). It has no special meaning as far as buildout is concerned. Defaults to 'default'. 'instance-count' (int, optional) The number of Zopes to setup on this partition. Defaults to 1. 'thread-amount' (int, optional) The number of worker threads for each created Zope process. Defaults to 1. 'timerserver-interval' (int, optional) The timerserver tick perdiod. 0 to disable timerserver. Defaults to 5. 'computer-guid' (string, optional) Computer on which partition should be allocated. Defauts to the same computer as the one this .cfg is executed in. 'longrequest-logger-interval' (int, optional) The period, in seconds, with which LongRequestLogger polls worker thread stack traces. -1 to disable. Defaults to -1. 'longrequest-logger-timeout' (int, optional) The transaction duration after which LongRequestLogger will start logging its stack trace, in seconds. Ignored if longrequest-logger-interval is -1. Defaults to 1. 'port-base' (int, optional) Start allocating ports at this value. Useful if one needs to make several partitions share the same port range (ie, several partitions bound to a single address). Defaults to 2200. 'haproxy-maxconn' (int, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The number of connections haproxy accepts for a given backend. See haproxy's "server maxconn" setting. Defaults to 1 (correct for single-worker-threaded zopes). 'haproxy-tcpv4-port' (int, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Base TCPv4 port for load-balancer (haproxy + backend apache). Defaults to 2150. 'haproxy-server-check-path' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The path haproxy accesses on a each backend to test their responsiveness. Occurrences of '%(site-id)s' are replaced with site-id value (see below). Defaults to '/'. 'apache-backend-path' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Used as a rewriterule to strip components from site's URL. Occurrences of '%(site-id)s' are replaced with site-id value (see below). XXX: You may want to avoid using this when also requesting a frontend apache. Defaults to '/' (ie, nothing is stripped). 'apache-access-control-string' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The list of hosts apache accepts connections from. Defaults to 'all'. 'apache-ssl-authentication' (booleanish, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Controls certificate-based authentication. Defaults to '0' (disabled). 'site-id' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~ Site object's id. Defaults to 'erp5'. 'ca' (dict, optional) ~~~~~~~~~~~~~~~~~~~~~ Certificate autority parameters. Possible keys and associated value types: 'country-code' (str, optional) ISO 3166-1 alpha-2 country code. Defaults to 'ZZ'. 'email' (str, optional) E-mail address. Defaults to 'nobody@example.com' 'state' (str, optional) State name. Defaults to 'Dummy State'. 'city' (str, optional) City name. Default to 'Dummy City'. 'company' (str, optional) Company name. Defaults to 'Dummy Company'. 'mariadb-computer-guid' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Computer GUID identifying the partition mariadb is to be requested on. Defaults to "cluster" software type's partition's effective computer GUID. 'cloudooo-tcpv4-port' (int, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Base TCPv4 port for cloudooo. Defaults to 2020. 'cloudooo-computer-guid' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Computer GUID identifying the partition cloudooo is to be requested on. Defaults to "cluster" software type's partition's effective computer GUID. 'memcached-size' (int, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Megabytes of ram to allocate for volatile memcached use. Defaults to 64. Negative/zero values cause undefined behaviour which may change in the future. 'memcached-tcpv4-port' ~~~~~~~~~~~~~~~~~~~~~~ Base TCPv4 port for volatile memcached. Defaults to 2010. 'memcached-computer-guid' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Computer GUID identifying the partition memcached is to be requested on. Defaults to "cluster" software type's partition's effective computer GUID. 'kumofs-tcpv4-port' ~~~~~~~~~~~~~~~~~~~ Base TCPv4 port for persistent memcached. Defaults to 2000. 'kumofs-computer-guid' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Computer GUID identifying the partition kumofs is to be requested on. Defaults to "cluster" software type's partition's effective computer GUID. 'zodb-computer-guid' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Computer GUID identifying the partition ZODB server is to be requested on. Defaults to "cluster" software type's partition's effective computer GUID. 'balancer-computer-guid' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Computer GUID identifying the partition balander (haproxy, apache, some HTTP cache) is to be requested on. Defaults to "cluster" software type's partition's effective computer GUID. 'font-url-list' (list of strings, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ List of extra fonts URLs to be used by cloudooo. Defaults to []. 'bt5' (str, optional) ~~~~~~~~~~~~~~~~~~~~~ XXX: what is this ? Defaults to 'erp5_full_text_myisam_catalog \ erp5_configurator_standard \ erp5_configurator_maxma_demo \ erp5_configurator_ung \ erp5_configurator_run_my_doc'. 'bt5-repository-url' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ XXX: what is this ? Defaults to SR's buildout['local-bt5-repository']['list']. 'smtp-url' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~ XXX: what is this ? Defaults to 'smtp://localhost:25/'. 'timezone' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~ Timezone to put processes in (default timezone for DateTime instances). Defaults to 'Europe/Paris'. 'frontend-software-url' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Frontend's software url. Defaults to ''. If non-empty, the following options are used (otherwise, they are all optional and ignored): 'frontend-software-type' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Frontend's software type. Defaults to 'RootSoftwareInstance' 'frontend-instance-guid' (str, mandatory) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Instance GUID identifying the partition frontend is on. 'frontend-domain' (str, optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The domain name used to access this ERP5 cluster, ignored if empty. Defaults to ''. For a better description of these parameters, see a frontend software release documentation.
-
Vincent Pelletier authored761bed51