mirror of
https://github.com/RichieCahill/dotfiles.git
synced 2026-04-17 04:58:19 -04:00
created nix_builder module
This commit is contained in:
51
systems/jeeves/nix_builder.nix
Normal file
51
systems/jeeves/nix_builder.nix
Normal file
@@ -0,0 +1,51 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
vars = import ./vars.nix;
|
||||
in
|
||||
{
|
||||
options.services.nix_builder.containers = mkOption {
|
||||
type = types.attrsOf (types.submodule ({ name, ... }: {
|
||||
options.enable = mkEnableOption "GitHub runner container";
|
||||
}));
|
||||
default = {};
|
||||
description = "GitHub runner container configurations";
|
||||
};
|
||||
|
||||
config.containers = mapAttrs (name: cfg:
|
||||
mkIf cfg.enable {
|
||||
autoStart = true;
|
||||
bindMounts = {
|
||||
"/storage" = {
|
||||
mountPoint = "/zfs/media/github-runners/${name}";
|
||||
isReadOnly = false;
|
||||
};
|
||||
"/secrets".mountPoint = "${vars.storage_secrets}/services/github-runners/${name}";
|
||||
};
|
||||
config = { config, pkgs, lib, ... }: {
|
||||
services.github-runners.${name} = {
|
||||
enable = true;
|
||||
replace = true;
|
||||
workDir = "/zfs/media/github-runners/${name}";
|
||||
url = "https://github.com/RichieCahill/dotfiles";
|
||||
extraLabels = [ "nixos" ];
|
||||
tokenFile = "${vars.storage_secrets}/services/github-runners/${name}";
|
||||
user = "github-runners";
|
||||
group = "github-runners";
|
||||
extraPackages = [ pkgs.nixos-rebuild ];
|
||||
};
|
||||
users = {
|
||||
users.github-runners = {
|
||||
isSystemUser = true;
|
||||
group = "github-runners";
|
||||
uid = 601;
|
||||
};
|
||||
groups.github-runners.gid = 601;
|
||||
};
|
||||
system.stateVersion = "24.11";
|
||||
};
|
||||
}
|
||||
) config.services.nix_builder.containers;
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
vars = import ./vars.nix;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./nix_builder.nix
|
||||
];
|
||||
|
||||
users = {
|
||||
users.github-runners = {
|
||||
isSystemUser = true;
|
||||
@@ -12,49 +12,10 @@ in
|
||||
groups.github-runners.gid = 601;
|
||||
};
|
||||
|
||||
services.github-runners.nix_builder = {
|
||||
enable = true;
|
||||
replace = true;
|
||||
workDir = "/zfs/media/github-runners/nix_builder/";
|
||||
url = "https://github.com/RichieCahill/dotfiles";
|
||||
extraLabels = [ "nixos" ];
|
||||
tokenFile = "${vars.storage_secrets}/services/github_runners/nix_builder";
|
||||
user = "github-runners";
|
||||
group = "github-runners";
|
||||
extraPackages = [ pkgs.nixos-rebuild ];
|
||||
# extraEnvironment
|
||||
};
|
||||
|
||||
containers.nix-builder-1 = {
|
||||
autoStart = true;
|
||||
bindMounts = {
|
||||
"/test" = {
|
||||
mountPoint = "/zfs/media/github-runners/nix_builder_1";
|
||||
isReadOnly = false;
|
||||
};
|
||||
"/secrets".mountPoint = "${vars.storage_secrets}/services/github_runners/nix_builder_1";
|
||||
};
|
||||
config = { config, pkgs, lib, ... }: {
|
||||
users = {
|
||||
users.github-runners = {
|
||||
isSystemUser = true;
|
||||
group = "github-runners";
|
||||
uid = 601;
|
||||
};
|
||||
groups.github-runners.gid = 601;
|
||||
};
|
||||
services.github-runners.nix_builder_1 = {
|
||||
enable = true;
|
||||
replace = true;
|
||||
workDir = "/zfs/media/github-runners/nix_builder_1";
|
||||
url = "https://github.com/RichieCahill/dotfiles";
|
||||
extraLabels = [ "nixos" ];
|
||||
tokenFile = "${vars.storage_secrets}/services/github_runners/nix_builder_1";
|
||||
user = "github-runners";
|
||||
group = "github-runners";
|
||||
extraPackages = [ pkgs.nixos-rebuild ];
|
||||
};
|
||||
system.stateVersion = "24.11";
|
||||
};
|
||||
services.nix_builder.containers = {
|
||||
nix-builder-0.enable = true;
|
||||
nix-builder-1.enable = true;
|
||||
nix-builder-2.enable = true;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user