batch: Add support for multiple container jobs on ECS (EcsProperties) to MultiNodeJobDefinition
- Dominant language
- TypeScript
- Stars
- 12.9k
- Forks
- 4.6k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 83
Description
### Describe the feature
AWS Batch now supports multiple containers in a single job definition. For multi-node parallel jobs, this means that [MultiNodeJobDefinition L2 construct](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_batch.MultiNodeJobDefinition.html) would need to support two new properties that stem from the [NodeRangePropertyProperty L1 construct](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_batch.CfnJobDefinition.NodeRangePropertyProperty.html):
1. `readonly ecsProperties: IEcsContainerDefintion`
2. `readonly eksProperties: EksContainerDefinition`
Note that (2) is encapsulated in issue #30906
### Use Case
To be able to define multiple containers in MNP job definitions across both ECS and EKS clusters with AWS Batch
### Proposed Solution
Possible actions are to:
1. create a new classes for supporting multi-container jobs on ECS and EKS
a. , `MultiNodeEcsJobDefinition` for ECS
b. `MultiNodeEksJobDefintion` for EKS (as mentioned in #30906 )
2. add a new property, `NodeRanges`, that aligns closer to the current Batch API.
### Other Information
_No response_
### Acknowledgements
- [ ] I may be able to implement this feature request
- [X] This feature might incur a breaking change
### CDK version used
2.154.1
### Environment details (OS name and version, etc.)
all
Contributor guide
Research direction
Start with the MultiNodeJobDefinition L2 construct and the NodeRangePropertyProperty L1 construct in the AWS CDK Batch API, then review issue #30906 for the related EKS work. Done means an agreed design and implementation that supports multiple ECS containers in multi-node parallel job definitions without leaving the ECS and EKS scope ambiguous.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, typescript
- Domain
- cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100