From 752d6a3a6083d1c88209176268f32614a6e540db Mon Sep 17 00:00:00 2001 From: Dmitriy Pleshevskiy Date: Wed, 7 Aug 2024 15:11:28 +0300 Subject: [PATCH] host/istal: add forgejo runner --- .agenix_config.nix | Bin 5264 -> 5391 bytes hosts/istal/services/default.nix | 1 + .../services/forgejo-runners/default.nix | 21 ++++++++++++++++++ .../forgejo-runner-docker-token.age | Bin 0 -> 1296 bytes 4 files changed, 22 insertions(+) create mode 100644 hosts/istal/services/forgejo-runners/default.nix create mode 100644 hosts/istal/services/forgejo-runners/forgejo-runner-docker-token.age diff --git a/.agenix_config.nix b/.agenix_config.nix index 03406f0e154edb204c4eebf09fe51fd4abfc11de..df86029b2411212cc64a9267ca60b8f26e23a542 100644 GIT binary patch literal 5391 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 literal 5264 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 W4Z+~3jCwH1_DVRYQ(ZfT#WmO@J7$~! diff --git a/hosts/istal/services/default.nix b/hosts/istal/services/default.nix index 4bcfcce..06f5abe 100644 --- a/hosts/istal/services/default.nix +++ b/hosts/istal/services/default.nix @@ -1,5 +1,6 @@ { imports = [ + ./forgejo-runners ./wireguard ./docker-registry-proxy.nix ./nginx.nix diff --git a/hosts/istal/services/forgejo-runners/default.nix b/hosts/istal/services/forgejo-runners/default.nix new file mode 100644 index 0000000..f5e1d0f --- /dev/null +++ b/hosts/istal/services/forgejo-runners/default.nix @@ -0,0 +1,21 @@ +{ config, pkgs, ... }: + +{ + age.secrets.forgejo-runner-docker-token.file = ./forgejo-runner-docker-token.age; + + local.system.kernel = "stable"; + virtualisation.docker.enable = true; + + services.gitea-actions-runner = { + package = pkgs.unstable.forgejo-runner; + instances = { + istal-docker = { + enable = true; + name = "istal-docker"; + url = "https://git.pleshevski.ru"; + labels = [ "ubuntu-22.04:docker://node:22-bullseye" ]; + tokenFile = config.age.secrets.forgejo-runner-docker-token.path; + }; + }; + }; +} diff --git a/hosts/istal/services/forgejo-runners/forgejo-runner-docker-token.age b/hosts/istal/services/forgejo-runners/forgejo-runner-docker-token.age new file mode 100644 index 0000000000000000000000000000000000000000..7ac1fcd80a835bdc4115772ca3c7004ea674b47a GIT binary patch literal 1296 zcmV+r1@HO*M@dveQdv+`0B98E;B!inae3eMmp75d1z~x`W1i4`raHGr7*wamblXl5 zV>nde1FCt)U7n5a8!8WHKu#Iq6mi3&$4Hi# zoi2qifG2l4UZ)Fme+=ss*pUmb#etum@+#=$d#_Ra?atCHANePgFhJmOR1=%kshbx{ zq>J5Jkc;CcN!J`Hn#|lmWI(a)3;9)FpkGaC32~MT+38;l!c`7A9O#1;K6gcm4IJ(K=>v~I^i1W?AofyAO5Y6$Kih#pVr%7z`(>#+1(MFO z`tIExT5TnFhHr(QnuN=5uO_$?pR4VogDc=c#!YtqR(>=Vd!~r;V~4eh@TeMTBaD(| z@-y{~gpV0QdZTAnYa|>PQ0i1xbiwoM6(?U$F(s#vziKjp0w;V)7}XAc=QUvkwLl z{Ei+zu9aJ@Sv3p}i~pW1V z-m*@7L_XN$-Sw3<3DT(H6_jbTRCqiDJUN>H;s&-@6cv78)hxolPcNsu$)U<&qv6q( z%d)-L)7ah0P64wJ9Yev7-PY{I<5Xc0MJI4u7WwxC@?4+Tj;E>wb9E5elBKF3lUF!K zSgC}eWNa@>mF22#JSxHG8WxYUu{n*4TNU~AGG7|xWidQf>6J9o#Wq(vG%*PH35!m> z2;{#;f$h7-0NSDFAqyClsI2Rsed5iYm9*lLjSOG1oYLm7Hap{L9h3!qp`IE_&?D_>`&sn`=0 zBvlZPm7MdT%QKh|63QGX9U;Y{n$5)YwSmmHvwwpBy)6b;}nY>bP>vp;GlJmwhd#!kiWrICbv-P8GW;Y|w1b^CwIS{bo9krYMP5S~ zLKY_>BA5+V@M=;J-kq0jqcu?YEn;RIMIUEZ`