Skip to content
Snippets Groups Projects
config_custom.php.dist 5.59 KiB
<?php
/*
 * CUSTOM SETTINGS
 * 
 * Settings here override defaults from config_defaults.php
 * 
 */
return [

    'lang' => 'en-en', // for available languages see ./config/lang/*.json

    'auth' => [
        // force using a given user ... for development only
        'forceuser' => 'admin',

        // use a real login
        'ldap' => [
            'server'       => 'ldaps://ldap.example.com',
            'port'         => 636,
            'DnLdapUser' => 'cn=lookupuser,dc=department,dc=example.com',
            'PwLdapUser' => 'lookupuser_password_here',
            'DnUserNode'   => 'ou=People,dc=department,dc=example.com',
            'DnAppNode'    => 'cn=CI Web-GUI Users,ou=Application Access,dc=department,dc=example.com',
            'debugLevel'   => 0,
        ]
    ],

    'banner' => '',

    // ----------------------------------------------------------------------    

    'phases' => [
        "preview" => [],
        "stage" => [],
        "live" => [
            // prevent immediate installation after build or accept
            "deploytimes" => ['/(Mon|Tue|Wed|Thu)\ 14\:/'],
        ],
    ],
    'showdebug' => [
        'ip'=> ['127.0.0.1'],
    ],

    'projectgroups' => [
        'teamA'=>'Team A: Services',
        'teamB'=>'Team B: Website',
    ],

    // ----------------------------------------------------------------------
    // build settings
    // ----------------------------------------------------------------------
    'versionsToKeep' => 10, // for cleanup: keep n unused versions
    'builtsToKeep' => 3,
    'build' => [
        'env' => 'export RVMSCRIPT="/usr/local/rvm/scripts/rvm";',
        'hooks' => [
            'build-postclone' => 'hooks/onbuild-postclone',
            'build-precompress' => 'hooks/onbuild',
        ],
    ],

    // ----------------------------------------------------------------------
    // rsync of archives
    // ----------------------------------------------------------------------
    'mirrorPackages' => [
        /*

        // (1)
        // sync to a puppet master puppet to extract archive and generate templates
        'puppet' => [
            'type' => 'rsync',
            'runas' => '', // www-data, // nur fuer commandline
            'target' => 'copy-deployment@puppetmaster.example.com:/share/ciserver',
        ],

        // (2)
        // sync to a software package server like https://os-docs.iml.unibe.ch/ci-pkg/
        'package-server' => [
            'type' => 'rsync',
            'runas' => '', // www-data, // nur fuer commandline
            'target' => 'copy-deployment@software.example.com:/var/www/data-ciserver',
        ],
        */
    ],

    // ----------------------------------------------------------------------    
    // plugins
    // existing subkeys = enabled plugins
    // ----------------------------------------------------------------------    
    'plugins'=>[

        'rollout'=>[
            'default'=>[
                'plugin'=>'default',
            ],
            /*
            'ssh'=>[
                'plugin'=>'ssh',
                'label'=>'Puppet via SSH',
                'user'=>'imldeployment',
                'privatekey'=>'',
                'addkeycommand'=>'/usr/bin/ssh-keygen -R %s; /usr/bin/ssh-keyscan -t rsa %s >> /home/www-data/.ssh/known_hosts',
                'testcommand'=>'sudo puppet --version',
                'command'=>'/usr/local/bin/puppetrun.sh',
            ],
            'awx'=>[
                'plugin'=>'awx',
                'label'=>'AWX - awx.example.com',
                'url'=>'https://awx.example.com/api/v2', // no ending "/"
                'user'=>'ciserver',
                'password'=>'ciserver',
                'jobtemplate'=>'36',
                'tags'=>'rollout',
            ],
            */
        ],
    ],
    
    // ----------------------------------------------------------------------    
    // notifications to messengers ...
    // ----------------------------------------------------------------------    

    // notifications to messengers ...
    'messenger'=>[
        'slack'=>[
            'presets'=>[
                'https://hooks.slack.com/services/AAAAAAAAA/BBBBBBBBB/KEY_01'=>[
                    'label'=>'#channel1',
                    'user'=>'[CI-WebGUI]',
                ],
                'https://hooks.slack.com/services/CCCCCCCCC/DDDDDDDDD/KEY_01'=>[
                    'label'=>'#channel2',
                    'user'=>'[CI-WebGUI]',
                ],
            ],
        ],
    ],

    // ----------------------------------------------------------------------    
    // APPMONITOR
    // see <https://os-docs.iml.unibe.ch/appmonitor/>
    // ----------------------------------------------------------------------    

    "appmonitor" => [

        // notification

        // email notification for this application
        /*
        "email" => [
            "sysadmin@example.com"            
        ],
        */
        // email notification for this application
        /*
        "slack" => [
            ["#sysadmins", "https://hooks.slack.com/services/AAA/BBB/CCC" ]
        ],
        */

        // limit access to appmonitor client to specific IP addresses
        /*
        "ip" => [
            '127.0.0.1',
            '::1',
            '10.0.2.2',
        ],
        */

        // limit access to appmonitor client to specific token
        // "token" => ["token", "1234567890"],


    // ----------------------------------------------------------------------    

];