Skip to content

Conversation

@aws-cdk-automation
Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation commented Dec 10, 2021

See CHANGELOG

Niranjan Jayakar and others added 30 commits November 23, 2021 11:13
----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
The `Cluster.addCapacity` method was deprecated in #14386 as part of the
introduction of `Cluster.addAsgCapacityProvider`. However, the corresponding
`ClusterProps.capacity` property and `AddCapacityOptions` interface were not
deprecated, leading to a confusing mismash of deprecated and undeprecated usage.
The README for ECS still heavily references `Cluster.addCapacity`, further
leading to potential confusion for users just following the module's guidance.

As part of cleaning up deprecated usage as part of the lead-up to the V2 launch,
opting to un-deprecate the `addCapacity` method rather than deprecating the
other two elements and rewriting the README.


----

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

This fixes the issue where updating the memoryLimit or vpc of the
BucketDeployment resource would result in a stack update failure. In
order to fix this the ID of the BucketDeployment CustomResource includes
info on the memoryLimit and vpc in the same way that the Lambda function
does. This means that when either of these values are updated, the
BucketDeployment CustomResource will be recreated along with the Lambda
function.

If anyone is setting `retainOnDelete=false` (default is `true`) then
this change would result in the data in the bucket being deleted. In
order to avoid this scenario, this PR introduces a bucket tag that
controls whether or not a BucketDeployment resource can delete data from
the bucket.

The BucketDeployment resource will now add a tag to the deployment
bucket with a format like `aws-cdk:cr-owned:{keyPrefix}:{uniqueHash}`.
For example:

```
{
  Key: 'aws-cdk:cr-owned:deploy/here/:240D17B3',
  Value: 'true',
}
```

Each bucket+keyPrefix can be "owned" by 1 or more BucketDeployment
resources. Since there are some scenarios where multiple BucketDeployment
resources can deploy to the same bucket and key prefix
(e.g. using include/exclude) we also append part of the id to
make the key unique.

As long as a bucket+keyPrefix is "owned" by a BucketDeployment
resource, another CR cannot delete data. There are a couple of
scenarios where this comes into play.

1. If the LogicalResourceId of the CustomResource changes
(e.g. memoryLimit is updated) CloudFormation will first issue a 'Create'
to create the new CustomResource and will update the Tag on the bucket.
CloudFormation will then issue a 'Delete' on the old CustomResource
and since the new CR "owns" the Bucket+keyPrefix (indicated by the
presence of the tag), the old CR will not delete the contents of the bucket

2. If the BucketDeployment resource is deleted _and_ it is the only CR
for that bucket+keyPrefix then CloudFormation will first remove the tag
from the bucket and then issue a "Delete" to the CR. Since there are no
tags indicating that this bucket+keyPrefix is "owned" then it will delete
the contents.

3. If the BucketDeployment resource is deleted _and_ it is *not* the only
CR for that bucket:keyPrefix then CloudFormation will first remove the tag
from the bucket and then issue a "Delete" to the CR.
Since there are other CRs that also "own" that bucket+keyPrefix
(indicated by the presence of tags), there will
still be a tag on the bucket and the contents will not be removed. The
contents will only be removed after _all_ BucketDeployment resource that
"own" the bucket+keyPrefix have been removed.

4. If the BucketDeployment resource _and_ the S3 Bucket are both removed,
then CloudFormation will first issue a "Delete" to the CR and since there
is a tag on the bucket the contents will not be removed. If you want the
contents of the bucket to be removed on bucket deletion, then
`autoDeleteObjects` property should be set to true on the Bucket.

Scenario 3 & 4 are changes to the existing functionality in that they
now do *not* delete data in some scenarios when they did previously.

fixes #7128


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
This is done with the express purpose of improving its discoverability on Construct Hub.

----
Changed the description and added keywords
*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…#17683)

All deprecated APIs will be removed from CDKv2.

