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

CDK v2.0 #79

Closed
5 of 12 tasks
eladb opened this issue Jul 23, 2019 · 13 comments
Closed
5 of 12 tasks

CDK v2.0 #79

eladb opened this issue Jul 23, 2019 · 13 comments
Labels
management/tracking status/done Implementation complete

Comments

@eladb
Copy link
Contributor

eladb commented Jul 23, 2019

PR Champion
#156 @eladb

Description

Proposal detailing how we release aws-cdk 2.0 and how we want to handle major versions in the future.

Things to consider

  • Release process
  • Long-term support for previous major versions
  • Regular clean ups across major versions such as:

v2.0 Candidates

Required

  • Monocdk
  • Reset Feature Flags
  • Remove All Deprecations

Recommended

Not Recommended

More Info Needed

Progress

  • Tracking Issue Created
  • RFC PR Created
  • Core Team Member Assigned
  • Initial Approval / Final Comment Period
  • Ready For Implementation
    • implementation issue 1
  • Resolved
eladb referenced this issue in aws/aws-cdk Jul 23, 2019
Avoid CF deploy time errors when specifying multiple prefixes or suffixes in notification filters.

Closes #3347
Possibly something to fix in v2.0 (#3398)
@nmussy

This comment has been minimized.

@eladb eladb pinned this issue Jul 23, 2019
@eladb
Copy link
Contributor Author

eladb commented Jul 23, 2019

Done

@nmussy
Copy link

nmussy commented Jul 24, 2019

Could we define a comment tag to identify code that will become obsolete once these depreciations are removed? Something like:

// TODO:v2.0.0 remove this block
legacy_method();
// TODO:v2.0.0 end remove this block

EDIT: I used this kind of comment a few times in this PR: aws/aws-cdk@12d99eb

@CaerusKaru
Copy link

Not sure if you want to go this route, but the Angular repo uses a tslint rule to manage this, and similarly to @nmussy's suggestion, you tag code like this:

@deprecated
@deletion-target v2.0.0

This prevents CI from passing on a version-bump PR if the deletion-target has been met but the code block hasn't been removed

eladb referenced this issue in aws/aws-cdk Jul 25, 2019
* deprecate `EcsOptimizedAmi` for `EcsOptimizedImage`
* constructor(props) replaced by strongly typed static methods
* Windows AMI support
* deprecate `EcsOptimizedAmi`, `EcsOptimizedAmiProps`
* will require changes on v2 shipment #3398

Fixes #2574
@NGL321 NGL321 unpinned this issue Jul 30, 2019
@NGL321 NGL321 pinned this issue Jul 30, 2019
@rix0rrr rix0rrr unpinned this issue Aug 19, 2019
@NGL321 NGL321 pinned this issue Sep 3, 2019
@rhboyd
Copy link

rhboyd commented Sep 4, 2019

I think this issue would need a major version bump. Moving a resource from a CR to a native CFN resource would most likely delete and recreate the resource.

aws/aws-cdk#3930

@jogold
Copy link

jogold commented Sep 4, 2019

I think this issue would need a major version bump. Moving a resource from a CR to a native CFN resource would most likely delete and recreate the resource.

aws/aws-cdk#3930

In this case it won't because the CR doesn't implement a DELETE and moreover it's used only to update a property of a managed CF resource (AWS::Events::Rule).

@rix0rrr rix0rrr unpinned this issue Oct 1, 2019
@eladb eladb pinned this issue Oct 27, 2019
@NGL321 NGL321 unpinned this issue Dec 20, 2019
@eladb eladb transferred this issue from aws/aws-cdk Jan 23, 2020
@eladb eladb removed their assignment Jan 23, 2020
@eladb eladb changed the title v2.0 CDK v2.0 Jan 26, 2020
@eladb eladb added the status/proposed Newly proposed RFC label Jan 28, 2020
@eladb
Copy link
Contributor Author

eladb commented Feb 4, 2020

Closing this in favor of #118

@eladb eladb added status/review Proposal pending review/revision and removed status/proposed Newly proposed RFC labels Apr 7, 2020
@eladb eladb mentioned this issue Apr 14, 2020
18 tasks
MrArnoldPalmer added a commit that referenced this issue May 1, 2020
Proposal detailing a new major version of aws-cdk. Lays out the plan for
rolling out the release and continuity for support of current v1
modules.

**Note** Lets talk about issues marked as "More info needed" to decide
if they should be included or not. I didn't quite understand what they
were or why they required incurring breaking changes.

Related to: #79
MrArnoldPalmer added a commit that referenced this issue May 1, 2020
Proposal detailing a new major version of aws-cdk. Lays out the plan for
rolling out the release and continuity for support of current v1
modules.

**Note** Lets talk about issues marked as "More info needed" to decide
if they should be included or not. I didn't quite understand what they
were or why they required incurring breaking changes.

Related to: #79
MrArnoldPalmer added a commit that referenced this issue May 1, 2020
Proposal detailing a new major version of aws-cdk. Lays out the plan for
rolling out the release and continuity for support of current v1
modules.

**Note** Lets talk about issues marked as "More info needed" to decide
if they should be included or not. I didn't quite understand what they
were or why they required incurring breaking changes.

Related to: #79
@flemjame-at-amazon
Copy link

How can we make suggestions for things to consider for CDK v2.0? Open an issue?

@MrArnoldPalmer
Copy link
Contributor

MrArnoldPalmer commented May 4, 2020

How can we make suggestions for things to consider for CDK v2.0? Open an issue?

Comments here with the suggested issue are good. #79

@flemjame-at-amazon
Copy link

One of AWS's core tenets is to be secure, and many constructs have defaults that are overly permissive. I propose changing construct defaults to be more aligned with AWS defaults, or to be secure by default.

Two examples off the top of my head are:

By default, VPC endpoints allow all traffic from the VPC (see the open parameter). When creating an endpoint in the console, by default no traffic is allowed. I would change this default to be "false".

By default, NetworkLoadBalancedFargate service is fully open to the public internet (see the publicLoadBalancer parameter). I would change this to be false by default.

@mwfpope
Copy link

mwfpope commented May 4, 2020

One of the well-architected tenets is cost optimization (and there's the Amazon LP of Frugality), so can we try to avoid having CDK create unnecessary resources?

Eg: By default, the L3 VPC construct creates an EIP for each AZ. The default limit is 5 EIPs. To deploy more than one VPC in the same region, you first need to request a quota increase. If you're using those VPCs for Lambda(s), then the EIPs will go unused. (And of course, EIPs are billed only if they are unused.) There seems to be no option in the L3 construct to not have EIPs for the VPC.

In a multi-region, microservice architecture, this could easily end up being hundreds of unused EIPs. Suppose we have a distributed system that consists of 10 microservices, each in their own VPC. Suppose for each microservices, we deploy 1 test instance, and a production instance in 4 regions, with 3 AZs per VPC. Now, we have 150 unused EIPs which will cumulatively cost over $500 per month.

It's possible to delete unnecessary resources (once you realize that they exist) using this obscure and undocumented method, but in this case, a better solution might be to have no EIPs by default or to have different L3 VPC constructs for different purposes (ie. create a LambdaVPC that encompasses best practices for running a Lambda VPC).

I only have this one example, but I wouldn't have even noticed this example if I didn't run into the quota limit when I was trying to deploy multiple serverless applications to the same development account. It would be very easy for other instances of this problem to occur completely unnoticed until you dive deep into a bill at some point in the future.

@MrArnoldPalmer
Copy link
Contributor

Adding aws/aws-cdk#3763 to the radar of 2.0 since it involves replacing existing deployed constructs.

@SoManyHs
@pkandasamy91

RomainMuller pushed a commit that referenced this issue Aug 12, 2020
Proposal detailing a new major version of aws-cdk. Lays out the plan for
rolling out the release and continuity for support of current v1
modules.

Related to: #79
@nija-at nija-at added status/implementing RFC is being implemented and removed status/review Proposal pending review/revision labels Nov 11, 2020
@GriffinMB
Copy link

GriffinMB commented Nov 19, 2020

Along the lines of what @flemjame-at-amazon said, it would be great if security-relevant properties either defaulted to a "most secure" setting, or, where the property may be availability or cost impacting, were required properties so developers could make a conscious decision about the setting.

To give a concrete example:

new Bucket(this, 'MyBucket');

It may not be clear to developers that this would default to unencrypted, or that encryption is even a property. If something like encryption was a required property, then devs would be aware of the property and could make the decision to use it or not.

@eladb eladb assigned nija-at and unassigned RomainMuller Nov 30, 2020
@nija-at nija-at removed their assignment Jul 16, 2021
@eladb eladb added status/done Implementation complete and removed status/implementing RFC is being implemented labels Aug 4, 2021
@eladb eladb closed this as completed Aug 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
management/tracking status/done Implementation complete
Projects
None yet
Development

No branches or pull requests