IMAGE_NAME="ecs-agent-gpu" IMAGE_DESCRIPTION="Ubuntu ECS GPU container-instance — containerd + runc + ecs-agent + NVIDIA server driver + nvidia-container-toolkit" DISTRO="ubuntu" UBUNTU_VERSION="26.04" UBUNTU_CODENAME="resolute" # 16G — same headroom rationale as eks-node-gpu: kernel headers, NVIDIA # driver + DKMS build artefacts, nvidia-container-toolkit. IMAGE_SIZE="16G" # Ubuntu's containerd apt package ships its own systemd unit (unlike Alpine's # containerd-openrc, which needed one written) — nothing to author for it # here, just `systemctl enable containerd` below. nvidia-container-toolkit # lives in its own NVIDIA-hosted apt repo, not enabled on the base cloud # image, so it is added+installed in setup.sh rather than here (see # scripts/images/ubuntu-gpu-nvidia-setup.sh). APT_PACKAGES="containerd runc containernetworking-plugins ca-certificates curl iproute2 initramfs-tools" # ecs-agent is the only built binary (static, FIPS boot like the host build) — # BUILD_COMMANDS/INSTALL_BINARIES copied verbatim from scripts/images/ecs-agent/. BUILD_COMMANDS="CGO_ENABLED=0 GOFIPS140=v1.0.0 go build -ldflags \"-s -w\" -o bin/ecs-agent ./cmd/ecs-agent" INSTALL_BINARIES="bin/ecs-agent:/usr/local/bin/ecs-agent" INSTALL_FILES="\ scripts/images/ecs-agent/10-bridge.conflist:/etc/cni/net.d/10-bridge.conflist \ scripts/images/ecs-agent-gpu/ecs-agent.service:/etc/systemd/system/ecs-agent.service \ scripts/images/ecs-agent-gpu/ecs-ca-install.service:/etc/systemd/system/ecs-ca-install.service \ scripts/images/ecs-agent-gpu/mulga-cdi-generate.service:/etc/systemd/system/mulga-cdi-generate.service" ENABLE_SERVICES="containerd ecs-ca-install ecs-agent mulga-cdi-generate" SETUP_SCRIPT="scripts/images/ecs-agent-gpu/setup.sh" AMI_NAME="spinifex-ecs-node-gpu" SYSTEM_TAG="spinifex:managed-by=ecs gpu-vendor=nvidia"