aws / aws/aws-cdk

Automatically refer to the appropriate, regional FireLens image with addFirelensLogRouter()

Open
#7,366 8 comments 4 reactions 2 assignees Assigned to @uttarasridhar View on GitHub
@aws-cdk/aws-ecr @aws-cdk/aws-ecs effort/small feature-request good first issue p2
Dominant language
TypeScript
Stars
12.9k
Forks
4.6k
Avg merge
2d 3h
Merged PRs (30d)
83

Description

The [documentation](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-using-fluentbit) suggests using Amazon's own ECR images for the FireLens container. However, `image` is a [required property](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ecs.FirelensLogRouterDefinitionOptions.html#image).

It would be a nice convenience if CDK could determine the destination stack's region and automatically use the proper `ecr.Repository.fromRepositoryArn()` behavior.

### Use Case

Today, I can get this behavior manually, but I had to generate the reference myself:

```ts
// Amazon recommends pulling this image from their regional ECR repo
// https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-using-fluentbit
const awsEcrRepo = ecr.Repository.fromRepositoryArn(
parent,
"AWSFireLensRepo",
"arn:aws:ecr:us-west-2:906394416424:repository/aws-for-fluent-bit",
);
taskDefinition.addFirelensLogRouter("DatadogFirelensLogRouter", {
image: ecs.ContainerImage.fromEcrRepository(awsEcrRepo, "latest"),
memoryReservationMiB: 50,
essential: true,
firelensConfig: {
type: ecs.FirelensLogRouterType.FLUENTBIT,
options: {
enableECSLogMetadata: true,
configFileType: ecs.FirelensConfigFileType.FILE,
configFileValue: "/fluent-bit/configs/parse-json.conf",
},
},
});
```

### Proposed Solution

Ideally, `image` on `FirelensLogRouterDefinitionOptions` is an optional parameter and defaults to the proper ECR image from [this table in the docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-using-fluentbit).

### Other

* [x] :wave: I may be able to implement this feature request
* [ ] :warning: This feature might incur a breaking change

---

This is a :rocket: Feature Request

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.