bundlewrap/bundles/matrix-media-repo/metadata.py
2021-05-14 20:02:39 +02:00

88 lines
2.5 KiB
Python

defaults = {
'apt': {
'packages': {
'golang-go': {},
'imagemagick': {},
'ffmpeg': {},
},
'repos': {
'backports': {
'install_gpg_key': False, # default debian signing key
'items': {
'deb http://deb.debian.org/debian {os_release}-backports main',
},
},
},
},
'backups': {
'paths': {
'/var/matrix/media',
},
},
'icinga2_api': {
'matrix-media-repo': {
'services': {
'MATRIX-MEDIA-REPO PROCESS': {
'command_on_monitored_host': '/usr/lib/nagios/plugins/check_procs -a media_repo -c 1:',
'vars.notification.sms': True,
},
},
},
},
'matrix-media-repo': {
'database': {
'user': 'matrix-media-repo',
'password': repo.vault.password_for('{} postgresql matrix-media-repo'.format(node.name)),
'database': 'matrix-media-repo',
},
'archive': {
'self-service': False,
},
'download_max_mb': 100,
'preview_max_mb': 10,
'shared-secret-token': repo.vault.password_for('{} matrix-media-repo shared-secret-token'.format(node.name)),
'upload_max_mb': 100,
},
'postgresql': {
'roles': {
'matrix-media-repo': {
'password': repo.vault.password_for('{} postgresql matrix-media-repo'.format(node.name)),
},
},
'databases': {
'matrix-media-repo': {
'owner': 'matrix-media-repo',
},
},
},
}
@metadata_reactor.provides(
'matrix-media-repo/workers',
)
def cpu_to_workers(metadata):
return {
'matrix-media-repo': {
'workers': max(metadata.get('vm/cpu', 1), 4),
},
}
@metadata_reactor.provides(
'icinga2_api/matrix-media-repo/services',
)
def icinga_check_for_new_release(metadata):
return {
'icinga2_api': {
'matrix-media-repo': {
'services': {
'MATRIX-MEDIA-REPO UPDATE': {
'command_on_monitored_host': '/usr/local/share/icinga/plugins/check_github_for_new_release turt2live/matrix-media-repo {}'.format(metadata.get('matrix-media-repo/version')),
'vars.notification.mail': True,
'check_interval': '60m',
},
},
},
},
}