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')
 | |
|                 },
 | |
|             },
 | |
|         },
 | |
|     }
 | 
