Compare commits
2 Commits
7e30a419db
...
cbd2f12189
| Author | SHA1 | Date | |
|---|---|---|---|
| cbd2f12189 | |||
| ac3c221711 |
@@ -1,36 +1,11 @@
|
||||
name: Apply Kuberentes Configs
|
||||
on: [push, workflow_dispatch]
|
||||
jobs:
|
||||
test-environment:
|
||||
runs-on: home-server
|
||||
steps:
|
||||
- name: test basic commands
|
||||
run: |
|
||||
echo "=== Environment Info ==="
|
||||
whoami
|
||||
pwd
|
||||
echo "=== Test bash ==="
|
||||
bash --version
|
||||
echo "=== Test git ==="
|
||||
git --version
|
||||
echo "=== Success ==="
|
||||
update-repo:
|
||||
runs-on: home-server
|
||||
steps:
|
||||
- name: checkout repo
|
||||
working-directory: /home/gitea-runner
|
||||
run: |
|
||||
if [ -d "infrastructure" ]; then
|
||||
cd infrastructure
|
||||
echo "Infrastructure folder exists. Resetting to the most recent commit."
|
||||
git reset --hard HEAD
|
||||
git pull https://x-access-token:${{ secrets.GITEA_TOKEN }}@git.alexmickelson.guru/${{ gitea.repository }} $(git rev-parse --abbrev-ref HEAD)
|
||||
else
|
||||
git clone https://x-access-token:${{ secrets.GITEA_TOKEN }}@git.alexmickelson.guru/${{ gitea.repository }}.git
|
||||
fi
|
||||
uses: ./.gitea/workflows/update-repo.yml
|
||||
update-infrastructure:
|
||||
runs-on: home-server
|
||||
needs: update-repo
|
||||
needs: update-repo-folder
|
||||
steps:
|
||||
- name: update home server containers
|
||||
env:
|
||||
|
||||
19
.gitea/workflows/update-repo.yml
Normal file
19
.gitea/workflows/update-repo.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
name: Update Repository
|
||||
on:
|
||||
workflow_call:
|
||||
|
||||
jobs:
|
||||
update-repo-folder:
|
||||
runs-on: home-server
|
||||
steps:
|
||||
- name: checkout repo
|
||||
working-directory: /home/gitea-runner
|
||||
run: |
|
||||
if [ -d "infrastructure" ]; then
|
||||
cd infrastructure
|
||||
echo "Infrastructure folder exists. Resetting to the most recent commit."
|
||||
git reset --hard HEAD
|
||||
git pull https://x-access-token:${{ secrets.GITEA_TOKEN }}@git.alexmickelson.guru/${{ gitea.repository }} $(git rev-parse --abbrev-ref HEAD)
|
||||
else
|
||||
git clone https://x-access-token:${{ secrets.GITEA_TOKEN }}@git.alexmickelson.guru/${{ gitea.repository }}.git
|
||||
fi
|
||||
@@ -1,102 +1,86 @@
|
||||
{ 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:host"
|
||||
"native:host"
|
||||
];
|
||||
hostPackages = with pkgs; [
|
||||
bashNonInteractive
|
||||
bash
|
||||
coreutils
|
||||
docker
|
||||
git
|
||||
git-secret
|
||||
zfs
|
||||
sanoid
|
||||
mbuffer
|
||||
lzop
|
||||
kubectl
|
||||
kubernetes-helm
|
||||
];
|
||||
settings = {
|
||||
container = {
|
||||
enabled = false;
|
||||
instances.infrastructure = {
|
||||
enable = true;
|
||||
name = "infrastructure-runner";
|
||||
url = "https://git.alexmickelson.guru";
|
||||
tokenFile = "/data/runner/gitea-infrastructure-token.txt";
|
||||
labels = [
|
||||
"home-server:host"
|
||||
"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.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 = { };
|
||||
|
||||
users.groups.gitea-runner = { };
|
||||
systemd.services.gitea-runner-infrastructure.serviceConfig = {
|
||||
WorkingDirectory = lib.mkForce "/var/lib/gitea-runner/infrastructure";
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /data/runner 0755 gitea-runner gitea-runner -"
|
||||
"f /data/runner/gitea-infrastructure-token.txt 0600 gitea-runner gitea-runner -"
|
||||
"d /var/lib/gitea-runner 0755 gitea-runner gitea-runner -"
|
||||
"d /var/lib/gitea-runner/infrastructure 0755 gitea-runner gitea-runner -"
|
||||
];
|
||||
User = lib.mkForce "gitea-runner";
|
||||
Group = lib.mkForce "gitea-runner";
|
||||
|
||||
# Override only the sandboxing settings, keep ExecStart from the module
|
||||
systemd.services.gitea-runner-infrastructure.serviceConfig = {
|
||||
# Keep the working directory
|
||||
WorkingDirectory = lib.mkForce "/var/lib/gitea-runner/infrastructure";
|
||||
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 [ ];
|
||||
ReadWritePaths = lib.mkForce [ ];
|
||||
BindReadOnlyPaths = lib.mkForce [ ];
|
||||
|
||||
# Override user/group
|
||||
User = lib.mkForce "gitea-runner";
|
||||
Group = lib.mkForce "gitea-runner";
|
||||
DeviceAllow = lib.mkForce [ "/dev/zfs rw" ];
|
||||
DevicePolicy = lib.mkForce "auto";
|
||||
|
||||
# Remove ALL sandboxing - run as a normal user process
|
||||
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 [ ];
|
||||
ReadWritePaths = lib.mkForce [ ];
|
||||
BindReadOnlyPaths = lib.mkForce [ ];
|
||||
|
||||
# Allow access to devices
|
||||
DeviceAllow = lib.mkForce [ "/dev/zfs rw" ];
|
||||
DevicePolicy = lib.mkForce "auto";
|
||||
|
||||
Restart = lib.mkForce "always";
|
||||
};
|
||||
Restart = lib.mkForce "always";
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user