121 lines
3.5 KiB
Python
121 lines
3.5 KiB
Python
defaults = {
|
|
'apt': {
|
|
'packages': {
|
|
'imagemagick': {},
|
|
'ffmpeg': {},
|
|
},
|
|
},
|
|
'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',
|
|
},
|
|
},
|
|
},
|
|
'zfs': {
|
|
'datasets': {
|
|
'tank/matrix-media-repo': {},
|
|
'tank/matrix-media-repo/install': {
|
|
'mountpoint': '/opt/matrix-media-repo',
|
|
'needed_by': {
|
|
'directory:/opt/matrix-media-repo',
|
|
},
|
|
},
|
|
'tank/matrix-media-repo/media': {
|
|
'mountpoint': '/var/matrix/media',
|
|
'compression': 'on',
|
|
'needed_by': {
|
|
'directory:/var/matrix/media',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
if node.os == 'debian' and node.os_version[0] <= 10:
|
|
defaults['apt']['repos'] = {
|
|
'backports': {
|
|
'install_gpg_key': False, # default debian signing key
|
|
'items': {
|
|
'deb http://deb.debian.org/debian {os_release}-backports main',
|
|
},
|
|
},
|
|
}
|
|
|
|
if node.has_bundle('telegraf'):
|
|
defaults['telegraf'] = {
|
|
'input_plugins': {
|
|
'prometheus': {
|
|
'matrix_media_repo': {
|
|
'urls': [
|
|
'http://127.0.0.1:20091/metrics'
|
|
],
|
|
'metric_version': 2,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
@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',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|