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

chore(release): 2.87.0 #26263

Merged
merged 41 commits into from
Jul 6, 2023
Merged

chore(release): 2.87.0 #26263

merged 41 commits into from
Jul 6, 2023

Conversation

aws-cdk-automation
Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation commented Jul 6, 2023

See CHANGELOG

comcalvi and others added 30 commits June 29, 2023 08:13
…ironment Variables & Enable Kubernetes Secret Volumes (#26126)

Changes the type of `secrets` from `ISecret[]` to `{ [key: string]: ISecret }`. The `key` is the name of the environment variable to expose to the container. 

Also enables the specification of EKS Kubernetes volumes, which our README documented but wasn't actually supported because of a CFN issue that has since been fixed.

Closes #25559.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Checks off some items from #24478 

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
AWS Glue recently changed API and CloudFormation spec to require `Runtime` parameter for Ray jobs.
To address the changes, I am submitting this PR.
This PR is for fixing the issue #25787.

## Reference
CloudFormation doc has been also updated for `Runtime` parameter.
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-jobcommand.html#cfn-glue-job-jobcommand-runtime

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
This PR fixes BucketProps documentation for S3 that is not so good.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
This PR contains implementation of ScheduleTargetInput. While a schedule is the main resource in Amazon EventBridge Scheduler, this PR adds ScheduleTargetInput on which ScheduleTargetBase depends.

Every Schedule has a target that determines what extra information is sent to the target when the schedule is triggered. Also 4 ContextAttributes can be used that will be resolved at trigger-time.

To be able to create sensible unit tests, also the a start is made to add the `Schedule` and the `LambdaInvoke` target as described in the RFC.

Implementation is based on RFC: https://github.com/aws/aws-cdk-rfcs/blob/master/text/0474-event-bridge-scheduler-l2.md

Also added a small fix to 2 of the unit tests of the previous PR for this module.

Advances #23394

----

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

From #24963, unnecessary js and d.ts files which had been built for integration test were pushed. This PR removes these files.

----

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

The [`_createInstances`](https://github.com/aws/aws-cdk/blob/4c9016a264c2fec9c0e0e3fae1d7c4216c964b31/packages/aws-cdk-lib/aws-rds/lib/cluster.ts#L635) function was not providing a default `monitoringRole` value with enabled monitoring.
This fix creates a default role as done by the [legacy code](https://github.com/aws/aws-cdk/blob/4c9016a264c2fec9c0e0e3fae1d7c4216c964b31/packages/aws-cdk-lib/aws-rds/lib/cluster.ts#L1228).

Closes #25941.

----

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

Previously, when we import a SSM parameter by `ssm.StringParameter.fromStringParameterAttributes`, we use `CfnParameter` to get the value. 

```json
  "Parameters": {
    "importsqsstringparamParameter": {
      "Type": "AWS::SSM::Parameter::Value<String>",
      "Default": {
        "Fn::ImportValue": "some-exported-value-holding-the-param-name"
      }
    },
```

However, `Parameters.<Name>.Default` only allows a concrete string value. If it contains e.g. intrinsic functions, we get an error like this from CFn: `Template format error: Every Default member must be a string.`

This PR changes the behavior of `fromStringParameterAttributes` method. Now it uses `CfnDynamicReference` instead of `CfnParameter` if a parameter name contains unresolved tokens.

Since previously the case when `Token.isUnresolved(attrs.parameterName) == true` just resulted in a deployment error, this is not a breaking change.

Closes #17094

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
### Describe the feature
Add Lambda Layer Insights new version to CLOUDWATCH_LAMBDA_INSIGHTS_ARNS (packages/aws-cdk-lib/region-info/build-tools/fact-tables.ts)
Also fixes missing ARNs for version 1.0.178.0 and others

### Use Case
Take advantage of the bug fixes in
- https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Lambda-Insights-extension-versionsx86-64.html
- https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Lambda-Insights-extension-versionsARM.html

### Proposed Solution
Add missing ARNs and adds latest Lambda Layer Version (1.0.229.0)

Closes #26150.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Add new IoT topic rule action to send IoT messages to Step Functions State Machines.

Closes #17698.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Updates alpha modules with custom resources to use NodeJS 18 and v3 of the AWS SDK. Since these CRs are pretty self-contained and safe to update, their handler code and runtime versions can be updated without any breakage for users.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Adds the new `spec2cdk` tool.
This tool is designed to replace the existing `cfn2ts`, but uses `@aws-cdk/aws-service-spec` as a datatsource.
In a first step we make the tool and available, without using it for the build.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
This PR adds test cases for S3 buckets using kms keys.

Some existing tests were also modified.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
The generated examples for QuickSight are too large.

Bump the `cdk-generate-synthetic-examples` package to merge a fix.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
This PR adds the documentation in the readme about `internetFacing` on classic load balancer . 

> [CONTRIBUTING GUIDE]: https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md
> [DESIGN GUIDELINES]: https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md

Closes #<issue number here>.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…or ap-south-2, eu-south-2, me-central-1 (#25572)

Checks off some items from #24477

----

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

This is in response to an internal ticket where someone indicated that their 2 datapoints cross-account Alarm was not working.

AWS Support responded with the above reasoning.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Caused by a check for `constructor.name` which `esbuild` may rename. Replace with a checkable symbol.

Closes #26169.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
This PR adds ExecutionClass for Glue job's L2 construct. This allows you to specify `FLEX` option.

Closes #22224

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
The first iteration of [@aws-cdk/cli-lib-alpha](https://docs.aws.amazon.com/cdk/api/v2/docs/cli-lib-alpha-readme.html) doesn't support the bootstrap command that is mandatory to deploy a new app via CDK.

This PR introduces the bootstrap command for the CLI.

Related: #15851 

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…ambda Construct from a different Construct Library (#26206)

Fix the "is construct" check to ensure one can add a LambdaSubscription to an sns topic using the "addSubscription" method regardless of whether it came from a symlinked construct library or not.

Closes #24788.

----

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

And that maximum allowance right now is 20 (it's actually 21 but we are rounding down for safety).

```bash
repos: 2, size: 24820 bytes
repos: 3, size: 26189 bytes
repos: 4, size: 27558 bytes
repos: 5, size: 28927 bytes
repos: 6, size: 30296 bytes
repos: 7, size: 31665 bytes
repos: 8, size: 33034 bytes
repos: 9, size: 34403 bytes
repos: 10, size: 35772 bytes
repos: 11, size: 37148 bytes
repos: 12, size: 38524 bytes
repos: 13, size: 39900 bytes
repos: 14, size: 41276 bytes
repos: 15, size: 42652 bytes
repos: 16, size: 44028 bytes
repos: 17, size: 45404 bytes
repos: 18, size: 46780 bytes
repos: 19, size: 48156 bytes
repos: 20, size: 49532 bytes
repos: 21, size: 50908 bytes
```

Consistently, each additional repo adds 1369 bytes to the template. Before adding the inline functions, each additional repo was roughly 1200 bytes.

Current rough breakdown of size in the integ test (1 s3 bucket and 2 ecr repos):

25KB

~ 2KB for node version mapping
~ 6KB for auto delete images (4KB is the inline function)
~ 6KB for auto delete objects (4KB is the inline function)

Based on these calculations, it is semi reasonable that the repo allowance has gone from 38 to 21. 


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…ux2-x86_64-standard:5.0` (#26058)

Added support for Amazon Linux 2023 CodeBuild Image:

https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html

`aws/codebuild/amazonlinux2-x86_64-standard:5.0`

i.e you can now reference the latest codebuild image via the `codebuild.LinuxBuildImage.AMAZON_LINUX_2_5` enum rather than having to resolve it manually like `LinuxBuildImage.codeBuildImage('aws/codebuild/amazonlinux2-x86_64-standard:5.0')`

----

*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*
aws-cdk-automation and others added 11 commits July 4, 2023 10:00
Closes #26224

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Update JSDOC for `user` to clarify that this is a `user string` and not restricted to a user name.

Reason for this change: When viewing the documentation from an IDE it is unclear that something other than a user name can be used for example 100:101 ie UID and GID.

I have not fully read the following:

[CONTRIBUTING GUIDE]: https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md
[DESIGN GUIDELINES]: https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md

This commit/pull request only changes JSDoc.

Closes #26230

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
This PR enables the new Deployment Alarms feature in ECS for Service L2s [blog post](https://aws.amazon.com/blogs/containers/automate-rollbacks-for-amazon-ecs-rolling-deployments-with-cloudwatch-alarms/).

This PR contains changes after the first round of revision by the CDK team. 

Continuation of #25346

**Why are so many integration tests impacted by this change? There are 2 reasons:**
1. This PR changes the ECS L2s to set the default configuration for the `CfnService.deploymentConfiguration.alarms` property to:
```
alarmNames: [],
rollback: false,
enable: false,
```
This is necessary, because adding deployment alarms, deploying your CFN stack, then removing the deployment alarms from the CFN template, and deploying again WILL NOT remove the deployment alarms from the service. To remove previously configured deployment alarms, you must explicitly use the configuration shown above. Making this update will cause no interruption to existing ECS services, and does not trigger any update to the service itself during the CFN update.

The ECS UpdateService API is stateful, meaning that if a field is not present in the CloudFormation object, it will be ignored in the update. This was originally implemented due to the problems with desiredCount resetting to bad values after autoscaling changed it, but requires us to set an explicit disableDeploymentAlarms() method to cause the service update to behave correctly.

2. Most ECS integ tests have not been executed in a long time. So, many of the changes are bring the snapshots up to date with the latest integ test format, or lambda layers, etc.


**Detailed list of changes:**
- entire alarm based rollback task into single commit
- resolving merge conflicts
- integ files modules updated to resolve merge conflicts
- regarding merge conflicts issue
- integ files import changes for merge conflicts
- adding this change for PR not to abondended
- chore: refactor createAlarm & remove unnecessary unit tests
- chore: fix api but failing unit tests
- chore: fix validation
- chore: readme changes
- chore: fix integ test, remove unnecessary ec2 test
- chore: refactor enableAlarms for clarity
- test: fix integ test, finally
- docs: update docstrings for new props and methods

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
`0.0.0` is not a valid version according to the scripts in our repo.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Update "Allowing Connections" link to v2 in [SecurityGroup docs](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.SecurityGroup.html).

Before: https://docs.aws.amazon.com/cdk/api/latest/docs/aws-ec2-readme.html#allowing-connections

which doesn't exist in v2 docs (so gets redirected to the v1 docs).

After: https://docs.aws.amazon.com/cdk/api/latest/docs/aws-cdk-lib.aws_ec2-readme.html#allowing-connections

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…enabled generates invalid CFn (#26208)

When both associatePublicIpAddress and privateIpAddress properties are supplied to the EC2 Instance construct, an invalid CloudFormation template is generated due to the presence of both PrivateIpAddess and NetworkInterfaces properties on the AWS::EC2::Instance resource. The generated template leaves the PrivateIpAddress property populated but also includes a NetworkInterfaces property, resulting in a deployment error: "Network interfaces and an instance-level private IP address may not be specified on the same request." (see [the AWS::EC2::Instance docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-privateipaddress))

This erroneous behavior is due to the fact that a network interface is automatically created by the construct when the associatePublicIpAddress is ```true``` while leaving the PrivateIpAddress property on the resource. This PR includes a fix that modifies the behavior of the logic that creates the NetworkInterface to move the private IP to that auto-generated NI, eliminating the top-level resource property.

Closes #26187.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Migrates all of the custom resources within aws-cdk-lib to use Node18 runtime. Also changes all handler code for these CRs to use aws-sdk v3 instead of v2 since Node18 lambda runtime ships sdk v3 in the environment.


----

*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 Jul 6, 2023

@aws-cdk-automation aws-cdk-automation added auto-approve pr/no-squash This PR should be merged instead of squash-merging it labels Jul 6, 2023
@github-actions github-actions bot added the p2 label Jul 6, 2023
@aws-cdk-automation aws-cdk-automation requested a review from a team July 6, 2023 15:40
@aws-cdk-automation
Copy link
Collaborator Author

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildv2Project1C6BFA3F-wQm2hXv2jqQv
  • Commit ID: 599517d
  • 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 Jul 6, 2023

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).

@mergify mergify bot merged commit 9fca790 into v2-release Jul 6, 2023
21 checks passed
@mergify mergify bot deleted the bump/2.87.0 branch July 6, 2023 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auto-approve p2 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.

None yet