Legend
EcsModuleDeployment
AWS ECS deployment configurationenum
required
Deployment type discriminatorAllowed values:
aws:ecsEcsDeploymentInfrastructure
required
Infrastructure resources required by the deploymentSee: EcsDeploymentInfrastructure
EcsDeploymentStrategyConfig
Deployment strategy — rolling (default), blue_green, linear, or canary.
Executed natively by the ECS deployment controller; the deploy manager
passes it as
deploymentConfiguration on every service update.
Omit for a plain rolling deploy.See: EcsDeploymentStrategyConfig(templateable)EcsDeployConcurrency
Concurrency policy — controls how simultaneous deploy requests are handled.
Omit to use defaults: max_concurrent=1, queue_size=1, queue_overflow=oldest.See: EcsDeployConcurrency
integer
Maximum total wall-clock budget (in seconds) for a single deploy, measured
from the moment the workflow starts (including time spent waiting for the
deployment-manager lock). Matches the semantics of pipeline step
timeout.
When omitted the deploy has no explicit wall-clock limit beyond the
workflow-level activity timeouts on each phase.
Default: unset (no wall-clock cap).(format:int32,min:60)InputProperty[]
required
Deployment-specific inputs shown in the deploy modal
Same types as module inputs — reuses the InputProperty unionSee: InputProperty
EcsTaskDefinition
required
AWS ECS task definition — fully typed per the RegisterTaskDefinition API
Templateable — supports both module.input and deploy.input referencesSee: EcsTaskDefinition(templateable)
EcsRunTaskOverrides
See: EcsRunTaskOverrides(templateable)
EcsRunTaskOverrides
See: EcsRunTaskOverrides(templateable)
EcsDeployConcurrency
Concurrency policy for ECS deployments targeting this module instance. Same shape as pipeline concurrency config withkey and value omitted —
the deploy manager always scopes concurrency to the module instance.integer
Number of pending deploy requests that can wait in the queue.
Default: 1 — at most one waiter behind the active deploy.
A value of 0 means no queuing — excess requests are rejected immediately.(format:int32,min:0)
enum
What to do when the queue is full and a new deploy request arrives.
“oldest” — evict the oldest queued request (default)
“newest” — reject the incoming request
“reject” — reject the incoming request with an error (alias for “newest”)Allowed values:
oldest | newest | rejectEcsDeploymentInfrastructure
Infrastructure resources required for ECS deployment. Not provisioned by the deploy manager — must already exist. Target groups and listeners are auto-looked-up from the cluster and services at deploy time.string
required
ECS cluster ARN where the service runs(minLen:1; templateable)
string
required
ECS service ARN of the service the deploy manager updates. The deploy
strategy (rolling, blue/green, linear, canary) is executed natively by
the ECS deployment controller on this single service — see the
strategy block on the deployment config.(minLen:1; templateable)string | null
ARN of the main (blue / production) target group attached to the ECS
service. Forwarded as the UpdateService
loadBalancers[].targetGroupArn
when Ravion synthesizes the load-balancer advancedConfiguration required
by native traffic-shift deployments. Optional — omit for non-load-balanced
services or rolling-only deployments.(templateable)string | null
ARN of the alternate (green) target group ECS shifts traffic to during
native traffic-shift deployments (blue_green / linear / canary). Forwarded
into the UpdateService
loadBalancers[].advancedConfiguration so ECS can
register the new revision in the alternate target group. Optional — omit
for non-load-balanced services or rolling-only deployments.(templateable)string | null
ARN of the production listener rule (ALB) or listener (NLB) ECS rewrites
to shift production traffic during native traffic-shift deployments.
Forwarded into
advancedConfiguration.productionListenerRule. Optional —
omit for non-load-balanced services or rolling-only deployments.(templateable)string | null
ARN of the IAM infrastructure role ECS assumes to manage the load-balancer
wiring (register/deregister targets, rewrite listener rules) during native
traffic-shift deployments. Forwarded into
advancedConfiguration.roleArn.(templateable)string | null
ARN of the optional test listener rule (ALB) or listener (NLB) ECS
rewrites during the TEST_TRAFFIC_SHIFT lifecycle stages to route test
traffic to the green revision before the production cutover. Forwarded
into
advancedConfiguration.testListenerRule. Optional — omit for
services without a pre-cutover test phase (the common case).(templateable)EcsDeploymentStrategyConfig
Deployment strategy executed natively by the ECS deployment controller. Omit the block entirely for a plain rolling deploy.Non-rolling strategies require the ECS service to be provisioned with blue/green load-balancer wiring (two target groups, production listener rule, optional test listener rule, and the ECS infrastructure IAM role) — see thecompute/ecs_service Terraform module’s
load_balancers[].advanced_configuration.enum
required
Deployment strategy:
- rolling — in-place rolling update (default)
- blue_green — full green revision, all-at-once traffic shift + bake
- linear — traffic shifts in equal
linear.step_percentagesteps - canary —
canary.canary_percentfirst, bake, then the rest
rolling | blue_green | linear | canary(templateable)integer | null
Minutes both revisions keep running after production traffic has fully
shifted, before the old revision is terminated. Rollback during the
bake window is instant. Applies to blue_green, linear, and canary.(format:int32,min:0,max:1440; templateable)
EcsCanaryConfig
EcsLinearConfig
EcsPauseStage[] | null
Native PAUSE lifecycle hooks. Each entry pauses the deployment at the
given stage until continued via the dashboard or API. Max 10.See: EcsPauseStage(templateable)
EcsRunTaskOverrides
Full AWS ECS RunTask request payload — both theTaskOverride
fields and the top-level RunTask parameters that aren’t part of
TaskOverride (launchType, networkConfiguration, …). Flattened
into one model so users can express any RunTask shape in one
YAML block.Used as:• the user-authored hook config in the module YAML (under
pre_deploy: / post_deploy:),
• the runtime snapshot persisted onto
DeploymentResource.data.runTaskOverrides so the task drawer
can show operators exactly what was sent to AWS.Deploy-managed RunTask fields (cluster, taskDefinition,
count, clientToken) are intentionally not exposed — the
deploy step controls them.https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html
https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskOverride.htmlEcsContainerOverride[] | null
Per-container overrides. Each entry’s
name matches a container
in the task definition. AWS RunTask supports overriding any
subset of containers; the array can be empty when only
task-level overrides are needed.See: EcsContainerOverride(templateable)string | null
Task-level CPU override (string for AWS compatibility — same
format as task-definition
cpu, e.g. "256", "1024").(templateable)string | null
Task-level memory override (MiB, string format).(templateable)
string | null
IAM task role ARN override — what the container assumes when
calling AWS APIs from inside the task.(templateable)
string | null
IAM execution role ARN override — what ECS uses to pull the
image, push logs, and read secrets at task launch.(templateable)
EcsEphemeralStorage
enum | null
Launch type: FARGATE, EC2, or EXTERNAL. When omitted the hook
inherits the parent service’s launch type. Mutually exclusive
with
capacity_provider_strategy — set one or the other.Allowed values: FARGATE | EC2 | EXTERNAL(templateable)EcsCapacityProviderStrategyItem[] | null
Capacity-provider strategy — overrides
launch_type when set.
Inherits from the parent service when omitted.See: EcsCapacityProviderStrategyItem(templateable)string | null
Fargate platform version (e.g.
"1.4.0", "LATEST").
Inherits from the parent service when omitted.(templateable)EcsNetworkConfiguration
VPC / subnet / security-group config. Required for
awsvpc
network-mode task definitions; inherited from the parent
service when omitted.See: EcsNetworkConfiguration(templateable)EcsPlacementConstraint[] | null
Placement constraints — limits which container instances can
run the task. EC2/EXTERNAL launch types only.See: EcsPlacementConstraint(templateable)
EcsPlacementStrategy[] | null
Placement strategy — how tasks get distributed across instances.
EC2/EXTERNAL launch types only.See: EcsPlacementStrategy(templateable)
enum | null
How tags propagate from task definition / service onto the task.Allowed values:
TASK_DEFINITION | SERVICE | NONE(templateable)boolean | null
Whether to enable AWS-managed
aws:ecs: tags on the task.(templateable)boolean | null
Whether to enable ECS Exec on the task (for
aws ecs execute-command).(templateable)string | null
Logical group name — used for placement constraints
(
memberOf(group:<group>)). Defaults to family:<task-def-family>
when AWS picks.(templateable)string | null
Caller-supplied reference id (UUID-shaped). Echoed back on the
resulting Task and useful for client-side correlation.(templateable)
EcsTaskVolumeConfiguration[] | null
Per-task volume bindings — name must match a volume in the task
definition. Used for Fargate-managed ephemeral EBS volumes.See: EcsTaskVolumeConfiguration(templateable)
integer | null
Wall-clock timeout in seconds before the task is stopped and
the deployment fails. Only meaningful when used as a pre/post
deploy hook config — ignored on the runtime snapshot.Default: 1800 (30 minutes).(format:int32,min:1; templateable)
EcsCanaryConfig
Canary traffic-shift tuning. Only valid whenstrategy.type is canary.
Maps to the ECS deploymentConfiguration.canaryConfiguration field.number | null
Percentage of production traffic to shift to the new service revision
during the canary phase. Multiples of 0.1 from 0.1 to 100.0.
Default: 5.0 (AWS default).(format:double,min:0.1,max:100; templateable)
integer | null
Minutes to wait during the canary phase before shifting the remaining
production traffic to the new service revision.
Default: 10 (AWS default).(format:int32,min:0,max:1440; templateable)
EcsLinearConfig
Linear traffic-shift tuning. Required whenstrategy.type is linear.
Maps to the ECS deploymentConfiguration.linearConfiguration field.integer
required
Percentage of production traffic shifted per step.(format:int32,min:1,max:100; templateable)
integer
required
Minutes to bake between each traffic-shift step.(format:int32,min:0,max:1440; templateable)
EcsPauseStage
A native ECS PAUSE lifecycle hook. The deployment pauses at the given stage until a continue/rollback control is sent (dashboard orPOST /deployments/{id}/continue), or until the timeout fires.AWS does not allow pause hooks at TEST_TRAFFIC_SHIFT or
PRODUCTION_TRAFFIC_SHIFT (those stages also run during rollback).
For linear/canary strategies a PRE_PRODUCTION_TRAFFIC_SHIFT pause
fires before EACH traffic-shift step.enum
required
Lifecycle stage at which the deployment pauses.Allowed values:
RECONCILE_SERVICE | PRE_SCALE_UP | POST_SCALE_UP | POST_TEST_TRAFFIC_SHIFT | PRE_PRODUCTION_TRAFFIC_SHIFT | POST_PRODUCTION_TRAFFIC_SHIFT(templateable)integer | null
Minutes to wait for a continue before AWS applies
timeout_action.
Default: 1440 (24 hours, AWS default). Max: 20160 (14 days).(format:int32,min:1,max:20160; templateable)enum | null
What AWS does when the pause times out. Default: ROLLBACK.Allowed values:
ROLLBACK | CONTINUE(templateable)EcsCapacityProviderStrategyItem
Capacity-provider strategy entry. Mirrors AWS exactly.https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CapacityProviderStrategyItem.htmlstring
required
Capacity provider name (e.g.
FARGATE, FARGATE_SPOT, or
a custom EC2 capacity provider).(templateable)integer | null
Relative share of tasks placed onto this provider when the
strategy has multiple entries.(format:int32,min:0,max:1000; templateable)
integer | null
Minimum number of tasks placed onto this provider before
weighting kicks in. At most one entry in the strategy may
set
base.(format:int32,min:0,max:100000; templateable)EcsContainerOverride
Per-container portion ofEcsRunTaskOverrides. Mirrors the AWS ECS
RunTask ContainerOverride struct field-for-field — every override
AWS supports for a container is expressible here. The name ties
the override to a container in the task definition.https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerOverride.htmlstring
required
Container name from the task definition. Required.(minLen:1; templateable)
string[] | null
Replacement command — replaces the container’s CMD array.(templateable)
EcsEnvironmentVariable[] | null
Environment variables merged on top of the task definition’s.See: EcsEnvironmentVariable(templateable)
EcsEnvironmentFile[] | null
Environment files (S3 references) layered on top of
environment.See: EcsEnvironmentFile(templateable)integer | null
CPU units override for this container.(format:int32; templateable)
integer | null
Hard memory limit (MiB) override for this container.(format:int32; templateable)
integer | null
Soft memory reservation (MiB) override for this container.(format:int32; templateable)
EcsResourceRequirement[] | null
EcsEphemeralStorage
ECS ephemeral storage configurationinteger
required
Storage size in GiB (21–200 for Fargate, minimum 20)(format:int32,min:20,max:200; templateable)
EcsNetworkConfiguration
AWS ECS network configuration. Only theawsvpc shape exists on
RunTask (host / bridge networking is task-definition-driven).https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.htmlEcsAwsVpcConfiguration
required
EcsPlacementConstraint
AWS ECS placement constraint. EC2/EXTERNAL launch types only — Fargate ignores these.https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementConstraint.htmlenum
required
Constraint type.
distinctInstance spreads tasks one-per-host;
memberOf filters by a cluster query expression.Allowed values: distinctInstance | memberOf(templateable)string | null
Cluster query expression — required when
type is memberOf.(templateable)EcsPlacementStrategy
AWS ECS placement strategy. EC2/EXTERNAL launch types only — Fargate ignores these.https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementStrategy.htmlenum
required
Strategy type.
random ignores field; spread and binpack
require field.Allowed values: random | spread | binpack(templateable)string | null
Attribute the strategy operates on (e.g.
instanceId,
attribute:ecs.availability-zone, cpu, memory).(templateable)EcsTag
AWS resource tagstring
required
Tag key(templateable)
string
required
Tag value(templateable)
EcsTaskVolumeConfiguration
Per-task volume binding for ECS-managed volumes (today: ephemeral EBS for Fargate). Thename must match a volume entry in the
task definition’s volumes list.https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskVolumeConfiguration.htmlstring
required
Volume name — must match a
name in the task definition.(templateable)EcsTaskManagedEBSVolumeConfiguration
EcsAwsVpcConfiguration
AWS VPC configuration forawsvpc-mode tasks.https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_AwsVpcConfiguration.htmlstring[]
required
Subnet IDs the task ENI is placed into.(minItems:1; templateable)
string[] | null
Security groups attached to the task ENI.(templateable)
enum | null
Whether the task ENI gets a public IP. Required for Fargate
tasks pulling images from non-VPC-routable registries (e.g.
public ECR) when there’s no NAT.Allowed values:
ENABLED | DISABLED(templateable)