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