• Kirill Smelkov's avatar
    gitlab: Add empty instance · ab6d2f28
    Kirill Smelkov authored
    Add stub instance configuration which just establishes a way to have
    several software types(*), pass all needed info from software to
    instance, organizes base directory and establishes log rotation base for
    upcoming services.
    
    Log rotation is done with the help of cron periodicallly calling
    logrotate. The rotation is done in "copytruncate" mode - i.e. log file
    is not moved away and signal sent for service to reopen it, but instead
    log content is just copied to outside and there is no need for a service
    to reopen it's log file.
    
    The reason it is done this way, is that there is a chance of not
    handling such "reopen-log-file" callbacks correctly on a service side,
    and so the net is full of crashing reports, e.g. like this:
    
        http://serverfault.com/questions/627521/why-is-logrotate-causing-apache-to-seg-fault-each-time
    
    That's why we take a safer approach instead, even if "copytruncate" mode
    is risking to loose several log entries(**) on rotation.
    
    NOTE services will organize log rotation with just
    
        [logrotate-entry-<service>]
        <= logrotate-entry
        log     = path/to/log/files/*.log
    
    For this to work some "!py!" magic (our way to serialize object into
    executable python and process it in buildout recipes) is used to process
    section names.
    
    The approach trick is also used for cron, e.g. logrotate registers to
    cron this way:
    
        [cron-entry-logrotate]
        <= cron-entry
        time    = daily
        command = ${logrotate:wrapper}
    
    NOTE2 instance md5 are not fixed yet - we'll fix them after applying all
        patches in gitlab series.
    
    (*) for now there is only 1 - "gitlab", but we'll need to have "-export"
        and "-import" for resiliency in the future.
    
    (**) ideally such things should be done with logfs - a filesystem
        specializeing in logging - for client services it will look like as
        they just continue to write to log file, and on log service side, the
        rotation can happen, all transparent to client service.
    
    /cc @kazuhiko, @jerome
    ab6d2f28
Name
Last commit
Last update
..
agent Loading commit data...
ajaxplorer Loading commit data...
apache-frontend Loading commit data...
backupserver Loading commit data...
boinc Loading commit data...
boinc-client Loading commit data...
bonjourgrid Loading commit data...
bonjourgrid-client Loading commit data...
cdn-me Loading commit data...
cloudooo Loading commit data...
davstorage Loading commit data...
dream Loading commit data...
erp5 Loading commit data...
erp5scalabilitytestbed Loading commit data...
erp5testnode Loading commit data...
etherpad-lite Loading commit data...
gateone Loading commit data...
gitlab Loading commit data...
helloworld Loading commit data...
html5as Loading commit data...
html5ide Loading commit data...
ipython_notebook Loading commit data...
kumofs Loading commit data...
kvm Loading commit data...
lamp-template Loading commit data...
mariadb Loading commit data...
memcached Loading commit data...
monitor Loading commit data...
mysql-5.1 Loading commit data...
neoppod Loading commit data...
nginx-push-stream Loading commit data...
packer Loading commit data...
postgres Loading commit data...
powerdns Loading commit data...
re6stnet Loading commit data...
redis-server Loading commit data...
seleniumrunner Loading commit data...
slapos-in-partition Loading commit data...
slapos-master Loading commit data...
slapos-testing Loading commit data...
slaprunner Loading commit data...
test-slave-instance-deployment Loading commit data...
unstable Loading commit data...
varnish Loading commit data...
wendelin Loading commit data...
wordpress Loading commit data...
zabbix-agent Loading commit data...