Migrating from `SnapshotCredentials.fromGeneratedPassword()` to
its documented alternative will modify the RDS
instance in ways that may impact usability of the resource. This API
must not be deprecated.

The alternative APIs to the `DatabaseInstanceEngine` APIs refereced in
this PR will cause the [CFN EngineVersion][1] to be modified.
Modification of this property causes [some interruption][2] to the
resource.
This may cause "some interruption" to users' running applications.

[1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-engineversion
[2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt


----

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

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


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
IAM Policies and Users already support import by name. Extending same for Groups

----

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

We were comparing bundling stacks of the form `Stage/Stack` with stack
names of the form `Stage-Stack`.

For stacks with `NodejsFunction`s this leads to assets containing the whole CDK project because
when bundling is skipped the asset references the source directory which is the project root.

Closes #12898
Closes #15346


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
New R6I instances just got released:

https://aws.amazon.com/about-aws/whats-new/2021/11/amazon-ec2-r6i-instances/

Docs have already been updated:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-instancetype

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
feat(cloudfront): Add support for response headers policy

closes #17290 

Notes:
~1. Currently the CFNSpec is not up-to-date with the latest available cloudformation changes for `ResponseHeadersPolicyId` in `AWS::CloudFront::Distribution CacheBehavior`. Some aspects of the same are added to the PR but are left commented. Would update the PR once the spec is updated.~

Refs:
1. https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/adding-response-headers.html
2. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-responseheaderspolicy.html
3. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-responseheaderspolicyid

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Ran npm-check-updates and yarn upgrade to keep the `yarn.lock` file up-to-date.
Add support for S3 [Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration.html).

This PR introduces:
- New boolean property `transferAcceleration` to enable Transfer Acceleration.
- New operation `transferAccelerationUrlForObject()` to get HTTPS endpoint for Transfer Acceleration.

Closes #12570.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
This CDK feature adds support for Emr on Eks by implementing API service integrations for the following three APIs.

This PR adds three tasks which support Emr on Eks:
1) [Create Virtual Cluster](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_CreateVirtualCluster.html)
2) [ Start a job run](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_StartJobRun.html)
3) [Delete virtual cluster ](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_DeleteVirtualCluster.html)


Continuation of #15262 by @matthewsvu and @BenChaimberg:

Closes #15234.

----
*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
I'm trying to implement aws-iot L2 Constructs.

This PR is one of steps after following PR: 
- #16681 (comment)

----

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

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Users can now associate TagOptions to a cloudformation product through an association call
or upon instantiation. TagOptions added to a portfolio are made available for any products within it,
but you can also have separate, product level tag options.  We only create unique TagOption constructs in the template
but we can have the same Tag Option associated with both a portfolio and a product in that portfolio, the logic that
resolves this is handled by service catalog.

----

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


Co-authored-by: Dillon Ponzo <[email protected]>
…17609)

We need to pass whatever `excludeCharacters` were passed to the generated Secret to the application responsible for the rotation.

Fixes #17347
Fixes #17575 

------

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

The EcrSourceAction could previously be used to trigger on changes to all tags of an image. As part of the fix #13818, the imageTag was defaulted to latest if not provided. Therefore it was no longer possible to call the underlying onCloudTrailImagePushed function with an undefined imageTag to watch changes on all tags.

Reintroduce triggering on all tags by passing an empty string as the imageTag.

Fixes #13818


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Updates the `RegExp` constructor to support multiline. Resolves #17691

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
- Added StepFunctionsRestApi and StepFunctionsIntegration implementation

closes #15081.


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Currently, the documentation of our CFN-only libraries leaves a lot to
be desired, which is confusing users.

Update the READMEs to make it very clear that we don't have anything for
them, and point them to the right location for getting documentation.


----

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

Previously, the rosetta translations could not determine the type of
objects being passed into methods when they are untyped. Some were being
interpreted as 'props' type while they should just be regarding as
`Record` or `any`.

