Amazon EKS Machine Learning with Terraform and Kubeflow is a modular platform for running machine-learning operations on Amazon EKS, the managed Kubernetes service, including training pipelines and model-serving systems. It is intended for teams deploying distributed training and inference with tools such as Kubeflow, MLflow, Airflow, and KServe, using configurable AWS infrastructure. The catalogue entries provide commands, skills, hooks, and a plugin for working with this deployment setup.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/aws-samples/amazon-eks-machine-learning-with-terraform-and-kubeflowWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/aws-samples/amazon-eks-machine-learning-with-terraform-and-kubeflow/fleet-plan)<a href="https://agentmods.dev/commands/aws-samples/amazon-eks-machine-learning-with-terraform-and-kubeflow/fleet-plan"><img src="https://agentmods.dev/badge/commands/aws-samples/amazon-eks-machine-learning-with-terraform-and-kubeflow/fleet-plan/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/aws-samples/amazon-eks-machine-learning-with-terraform-and-kubeflow/fleet-plan"><img src="https://agentmods.dev/badge/commands/aws-samples/amazon-eks-machine-learning-with-terraform-and-kubeflow/fleet-plan.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00025 | $0.00929 |
| Opus 5.5 | $0.00010 | $0.00372 |
| Sonnet 5.5 | $0.00005 | $0.00186 |
| Haiku 4.5 | $0.00003 | $0.00093 |
Grade A, and why
fleet-plan scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
From the repository's tutorials/multi-model-gpu-sharing directory:
PYTHONPATH=src python3 -m colocation.agent plan --fleet $ARGUMENTS
Offline, no node captured. Run it every time anything changes — a fleet file, a profile round, a store — not once per fleet.
Read the output in this order and stop at the first thing that refuses:
| what you see | what it means | what to do |
|---|---|---|
the hardware store holds no shape for '<type>', or nobody has observed what a <type> presents |
nobody has leased this instance type, so the store has no address for its measurements | plan cannot fix this, not even with --gpu-count: only a node can be observed. /fleet-profile <fleet> --gpu-count N holds one node, files what it reports, measures nothing and exits 0; then run the same command again, and plan resolves offline from then on. Needed once per type. Do not edit the fleet file around it |
no environment has measured how much memory a <product> has |
the card's memory total has never been measured, and there is no default | on a type nobody has leased, the first profile or search files it off the node — say so and go on. On a type that has been run, the store or the --gpu-product is wrong: stop. Never supply the number yourself |
this fleet cannot be placed on this node (exit 1) |
a tenant's KV floor exceeds one GPU at every degree | stop. Name the tenant. The fleet file has to change — a lower rate, or one fewer tenant |
NO CO-RESIDENT PLACEMENT IS FEASIBLE |
no two tenants' minimum envelopes fit on one GPU | stop, unless the next line is BUT NOT ON THE WEIGHTS. Co-location has nothing to sell this fleet. Report the closest pair and by how much it is over |
BUT NOT ON THE WEIGHTS (after the line above) |
some pairs fit on weights alone; only the computed KV, activation and reserve terms rule them out | go on: search warns and runs anyway, because those terms have been measured wrong before. Profile the pair's tenants first |
THE BASELINE ABOVE IS AN UPPER BOUND |
a tenant met its target at the degree shown, but a narrower degree was never measured | note it: a later profile round can still shrink the baseline |
BASELINE NOT ESTABLISHED |
normal on a fresh fleet — every degree is a memory floor | go on to /fleet-sweep |
<-- FLOOR, not a measured minimum |
which tenants still need a solo round | this is the /fleet-profile list |
A fleet with hardware.max_nodes above 1 also prints --- splits over up to N nodes ---: each
tenant on one node, ranked by fewest nodes, then GPUs, then margin, with the first split placed node
by node. Disjoint over nodes ... more than the N this fleet allows gates nothing: the splits share
GPUs, so a fleet that needs more nodes disjoint is still searched. this fleet cannot be split over N node(s): the weights alone rule every split out (exit 1) is a stop. NO SPLIT OVER N NODE(S) IS PROVEN INFEASIBLE is not a proof: profile first. <tenant> fits no node even alone names the
tenant to change.
Never quote sum(floor) as the baseline, or compute a saving against it. It is printed as a
lower bound because a floor that fits may still miss its target, and then the tenant needs more
shards and the baseline goes up. A saving quoted against the floor sum is an overstatement, and
it is the single error the whole design exists to prevent.
The placements are on the shape of the instance type. They name GPU ordinals and look deployable. They are not.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 44 lines · 25 tokens per session scan A c21df064efe2
fleet-plan is a command published in the GitHub repository aws-samples/amazon-eks-machine-learning-with-terraform-and-kubeflow (132 stars, last pushed 4d ago), licensed Apache-2.0. It adds 25 tokens to every session and 929 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-11-09.
fleet-plan compared with commands from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| fleet-planaws-samples/amazon-eks-machine-learning-with-terraform-and-kubeflow | Command | 132 | 4d ago | Apache-2.0 | A | 25 | Claude Code |
| checklistgithub/spec-kit | Command | 150k | yesterday | MIT | A | 13 | Claude Code |
| clarifygithub/spec-kit | Command | 150k | yesterday | MIT | A | 27 | Claude Code |
| specifygithub/spec-kit | Command | 150k | yesterday | MIT | A | 13 | Claude Code |
| convergegithub/spec-kit | Command | 150k | yesterday | MIT | A | 35 | Claude Code |
| implementgithub/spec-kit | Command | 150k | yesterday | MIT | A | 14 | Claude Code |
| speckit.bug.fixgithub/spec-kit | Command | 150k | yesterday | MIT | A | 12 | Claude Code |