Create modules/gitlab-runner.nix
This commit is contained in:
@@ -20,6 +20,7 @@ with lib;
|
||||
./mft
|
||||
./fs
|
||||
./pki/certs.nix
|
||||
./gitlab-runner.nix
|
||||
../nixos
|
||||
];
|
||||
}
|
||||
|
||||
78
modules/gitlab-runner.nix
Normal file
78
modules/gitlab-runner.nix
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.features.gitlab-runner;
|
||||
|
||||
configuration = {
|
||||
services.gitlab-runner = {
|
||||
enable = true;
|
||||
settings = {
|
||||
concurrent = 16;
|
||||
};
|
||||
services = {
|
||||
nix = {
|
||||
# NOTE(simkir): This must be uploaded to the host after you've
|
||||
# registered a runner in gitlab
|
||||
registrationConfigFile = "/run/secrets/gitlab-runner-registration";
|
||||
|
||||
dockerImage = "alpine";
|
||||
dockerVolumes = [
|
||||
"/nix/store:/nix/store:ro"
|
||||
"/nix/var/nix/db:/nix/var/nix/db:ro"
|
||||
"/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket:ro"
|
||||
];
|
||||
dockerDisableCache = true;
|
||||
|
||||
preBuildScript = pkgs.writeScript "setup-container" ''
|
||||
mkdir -p -m 0755 /nix/var/log/nix/drvs
|
||||
mkdir -p -m 0755 /nix/var/nix/gcroots
|
||||
mkdir -p -m 0755 /nix/var/nix/profiles
|
||||
mkdir -p -m 0755 /nix/var/nix/temproots
|
||||
mkdir -p -m 0755 /nix/var/nix/userpool
|
||||
mkdir -p -m 1777 /nix/var/nix/gcroots/per-user
|
||||
mkdir -p -m 1777 /nix/var/nix/profiles/per-user
|
||||
mkdir -p -m 0755 /nix/var/nix/profiles/per-user/root
|
||||
mkdir -p -m 0700 "$HOME/.nix-defexpr"
|
||||
. ${pkgs.nix}/etc/profile.d/nix-daemon.sh
|
||||
${pkgs.nix}/bin/nix-channel --add https://nixos.org/channels/nixos-25.05 nixpkgs
|
||||
${pkgs.nix}/bin/nix-channel --update nixpkgs
|
||||
'';
|
||||
|
||||
environmentVariables = {
|
||||
ENV = "/etc/profile";
|
||||
USER = "root";
|
||||
NIX_REMOTE = "daemon";
|
||||
# Taken from https://cobalt.rocks/posts/nix-gitlab/
|
||||
PATH =
|
||||
(pkgs.lib.strings.makeSearchPathOutput "bin" "bin" (
|
||||
with pkgs;
|
||||
[
|
||||
gnugrep
|
||||
coreutils
|
||||
nix
|
||||
openssh
|
||||
bash
|
||||
git
|
||||
skopeo
|
||||
]
|
||||
))
|
||||
+ ":/nix/var/nix/profiles/default/bin:/usr/local/bin:/usr/local/sbin:/nix/var/nix/profiles/default/sbin:/bin:/sbin:/usr/bin:/usr/sbin";
|
||||
};
|
||||
|
||||
tagList = [ "nix" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
options.features.gitlab-runner = {
|
||||
enable = mkEnableOption "Enable Gitlab runner service";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable configuration;
|
||||
}
|
||||
61
tos/hive.nix
61
tos/hive.nix
@@ -35,6 +35,8 @@ in
|
||||
|
||||
features = {
|
||||
lan.enable = pkgs.lib.mkForce false;
|
||||
|
||||
gitlab-runner.enable = true;
|
||||
};
|
||||
|
||||
networking = {
|
||||
@@ -49,65 +51,6 @@ in
|
||||
user = "coffee-kai";
|
||||
};
|
||||
};
|
||||
|
||||
# TODO: Create module
|
||||
gitlab-runner = {
|
||||
enable = true;
|
||||
settings = {
|
||||
concurrent = 16;
|
||||
};
|
||||
services = {
|
||||
nix = {
|
||||
registrationConfigFile = "/run/secrets/gitlab-runner-registration";
|
||||
|
||||
dockerImage = "alpine";
|
||||
dockerVolumes = [
|
||||
"/nix/store:/nix/store:ro"
|
||||
"/nix/var/nix/db:/nix/var/nix/db:ro"
|
||||
"/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket:ro"
|
||||
];
|
||||
dockerDisableCache = true;
|
||||
|
||||
preBuildScript = pkgs.writeScript "setup-container" ''
|
||||
mkdir -p -m 0755 /nix/var/log/nix/drvs
|
||||
mkdir -p -m 0755 /nix/var/nix/gcroots
|
||||
mkdir -p -m 0755 /nix/var/nix/profiles
|
||||
mkdir -p -m 0755 /nix/var/nix/temproots
|
||||
mkdir -p -m 0755 /nix/var/nix/userpool
|
||||
mkdir -p -m 1777 /nix/var/nix/gcroots/per-user
|
||||
mkdir -p -m 1777 /nix/var/nix/profiles/per-user
|
||||
mkdir -p -m 0755 /nix/var/nix/profiles/per-user/root
|
||||
mkdir -p -m 0700 "$HOME/.nix-defexpr"
|
||||
. ${pkgs.nix}/etc/profile.d/nix-daemon.sh
|
||||
${pkgs.nix}/bin/nix-channel --add https://nixos.org/channels/nixos-25.05 nixpkgs
|
||||
${pkgs.nix}/bin/nix-channel --update nixpkgs
|
||||
'';
|
||||
|
||||
environmentVariables = {
|
||||
ENV = "/etc/profile";
|
||||
USER = "root";
|
||||
NIX_REMOTE = "daemon";
|
||||
# Taken from https://cobalt.rocks/posts/nix-gitlab/
|
||||
PATH =
|
||||
(pkgs.lib.strings.makeSearchPathOutput "bin" "bin" (
|
||||
with pkgs;
|
||||
[
|
||||
gnugrep
|
||||
coreutils
|
||||
nix
|
||||
openssh
|
||||
bash
|
||||
git
|
||||
skopeo
|
||||
]
|
||||
))
|
||||
+ ":/nix/var/nix/profiles/default/bin:/usr/local/bin:/usr/local/sbin:/nix/var/nix/profiles/default/sbin:/bin:/sbin:/usr/bin:/usr/sbin";
|
||||
};
|
||||
|
||||
tagList = [ "nix" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.krdp = {
|
||||
|
||||
Reference in New Issue
Block a user