Description
Pulumi thinks it needs to replace my aws:ecs:TaskDefinition
on every up run even though nothing has changed. Looking at the diff output for the containerDefinitions
parameter on the TaskDefinition, I can see the only difference is on both my containers, mountPoints
, portMappings
, user
, and volumesFrom
currently exist as empty arrays (except user which is "0"
) and do not exist in the desired TaskDefinition. I am not setting these properties. Below are the before and after of the containerDefinitions
parameter. The JSON Diff tool is useful for comparing. This happens every time, however, I have not reproduced this issue outside of our codebase.
As a workaround, I can manually add each of the missing properties. This results in a correct diff on each update (i.e., no changes when no changes are present).
Before
[
{
"cpu": 2000,
"environment": [
{
"name": "COMPUTE_CONFIG_URI",
"value": "<<REDACTED>>"
},
{
"name": "COMPUTE_ENV",
"value": "<<REDACTED>>"
},
{
"name": "COMPUTE_SERVICE_NAME",
"value": "<<REDACTED>>"
},
{
"name": "DD_APM_ENABLED",
"value": "false"
},
{
"name": "DD_ENV",
"value": "<<REDACTED>>"
},
{
"name": "DD_SERVICE",
"value": "<<REDACTED>>"
},
{
"name": "DD_SERVICE_NAME",
"value": "<<REDACTED>>"
},
{
"name": "DD_TRACER_LOG_LEVEL",
"value": "info"
},
{
"name": "DD_VERSION",
"value": "<<REDACTED>>"
},
{
"name": "EXTRA_JVM_OPTS",
"value": "<<REDACTED>>"
}
],
"essential": true,
"healthCheck": {
"command": [
"bash",
"-c",
"test $(find alive.txt -mmin -1)"
],
"interval": 30,
"retries": 3,
"startPeriod": 30,
"timeout": 5
},
"image": "<<REDACTED>>",
"logConfiguration": {
"logDriver": "awsfirelens",
"options": {
"apiKey": "<<REDACTED>>",
"dd_service": "<<REDACTED>>",
"dd_source": "<<REDACTED>>",
"dd_tags": "<<REDACTED>>",
"Host": "http-intake.logs.datadoghq.com",
"Name": "datadog",
"provider": "ecs",
"TLS": "on"
}
},
"memory": 3584,
"mountPoints": [
],
"name": "service",
"portMappings": [
],
"volumesFrom": [
]
},
{
"cpu": 0,
"environment": [
{
"name": "DD_APM_ENABLED",
"value": "false"
}
],
"essential": true,
"firelensConfiguration": {
"options": {
"config-file-type": "file",
"config-file-value": "/fluent-bit/configs/parse-json.conf",
"enable-ecs-log-metadata": "true"
},
"type": "fluentbit"
},
"image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:latest",
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "lp-processor-log-router-log-group-0f081b1",
"awslogs-region": "us-west-2",
"awslogs-stream-prefix": "log_router"
}
},
"memoryReservation": 50,
"mountPoints": [
],
"name": "log_router",
"portMappings": [
],
"user": "0",
"volumesFrom": [
]
}
]
After
[
{
"cpu": 2000,
"environment": [
{
"name": "EXTRA_JVM_OPTS",
"value": "<<REDACTED>>"
},
{
"name": "COMPUTE_CONFIG_URI",
"value": "<<REDACTED>>"
},
{
"name": "COMPUTE_SERVICE_NAME",
"value": "<<REDACTED>>"
},
{
"name": "COMPUTE_ENV",
"value": "<<REDACTED>>"
},
{
"name": "DD_SERVICE_NAME",
"value": "<<REDACTED>>"
},
{
"name": "DD_TRACER_LOG_LEVEL",
"value": "info"
},
{
"name": "DD_APM_ENABLED",
"value": "false"
},
{
"name": "DD_ENV",
"value": "<<REDACTED>>"
},
{
"name": "DD_SERVICE",
"value": "<<REDACTED>>"
},
{
"name": "DD_VERSION",
"value": "<<REDACTED>>"
}
],
"essential": true,
"healthCheck": {
"command": [
"bash",
"-c",
"test $(find alive.txt -mmin -1)"
],
"interval": 30,
"retries": 3,
"startPeriod": 30,
"timeout": 5
},
"image": "<<REDACTED>>",
"logConfiguration": {
"logDriver": "awsfirelens",
"options": {
"apiKey": "<<REDACTED>>",
"dd_service": "<<REDACTED>>",
"dd_source": "<<REDACTED>>",
"dd_tags": "<<REDACTED>>",
"Host": "http-intake.logs.datadoghq.com",
"Name": "datadog",
"provider": "ecs",
"TLS": "on"
}
},
"memory": 3584,
"name": "service"
},
{
"cpu": 0,
"environment": [
{
"name": "DD_APM_ENABLED",
"value": "false"
}
],
"essential": true,
"firelensConfiguration": {
"options": {
"config-file-type": "file",
"config-file-value": "/fluent-bit/configs/parse-json.conf",
"enable-ecs-log-metadata": "true"
},
"type": "fluentbit"
},
"image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:latest",
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "lp-processor-log-router-log-group-0f081b1",
"awslogs-region": "us-west-2",
"awslogs-stream-prefix": "log_router"
}
},
"memoryReservation": 50,
"name": "log_router"
}
]
Diff
6c6
< "name": "COMPUTE_CONFIG_URI",
---
> "name": "EXTRA_JVM_OPTS",
10c10
< "name": "COMPUTE_ENV",
---
> "name": "COMPUTE_CONFIG_URI",
18,26c18
< "name": "DD_APM_ENABLED",
< "value": "false"
< },
< {
< "name": "DD_ENV",
< "value": "<<REDACTED>>"
< },
< {
< "name": "DD_SERVICE",
---
> "name": "COMPUTE_ENV",
38c30,34
< "name": "DD_VERSION",
---
> "name": "DD_APM_ENABLED",
> "value": "false"
> },
> {
> "name": "DD_ENV",
42c38,42
< "name": "EXTRA_JVM_OPTS",
---
> "name": "DD_SERVICE",
> "value": "<<REDACTED>>"
> },
> {
> "name": "DD_VERSION",
73,79c73
< "mountPoints": [
< ],
< "name": "service",
< "portMappings": [
< ],
< "volumesFrom": [
< ]
---
> "name": "service"
108,115c102
< "mountPoints": [
< ],
< "name": "log_router",
< "portMappings": [
< ],
< "user": "0",
< "volumesFrom": [
< ]
---
> "name": "log_router"
117c104
< ]
---
> ]
\ No newline at end of file