Automatically refer to the appropriate, regional FireLens image with addFirelensLogRouter()
- 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
Assessment
This issue has not been assessed yet.