38 lines
		
	
	
	
		
			993 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			993 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| defaults = {
 | |
|     'apt': {
 | |
|         'packages': {
 | |
|             'build-essential': {},
 | |
|             # crystal
 | |
|             'clang': {},
 | |
|             'libssl-dev': {},
 | |
|             'libpcre3-dev': {},
 | |
|             'libgc-dev': {},
 | |
|             'libevent-dev': {},
 | |
|             'zlib1g-dev': {},
 | |
|         },
 | |
|     },
 | |
|     'users': {
 | |
|         'build-agent': {
 | |
|             'home': '/var/lib/build-agent',
 | |
|         },
 | |
|     },
 | |
| }
 | |
| 
 | |
| 
 | |
| @metadata_reactor.provides(
 | |
|     'users/build-agent/authorized_users',
 | |
| )
 | |
| def ssh_keys(metadata):
 | |
|     return {
 | |
|         'users': {
 | |
|             'build-agent': {
 | |
|                 'authorized_users': {
 | |
|                     f'build-server@{other_node.name}'
 | |
|                         for other_node in repo.nodes
 | |
|                         if other_node.has_bundle('build-server')
 | |
|                         for architecture in other_node.metadata.get('build-server/architectures').values()
 | |
|                         if architecture['node'] == node.name
 | |
|                 },
 | |
|             },
 | |
|         },
 | |
|     }
 | 
