nix/coordinator: support specific private SSH keys

Signed-off-by: Raito Bezarius <raito@lix.systems>
This commit is contained in:
raito 2024-03-02 21:35:59 +01:00
parent 9f98533dd7
commit 94e3d7aeda

View file

@ -310,6 +310,7 @@ class GitWithRetry(steps.Git):
def nix_eval_config( def nix_eval_config(
project: GerritProject, project: GerritProject,
gerrit_private_key: str,
worker_names: list[str], worker_names: list[str],
supported_systems: list[str], supported_systems: list[str],
eval_lock: util.MasterLock, eval_lock: util.MasterLock,
@ -326,7 +327,8 @@ def nix_eval_config(
repourl="git://git@git.lix.systems/lix-project/lix", repourl="git://git@git.lix.systems/lix-project/lix",
mode="full", mode="full",
retry=[60, 60], retry=[60, 60],
timeout=3600 timeout=3600,
sshPrivateKey=gerrit_private_key
), ),
) )
drv_gcroots_dir = util.Interpolate( drv_gcroots_dir = util.Interpolate(
@ -570,12 +572,20 @@ def config_for_project(
), ),
], ],
) )
gerrit_private_key = None
with open('/var/lib/buildbot/master/id_gerrit', 'r') as f:
gerrit_private_key = f.read()
if gerrit_private_key is None:
raise RuntimeError('No gerrit private key to fetch the repositories')
config["builders"].extend( config["builders"].extend(
[ [
# Since all workers run on the same machine, we only assign one of them to do the evaluation. # Since all workers run on the same machine, we only assign one of them to do the evaluation.
# This should prevent exessive memory usage. # This should prevent exessive memory usage.
nix_eval_config( nix_eval_config(
project, project,
gerrit_private_key,
worker_names, worker_names,
supported_systems=nix_supported_systems, supported_systems=nix_supported_systems,
worker_count=nix_eval_worker_count, worker_count=nix_eval_worker_count,
@ -670,6 +680,7 @@ class GerritNixConfigurator(ConfiguratorBase):
gerrit_server: str, gerrit_server: str,
gerrit_user: str, gerrit_user: str,
gerrit_port: int, gerrit_port: int,
gerrit_sshkey_path: str,
url: str, url: str,
nix_supported_systems: list[str], nix_supported_systems: list[str],
nix_eval_worker_count: int | None, nix_eval_worker_count: int | None,
@ -686,7 +697,7 @@ class GerritNixConfigurator(ConfiguratorBase):
self.nix_eval_max_memory_size = nix_eval_max_memory_size self.nix_eval_max_memory_size = nix_eval_max_memory_size
self.nix_eval_worker_count = nix_eval_worker_count self.nix_eval_worker_count = nix_eval_worker_count
self.nix_supported_systems = nix_supported_systems self.nix_supported_systems = nix_supported_systems
self.gerrit_change_source = GerritChangeSource(gerrit_server, gerrit_user, gerritport=gerrit_port) self.gerrit_change_source = GerritChangeSource(gerrit_server, gerrit_user, gerritport=gerrit_port, identity_file=gerrit_sshkey_path)
self.url = url self.url = url
self.cachix = cachix self.cachix = cachix
if outputs_path is None: if outputs_path is None: