defaults = { 'apt': { 'packages': { 'gcc': {}, # for compiling some python deps 'gettext': {}, 'python3-dev': {}, }, }, 'bash_aliases': { 'pretalx': 'sudo /opt/pretalx/venv/bin/python -m pretalx', }, 'backups': { 'paths': { '/opt/pretalx/data', }, }, 'icinga2_api': { 'pretalx': { 'services': { 'PRETALX-WEB PROCESS': { 'command_on_monitored_host': '/usr/local/share/icinga/plugins/check_systemd_unit pretalx-web', }, 'PRETALX-WORKER PROCESS': { 'command_on_monitored_host': '/usr/local/share/icinga/plugins/check_systemd_unit pretalx-worker', }, }, }, }, 'pretalx': { 'database': { 'user': 'pretalx', 'password': repo.vault.password_for('{} postgresql pretalx'.format(node.name)), 'database': 'pretalx', }, }, 'postgresql': { 'roles': { 'pretalx': { 'password': repo.vault.password_for('{} postgresql pretalx'.format(node.name)), }, }, 'databases': { 'pretalx': { 'owner': 'pretalx', }, }, }, } @metadata_reactor.provides( 'icinga2_api/pretalx/services', ) def icinga_check_for_new_release(metadata): version = metadata.get('pretalx/version') if '.' not in version: return {} return { 'icinga2_api': { 'pretalx': { 'services': { 'PRETALX UPDATE': { 'command_on_monitored_host': '/usr/local/share/icinga/plugins/check_pypi_for_new_release pretalx {}'.format(version), 'vars.notification.mail': True, 'check_interval': '60m', }, }, }, }, }