To compensate for this, the README in this module assigned them to
variables, so the translator did a better job at knowing this.

This has now been fixed in rosetta. Move back to using this inline,
since the usage is just nicer.


----

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

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Sometimes, IDEs like VSCode will autocomplete deep imports into the CDK
library. For example, they may generate the following:

```ts
import { Bucket } from 'aws-cdk-lib/aws-s3/lib/bucket';
```

Whereas the correct import should have been:

```ts
import { Bucket } from 'aws-cdk-lib/aws-s3';
```

If we allow people to write the former, they will be broken every time
we change the internal file layout of our module (or conversely, we
will not be allowed to change the file layout at all).

Use the `package.json` `"exports"` mechanism to advertise the select
paths that users are allowed to import from, and disallow the rest.


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
`mac1` instances got released last year:
https://aws.amazon.com/about-aws/whats-new/2021/10/amazon-ec2-mac-instances-additional-regions/

Docs have already been updated a while ago:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-instancetype

Note: Whenever `mac2` comes out (probably on M1, or most likely on M1Pro/M1Max) we'll have to update `InstanceArchitecture` enum [here](https://github.com/aws/aws-cdk/blob/ddf2881ee24cbf3083463a6e772a5c91acc229aa/packages/%40aws-cdk/aws-ec2/lib/instance-types.ts#L573).

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Co-authored-by: AWS CDK Team <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
njlynch and others added 22 commits December 6, 2021 18:01
The package was marked as stable, but this bit in the README was missed.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Removing an unnecessary suffix from union definitions.

Fixes: #17771 

----

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

If the dependency version is a `file:`, find its absolute path so that
we can install it in the temporary bundling folder.

Closes #17830


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
While trying to add caching config to some of my application's resolvers, I discovered that the BaseResolverProps do not include caching configuration like the CfnResolver does.

This PR adds this missing caching configuration to the BaseResolverProps and adds the configuration as part of the creation of the CfnResolver. 

----

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

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
`finalize` is a magic member function in Java, and we cannot just call
any method `finalize`. The presence of this member causes pack failures.

See aws/jsii#3237


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Related to #17578.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
This test fails in our CodeBuild environment with the following error:

```
FAIL test/util.test.js
  ● extractDependencies › with file dependency
    expect(received).toEqual(expected) // deep equality
    - Expected  - 1
    + Received  + 1
      Object {
    -   "my-module": StringMatching /aws-cdk\/packages\/@aws-cdk\/core/,
    +   "my-module": "file:/codebuild/output/src777018412/src/packages/@aws-cdk/core",
      }
      130 |     }));
      131 |
    > 132 |     expect(extractDependencies(pkgPath, ['my-module'])).toEqual({
          |                                                         ^
      133 |       'my-module': expect.stringMatching(/aws-cdk\/packages\/@aws-cdk\/core/),
      134 |     });
      135 |
      at Object.<anonymous> (test/util.test.ts:132:57)
 ```

This is due to the source being located in .../src instead of .../aws-cdk. Fix
the test by stopping the check at the 'packages' directory.


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Revert `aws:asset:original-path` to fix #17706
Generated by running `./scripts/bump-cfnspec.sh`. Needed some additions required for #17840.

Closes #17858 (duplicate)

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Ran npm-check-updates and yarn upgrade to keep the `yarn.lock` file up-to-date.
The recommendation from AWS is to not use this feature in production. So `false` is a sensible
default.

Fixes #17578.

----

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

The cross region S3 buckets that are created should have block public access by default.

Fixes #16411

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
aws-cloudformation/cloudformation-coverage-roadmap#133 just shipped.

Docs: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-propagatetagstovolumeoncreation

