Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(ecs): memory issue in validateTaskDefinition() #25374

Closed
wants to merge 3 commits into from

Conversation

jackhannan-hello
Copy link

If you where to add a container definition to a fargate task definition if you where to include memory or memoryResorvation which at least one is required you get an error. I added a first if statement to see if the parent container has memory and then see if the other containers have memory .

`private validateTaskDefinition(): string[] {
const ret = new Array();

if (isEc2Compatible(this.compatibility)) {
  // EC2 mode validations

  // Container sizes
  for (const container of this.containers) {
    if (container.memoryLimitSpecified && container === this.containers[0]) {
      break;
    } else if (!container.memoryLimitSpecified) {
      ret.push(`ECS Container ${container.containerName} must have at least one of 'memoryLimitMiB' or 'memoryReservationMiB' specified`);
    }
  }

}`

https://github.com/jackhannan-hello/aws-cdk/blob/8598a44350a932ddc7e05f99b089e35e4c4a9fcf/packages/aws-cdk-lib/aws-ecs/lib/base/task-definition.ts#L735-L750

I did this so that if the parent has a specified memory it will exit the loop checking for memory so that if one of your sub containers has no memory specified it does not throw an error. If there is no specified memory in the parent it will go through all of the sub containers to make sure it has memory specified.

Closes #25275.


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

@gitpod-io
Copy link

gitpod-io bot commented Apr 30, 2023

@github-actions github-actions bot added bug This issue is a bug. effort/small Small work item – less than a day of effort p2 beginning-contributor [Pilot] contributed between 0-2 PRs to the CDK labels Apr 30, 2023
@aws-cdk-automation aws-cdk-automation requested a review from a team April 30, 2023 00:07
Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pull request linter has failed. See the aws-cdk-automation comment below for failure reasons. If you believe this pull request should receive an exemption, please comment and provide a justification.

A comment requesting an exemption should contain the text Exemption Request. Additionally, if clarification is needed add Clarification Request to a comment.

@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildv2Project1C6BFA3F-wQm2hXv2jqQv
  • Commit ID: 8598a44
  • Result: FAILED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

Copy link
Contributor

@peterwoodworth peterwoodworth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @jackhannan-hello, thanks for submitting this

You've commited a fresh package-lock.json to the root, did you use yarn install --frozen-lockfile to install your packages? There shouldn't be a fresh package.json here

Additionally, you've added two dependencies that don't seem to get used

import { measureMemory } from 'node:vm';
import { aws_memorydb } from '../../..';

I don't think we need these, and they can be removed.

Regarding testing, could you please add a unit test which checks that this synthesizes correctly when correctly used, and another unit test which throws when misconfigured? Additionally, be sure to run the integ test you've created with our integ-runner CLI. The contributing guide should shed some light on this 🙂

@aws-cdk-automation
Copy link
Collaborator

This PR has been in the BUILD FAILING state for 3 weeks, and looks abandoned. To keep this PR from being closed, please continue work on it. If not, it will automatically be closed in a week.

@aws-cdk-automation
Copy link
Collaborator

This PR has been deemed to be abandoned, and will be automatically closed. Please create a new PR for these changes if you think this decision has been made in error.

@aws-cdk-automation aws-cdk-automation added the closed-for-staleness This issue was automatically closed because it hadn't received any attention in a while. label May 29, 2023
@aws-cdk-automation
Copy link
Collaborator

The pull request linter fails with the following errors:

❌ Fixes must contain a change to an integration test file and the resulting snapshot.

PRs must pass status checks before we can provide a meaningful review.

If you would like to request an exemption from the status checks or clarification on feedback, please leave a comment on this PR containing Exemption Request and/or Clarification Request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beginning-contributor [Pilot] contributed between 0-2 PRs to the CDK bug This issue is a bug. closed-for-staleness This issue was automatically closed because it hadn't received any attention in a while. effort/small Small work item – less than a day of effort p2
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ecs: task definition validation container bug
3 participants