Skip to content

Conversation

@aws-cdk-automation
Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation commented Jan 12, 2021

See CHANGELOG

markusl and others added 30 commits January 6, 2021 14:18
----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…situations (#12033)

`lookupSupportedAzs` can create a VPC endpoint object with no subnets, or fewer subnets than expected, if AZs are not resolved (i.e. they are Tokens). This can create deployment-time failures if all the VPC subnets are filtered out.

This is not a problem with stock CDK, this is a problem with third-party CDK libraries that do not provide concrete AZs (us-east-1a, us-east-1b) for subnets, even though the account and region are specified.

A less common problem is that `lookupSupportedAzs` can return no subnets if there is no overlap between the user's VPC AZs and the AZs of a service they're connecting to. This also results in a deployment-time failure.

This commit adds error checking to make sure that all subnet AZs are concrete values when using `lookupSupportedAzs`, and also throws an error if the user inadvertently attempts to create a VPC endpoint with no subnets. 

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
… assets (#11855)

Related to #10710, #11327 @rix0rrr 

Adding bucketPrefix to "stackTemplateAssetObjectUrl"

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.822.0 to 2.823.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](aws/aws-sdk-js@v2.822.0...v2.823.0)

Signed-off-by: dependabot-preview[bot] <[email protected]>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.8.28 to 0.8.31.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.8.28...v0.8.31)

