Skip to content

[BUG] CloudFormation drops ECS service registries, deployment settings, capacity provider strategy and container health check, user and runtime platform #7638

Open

Description

@mariotoffia

Service

CloudFormation (AWS::ECS::TaskDefinition, AWS::ECS::Service)

AWS API Action

CreateStack / UpdateStack, then DescribeTaskDefinition and DescribeServices

Expected behavior

Measured on AWS (eu-west-1): a stack whose task definition declares RuntimePlatform and a container User and HealthCheck, and whose service declares ServiceRegistries, DeploymentConfiguration (circuit breaker and alarms included) and CapacityProviderStrategy, returns each setting from DescribeTaskDefinition and DescribeServices. String template values come back typed (maximumPercent 150, enable true, weight 2), launchType is absent when a strategy is set, and the service's task is registered in Cloud Map. UpdateStack applies a changed setting to the same service.

Actual behavior

The task-definition provisioner forwards only the family, containers, NetworkMode, Cpu, Memory, the roles and RequiresCompatibilities. The service provisioner forwards only Cluster, TaskDefinition, DesiredCount, LaunchType, LoadBalancers and NetworkConfiguration. The stack reaches CREATE_COMPLETE, but DescribeTaskDefinition has no runtimePlatform, user or healthCheck, DescribeServices has no serviceRegistries or capacityProviderStrategy and the default deploymentConfiguration, and Cloud Map has no instance for the task. The EcsService API already accepts every one of these settings.

Reproduction

cat > stack.yaml <<'YAML'
Resources:
  Cluster:
    Type: AWS::ECS::Cluster
  TaskDef:
    Type: AWS::ECS::TaskDefinition
    Properties:
      Family: web
      NetworkMode: awsvpc
      RequiresCompatibilities: [FARGATE]
      Cpu: "256"
      Memory: "512"
      RuntimePlatform: {CpuArchitecture: X86_64, OperatingSystemFamily: LINUX}
      ContainerDefinitions:
        - Name: web
          Image: busybox:1.36
          User: "1000"
          HealthCheck: {Command: ["CMD-SHELL", "true"]}
  Service:
    Type: AWS::ECS::Service
    Properties:
      Cluster: !Ref Cluster
      TaskDefinition: !Ref TaskDef
      DesiredCount: 1
      CapacityProviderStrategy: [{CapacityProvider: FARGATE, Weight: 2}]
      DeploymentConfiguration:
        MaximumPercent: 150
        DeploymentCircuitBreaker: {Enable: true, Rollback: true}
      NetworkConfiguration:
        AwsvpcConfiguration: {Subnets: [subnet-default-us-east-1-a]}
YAML
aws --endpoint-url http://localhost:4566 cloudformation deploy --stack-name ecs-settings --template-file stack.yaml
aws --endpoint-url http://localhost:4566 ecs describe-task-definition --task-definition web \
  --query 'taskDefinition.[runtimePlatform,containerDefinitions[0].user,containerDefinitions[0].healthCheck]'
# [null, null, null]

Environment

  • Floci version / image tag: upstream main at e9378bb
  • Java SDK version (if applicable): n/a, AWS CLI v2
  • How you're running Floci (Docker / native / mvn quarkus:dev): java -jar target/quarkus-app/quarkus-run.jar with floci.services.ecs.mock=false

Activity

  1. added 2 commits that reference this issue on Nov 5, 2026
    bbe5d2a
    f945f54
  2. AndreKurait commented on Nov 6, 2026

    @AndreKurait
    Contributor

    Confirmed in current main (cf96dadfd9): CloudFormation still uses the positional ECS overloads, dropping these settings. Existing PR #7644 forwards them on create/update and adds rollback and integration coverage; no duplicate fix is needed. Keep this issue open until it lands. This is a source review, not a fresh runtime or AWS verification.

  3. added 2 commits that reference this issue on Nov 6, 2026
    120b8b0
    2a596b4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions