Browse Source

ecs-agent NixOS module: init

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
Dan Peebles 6 years ago
parent
commit
a0ebb1497f
  1. 1
      nixos/modules/module-list.nix
  2. 42
      nixos/modules/virtualisation/ecs-agent.nix

1
nixos/modules/module-list.nix

@ -645,6 +645,7 @@
./virtualisation/container-config.nix
./virtualisation/containers.nix
./virtualisation/docker.nix
./virtualisation/ecs-agent.nix
./virtualisation/libvirtd.nix
./virtualisation/lxc.nix
./virtualisation/lxcfs.nix

42
nixos/modules/virtualisation/ecs-agent.nix

@ -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…
Cancel
Save