Skip to main content

duckstring duck

Commands for where each Pond runs and what compute it gets. See Cloud Compute for the concepts.

A Pond's effective settings are, for each setting, the operator override set with duck set if there is one, otherwise the value declared in pond.toml, otherwise the Catchment's default. Remote compute only takes effect when cloud compute is enabled on the Catchment (see catchment settings); otherwise every Pond runs on the Catchment's machine.

show​

duckstring duck show [POND] [-m N]

Shows a Pond's effective compute settings and where each comes from. Without POND, shows every Pond and the Catchment defaults.

set​

duckstring duck set POND [-m N] [options] [--clear]

Sets an override for a Pond. Only the options given change. Overrides persist across redeploys.

OptionDescription
--duckWhere the Pond runs: catchment (the Catchment's own machine), a pool name, or dedicated (its own machine). A pool that doesn't exist falls back to catchment.
--instance-typeThe EC2 instance type for a dedicated Duck running on EC2.
--auto-stop / --no-auto-stopWhether a dedicated machine stops after each run.
--flockoff, upgrade or always. See [flock].
--engineThe Flock engine, such as athena.
--oomfail_up or fail.
--clearRemove the Pond's override, reverting to pond.toml and the Catchment defaults.

pool​

Pools are named sizes of remote compute, referred to by duck = "name" in pond.toml or duck set --duck name. Four built-in Fargate pools are always available without defining them. Each Pond using a built-in pool gets its own Fargate task of that size:

PoolvCPUMemory
S0.52 GiB
M14 GiB
L28 GiB
XL416 GiB

pool ls​

duckstring duck pool ls

Lists the built-in and defined pools.

pool add​

duckstring duck pool add NAME [--provider fargate|ec2] [options]

Creates or updates a pool. The Ponds assigned to a defined pool share one machine of its size, so they can read each other's output locally. A Pond that needs its own machine can use a built-in pool or --duck dedicated.

OptionDescription
--providerfargate (default) or ec2. EC2 suits needs beyond Fargate's limits, such as more than 16 vCPU or 120 GiB, or GPUs.
--cpuFargate task CPU units; 1024 is one vCPU.
--memoryFargate task memory, in MiB.
--instance-type, -tEC2 instance type.
--regionAWS region. Defaults to the Catchment's.
--min, --max, --keep-warm, --idle-timeoutScaling settings. They're stored with the pool, but automatic scaling isn't implemented yet.

pool rm​

duckstring duck pool rm NAME

Removes a pool. Ponds that referred to it run on the Catchment's machine instead.