66 lines
1.4 KiB
Python
66 lines
1.4 KiB
Python
defaults = {
|
|
'users': {
|
|
'downloads': {
|
|
'home': '/var/lib/downloads',
|
|
'needs': {
|
|
'zfs_dataset:tank/downloads'
|
|
},
|
|
},
|
|
},
|
|
'zfs': {
|
|
'datasets': {
|
|
'tank/downloads': {
|
|
'mountpoint': '/var/lib/downloads',
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'systemd-mount'
|
|
)
|
|
def mount_certs(metadata):
|
|
return {
|
|
'systemd-mount': {
|
|
'/var/lib/downloads_nginx': {
|
|
'source': '/var/lib/downloads',
|
|
'user': 'www-data',
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'nginx/vhosts',
|
|
)
|
|
def nginx(metadata):
|
|
return {
|
|
'nginx': {
|
|
'vhosts': {
|
|
metadata.get('download-server/hostname'): {
|
|
'content': 'nginx/directory_listing.conf',
|
|
'context': {
|
|
'directory': '/var/lib/downloads_nginx',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'users/downloads/authorized_users',
|
|
)
|
|
def ssh_keys(metadata):
|
|
return {
|
|
'users': {
|
|
'downloads': {
|
|
'authorized_users': {
|
|
f'build-server@{other_node.name}'
|
|
for other_node in repo.nodes
|
|
if other_node.has_bundle('build-server')
|
|
},
|
|
},
|
|
},
|
|
}
|