Compare commits

...

17 Commits

Author SHA1 Message Date
bc9d243c28 workflow
Some checks failed
Apply Kuberentes Configs / update-repo (push) Failing after 0s
Apply Kuberentes Configs / update-infrastructure (push) Has been skipped
2026-02-07 14:02:23 -07:00
5484553a87 environment 2026-02-07 14:02:00 -07:00
5f55fe11a3 environment 2026-02-07 13:59:39 -07:00
eb111fb5f8 environment 2026-02-07 13:54:49 -07:00
0ce24bad4e environment 2026-02-07 13:46:35 -07:00
d8ab3f161f environment 2026-02-07 13:45:35 -07:00
4117e4d46e environment 2026-02-07 13:44:09 -07:00
576a404aaf environment 2026-02-07 13:43:57 -07:00
cbf2241895 environment 2026-02-07 13:43:15 -07:00
cb8bff7c0a environment 2026-02-07 13:41:21 -07:00
a308b23380 environment 2026-02-07 13:39:59 -07:00
d39ab4b5f2 environment 2026-02-07 13:38:57 -07:00
5b50211103 environment 2026-02-07 13:37:39 -07:00
1f92a821fb environment 2026-02-07 13:37:27 -07:00
0ab0e939f3 environment 2026-02-07 13:36:49 -07:00
1a32a3d826 environment 2026-02-07 13:36:01 -07:00
474b0ac5ad environment 2026-02-07 13:34:47 -07:00
3 changed files with 108 additions and 70 deletions

View File

@@ -9,11 +9,11 @@ jobs:
run: | run: |
if [ -d "infrastructure" ]; then if [ -d "infrastructure" ]; then
cd infrastructure cd infrastructure
echo "Infrastructure folder exists. Resetting to the most recent commit." echo "Infrastructure folder exists. Resetting to the most recent commit."
git reset --hard HEAD git reset --hard HEAD
git pull https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} $(git rev-parse --abbrev-ref HEAD) git pull https://x-access-token:${{ secrets.GITEA_TOKEN }}@git.alexmickelson.guru/${{ gitea.repository }} $(git rev-parse --abbrev-ref HEAD)
else else
git clone https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git git clone https://x-access-token:${{ secrets.GITEA_TOKEN }}@git.alexmickelson.guru/${{ gitea.repository }}.git
fi fi
update-infrastructure: update-infrastructure:
runs-on: home-server runs-on: home-server

View File

@@ -7,6 +7,7 @@
<home-manager/nixos> <home-manager/nixos>
./modules/k3s.nix ./modules/k3s.nix
./modules/pci-passthrough.nix ./modules/pci-passthrough.nix
./modules/gitea-runner.nix
]; ];
security.pam.loginLimits = [ security.pam.loginLimits = [
{ {
@@ -288,72 +289,6 @@
}; };
}; };
services.gitea-actions-runner = {
instances.infrastructure = {
enable = true;
name = "infrastructure-runner";
url = "https://git.alexmickelson.guru";
tokenFile = "/data/runner/gitea-infrastructure-token.txt";
labels = [
"home-server"
"native:host"
];
hostPackages = with pkgs; [
bashNonInteractive
bash
coreutils
docker
git
git-secret
zfs
sanoid
mbuffer
lzop
kubectl
kubernetes-helm
];
settings = {
container = { enabled = false; };
};
};
};
environment.pathsToLink = [
"/bin"
];
systemd.services.gitea-runner-infrastructure.serviceConfig = {
ReadWritePaths = [
"/data/cloudflare/"
"/data/runner/infrastructure"
"/data/runner"
"/home/github/infrastructure"
];
PrivateDevices = false;
DeviceAllow = [ "/dev/zfs rw" ];
ProtectProc = "default";
ProtectSystem = false;
PrivateMounts = false;
PrivateUsers = false;
ProtectHome = false;
Restart = lib.mkForce "always";
};
users.users.gitea-runner = {
isNormalUser = true;
description = "Gitea Actions Runner";
home = "/home/gitea-runner";
createHome = true;
extraGroups = [ "docker" ];
packages = with pkgs; [
kubernetes-helm
];
shell = pkgs.bash;
};
networking.firewall.enable = false; networking.firewall.enable = false;
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default

View File

@@ -0,0 +1,103 @@
{ pkgs, lib, ... }:
{
services.gitea-actions-runner = {
instances.infrastructure = {
enable = true;
name = "infrastructure-runner";
url = "https://git.alexmickelson.guru";
tokenFile = "/data/runner/gitea-infrastructure-token.txt";
labels = [
"home-server"
"native:host"
];
hostPackages = with pkgs; [
bashNonInteractive
bash
coreutils
docker
git
git-secret
zfs
sanoid
mbuffer
lzop
kubectl
kubernetes-helm
];
settings = {
container = { enabled = false; };
};
};
};
environment.pathsToLink = [
"/bin"
];
users.users.gitea-runner = {
isNormalUser = true;
description = "Gitea Actions Runner";
home = "/home/gitea-runner";
createHome = true;
group = "gitea-runner";
extraGroups = [ "docker" ];
packages = with pkgs; [
kubernetes-helm
];
shell = pkgs.bash;
};
users.groups.gitea-runner = { };
systemd.tmpfiles.rules = [
"d /data/runner 0755 gitea-runner gitea-runner -"
"f /data/runner/gitea-infrastructure-token.txt 0600 gitea-runner gitea-runner -"
];
systemd.services.gitea-runner-infrastructure.serviceConfig = {
# Use the actual location where the module creates the .runner file
WorkingDirectory = lib.mkForce "/var/lib/gitea-runner/infrastructure";
ReadWritePaths = lib.mkForce [
"/var/lib/gitea-runner"
"/data/cloudflare/"
"/data/runner/infrastructure"
"/data/runner"
"/home/github/infrastructure"
];
BindReadOnlyPaths = [
"/nix/store"
];
# Disable all sandboxing features
DynamicUser = lib.mkForce false;
PrivateDevices = lib.mkForce false;
PrivateMounts = lib.mkForce false;
PrivateTmp = lib.mkForce false;
PrivateUsers = lib.mkForce false;
ProtectClock = lib.mkForce false;
ProtectControlGroups = lib.mkForce false;
ProtectHome = lib.mkForce false;
ProtectHostname = lib.mkForce false;
ProtectKernelLogs = lib.mkForce false;
ProtectKernelModules = lib.mkForce false;
ProtectKernelTunables = lib.mkForce false;
ProtectProc = lib.mkForce "default";
ProtectSystem = lib.mkForce false;
NoNewPrivileges = lib.mkForce false;
RestrictNamespaces = lib.mkForce false;
RestrictRealtime = lib.mkForce false;
RestrictSUIDSGID = lib.mkForce false;
RemoveIPC = lib.mkForce false;
LockPersonality = lib.mkForce false;
SystemCallFilter = lib.mkForce [ ];
RestrictAddressFamilies = lib.mkForce [ ];
User = lib.mkForce "gitea-runner";
Group = lib.mkForce "gitea-runner";
DeviceAllow = lib.mkForce [ "/dev/zfs rw" ];
DevicePolicy = lib.mkForce "auto";
Restart = lib.mkForce "always";
};
}