bundlewrap/bundles/grafana/metadata.py

58 lines
1.5 KiB
Python

defaults = {
'apt': {
'packages': {
'grafana': {},
},
'repos': {
'grafana': {
'items': {
'deb https://apt.grafana.com stable main',
},
},
},
},
'backups': {
'paths': {
'/var/lib/grafana',
},
},
'grafana': {
'allow_anonymous': False,
'allow_embedding': False,
'allow_sign_up': False,
'anonymous_org': 'public',
'enable_smtp': True,
'login_max_duration': '24h',
'secret_key': repo.vault.random_bytes_as_base64_for(f'{node.name} grafana secret_key'),
},
}
@metadata_reactor.provides(
'nginx/vhosts/grafana',
)
def nginx(metadata):
if not node.has_bundle('nginx'):
raise DoNotRunAgain
return {
'nginx': {
'vhosts': {
'grafana': {
'domain': metadata.get('grafana/domain'),
'locations': {
'/': {
'target': 'http://127.0.0.1:21010',
'websockets': True,
},
'/api/ds/query': {
'target': 'http://127.0.0.1:21010',
'proxy_read_timeout': 300,
},
},
'website_check_path': '/login',
'website_check_string': 'Grafana',
},
},
},
}