Waiting on cloudfromation specs to get bumped to the latest version. Depends on #17844.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
When configuring the Cognito SES email integration we were performing a
region check to make sure you were configuring SES in one of the 3
supported regions. This was based on the Cognito documentation [here](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-email.html#user-pool-email-developer)
which is not correct. This PR removes that check allowing CloudFormation
to provide the validation. If a user provides an incorrect region the
CloudFormation deployment will fail with a descriptive error message.

fixes #17795


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Managed Policy ARNs should be deduped when added to a Role,
otherwise the deployment is going to fail.

Remove the unnecessary use of `Lazy.uncachedString` to make sure that
the ARNs of two `ManagedPolicy.fromAwsManagedPolicyName()` policies
are consistent.

Fixes #17552.


----

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

This adds a new integration test that deploys an s3.Bucket with
autoDeleteObjects set to true. The autoDeleteObjects feature deploys a
Nodejs Lambda backed Custom Resource.

Lambda backed custom resources that are included as part of CDK
constructs are compiled and bundled as part of the construct library.
There are scenarios where this compiled source code (e.g.
__entrypoint__.js) could be modified by the build process and cause the
lambda execution to fail.

This integration test should catch those instances. If the lambda
function throws errors during execution the CustomResource will
eventually fail. In the integration test this will result in a test
timeout and failure.


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
**Issue**
When creating a VPC you can not define the VPC name. The current way to set the name is using the `Tags` class

**VPC Example:**
```javascript
        const vpc = new ec2.Vpc(this, 'vpc-id', {
            maxAzs: 2,
            subnetConfiguration: [
                {
                    name: 'private-subnet-1',
                    subnetType: ec2.SubnetType.PRIVATE,
                    cidrMask: 24,
                },
                {
                    name: 'public-subnet-1',
                    subnetType: ec2.SubnetType.PUBLIC,
                    cidrMask: 24,
                },
            ]
        });

        cdk.Tags.of(vpc).add('Name', 'CustomVPCName');
```

**Proposal:**
```javascript
        const vpc = new ec2.Vpc(this, 'vpc-id', {
            maxAzs: 2,
            subnetConfiguration: [
                {
                    name: 'private-subnet-1',
                    subnetType: ec2.SubnetType.PRIVATE,
                    cidrMask: 24,
                },
                {
                    name: 'public-subnet-1',
                    subnetType: ec2.SubnetType.PUBLIC,
                    cidrMask: 24,
                    mapPublicIpOnLaunch: false, // or true
                },
            ],
            vpcName: 'CustomVPCName',
        });
```

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
The `rewrite-imports-v2` tool is used to rewrite imports from CDK v1 apps and
libraries to CDK v2 compliant imports. The initial launch of this tool focused
solely on the conversion of CDKv1 to CDKv2 imports, but ignored the complexity
of 'constructs` now being used as its own independent library and the lack of
the Construct compatibility layer from v2.

This fix introduces rewrites for Constructs. All `IConstruct` and `Construct`
imports will be converted from `@aws-cdk/core` to `constructs`, and any
qualified references (e.g., `cdk.Construct`) will be renamed as well (e.g.,
`constructs.Construct`). Imports of the construct library will be added as
needed.

fixes #17826

_Implementation note:_
Apologies for the diff. The best way to be able to recursively visit the tree involved
converting the existing, simple `ts.visitNode()` approach to a
`TransformerFactory`-based approach so `ts.visitEachChild()` could be used. This
required a few method moves and the creation of a class to hold some context.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
If the `cachingConfig` property is not provided, the library is generating an empty config.

Change this to not add any config to the template.

Related to #17925.

----

*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 Dec 10, 2021
@gitpod-io
Copy link

gitpod-io bot commented Dec 10, 2021

@aws-cdk-automation
Copy link
Collaborator Author

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildProject89A8053A-LhjRyN9kxr8o
  • Commit ID: 749d5ab
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

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

@mergify mergify bot merged commit 3825f59 into release Dec 10, 2021
@mergify mergify bot deleted the bump/1.135.0 branch December 10, 2021 17:06
@mergify
Copy link
Contributor

mergify bot commented Dec 10, 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).

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.