Skip to content

Conversation

@aws-cdk-automation
Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation commented Sep 29, 2025

See CHANGELOG

badmintoncryer and others added 13 commits September 25, 2025 13:29
### Issue # (if applicable)

Closes #35427.

### Reason for this change

AWS Cloudfront now supports for configuring IP address type for custom origins.

### Description of changes

- Add `OriginIpAddressType` enum
- Add `ipAddressType` prop to `HttpOriginProps`

### Describe any new or updated permissions being added

None

### Description of how you validated changes

Add both unit and integ tests

### Checklist
- [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md)

----

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

Closes #<issue number here>.

### Reason for this change

Adding new team member's GitHub account

### Description of changes

Added my github username to workflows github-merit-badger config

### Checklist
- [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md)

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
### Reason for this change
https://aws.amazon.com/about-aws/whats-new/2025/09/amazon-ec2-r8gb-instances/

### Description of changes
Add r8gb instance class

### Description of how you validated changes
```console
$ aws ec2 describe-instance-types \
  --filters "Name=instance-type,Values=r8gb.*" \
  --query "InstanceTypes[].InstanceType" \
  --output table
-----------------------
|DescribeInstanceTypes|
+---------------------+
|  r8gb.8xlarge       |
|  r8gb.4xlarge       |
|  r8gb.large         |
|  r8gb.12xlarge      |
|  r8gb.16xlarge      |
|  r8gb.medium        |
|  r8gb.metal-24xl    |
|  r8gb.xlarge        |
|  r8gb.2xlarge       |
|  r8gb.24xlarge      |
+---------------------+
```

### Checklist
- [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md)

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…>` in every L1 (#35470)

For every L1 resource, generate a static factory method called `from<Resource>Arn()`:

```ts
/**
 * Creates a new ITableRef from an ARN
 */
public static fromTableArn(scope: constructs.Construct, id: string, arn: string): ITableRef {
  class Import extends cdk.Resource {
    public tableRef: TableReference;

    /**
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     */
    public constructor(scope: constructs.Construct, id: string, arn: string) {
      super(scope, id, {
        "environmentFromArn": arn
      });

      const variables = new cfn_parse.TemplateString("arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}").parse(arn);
      this.tableRef = {
        "tableName": variables.TableName,
        "tableArn": arn
      };
    }
  }
  return new Import(scope, id, arn);
}
```
as well as a `from<Prop>()` (where `<Prop>` is the single field in the primary identifier):

```ts
/**
 * Creates a new ITableRef from a tableName
 */
