Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

ecs: unable to create managed instances capacity provider #35699

Copy link
Copy link
@ollypom

Description

@ollypom
Issue body actions

Describe the bug

I'm unable to create a managed instance capacity provider. It appears the current L2 constructs creates an invalidate (and not required) ClusterCapacityProviderAssociations resource.

Regression Issue

  • Select this option if this issue appears to be a regression.

Last Known Working CDK Library Version

No response

Expected Behavior

The managed instances capacity provider gets added to the cluster.

Current Behavior

The creation of the stack fails because the Capacity Provider Associate resource fails

Reproduction Steps

Template:

    // Create ECS Cluster
    const cluster = new ecs.Cluster(this, 'MyEcsCluster', {
      vpc: vpc,
      clusterName: `${this.stackName}-cluster`,
    });

    // Create a Default Managed Instances Capacity Provider
    const miDefaultCapacityProvider = new ecs.ManagedInstancesCapacityProvider(this, 'MIDefaultCapacityProvider', {
      infrastructureRole: ecsInfrastructureRole,
      ec2InstanceProfile: ecsInstanceProfile,
      subnets: vpc.privateSubnets,
      securityGroups: [miDefaultSecurityGroup]
    });

    cluster.addManagedInstancesCapacityProvider(miDefaultCapacityProvider);

When I synth this, I get the following template:

  MyEcsCluster989E66E0:
    Type: AWS::ECS::Cluster
    Properties:
      ClusterName: CdkStack-cluster
    Metadata:
      aws:cdk:path: CdkStack/MyEcsCluster/Resource
  MyEcsCluster9940BE40:
    Type: AWS::ECS::ClusterCapacityProviderAssociations
    Properties:
      CapacityProviders: []
      Cluster:
        Ref: MyEcsCluster989E66E0
      DefaultCapacityProviderStrategy: []
    Metadata:
      aws:cdk:path: CdkStack/MyEcsCluster/MyEcsCluster
  MIDefaultCapacityProvider07546591:
    Type: AWS::ECS::CapacityProvider
    Properties:
      ClusterName:
        Ref: MyEcsCluster989E66E0
      ManagedInstancesProvider:
        InfrastructureRoleArn:
          Fn::GetAtt:
            - ECSInfrastructureRoleE492121F
            - Arn
        InstanceLaunchTemplate:
          Ec2InstanceProfileArn:
            Fn::GetAtt:
              - ECSInstanceProfileBA4A4DA9
              - Arn
          NetworkConfiguration:
            SecurityGroups:
              - Fn::GetAtt:
                  - MIDefaultSecurityGroup4EADDF9A
                  - GroupId
            Subnets:
              - Ref: MyVpcPrivateSubnetSubnet1SubnetE8BD536C
              - Ref: MyVpcPrivateSubnetSubnet2SubnetE3BFCF91
    Metadata:
      aws:cdk:path: CdkStack/MIDefaultCapacityProvider/MIDefaultCapacityProvider

Then why I attempt to deploy it, the ClusterCapacityProviderAssociations will fail.

Resource handler returned message: "Name is null" (RequestToken: f0729928-71d8-e634-55ef-aedadadfc136, HandlerErrorCode: InternalFailure)

Possible Solution

This additional Provider Association resource is not required with Managed Instances as the cluster name is in the capacity provider. I did wonder why we needed a cluster.addManagedInstancesCapacityProvider() resource at all, we could have just added a cluster name attribute to ecs.ManagedInstancesCapacityProvider() which would map to what the cloudformation looks like.

Additional Information/Context

No response

AWS CDK Library version (aws-cdk-lib)

2.219.0

AWS CDK CLI version

2.1029.4

Node.js Version

v22.14

OS

Ubuntu 22.04

Language

TypeScript

Language Version

No response

Other information

No response

Reactions are currently unavailable

Metadata

Metadata

Assignees

Labels

@aws-cdk/aws-ecsRelated to Amazon Elastic ContainerRelated to Amazon Elastic ContainerbugThis issue is a bug.This issue is a bug.effort/mediumMedium work item – several days of effortMedium work item – several days of effortp1

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.