CircleCI-Public / aws-ecs-orb

An orb that simplifies deployment to Amazon's Elastic Container Service (ECS). Supports both EC2 and Fargate launch types.
https://circleci.com/orbs/registry/orb/circleci/aws-ecs
MIT License
51 stars 80 forks source link

update-task-definition command remove the runtime-platform information #137

Closed yyamada-red-frasco closed 2 years ago

yyamada-red-frasco commented 2 years ago

Orb version:

2.2.1

What happened:

The runtime-platform parameter is not specified in the aws ecs register-task-definition of the update-task-definition command, so if you update the task definition that specifies the runtime-platform, the information will be removed. https://docs.aws.amazon.com/cli/latest/reference/ecs/register-task-definition.html

Steps:

Expected behavior:

Update the task definition with the runtime-platform information specified in the existing task definition.

Additional Information:

The current aws ecs describe-task-definition cannot get the runtime-platform information. Therefore, until AWS updates it, you need to add cpuArchitecture and operatingSystemFamily to the Orb command parameters.

alansikora commented 2 years ago

At least on the latest version, it does retrieve runtimePlatform.

{
    "taskDefinition": {
        "taskDefinitionArn": "------",
        "containerDefinitions": [
            {
                "name": "------",
                "image": "------",
                "cpu": 0,
                "portMappings": [
                    {
                        "containerPort": ------,
                        "hostPort": ------,
                        "protocol": "------"
                    }
                ],
                "essential": true,
                "environment": [],
                "mountPoints": [],
                "volumesFrom": [],
                "logConfiguration": {
                    "logDriver": "awslogs",
                    "options": {
                        "awslogs-create-group": "true",
                        "awslogs-group": "------",
                        "awslogs-region": "------",
                        "awslogs-stream-prefix": "------"
                    }
                }
            }
        ],
        "family": "------",
        "executionRoleArn": "------",
        "networkMode": "awsvpc",
        "revision": 24,
        "volumes": [],
        "status": "ACTIVE",
        "requiresAttributes": [
            {
                "name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
            },
            {
                "name": "ecs.capability.execution-role-awslogs"
            },
            {
                "name": "com.amazonaws.ecs.capability.ecr-auth"
            },
            {
                "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
            },
            {
                "name": "ecs.capability.execution-role-ecr-pull"
            },
            {
                "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
            },
            {
                "name": "ecs.capability.task-eni"
            },
            {
                "name": "com.amazonaws.ecs.capability.docker-remote-api.1.29"
            }
        ],
        "placementConstraints": [],
        "compatibilities": [
            "EC2",
            "FARGATE"
        ],
        "runtimePlatform": {
            "cpuArchitecture": "ARM64",
            "operatingSystemFamily": "LINUX"
        },
        "requiresCompatibilities": [
            "FARGATE"
        ],
        "cpu": "256",
        "memory": "512",
        "registeredAt": "2022-01-03T08:48:37.363000-03:00",
        "registeredBy": "arn:aws:iam::425675427949:user/cli"
    },
    "tags": [
        {
            "key": "Environment",
            "value": "production"
        }
    ]
}
alansikora commented 2 years ago

I was planning on adding the support, but I'm on a very hectic moment of my project right now, so I won't be able to.

But if nobody adds the new code when I'm free again, I will work on adding the support.

maxcrossan commented 2 years ago

Would be great to have this in 2.2.2

yoavya commented 2 years ago

Is there a workaround for this besides copying the code to my circle configuration file and fixing the issue locally? Or is there any ETA on the release @alansikora ?