public static fromTableName(scope: constructs.Construct, id: string, tableName: string): ITableRef {
  class Import extends cdk.Resource {
    public tableRef: TableReference;

    /**
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     */
    public constructor(scope: constructs.Construct, id: string, tableName: string) {
      const arn = new cfn_parse.TemplateString("arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}").interpolate({
        "Partition": cdk.Stack.of(scope).partition,
        "Region": cdk.Stack.of(scope).region,
        "Account": cdk.Stack.of(scope).account,
        "TableName": tableName
      });
      super(scope, id, {
        "environmentFromArn": arn
      });

      this.tableRef = {
        "tableName": tableName,
        "tableArn": arn
      };
    }
  }
  return new Import(scope, id, tableName);
}
```

**Note**: If the primary identifier for a given resource type has more than one field, we skip the generation of the factory methods for the corresponding class.

`TemplateStringParser` is a new class with two static methods (inverses of each other):
- `parse`: matches a given ARN template with a concrete ARN string, and returns the values of each variable.
- `interpolate`: given an ARN template and a map of variables, returns a string with the variables replaced with their respective values.

----

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

Closes #35199.

### Reason for this change

Adding support for DocumentDB [serverless clusters](https://docs.aws.amazon.com/documentdb/latest/developerguide/docdb-serverless.html)

### Description of changes

Added the new `ServerlessV2ScalingConfiguration` property which maps to the corresponding [CFN property](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-docdb-dbcluster-serverlessv2scalingconfiguration.html).

`instanceType` is no longer a required field, since a serverless cluster has no instance type. This is not a breaking change since loosening constraints does not impact existing users.

The choice of `instanceType` or `serverlessV2ScalingConfiguration` aligns with the AWS console experience of choosing between the two when creating a cluster.

<img width="1125" height="409" alt="Screenshot 2025-09-25 at 14 20 27" src="https://github.com/user-attachments/assets/c7b94897-e1f2-40d3-b785-1204c4a27c6b" />
<img width="1625" height="495" alt="Screenshot 2025-09-25 at 14 20 34" src="https://github.com/user-attachments/assets/9f8eb14a-ef0b-4f52-85d3-09a199113259" />


### Describe any new or updated permissions being added

N/A

### Description of how you validated changes



### Checklist
- [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md)

----

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

**Issue**: #35571

**Reason for this change:**

AWS EKS now supports Amazon Linux 2023 with NVIDIA drivers for ARM64 architecture (`AL2023_ARM_64_NVIDIA`) for managed node groups, but this AMI type is not available in the CDK EKS constructs. Users who want to leverage ARM64-based GPU instances (like Graviton-based GPU instances) with the latest Amazon Linux 2023 optimized for NVIDIA workloads cannot specify this AMI type through CDK, forcing them to use CloudFormation directly or older AMI types.

**Description of changes:**

Add support for Amazon Linux 2023 with NVIDIA drivers on ARM64 architecture for EKS managed node groups:

* **Add `AL2023_ARM_64_NVIDIA` to `NodegroupAmiType` enum**: New AMI type following the established naming convention
* **Include in `gpuAmiTypes` array**: Ensures proper validation logic for GPU instance types  
* **Add comprehensive JSDoc documentation**: Describes the AMI as "Amazon Linux 2023 with NVIDIA drivers (ARM-64)"
* **Maintain backward compatibility**: No breaking changes to existing functionality
* **Follow established patterns**: Consistent with existing AMI type implementations

The implementation enables users to specify ARM64 GPU instances with the latest Amazon Linux 2023 optimized for NVIDIA workloads:

```typescript
new eks.Nodegroup(this, 'GpuNodeGroup', {
  cluster: cluster,
  amiType: eks.NodegroupAmiType.AL2023_ARM_64_NVIDIA,
  instanceTypes: [new ec2.InstanceType('g5g.xlarge')], // ARM64 GPU instance
});
```

**Description of how you validated changes:**
* Unit Tests: All existing EKS tests pass without modifications, confirming no regressions

**Checklist:**
- [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md)
)

### Issue # (if applicable)

Closes #<issue number here>.

### Reason for this change

AWS CDK currently lacks L2 constructs for Serverless ElastiCache and user management features. Customers must work directly with L1 constructs (CfnUser, CfnUserGroup, CfnServerlessCache) which are verbose and lack the convenience, validation, and best practices that L2 constructs provide.   

### Description of changes

This PR implements the L2 constructs for ElastiCache UserGroup and ServerlessCache as an initial step towards complete Serverless ElastiCache support.                                                
                                                                                                                                                                           
**Files added to `aws-elasticache` package:**                                                                                                                              
- `common.ts` - Shared `UserEngine` enum (VALKEY, REDIS)                                                                                                                   
- `user-group.ts` - Complete `UserGroup` L2 construct with import methods, `addUser()` functionality, and engine-specific validation
- `serverless-cache-base.ts` - Engine Enum; Interface and Base class for `ServerlessCache` L2 construct 
- `serverless-cache.ts` - Complete `ServerlessCache` L2 construct with IAM grant methods, comprehensive CloudWatch metrics, networking connections, backup management, usage limits configuration, and robust input validations    
- `user-base.ts` - Base class and interface extended by ElastiCache User constructs with shared properties and import methods
- `password-user.ts`- Complete `PasswordUser` L2 construct with password-based authentication, and proper validations
- `no-password-user.ts`- Complete `NoPasswordUser` L2 construct without password authentication, and proper validations
- `iam-user.ts` - Complete `IamUser` L2 construct with IAM authentication, connect permissions, and validations
- `README.md` - Complete user manual describing how to create and configure a user, user group and a serverless cache, explaining all the important features

### Describe any new or updated permissions being added

NA

### Description of how you validated changes

I implemented unit tests for all the construct files introduced: all the 3 types of `users`, `user-group` and `serverless-cache`.
I also added integration tests.

### Checklist
- [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md)

----

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

### Issue # (if applicable)

N/A

### Reason for this change

B3 propagator currently drops trace state and baggage if it comes after either of the propagators responsible for propagating these informations. It provides no functionality and only blocks baggage in the current state.

This blocks certain AWS X-Ray features from being used effectively without asking users to override the default propagators

### Description of changes

- Removed B3 propagator from default propagators environment variable list

### Describe any new or updated permissions being added

N/A


### Description of how you validated changes

Confirmed with SME [wangzlei@](https://github.com/wangzlei) that B3 is no longer needed, as per owners listed in https://github.com/open-telemetry/opentelemetry-java-contrib/tree/main/aws-xray-propagator

Ran manual tests by deploying applications hosted in both EC2 and EKS with various propagator configurations that exclude B3 using Application Signals on Java and verified all Application Signals behaviour was functional and as expected.

Removed the B3 default propagator in ADOT Java that is applied in non-CDK environments and verified the Application Signals E2E tests passed: https://github.com/aws-observability/aws-otel-java-instrumentation/actions/runs/17587061009/job/49960543385

(Failed jobs are due to misconfiguration of unrelated actions)

### Checklist
- [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md)

----

*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 requested a review from a team as a code owner September 29, 2025 10:06
@aws-cdk-automation aws-cdk-automation added auto-approve pr/no-squash This PR should be merged instead of squash-merging it labels Sep 29, 2025
@github-actions github-actions bot added the p2 label Sep 29, 2025
@aws-cdk-automation aws-cdk-automation requested a review from a team September 29, 2025 10:06
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Sep 29, 2025
@aemada-aws aemada-aws added the pr/do-not-merge This PR should not be merged at this time. label Sep 29, 2025
@aemada-aws aemada-aws removed the pr/do-not-merge This PR should not be merged at this time. label Sep 29, 2025
@mergify mergify bot added the queued label Sep 29, 2025
@mergify
Copy link
Contributor

mergify bot commented Sep 29, 2025

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 removed the queued label Sep 29, 2025
@mergify
Copy link
Contributor

mergify bot commented Sep 29, 2025

This pull request has been removed from the queue for the following reason: pull request dequeued.

Pull request #35613 has been dequeued. The pull request could not be merged. This could be related to an activated branch protection or ruleset rule that prevents us from merging. (details: 2 of 2 required status checks have not succeeded: 1 expected.).

You should look at the reason for the failure and decide if the pull request needs to be fixed or if you want to requeue it.
If you do update this pull request, it will automatically be requeued once the queue conditions match again.
If you think this was a flaky issue instead, you can requeue the pull request, without updating it, by posting a @mergifyio requeue comment.

@mergify
Copy link
Contributor

mergify bot commented Sep 29, 2025

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

@aemada-aws aemada-aws merged commit ff49d50 into v2-release Sep 29, 2025
33 of 35 checks passed
@aemada-aws aemada-aws deleted the bump/2.218.0 branch September 29, 2025 11:24
@github-actions
Copy link
Contributor

Comments on closed issues and PRs are hard for our team to see.
If you need help, please open a new issue that references this one.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 29, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

auto-approve contribution/core This is a PR that came from AWS. 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.

10 participants