teepot/packages/tdx_google/container.nix
Harald Hoyer 760ff7eff1
refactor(tdx_google): simplify service configurations
- Replaced hardcoded metadata-fetching logic with shared metadata service.
- Removed custom pre-start scripts and refactored environment handling.
- Updated Vector configuration to include custom field transformations.
- Streamlined container startup process and ensured proper cleanup.

Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
2025-02-19 15:00:43 +01:00

40 lines
1.1 KiB
Nix

{ lib
, modulesPath
, pkgs
, ...
}: {
virtualisation.docker.enable = true;
systemd.services.docker_start_container = {
description = "The main application container";
wantedBy = [ "multi-user.target" ];
after = [ "network-online.target" "docker.service" "vector.service" "chronyd.service" "metadata.service" ];
requires = [ "network-online.target" "docker.service" "vector.service" "metadata.service" ];
serviceConfig = {
Type = "exec";
User = "root";
EnvironmentFile = "-/run/env/env";
};
path = [ pkgs.docker pkgs.teepot.teepot.tdx_extend ];
script = ''
set -eu -o pipefail
DIGEST=''${CONTAINER_DIGEST#sha256:}
echo "Measuring $DIGEST" >&2
test -c /dev/tdx_guest && tdx-extend --digest "$DIGEST" --rtmr 3
docker run -d --rm \
--name tdx_container \
--env "GOOGLE_METADATA=1" \
--network=host \
--init \
--privileged \
"sha256:$DIGEST"
exec docker wait tdx_container
'';
postStop = lib.mkDefault ''
shutdown --reboot +5
'';
};
}