From 884ede0aede2d825e67429d748de5ac7223af893 Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Wed, 14 Aug 2024 15:39:06 -0400 Subject: [PATCH] arcade cabinets: add offline services to systemd --- flake/colmena.nix | 40 +++++++++++++++++++++++++++++++++ perSystem/packages/wrappers.nix | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/flake/colmena.nix b/flake/colmena.nix index 51d4ad1..d9d2428 100644 --- a/flake/colmena.nix +++ b/flake/colmena.nix @@ -117,6 +117,46 @@ }; }; }; + systemd.services = { + hydra-offline = { + environment = { + LOCAL_HYDRA = "1"; + }; + wantedBy = ["multi-user.target" "hydra-control-plane.service"]; + startLimitIntervalSec = 0; + serviceConfig = { + ExecStart = "${self.packages.${system}.hydra-offline-wrapper}/bin/hydra-offline-wrapper"; + Restart = "always"; + RestartSec = "30s"; + WorkingDirectory = "/var/lib/hydra-offline"; + StateDirectory = "hydra-offline"; + User = "hydra-offline"; + Group = "hydra-offline"; + }; + }; + hydra-control-plane = { + environment = { + LOCAL_HYDRA = "1"; + }; + wantedBy = ["multi-user.target"]; + startLimitIntervalSec = 10; + serviceConfig = { + ExecStart = "${self.packages.${system}.hydra-control-plane-wrapper}/bin/hydra-control-plane-wrapper"; + Restart = "always"; + RestartSec = "30s"; + WorkingDirectory = "/var/lib/hydra-offline"; + User = "hydra-offline"; + Group = "hydra-offline"; + }; + }; + }; + users.groups.hydra-offline.gid = 10016; + users.users.hydra-offline = { + description = "hydra offline user"; + uid = 10016; + group = "hydra-offline"; + isSystemUser = true; + }; }; baseConfig = { pkgs, ...}: { boot = { diff --git a/perSystem/packages/wrappers.nix b/perSystem/packages/wrappers.nix index d8cf876..f925419 100644 --- a/perSystem/packages/wrappers.nix +++ b/perSystem/packages/wrappers.nix @@ -79,7 +79,7 @@ }; hydra-offline-wrapper = pkgs.writeShellApplication { name = "hydra-offline-wrapper"; - runtimeInputs = [ config.packages.cardano-node config.packages.cardano-cli pkgs.jq ]; + runtimeInputs = [ config.packages.cardano-node config.packages.cardano-cli pkgs.jq pkgs.curl ]; text = '' export LOCAL_HYDRA="''${LOCAL_HYDRA:-0}" if [ "''${LOCAL_HYDRA}" -eq 0 ]; then