Add runner to jude plus module

This commit is contained in:
Greg Hellings
2023-12-12 11:48:48 -06:00
parent 2b09e43623
commit b1d4d72b6b
7 changed files with 124 additions and 6 deletions
Generated
+3 -3
View File
@@ -7,11 +7,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1690228878, "lastModified": 1701216516,
"narHash": "sha256-9Xe7JV0krp4RJC9W9W9WutZVlw6BlHTFMiUP/k48LQY=", "narHash": "sha256-jKSeJn+7hZ1dZdiH1L+NWUGT2i/BGomKAJ54B9kT06Q=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "d8c973fd228949736dedf61b7f8cc1ece3236792", "rev": "13ac9ac6d68b9a0896e3d43a082947233189e247",
"type": "github" "type": "github"
}, },
"original": { "original": {
+3 -2
View File
@@ -4,7 +4,8 @@
imports = [ imports = [
../../vscodium.nix ../../vscodium.nix
]; ];
home.packages = [ home.packages = with pkgs; [
(pkgs.mumble.override { pulseSupport = true; }) (mumble.override { pulseSupport = true; })
fluffychat
]; ];
} }
+11
View File
@@ -33,4 +33,15 @@
users.extraGroups.vboxusers.members = [ "greg" ]; users.extraGroups.vboxusers.members = [ "greg" ];
boot.extraModprobeConfig = "options kvm_amd nested=1"; boot.extraModprobeConfig = "options kvm_amd nested=1";
greg.ci-runner = {
qemu = {
labels = [
"qemu:host"
];
packages = with pkgs; [
qemu
];
};
};
} }
+84
View File
@@ -0,0 +1,84 @@
{ config, pkgs, lib, ... }:
let
cfg = config.greg.ci-runner;
runnerNames = (builtins.attrNames cfg);
makeRunner = name: value: {
enable = true;
hostPackages = with pkgs; [
bashInteractive
podman
git
nodejs
] ++ value.packages;
labels = lib.mkIf ( builtins.hasAttr "labels" value) value.labels;
name = config.networking.hostName;
tokenFile = config.age.secrets.forgejo-runner.path;
url = "https://src.thehellings.com";
settings.runner.capacity = value.parallel;
};
userName = "gitea-runner";
in with lib; {
options = {
greg.ci-runner = mkOption {
default = {};
description = "List of gitea/forgejo runners to configure";
example = ''
```
greg.ci-runner.snarfblatt = {
labels = [ "ubuntu-latest:docker://ubuntu:latest" ];
};
```
'';
type = with types; attrsOf ( submodule (
{ name, config, options, ... }:
{
options.labels = mkOption {
type = (types.listOf types.str);
default = [];
description = ''List of labels. The syntax is
more or less going to be something along the lines
of `<runs-on-label>:docker://<actual docker image>` or
`native:host` for a system that will support running
commands directly on the server.'';
};
options.packages = mkOption {
type = (types.listOf types.package);
default = [];
description = ''List of extra packages that will be needed
in the running environment for this worker.'';
};
options.parallel = mkOption {
type = types.int;
default = 3;
description = "The maximum number of parallel jobs this runner will support.";
};
})
);
};
};
config = mkIf ( runnerNames != [] ) {
services.gitea-actions-runner.instances = ( mapAttrs makeRunner cfg);
age.secrets.forgejo-runner = let
aName = builtins.elemAt runnerNames 0;
target = "gitea-runner-${aName}";
in {
file = ../secrets/${config.networking.hostName}-forgejo-runner.age;
owner = userName;
group = userName;
};
users.users."${userName}" = {
isSystemUser = true;
group = "${userName}";
};
users.groups."${userName}" = {};
};
}
+4
View File
@@ -1,6 +1,10 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
{ {
imports = [
./ci-runner.nix
];
# Enable flakes # Enable flakes
nix = { nix = {
package = pkgs.nixFlakes; package = pkgs.nixFlakes;
+17
View File
@@ -0,0 +1,17 @@
age-encryption.org/v1
-> ssh-ed25519 mOmPfg 1Q/zfHlucVlB8FkxpOSYnWgFBJre3KeW+uANvUC/PFU
/uuW2lV2SwdekZPeJsCXK4T+msMtBFVio5fvFPOlcCI
-> ssh-ed25519 YJiRbw 4s8W7hOd8/kxQ4lImUYmF0DhXCuUZeCWXE+ueAFRbzg
el12BcxbsdyDHHalcucjqZz/Hzegg1J+Nvr0BFXXpu8
-> ssh-ed25519 Nl/5yA CP6ofzQfDKGGv2yFhjBx58xHPOaTazZ0jW0R6WXRiX8
+jOI7EIa0O1qh4ARyctAr8NHvp8Y8HSkA9tT8ybNrUg
-> ssh-ed25519 tOH/HQ oI1ltqtnlvl5WUrebrdy8LErHleiNHQJVc9FXuUwZ28
FNeE2F6tM6CWXiFwJnguL/0BGMz1oejyV+vX25UN3cY
-> ssh-ed25519 FpzvfQ XeYdcSTqUtY6mNwzZ9vfohJ/4y17OdoaYCNpGZxWrjw
3qA8Wsik3/JH+JVOr8T9ue2Y9wDzwrf6rWsfwbGTJAE
-> ssh-ed25519 GdLgCQ dAfetOmfUR4G4qcS4mjw2Z1h0iFt22Yh4GioqpJpimo
HQ5auu9P454fqMgCeYu5ynMXqyM35kvzlK4DFozhcC0
-> FilBs@/-grease %U4V^CDH 6'KK:"`
dirZXZvJaCxTTtTT
--- qvxgsWakIV8/n+LxUXw9WQ1nkKEfEBRv6oBSsc6KFJ4
ÓD¹p¼Y´Ö¤àðÏÓœI¶p)ö>ÿN r~x÷¶'ð‡¥¼`ë~+ÁUWF¿ï $™.¾2ºùÒ%9>ʺ<Iôâ:ŠdNwûØå
+2 -1
View File
@@ -9,7 +9,7 @@ let
user5 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDR4vmc5TiymSjMB7E+oYsiTxOg+2xwnLAILYjQKPA7dIvz/A/HW31R1aVVxNEgkHm8qeqmgE1bUysMMl128zvdKmwkMmq2uagx9hboyfCwOYRaQOtpS0dlgSllhM654vL9553t94sTuMIfNUiXBD3EV2Z5JJ1RteCkBTJjzmXQnV9he0xozBYOdGv35UGneQzAr7Pps9iK81mR4yW+vLcW3pAaPmDBbN7C6WFxqcEBWsaJZK0rLCTrQo+6B130XgH6gPgh4GyDaRmtRJl63yANiP/RfkDFTPKOh87slLLZaHJUe94P2CTZw0e9xSzWuzx71nBp9JhkoZkI9XD+AnbHIZ9X3twIADUf+D0fivzOH+Yzne0gNRFa+O4x8xd/xj8QeM+Rr1ATikBf/FRfyx+RzHgHS1ZyOKfIpQbrm44E8Smv7FzS5RcCfAScSn0npOqP0cilYjtDCEoeMVsx4XQy4+iYLOA/EaMICSz2PwQFG/KXe7NK30Cc5flq5qUiz8TX1Mzlxuro4qTktYSXZBs5YyEg3Za/hcqMV52kVn0W8S1DatHOL4TlRKYeKsg1hWNvtm2MRqJvWkqK9vNNL86Ew5D5hgXdCk+AiRzOhQxfprPYMea2Vx1Mkaq3VYHWmJBWc/m4aOKUSajhFu8KG7l8bc4IkgC+qQCYzr6pCUDlCaCEF1iQ3lItSkbJJmRBHKEOb85lsIJ/SZ0bhsMl8bc9z33zY+bwv2NezG/aKVGrny4ZTAI1BKkZN/60L0yzJihyKamEa442jjnvG1jzC2wEtd/0gCGWScfZsQWqDu97spbeq8jrc67U9xqlGTrWyyNsCW2lpu26cQWWRC8ufl5zBNRDFDSYKceBaJ2+sx1GPj3YYdJSlTt5JvxNyBg0BGfGqCTd0w4IXF3KP9IZRWWAKPaOZcil2MRZwYhWEd7p+CtKVAL93uW0sE+0C13+iFMnBUkFBJ2dZH+tWpywCRYcrVNvrBlsHe2XniwBwvQHUFgKaQAB8upFTK1xBWTh2S+CVyNed/fckAUrPDj4sI2NERGcyPC5Oi6r0fUPtcWvKRfA/yXx5A0iNWc6acTqd5wwSO3s8rOCjIwdczZmkmnjAf3UKhmtDnwRd9rbO5Hanom80re9Dk0W+z9E2+70b9iYvZ60pbw+cG4WqEQnr02RS8hKvU0CsYFoDMTzV4snqTKNrl0IeD+Fmjl7oDkcC4YQbZd2902qVL3WHHvW+p0WQ1B/rk8BPVRYVmrUQbqwPFCQlmTe3Zy+LpqbWYemhQJGVSiEiioVNCc7pHO6RyWLCoEQKwKHAoNleKtkG94hT/d0z+1RYpB/nbJ51BPihK5EMlXbw/Hu1SVaaDLOSL6p greg@mm"; user5 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDR4vmc5TiymSjMB7E+oYsiTxOg+2xwnLAILYjQKPA7dIvz/A/HW31R1aVVxNEgkHm8qeqmgE1bUysMMl128zvdKmwkMmq2uagx9hboyfCwOYRaQOtpS0dlgSllhM654vL9553t94sTuMIfNUiXBD3EV2Z5JJ1RteCkBTJjzmXQnV9he0xozBYOdGv35UGneQzAr7Pps9iK81mR4yW+vLcW3pAaPmDBbN7C6WFxqcEBWsaJZK0rLCTrQo+6B130XgH6gPgh4GyDaRmtRJl63yANiP/RfkDFTPKOh87slLLZaHJUe94P2CTZw0e9xSzWuzx71nBp9JhkoZkI9XD+AnbHIZ9X3twIADUf+D0fivzOH+Yzne0gNRFa+O4x8xd/xj8QeM+Rr1ATikBf/FRfyx+RzHgHS1ZyOKfIpQbrm44E8Smv7FzS5RcCfAScSn0npOqP0cilYjtDCEoeMVsx4XQy4+iYLOA/EaMICSz2PwQFG/KXe7NK30Cc5flq5qUiz8TX1Mzlxuro4qTktYSXZBs5YyEg3Za/hcqMV52kVn0W8S1DatHOL4TlRKYeKsg1hWNvtm2MRqJvWkqK9vNNL86Ew5D5hgXdCk+AiRzOhQxfprPYMea2Vx1Mkaq3VYHWmJBWc/m4aOKUSajhFu8KG7l8bc4IkgC+qQCYzr6pCUDlCaCEF1iQ3lItSkbJJmRBHKEOb85lsIJ/SZ0bhsMl8bc9z33zY+bwv2NezG/aKVGrny4ZTAI1BKkZN/60L0yzJihyKamEa442jjnvG1jzC2wEtd/0gCGWScfZsQWqDu97spbeq8jrc67U9xqlGTrWyyNsCW2lpu26cQWWRC8ufl5zBNRDFDSYKceBaJ2+sx1GPj3YYdJSlTt5JvxNyBg0BGfGqCTd0w4IXF3KP9IZRWWAKPaOZcil2MRZwYhWEd7p+CtKVAL93uW0sE+0C13+iFMnBUkFBJ2dZH+tWpywCRYcrVNvrBlsHe2XniwBwvQHUFgKaQAB8upFTK1xBWTh2S+CVyNed/fckAUrPDj4sI2NERGcyPC5Oi6r0fUPtcWvKRfA/yXx5A0iNWc6acTqd5wwSO3s8rOCjIwdczZmkmnjAf3UKhmtDnwRd9rbO5Hanom80re9Dk0W+z9E2+70b9iYvZ60pbw+cG4WqEQnr02RS8hKvU0CsYFoDMTzV4snqTKNrl0IeD+Fmjl7oDkcC4YQbZd2902qVL3WHHvW+p0WQ1B/rk8BPVRYVmrUQbqwPFCQlmTe3Zy+LpqbWYemhQJGVSiEiioVNCc7pHO6RyWLCoEQKwKHAoNleKtkG94hT/d0z+1RYpB/nbJ51BPihK5EMlXbw/Hu1SVaaDLOSL6p greg@mm";
user_genesis_virt = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFWPSFQT0AH77wrwRhiskcBS0w4ZakBRdJywYYBsnm3S greg@genesis"; user_genesis_virt = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFWPSFQT0AH77wrwRhiskcBS0w4ZakBRdJywYYBsnm3S greg@genesis";
user_jude = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCgg6FGmtWPjw5iYTlxJLz1WBCE7zhYhXgmfPvFRt6cd+sPdBdD3axkYPwuUxIa1dxwLEHn8BY9ZajFNrbD+Y0C82stxbBGLRhScj9phGP6LPJhNJsqeuU1rXcnUS127GlFayBb92UajpgMBVlQVJVgOikdK0GZWS4LMsTafkldS5leYr4o8pJ94ZQUk04m9Y2AhkLOMWDdLqqbVS7rFDKsfNDm6YUIrc4fCFvMwo2IhKb3VMv/CqPBFWx9YWFnLoNRAUhVTbcpDWBprvgAirf1rI9jXihX78gBLYqaI0shZg3mldIfQPaPudxXAYXZBFxZkcdnlEwOIL3jvR1bQKfRroAsLs4Nz66RDMIEC6cYm6QEIppFzx5pAXmjBHk8RPYPV0Z7gHxlp2yL0C3K6E1XN/A6cvK719VxEI8Sqmzl7Dd9/wikuyZhA/ZJfShpGTFX7M4wWKd9ZB6F01ATqAqACs4BHIIakl01C+lad2WQwxCXZo3dxGTMGoUrWTlTcAIKYHA0uun0k3oU0KRcSojpGMFCedR/HfLXZ/3TxeUHAZzSFKAQqZPE+6AZMoDSqVgWW6gPvRqVbtgG17qf6kPXM7XQRw/mNnjUWYrqSzDU4eEyN0AcfWhAN7defp+ERNlDyIdvYSiTniONuBMR5nz5xhLctKosJ1DaQcyNxYok9kGhG92pShRW11JmU/AmM3K6svD2tMRNRg2sJUNYHVzr/P65vZ43jXFV9hn5VTvhNofiDmAgTiPP+4Xo25FHtzu2CDwd7ve1zZZ8WyunmHx5kevdCQBcscKnpHO5MK1EBG2acThWD3HbfzncLkP6w5ZkLngGieIB1C3UjpzbbcBTeQ2NJnra59ZpouZ/ivqoxr/xqCakKlRmi201PV4DzB3HEYhODnmieykZcpSU77EuQb5H5w4k/YY0I9ZVrwyBuMfEducUPV8ghV6HRuZYUNWhOOr+rSmPSvi24kH8kkuoG7D+6aZbLpezyl6u6RvFuwGC784nr1nLXFSMOQpjND23SuGWn6iAcSCqxJ5eBIh50U2ZylsavBjaMDp94esBEG/YyWKcFO5b3xPr75/cwaeLGttdrnMfyWFG6Iz1yFxiMvTNqLKRlGNduK6OPTet89ymu1Gau+l5kfn9YE22gvwCRWU2GuCyTk/PigFyrAKmKduglUecW+Wgylh2OQ6YLJkE3nnJ2u+ujEJsqNdoQBJRFYm4efPFp0WK6DrAmOT/fAD6TyLitWwH+1XFgDR3IKynHgTVaG5SVhjBrT9NA59b90FDmQJmKiVMItDFTn6Ir2+qMw3mvl/xHoXJ6QRuNEOTWtqh8QeJIU5+tjr0pfW+Dz4/fydmOYX3khVZADR9 greg@jude"; user_jude = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINnRc/kBhxcjpUtiRQY+BXnSObdp0jFL1395wAQxJip7 greg@jude";
user_linode = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINAX6pNx5mbwIa8X+GzktyNijfYmJUpgROFpRxSW9js0 greg@linode"; user_linode = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINAX6pNx5mbwIa8X+GzktyNijfYmJUpgROFpRxSW9js0 greg@linode";
user_ivr = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMYzms+KIe5/bYF3uCyFjA5e1AgMPLIA3c4k417coqBe gregory.hellings@ls23003"; user_ivr = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMYzms+KIe5/bYF3uCyFjA5e1AgMPLIA3c4k417coqBe gregory.hellings@ls23003";
@@ -37,4 +37,5 @@ in
"monica.age".publicKeys = everyone; "monica.age".publicKeys = everyone;
"linode-forgejo-runner.age".publicKeys = everyone; "linode-forgejo-runner.age".publicKeys = everyone;
"jude-forgejo-runner.age".publicKeys = everyone;
} }