forked from mirrors/nixpkgs
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.
This commit is contained in:
parent
03cab2d923
commit
a0ebb1497f
|
@ -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
Normal file
42
nixos/modules/virtualisation/ecs-agent.nix
Normal file
|
@ -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 a new issue