Files
nixos/hosts/isaiah/container-runner.nix
T

110 lines
2.3 KiB
Nix
Raw Normal View History

{
top,
name,
extra ? { },
packages ? [ ],
overlays,
}:
2023-12-17 15:47:52 -06:00
2024-08-16 22:46:05 -05:00
(
{
config,
pkgs,
lib,
...
}:
(lib.attrsets.recursiveUpdate
{
2023-12-17 15:47:52 -06:00
imports = [
top.agenix.nixosModules.default
top.self.modules.nixosModule
];
2023-12-17 15:47:52 -06:00
nixpkgs.overlays = overlays;
2024-02-13 23:58:38 -06:00
greg.tailscale.enable = true;
2024-04-02 15:02:04 -05:00
age = {
identityPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
secrets.runner-reg = {
2024-11-18 23:48:51 -06:00
file = ../../secrets/gitlab/isaiah-${name}-runner-reg.age;
owner = "gitlab-runner";
};
};
2023-12-17 15:47:52 -06:00
environment.systemPackages =
with pkgs;
[
curl
gawk
git
unzip
xorriso
wget
]
++ packages;
2023-12-17 15:47:52 -06:00
networking = {
useHostResolvConf = pkgs.lib.mkForce false;
nameservers = [ "100.100.100.100" ];
};
2023-12-17 15:47:52 -06:00
nixpkgs.config.allowUnfree = true;
2023-12-17 15:47:52 -06:00
users.users.gitlab-runner = {
isSystemUser = true;
group = "kvm";
extraGroups = [ "kvm" ];
};
2024-04-04 13:53:17 -05:00
services = {
gitlab-runner = {
enable = true;
settings.concurrent = 5;
services = {
shell = {
executor = "shell";
limit = 5;
authenticationTokenConfigFile = config.age.secrets.runner-reg.path;
environmentVariables = {
EFI_DIR = "${pkgs.OVMF.fd}/FV/";
2024-12-24 11:19:14 -06:00
STORAGE_URL = "s3.thehellings.lan:9000";
};
};
};
};
resolved.enable = true;
};
2023-12-17 15:47:52 -06:00
systemd.services.gitlab-runner = {
wants = [
"network-online.target"
"systemd-resolved.service"
];
after = [
"network.target"
"network-online.target"
"systemd-resolved.service"
];
serviceConfig = {
DevicePolicy = lib.mkForce "auto";
PrivateDevices = false;
ProtectKernelModules = false;
DevicesAllow = [
"/dev/kvm"
"/dev/mem"
];
DynamicUser = lib.mkForce false;
User = "root";
Group = "kvm";
};
};
2023-12-17 15:47:52 -06:00
system.stateVersion = lib.mkForce "24.05";
}
2023-12-17 15:47:52 -06:00
extra
) # End of attrsets.recursiveUpdate
) # End of outter function wrapper