Browse Source
A very simple skeleton for now that doesn't attempt to model any of the agent configuration, but we can grow it later. Tested and works on an EC2 instance with ECS.nixos-19.03
2 changed files with 43 additions and 0 deletions
@ -0,0 +1,42 @@
|
||||
{ config, pkgs, lib, ... }: |
||||
|
||||
with lib; |
||||
|
||||
let |
||||
cfg = config.services.ecs-agent; |
||||
in { |
||||
options.services.ecs-agent = { |
||||
enable = mkEnableOption "Amazon ECS agent"; |
||||
|
||||
package = mkOption { |
||||
type = types.path; |
||||
description = "The ECS agent package to use"; |
||||
default = pkgs.ecs-agent; |
||||
}; |
||||
|
||||
extra-environment = mkOption { |
||||
type = types.attrsOf types.str; |
||||
description = "The environment the ECS agent should run with. See the ECS agent documentation for keys that work here."; |
||||
default = {}; |
||||
}; |
||||
}; |
||||
|
||||
config = lib.mkIf cfg.enable { |
||||
systemd.services.ecs-agent = { |
||||
inherit (cfg.package.meta) description; |
||||
after = [ "network.target" ]; |
||||
wantedBy = [ "multi-user.target" ]; |
||||
|
||||
environment = cfg.extra-environment; |
||||
|
||||
script = '' |
||||
if [ ! -z "$ECS_DATADIR" ]; then |
||||
echo "FOOOO" |
||||
mkdir -p "$ECS_DATADIR" |
||||
fi |
||||
${cfg.package.bin}/bin/agent |
||||
''; |
||||
}; |
||||
}; |
||||
} |
||||
|
Loading…
Reference in new issue