feat: adding another runner to speed up deployment

Closes #139
This commit is contained in:
silver 2025-02-12 22:30:23 +00:00
parent 7ed5cf1b80
commit c57ca6ab11
Signed by: silver
GPG key ID: 36F93D61BAD3FD7D
8 changed files with 63 additions and 49 deletions

View file

@ -15,21 +15,23 @@ in {
options.services.skynet."${name}" = {
enable = mkEnableOption "Skynet ForgeJo Runner";
runner = {
name = mkOption {
type = types.str;
default = config.networking.hostName;
};
name = mkOption {
type = types.str;
default = config.networking.hostName;
};
website = mkOption {
default = "https://forgejo.skynet.ie";
type = types.str;
};
website = mkOption {
default = "https://forgejo.skynet.ie";
type = types.str;
};
user = mkOption {
default = "gitea-runner";
type = types.str;
};
user = mkOption {
default = "gitea-runner";
type = types.str;
};
secret = mkOption {
type = types.path;
};
};
@ -40,23 +42,23 @@ in {
];
age.secrets.forgejo_runner_token = {
file = ../../secrets/forgejo/runners/token.age;
owner = cfg.runner.user;
group = cfg.runner.user;
file = cfg.secret;
owner = cfg.user;
group = cfg.user;
};
# make sure the ssh config stuff is in teh right palce
systemd.tmpfiles.rules = [
#"d /home/${cfg.runner.user} 0755 ${cfg.runner.user} ${cfg.runner.user}"
"L+ /home/${cfg.runner.user}/.ssh/config 0755 ${cfg.runner.user} ${cfg.runner.user} - ${./ssh_config}"
#"d /home/${cfg.user} 0755 ${cfg.user} ${cfg.user}"
"L+ /home/${cfg.user}/.ssh/config 0755 ${cfg.user} ${cfg.user} - ${./ssh_config}"
];
age.secrets.forgejo_runner_ssh = {
file = ../../secrets/forgejo/runners/ssh.age;
mode = "600";
owner = "${cfg.runner.user}";
group = "${cfg.runner.user}";
owner = "${cfg.user}";
group = "${cfg.user}";
symlink = false;
path = "/home/${cfg.runner.user}/.ssh/skynet/root";
path = "/home/${cfg.user}/.ssh/skynet/root";
};
nix = {
@ -94,14 +96,14 @@ in {
# give teh runner user a home to store teh ssh config stuff
systemd.services.gitea-runner-default.serviceConfig = {
DynamicUser = lib.mkForce false;
User = lib.mkForce cfg.runner.user;
User = lib.mkForce cfg.user;
};
users = {
groups."${cfg.runner.user}" = {};
users."${cfg.runner.user}" = {
groups."${cfg.user}" = {};
users."${cfg.user}" = {
#isSystemUser = true;
isNormalUser = true;
group = cfg.runner.user;
group = cfg.user;
createHome = true;
shell = pkgs.bash;
};
@ -118,8 +120,8 @@ in {
package = pkgs.forgejo-actions-runner;
instances.default = {
enable = true;
name = cfg.runner.name;
url = cfg.runner.website;
name = cfg.name;
url = cfg.website;
tokenFile = config.age.secrets.forgejo_runner_token.path;
labels = [
## optionally provide native execution on the host: