mirror of
https://github.com/mulgadc/spinifex.git
synced 2026-10-20 03:11:46 +00:00
6879a3425a
* feat(gpu): Ubuntu NVIDIA GPU node image + GPU AMI selection Epic A of GPU passthrough to EKS pods / ECS task containers. - Add gpu-vendor AMI tag constants + GPUVendorForType/IsGPUTypeName helpers (instance-family prefix -> vendor from knownGPUModels). - EKS + ECS worker AMI resolution branches to a GPU-tagged node image for GPU instance types; no fallback to the driverless image (hard error instead). - Exclude gpu-vendor-tagged AMIs from the plain (non-GPU) lookup so a newer GPU AMI cannot hijack ordinary nodes (managed-by tag is shared; filters have no negation, so exclude client-side). - NodegroupRecord caches GPUEnabled/GPUVendor from InstanceTypes. - Catalog entries spinifex-eks-node-gpu / spinifex-ecs-node-gpu (dual-tagged). - New Ubuntu 26.04 GPU node images (eks-node-gpu, ecs-agent-gpu): reuse the proven DKMS -server driver recipe (drop Docker CE + dev payload), add nvidia-container-toolkit, OpenRC->systemd port of the worker/agent service subset, udev EBS by-id bridge, nvidia modules-load, first-boot CDI generation. - build-system-image.sh: SYSTEM_TAG supports multiple space-separated tags. * build: allow SYSTEM_IMAGE_BUILD_DIR override for image build dir Ubuntu GPU images are 16G; a RAM-backed /tmp tmpfs is too small to hold the qcow2 + expanded raw. Default stays /tmp; SYSTEM_IMAGE_BUILD_DIR redirects the build onto a real disk.
37 lines
1.8 KiB
Plaintext
37 lines
1.8 KiB
Plaintext
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"
|