Signed-off-by: dependabot-preview[bot] <[email protected]>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Bumps [archiver](https://github.com/archiverjs/node-archiver) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/archiverjs/node-archiver/releases)
- [Changelog](https://github.com/archiverjs/node-archiver/blob/master/CHANGELOG.md)
- [Commits](archiverjs/node-archiver@5.1.0...5.2.0)

Signed-off-by: dependabot-preview[bot] <[email protected]>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
#12373)

We were passing the wrong scope variable for the security group.

Fixes #12132.

PR notes: Yes I know this should formally have a unit test. I'm trying to quickly get rid of paper cuts via small edits that are "obviously" correct through quick edits. Adding tests slows the process down a lot and I'm not convinced a test would have appreciable benefit here, so I chose not to add one.


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.14.165 to 4.14.167.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

Signed-off-by: dependabot-preview[bot] <[email protected]>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
…12397)

This change also removes Shiv and Somaya who are no longer on the CDK
team.
closes #12041

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…es private subnets to be included (#12401)

fix(apigatewayv2): specifying subnets to vpclink explicitly adds extra subnets

BREAKING CHANGE: `subnets` prop in `VpcLink` resource now takes `SubnetSelection` instead of `ISubnet[]`

closes #12083


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.823.0 to 2.824.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](aws/aws-sdk-js@v2.823.0...v2.824.0)

Signed-off-by: dependabot-preview[bot] <[email protected]>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
…es (#11866)

Cloudwatch Synthetics recently released new NodeJS runtimes (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html).

This PR is adding them and update doc links

Fixes #11870

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Several escape hatches were used in the past to support features that
did not have CloudFormation support.

With CloudFormation supporting them now, clean these up and use the
standard way.


----

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


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Bumps [fast-check](https://github.com/dubzzz/fast-check) from 2.7.0 to 2.11.0.
- [Release notes](https://github.com/dubzzz/fast-check/releases)
- [Changelog](https://github.com/dubzzz/fast-check/blob/master/CHANGELOG.md)
- [Commits](dubzzz/fast-check@v2.7.0...v2.11.0)

Signed-off-by: dependabot-preview[bot] <[email protected]>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…ths with dash (#12248)

Also add support for underscore.

Closes #12221


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Using absolute URL's so that it will work when accessed through the reference documentation site. 

Closes #12333

----

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

---
_By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_
In the event that assets are not actually available at synthesis
time, we still want to support JIT (just-in-time) asset
generation via external tooling. This would, for instance, enable
a third party tool to fetch additional resources prior to
bundling/building and subsequent uploading.

This adds a new interface for both File and Docker asset types
that allows users to specify an executable. The executable,
depending on the asset type, must then reply with a specific key
on stdout, which will then get picked up and used by CDK Assets.

This also updates the default stack synthesizer to support adding
external sources directly. This is technically a breaking change
for anyone who currently extends the class.


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Import IAM users by ARN or attributes.

Closes #12340
----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Right now, Configuration.load() completely ignores context structure in ~/.cdk.json.
Documentation says it will merge context of ~/.cdk.json.

Fixes #10823, fixes #4802

Change that behavior to merge context of userConfig in Configuration.load()
Add tests for this behavior and first test for ~/.cdk.json at all

----

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

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…ss stacks (#12420)

Although the constructor of the AssetCode doesn't imply it's real
dependencies, an AssetCode currently can only be associated to consumers
within a single stack.

Attempting to use them across stacks results in the conspicuous error -
"Cannot reference across apps. Consuming and producing stacks must be
defined within the same CDK app."

The correct solution here would have been to model this such that the
stack dependency is made explicit on the customer facing API, perhaps by
taking a 'scope' parameter.

For the moment, throw a more relevant error message so that it's obvious to
the user on what is wrong.

----

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


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…that is not compatible to the default instance type (#12441)

> Note: both issues here were introduced in #11962

## Problem 1

When creating a `Nodegroup` without passing instance types, we currently default to use `t3.medium`:

https://github.com/aws/aws-cdk/blob/da1ed08a6a2de584f5ddf43dab4efbb530541419/packages/%40aws-cdk/aws-eks/lib/managed-nodegroup.ts#L294

This default is then used to calculate the expected AMI type, and assert that the configured AMI type is indeed as expected:

https://github.com/aws/aws-cdk/blob/da1ed08a6a2de584f5ddf43dab4efbb530541419/packages/%40aws-cdk/aws-eks/lib/managed-nodegroup.ts#L302-L304

However, a user might configure instance types on the launch template, and an AMI type on the nodegroup. In this scenario, we still use the default instance type to perform the validation, which will fail if the ami type is not compatible with it.

To make things worse, we don't actually use the default instance type at all, apart from the validation:

https://github.com/aws/aws-cdk/blob/da1ed08a6a2de584f5ddf43dab4efbb530541419/packages/%40aws-cdk/aws-eks/lib/managed-nodegroup.ts#L329-L330

And in-fact, this default was only introduced in this [PR](#11962), which also added the problematic validation. 

### Solution

Drop the default instance type altogether, like it was before. The new validation will only take place if the user explicitly configured both `instanceTypes` and `amiType` on the nodegroup. Since the default value was never actually used, this doesn't incur any behavior change.

## Problem 2

When a launch template is used, we currently ignore the value of `amiType` explicitly passed by the user:

https://github.com/aws/aws-cdk/blob/da1ed08a6a2de584f5ddf43dab4efbb530541419/packages/%40aws-cdk/aws-eks/lib/managed-nodegroup.ts#L324-L325

This behavior means that users who configured a launch template without a custom ami, and passing an `amiType` to the nodegroup, would now result in no ami specification at all, defaulting to whatever EKS does, which might not be what the user had in mind.

There's no good reason to do this, we should either throw a validation error if both are used, or pass the explicit value nevertheless, even though it might cause problems.

### Solution

When a user explicitly passes an AMI type, just use it and assume the user knows what he/she is doing. When a user does not explicitly pass it, only apply the default if a launch template is not used. 

> If we apply the default in the presence of a launch template, a user would not be able to escape if they also have a custom AMI in the launch template.

This change means that users who previously "relied" on this override, might now experience a deployment failure if they are using a custom AMI in the launch template, those users can resolve the problem by removing the `amiType` property from the nodegroup (since it wasn't used, its not needed). I don't imagine many such users exist since this behavior is new and it doesn't make much sense to configure both a custom AMI and an `amiType`.

--------------------

Fixes #12389

BREAKING CHANGE: Explicitly passing `amiType` to nodegroups will now take affect even if a launch template is configured as well. If your launch template contains a custom AMI, this will cause a deployment failure, to resolve, remove the explicit `amiType` from the nodegroup configuration.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
iliapolo and others added 3 commits January 12, 2021 14:48
…orted cluster versions (#11622)

Don't include the logging keys for disabled logging options as some cluster versions reject unknown keys.

Fixes #11223

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
… nodes (#12453)

Added `spotInterruptHandler` to `addAutoScalingGroupCapacity` and `connectAutoScalingGroupCapacity` that allows disabling the installation of the spot-interrupt-handler helm chart.

Closes #12451 

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
@aws-cdk-automation aws-cdk-automation added the pr/no-squash This PR should be merged instead of squash-merging it label Jan 12, 2021
@gitpod-io
Copy link

gitpod-io bot commented Jan 12, 2021

@NetaNir NetaNir requested a review from skinny85 January 12, 2021 19:25
@aws-cdk-automation
Copy link
Collaborator Author

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildProject6AEA49D1-qxepHUsryhcu
  • Commit ID: 0decba6
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

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

@mergify
Copy link
Contributor

mergify bot commented Jan 12, 2021

Thank you for contributing! Your pull request will be automatically updated and merged without squashing (do not update manually, and be sure to allow changes to be pushed to your fork).

@NetaNir NetaNir merged commit 866c8dc into release Jan 12, 2021
@NetaNir NetaNir deleted the bump/1.84.0 branch January 12, 2021 20:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr/no-squash This PR should be merged instead of squash-merging it

Projects

None yet

Development

Successfully merging this pull request may close these issues.