diff --git a/.devcontainer.json b/.devcontainer.json deleted file mode 100644 index 79ad867c5028a..0000000000000 --- a/.devcontainer.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "Dev Container Definition - AWS CDK", - "image": "jsii/superchain:1-buster-slim", - "postCreateCommand": "yarn build --skip-test --no-bail --skip-prereqs --skip-compat", - "extensions": [ - "dbaeumer.vscode-eslint@2.1.5" - ], - "remoteUser": "superchain" -} diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000000000..84415387968ea --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,19 @@ +FROM jsii/superchain:1-buster-slim + +USER root + +# Change uid/guid of superchain so it can work with the docker-in-docker feature +RUN groupmod --gid 1000 superchain \ + && usermod --uid 1000 --gid 1000 superchain \ + && chown -R 1000:1000 /home/superchain + +USER superchain + +# Setup oh-my-zsh +RUN sudo apt-get update && export DEBIAN_FRONTEND=noninteractive \ + && sudo apt-get -y install --no-install-recommends zsh vim \ + && sudo rm -rf /var/lib/apt/lists/* \ + && sudo chsh -s $(which zsh) $(whoami) +RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended \ + # Required, otherwise shell is extermly slow due the size of the aws-cdk + && sudo sh -c 'echo "[oh-my-zsh]\n hide-dirty = 1" > /etc/gitconfig' diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000000..98e6bf94be412 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,21 @@ +{ + "name": "aws-cdk", + "build": { + "dockerfile": "Dockerfile" + }, + + "customizations": { + "vscode": { + "extensions": ["dbaeumer.vscode-eslint"] + } + }, + + "postCreateCommand": "yarn install", + "remoteUser": "superchain", + "features": { + "docker-in-docker": { + "version": "latest", + "moby": true + } + } +} diff --git a/.github/workflows/auto-approve.yml b/.github/workflows/auto-approve.yml index 42acd8437bc92..9a7dd7e8d5a0d 100644 --- a/.github/workflows/auto-approve.yml +++ b/.github/workflows/auto-approve.yml @@ -12,6 +12,6 @@ jobs: permissions: pull-requests: write steps: - - uses: hmarr/auto-approve-action@v3.0.0 + - uses: hmarr/auto-approve-action@v3.1.0 with: github-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ec8de994ef2b7..2b0de4e77dccc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,6 +14,8 @@ This document describes how to set up a development environment and submit your let us know if it's not up-to-date (even better, submit a PR with your corrections ;-)). - [Getting Started](#getting-started) + - [Local setup](#setup) + - [Dev Container](#dev-container) - [Pull Requests](#pull-requests) - [Step 1: Find something to work on](#step-1-find-something-to-work-on) - [Step 2: Design (optional)](#step-2-design) @@ -23,7 +25,7 @@ let us know if it's not up-to-date (even better, submit a PR with your correcti - [Breaking Changes](#breaking-changes) - [Documentation](#documentation) - [Rosetta](#rosetta) -- [Tools](#tools) +- [Tools](#tools-advanced) - [Linters](#linters) - [cfn2ts](#cfn2ts) - [scripts/foreach.sh](#scriptsforeachsh) @@ -147,7 +149,14 @@ docker$ exit The `dist/` folder within each module contains the packaged up language artifacts. -## Gitpod (Alternative) +### Dev Container + +The AWS CDK provides a VS Code Dev Container with all dependencies pre-installed. +Please follow the [setup instructions](https://code.visualstudio.com/docs/remote/containers-tutorial) to configure VS Code. + +With VS Code setup, you will be prompted to open the `aws-cdk` repo in a Dev Container, or you can choos "Dev Containers: Reopen in Container" from the VS Code command palette. + +### Gitpod (Alternative) You may also set up your local development environment using [Gitpod](http://gitpod.io) - a service that allows you to spin up an in-browser Visual Studio Code-compatible editor, diff --git a/package.json b/package.json index 2afd80105fb26..87b1e4c572853 100644 --- a/package.json +++ b/package.json @@ -18,17 +18,17 @@ "devDependencies": { "@types/prettier": "2.6.0", "@yarnpkg/lockfile": "^1.1.0", - "cdk-generate-synthetic-examples": "^0.1.36", + "cdk-generate-synthetic-examples": "^0.1.43", "conventional-changelog-cli": "^2.2.2", "fs-extra": "^9.1.0", "graceful-fs": "^4.2.10", "jest-junit": "^13.2.0", - "jsii-diff": "^1.69.0", - "jsii-pacmak": "^1.69.0", - "jsii-reflect": "^1.69.0", - "jsii-rosetta": "^1.69.0", + "jsii-diff": "^1.70.0", + "jsii-pacmak": "^1.70.0", + "jsii-reflect": "^1.70.0", + "jsii-rosetta": "^1.70.0", "lerna": "^4.0.0", - "patch-package": "^6.4.7", + "patch-package": "^6.5.0", "semver": "^6.3.0", "standard-version": "^9.5.0", "typescript": "~3.9.10" diff --git a/packages/@aws-cdk/aws-apigateway/README.md b/packages/@aws-cdk/aws-apigateway/README.md index f485d8a48eab3..552f515d61488 100644 --- a/packages/@aws-cdk/aws-apigateway/README.md +++ b/packages/@aws-cdk/aws-apigateway/README.md @@ -128,13 +128,13 @@ You can use Amazon API Gateway with AWS Step Functions as the backend integratio The `StepFunctionsRestApi` only supports integration with Synchronous Express state machine. The `StepFunctionsRestApi` construct makes this easy by setting up input, output and error mapping. -The construct sets up an API endpoint and maps the `ANY` HTTP method and any calls to the API endpoint starts an express workflow execution for the underlying state machine. +The construct sets up an API endpoint and maps the `ANY` HTTP method and any calls to the API endpoint starts an express workflow execution for the underlying state machine. Invoking the endpoint with any HTTP method (`GET`, `POST`, `PUT`, `DELETE`, ...) in the example below will send the request to the state machine as a new execution. On success, an HTTP code `200` is returned with the execution output as the Response Body. If the execution fails, an HTTP `500` response is returned with the `error` and `cause` from the execution output as the Response Body. If the request is invalid (ex. bad execution input) HTTP code `400` is returned. -The response from the invocation contains only the `output` field from the +The response from the invocation contains only the `output` field from the [StartSyncExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartSyncExecution.html#API_StartSyncExecution_ResponseSyntax) API. In case of failures, the fields `error` and `cause` are returned as part of the response. Other metadata such as billing details, AWS account ID and resource ARNs are not returned in the API response. @@ -154,7 +154,7 @@ const stateMachine: stepfunctions.IStateMachine = new stepfunctions.StateMachine definition: stateMachineDefinition, stateMachineType: stepfunctions.StateMachineType.EXPRESS, }); - + new apigateway.StepFunctionsRestApi(this, 'StepFunctionsRestApi', { deploy: true, stateMachine: stateMachine, @@ -172,7 +172,7 @@ AWS Step Functions will receive the request body in its input as follows: ```json { "body": { - "customerId": 1 + "customerId": 1 }, "path": "/", "querystring": {} @@ -1378,8 +1378,8 @@ api.addGatewayResponse('test-response', { type: apigateway.ResponseType.ACCESS_DENIED, statusCode: '500', responseHeaders: { - 'Access-Control-Allow-Origin': "test.com", - 'test-key': 'test-value' + 'Access-Control-Allow-Origin': 'test.com', + 'test-key': 'test-value', }, templates: { 'application/json': '{ "message": $context.error.messageString, "statusCode": "488", "type": "$context.error.responseType" }' diff --git a/packages/@aws-cdk/aws-apigateway/lib/gateway-response.ts b/packages/@aws-cdk/aws-apigateway/lib/gateway-response.ts index 0ab490a893051..137b2c66395b4 100644 --- a/packages/@aws-cdk/aws-apigateway/lib/gateway-response.ts +++ b/packages/@aws-cdk/aws-apigateway/lib/gateway-response.ts @@ -2,6 +2,7 @@ import { IResource, Resource } from '@aws-cdk/core'; import { Construct } from 'constructs'; import { CfnGatewayResponse, CfnGatewayResponseProps } from './apigateway.generated'; import { IRestApi } from './restapi'; +import { normalizeResponseParameterValue } from './util'; /** * Represents gateway response resource. @@ -88,7 +89,7 @@ export class GatewayResponse extends Resource implements IGatewayResponse { const responseParameters: { [key: string]: string } = {}; for (const [header, value] of Object.entries(responseHeaders)) { - responseParameters[`gatewayresponse.header.${header}`] = value; + responseParameters[`gatewayresponse.header.${header}`] = normalizeResponseParameterValue(value) ; } return responseParameters; } diff --git a/packages/@aws-cdk/aws-apigateway/lib/util.ts b/packages/@aws-cdk/aws-apigateway/lib/util.ts index e5df3afa246af..29513553d3cf8 100644 --- a/packages/@aws-cdk/aws-apigateway/lib/util.ts +++ b/packages/@aws-cdk/aws-apigateway/lib/util.ts @@ -11,6 +11,22 @@ export function validateHttpMethod(method: string, messagePrefix: string = '') { } } +/** + * Response header values need to be enclosed in single quotes. + */ +export function normalizeResponseParameterValue(value: string) { + if (!value) { + return value; + } + + // check if the value is already enclosed in single quotes + if (value.startsWith("'") && value.endsWith("'")) { + return value; + } + + return `'${value}'`; +} + export function parseMethodOptionsPath(originalPath: string): { resourcePath: string, httpMethod: string } { if (!originalPath.startsWith('/')) { throw new Error(`Method options path must start with '/': ${originalPath}`); diff --git a/packages/@aws-cdk/aws-apigateway/test/gateway-response.test.ts b/packages/@aws-cdk/aws-apigateway/test/gateway-response.test.ts index 80093aba04de1..438d824d2e9d5 100644 --- a/packages/@aws-cdk/aws-apigateway/test/gateway-response.test.ts +++ b/packages/@aws-cdk/aws-apigateway/test/gateway-response.test.ts @@ -45,6 +45,7 @@ describe('gateway response', () => { responseHeaders: { 'Access-Control-Allow-Origin': 'test.com', 'test-key': 'test-value', + 'another-test': "'test-value-enclosed-within-single-quotes'", }, }); @@ -54,8 +55,9 @@ describe('gateway response', () => { RestApiId: stack.resolve(api.restApiId), StatusCode: '500', ResponseParameters: { - 'gatewayresponse.header.Access-Control-Allow-Origin': 'test.com', - 'gatewayresponse.header.test-key': 'test-value', + 'gatewayresponse.header.Access-Control-Allow-Origin': "'test.com'", + 'gatewayresponse.header.test-key': "'test-value'", + 'gatewayresponse.header.another-test': "'test-value-enclosed-within-single-quotes'", }, ResponseTemplates: Match.absent(), }); diff --git a/packages/@aws-cdk/aws-ec2/lib/vpc-endpoint.ts b/packages/@aws-cdk/aws-ec2/lib/vpc-endpoint.ts index 50be293f93e78..9b15b17ffc895 100644 --- a/packages/@aws-cdk/aws-ec2/lib/vpc-endpoint.ts +++ b/packages/@aws-cdk/aws-ec2/lib/vpc-endpoint.ts @@ -260,33 +260,22 @@ export class InterfaceVpcEndpointService implements IInterfaceVpcEndpointService export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointService { public static readonly SAGEMAKER_STUDIO = new InterfaceVpcEndpointAwsService('studio', 'aws.sagemaker'); public static readonly SAGEMAKER_NOTEBOOK = new InterfaceVpcEndpointAwsService('notebook', 'aws.sagemaker'); - /** Access Analyzer */ public static readonly ACCESS_ANALYZER = new InterfaceVpcEndpointAwsService('access-analyzer'); - /** AWS Account Management */ public static readonly ACCOUNT_MANAGEMENT = new InterfaceVpcEndpointAwsService('account'); - /** AWS App Mesh */ public static readonly APP_MESH = new InterfaceVpcEndpointAwsService('appmesh-envoy-management'); - /** AWS App Runner */ public static readonly APP_RUNNER = new InterfaceVpcEndpointAwsService('apprunner'); - /** AWS Application Migration Service */ public static readonly APPLICATION_MIGRATION_SERVICE = new InterfaceVpcEndpointAwsService('mgn'); public static readonly ATHENA = new InterfaceVpcEndpointAwsService('athena'); - /** AWS Audit Manager */ public static readonly AUDIT_MANAGER = new InterfaceVpcEndpointAwsService('auditmanager'); public static readonly APPLICATION_AUTOSCALING = new InterfaceVpcEndpointAwsService('application-autoscaling'); public static readonly AUTOSCALING = new InterfaceVpcEndpointAwsService('autoscaling'); public static readonly AUTOSCALING_PLANS = new InterfaceVpcEndpointAwsService('autoscaling-plans'); public static readonly BATCH = new InterfaceVpcEndpointAwsService('batch'); - /** AWS Billing Conductor */ public static readonly BILLING_CONDUCTOR = new InterfaceVpcEndpointAwsService('billingconductor'); - /** Amazon Braket */ public static readonly BRAKET = new InterfaceVpcEndpointAwsService('braket'); - /** AWS Private Certificate Authority */ public static readonly PRIVATE_CERTIFICATE_AUTHORITY = new InterfaceVpcEndpointAwsService('acm-pca'); - /** Amazon Cloud Directory */ public static readonly CLOUD_DIRECTORY = new InterfaceVpcEndpointAwsService('clouddirectory'); public static readonly CLOUDFORMATION = new InterfaceVpcEndpointAwsService('cloudformation'); - /** AWS CloudHSM */ public static readonly CLOUDHSM = new InterfaceVpcEndpointAwsService('cloudhsmv2'); public static readonly CLOUDTRAIL = new InterfaceVpcEndpointAwsService('cloudtrail'); public static readonly CODEARTIFACT_API = new InterfaceVpcEndpointAwsService('codeartifact.api'); @@ -298,24 +287,16 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly CODEGURU_PROFILER = new InterfaceVpcEndpointAwsService('codeguru-profiler'); public static readonly CODEGURU_REVIEWER = new InterfaceVpcEndpointAwsService('codeguru-reviewer'); public static readonly CODEPIPELINE = new InterfaceVpcEndpointAwsService('codepipeline'); - /** AWS CodeStar Connections */ public static readonly CODESTAR_CONNECTIONS = new InterfaceVpcEndpointAwsService('codestar-connections.api'); - /** Amazon Comprehend */ public static readonly COMPREHEND = new InterfaceVpcEndpointAwsService('comprehend'); - /** Amazon Comprehend Medical */ public static readonly COMPREHEND_MEDICAL = new InterfaceVpcEndpointAwsService('comprehendmedical'); public static readonly CONFIG = new InterfaceVpcEndpointAwsService('config'); - /** AWS Data Exchange */ public static readonly DATA_EXCHANGE = new InterfaceVpcEndpointAwsService('dataexchange'); - /** AWS DataSync */ public static readonly DATASYNC = new InterfaceVpcEndpointAwsService('datasync'); - /** Amazon DevOps Guru */ public static readonly DEVOPS_GURU = new InterfaceVpcEndpointAwsService('devops-guru'); - /** Amazon EBS direct APIs */ public static readonly EBS_DIRECT = new InterfaceVpcEndpointAwsService('ebs'); public static readonly EC2 = new InterfaceVpcEndpointAwsService('ec2'); public static readonly EC2_MESSAGES = new InterfaceVpcEndpointAwsService('ec2messages'); - /** EC2 Image Builder */ public static readonly IMAGE_BUILDER = new InterfaceVpcEndpointAwsService('imagebuilder'); public static readonly ECR = new InterfaceVpcEndpointAwsService('ecr.api'); public static readonly ECR_DOCKER = new InterfaceVpcEndpointAwsService('ecr.dkr'); @@ -326,40 +307,25 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly ELASTIC_FILESYSTEM_FIPS = new InterfaceVpcEndpointAwsService('elasticfilesystem-fips'); public static readonly ELASTIC_INFERENCE_RUNTIME = new InterfaceVpcEndpointAwsService('elastic-inference.runtime'); public static readonly ELASTIC_LOAD_BALANCING = new InterfaceVpcEndpointAwsService('elasticloadbalancing'); - /** Amazon ElastiCache */ public static readonly ELASTICACHE = new InterfaceVpcEndpointAwsService('elasticache'); - /** Amazon EMR */ public static readonly EMR = new InterfaceVpcEndpointAwsService('elasticmapreduce'); - /** Amazon EMR on EKS */ public static readonly EMR_EKS = new InterfaceVpcEndpointAwsService('emr-containers'); - /** Amazon EMR Serverless */ public static readonly EMR_SERVERLESS = new InterfaceVpcEndpointAwsService('.emr-serverless'); public static readonly CLOUDWATCH_EVENTS = new InterfaceVpcEndpointAwsService('events'); public static readonly APIGATEWAY = new InterfaceVpcEndpointAwsService('execute-api'); - /** AWS Fault Injection Simulator */ public static readonly FAULT_INJECTION_SIMULATOR = new InterfaceVpcEndpointAwsService('fis'); - /** Amazon Fraud Detector */ public static readonly FRAUD_DETECTOR = new InterfaceVpcEndpointAwsService('frauddetector'); public static readonly CODECOMMIT_GIT = new InterfaceVpcEndpointAwsService('git-codecommit'); public static readonly CODECOMMIT_GIT_FIPS = new InterfaceVpcEndpointAwsService('git-codecommit-fips'); public static readonly GLUE = new InterfaceVpcEndpointAwsService('glue'); - /** AWS Glue DataBrew */ public static readonly GLUE_DATABREW = new InterfaceVpcEndpointAwsService('databrew'); - /** Amazon Managed Grafana */ public static readonly GRAFANA = new InterfaceVpcEndpointAwsService('grafana'); - /** AWS Ground Station */ public static readonly GROUNDSTATION = new InterfaceVpcEndpointAwsService('groundstation'); - /** Amazon HealthLake */ public static readonly HEALTHLAKE = new InterfaceVpcEndpointAwsService('healthlake'); - /** IAM Identity Center */ public static readonly IAM_IDENTITY_CENTER = new InterfaceVpcEndpointAwsService('identitystore'); - /** IAM Roles Anywhere */ public static readonly IAM_ROLES_ANYWHERE = new InterfaceVpcEndpointAwsService('rolesanywhere'); - /** Amazon Inspector */ public static readonly INSPECTOR = new InterfaceVpcEndpointAwsService('inspector2'); - /** AWS IoT Core */ public static readonly IOT_CORE = new InterfaceVpcEndpointAwsService('iot.data'); - /** AWS IoT Greengrass */ public static readonly IOT_GREENGRASS = new InterfaceVpcEndpointAwsService('greengrass'); public static readonly KEYSPACES = new InterfaceVpcEndpointAwsService('cassandra', '', 9142); public static readonly KINESIS_STREAMS = new InterfaceVpcEndpointAwsService('kinesis-streams'); @@ -368,25 +334,21 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly CLOUDWATCH_LOGS = new InterfaceVpcEndpointAwsService('logs'); public static readonly CLOUDWATCH = new InterfaceVpcEndpointAwsService('monitoring'); public static readonly RDS = new InterfaceVpcEndpointAwsService('rds'); - /** AWS RoboMaker */ public static readonly ROBOMAKER = new InterfaceVpcEndpointAwsService('robomaker'); public static readonly RDS_DATA = new InterfaceVpcEndpointAwsService('rds-data'); public static readonly S3 = new InterfaceVpcEndpointAwsService('s3'); - /** Amazon S3 on Outposts */ public static readonly S3_OUTPOSTS = new InterfaceVpcEndpointAwsService('s3-outposts'); public static readonly SAGEMAKER_API = new InterfaceVpcEndpointAwsService('sagemaker.api'); public static readonly SAGEMAKER_RUNTIME = new InterfaceVpcEndpointAwsService('sagemaker.runtime'); public static readonly SAGEMAKER_RUNTIME_FIPS = new InterfaceVpcEndpointAwsService('sagemaker.runtime-fips'); public static readonly SECRETS_MANAGER = new InterfaceVpcEndpointAwsService('secretsmanager'); public static readonly SERVICE_CATALOG = new InterfaceVpcEndpointAwsService('servicecatalog'); - /** Amazon SES */ public static readonly SES = new InterfaceVpcEndpointAwsService('email-smtp'); public static readonly SNS = new InterfaceVpcEndpointAwsService('sns'); public static readonly SQS = new InterfaceVpcEndpointAwsService('sqs'); public static readonly SSM = new InterfaceVpcEndpointAwsService('ssm'); public static readonly SSM_MESSAGES = new InterfaceVpcEndpointAwsService('ssmmessages'); public static readonly STS = new InterfaceVpcEndpointAwsService('sts'); - /** AWS Snow Device Management */ public static readonly SNOW_DEVICE_MANAGEMENT = new InterfaceVpcEndpointAwsService('snow-device-management'); public static readonly TEXTRACT = new InterfaceVpcEndpointAwsService('textract'); public static readonly TEXTRACT_FIPS = new InterfaceVpcEndpointAwsService('textract-fips'); @@ -397,7 +359,6 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly STEP_FUNCTIONS = new InterfaceVpcEndpointAwsService('states'); public static readonly LAMBDA = new InterfaceVpcEndpointAwsService('lambda'); public static readonly TRANSCRIBE = new InterfaceVpcEndpointAwsService('transcribe'); - /** Amazon WorkSpaces */ public static readonly WORKSPACES = new InterfaceVpcEndpointAwsService('workspaces'); public static readonly XRAY = new InterfaceVpcEndpointAwsService('xray'); public static readonly SECURITYHUB = new InterfaceVpcEndpointAwsService('securityhub'); diff --git a/packages/@aws-cdk/aws-ec2/package.json b/packages/@aws-cdk/aws-ec2/package.json index bbbfabab21b85..75764c760ca4e 100644 --- a/packages/@aws-cdk/aws-ec2/package.json +++ b/packages/@aws-cdk/aws-ec2/package.json @@ -259,12 +259,22 @@ "docs-public-apis:@aws-cdk/aws-ec2.GatewayVpcEndpoint.fromGatewayVpcEndpointId", "docs-public-apis:@aws-cdk/aws-ec2.GatewayVpcEndpointAwsService.DYNAMODB", "docs-public-apis:@aws-cdk/aws-ec2.GatewayVpcEndpointAwsService.S3", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.ACCESS_ANALYZER", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.ACCOUNT_MANAGEMENT", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.APIGATEWAY", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.APP_MESH", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.APP_RUNNER", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.APPLICATION_AUTOSCALING", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.APPLICATION_MIGRATION_SERVICE", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.AUDIT_MANAGER", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.AUTOSCALING", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.AUTOSCALING_PLANS", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.ATHENA", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.BILLING_CONDUCTOR", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.BRAKET", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.CLOUD_DIRECTORY", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.CLOUDFORMATION", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.CLOUDHSM", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.CLOUDTRAIL", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.CLOUDWATCH", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.CLOUDWATCH_EVENTS", @@ -280,8 +290,15 @@ "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.CODEGURU_PROFILER", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.CODEGURU_REVIEWER", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.CODEPIPELINE", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.CODESTAR_CONNECTIONS", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.CONFIG", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.COMPREHEND", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.COMPREHEND_MEDICAL", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.DATA_EXCHANGE", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.DATASYNC", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.DEVOPS_GURU", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.BATCH", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.EBS_DIRECT", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.EC2", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.EC2_MESSAGES", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.ECR", @@ -289,15 +306,32 @@ "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.ECS", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.ECS_AGENT", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.ECS_TELEMETRY", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.ELASTICACHE", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.ELASTIC_FILESYSTEM", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.ELASTIC_FILESYSTEM_FIPS", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.ELASTIC_INFERENCE_RUNTIME", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.ELASTIC_LOAD_BALANCING", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.EMR", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.EMR_EKS", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.EMR_SERVERLESS", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.FAULT_INJECTION_SIMULATOR", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.FRAUD_DETECTOR", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.GLUE", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.GLUE_DATABREW", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.GRAFANA", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.GROUNDSTATION", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.KEYSPACES", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.KINESIS_STREAMS", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.KINESIS_FIREHOSE", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.KMS", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.HEALTHLAKE", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.IAM_IDENTITY_CENTER", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.IAM_ROLES_ANYWHERE", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.IMAGE_BUILDER", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.INSPECTOR", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.IOT_CORE", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.IOT_GREENGRASS", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.PRIVATE_CERTIFICATE_AUTHORITY", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.RDS", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.RDS_DATA", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.S3", @@ -319,12 +353,17 @@ "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.STORAGE_GATEWAY", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.REKOGNITION", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.REKOGNITION_FIPS", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.ROBOMAKER", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.S3_OUTPOSTS", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.SES", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.SNOW_DEVICE_MANAGEMENT", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.STEP_FUNCTIONS", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.LAMBDA", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.TRANSCRIBE", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.XRAY", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.SECURITYHUB", "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.EMAIL_SMTP", + "docs-public-apis:@aws-cdk/aws-ec2.InterfaceVpcEndpointAwsService.WORKSPACES", "docs-public-apis:@aws-cdk/aws-ec2.Port.toString", "docs-public-apis:@aws-cdk/aws-ec2.PrivateSubnet.fromPrivateSubnetAttributes", "docs-public-apis:@aws-cdk/aws-ec2.PublicSubnet.fromPublicSubnetAttributes", diff --git a/packages/@aws-cdk/aws-ecs/README.md b/packages/@aws-cdk/aws-ecs/README.md index 42684c1b9a1d4..de9cdb4493892 100644 --- a/packages/@aws-cdk/aws-ecs/README.md +++ b/packages/@aws-cdk/aws-ecs/README.md @@ -26,9 +26,7 @@ runs a service on it: declare const vpc: ec2.Vpc; // Create an ECS cluster -const cluster = new ecs.Cluster(this, 'Cluster', { - vpc, -}); +const cluster = new ecs.Cluster(this, 'Cluster', { vpc }); // Add capacity to it cluster.addCapacity('DefaultAutoScalingGroupCapacity', { @@ -52,10 +50,9 @@ const ecsService = new ecs.Ec2Service(this, 'Service', { For a set of constructs defining common ECS architectural patterns, see the `@aws-cdk/aws-ecs-patterns` package. -## Launch Types: AWS Fargate vs Amazon EC2 +## Launch Types: AWS Fargate vs Amazon EC2 vs AWS ECS Anywhere -There are two sets of constructs in this library; one to run tasks on Amazon EC2 and -one to run tasks on AWS Fargate. +There are three sets of constructs in this library: - Use the `Ec2TaskDefinition` and `Ec2Service` constructs to run tasks on Amazon EC2 instances running in your account. - Use the `FargateTaskDefinition` and `FargateService` constructs to run tasks on @@ -74,7 +71,9 @@ Here are the main differences: Application/Network Load Balancers. Only the AWS log driver is supported. Many host features are not supported such as adding kernel capabilities and mounting host devices/volumes inside the container. -- **AWS ECSAnywhere**: tasks are run and managed by AWS ECS Anywhere on infrastructure owned by the customer. Bridge, Host and None networking modes are supported. Does not support autoscaling, load balancing, cloudmap or attachment of volumes. +- **AWS ECS Anywhere**: tasks are run and managed by AWS ECS Anywhere on infrastructure + owned by the customer. Bridge, Host and None networking modes are supported. Does not + support autoscaling, load balancing, cloudmap or attachment of volumes. For more information on Amazon EC2 vs AWS Fargate, networking and ECS Anywhere see the AWS Documentation: [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html), @@ -170,6 +169,7 @@ const autoScalingGroup = new autoscaling.AutoScalingGroup(this, 'ASG', { To use `LaunchTemplate` with `AsgCapacityProvider`, make sure to specify the `userData` in the `LaunchTemplate`: ```ts +declare const vpc: ec2.Vpc; const launchTemplate = new ec2.LaunchTemplate(this, 'ASG-LaunchTemplate', { instanceType: new ec2.InstanceType('t3.medium'), machineImage: ecs.EcsOptimizedImage.amazonLinux2(), @@ -330,7 +330,7 @@ const container = fargateTaskDefinition.addContainer("WebContainer", { }); ``` -For a `Ec2TaskDefinition`: +For an `Ec2TaskDefinition`: ```ts const ec2TaskDefinition = new ecs.Ec2TaskDefinition(this, 'TaskDef', { @@ -423,7 +423,7 @@ To grant a principal permission to run your `TaskDefinition`, you can use the `T ```ts declare const role: iam.IGrantable; -const taskDef = new ecs.TaskDefinition(stack, 'TaskDef', { +const taskDef = new ecs.TaskDefinition(this, 'TaskDef', { cpu: '512', memoryMiB: '512', compatibility: ecs.Compatibility.EC2_AND_FARGATE, @@ -500,7 +500,7 @@ taskDefinition.addContainer('container', { linuxParameters: new ecs.LinuxParameters(this, 'LinuxParameters', { initProcessEnabled: true, sharedMemorySize: 1024, - maxSwap: 5000, + maxSwap: Size.mebibytes(5000), swappiness: 90, }), }); @@ -889,7 +889,7 @@ taskDefinition.addContainer('TheContainer', { ### splunk Log Driver ```ts -declare const secret: secretsmanager.Secret; +declare const secret: ecs.Secret; // Create a Task Definition for the container to start const taskDefinition = new ecs.Ec2TaskDefinition(this, 'TaskDef'); diff --git a/packages/@aws-cdk/aws-ecs/rosetta/default.ts-fixture b/packages/@aws-cdk/aws-ecs/rosetta/default.ts-fixture index b23fe04b6a016..f2c611523a7d5 100644 --- a/packages/@aws-cdk/aws-ecs/rosetta/default.ts-fixture +++ b/packages/@aws-cdk/aws-ecs/rosetta/default.ts-fixture @@ -1,6 +1,6 @@ // Fixture with packages imported, but nothing else import { Construct } from 'constructs'; -import { SecretValue, Stack } from '@aws-cdk/core'; +import { SecretValue, Stack, Size } from '@aws-cdk/core'; import autoscaling = require('@aws-cdk/aws-autoscaling'); import cloudmap = require('@aws-cdk/aws-servicediscovery'); import ecs = require('@aws-cdk/aws-ecs'); @@ -14,6 +14,7 @@ import s3 = require('@aws-cdk/aws-s3'); import secretsmanager = require('@aws-cdk/aws-secretsmanager'); import ssm = require('@aws-cdk/aws-ssm'); import targets = require('@aws-cdk/aws-events-targets'); +import iam = require('@aws-cdk/aws-iam'); import path = require('path'); class Fixture extends Stack { diff --git a/packages/@aws-cdk/aws-eks/README.md b/packages/@aws-cdk/aws-eks/README.md index 9774d2b3517e6..54e63e5e4bd2c 100644 --- a/packages/@aws-cdk/aws-eks/README.md +++ b/packages/@aws-cdk/aws-eks/README.md @@ -676,14 +676,26 @@ The kubectl handler uses `kubectl`, `helm` and the `aws` CLI in order to interact with the cluster. These are bundled into AWS Lambda layers included in the `@aws-cdk/lambda-layer-awscli` and `@aws-cdk/lambda-layer-kubectl` modules. -You can specify a custom `lambda.LayerVersion` if you wish to use a different -version of these tools. The handler expects the layer to include the following -three executables: +The version of kubectl used must be compatible wtih the Kubernetes version of the cluster. kubectl is supported within one minor version (older or newer) of Kubernetes (see [Kubernetes version skew policy](https://kubernetes.io/releases/version-skew-policy/#kubectl)). Only version 1.20 of kubectl is available in `aws-cdk-lib`. If you need a different version, you will need to use one of the `@aws-cdk/lambda-layer-kubectlvXY` packages. + +```ts +import { KubectlV22Layer } from '@aws-cdk/lambda-layer-kubectl-v22'; + +const cluster = new eks.Cluster(this, 'hello-eks', { + version: eks.KubernetesVersion.V1_22, + kubectlLayer: new KubectlV22Layer(this, 'kubectl'), +}); + +``` + +You can also specify a custom `lambda.LayerVersion` if you wish to use a +different version of these tools, or a version not available in any of the +`@aws-cdk/lambda-layer-kubectlvXY` packages. The handler expects the layer to +include the following two executables: ```text helm/helm kubectl/kubectl -awscli/aws ``` See more information in the diff --git a/packages/@aws-cdk/aws-eks/lib/cluster.ts b/packages/@aws-cdk/aws-eks/lib/cluster.ts index e9128a16e774f..21e7c1475c432 100644 --- a/packages/@aws-cdk/aws-eks/lib/cluster.ts +++ b/packages/@aws-cdk/aws-eks/lib/cluster.ts @@ -844,6 +844,15 @@ export class KubernetesVersion { */ public static readonly V1_21 = KubernetesVersion.of('1.21'); + /** + * Kubernetes version 1.22 + * + * When creating a `Cluster` with this version, you need to also specify the + * `kubectlLayer` property with a `KubectlV22Layer` from + * `@aws-cdk/lambda-layer-kubectl-v22`. + */ + public static readonly V1_22 = KubernetesVersion.of('1.22'); + /** * Custom cluster version * @param version custom version number @@ -1362,6 +1371,10 @@ export class Cluster extends ClusterBase { this.prune = props.prune ?? true; this.vpc = props.vpc || new ec2.Vpc(this, 'DefaultVpc'); + + if (props.version === KubernetesVersion.V1_22 && !props.kubectlLayer) { + Annotations.of(this).addWarning(`You created a cluster with Kubernetes Version ${props.version} without specifying the kubectlLayer property. This may cause failures as the kubectl version provided with aws-cdk-lib is 1.20, which is only guaranteed to be compatible with Kubernetes versions 1.19-1.21. Please provide a kubectlLayer from @aws-cdk/lambda-layer-kubectl-v22.`); + }; this.version = props.version; this.kubectlLambdaRole = props.kubectlLambdaRole ? props.kubectlLambdaRole : undefined; diff --git a/packages/@aws-cdk/aws-eks/package.json b/packages/@aws-cdk/aws-eks/package.json index 8cf02d0c3d7d2..41eb90b2b3600 100644 --- a/packages/@aws-cdk/aws-eks/package.json +++ b/packages/@aws-cdk/aws-eks/package.json @@ -80,6 +80,8 @@ }, "license": "Apache-2.0", "devDependencies": { + "@aws-cdk/lambda-layer-kubectl-v22": "2.0.0", + "aws-cdk-lib": "^2.47.0", "@aws-cdk/assertions": "0.0.0", "@aws-cdk/cdk-build-tools": "0.0.0", "@aws-cdk/integ-runner": "0.0.0", @@ -91,7 +93,7 @@ "@types/sinon": "^9.0.11", "@types/yaml": "1.9.6", "aws-sdk": "^2.1211.0", - "cdk8s": "^2.5.21", + "cdk8s": "^2.5.28", "cdk8s-plus-21": "^2.0.0-beta.12", "jest": "^27.5.1", "sinon": "^9.2.4" diff --git a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip index 69a43596de86f..449089ce0ad4e 100644 Binary files a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip and b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip similarity index 69% rename from packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip rename to packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip index 584e5d46946da..d5624a90d4080 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip and b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip index 399c6579942cf..7fefa07805056 100644 Binary files a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip and b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/aws-cdk-eks-cluster-alb-controller-test.assets.json b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/aws-cdk-eks-cluster-alb-controller-test.assets.json index 82bf4eefd05bd..941d0dccab82f 100644 --- a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/aws-cdk-eks-cluster-alb-controller-test.assets.json +++ b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/aws-cdk-eks-cluster-alb-controller-test.assets.json @@ -1,6 +1,19 @@ { "version": "21.0.0", "files": { + "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30": { + "source": { + "path": "asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, "4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee": { "source": { "path": "asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip", @@ -66,19 +79,6 @@ } } }, - "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed": { - "source": { - "path": "asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "packaging": "file" - }, - "destinations": { - "current_account-current_region": { - "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" - } - } - }, "42973d1d89f4a393a64981f78d088964ba13e63a3aab4478cd74109c77cf9174": { "source": { "path": "asset.42973d1d89f4a393a64981f78d088964ba13e63a3aab4478cd74109c77cf9174", @@ -131,7 +131,7 @@ } } }, - "b426f1001506d25688ef81611f184e1ef5ebf1662e67bb4933b045477f10a56e": { + "a5c54a47681dc263bb296e341ff9500a68cc18f5d368dd66b41793f364332175": { "source": { "path": "awscdkeksclusteralbcontrollertestawscdkawseksKubectlProviderA1AC28D1.nested.template.json", "packaging": "file" @@ -139,12 +139,12 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b426f1001506d25688ef81611f184e1ef5ebf1662e67bb4933b045477f10a56e.json", + "objectKey": "a5c54a47681dc263bb296e341ff9500a68cc18f5d368dd66b41793f364332175.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "a7952c511d282bd028c89eada46178e2c8388a5649c0fc3d3364479c01bca79e": { + "4dddd3bf7eb63d312c638e331fc885e2dbb8d3398b739973a85d928c5178ec45": { "source": { "path": "aws-cdk-eks-cluster-alb-controller-test.template.json", "packaging": "file" @@ -152,7 +152,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "a7952c511d282bd028c89eada46178e2c8388a5649c0fc3d3364479c01bca79e.json", + "objectKey": "4dddd3bf7eb63d312c638e331fc885e2dbb8d3398b739973a85d928c5178ec45.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/aws-cdk-eks-cluster-alb-controller-test.template.json b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/aws-cdk-eks-cluster-alb-controller-test.template.json index a300a12019b54..dbe4a91bbfb3b 100644 --- a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/aws-cdk-eks-cluster-alb-controller-test.template.json +++ b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/aws-cdk-eks-cluster-alb-controller-test.template.json @@ -395,6 +395,19 @@ } } }, + "KubectlLayer600207B5": { + "Type": "AWS::Lambda::LayerVersion", + "Properties": { + "Content": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "Description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "LicenseInfo": "Apache-2.0" + } + }, "ClusterRoleFA261979": { "Type": "AWS::IAM::Role", "Properties": { @@ -595,7 +608,7 @@ ] }, "Config": { - "version": "1.21", + "version": "1.22", "roleArn": { "Fn::GetAtt": [ "ClusterRoleFA261979", @@ -1017,7 +1030,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/b426f1001506d25688ef81611f184e1ef5ebf1662e67bb4933b045477f10a56e.json" + "/a5c54a47681dc263bb296e341ff9500a68cc18f5d368dd66b41793f364332175.json" ] ] }, @@ -1034,6 +1047,9 @@ "Arn" ] }, + "referencetoawscdkeksclusteralbcontrollertestKubectlLayerD13282C5Ref": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkeksclusteralbcontrollertestVpcPrivateSubnet1Subnet7C7DBEE5Ref": { "Ref": "VpcPrivateSubnet1Subnet536B997A" }, diff --git a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/awscdkeksclusteralbcontrollertestawscdkawseksKubectlProviderA1AC28D1.nested.template.json b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/awscdkeksclusteralbcontrollertestawscdkawseksKubectlProviderA1AC28D1.nested.template.json index 44a04b1eb1c36..89aaf2412a6df 100644 --- a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/awscdkeksclusteralbcontrollertestawscdkawseksKubectlProviderA1AC28D1.nested.template.json +++ b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/awscdkeksclusteralbcontrollertestawscdkawseksKubectlProviderA1AC28D1.nested.template.json @@ -107,7 +107,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkeksclusteralbcontrollertestKubectlLayerD13282C5Ref" } ], "MemorySize": 1024, @@ -146,18 +146,6 @@ "Description": "/opt/awscli/aws" } }, - "KubectlLayer600207B5": { - "Type": "AWS::Lambda::LayerVersion", - "Properties": { - "Content": { - "S3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "S3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "Description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, "ProviderframeworkonEventServiceRole9FF04296": { "Type": "AWS::IAM::Role", "Properties": { @@ -311,6 +299,9 @@ "referencetoawscdkeksclusteralbcontrollertestClusterCreationRoleA16C24E9Arn": { "Type": "String" }, + "referencetoawscdkeksclusteralbcontrollertestKubectlLayerD13282C5Ref": { + "Type": "String" + }, "referencetoawscdkeksclusteralbcontrollertestVpcPrivateSubnet1Subnet7C7DBEE5Ref": { "Type": "String" }, diff --git a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/manifest.json index 1609745409463..3330c4b2f77fb 100644 --- a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/manifest.json @@ -23,7 +23,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a7952c511d282bd028c89eada46178e2c8388a5649c0fc3d3364479c01bca79e.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4dddd3bf7eb63d312c638e331fc885e2dbb8d3398b739973a85d928c5178ec45.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -165,6 +165,12 @@ "data": "VpcVPCGWBF912B6E" } ], + "/aws-cdk-eks-cluster-alb-controller-test/KubectlLayer/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "KubectlLayer600207B5" + } + ], "/aws-cdk-eks-cluster-alb-controller-test/Cluster/Role/Resource": [ { "type": "aws:cdk:logicalId", @@ -417,12 +423,6 @@ "data": "AwsCliLayerF44AAF94" } ], - "/aws-cdk-eks-cluster-alb-controller-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "KubectlLayer600207B5" - } - ], "/aws-cdk-eks-cluster-alb-controller-test/@aws-cdk--aws-eks.KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -459,6 +459,12 @@ "data": "referencetoawscdkeksclusteralbcontrollertestClusterCreationRoleA16C24E9Arn" } ], + "/aws-cdk-eks-cluster-alb-controller-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusteralbcontrollertestKubectlLayerD13282C5Ref": [ + { + "type": "aws:cdk:logicalId", + "data": "referencetoawscdkeksclusteralbcontrollertestKubectlLayerD13282C5Ref" + } + ], "/aws-cdk-eks-cluster-alb-controller-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusteralbcontrollertestVpcPrivateSubnet1Subnet7C7DBEE5Ref": [ { "type": "aws:cdk:logicalId", diff --git a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/tree.json b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/tree.json index b346fc3935c10..a9bcc5ec8d686 100644 --- a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/tree.json @@ -9,7 +9,7 @@ "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "aws-cdk-eks-cluster-alb-controller-test": { @@ -651,6 +651,63 @@ "version": "0.0.0" } }, + "KubectlLayer": { + "id": "KubectlLayer", + "path": "aws-cdk-eks-cluster-alb-controller-test/KubectlLayer", + "children": { + "Code": { + "id": "Code", + "path": "aws-cdk-eks-cluster-alb-controller-test/KubectlLayer/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "aws-cdk-eks-cluster-alb-controller-test/KubectlLayer/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "aws-cdk-eks-cluster-alb-controller-test/KubectlLayer/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-eks-cluster-alb-controller-test/KubectlLayer/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", + "aws:cdk:cloudformation:props": { + "content": { + "s3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "s3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "licenseInfo": "Apache-2.0" + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_lambda.CfnLayerVersion", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/lambda-layer-kubectl-v22.KubectlLayer", + "version": "0.0.4" + } + }, "Cluster": { "id": "Cluster", "path": "aws-cdk-eks-cluster-alb-controller-test/Cluster", @@ -896,7 +953,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "KubectlReadyBarrier": { @@ -2414,7 +2471,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } } }, @@ -2501,7 +2558,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "@aws-cdk--aws-eks.KubectlProvider": { @@ -2684,7 +2741,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkeksclusteralbcontrollertestKubectlLayerD13282C5Ref" } ], "memorySize": 1024, @@ -2774,62 +2831,6 @@ "version": "0.0.0" } }, - "KubectlLayer": { - "id": "KubectlLayer", - "path": "aws-cdk-eks-cluster-alb-controller-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer", - "children": { - "Code": { - "id": "Code", - "path": "aws-cdk-eks-cluster-alb-controller-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code", - "children": { - "Stage": { - "id": "Stage", - "path": "aws-cdk-eks-cluster-alb-controller-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/Stage", - "constructInfo": { - "fqn": "@aws-cdk/core.AssetStaging", - "version": "0.0.0" - } - }, - "AssetBucket": { - "id": "AssetBucket", - "path": "aws-cdk-eks-cluster-alb-controller-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/AssetBucket", - "constructInfo": { - "fqn": "@aws-cdk/aws-s3.BucketBase", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-s3-assets.Asset", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "aws-cdk-eks-cluster-alb-controller-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", - "aws:cdk:cloudformation:props": { - "content": { - "s3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "s3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.CfnLayerVersion", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/lambda-layer-kubectl.KubectlLayer", - "version": "0.0.0" - } - }, "Provider": { "id": "Provider", "path": "aws-cdk-eks-cluster-alb-controller-test/@aws-cdk--aws-eks.KubectlProvider/Provider", @@ -3075,6 +3076,14 @@ "version": "0.0.0" } }, + "reference-to-awscdkeksclusteralbcontrollertestKubectlLayerD13282C5Ref": { + "id": "reference-to-awscdkeksclusteralbcontrollertestKubectlLayerD13282C5Ref", + "path": "aws-cdk-eks-cluster-alb-controller-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusteralbcontrollertestKubectlLayerD13282C5Ref", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnParameter", + "version": "0.0.0" + } + }, "reference-to-awscdkeksclusteralbcontrollertestVpcPrivateSubnet1Subnet7C7DBEE5Ref": { "id": "reference-to-awscdkeksclusteralbcontrollertestVpcPrivateSubnet1Subnet7C7DBEE5Ref", "path": "aws-cdk-eks-cluster-alb-controller-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusteralbcontrollertestVpcPrivateSubnet1Subnet7C7DBEE5Ref", @@ -3131,7 +3140,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/b426f1001506d25688ef81611f184e1ef5ebf1662e67bb4933b045477f10a56e.json" + "/a5c54a47681dc263bb296e341ff9500a68cc18f5d368dd66b41793f364332175.json" ] ] }, @@ -3148,6 +3157,9 @@ "Arn" ] }, + "referencetoawscdkeksclusteralbcontrollertestKubectlLayerD13282C5Ref": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkeksclusteralbcontrollertestVpcPrivateSubnet1Subnet7C7DBEE5Ref": { "Ref": "VpcPrivateSubnet1Subnet536B997A" }, @@ -3171,7 +3183,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "awscdkeksclusteralbcontrollertestCluster481F6464-AlbController": { @@ -3990,7 +4002,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "IngressPingerResponse": { @@ -4020,7 +4032,7 @@ "path": "aws-cdk-cluster-alb-controller/DefaultTest/Default", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "DeployAssert": { diff --git a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip index 69a43596de86f..449089ce0ad4e 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip and b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip similarity index 69% rename from packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip rename to packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip index 584e5d46946da..e6e9eca499cde 100644 Binary files a/packages/@aws-cdk/aws-eks/test/alb-controller.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip and b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip index 399c6579942cf..7fefa07805056 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip and b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/aws-cdk-eks-cluster-bottlerocket-ng-test.assets.json b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/aws-cdk-eks-cluster-bottlerocket-ng-test.assets.json index d874c245c3316..a212ee71e685f 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/aws-cdk-eks-cluster-bottlerocket-ng-test.assets.json +++ b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/aws-cdk-eks-cluster-bottlerocket-ng-test.assets.json @@ -1,6 +1,19 @@ { "version": "21.0.0", "files": { + "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30": { + "source": { + "path": "asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, "4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee": { "source": { "path": "asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip", @@ -66,19 +79,6 @@ } } }, - "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed": { - "source": { - "path": "asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "packaging": "file" - }, - "destinations": { - "current_account-current_region": { - "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" - } - } - }, "2ef01d7ffcb016f5d9bd5285ab9741a81e86dc0762cf0deaa1960978f34efec7": { "source": { "path": "awscdkeksclusterbottlerocketngtestawscdkawseksClusterResourceProvider7EC04E81.nested.template.json", @@ -92,7 +92,7 @@ } } }, - "f12e7f30fdd64fc17436ddba7fad8ebd813d137ac1f85dd0700ef9d32f674708": { + "ae4173a4ac8fe0695ecab60f149f3df09560b96e6fff0f6aeb41e84cbf2fbdc8": { "source": { "path": "awscdkeksclusterbottlerocketngtestawscdkawseksKubectlProviderE02BC096.nested.template.json", "packaging": "file" @@ -100,12 +100,12 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f12e7f30fdd64fc17436ddba7fad8ebd813d137ac1f85dd0700ef9d32f674708.json", + "objectKey": "ae4173a4ac8fe0695ecab60f149f3df09560b96e6fff0f6aeb41e84cbf2fbdc8.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "ff532e6fefba6c33a4f97bc1411cdb4b02f2d22e1addf835b1103d93f52d1af5": { + "64829500258edd3d38b1c29152ced52b42816ccc90432190cafe2fa52bb4472f": { "source": { "path": "aws-cdk-eks-cluster-bottlerocket-ng-test.template.json", "packaging": "file" @@ -113,7 +113,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "ff532e6fefba6c33a4f97bc1411cdb4b02f2d22e1addf835b1103d93f52d1af5.json", + "objectKey": "64829500258edd3d38b1c29152ced52b42816ccc90432190cafe2fa52bb4472f.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/aws-cdk-eks-cluster-bottlerocket-ng-test.template.json b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/aws-cdk-eks-cluster-bottlerocket-ng-test.template.json index a8a9466ecf289..23af4cfa2e54c 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/aws-cdk-eks-cluster-bottlerocket-ng-test.template.json +++ b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/aws-cdk-eks-cluster-bottlerocket-ng-test.template.json @@ -427,6 +427,19 @@ } } }, + "KubectlLayer600207B5": { + "Type": "AWS::Lambda::LayerVersion", + "Properties": { + "Content": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "Description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "LicenseInfo": "Apache-2.0" + } + }, "ClusterRoleFA261979": { "Type": "AWS::IAM::Role", "Properties": { @@ -627,7 +640,7 @@ ] }, "Config": { - "version": "1.21", + "version": "1.22", "roleArn": { "Fn::GetAtt": [ "ClusterRoleFA261979", @@ -1014,7 +1027,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/f12e7f30fdd64fc17436ddba7fad8ebd813d137ac1f85dd0700ef9d32f674708.json" + "/ae4173a4ac8fe0695ecab60f149f3df09560b96e6fff0f6aeb41e84cbf2fbdc8.json" ] ] }, @@ -1031,6 +1044,9 @@ "Arn" ] }, + "referencetoawscdkeksclusterbottlerocketngtestKubectlLayer779BB176Ref": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkeksclusterbottlerocketngtestVpcPrivateSubnet1Subnet2EA4083BRef": { "Ref": "VpcPrivateSubnet1Subnet536B997A" }, diff --git a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/awscdkeksclusterbottlerocketngtestawscdkawseksKubectlProviderE02BC096.nested.template.json b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/awscdkeksclusterbottlerocketngtestawscdkawseksKubectlProviderE02BC096.nested.template.json index 40f3400ddcac7..5205efaffcecc 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/awscdkeksclusterbottlerocketngtestawscdkawseksKubectlProviderE02BC096.nested.template.json +++ b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/awscdkeksclusterbottlerocketngtestawscdkawseksKubectlProviderE02BC096.nested.template.json @@ -107,7 +107,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkeksclusterbottlerocketngtestKubectlLayer779BB176Ref" } ], "MemorySize": 1024, @@ -146,18 +146,6 @@ "Description": "/opt/awscli/aws" } }, - "KubectlLayer600207B5": { - "Type": "AWS::Lambda::LayerVersion", - "Properties": { - "Content": { - "S3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "S3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "Description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, "ProviderframeworkonEventServiceRole9FF04296": { "Type": "AWS::IAM::Role", "Properties": { @@ -311,6 +299,9 @@ "referencetoawscdkeksclusterbottlerocketngtestClusterCreationRole94E8BD1EArn": { "Type": "String" }, + "referencetoawscdkeksclusterbottlerocketngtestKubectlLayer779BB176Ref": { + "Type": "String" + }, "referencetoawscdkeksclusterbottlerocketngtestVpcPrivateSubnet1Subnet2EA4083BRef": { "Type": "String" }, diff --git a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/manifest.json index 75b7297e67158..1fee047a35e3d 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/manifest.json @@ -23,7 +23,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ff532e6fefba6c33a4f97bc1411cdb4b02f2d22e1addf835b1103d93f52d1af5.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/64829500258edd3d38b1c29152ced52b42816ccc90432190cafe2fa52bb4472f.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -171,6 +171,12 @@ "data": "VpcVPCGWBF912B6E" } ], + "/aws-cdk-eks-cluster-bottlerocket-ng-test/KubectlLayer/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "KubectlLayer600207B5" + } + ], "/aws-cdk-eks-cluster-bottlerocket-ng-test/Cluster/Role/Resource": [ { "type": "aws:cdk:logicalId", @@ -411,12 +417,6 @@ "data": "AwsCliLayerF44AAF94" } ], - "/aws-cdk-eks-cluster-bottlerocket-ng-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "KubectlLayer600207B5" - } - ], "/aws-cdk-eks-cluster-bottlerocket-ng-test/@aws-cdk--aws-eks.KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -453,6 +453,12 @@ "data": "referencetoawscdkeksclusterbottlerocketngtestClusterCreationRole94E8BD1EArn" } ], + "/aws-cdk-eks-cluster-bottlerocket-ng-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusterbottlerocketngtestKubectlLayer779BB176Ref": [ + { + "type": "aws:cdk:logicalId", + "data": "referencetoawscdkeksclusterbottlerocketngtestKubectlLayer779BB176Ref" + } + ], "/aws-cdk-eks-cluster-bottlerocket-ng-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusterbottlerocketngtestVpcPrivateSubnet1Subnet2EA4083BRef": [ { "type": "aws:cdk:logicalId", diff --git a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/tree.json b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/tree.json index c941bd3b372a9..99c92b675a1e2 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/tree.json @@ -9,7 +9,7 @@ "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "aws-cdk-eks-cluster-bottlerocket-ng-test": { @@ -701,6 +701,63 @@ "version": "0.0.0" } }, + "KubectlLayer": { + "id": "KubectlLayer", + "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/KubectlLayer", + "children": { + "Code": { + "id": "Code", + "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/KubectlLayer/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/KubectlLayer/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/KubectlLayer/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/KubectlLayer/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", + "aws:cdk:cloudformation:props": { + "content": { + "s3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "s3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "licenseInfo": "Apache-2.0" + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_lambda.CfnLayerVersion", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/lambda-layer-kubectl-v22.KubectlV22Layer", + "version": "2.0.0" + } + }, "Cluster": { "id": "Cluster", "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/Cluster", @@ -946,7 +1003,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "KubectlReadyBarrier": { @@ -2457,7 +2514,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } } }, @@ -2544,7 +2601,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "@aws-cdk--aws-eks.KubectlProvider": { @@ -2727,7 +2784,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkeksclusterbottlerocketngtestKubectlLayer779BB176Ref" } ], "memorySize": 1024, @@ -2817,62 +2874,6 @@ "version": "0.0.0" } }, - "KubectlLayer": { - "id": "KubectlLayer", - "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer", - "children": { - "Code": { - "id": "Code", - "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code", - "children": { - "Stage": { - "id": "Stage", - "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/Stage", - "constructInfo": { - "fqn": "@aws-cdk/core.AssetStaging", - "version": "0.0.0" - } - }, - "AssetBucket": { - "id": "AssetBucket", - "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/AssetBucket", - "constructInfo": { - "fqn": "@aws-cdk/aws-s3.BucketBase", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-s3-assets.Asset", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", - "aws:cdk:cloudformation:props": { - "content": { - "s3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "s3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.CfnLayerVersion", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/lambda-layer-kubectl.KubectlLayer", - "version": "0.0.0" - } - }, "Provider": { "id": "Provider", "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/@aws-cdk--aws-eks.KubectlProvider/Provider", @@ -3118,6 +3119,14 @@ "version": "0.0.0" } }, + "reference-to-awscdkeksclusterbottlerocketngtestKubectlLayer779BB176Ref": { + "id": "reference-to-awscdkeksclusterbottlerocketngtestKubectlLayer779BB176Ref", + "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusterbottlerocketngtestKubectlLayer779BB176Ref", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnParameter", + "version": "0.0.0" + } + }, "reference-to-awscdkeksclusterbottlerocketngtestVpcPrivateSubnet1Subnet2EA4083BRef": { "id": "reference-to-awscdkeksclusterbottlerocketngtestVpcPrivateSubnet1Subnet2EA4083BRef", "path": "aws-cdk-eks-cluster-bottlerocket-ng-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusterbottlerocketngtestVpcPrivateSubnet1Subnet2EA4083BRef", @@ -3174,7 +3183,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/f12e7f30fdd64fc17436ddba7fad8ebd813d137ac1f85dd0700ef9d32f674708.json" + "/ae4173a4ac8fe0695ecab60f149f3df09560b96e6fff0f6aeb41e84cbf2fbdc8.json" ] ] }, @@ -3191,6 +3200,9 @@ "Arn" ] }, + "referencetoawscdkeksclusterbottlerocketngtestKubectlLayer779BB176Ref": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkeksclusterbottlerocketngtestVpcPrivateSubnet1Subnet2EA4083BRef": { "Ref": "VpcPrivateSubnet1Subnet536B997A" }, @@ -3214,7 +3226,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } } }, @@ -3236,7 +3248,7 @@ "path": "aws-cdk-eks-cluster-bottlerocket-ng/DefaultTest/Default", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "DeployAssert": { diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip index 69a43596de86f..449089ce0ad4e 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip and b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip similarity index 69% rename from packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip rename to packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip index 584e5d46946da..d5624a90d4080 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-bottlerocket-ng.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip and b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip index 399c6579942cf..7fefa07805056 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip and b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/aws-cdk-eks-handlers-in-vpc-test.assets.json b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/aws-cdk-eks-handlers-in-vpc-test.assets.json index ec3e29507c860..fdf58e9f9fc22 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/aws-cdk-eks-handlers-in-vpc-test.assets.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/aws-cdk-eks-handlers-in-vpc-test.assets.json @@ -1,6 +1,19 @@ { "version": "21.0.0", "files": { + "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30": { + "source": { + "path": "asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, "4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee": { "source": { "path": "asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip", @@ -66,19 +79,6 @@ } } }, - "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed": { - "source": { - "path": "asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "packaging": "file" - }, - "destinations": { - "current_account-current_region": { - "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" - } - } - }, "2347f644f5f9e8a942d782ed91f64b05220d11077c1d65b0cbba23b09030101f": { "source": { "path": "awscdkekshandlersinvpctestawscdkawseksClusterResourceProvider9260AB35.nested.template.json", @@ -92,7 +92,7 @@ } } }, - "31840d1c86a54bc632a48579b951ea5a63c0fce16056b88bf9dbd6aa4fc43f43": { + "869c87faaa9561d8a3c3ae2d5302c692e55ac11187f5f115faaf773a08f28fb4": { "source": { "path": "awscdkekshandlersinvpctestawscdkawseksKubectlProvider72227111.nested.template.json", "packaging": "file" @@ -100,12 +100,12 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "31840d1c86a54bc632a48579b951ea5a63c0fce16056b88bf9dbd6aa4fc43f43.json", + "objectKey": "869c87faaa9561d8a3c3ae2d5302c692e55ac11187f5f115faaf773a08f28fb4.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "38f3a16b889dd49e17cfa54a77eb905feaddeea0e109876a478e4cf20f131f8a": { + "5bfe08a65615f732e2c89090f6d18631fe95bf8b39c1d446e8779d105e084996": { "source": { "path": "aws-cdk-eks-handlers-in-vpc-test.template.json", "packaging": "file" @@ -113,7 +113,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "38f3a16b889dd49e17cfa54a77eb905feaddeea0e109876a478e4cf20f131f8a.json", + "objectKey": "5bfe08a65615f732e2c89090f6d18631fe95bf8b39c1d446e8779d105e084996.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/aws-cdk-eks-handlers-in-vpc-test.template.json b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/aws-cdk-eks-handlers-in-vpc-test.template.json index 8feae54f22389..353b5e33d277a 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/aws-cdk-eks-handlers-in-vpc-test.template.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/aws-cdk-eks-handlers-in-vpc-test.template.json @@ -1,5 +1,18 @@ { "Resources": { + "KubectlLayer600207B5": { + "Type": "AWS::Lambda::LayerVersion", + "Properties": { + "Content": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "Description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "LicenseInfo": "Apache-2.0" + } + }, "EksAllHandlersInVpcStackDefaultVpcBE11D4AE": { "Type": "AWS::EC2::VPC", "Properties": { @@ -643,7 +656,7 @@ ] }, "Config": { - "version": "1.21", + "version": "1.22", "roleArn": { "Fn::GetAtt": [ "EksAllHandlersInVpcStackRoleC36F09F0", @@ -981,7 +994,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/31840d1c86a54bc632a48579b951ea5a63c0fce16056b88bf9dbd6aa4fc43f43.json" + "/869c87faaa9561d8a3c3ae2d5302c692e55ac11187f5f115faaf773a08f28fb4.json" ] ] }, @@ -998,6 +1011,9 @@ "Arn" ] }, + "referencetoawscdkekshandlersinvpctestKubectlLayerAD42127BRef": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkekshandlersinvpctestEksAllHandlersInVpcStackDefaultVpcPrivateSubnet1Subnet9479BAA8Ref": { "Ref": "EksAllHandlersInVpcStackDefaultVpcPrivateSubnet1SubnetE2B86978" }, diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/awscdkekshandlersinvpctestawscdkawseksKubectlProvider72227111.nested.template.json b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/awscdkekshandlersinvpctestawscdkawseksKubectlProvider72227111.nested.template.json index 6a88b36969228..6e99bf25b4b0f 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/awscdkekshandlersinvpctestawscdkawseksKubectlProvider72227111.nested.template.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/awscdkekshandlersinvpctestawscdkawseksKubectlProvider72227111.nested.template.json @@ -107,7 +107,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkekshandlersinvpctestKubectlLayerAD42127BRef" } ], "MemorySize": 1024, @@ -146,18 +146,6 @@ "Description": "/opt/awscli/aws" } }, - "KubectlLayer600207B5": { - "Type": "AWS::Lambda::LayerVersion", - "Properties": { - "Content": { - "S3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "S3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "Description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, "ProviderframeworkonEventServiceRole9FF04296": { "Type": "AWS::IAM::Role", "Properties": { @@ -311,6 +299,9 @@ "referencetoawscdkekshandlersinvpctestEksAllHandlersInVpcStackCreationRoleADAAC7FDArn": { "Type": "String" }, + "referencetoawscdkekshandlersinvpctestKubectlLayerAD42127BRef": { + "Type": "String" + }, "referencetoawscdkekshandlersinvpctestEksAllHandlersInVpcStackDefaultVpcPrivateSubnet1Subnet9479BAA8Ref": { "Type": "String" }, diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/manifest.json index e25e46d4bae15..664e84ee56fd7 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/manifest.json @@ -23,7 +23,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/38f3a16b889dd49e17cfa54a77eb905feaddeea0e109876a478e4cf20f131f8a.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/5bfe08a65615f732e2c89090f6d18631fe95bf8b39c1d446e8779d105e084996.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -39,6 +39,12 @@ "aws-cdk-eks-handlers-in-vpc-test.assets" ], "metadata": { + "/aws-cdk-eks-handlers-in-vpc-test/KubectlLayer/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "KubectlLayer600207B5" + } + ], "/aws-cdk-eks-handlers-in-vpc-test/EksAllHandlersInVpcStack/DefaultVpc/Resource": [ { "type": "aws:cdk:logicalId", @@ -459,12 +465,6 @@ "data": "AwsCliLayerF44AAF94" } ], - "/aws-cdk-eks-handlers-in-vpc-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "KubectlLayer600207B5" - } - ], "/aws-cdk-eks-handlers-in-vpc-test/@aws-cdk--aws-eks.KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -501,6 +501,12 @@ "data": "referencetoawscdkekshandlersinvpctestEksAllHandlersInVpcStackCreationRoleADAAC7FDArn" } ], + "/aws-cdk-eks-handlers-in-vpc-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkekshandlersinvpctestKubectlLayerAD42127BRef": [ + { + "type": "aws:cdk:logicalId", + "data": "referencetoawscdkekshandlersinvpctestKubectlLayerAD42127BRef" + } + ], "/aws-cdk-eks-handlers-in-vpc-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkekshandlersinvpctestEksAllHandlersInVpcStackDefaultVpcPrivateSubnet1Subnet9479BAA8Ref": [ { "type": "aws:cdk:logicalId", diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/tree.json b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/tree.json index 2fef5c71f79d8..de7297ac58654 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/tree.json @@ -9,13 +9,70 @@ "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "aws-cdk-eks-handlers-in-vpc-test": { "id": "aws-cdk-eks-handlers-in-vpc-test", "path": "aws-cdk-eks-handlers-in-vpc-test", "children": { + "KubectlLayer": { + "id": "KubectlLayer", + "path": "aws-cdk-eks-handlers-in-vpc-test/KubectlLayer", + "children": { + "Code": { + "id": "Code", + "path": "aws-cdk-eks-handlers-in-vpc-test/KubectlLayer/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "aws-cdk-eks-handlers-in-vpc-test/KubectlLayer/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "aws-cdk-eks-handlers-in-vpc-test/KubectlLayer/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-eks-handlers-in-vpc-test/KubectlLayer/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", + "aws:cdk:cloudformation:props": { + "content": { + "s3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "s3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "licenseInfo": "Apache-2.0" + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_lambda.CfnLayerVersion", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/lambda-layer-kubectl-v22.KubectlLayer", + "version": "0.0.4" + } + }, "EksAllHandlersInVpcStack": { "id": "EksAllHandlersInVpcStack", "path": "aws-cdk-eks-handlers-in-vpc-test/EksAllHandlersInVpcStack", @@ -952,7 +1009,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "KubectlReadyBarrier": { @@ -2706,7 +2763,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } } }, @@ -2826,7 +2883,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "@aws-cdk--aws-eks.KubectlProvider": { @@ -3009,7 +3066,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkekshandlersinvpctestKubectlLayerAD42127BRef" } ], "memorySize": 1024, @@ -3099,62 +3156,6 @@ "version": "0.0.0" } }, - "KubectlLayer": { - "id": "KubectlLayer", - "path": "aws-cdk-eks-handlers-in-vpc-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer", - "children": { - "Code": { - "id": "Code", - "path": "aws-cdk-eks-handlers-in-vpc-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code", - "children": { - "Stage": { - "id": "Stage", - "path": "aws-cdk-eks-handlers-in-vpc-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/Stage", - "constructInfo": { - "fqn": "@aws-cdk/core.AssetStaging", - "version": "0.0.0" - } - }, - "AssetBucket": { - "id": "AssetBucket", - "path": "aws-cdk-eks-handlers-in-vpc-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/AssetBucket", - "constructInfo": { - "fqn": "@aws-cdk/aws-s3.BucketBase", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-s3-assets.Asset", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "aws-cdk-eks-handlers-in-vpc-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", - "aws:cdk:cloudformation:props": { - "content": { - "s3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "s3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.CfnLayerVersion", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/lambda-layer-kubectl.KubectlLayer", - "version": "0.0.0" - } - }, "Provider": { "id": "Provider", "path": "aws-cdk-eks-handlers-in-vpc-test/@aws-cdk--aws-eks.KubectlProvider/Provider", @@ -3400,6 +3401,14 @@ "version": "0.0.0" } }, + "reference-to-awscdkekshandlersinvpctestKubectlLayerAD42127BRef": { + "id": "reference-to-awscdkekshandlersinvpctestKubectlLayerAD42127BRef", + "path": "aws-cdk-eks-handlers-in-vpc-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkekshandlersinvpctestKubectlLayerAD42127BRef", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnParameter", + "version": "0.0.0" + } + }, "reference-to-awscdkekshandlersinvpctestEksAllHandlersInVpcStackDefaultVpcPrivateSubnet1Subnet9479BAA8Ref": { "id": "reference-to-awscdkekshandlersinvpctestEksAllHandlersInVpcStackDefaultVpcPrivateSubnet1Subnet9479BAA8Ref", "path": "aws-cdk-eks-handlers-in-vpc-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkekshandlersinvpctestEksAllHandlersInVpcStackDefaultVpcPrivateSubnet1Subnet9479BAA8Ref", @@ -3456,7 +3465,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/31840d1c86a54bc632a48579b951ea5a63c0fce16056b88bf9dbd6aa4fc43f43.json" + "/869c87faaa9561d8a3c3ae2d5302c692e55ac11187f5f115faaf773a08f28fb4.json" ] ] }, @@ -3473,6 +3482,9 @@ "Arn" ] }, + "referencetoawscdkekshandlersinvpctestKubectlLayerAD42127BRef": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkekshandlersinvpctestEksAllHandlersInVpcStackDefaultVpcPrivateSubnet1Subnet9479BAA8Ref": { "Ref": "EksAllHandlersInVpcStackDefaultVpcPrivateSubnet1SubnetE2B86978" }, @@ -3496,7 +3508,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } } }, @@ -3518,7 +3530,7 @@ "path": "aws-cdk-eks-handlers-in-vpc/DefaultTest/Default", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "DeployAssert": { diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip index 69a43596de86f..449089ce0ad4e 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip and b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip similarity index 69% rename from packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip rename to packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip index 584e5d46946da..d5624a90d4080 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-cluster-handlers-vpc.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip and b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip index 399c6579942cf..7fefa07805056 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip and b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/aws-cdk-eks-cluster-private-endpoint-test.assets.json b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/aws-cdk-eks-cluster-private-endpoint-test.assets.json index 37b1edb8d7be4..e708e6d627831 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/aws-cdk-eks-cluster-private-endpoint-test.assets.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/aws-cdk-eks-cluster-private-endpoint-test.assets.json @@ -1,6 +1,19 @@ { "version": "21.0.0", "files": { + "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30": { + "source": { + "path": "asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, "4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee": { "source": { "path": "asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip", @@ -66,19 +79,6 @@ } } }, - "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed": { - "source": { - "path": "asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "packaging": "file" - }, - "destinations": { - "current_account-current_region": { - "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" - } - } - }, "fef653bc5de36c60637d4cf988b87a6dd942ce95d8a0cad3d74ad9be87ea2427": { "source": { "path": "awscdkeksclusterprivateendpointtestawscdkawseksClusterResourceProvider67118CB1.nested.template.json", @@ -92,7 +92,7 @@ } } }, - "9b65286869dcff6b1ba25f3d2b7fd74f924d5a2c0e16d19d7166e8648bac9a85": { + "74b7999aa1b2c159b5b7cf71de159597f25fc448f67da4554e8c7b78f038ee52": { "source": { "path": "awscdkeksclusterprivateendpointtestawscdkawseksKubectlProvider421F287E.nested.template.json", "packaging": "file" @@ -100,12 +100,12 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "9b65286869dcff6b1ba25f3d2b7fd74f924d5a2c0e16d19d7166e8648bac9a85.json", + "objectKey": "74b7999aa1b2c159b5b7cf71de159597f25fc448f67da4554e8c7b78f038ee52.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "7f7f5e6c4b0c096226d941fedc23d0b11f4df9d2bb23dbda7d779f1616a7b114": { + "b07a04cdac3f5acebf00d647e59a2cff4e7925b5769a03be6b19dbd56d203d0d": { "source": { "path": "aws-cdk-eks-cluster-private-endpoint-test.template.json", "packaging": "file" @@ -113,7 +113,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "7f7f5e6c4b0c096226d941fedc23d0b11f4df9d2bb23dbda7d779f1616a7b114.json", + "objectKey": "b07a04cdac3f5acebf00d647e59a2cff4e7925b5769a03be6b19dbd56d203d0d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/aws-cdk-eks-cluster-private-endpoint-test.template.json b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/aws-cdk-eks-cluster-private-endpoint-test.template.json index 8cdad381c9075..2aef66fe21b6a 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/aws-cdk-eks-cluster-private-endpoint-test.template.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/aws-cdk-eks-cluster-private-endpoint-test.template.json @@ -427,6 +427,19 @@ } } }, + "KubectlLayer600207B5": { + "Type": "AWS::Lambda::LayerVersion", + "Properties": { + "Content": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "Description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "LicenseInfo": "Apache-2.0" + } + }, "ClusterRoleFA261979": { "Type": "AWS::IAM::Role", "Properties": { @@ -627,7 +640,7 @@ ] }, "Config": { - "version": "1.21", + "version": "1.22", "roleArn": { "Fn::GetAtt": [ "ClusterRoleFA261979", @@ -941,7 +954,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/9b65286869dcff6b1ba25f3d2b7fd74f924d5a2c0e16d19d7166e8648bac9a85.json" + "/74b7999aa1b2c159b5b7cf71de159597f25fc448f67da4554e8c7b78f038ee52.json" ] ] }, @@ -958,6 +971,9 @@ "Arn" ] }, + "referencetoawscdkeksclusterprivateendpointtestKubectlLayer9A0EA6BCRef": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkeksclusterprivateendpointtestVpcPrivateSubnet1Subnet94DAD769Ref": { "Ref": "VpcPrivateSubnet1Subnet536B997A" }, diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/awscdkeksclusterprivateendpointtestawscdkawseksKubectlProvider421F287E.nested.template.json b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/awscdkeksclusterprivateendpointtestawscdkawseksKubectlProvider421F287E.nested.template.json index 2d091730487d4..90a4d7a42cc45 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/awscdkeksclusterprivateendpointtestawscdkawseksKubectlProvider421F287E.nested.template.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/awscdkeksclusterprivateendpointtestawscdkawseksKubectlProvider421F287E.nested.template.json @@ -107,7 +107,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkeksclusterprivateendpointtestKubectlLayer9A0EA6BCRef" } ], "MemorySize": 1024, @@ -146,18 +146,6 @@ "Description": "/opt/awscli/aws" } }, - "KubectlLayer600207B5": { - "Type": "AWS::Lambda::LayerVersion", - "Properties": { - "Content": { - "S3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "S3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "Description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, "ProviderframeworkonEventServiceRole9FF04296": { "Type": "AWS::IAM::Role", "Properties": { @@ -311,6 +299,9 @@ "referencetoawscdkeksclusterprivateendpointtestClusterCreationRole990BAAEAArn": { "Type": "String" }, + "referencetoawscdkeksclusterprivateendpointtestKubectlLayer9A0EA6BCRef": { + "Type": "String" + }, "referencetoawscdkeksclusterprivateendpointtestVpcPrivateSubnet1Subnet94DAD769Ref": { "Type": "String" }, diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/manifest.json index ec5efe640cf0b..d048c1f802460 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/manifest.json @@ -23,7 +23,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7f7f5e6c4b0c096226d941fedc23d0b11f4df9d2bb23dbda7d779f1616a7b114.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b07a04cdac3f5acebf00d647e59a2cff4e7925b5769a03be6b19dbd56d203d0d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -171,6 +171,12 @@ "data": "VpcVPCGWBF912B6E" } ], + "/aws-cdk-eks-cluster-private-endpoint-test/KubectlLayer/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "KubectlLayer600207B5" + } + ], "/aws-cdk-eks-cluster-private-endpoint-test/Cluster/Role/Resource": [ { "type": "aws:cdk:logicalId", @@ -405,12 +411,6 @@ "data": "AwsCliLayerF44AAF94" } ], - "/aws-cdk-eks-cluster-private-endpoint-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "KubectlLayer600207B5" - } - ], "/aws-cdk-eks-cluster-private-endpoint-test/@aws-cdk--aws-eks.KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -447,6 +447,12 @@ "data": "referencetoawscdkeksclusterprivateendpointtestClusterCreationRole990BAAEAArn" } ], + "/aws-cdk-eks-cluster-private-endpoint-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusterprivateendpointtestKubectlLayer9A0EA6BCRef": [ + { + "type": "aws:cdk:logicalId", + "data": "referencetoawscdkeksclusterprivateendpointtestKubectlLayer9A0EA6BCRef" + } + ], "/aws-cdk-eks-cluster-private-endpoint-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusterprivateendpointtestVpcPrivateSubnet1Subnet94DAD769Ref": [ { "type": "aws:cdk:logicalId", diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/tree.json b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/tree.json index 1ce87939e3911..53e209d6db124 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster-private-endpoint.integ.snapshot/tree.json @@ -9,7 +9,7 @@ "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "aws-cdk-eks-cluster-private-endpoint-test": { @@ -701,6 +701,63 @@ "version": "0.0.0" } }, + "KubectlLayer": { + "id": "KubectlLayer", + "path": "aws-cdk-eks-cluster-private-endpoint-test/KubectlLayer", + "children": { + "Code": { + "id": "Code", + "path": "aws-cdk-eks-cluster-private-endpoint-test/KubectlLayer/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "aws-cdk-eks-cluster-private-endpoint-test/KubectlLayer/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "aws-cdk-eks-cluster-private-endpoint-test/KubectlLayer/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-eks-cluster-private-endpoint-test/KubectlLayer/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", + "aws:cdk:cloudformation:props": { + "content": { + "s3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "s3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "licenseInfo": "Apache-2.0" + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_lambda.CfnLayerVersion", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/lambda-layer-kubectl-v22.KubectlLayer", + "version": "0.0.4" + } + }, "Cluster": { "id": "Cluster", "path": "aws-cdk-eks-cluster-private-endpoint-test/Cluster", @@ -946,7 +1003,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "KubectlReadyBarrier": { @@ -2358,7 +2415,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } } }, @@ -2445,7 +2502,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "@aws-cdk--aws-eks.KubectlProvider": { @@ -2628,7 +2685,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkeksclusterprivateendpointtestKubectlLayer9A0EA6BCRef" } ], "memorySize": 1024, @@ -2718,62 +2775,6 @@ "version": "0.0.0" } }, - "KubectlLayer": { - "id": "KubectlLayer", - "path": "aws-cdk-eks-cluster-private-endpoint-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer", - "children": { - "Code": { - "id": "Code", - "path": "aws-cdk-eks-cluster-private-endpoint-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code", - "children": { - "Stage": { - "id": "Stage", - "path": "aws-cdk-eks-cluster-private-endpoint-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/Stage", - "constructInfo": { - "fqn": "@aws-cdk/core.AssetStaging", - "version": "0.0.0" - } - }, - "AssetBucket": { - "id": "AssetBucket", - "path": "aws-cdk-eks-cluster-private-endpoint-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/AssetBucket", - "constructInfo": { - "fqn": "@aws-cdk/aws-s3.BucketBase", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-s3-assets.Asset", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "aws-cdk-eks-cluster-private-endpoint-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", - "aws:cdk:cloudformation:props": { - "content": { - "s3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "s3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.CfnLayerVersion", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/lambda-layer-kubectl.KubectlLayer", - "version": "0.0.0" - } - }, "Provider": { "id": "Provider", "path": "aws-cdk-eks-cluster-private-endpoint-test/@aws-cdk--aws-eks.KubectlProvider/Provider", @@ -3019,6 +3020,14 @@ "version": "0.0.0" } }, + "reference-to-awscdkeksclusterprivateendpointtestKubectlLayer9A0EA6BCRef": { + "id": "reference-to-awscdkeksclusterprivateendpointtestKubectlLayer9A0EA6BCRef", + "path": "aws-cdk-eks-cluster-private-endpoint-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusterprivateendpointtestKubectlLayer9A0EA6BCRef", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnParameter", + "version": "0.0.0" + } + }, "reference-to-awscdkeksclusterprivateendpointtestVpcPrivateSubnet1Subnet94DAD769Ref": { "id": "reference-to-awscdkeksclusterprivateendpointtestVpcPrivateSubnet1Subnet94DAD769Ref", "path": "aws-cdk-eks-cluster-private-endpoint-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusterprivateendpointtestVpcPrivateSubnet1Subnet94DAD769Ref", @@ -3075,7 +3084,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/9b65286869dcff6b1ba25f3d2b7fd74f924d5a2c0e16d19d7166e8648bac9a85.json" + "/74b7999aa1b2c159b5b7cf71de159597f25fc448f67da4554e8c7b78f038ee52.json" ] ] }, @@ -3092,6 +3101,9 @@ "Arn" ] }, + "referencetoawscdkeksclusterprivateendpointtestKubectlLayer9A0EA6BCRef": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkeksclusterprivateendpointtestVpcPrivateSubnet1Subnet94DAD769Ref": { "Ref": "VpcPrivateSubnet1Subnet536B997A" }, @@ -3115,7 +3127,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } } }, @@ -3137,7 +3149,7 @@ "path": "aws-cdk-eks-cluster-private-endpoint/DefaultTest/Default", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "DeployAssert": { diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip index 69a43596de86f..449089ce0ad4e 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip and b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip new file mode 100644 index 0000000000000..e6e9eca499cde Binary files /dev/null and b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip index 399c6579942cf..7fefa07805056 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip and b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip deleted file mode 100644 index 584e5d46946da..0000000000000 Binary files a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip and /dev/null differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/aws-cdk-eks-cluster-test.assets.json b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/aws-cdk-eks-cluster-test.assets.json index 5c99e542e056c..30f07617c7726 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/aws-cdk-eks-cluster-test.assets.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/aws-cdk-eks-cluster-test.assets.json @@ -1,6 +1,20 @@ { "version": "21.0.0", "files": { + "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30": { + "source": { + "path": "asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "packaging": "file" + }, + "destinations": { + "current_account-us-east-1": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", + "objectKey": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "region": "us-east-1", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" + } + } + }, "4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee": { "source": { "path": "asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip", @@ -71,20 +85,6 @@ } } }, - "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed": { - "source": { - "path": "asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "packaging": "file" - }, - "destinations": { - "current_account-us-east-1": { - "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "region": "us-east-1", - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" - } - } - }, "d65fbdc11b108e0386ed8577c454d4544f6d4e7960f84a0d2e211478d6324dbf": { "source": { "path": "asset.d65fbdc11b108e0386ed8577c454d4544f6d4e7960f84a0d2e211478d6324dbf", @@ -141,7 +141,7 @@ } } }, - "3fdb2c0b0d7d62e5f8f399cea696517aec0629efdc9a27714f25c631c241b313": { + "0c25fb8e7ac319cc9738daadd498a271c2d5aca9b5fb3016f0842e9a36df4c25": { "source": { "path": "awscdkeksclustertestawscdkawseksKubectlProviderE05943BF.nested.template.json", "packaging": "file" @@ -149,13 +149,13 @@ "destinations": { "current_account-us-east-1": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "3fdb2c0b0d7d62e5f8f399cea696517aec0629efdc9a27714f25c631c241b313.json", + "objectKey": "0c25fb8e7ac319cc9738daadd498a271c2d5aca9b5fb3016f0842e9a36df4c25.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } } }, - "a95bdf2a7c979f2d47f3deb5f22bb7d7c64ac5d7074620faec6b7512b3d9a4db": { + "d239410685309e285d885c3b5cf9ff272e8dce6e34938936d4c26aa53593a509": { "source": { "path": "aws-cdk-eks-cluster-test.template.json", "packaging": "file" @@ -163,7 +163,7 @@ "destinations": { "current_account-us-east-1": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "a95bdf2a7c979f2d47f3deb5f22bb7d7c64ac5d7074620faec6b7512b3d9a4db.json", + "objectKey": "d239410685309e285d885c3b5cf9ff272e8dce6e34938936d4c26aa53593a509.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/aws-cdk-eks-cluster-test.template.json b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/aws-cdk-eks-cluster-test.template.json index e8868b8a659a4..302d59459a904 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/aws-cdk-eks-cluster-test.template.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/aws-cdk-eks-cluster-test.template.json @@ -454,6 +454,19 @@ } } }, + "KubectlLayer600207B5": { + "Type": "AWS::Lambda::LayerVersion", + "Properties": { + "Content": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1" + }, + "S3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "Description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "LicenseInfo": "Apache-2.0" + } + }, "ClusterRoleFA261979": { "Type": "AWS::IAM::Role", "Properties": { @@ -757,7 +770,7 @@ ] }, "Config": { - "version": "1.21", + "version": "1.22", "roleArn": { "Fn::GetAtt": [ "ClusterRoleFA261979", @@ -1448,7 +1461,7 @@ "Type": "AWS::AutoScaling::LaunchConfiguration", "Properties": { "ImageId": { - "Ref": "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "Ref": "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" }, "InstanceType": "t2.medium", "IamInstanceProfile": { @@ -1760,7 +1773,7 @@ "Type": "AWS::AutoScaling::LaunchConfiguration", "Properties": { "ImageId": { - "Ref": "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2arm64recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "Ref": "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2arm64recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" }, "InstanceType": "m6g.medium", "IamInstanceProfile": { @@ -2072,7 +2085,7 @@ "Type": "AWS::AutoScaling::LaunchConfiguration", "Properties": { "ImageId": { - "Ref": "SsmParameterValueawsservicebottlerocketawsk8s121x8664latestimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "Ref": "SsmParameterValueawsservicebottlerocketawsk8s122x8664latestimageidC96584B6F00A464EAD1953AFF4B05118Parameter" }, "InstanceType": "t3.small", "IamInstanceProfile": { @@ -2384,7 +2397,7 @@ "Type": "AWS::AutoScaling::LaunchConfiguration", "Properties": { "ImageId": { - "Ref": "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "Ref": "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" }, "InstanceType": "t3.large", "IamInstanceProfile": { @@ -3395,7 +3408,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1" }, - "/3fdb2c0b0d7d62e5f8f399cea696517aec0629efdc9a27714f25c631c241b313.json" + "/0c25fb8e7ac319cc9738daadd498a271c2d5aca9b5fb3016f0842e9a36df4c25.json" ] ] }, @@ -3412,6 +3425,9 @@ "Arn" ] }, + "referencetoawscdkeksclustertestKubectlLayerD8FA674ERef": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkeksclustertestVpcPrivateSubnet1Subnet32A4EC2ARef": { "Ref": "VpcPrivateSubnet1Subnet536B997A" }, @@ -3689,17 +3705,21 @@ } }, "Parameters": { - "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter": { + "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter": { "Type": "AWS::SSM::Parameter::Value", - "Default": "/aws/service/eks/optimized-ami/1.21/amazon-linux-2/recommended/image_id" + "Default": "/aws/service/eks/optimized-ami/1.22/amazon-linux-2/recommended/image_id" }, - "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2arm64recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter": { + "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2arm64recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter": { "Type": "AWS::SSM::Parameter::Value", - "Default": "/aws/service/eks/optimized-ami/1.21/amazon-linux-2-arm64/recommended/image_id" + "Default": "/aws/service/eks/optimized-ami/1.22/amazon-linux-2-arm64/recommended/image_id" }, - "SsmParameterValueawsservicebottlerocketawsk8s121x8664latestimageidC96584B6F00A464EAD1953AFF4B05118Parameter": { + "SsmParameterValueawsservicebottlerocketawsk8s122x8664latestimageidC96584B6F00A464EAD1953AFF4B05118Parameter": { "Type": "AWS::SSM::Parameter::Value", - "Default": "/aws/service/bottlerocket/aws-k8s-1.21/x86_64/latest/image_id" + "Default": "/aws/service/bottlerocket/aws-k8s-1.22/x86_64/latest/image_id" + }, + "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/aws/service/eks/optimized-ami/1.21/amazon-linux-2/recommended/image_id" }, "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/awscdkeksclustertestawscdkawseksKubectlProviderE05943BF.nested.template.json b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/awscdkeksclustertestawscdkawseksKubectlProviderE05943BF.nested.template.json index bf89b7388d208..7fa575ccbb56a 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/awscdkeksclustertestawscdkawseksKubectlProviderE05943BF.nested.template.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/awscdkeksclustertestawscdkawseksKubectlProviderE05943BF.nested.template.json @@ -140,7 +140,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkeksclustertestKubectlLayerD8FA674ERef" } ], "MemorySize": 1024, @@ -179,18 +179,6 @@ "Description": "/opt/awscli/aws" } }, - "KubectlLayer600207B5": { - "Type": "AWS::Lambda::LayerVersion", - "Properties": { - "Content": { - "S3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1" - }, - "S3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "Description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, "ProviderframeworkonEventServiceRole9FF04296": { "Type": "AWS::IAM::Role", "Properties": { @@ -344,6 +332,9 @@ "referencetoawscdkeksclustertestClusterCreationRole95F44854Arn": { "Type": "String" }, + "referencetoawscdkeksclustertestKubectlLayerD8FA674ERef": { + "Type": "String" + }, "referencetoawscdkeksclustertestVpcPrivateSubnet1Subnet32A4EC2ARef": { "Type": "String" }, diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/integ.json b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/integ.json index f45f7872201ae..843e7b89482b8 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/integ.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/integ.json @@ -5,6 +5,13 @@ "stacks": [ "aws-cdk-eks-cluster-test" ], + "cdkCommandOptions": { + "deploy": { + "args": { + "rollback": true + } + } + }, "assertionStack": "aws-cdk-eks-cluster/DefaultTest/DeployAssert", "assertionStackName": "awscdkeksclusterDefaultTestDeployAssertFBF4B356" } diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/manifest.json index 92d7062fa9581..fdd1441add545 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/manifest.json @@ -23,7 +23,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/a95bdf2a7c979f2d47f3deb5f22bb7d7c64ac5d7074620faec6b7512b3d9a4db.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/d239410685309e285d885c3b5cf9ff272e8dce6e34938936d4c26aa53593a509.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -177,6 +177,12 @@ "data": "VpcVPCGWBF912B6E" } ], + "/aws-cdk-eks-cluster-test/KubectlLayer/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "KubectlLayer600207B5" + } + ], "/aws-cdk-eks-cluster-test/Cluster/Role/Resource": [ { "type": "aws:cdk:logicalId", @@ -380,7 +386,10 @@ "/aws-cdk-eks-cluster-test/Cluster/Nodes/LaunchConfig": [ { "type": "aws:cdk:logicalId", - "data": "ClusterNodesLaunchConfig7C420A27" + "data": "ClusterNodesLaunchConfig7C420A27", + "trace": [ + "!!DESTRUCTIVE_CHANGES: WILL_REPLACE" + ] } ], "/aws-cdk-eks-cluster-test/Cluster/Nodes/ASG": [ @@ -466,7 +475,10 @@ "/aws-cdk-eks-cluster-test/Cluster/NodesArm/LaunchConfig": [ { "type": "aws:cdk:logicalId", - "data": "ClusterNodesArmLaunchConfigAAF61344" + "data": "ClusterNodesArmLaunchConfigAAF61344", + "trace": [ + "!!DESTRUCTIVE_CHANGES: WILL_REPLACE" + ] } ], "/aws-cdk-eks-cluster-test/Cluster/NodesArm/ASG": [ @@ -552,7 +564,10 @@ "/aws-cdk-eks-cluster-test/Cluster/BottlerocketNodes/LaunchConfig": [ { "type": "aws:cdk:logicalId", - "data": "ClusterBottlerocketNodesLaunchConfig76D7BEBE" + "data": "ClusterBottlerocketNodesLaunchConfig76D7BEBE", + "trace": [ + "!!DESTRUCTIVE_CHANGES: WILL_REPLACE" + ] } ], "/aws-cdk-eks-cluster-test/Cluster/BottlerocketNodes/ASG": [ @@ -638,7 +653,10 @@ "/aws-cdk-eks-cluster-test/Cluster/spot/LaunchConfig": [ { "type": "aws:cdk:logicalId", - "data": "ClusterspotLaunchConfigCC19F2E6" + "data": "ClusterspotLaunchConfigCC19F2E6", + "trace": [ + "!!DESTRUCTIVE_CHANGES: WILL_REPLACE" + ] } ], "/aws-cdk-eks-cluster-test/Cluster/spot/ASG": [ @@ -653,12 +671,6 @@ "data": "Clusterchartspotinterrupthandler79E2D768" } ], - "/aws-cdk-eks-cluster-test/Cluster/Nodegroupextra-ng": [ - { - "type": "aws:cdk:warning", - "data": "\"instanceType\" is deprecated and will be removed in the next major version. please use \"instanceTypes\" instead" - } - ], "/aws-cdk-eks-cluster-test/Cluster/Nodegroupextra-ng/NodeGroupRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -683,12 +695,6 @@ "data": "ClusterNodegroupextrangspotB327AE6B" } ], - "/aws-cdk-eks-cluster-test/Cluster/Nodegroupextra-ng-arm": [ - { - "type": "aws:cdk:warning", - "data": "\"instanceType\" is deprecated and will be removed in the next major version. please use \"instanceTypes\" instead" - } - ], "/aws-cdk-eks-cluster-test/Cluster/Nodegroupextra-ng-arm/NodeGroupRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -701,12 +707,6 @@ "data": "ClusterNodegroupextrangarm7773987A" } ], - "/aws-cdk-eks-cluster-test/Cluster/Nodegroupextra-ng-arm3": [ - { - "type": "aws:cdk:warning", - "data": "\"instanceType\" is deprecated and will be removed in the next major version. please use \"instanceTypes\" instead" - } - ], "/aws-cdk-eks-cluster-test/Cluster/Nodegroupextra-ng-arm3/NodeGroupRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -959,12 +959,6 @@ "data": "AwsCliLayerF44AAF94" } ], - "/aws-cdk-eks-cluster-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "KubectlLayer600207B5" - } - ], "/aws-cdk-eks-cluster-test/@aws-cdk--aws-eks.KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -1001,6 +995,12 @@ "data": "referencetoawscdkeksclustertestClusterCreationRole95F44854Arn" } ], + "/aws-cdk-eks-cluster-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclustertestKubectlLayerD8FA674ERef": [ + { + "type": "aws:cdk:logicalId", + "data": "referencetoawscdkeksclustertestKubectlLayerD8FA674ERef" + } + ], "/aws-cdk-eks-cluster-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclustertestVpcPrivateSubnet1Subnet32A4EC2ARef": [ { "type": "aws:cdk:logicalId", @@ -1025,22 +1025,28 @@ "data": "awscdkawseksKubectlProviderNestedStackawscdkawseksKubectlProviderNestedStackResourceA7AEBA6B" } ], - "/aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": [ + "/aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": [ { "type": "aws:cdk:logicalId", - "data": "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "data": "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + } + ], + "/aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": [ + { + "type": "aws:cdk:logicalId", + "data": "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2arm64recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" } ], - "/aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": [ + "/aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.22--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": [ { "type": "aws:cdk:logicalId", - "data": "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2arm64recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "data": "SsmParameterValueawsservicebottlerocketawsk8s122x8664latestimageidC96584B6F00A464EAD1953AFF4B05118Parameter" } ], - "/aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.21--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": [ + "/aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": [ { "type": "aws:cdk:logicalId", - "data": "SsmParameterValueawsservicebottlerocketawsk8s121x8664latestimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "data": "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" } ], "/aws-cdk-eks-cluster-test/LaunchTemplate": [ diff --git a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/tree.json b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/tree.json index cef020cea323e..7b54040c5b76a 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks/test/eks-cluster.integ.snapshot/tree.json @@ -9,7 +9,7 @@ "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "aws-cdk-eks-cluster-test": { @@ -744,6 +744,63 @@ "version": "0.0.0" } }, + "KubectlLayer": { + "id": "KubectlLayer", + "path": "aws-cdk-eks-cluster-test/KubectlLayer", + "children": { + "Code": { + "id": "Code", + "path": "aws-cdk-eks-cluster-test/KubectlLayer/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "aws-cdk-eks-cluster-test/KubectlLayer/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "aws-cdk-eks-cluster-test/KubectlLayer/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-eks-cluster-test/KubectlLayer/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", + "aws:cdk:cloudformation:props": { + "content": { + "s3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1" + }, + "s3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "licenseInfo": "Apache-2.0" + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_lambda.CfnLayerVersion", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/lambda-layer-kubectl-v22.KubectlV22Layer", + "version": "2.0.0" + } + }, "Cluster": { "id": "Cluster", "path": "aws-cdk-eks-cluster-test/Cluster", @@ -1124,7 +1181,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "KubectlReadyBarrier": { @@ -1820,7 +1877,7 @@ "aws:cdk:cloudformation:type": "AWS::AutoScaling::LaunchConfiguration", "aws:cdk:cloudformation:props": { "imageId": { - "Ref": "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "Ref": "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" }, "instanceType": "t2.medium", "iamInstanceProfile": { @@ -2234,7 +2291,7 @@ "aws:cdk:cloudformation:type": "AWS::AutoScaling::LaunchConfiguration", "aws:cdk:cloudformation:props": { "imageId": { - "Ref": "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2arm64recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "Ref": "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2arm64recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" }, "instanceType": "m6g.medium", "iamInstanceProfile": { @@ -2648,7 +2705,7 @@ "aws:cdk:cloudformation:type": "AWS::AutoScaling::LaunchConfiguration", "aws:cdk:cloudformation:props": { "imageId": { - "Ref": "SsmParameterValueawsservicebottlerocketawsk8s121x8664latestimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "Ref": "SsmParameterValueawsservicebottlerocketawsk8s122x8664latestimageidC96584B6F00A464EAD1953AFF4B05118Parameter" }, "instanceType": "t3.small", "iamInstanceProfile": { @@ -3062,7 +3119,7 @@ "aws:cdk:cloudformation:type": "AWS::AutoScaling::LaunchConfiguration", "aws:cdk:cloudformation:props": { "imageId": { - "Ref": "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "Ref": "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" }, "instanceType": "t3.large", "iamInstanceProfile": { @@ -5340,7 +5397,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } } }, @@ -5415,7 +5472,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "@aws-cdk--aws-eks.KubectlProvider": { @@ -5631,7 +5688,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkeksclustertestKubectlLayerD8FA674ERef" } ], "memorySize": 1024, @@ -5721,62 +5778,6 @@ "version": "0.0.0" } }, - "KubectlLayer": { - "id": "KubectlLayer", - "path": "aws-cdk-eks-cluster-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer", - "children": { - "Code": { - "id": "Code", - "path": "aws-cdk-eks-cluster-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code", - "children": { - "Stage": { - "id": "Stage", - "path": "aws-cdk-eks-cluster-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/Stage", - "constructInfo": { - "fqn": "@aws-cdk/core.AssetStaging", - "version": "0.0.0" - } - }, - "AssetBucket": { - "id": "AssetBucket", - "path": "aws-cdk-eks-cluster-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/AssetBucket", - "constructInfo": { - "fqn": "@aws-cdk/aws-s3.BucketBase", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-s3-assets.Asset", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "aws-cdk-eks-cluster-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", - "aws:cdk:cloudformation:props": { - "content": { - "s3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1" - }, - "s3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.CfnLayerVersion", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/lambda-layer-kubectl.KubectlLayer", - "version": "0.0.0" - } - }, "Provider": { "id": "Provider", "path": "aws-cdk-eks-cluster-test/@aws-cdk--aws-eks.KubectlProvider/Provider", @@ -6022,6 +6023,14 @@ "version": "0.0.0" } }, + "reference-to-awscdkeksclustertestKubectlLayerD8FA674ERef": { + "id": "reference-to-awscdkeksclustertestKubectlLayerD8FA674ERef", + "path": "aws-cdk-eks-cluster-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclustertestKubectlLayerD8FA674ERef", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnParameter", + "version": "0.0.0" + } + }, "reference-to-awscdkeksclustertestVpcPrivateSubnet1Subnet32A4EC2ARef": { "id": "reference-to-awscdkeksclustertestVpcPrivateSubnet1Subnet32A4EC2ARef", "path": "aws-cdk-eks-cluster-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclustertestVpcPrivateSubnet1Subnet32A4EC2ARef", @@ -6074,7 +6083,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1" }, - "/3fdb2c0b0d7d62e5f8f399cea696517aec0629efdc9a27714f25c631c241b313.json" + "/0c25fb8e7ac319cc9738daadd498a271c2d5aca9b5fb3016f0842e9a36df4c25.json" ] ] }, @@ -6091,6 +6100,9 @@ "Arn" ] }, + "referencetoawscdkeksclustertestKubectlLayerD8FA674ERef": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkeksclustertestVpcPrivateSubnet1Subnet32A4EC2ARef": { "Ref": "VpcPrivateSubnet1Subnet536B997A" }, @@ -6114,52 +6126,68 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, - "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": { - "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", - "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", + "SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": { + "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", + "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", "constructInfo": { "fqn": "@aws-cdk/core.CfnParameter", "version": "0.0.0" } }, - "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118": { - "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", - "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", + "SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118": { + "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", + "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": { + "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", + "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnParameter", + "version": "0.0.0" + } + }, + "SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118": { + "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", + "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", "constructInfo": { "fqn": "@aws-cdk/core.Resource", "version": "0.0.0" } }, - "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": { - "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", - "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", + "SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.22--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": { + "id": "SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.22--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", + "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.22--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", "constructInfo": { "fqn": "@aws-cdk/core.CfnParameter", "version": "0.0.0" } }, - "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118": { - "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", - "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", + "SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.22--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118": { + "id": "SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.22--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", + "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.22--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", "constructInfo": { "fqn": "@aws-cdk/core.Resource", "version": "0.0.0" } }, - "SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.21--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": { - "id": "SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.21--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", - "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.21--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", + "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": { + "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", + "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", "constructInfo": { "fqn": "@aws-cdk/core.CfnParameter", "version": "0.0.0" } }, - "SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.21--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118": { - "id": "SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.21--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", - "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.21--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", + "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118": { + "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", + "path": "aws-cdk-eks-cluster-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", "constructInfo": { "fqn": "@aws-cdk/core.Resource", "version": "0.0.0" @@ -6386,7 +6414,7 @@ "path": "aws-cdk-eks-cluster/DefaultTest/Default", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "DeployAssert": { diff --git a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip index 69a43596de86f..449089ce0ad4e 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip and b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip new file mode 100644 index 0000000000000..d5624a90d4080 Binary files /dev/null and b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip index 399c6579942cf..7fefa07805056 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip and b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip deleted file mode 100644 index 584e5d46946da..0000000000000 Binary files a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip and /dev/null differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/aws-cdk-eks-helm-test.assets.json b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/aws-cdk-eks-helm-test.assets.json index c2397f887ee91..b760f9fe76ed8 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/aws-cdk-eks-helm-test.assets.json +++ b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/aws-cdk-eks-helm-test.assets.json @@ -1,6 +1,19 @@ { "version": "21.0.0", "files": { + "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30": { + "source": { + "path": "asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, "4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee": { "source": { "path": "asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip", @@ -66,19 +79,6 @@ } } }, - "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed": { - "source": { - "path": "asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "packaging": "file" - }, - "destinations": { - "current_account-current_region": { - "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" - } - } - }, "d65fbdc11b108e0386ed8577c454d4544f6d4e7960f84a0d2e211478d6324dbf": { "source": { "path": "asset.d65fbdc11b108e0386ed8577c454d4544f6d4e7960f84a0d2e211478d6324dbf", @@ -105,7 +105,7 @@ } } }, - "4ab517122c887f7124ebdd88e39d50dbaf69e6e3c798e5d7fb7ce522213c470f": { + "258128d6e57344b7a70cc57169438181a2d49799bb90bc7b7445093fe60142c7": { "source": { "path": "awscdkekshelmtestawscdkawseksKubectlProvider207F42E4.nested.template.json", "packaging": "file" @@ -113,12 +113,12 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "4ab517122c887f7124ebdd88e39d50dbaf69e6e3c798e5d7fb7ce522213c470f.json", + "objectKey": "258128d6e57344b7a70cc57169438181a2d49799bb90bc7b7445093fe60142c7.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "afc846b76cb6831d873011bb815f4cdd75a9ef21b3212cd06bb8eb912a8f8c13": { + "4628aa2babf79eb173f3ddfed7870a20a7d34eff8f787316c90e27f0f111ad8c": { "source": { "path": "aws-cdk-eks-helm-test.template.json", "packaging": "file" @@ -126,7 +126,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "afc846b76cb6831d873011bb815f4cdd75a9ef21b3212cd06bb8eb912a8f8c13.json", + "objectKey": "4628aa2babf79eb173f3ddfed7870a20a7d34eff8f787316c90e27f0f111ad8c.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/aws-cdk-eks-helm-test.template.json b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/aws-cdk-eks-helm-test.template.json index ccebd5923a58e..4ff3a3326550d 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/aws-cdk-eks-helm-test.template.json +++ b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/aws-cdk-eks-helm-test.template.json @@ -427,6 +427,19 @@ } } }, + "KubectlLayer600207B5": { + "Type": "AWS::Lambda::LayerVersion", + "Properties": { + "Content": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "Description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "LicenseInfo": "Apache-2.0" + } + }, "ClusterRoleFA261979": { "Type": "AWS::IAM::Role", "Properties": { @@ -627,7 +640,7 @@ ] }, "Config": { - "version": "1.21", + "version": "1.22", "roleArn": { "Fn::GetAtt": [ "ClusterRoleFA261979", @@ -993,7 +1006,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/4ab517122c887f7124ebdd88e39d50dbaf69e6e3c798e5d7fb7ce522213c470f.json" + "/258128d6e57344b7a70cc57169438181a2d49799bb90bc7b7445093fe60142c7.json" ] ] }, @@ -1010,6 +1023,9 @@ "Arn" ] }, + "referencetoawscdkekshelmtestKubectlLayer2638D675Ref": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkekshelmtestVpcPrivateSubnet1Subnet3D2B5C0BRef": { "Ref": "VpcPrivateSubnet1Subnet536B997A" }, diff --git a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/awscdkekshelmtestawscdkawseksKubectlProvider207F42E4.nested.template.json b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/awscdkekshelmtestawscdkawseksKubectlProvider207F42E4.nested.template.json index 2bfb06c33d3ba..4eaebf99f2fc3 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/awscdkekshelmtestawscdkawseksKubectlProvider207F42E4.nested.template.json +++ b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/awscdkekshelmtestawscdkawseksKubectlProvider207F42E4.nested.template.json @@ -148,7 +148,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkekshelmtestKubectlLayer2638D675Ref" } ], "MemorySize": 1024, @@ -187,18 +187,6 @@ "Description": "/opt/awscli/aws" } }, - "KubectlLayer600207B5": { - "Type": "AWS::Lambda::LayerVersion", - "Properties": { - "Content": { - "S3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "S3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "Description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, "ProviderframeworkonEventServiceRole9FF04296": { "Type": "AWS::IAM::Role", "Properties": { @@ -352,6 +340,9 @@ "referencetoawscdkekshelmtestClusterCreationRole906A8995Arn": { "Type": "String" }, + "referencetoawscdkekshelmtestKubectlLayer2638D675Ref": { + "Type": "String" + }, "referencetoawscdkekshelmtestVpcPrivateSubnet1Subnet3D2B5C0BRef": { "Type": "String" }, diff --git a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/manifest.json index b52eea8e438ae..f8d119f3474f8 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/manifest.json @@ -23,7 +23,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/afc846b76cb6831d873011bb815f4cdd75a9ef21b3212cd06bb8eb912a8f8c13.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4628aa2babf79eb173f3ddfed7870a20a7d34eff8f787316c90e27f0f111ad8c.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -171,6 +171,12 @@ "data": "VpcVPCGWBF912B6E" } ], + "/aws-cdk-eks-helm-test/KubectlLayer/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "KubectlLayer600207B5" + } + ], "/aws-cdk-eks-helm-test/Cluster/Role/Resource": [ { "type": "aws:cdk:logicalId", @@ -411,12 +417,6 @@ "data": "AwsCliLayerF44AAF94" } ], - "/aws-cdk-eks-helm-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "KubectlLayer600207B5" - } - ], "/aws-cdk-eks-helm-test/@aws-cdk--aws-eks.KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -453,6 +453,12 @@ "data": "referencetoawscdkekshelmtestClusterCreationRole906A8995Arn" } ], + "/aws-cdk-eks-helm-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkekshelmtestKubectlLayer2638D675Ref": [ + { + "type": "aws:cdk:logicalId", + "data": "referencetoawscdkekshelmtestKubectlLayer2638D675Ref" + } + ], "/aws-cdk-eks-helm-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkekshelmtestVpcPrivateSubnet1Subnet3D2B5C0BRef": [ { "type": "aws:cdk:logicalId", diff --git a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/tree.json b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/tree.json index 48795f0394ef4..a8fbe2bf550f2 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks/test/eks-helm-asset.integ.snapshot/tree.json @@ -9,7 +9,7 @@ "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "aws-cdk-eks-helm-test": { @@ -701,6 +701,63 @@ "version": "0.0.0" } }, + "KubectlLayer": { + "id": "KubectlLayer", + "path": "aws-cdk-eks-helm-test/KubectlLayer", + "children": { + "Code": { + "id": "Code", + "path": "aws-cdk-eks-helm-test/KubectlLayer/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "aws-cdk-eks-helm-test/KubectlLayer/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "aws-cdk-eks-helm-test/KubectlLayer/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-eks-helm-test/KubectlLayer/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", + "aws:cdk:cloudformation:props": { + "content": { + "s3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "s3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "licenseInfo": "Apache-2.0" + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_lambda.CfnLayerVersion", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/lambda-layer-kubectl-v22.KubectlLayer", + "version": "0.0.4" + } + }, "Cluster": { "id": "Cluster", "path": "aws-cdk-eks-helm-test/Cluster", @@ -946,7 +1003,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "KubectlReadyBarrier": { @@ -2386,7 +2443,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } } }, @@ -2473,7 +2530,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "@aws-cdk--aws-eks.KubectlProvider": { @@ -2697,7 +2754,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkekshelmtestKubectlLayer2638D675Ref" } ], "memorySize": 1024, @@ -2787,62 +2844,6 @@ "version": "0.0.0" } }, - "KubectlLayer": { - "id": "KubectlLayer", - "path": "aws-cdk-eks-helm-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer", - "children": { - "Code": { - "id": "Code", - "path": "aws-cdk-eks-helm-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code", - "children": { - "Stage": { - "id": "Stage", - "path": "aws-cdk-eks-helm-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/Stage", - "constructInfo": { - "fqn": "@aws-cdk/core.AssetStaging", - "version": "0.0.0" - } - }, - "AssetBucket": { - "id": "AssetBucket", - "path": "aws-cdk-eks-helm-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/AssetBucket", - "constructInfo": { - "fqn": "@aws-cdk/aws-s3.BucketBase", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-s3-assets.Asset", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "aws-cdk-eks-helm-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", - "aws:cdk:cloudformation:props": { - "content": { - "s3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "s3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.CfnLayerVersion", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/lambda-layer-kubectl.KubectlLayer", - "version": "0.0.0" - } - }, "Provider": { "id": "Provider", "path": "aws-cdk-eks-helm-test/@aws-cdk--aws-eks.KubectlProvider/Provider", @@ -3088,6 +3089,14 @@ "version": "0.0.0" } }, + "reference-to-awscdkekshelmtestKubectlLayer2638D675Ref": { + "id": "reference-to-awscdkekshelmtestKubectlLayer2638D675Ref", + "path": "aws-cdk-eks-helm-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkekshelmtestKubectlLayer2638D675Ref", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnParameter", + "version": "0.0.0" + } + }, "reference-to-awscdkekshelmtestVpcPrivateSubnet1Subnet3D2B5C0BRef": { "id": "reference-to-awscdkekshelmtestVpcPrivateSubnet1Subnet3D2B5C0BRef", "path": "aws-cdk-eks-helm-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkekshelmtestVpcPrivateSubnet1Subnet3D2B5C0BRef", @@ -3144,7 +3153,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/4ab517122c887f7124ebdd88e39d50dbaf69e6e3c798e5d7fb7ce522213c470f.json" + "/258128d6e57344b7a70cc57169438181a2d49799bb90bc7b7445093fe60142c7.json" ] ] }, @@ -3161,6 +3170,9 @@ "Arn" ] }, + "referencetoawscdkekshelmtestKubectlLayer2638D675Ref": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkekshelmtestVpcPrivateSubnet1Subnet3D2B5C0BRef": { "Ref": "VpcPrivateSubnet1Subnet536B997A" }, @@ -3184,7 +3196,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "ChartAsset": { @@ -3232,7 +3244,7 @@ "path": "aws-cdk-eks-helm/DefaultTest/Default", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "DeployAssert": { diff --git a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip index 69a43596de86f..449089ce0ad4e 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip and b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip new file mode 100644 index 0000000000000..d5624a90d4080 Binary files /dev/null and b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip index 399c6579942cf..7fefa07805056 100644 Binary files a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip and b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip deleted file mode 100644 index 584e5d46946da..0000000000000 Binary files a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip and /dev/null differ diff --git a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/aws-cdk-eks-cluster-inference-test.assets.json b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/aws-cdk-eks-cluster-inference-test.assets.json index f348d585f540d..eb66da467354f 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/aws-cdk-eks-cluster-inference-test.assets.json +++ b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/aws-cdk-eks-cluster-inference-test.assets.json @@ -1,6 +1,19 @@ { "version": "21.0.0", "files": { + "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30": { + "source": { + "path": "asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, "4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee": { "source": { "path": "asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip", @@ -66,19 +79,6 @@ } } }, - "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed": { - "source": { - "path": "asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "packaging": "file" - }, - "destinations": { - "current_account-current_region": { - "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" - } - } - }, "42973d1d89f4a393a64981f78d088964ba13e63a3aab4478cd74109c77cf9174": { "source": { "path": "asset.42973d1d89f4a393a64981f78d088964ba13e63a3aab4478cd74109c77cf9174", @@ -118,7 +118,7 @@ } } }, - "1b169daea7e8cd4be81e7eda35aef70e597514069419dcab0d24505c9608a7c7": { + "87023d6f638c868d4981dbbef728546df86c24bb96022d45e901c4eaf533cca9": { "source": { "path": "awscdkeksclusterinferencetestawscdkawseksKubectlProviderB4348345.nested.template.json", "packaging": "file" @@ -126,12 +126,12 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "1b169daea7e8cd4be81e7eda35aef70e597514069419dcab0d24505c9608a7c7.json", + "objectKey": "87023d6f638c868d4981dbbef728546df86c24bb96022d45e901c4eaf533cca9.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "102f51aa77fc9413a5369647087821f67b5a12ce9fe3cdb795d7301d96d17ffd": { + "e0e60ac6877ec4efc8e4f8139fd616b99bc611504f812923085bbaa20bae2111": { "source": { "path": "aws-cdk-eks-cluster-inference-test.template.json", "packaging": "file" @@ -139,7 +139,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "102f51aa77fc9413a5369647087821f67b5a12ce9fe3cdb795d7301d96d17ffd.json", + "objectKey": "e0e60ac6877ec4efc8e4f8139fd616b99bc611504f812923085bbaa20bae2111.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/aws-cdk-eks-cluster-inference-test.template.json b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/aws-cdk-eks-cluster-inference-test.template.json index d7b83ae3342ae..755a3500b7b34 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/aws-cdk-eks-cluster-inference-test.template.json +++ b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/aws-cdk-eks-cluster-inference-test.template.json @@ -395,6 +395,19 @@ } } }, + "KubectlLayer600207B5": { + "Type": "AWS::Lambda::LayerVersion", + "Properties": { + "Content": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "Description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "LicenseInfo": "Apache-2.0" + } + }, "ClusterRoleFA261979": { "Type": "AWS::IAM::Role", "Properties": { @@ -616,7 +629,7 @@ ] }, "Config": { - "version": "1.21", + "version": "1.22", "roleArn": { "Fn::GetAtt": [ "ClusterRoleFA261979", @@ -1160,7 +1173,7 @@ "Type": "AWS::AutoScaling::LaunchConfiguration", "Properties": { "ImageId": { - "Ref": "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2gpurecommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "Ref": "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2gpurecommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" }, "InstanceType": "inf1.2xlarge", "IamInstanceProfile": { @@ -1342,7 +1355,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/1b169daea7e8cd4be81e7eda35aef70e597514069419dcab0d24505c9608a7c7.json" + "/87023d6f638c868d4981dbbef728546df86c24bb96022d45e901c4eaf533cca9.json" ] ] }, @@ -1359,6 +1372,9 @@ "Arn" ] }, + "referencetoawscdkeksclusterinferencetestKubectlLayerC250C540Ref": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkeksclusterinferencetestVpcPrivateSubnet1Subnet57B9547BRef": { "Ref": "VpcPrivateSubnet1Subnet536B997A" }, @@ -1974,9 +1990,9 @@ } }, "Parameters": { - "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2gpurecommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter": { + "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2gpurecommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter": { "Type": "AWS::SSM::Parameter::Value", - "Default": "/aws/service/eks/optimized-ami/1.21/amazon-linux-2-gpu/recommended/image_id" + "Default": "/aws/service/eks/optimized-ami/1.22/amazon-linux-2-gpu/recommended/image_id" }, "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/awscdkeksclusterinferencetestawscdkawseksKubectlProviderB4348345.nested.template.json b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/awscdkeksclusterinferencetestawscdkawseksKubectlProviderB4348345.nested.template.json index ad2fa686282d3..8f88648ac467b 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/awscdkeksclusterinferencetestawscdkawseksKubectlProviderB4348345.nested.template.json +++ b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/awscdkeksclusterinferencetestawscdkawseksKubectlProviderB4348345.nested.template.json @@ -107,7 +107,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkeksclusterinferencetestKubectlLayerC250C540Ref" } ], "MemorySize": 1024, @@ -146,18 +146,6 @@ "Description": "/opt/awscli/aws" } }, - "KubectlLayer600207B5": { - "Type": "AWS::Lambda::LayerVersion", - "Properties": { - "Content": { - "S3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "S3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "Description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, "ProviderframeworkonEventServiceRole9FF04296": { "Type": "AWS::IAM::Role", "Properties": { @@ -311,6 +299,9 @@ "referencetoawscdkeksclusterinferencetestClusterCreationRoleE75B6E1BArn": { "Type": "String" }, + "referencetoawscdkeksclusterinferencetestKubectlLayerC250C540Ref": { + "Type": "String" + }, "referencetoawscdkeksclusterinferencetestVpcPrivateSubnet1Subnet57B9547BRef": { "Type": "String" }, diff --git a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/integ.json b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/integ.json index 6d4d82270576d..5f391b6d8d18e 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/integ.json +++ b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/integ.json @@ -5,6 +5,13 @@ "stacks": [ "aws-cdk-eks-cluster-inference-test" ], + "cdkCommandOptions": { + "deploy": { + "args": { + "rollback": true + } + } + }, "assertionStack": "aws-cdk-eks-cluster-interence/DefaultTest/DeployAssert", "assertionStackName": "awscdkeksclusterinterenceDefaultTestDeployAssert715EC778" } diff --git a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/manifest.json index c4a9b2cc7f25b..b45fa96d7fd71 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/manifest.json @@ -23,7 +23,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/102f51aa77fc9413a5369647087821f67b5a12ce9fe3cdb795d7301d96d17ffd.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/e0e60ac6877ec4efc8e4f8139fd616b99bc611504f812923085bbaa20bae2111.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -165,6 +165,12 @@ "data": "VpcVPCGWBF912B6E" } ], + "/aws-cdk-eks-cluster-inference-test/KubectlLayer/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "KubectlLayer600207B5" + } + ], "/aws-cdk-eks-cluster-inference-test/Cluster/Role/Resource": [ { "type": "aws:cdk:logicalId", @@ -332,7 +338,10 @@ "/aws-cdk-eks-cluster-inference-test/Cluster/InferenceInstances/LaunchConfig": [ { "type": "aws:cdk:logicalId", - "data": "ClusterInferenceInstancesLaunchConfig03BF48FE" + "data": "ClusterInferenceInstancesLaunchConfig03BF48FE", + "trace": [ + "!!DESTRUCTIVE_CHANGES: WILL_REPLACE" + ] } ], "/aws-cdk-eks-cluster-inference-test/Cluster/InferenceInstances/ASG": [ @@ -509,12 +518,6 @@ "data": "AwsCliLayerF44AAF94" } ], - "/aws-cdk-eks-cluster-inference-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "KubectlLayer600207B5" - } - ], "/aws-cdk-eks-cluster-inference-test/@aws-cdk--aws-eks.KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -551,6 +554,12 @@ "data": "referencetoawscdkeksclusterinferencetestClusterCreationRoleE75B6E1BArn" } ], + "/aws-cdk-eks-cluster-inference-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusterinferencetestKubectlLayerC250C540Ref": [ + { + "type": "aws:cdk:logicalId", + "data": "referencetoawscdkeksclusterinferencetestKubectlLayerC250C540Ref" + } + ], "/aws-cdk-eks-cluster-inference-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusterinferencetestVpcPrivateSubnet1Subnet57B9547BRef": [ { "type": "aws:cdk:logicalId", @@ -629,10 +638,10 @@ "data": "AWSCDKCfnUtilsProviderCustomResourceProviderHandlerCF82AA57" } ], - "/aws-cdk-eks-cluster-inference-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": [ + "/aws-cdk-eks-cluster-inference-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": [ { "type": "aws:cdk:logicalId", - "data": "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2gpurecommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "data": "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2gpurecommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" } ], "/aws-cdk-eks-cluster-inference-test/BootstrapVersion": [ diff --git a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/tree.json b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/tree.json index 76b9d1cc3f446..dcd550bb055c7 100644 --- a/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks/test/eks-inference.integ.snapshot/tree.json @@ -9,7 +9,7 @@ "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "aws-cdk-eks-cluster-inference-test": { @@ -651,6 +651,63 @@ "version": "0.0.0" } }, + "KubectlLayer": { + "id": "KubectlLayer", + "path": "aws-cdk-eks-cluster-inference-test/KubectlLayer", + "children": { + "Code": { + "id": "Code", + "path": "aws-cdk-eks-cluster-inference-test/KubectlLayer/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "aws-cdk-eks-cluster-inference-test/KubectlLayer/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "aws-cdk-eks-cluster-inference-test/KubectlLayer/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-eks-cluster-inference-test/KubectlLayer/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", + "aws:cdk:cloudformation:props": { + "content": { + "s3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "s3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "licenseInfo": "Apache-2.0" + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_lambda.CfnLayerVersion", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/lambda-layer-kubectl-v22.KubectlLayer", + "version": "0.0.4" + } + }, "Cluster": { "id": "Cluster", "path": "aws-cdk-eks-cluster-inference-test/Cluster", @@ -925,7 +982,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "KubectlReadyBarrier": { @@ -1555,7 +1612,7 @@ "aws:cdk:cloudformation:type": "AWS::AutoScaling::LaunchConfiguration", "aws:cdk:cloudformation:props": { "imageId": { - "Ref": "SsmParameterValueawsserviceeksoptimizedami121amazonlinux2gpurecommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" + "Ref": "SsmParameterValueawsserviceeksoptimizedami122amazonlinux2gpurecommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter" }, "instanceType": "inf1.2xlarge", "iamInstanceProfile": { @@ -2873,7 +2930,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } } }, @@ -2960,7 +3017,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "@aws-cdk--aws-eks.KubectlProvider": { @@ -3143,7 +3200,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkeksclusterinferencetestKubectlLayerC250C540Ref" } ], "memorySize": 1024, @@ -3233,62 +3290,6 @@ "version": "0.0.0" } }, - "KubectlLayer": { - "id": "KubectlLayer", - "path": "aws-cdk-eks-cluster-inference-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer", - "children": { - "Code": { - "id": "Code", - "path": "aws-cdk-eks-cluster-inference-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code", - "children": { - "Stage": { - "id": "Stage", - "path": "aws-cdk-eks-cluster-inference-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/Stage", - "constructInfo": { - "fqn": "@aws-cdk/core.AssetStaging", - "version": "0.0.0" - } - }, - "AssetBucket": { - "id": "AssetBucket", - "path": "aws-cdk-eks-cluster-inference-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/AssetBucket", - "constructInfo": { - "fqn": "@aws-cdk/aws-s3.BucketBase", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-s3-assets.Asset", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "aws-cdk-eks-cluster-inference-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", - "aws:cdk:cloudformation:props": { - "content": { - "s3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "s3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.CfnLayerVersion", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/lambda-layer-kubectl.KubectlLayer", - "version": "0.0.0" - } - }, "Provider": { "id": "Provider", "path": "aws-cdk-eks-cluster-inference-test/@aws-cdk--aws-eks.KubectlProvider/Provider", @@ -3534,6 +3535,14 @@ "version": "0.0.0" } }, + "reference-to-awscdkeksclusterinferencetestKubectlLayerC250C540Ref": { + "id": "reference-to-awscdkeksclusterinferencetestKubectlLayerC250C540Ref", + "path": "aws-cdk-eks-cluster-inference-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusterinferencetestKubectlLayerC250C540Ref", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnParameter", + "version": "0.0.0" + } + }, "reference-to-awscdkeksclusterinferencetestVpcPrivateSubnet1Subnet57B9547BRef": { "id": "reference-to-awscdkeksclusterinferencetestVpcPrivateSubnet1Subnet57B9547BRef", "path": "aws-cdk-eks-cluster-inference-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksclusterinferencetestVpcPrivateSubnet1Subnet57B9547BRef", @@ -3590,7 +3599,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/1b169daea7e8cd4be81e7eda35aef70e597514069419dcab0d24505c9608a7c7.json" + "/87023d6f638c868d4981dbbef728546df86c24bb96022d45e901c4eaf533cca9.json" ] ] }, @@ -3607,6 +3616,9 @@ "Arn" ] }, + "referencetoawscdkeksclusterinferencetestKubectlLayerC250C540Ref": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkeksclusterinferencetestVpcPrivateSubnet1Subnet57B9547BRef": { "Ref": "VpcPrivateSubnet1Subnet536B997A" }, @@ -3630,7 +3642,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "awscdkeksclusterinferencetestClusterEBBBA1AC-AlbController": { @@ -4053,17 +4065,17 @@ "version": "0.0.0" } }, - "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": { - "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", - "path": "aws-cdk-eks-cluster-inference-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", + "SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": { + "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", + "path": "aws-cdk-eks-cluster-inference-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter", "constructInfo": { "fqn": "@aws-cdk/core.CfnParameter", "version": "0.0.0" } }, - "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118": { - "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", - "path": "aws-cdk-eks-cluster-inference-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.21--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", + "SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118": { + "id": "SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", + "path": "aws-cdk-eks-cluster-inference-test/SsmParameterValue:--aws--service--eks--optimized-ami--1.22--amazon-linux-2-gpu--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118", "constructInfo": { "fqn": "@aws-cdk/core.Resource", "version": "0.0.0" @@ -4088,7 +4100,7 @@ "path": "aws-cdk-eks-cluster-interence/DefaultTest/Default", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "DeployAssert": { diff --git a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip index 69a43596de86f..449089ce0ad4e 100644 Binary files a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip and b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip new file mode 100644 index 0000000000000..d5624a90d4080 Binary files /dev/null and b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip index 399c6579942cf..7fefa07805056 100644 Binary files a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip and b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.c409e6c5845f1f349df8cd84e160bf6f1c35d2b060b63e1f032f9bd39d4542cc.zip differ diff --git a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip deleted file mode 100644 index 584e5d46946da..0000000000000 Binary files a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip and /dev/null differ diff --git a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/aws-cdk-eks-fargate-cluster-test.assets.json b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/aws-cdk-eks-fargate-cluster-test.assets.json index f0339ad5391b4..89d09aee78866 100644 --- a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/aws-cdk-eks-fargate-cluster-test.assets.json +++ b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/aws-cdk-eks-fargate-cluster-test.assets.json @@ -1,6 +1,19 @@ { "version": "21.0.0", "files": { + "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30": { + "source": { + "path": "asset.c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, "4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee": { "source": { "path": "asset.4288ebb3652acdf2d828b7db7ca44a7162a401ace50ebb4026e84b18a02a06ee.zip", @@ -66,19 +79,6 @@ } } }, - "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed": { - "source": { - "path": "asset.c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "packaging": "file" - }, - "destinations": { - "current_account-current_region": { - "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip", - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" - } - } - }, "ffbf5cc8afeefb67bcfb9a56cfe0b1e272644b488bba8f5196d86078ac39450f": { "source": { "path": "awscdkeksfargateclustertestawscdkawseksClusterResourceProviderB8887E20.nested.template.json", @@ -92,7 +92,7 @@ } } }, - "2911df1ea3697a0774c0556ef8b0f6e179ce7d5c03252e6fc1409c02db816190": { + "ea0cb9ef003ed986f6b27111a38d7a11db01334d0f16dc0dc55e338f9f844c77": { "source": { "path": "awscdkeksfargateclustertestawscdkawseksKubectlProviderB383571D.nested.template.json", "packaging": "file" @@ -100,12 +100,12 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "2911df1ea3697a0774c0556ef8b0f6e179ce7d5c03252e6fc1409c02db816190.json", + "objectKey": "ea0cb9ef003ed986f6b27111a38d7a11db01334d0f16dc0dc55e338f9f844c77.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "8d47a7345d98dcba0a067b874e33b70fe13771732c5af621af36123f163b8ca2": { + "6c3b4bff6a429f1576760f55a88abf3bbd70304b7eab81ccf0c95cf627f41e8a": { "source": { "path": "aws-cdk-eks-fargate-cluster-test.template.json", "packaging": "file" @@ -113,7 +113,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "8d47a7345d98dcba0a067b874e33b70fe13771732c5af621af36123f163b8ca2.json", + "objectKey": "6c3b4bff6a429f1576760f55a88abf3bbd70304b7eab81ccf0c95cf627f41e8a.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/aws-cdk-eks-fargate-cluster-test.template.json b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/aws-cdk-eks-fargate-cluster-test.template.json index c3061702e0414..602db22184643 100644 --- a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/aws-cdk-eks-fargate-cluster-test.template.json +++ b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/aws-cdk-eks-fargate-cluster-test.template.json @@ -1,5 +1,18 @@ { "Resources": { + "KubectlLayer600207B5": { + "Type": "AWS::Lambda::LayerVersion", + "Properties": { + "Content": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "Description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "LicenseInfo": "Apache-2.0" + } + }, "FargateClusterDefaultVpcE69D3A13": { "Type": "AWS::EC2::VPC", "Properties": { @@ -651,7 +664,7 @@ ] }, "Config": { - "version": "1.21", + "version": "1.22", "roleArn": { "Fn::GetAtt": [ "FargateClusterRole8E36B33A", @@ -977,7 +990,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/2911df1ea3697a0774c0556ef8b0f6e179ce7d5c03252e6fc1409c02db816190.json" + "/ea0cb9ef003ed986f6b27111a38d7a11db01334d0f16dc0dc55e338f9f844c77.json" ] ] }, @@ -994,6 +1007,9 @@ "Arn" ] }, + "referencetoawscdkeksfargateclustertestKubectlLayer821D4586Ref": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkeksfargateclustertestFargateClusterDefaultVpcPrivateSubnet1Subnet0278E6BCRef": { "Ref": "FargateClusterDefaultVpcPrivateSubnet1Subnet50EA43AA" }, diff --git a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/awscdkeksfargateclustertestawscdkawseksKubectlProviderB383571D.nested.template.json b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/awscdkeksfargateclustertestawscdkawseksKubectlProviderB383571D.nested.template.json index 2caa59204cfaa..c9f4dc64a9c17 100644 --- a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/awscdkeksfargateclustertestawscdkawseksKubectlProviderB383571D.nested.template.json +++ b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/awscdkeksfargateclustertestawscdkawseksKubectlProviderB383571D.nested.template.json @@ -107,7 +107,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkeksfargateclustertestKubectlLayer821D4586Ref" } ], "MemorySize": 1024, @@ -146,18 +146,6 @@ "Description": "/opt/awscli/aws" } }, - "KubectlLayer600207B5": { - "Type": "AWS::Lambda::LayerVersion", - "Properties": { - "Content": { - "S3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "S3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "Description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, "ProviderframeworkonEventServiceRole9FF04296": { "Type": "AWS::IAM::Role", "Properties": { @@ -311,6 +299,9 @@ "referencetoawscdkeksfargateclustertestFargateClusterCreationRoleFB2229CFArn": { "Type": "String" }, + "referencetoawscdkeksfargateclustertestKubectlLayer821D4586Ref": { + "Type": "String" + }, "referencetoawscdkeksfargateclustertestFargateClusterDefaultVpcPrivateSubnet1Subnet0278E6BCRef": { "Type": "String" }, diff --git a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/manifest.json index f52205657a6b5..d6632a8d1d24f 100644 --- a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/manifest.json @@ -23,7 +23,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/8d47a7345d98dcba0a067b874e33b70fe13771732c5af621af36123f163b8ca2.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6c3b4bff6a429f1576760f55a88abf3bbd70304b7eab81ccf0c95cf627f41e8a.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -39,6 +39,12 @@ "aws-cdk-eks-fargate-cluster-test.assets" ], "metadata": { + "/aws-cdk-eks-fargate-cluster-test/KubectlLayer/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "KubectlLayer600207B5" + } + ], "/aws-cdk-eks-fargate-cluster-test/FargateCluster/DefaultVpc/Resource": [ { "type": "aws:cdk:logicalId", @@ -417,12 +423,6 @@ "data": "AwsCliLayerF44AAF94" } ], - "/aws-cdk-eks-fargate-cluster-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "KubectlLayer600207B5" - } - ], "/aws-cdk-eks-fargate-cluster-test/@aws-cdk--aws-eks.KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -459,6 +459,12 @@ "data": "referencetoawscdkeksfargateclustertestFargateClusterCreationRoleFB2229CFArn" } ], + "/aws-cdk-eks-fargate-cluster-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksfargateclustertestKubectlLayer821D4586Ref": [ + { + "type": "aws:cdk:logicalId", + "data": "referencetoawscdkeksfargateclustertestKubectlLayer821D4586Ref" + } + ], "/aws-cdk-eks-fargate-cluster-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksfargateclustertestFargateClusterDefaultVpcPrivateSubnet1Subnet0278E6BCRef": [ { "type": "aws:cdk:logicalId", diff --git a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/tree.json b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/tree.json index 4d2c1ec1b1965..83afb52e446ca 100644 --- a/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks/test/fargate-cluster.integ.snapshot/tree.json @@ -9,13 +9,70 @@ "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "aws-cdk-eks-fargate-cluster-test": { "id": "aws-cdk-eks-fargate-cluster-test", "path": "aws-cdk-eks-fargate-cluster-test", "children": { + "KubectlLayer": { + "id": "KubectlLayer", + "path": "aws-cdk-eks-fargate-cluster-test/KubectlLayer", + "children": { + "Code": { + "id": "Code", + "path": "aws-cdk-eks-fargate-cluster-test/KubectlLayer/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "aws-cdk-eks-fargate-cluster-test/KubectlLayer/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "aws-cdk-eks-fargate-cluster-test/KubectlLayer/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-eks-fargate-cluster-test/KubectlLayer/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", + "aws:cdk:cloudformation:props": { + "content": { + "s3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "s3Key": "c0f40a9fd16d1698ca05765606c04c8724dc5c8355b6e124a39af09449a3aa30.zip" + }, + "description": "/opt/kubectl/kubectl 1.22; /opt/helm/helm 3.9", + "licenseInfo": "Apache-2.0" + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_lambda.CfnLayerVersion", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/lambda-layer-kubectl-v22.KubectlLayer", + "version": "0.0.4" + } + }, "FargateCluster": { "id": "FargateCluster", "path": "aws-cdk-eks-fargate-cluster-test/FargateCluster", @@ -960,7 +1017,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "KubectlReadyBarrier": { @@ -2366,7 +2423,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } } }, @@ -2453,7 +2510,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "@aws-cdk--aws-eks.KubectlProvider": { @@ -2636,7 +2693,7 @@ "Ref": "AwsCliLayerF44AAF94" }, { - "Ref": "KubectlLayer600207B5" + "Ref": "referencetoawscdkeksfargateclustertestKubectlLayer821D4586Ref" } ], "memorySize": 1024, @@ -2726,62 +2783,6 @@ "version": "0.0.0" } }, - "KubectlLayer": { - "id": "KubectlLayer", - "path": "aws-cdk-eks-fargate-cluster-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer", - "children": { - "Code": { - "id": "Code", - "path": "aws-cdk-eks-fargate-cluster-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code", - "children": { - "Stage": { - "id": "Stage", - "path": "aws-cdk-eks-fargate-cluster-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/Stage", - "constructInfo": { - "fqn": "@aws-cdk/core.AssetStaging", - "version": "0.0.0" - } - }, - "AssetBucket": { - "id": "AssetBucket", - "path": "aws-cdk-eks-fargate-cluster-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Code/AssetBucket", - "constructInfo": { - "fqn": "@aws-cdk/aws-s3.BucketBase", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-s3-assets.Asset", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "aws-cdk-eks-fargate-cluster-test/@aws-cdk--aws-eks.KubectlProvider/KubectlLayer/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", - "aws:cdk:cloudformation:props": { - "content": { - "s3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "s3Key": "c6964dbf0c556ec82ce09622e99ad6f6d4e488cdaac0ef9e8492e078ec61ffed.zip" - }, - "description": "/opt/kubectl/kubectl and /opt/helm/helm" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.CfnLayerVersion", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/lambda-layer-kubectl.KubectlLayer", - "version": "0.0.0" - } - }, "Provider": { "id": "Provider", "path": "aws-cdk-eks-fargate-cluster-test/@aws-cdk--aws-eks.KubectlProvider/Provider", @@ -3027,6 +3028,14 @@ "version": "0.0.0" } }, + "reference-to-awscdkeksfargateclustertestKubectlLayer821D4586Ref": { + "id": "reference-to-awscdkeksfargateclustertestKubectlLayer821D4586Ref", + "path": "aws-cdk-eks-fargate-cluster-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksfargateclustertestKubectlLayer821D4586Ref", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnParameter", + "version": "0.0.0" + } + }, "reference-to-awscdkeksfargateclustertestFargateClusterDefaultVpcPrivateSubnet1Subnet0278E6BCRef": { "id": "reference-to-awscdkeksfargateclustertestFargateClusterDefaultVpcPrivateSubnet1Subnet0278E6BCRef", "path": "aws-cdk-eks-fargate-cluster-test/@aws-cdk--aws-eks.KubectlProvider/reference-to-awscdkeksfargateclustertestFargateClusterDefaultVpcPrivateSubnet1Subnet0278E6BCRef", @@ -3083,7 +3092,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/2911df1ea3697a0774c0556ef8b0f6e179ce7d5c03252e6fc1409c02db816190.json" + "/ea0cb9ef003ed986f6b27111a38d7a11db01334d0f16dc0dc55e338f9f844c77.json" ] ] }, @@ -3100,6 +3109,9 @@ "Arn" ] }, + "referencetoawscdkeksfargateclustertestKubectlLayer821D4586Ref": { + "Ref": "KubectlLayer600207B5" + }, "referencetoawscdkeksfargateclustertestFargateClusterDefaultVpcPrivateSubnet1Subnet0278E6BCRef": { "Ref": "FargateClusterDefaultVpcPrivateSubnet1Subnet50EA43AA" }, @@ -3123,7 +3135,7 @@ }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } } }, @@ -3145,7 +3157,7 @@ "path": "aws-cdk-eks-fargate-cluster/DefaultTest/Default", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.123" + "version": "10.1.133" } }, "DeployAssert": { diff --git a/packages/@aws-cdk/aws-eks/test/integ-tests-kubernetes-version.ts b/packages/@aws-cdk/aws-eks/test/integ-tests-kubernetes-version.ts new file mode 100644 index 0000000000000..0a155ee4654ea --- /dev/null +++ b/packages/@aws-cdk/aws-eks/test/integ-tests-kubernetes-version.ts @@ -0,0 +1,14 @@ +import * as lambda from '@aws-cdk/aws-lambda'; +import { KubectlV22Layer } from '@aws-cdk/lambda-layer-kubectl-v22'; +import { Construct } from 'constructs'; +import * as eks from '../lib'; + +export function getClusterVersionConfig(scope: Construct) { + return { + version: eks.KubernetesVersion.V1_22, + // Crazy type-casting is required because KubectlLayer peer depends on + // types from aws-cdk-lib, but we run integration tests in the @aws-cdk/ + // v1-style directory, not in the aws-cdk-lib v2-style directory. + kubectlLayer: new KubectlV22Layer(scope, 'KubectlLayer') as unknown as lambda.ILayerVersion, + }; +}; \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks/test/integ.alb-controller.ts b/packages/@aws-cdk/aws-eks/test/integ.alb-controller.ts index 7e73b4af96a3f..a946493f98fd6 100644 --- a/packages/@aws-cdk/aws-eks/test/integ.alb-controller.ts +++ b/packages/@aws-cdk/aws-eks/test/integ.alb-controller.ts @@ -5,6 +5,7 @@ import * as integ from '@aws-cdk/integ-tests'; import * as cdk8s from 'cdk8s'; import * as kplus from 'cdk8s-plus-21'; import * as eks from '../lib'; +import { getClusterVersionConfig } from './integ-tests-kubernetes-version'; import { Pinger } from './pinger/pinger'; class EksClusterAlbControllerStack extends Stack { @@ -17,7 +18,7 @@ class EksClusterAlbControllerStack extends Stack { const cluster = new eks.Cluster(this, 'Cluster', { vpc, - version: eks.KubernetesVersion.V1_21, + ...getClusterVersionConfig(this), albController: { version: eks.AlbControllerVersion.V2_4_1, }, diff --git a/packages/@aws-cdk/aws-eks/test/integ.eks-bottlerocket-ng.ts b/packages/@aws-cdk/aws-eks/test/integ.eks-bottlerocket-ng.ts index e2fa94e25401f..bdd9f2853391e 100644 --- a/packages/@aws-cdk/aws-eks/test/integ.eks-bottlerocket-ng.ts +++ b/packages/@aws-cdk/aws-eks/test/integ.eks-bottlerocket-ng.ts @@ -5,7 +5,7 @@ import { App, Stack } from '@aws-cdk/core'; import * as integ from '@aws-cdk/integ-tests'; import * as eks from '../lib'; import { NodegroupAmiType } from '../lib'; - +import { getClusterVersionConfig } from './integ-tests-kubernetes-version'; class EksClusterStack extends Stack { @@ -28,7 +28,7 @@ class EksClusterStack extends Stack { vpc: this.vpc, mastersRole, defaultCapacity: 0, - version: eks.KubernetesVersion.V1_21, + ...getClusterVersionConfig(this), }); this.cluster.addNodegroupCapacity('BottlerocketNG1', { diff --git a/packages/@aws-cdk/aws-eks/test/integ.eks-cluster-handlers-vpc.ts b/packages/@aws-cdk/aws-eks/test/integ.eks-cluster-handlers-vpc.ts index 47219dd90d405..0d0e626624f29 100644 --- a/packages/@aws-cdk/aws-eks/test/integ.eks-cluster-handlers-vpc.ts +++ b/packages/@aws-cdk/aws-eks/test/integ.eks-cluster-handlers-vpc.ts @@ -2,9 +2,7 @@ import { App, Stack } from '@aws-cdk/core'; import * as integ from '@aws-cdk/integ-tests'; import * as eks from '../lib'; - -const CLUSTER_VERSION = eks.KubernetesVersion.V1_21; - +import { getClusterVersionConfig } from './integ-tests-kubernetes-version'; class EksAllHandlersInVpcStack extends Stack { @@ -12,7 +10,7 @@ class EksAllHandlersInVpcStack extends Stack { super(scope, id); new eks.Cluster(this, 'EksAllHandlersInVpcStack', { - version: CLUSTER_VERSION, + ...getClusterVersionConfig(this), placeClusterHandlerInVpc: true, }); } diff --git a/packages/@aws-cdk/aws-eks/test/integ.eks-cluster-private-endpoint.ts b/packages/@aws-cdk/aws-eks/test/integ.eks-cluster-private-endpoint.ts index a7e452ad059be..8e03c12917f5d 100644 --- a/packages/@aws-cdk/aws-eks/test/integ.eks-cluster-private-endpoint.ts +++ b/packages/@aws-cdk/aws-eks/test/integ.eks-cluster-private-endpoint.ts @@ -4,9 +4,7 @@ import * as iam from '@aws-cdk/aws-iam'; import { App, Stack } from '@aws-cdk/core'; import * as integ from '@aws-cdk/integ-tests'; import * as eks from '../lib'; - -const CLUSTER_VERSION = eks.KubernetesVersion.V1_21; - +import { getClusterVersionConfig } from './integ-tests-kubernetes-version'; class EksClusterStack extends Stack { constructor(scope: App, id: string) { @@ -24,7 +22,7 @@ class EksClusterStack extends Stack { vpc, mastersRole, defaultCapacity: 2, - version: CLUSTER_VERSION, + ...getClusterVersionConfig(this), endpointAccess: eks.EndpointAccess.PRIVATE, prune: false, }); diff --git a/packages/@aws-cdk/aws-eks/test/integ.eks-cluster.ts b/packages/@aws-cdk/aws-eks/test/integ.eks-cluster.ts index d33e2ee098404..949a47e0a34b9 100644 --- a/packages/@aws-cdk/aws-eks/test/integ.eks-cluster.ts +++ b/packages/@aws-cdk/aws-eks/test/integ.eks-cluster.ts @@ -11,6 +11,7 @@ import * as kplus from 'cdk8s-plus-21'; import * as constructs from 'constructs'; import * as eks from '../lib'; import * as hello from './hello-k8s'; +import { getClusterVersionConfig } from './integ-tests-kubernetes-version'; class EksClusterStack extends Stack { @@ -36,7 +37,7 @@ class EksClusterStack extends Stack { vpc: this.vpc, mastersRole, defaultCapacity: 2, - version: eks.KubernetesVersion.V1_21, + ...getClusterVersionConfig(this), secretsEncryptionKey, tags: { foo: 'bar', @@ -338,6 +339,13 @@ if (process.env.CDK_INTEG_ACCOUNT !== '12345678') { new integ.IntegTest(app, 'aws-cdk-eks-cluster', { testCases: [stack], + cdkCommandOptions: { + deploy: { + args: { + rollback: true, + }, + }, + }, }); app.synth(); diff --git a/packages/@aws-cdk/aws-eks/test/integ.eks-helm-asset.ts b/packages/@aws-cdk/aws-eks/test/integ.eks-helm-asset.ts index 5880091822b90..ec4743dd772dd 100644 --- a/packages/@aws-cdk/aws-eks/test/integ.eks-helm-asset.ts +++ b/packages/@aws-cdk/aws-eks/test/integ.eks-helm-asset.ts @@ -6,6 +6,7 @@ import { Asset } from '@aws-cdk/aws-s3-assets'; import { App, Stack } from '@aws-cdk/core'; import * as integ from '@aws-cdk/integ-tests'; import * as eks from '../lib/index'; +import { getClusterVersionConfig } from './integ-tests-kubernetes-version'; class EksClusterStack extends Stack { private cluster: eks.Cluster; @@ -27,7 +28,7 @@ class EksClusterStack extends Stack { vpc: this.vpc, mastersRole, defaultCapacity: 2, - version: eks.KubernetesVersion.V1_21, + ...getClusterVersionConfig(this), tags: { foo: 'bar', }, diff --git a/packages/@aws-cdk/aws-eks/test/integ.eks-inference.ts b/packages/@aws-cdk/aws-eks/test/integ.eks-inference.ts index c4ea0f71be8de..84482f2c4d644 100644 --- a/packages/@aws-cdk/aws-eks/test/integ.eks-inference.ts +++ b/packages/@aws-cdk/aws-eks/test/integ.eks-inference.ts @@ -3,6 +3,7 @@ import * as ec2 from '@aws-cdk/aws-ec2'; import { App, Stack } from '@aws-cdk/core'; import * as integ from '@aws-cdk/integ-tests'; import * as eks from '../lib'; +import { getClusterVersionConfig } from './integ-tests-kubernetes-version'; class EksClusterInferenceStack extends Stack { @@ -14,7 +15,7 @@ class EksClusterInferenceStack extends Stack { const cluster = new eks.Cluster(this, 'Cluster', { vpc, - version: eks.KubernetesVersion.V1_21, + ...getClusterVersionConfig(this), albController: { version: eks.AlbControllerVersion.V2_4_1, }, @@ -31,5 +32,12 @@ const app = new App(); const stack = new EksClusterInferenceStack(app, 'aws-cdk-eks-cluster-inference-test'); new integ.IntegTest(app, 'aws-cdk-eks-cluster-interence', { testCases: [stack], + cdkCommandOptions: { + deploy: { + args: { + rollback: true, + }, + }, + }, }); app.synth(); diff --git a/packages/@aws-cdk/aws-eks/test/integ.fargate-cluster.ts b/packages/@aws-cdk/aws-eks/test/integ.fargate-cluster.ts index b10d23c81a7f1..f90f16943a8f7 100644 --- a/packages/@aws-cdk/aws-eks/test/integ.fargate-cluster.ts +++ b/packages/@aws-cdk/aws-eks/test/integ.fargate-cluster.ts @@ -2,9 +2,7 @@ import { App, Stack } from '@aws-cdk/core'; import * as integ from '@aws-cdk/integ-tests'; import * as eks from '../lib'; - -const CLUSTER_VERSION = eks.KubernetesVersion.V1_21; - +import { getClusterVersionConfig } from './integ-tests-kubernetes-version'; class EksFargateClusterStack extends Stack { @@ -12,7 +10,7 @@ class EksFargateClusterStack extends Stack { super(scope, id); new eks.FargateCluster(this, 'FargateCluster', { - version: CLUSTER_VERSION, + ...getClusterVersionConfig(this), prune: false, }); } diff --git a/packages/@aws-cdk/aws-lambda-nodejs/package.json b/packages/@aws-cdk/aws-lambda-nodejs/package.json index 29051b31640b4..f7fd4a612e054 100644 --- a/packages/@aws-cdk/aws-lambda-nodejs/package.json +++ b/packages/@aws-cdk/aws-lambda-nodejs/package.json @@ -79,7 +79,7 @@ "@aws-cdk/pkglint": "0.0.0", "@types/jest": "^27.5.2", "delay": "5.0.0", - "esbuild": "^0.15.11" + "esbuild": "^0.15.12" }, "dependencies": { "@aws-cdk/aws-lambda": "0.0.0", diff --git a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/integ-lambda-python-arm64.assets.json b/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/integ-lambda-python-arm64.assets.json deleted file mode 100644 index 05942c5715367..0000000000000 --- a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/integ-lambda-python-arm64.assets.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "version": "21.0.0", - "files": { - "8c04935671db7da18580bb01371198f54ead836061bcbac6b8bab4c2e4d1cf35": { - "source": { - "path": "asset.8c04935671db7da18580bb01371198f54ead836061bcbac6b8bab4c2e4d1cf35", - "packaging": "zip" - }, - "destinations": { - "current_account-current_region": { - "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "8c04935671db7da18580bb01371198f54ead836061bcbac6b8bab4c2e4d1cf35.zip", - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" - } - } - }, - "db453ad95b1e0fd185aa7ea88192ad521ced57f7bd163bcd0f002f20b441e424": { - "source": { - "path": "asset.db453ad95b1e0fd185aa7ea88192ad521ced57f7bd163bcd0f002f20b441e424", - "packaging": "zip" - }, - "destinations": { - "current_account-current_region": { - "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "db453ad95b1e0fd185aa7ea88192ad521ced57f7bd163bcd0f002f20b441e424.zip", - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" - } - } - }, - "d541f2115f9333bde1ef9d780fe0176c421e684cc754401b5de78b9a1d133b62": { - "source": { - "path": "integ-lambda-python-arm64.template.json", - "packaging": "file" - }, - "destinations": { - "current_account-current_region": { - "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "d541f2115f9333bde1ef9d780fe0176c421e684cc754401b5de78b9a1d133b62.json", - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" - } - } - } - }, - "dockerImages": {} -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/integ.json b/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/integ.json deleted file mode 100644 index b8905e06295aa..0000000000000 --- a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/integ.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version": "21.0.0", - "testCases": { - "lambda-python-arm64/DefaultTest": { - "stacks": [ - "integ-lambda-python-arm64" - ], - "stackUpdateWorkflow": false, - "assertionStack": "lambda-python-arm64/DefaultTest/DeployAssert", - "assertionStackName": "lambdapythonarm64DefaultTestDeployAssertAB537F34" - } - } -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/tree.json b/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/tree.json deleted file mode 100644 index 9f3daef0226f3..0000000000000 --- a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/tree.json +++ /dev/null @@ -1,372 +0,0 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.129" - } - }, - "integ-lambda-python-arm64": { - "id": "integ-lambda-python-arm64", - "path": "integ-lambda-python-arm64", - "children": { - "Layer": { - "id": "Layer", - "path": "integ-lambda-python-arm64/Layer", - "children": { - "Code": { - "id": "Code", - "path": "integ-lambda-python-arm64/Layer/Code", - "children": { - "Stage": { - "id": "Stage", - "path": "integ-lambda-python-arm64/Layer/Code/Stage", - "constructInfo": { - "fqn": "@aws-cdk/core.AssetStaging", - "version": "0.0.0" - } - }, - "AssetBucket": { - "id": "AssetBucket", - "path": "integ-lambda-python-arm64/Layer/Code/AssetBucket", - "constructInfo": { - "fqn": "@aws-cdk/aws-s3.BucketBase", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-s3-assets.Asset", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "integ-lambda-python-arm64/Layer/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::LayerVersion", - "aws:cdk:cloudformation:props": { - "content": { - "s3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "s3Key": "8c04935671db7da18580bb01371198f54ead836061bcbac6b8bab4c2e4d1cf35.zip" - }, - "compatibleArchitectures": [ - "arm64" - ], - "compatibleRuntimes": [ - "python3.9" - ] - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.CfnLayerVersion", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda-python.PythonLayerVersion", - "version": "0.0.0" - } - }, - "Handler": { - "id": "Handler", - "path": "integ-lambda-python-arm64/Handler", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "integ-lambda-python-arm64/Handler/ServiceRole", - "children": { - "Resource": { - "id": "Resource", - "path": "integ-lambda-python-arm64/Handler/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-iam.CfnRole", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-iam.Role", - "version": "0.0.0" - } - }, - "Code": { - "id": "Code", - "path": "integ-lambda-python-arm64/Handler/Code", - "children": { - "Stage": { - "id": "Stage", - "path": "integ-lambda-python-arm64/Handler/Code/Stage", - "constructInfo": { - "fqn": "@aws-cdk/core.AssetStaging", - "version": "0.0.0" - } - }, - "AssetBucket": { - "id": "AssetBucket", - "path": "integ-lambda-python-arm64/Handler/Code/AssetBucket", - "constructInfo": { - "fqn": "@aws-cdk/aws-s3.BucketBase", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-s3-assets.Asset", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "integ-lambda-python-arm64/Handler/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "s3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "s3Key": "db453ad95b1e0fd185aa7ea88192ad521ced57f7bd163bcd0f002f20b441e424.zip" - }, - "role": { - "Fn::GetAtt": [ - "HandlerServiceRoleFCDC14AE", - "Arn" - ] - }, - "architectures": [ - "arm64" - ], - "handler": "index.handler", - "layers": [ - { - "Ref": "LayerB20D2F06" - } - ], - "runtime": "python3.9" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.CfnFunction", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda-python.PythonFunction", - "version": "0.0.0" - } - }, - "FunctionArn": { - "id": "FunctionArn", - "path": "integ-lambda-python-arm64/FunctionArn", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnOutput", - "version": "0.0.0" - } - }, - "Exports": { - "id": "Exports", - "path": "integ-lambda-python-arm64/Exports", - "children": { - "Output{\"Ref\":\"Handler886CB40B\"}": { - "id": "Output{\"Ref\":\"Handler886CB40B\"}", - "path": "integ-lambda-python-arm64/Exports/Output{\"Ref\":\"Handler886CB40B\"}", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnOutput", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.129" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/core.Stack", - "version": "0.0.0" - } - }, - "lambda-python-arm64": { - "id": "lambda-python-arm64", - "path": "lambda-python-arm64", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "lambda-python-arm64/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "lambda-python-arm64/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.129" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "lambda-python-arm64/DefaultTest/DeployAssert", - "children": { - "LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5": { - "id": "LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5", - "path": "lambda-python-arm64/DefaultTest/DeployAssert/LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5", - "children": { - "SdkProvider": { - "id": "SdkProvider", - "path": "lambda-python-arm64/DefaultTest/DeployAssert/LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5/SdkProvider", - "children": { - "AssertionsProvider": { - "id": "AssertionsProvider", - "path": "lambda-python-arm64/DefaultTest/DeployAssert/LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5/SdkProvider/AssertionsProvider", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.129" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests.AssertionsProvider", - "version": "0.0.0" - } - }, - "Default": { - "id": "Default", - "path": "lambda-python-arm64/DefaultTest/DeployAssert/LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5/Default", - "children": { - "Default": { - "id": "Default", - "path": "lambda-python-arm64/DefaultTest/DeployAssert/LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5/Default/Default", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnResource", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/core.CustomResource", - "version": "0.0.0" - } - }, - "Invoke": { - "id": "Invoke", - "path": "lambda-python-arm64/DefaultTest/DeployAssert/LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5/Invoke", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnResource", - "version": "0.0.0" - } - }, - "AssertionResults": { - "id": "AssertionResults", - "path": "lambda-python-arm64/DefaultTest/DeployAssert/LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5/AssertionResults", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnOutput", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests.LambdaInvokeFunction", - "version": "0.0.0" - } - }, - "SingletonFunction1488541a7b23466481b69b4408076b81": { - "id": "SingletonFunction1488541a7b23466481b69b4408076b81", - "path": "lambda-python-arm64/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81", - "children": { - "Staging": { - "id": "Staging", - "path": "lambda-python-arm64/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81/Staging", - "constructInfo": { - "fqn": "@aws-cdk/core.AssetStaging", - "version": "0.0.0" - } - }, - "Role": { - "id": "Role", - "path": "lambda-python-arm64/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81/Role", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnResource", - "version": "0.0.0" - } - }, - "Handler": { - "id": "Handler", - "path": "lambda-python-arm64/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81/Handler", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnResource", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.129" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/core.Stack", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests.IntegTestCase", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests.IntegTest", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/core.App", - "version": "0.0.0" - } - } -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda-python/test/integ.function.arm64.ts b/packages/@aws-cdk/aws-lambda-python/test/integ.function.arm64.ts deleted file mode 100644 index bc82d66404e9e..0000000000000 --- a/packages/@aws-cdk/aws-lambda-python/test/integ.function.arm64.ts +++ /dev/null @@ -1,53 +0,0 @@ -import * as path from 'path'; -import { Architecture, Runtime } from '@aws-cdk/aws-lambda'; -import { App, CfnOutput, Stack, StackProps } from '@aws-cdk/core'; -import { IntegTest, ExpectedResult } from '@aws-cdk/integ-tests'; -import { Construct } from 'constructs'; -import * as lambda from '../lib'; - -/* - * Stack verification steps: - * * aws lambda invoke --function-name --invocation-type Event --payload '"OK"' response.json - */ - -class TestStack extends Stack { - public readonly functionName: string; - constructor(scope: Construct, id: string, props?: StackProps) { - super(scope, id, props); - - const layer = new lambda.PythonLayerVersion(this, 'Layer', { - entry: path.join(__dirname, 'lambda-handler-arm64/layer'), - compatibleRuntimes: [Runtime.PYTHON_3_9], - compatibleArchitectures: [Architecture.ARM_64], - }); - - const fn = new lambda.PythonFunction(this, 'Handler', { - entry: path.join(__dirname, 'lambda-handler-arm64/handler'), - runtime: Runtime.PYTHON_3_9, - architecture: Architecture.ARM_64, - layers: [layer], - }); - this.functionName = fn.functionName; - - new CfnOutput(this, 'FunctionArn', { - value: fn.functionArn, - }); - } -} - -const app = new App(); -const testCase = new TestStack(app, 'integ-lambda-python-arm64'); -const integ = new IntegTest(app, 'lambda-python-arm64', { - testCases: [testCase], - stackUpdateWorkflow: false, -}); - -const invoke = integ.assertions.invokeFunction({ - functionName: testCase.functionName, -}); - -invoke.expect(ExpectedResult.objectLike({ - Payload: '200', -})); - -app.synth(); diff --git a/packages/@aws-cdk/aws-lambda-python/test/lambda-handler-arm64/handler/index.py b/packages/@aws-cdk/aws-lambda-python/test/lambda-handler-arm64/handler/index.py deleted file mode 100644 index 5fbb2425351f2..0000000000000 --- a/packages/@aws-cdk/aws-lambda-python/test/lambda-handler-arm64/handler/index.py +++ /dev/null @@ -1,16 +0,0 @@ -from itertools import count -from flupy import flu - -def handler(event, context): - # Example flupy processing an infinite sequence - pipeline = ( - flu(count()) - .map(lambda x: x**2) - .filter(lambda x: x % 517 == 0) - .chunk(5) - .take(3) - ) - for item in pipeline: - print(item) - - return 200 diff --git a/packages/@aws-cdk/aws-lambda-python/test/lambda-handler-arm64/layer/requirements.txt b/packages/@aws-cdk/aws-lambda-python/test/lambda-handler-arm64/layer/requirements.txt deleted file mode 100644 index 483953ca1676f..0000000000000 --- a/packages/@aws-cdk/aws-lambda-python/test/lambda-handler-arm64/layer/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -# Lock versions of pip packages -typing-extensions==4.4.0 -# Used by this lambda -flupy==1.1.9 diff --git a/packages/@aws-cdk/aws-rds/README.md b/packages/@aws-cdk/aws-rds/README.md index 263ff91a6c08f..35ea8fff042ad 100644 --- a/packages/@aws-cdk/aws-rds/README.md +++ b/packages/@aws-cdk/aws-rds/README.md @@ -50,6 +50,22 @@ By default, the master password will be generated and stored in AWS Secrets Mana Your cluster will be empty by default. To add a default database upon construction, specify the `defaultDatabaseName` attribute. +To use dual-stack mode, specify `NetworkType.DUAL` on the `networkType` property: + +```ts +declare const vpc: ec2.Vpc; // VPC and subnets must have IPv6 CIDR blocks +const cluster = new rds.DatabaseCluster(this, 'Database', { + engine: rds.DatabaseClusterEngine.auroraMysql({ version: rds.AuroraMysqlEngineVersion.VER_3_02_1 }), + instanceProps: { + vpc, + publiclyAccessible: false, + }, + networkType: rds.NetworkType.DUAL, +}); +``` + +For more information about dual-stack mode, see [Working with a DB cluster in a VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html). + Use `DatabaseClusterFromSnapshot` to create a cluster from a snapshot: ```ts @@ -129,6 +145,20 @@ const instance = new rds.DatabaseInstance(this, 'Instance', { }); ``` +To use dual-stack mode, specify `NetworkType.DUAL` on the `networkType` property: + +```ts +declare const vpc: ec2.Vpc; // VPC and subnets must have IPv6 CIDR blocks +const instance = new rds.DatabaseInstance(this, 'Instance', { + engine: rds.DatabaseInstanceEngine.postgres({ version: rds.PostgresEngineVersion.VER_14_4 }), + vpc, + networkType: rds.NetworkType.DUAL, + publiclyAccessible: false, +}); +``` + +For more information about dual-stack mode, see [Working with a DB instance in a VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html). + Use `DatabaseInstanceFromSnapshot` and `DatabaseInstanceReadReplica` to create an instance from snapshot or a source database respectively: diff --git a/packages/@aws-cdk/aws-rds/lib/cluster.ts b/packages/@aws-cdk/aws-rds/lib/cluster.ts index de35ba3df6f5f..c19bf0934ad26 100644 --- a/packages/@aws-cdk/aws-rds/lib/cluster.ts +++ b/packages/@aws-cdk/aws-rds/lib/cluster.ts @@ -11,6 +11,7 @@ import { IClusterEngine } from './cluster-engine'; import { DatabaseClusterAttributes, IDatabaseCluster } from './cluster-ref'; import { DatabaseSecret } from './database-secret'; import { Endpoint } from './endpoint'; +import { NetworkType } from './instance'; import { IParameterGroup, ParameterGroup } from './parameter-group'; import { applyDefaultRotationOptions, defaultDeletionProtection, renderCredentials, setupS3ImportExport, helperRemovalPolicy, renderUnless } from './private/util'; import { BackupProps, Credentials, InstanceProps, PerformanceInsightRetention, RotationSingleUserOptions, RotationMultiUserOptions, SnapshotCredentials } from './props'; @@ -280,6 +281,13 @@ interface DatabaseClusterBaseProps { * @default - true */ readonly copyTagsToSnapshot?: boolean; + + /** + * The network type of the DB instance. + * + * @default - IPV4 + */ + readonly networkType?: NetworkType; } /** @@ -481,6 +489,7 @@ abstract class DatabaseClusterNew extends DatabaseClusterBase { associatedRoles: clusterAssociatedRoles.length > 0 ? clusterAssociatedRoles : undefined, deletionProtection: defaultDeletionProtection(props.deletionProtection, props.removalPolicy), enableIamDatabaseAuthentication: props.iamAuthentication, + networkType: props.networkType, // Admin backtrackWindow: props.backtrackWindow?.toSeconds(), backupRetentionPeriod: props.backup?.retention?.toDays(), diff --git a/packages/@aws-cdk/aws-rds/lib/instance.ts b/packages/@aws-cdk/aws-rds/lib/instance.ts index 9b94564122ff2..f25d53747835a 100644 --- a/packages/@aws-cdk/aws-rds/lib/instance.ts +++ b/packages/@aws-cdk/aws-rds/lib/instance.ts @@ -274,6 +274,21 @@ export enum StorageType { IO1 = 'io1' } +/** + * The network type of the DB instance. + */ +export enum NetworkType { + /** + * IPv4 only network type. + */ + IPV4 = 'IPV4', + + /** + * Dual-stack network type. + */ + DUAL = 'DUAL' +} + /** * Construction properties for a DatabaseInstanceNew */ @@ -617,6 +632,13 @@ export interface DatabaseInstanceNewProps { * @default - `true` if `vpcSubnets` is `subnetType: SubnetType.PUBLIC`, `false` otherwise */ readonly publiclyAccessible?: boolean; + + /** + * The network type of the DB instance. + * + * @default - IPV4 + */ + readonly networkType?: NetworkType; } /** @@ -759,6 +781,7 @@ abstract class DatabaseInstanceNew extends DatabaseInstanceBase implements IData maxAllocatedStorage: props.maxAllocatedStorage, domain: this.domainId, domainIamRoleName: this.domainRole?.roleName, + networkType: props.networkType, }; } diff --git a/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/aws-cdk-rds-cluster-dual-integ.assets.json b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/aws-cdk-rds-cluster-dual-integ.assets.json new file mode 100644 index 0000000000000..87fa48f1eb396 --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/aws-cdk-rds-cluster-dual-integ.assets.json @@ -0,0 +1,19 @@ +{ + "version": "21.0.0", + "files": { + "b5ff1147ce210b6a8be6120310d71e1a1bcb6c64b802b268e0b994bb80eb9ced": { + "source": { + "path": "aws-cdk-rds-cluster-dual-integ.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "b5ff1147ce210b6a8be6120310d71e1a1bcb6c64b802b268e0b994bb80eb9ced.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/aws-cdk-rds-cluster-dual-integ.template.json b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/aws-cdk-rds-cluster-dual-integ.template.json new file mode 100644 index 0000000000000..cfde25cc3bfff --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/aws-cdk-rds-cluster-dual-integ.template.json @@ -0,0 +1,582 @@ +{ + "Resources": { + "VPCB9E5F0B4": { + "Type": "AWS::EC2::VPC", + "Properties": { + "CidrBlock": "10.0.0.0/16", + "EnableDnsHostnames": true, + "EnableDnsSupport": true, + "InstanceTenancy": "default", + "Tags": [ + { + "Key": "Name", + "Value": "aws-cdk-rds-cluster-dual-integ/VPC" + } + ] + } + }, + "VPCPublicSubnet1SubnetB4246D30": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "AvailabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.0.0/18", + "MapPublicIpOnLaunch": true, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Public" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Public" + }, + { + "Key": "Name", + "Value": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1" + } + ] + } + }, + "VPCPublicSubnet1RouteTableFEE4B781": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "Tags": [ + { + "Key": "Name", + "Value": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1" + } + ] + } + }, + "VPCPublicSubnet1RouteTableAssociation0B0896DC": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VPCPublicSubnet1RouteTableFEE4B781" + }, + "SubnetId": { + "Ref": "VPCPublicSubnet1SubnetB4246D30" + } + } + }, + "VPCPublicSubnet1DefaultRoute91CEF279": { + "Type": "AWS::EC2::Route", + "Properties": { + "RouteTableId": { + "Ref": "VPCPublicSubnet1RouteTableFEE4B781" + }, + "DestinationCidrBlock": "0.0.0.0/0", + "GatewayId": { + "Ref": "VPCIGWB7E252D3" + } + }, + "DependsOn": [ + "VPCVPCGW99B986DC" + ] + }, + "VPCPublicSubnet2Subnet74179F39": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "AvailabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.64.0/18", + "MapPublicIpOnLaunch": true, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Public" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Public" + }, + { + "Key": "Name", + "Value": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2" + } + ] + } + }, + "VPCPublicSubnet2RouteTable6F1A15F1": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "Tags": [ + { + "Key": "Name", + "Value": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2" + } + ] + } + }, + "VPCPublicSubnet2RouteTableAssociation5A808732": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VPCPublicSubnet2RouteTable6F1A15F1" + }, + "SubnetId": { + "Ref": "VPCPublicSubnet2Subnet74179F39" + } + } + }, + "VPCPublicSubnet2DefaultRouteB7481BBA": { + "Type": "AWS::EC2::Route", + "Properties": { + "RouteTableId": { + "Ref": "VPCPublicSubnet2RouteTable6F1A15F1" + }, + "DestinationCidrBlock": "0.0.0.0/0", + "GatewayId": { + "Ref": "VPCIGWB7E252D3" + } + }, + "DependsOn": [ + "VPCVPCGW99B986DC" + ] + }, + "VPCIsolatedSubnet1SubnetEBD00FC6": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "AvailabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.128.0/18", + "Ipv6CidrBlock": { + "Fn::Select": [ + 0, + { + "Fn::Cidr": [ + { + "Fn::Select": [ + 0, + { + "Fn::GetAtt": [ + "VPCB9E5F0B4", + "Ipv6CidrBlocks" + ] + } + ] + }, + 256, + "64" + ] + } + ] + }, + "MapPublicIpOnLaunch": false, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Isolated" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Isolated" + }, + { + "Key": "Name", + "Value": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet1" + } + ] + }, + "DependsOn": [ + "Ipv6CidrBlock" + ] + }, + "VPCIsolatedSubnet1RouteTableEB156210": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "Tags": [ + { + "Key": "Name", + "Value": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet1" + } + ] + } + }, + "VPCIsolatedSubnet1RouteTableAssociationA2D18F7C": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VPCIsolatedSubnet1RouteTableEB156210" + }, + "SubnetId": { + "Ref": "VPCIsolatedSubnet1SubnetEBD00FC6" + } + } + }, + "VPCIsolatedSubnet2Subnet4B1C8CAA": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "AvailabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.192.0/18", + "Ipv6CidrBlock": { + "Fn::Select": [ + 1, + { + "Fn::Cidr": [ + { + "Fn::Select": [ + 0, + { + "Fn::GetAtt": [ + "VPCB9E5F0B4", + "Ipv6CidrBlocks" + ] + } + ] + }, + 256, + "64" + ] + } + ] + }, + "MapPublicIpOnLaunch": false, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Isolated" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Isolated" + }, + { + "Key": "Name", + "Value": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet2" + } + ] + }, + "DependsOn": [ + "Ipv6CidrBlock" + ] + }, + "VPCIsolatedSubnet2RouteTable9B4F78DC": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "Tags": [ + { + "Key": "Name", + "Value": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet2" + } + ] + } + }, + "VPCIsolatedSubnet2RouteTableAssociation7BF8E0EB": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VPCIsolatedSubnet2RouteTable9B4F78DC" + }, + "SubnetId": { + "Ref": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + } + }, + "VPCIGWB7E252D3": { + "Type": "AWS::EC2::InternetGateway", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "aws-cdk-rds-cluster-dual-integ/VPC" + } + ] + } + }, + "VPCVPCGW99B986DC": { + "Type": "AWS::EC2::VPCGatewayAttachment", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "InternetGatewayId": { + "Ref": "VPCIGWB7E252D3" + } + } + }, + "Ipv6CidrBlock": { + "Type": "AWS::EC2::VPCCidrBlock", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "AmazonProvidedIpv6CidrBlock": true + } + }, + "DualstackClusterSubnets00EA466E": { + "Type": "AWS::RDS::DBSubnetGroup", + "Properties": { + "DBSubnetGroupDescription": "Subnets for DualstackCluster database", + "SubnetIds": [ + { + "Ref": "VPCIsolatedSubnet1SubnetEBD00FC6" + }, + { + "Ref": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + ] + } + }, + "DualstackClusterSecurityGroupA8CDA208": { + "Type": "AWS::EC2::SecurityGroup", + "Properties": { + "GroupDescription": "RDS security group", + "SecurityGroupEgress": [ + { + "CidrIp": "0.0.0.0/0", + "Description": "Allow all outbound traffic by default", + "IpProtocol": "-1" + } + ], + "VpcId": { + "Ref": "VPCB9E5F0B4" + } + } + }, + "DualstackCluster84A5FE37": { + "Type": "AWS::RDS::DBCluster", + "Properties": { + "Engine": "aurora-mysql", + "CopyTagsToSnapshot": true, + "DBClusterParameterGroupName": "default.aurora-mysql8.0", + "DBSubnetGroupName": { + "Ref": "DualstackClusterSubnets00EA466E" + }, + "EngineVersion": "8.0.mysql_aurora.3.02.0", + "MasterUsername": "admin", + "MasterUserPassword": "7959866cacc02c2d243ecfe177464fe6", + "NetworkType": "DUAL", + "VpcSecurityGroupIds": [ + { + "Fn::GetAtt": [ + "DualstackClusterSecurityGroupA8CDA208", + "GroupId" + ] + } + ] + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "DualstackClusterInstance11BFB1E7F": { + "Type": "AWS::RDS::DBInstance", + "Properties": { + "DBClusterIdentifier": { + "Ref": "DualstackCluster84A5FE37" + }, + "DBInstanceClass": "db.t3.medium", + "DBSubnetGroupName": { + "Ref": "DualstackClusterSubnets00EA466E" + }, + "Engine": "aurora-mysql", + "PubliclyAccessible": false + }, + "DependsOn": [ + "VPCIsolatedSubnet1RouteTableAssociationA2D18F7C", + "VPCIsolatedSubnet2RouteTableAssociation7BF8E0EB" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "DualstackClusterInstance227DA8F29": { + "Type": "AWS::RDS::DBInstance", + "Properties": { + "DBClusterIdentifier": { + "Ref": "DualstackCluster84A5FE37" + }, + "DBInstanceClass": "db.t3.medium", + "DBSubnetGroupName": { + "Ref": "DualstackClusterSubnets00EA466E" + }, + "Engine": "aurora-mysql", + "PubliclyAccessible": false + }, + "DependsOn": [ + "VPCIsolatedSubnet1RouteTableAssociationA2D18F7C", + "VPCIsolatedSubnet2RouteTableAssociation7BF8E0EB" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "Ipv4ClusterSubnets5BD573AA": { + "Type": "AWS::RDS::DBSubnetGroup", + "Properties": { + "DBSubnetGroupDescription": "Subnets for Ipv4Cluster database", + "SubnetIds": [ + { + "Ref": "VPCIsolatedSubnet1SubnetEBD00FC6" + }, + { + "Ref": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + ] + } + }, + "Ipv4ClusterSecurityGroup90341172": { + "Type": "AWS::EC2::SecurityGroup", + "Properties": { + "GroupDescription": "RDS security group", + "SecurityGroupEgress": [ + { + "CidrIp": "0.0.0.0/0", + "Description": "Allow all outbound traffic by default", + "IpProtocol": "-1" + } + ], + "VpcId": { + "Ref": "VPCB9E5F0B4" + } + } + }, + "Ipv4Cluster5F67A28A": { + "Type": "AWS::RDS::DBCluster", + "Properties": { + "Engine": "aurora-mysql", + "CopyTagsToSnapshot": true, + "DBClusterParameterGroupName": "default.aurora-mysql8.0", + "DBSubnetGroupName": { + "Ref": "Ipv4ClusterSubnets5BD573AA" + }, + "EngineVersion": "8.0.mysql_aurora.3.02.0", + "MasterUsername": "admin", + "MasterUserPassword": "7959866cacc02c2d243ecfe177464fe6", + "NetworkType": "IPV4", + "VpcSecurityGroupIds": [ + { + "Fn::GetAtt": [ + "Ipv4ClusterSecurityGroup90341172", + "GroupId" + ] + } + ] + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "Ipv4ClusterInstance1AC5CF4FD": { + "Type": "AWS::RDS::DBInstance", + "Properties": { + "DBClusterIdentifier": { + "Ref": "Ipv4Cluster5F67A28A" + }, + "DBInstanceClass": "db.t3.medium", + "DBSubnetGroupName": { + "Ref": "Ipv4ClusterSubnets5BD573AA" + }, + "Engine": "aurora-mysql", + "PubliclyAccessible": false + }, + "DependsOn": [ + "VPCIsolatedSubnet1RouteTableAssociationA2D18F7C", + "VPCIsolatedSubnet2RouteTableAssociation7BF8E0EB" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "Ipv4ClusterInstance20433FFCA": { + "Type": "AWS::RDS::DBInstance", + "Properties": { + "DBClusterIdentifier": { + "Ref": "Ipv4Cluster5F67A28A" + }, + "DBInstanceClass": "db.t3.medium", + "DBSubnetGroupName": { + "Ref": "Ipv4ClusterSubnets5BD573AA" + }, + "Engine": "aurora-mysql", + "PubliclyAccessible": false + }, + "DependsOn": [ + "VPCIsolatedSubnet1RouteTableAssociationA2D18F7C", + "VPCIsolatedSubnet2RouteTableAssociation7BF8E0EB" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/cdk.out b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/cdk.out similarity index 100% rename from packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/cdk.out rename to packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/cdk.out diff --git a/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/clusterdualtestDefaultTestDeployAssert0AE5E6E0.assets.json b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/clusterdualtestDefaultTestDeployAssert0AE5E6E0.assets.json new file mode 100644 index 0000000000000..60240c020964e --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/clusterdualtestDefaultTestDeployAssert0AE5E6E0.assets.json @@ -0,0 +1,19 @@ +{ + "version": "21.0.0", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "source": { + "path": "clusterdualtestDefaultTestDeployAssert0AE5E6E0.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/clusterdualtestDefaultTestDeployAssert0AE5E6E0.template.json b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/clusterdualtestDefaultTestDeployAssert0AE5E6E0.template.json new file mode 100644 index 0000000000000..ad9d0fb73d1dd --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/clusterdualtestDefaultTestDeployAssert0AE5E6E0.template.json @@ -0,0 +1,36 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/integ.json b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/integ.json new file mode 100644 index 0000000000000..a391b0563d807 --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/integ.json @@ -0,0 +1,12 @@ +{ + "version": "21.0.0", + "testCases": { + "cluster-dual-test/DefaultTest": { + "stacks": [ + "aws-cdk-rds-cluster-dual-integ" + ], + "assertionStack": "cluster-dual-test/DefaultTest/DeployAssert", + "assertionStackName": "clusterdualtestDefaultTestDeployAssert0AE5E6E0" + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/manifest.json new file mode 100644 index 0000000000000..9202aaaf9bb29 --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/manifest.json @@ -0,0 +1,273 @@ +{ + "version": "21.0.0", + "artifacts": { + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } + }, + "aws-cdk-rds-cluster-dual-integ.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "aws-cdk-rds-cluster-dual-integ.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "aws-cdk-rds-cluster-dual-integ": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "aws-cdk-rds-cluster-dual-integ.template.json", + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b5ff1147ce210b6a8be6120310d71e1a1bcb6c64b802b268e0b994bb80eb9ced.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "aws-cdk-rds-cluster-dual-integ.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "aws-cdk-rds-cluster-dual-integ.assets" + ], + "metadata": { + "/aws-cdk-rds-cluster-dual-integ/VPC/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCB9E5F0B4" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet1SubnetB4246D30" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet1RouteTableFEE4B781" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet1RouteTableAssociation0B0896DC" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1/DefaultRoute": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet1DefaultRoute91CEF279" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet2Subnet74179F39" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet2RouteTable6F1A15F1" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet2RouteTableAssociation5A808732" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2/DefaultRoute": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet2DefaultRouteB7481BBA" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet1/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIsolatedSubnet1SubnetEBD00FC6" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet1/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIsolatedSubnet1RouteTableEB156210" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet1/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIsolatedSubnet1RouteTableAssociationA2D18F7C" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet2/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet2/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIsolatedSubnet2RouteTable9B4F78DC" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet2/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIsolatedSubnet2RouteTableAssociation7BF8E0EB" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/IGW": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIGWB7E252D3" + } + ], + "/aws-cdk-rds-cluster-dual-integ/VPC/VPCGW": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCVPCGW99B986DC" + } + ], + "/aws-cdk-rds-cluster-dual-integ/Ipv6CidrBlock": [ + { + "type": "aws:cdk:logicalId", + "data": "Ipv6CidrBlock" + } + ], + "/aws-cdk-rds-cluster-dual-integ/DualstackCluster/Subnets/Default": [ + { + "type": "aws:cdk:logicalId", + "data": "DualstackClusterSubnets00EA466E" + } + ], + "/aws-cdk-rds-cluster-dual-integ/DualstackCluster/SecurityGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "DualstackClusterSecurityGroupA8CDA208" + } + ], + "/aws-cdk-rds-cluster-dual-integ/DualstackCluster/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "DualstackCluster84A5FE37" + } + ], + "/aws-cdk-rds-cluster-dual-integ/DualstackCluster/Instance1": [ + { + "type": "aws:cdk:logicalId", + "data": "DualstackClusterInstance11BFB1E7F" + } + ], + "/aws-cdk-rds-cluster-dual-integ/DualstackCluster/Instance2": [ + { + "type": "aws:cdk:logicalId", + "data": "DualstackClusterInstance227DA8F29" + } + ], + "/aws-cdk-rds-cluster-dual-integ/Ipv4Cluster/Subnets/Default": [ + { + "type": "aws:cdk:logicalId", + "data": "Ipv4ClusterSubnets5BD573AA" + } + ], + "/aws-cdk-rds-cluster-dual-integ/Ipv4Cluster/SecurityGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "Ipv4ClusterSecurityGroup90341172" + } + ], + "/aws-cdk-rds-cluster-dual-integ/Ipv4Cluster/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "Ipv4Cluster5F67A28A" + } + ], + "/aws-cdk-rds-cluster-dual-integ/Ipv4Cluster/Instance1": [ + { + "type": "aws:cdk:logicalId", + "data": "Ipv4ClusterInstance1AC5CF4FD" + } + ], + "/aws-cdk-rds-cluster-dual-integ/Ipv4Cluster/Instance2": [ + { + "type": "aws:cdk:logicalId", + "data": "Ipv4ClusterInstance20433FFCA" + } + ], + "/aws-cdk-rds-cluster-dual-integ/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/aws-cdk-rds-cluster-dual-integ/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "aws-cdk-rds-cluster-dual-integ" + }, + "clusterdualtestDefaultTestDeployAssert0AE5E6E0.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "clusterdualtestDefaultTestDeployAssert0AE5E6E0.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "clusterdualtestDefaultTestDeployAssert0AE5E6E0": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "clusterdualtestDefaultTestDeployAssert0AE5E6E0.template.json", + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "clusterdualtestDefaultTestDeployAssert0AE5E6E0.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "clusterdualtestDefaultTestDeployAssert0AE5E6E0.assets" + ], + "metadata": { + "/cluster-dual-test/DefaultTest/DeployAssert/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/cluster-dual-test/DefaultTest/DeployAssert/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "cluster-dual-test/DefaultTest/DeployAssert" + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/tree.json b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/tree.json new file mode 100644 index 0000000000000..abf7114feab7f --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/cluster-dual.integ.snapshot/tree.json @@ -0,0 +1,953 @@ +{ + "version": "tree-0.1", + "tree": { + "id": "App", + "path": "", + "children": { + "Tree": { + "id": "Tree", + "path": "Tree", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.1.133" + } + }, + "aws-cdk-rds-cluster-dual-integ": { + "id": "aws-cdk-rds-cluster-dual-integ", + "path": "aws-cdk-rds-cluster-dual-integ", + "children": { + "VPC": { + "id": "VPC", + "path": "aws-cdk-rds-cluster-dual-integ/VPC", + "children": { + "Resource": { + "id": "Resource", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::VPC", + "aws:cdk:cloudformation:props": { + "cidrBlock": "10.0.0.0/16", + "enableDnsHostnames": true, + "enableDnsSupport": true, + "instanceTenancy": "default", + "tags": [ + { + "key": "Name", + "value": "aws-cdk-rds-cluster-dual-integ/VPC" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnVPC", + "version": "0.0.0" + } + }, + "PublicSubnet1": { + "id": "PublicSubnet1", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1", + "children": { + "Subnet": { + "id": "Subnet", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1/Subnet", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::Subnet", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "availabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "cidrBlock": "10.0.0.0/18", + "mapPublicIpOnLaunch": true, + "tags": [ + { + "key": "aws-cdk:subnet-name", + "value": "Public" + }, + { + "key": "aws-cdk:subnet-type", + "value": "Public" + }, + { + "key": "Name", + "value": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnet", + "version": "0.0.0" + } + }, + "Acl": { + "id": "Acl", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1/Acl", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "RouteTable": { + "id": "RouteTable", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1/RouteTable", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::RouteTable", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "tags": [ + { + "key": "Name", + "value": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnRouteTable", + "version": "0.0.0" + } + }, + "RouteTableAssociation": { + "id": "RouteTableAssociation", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1/RouteTableAssociation", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::SubnetRouteTableAssociation", + "aws:cdk:cloudformation:props": { + "routeTableId": { + "Ref": "VPCPublicSubnet1RouteTableFEE4B781" + }, + "subnetId": { + "Ref": "VPCPublicSubnet1SubnetB4246D30" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnetRouteTableAssociation", + "version": "0.0.0" + } + }, + "DefaultRoute": { + "id": "DefaultRoute", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet1/DefaultRoute", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::Route", + "aws:cdk:cloudformation:props": { + "routeTableId": { + "Ref": "VPCPublicSubnet1RouteTableFEE4B781" + }, + "destinationCidrBlock": "0.0.0.0/0", + "gatewayId": { + "Ref": "VPCIGWB7E252D3" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnRoute", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.PublicSubnet", + "version": "0.0.0" + } + }, + "PublicSubnet2": { + "id": "PublicSubnet2", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2", + "children": { + "Subnet": { + "id": "Subnet", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2/Subnet", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::Subnet", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "availabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "cidrBlock": "10.0.64.0/18", + "mapPublicIpOnLaunch": true, + "tags": [ + { + "key": "aws-cdk:subnet-name", + "value": "Public" + }, + { + "key": "aws-cdk:subnet-type", + "value": "Public" + }, + { + "key": "Name", + "value": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnet", + "version": "0.0.0" + } + }, + "Acl": { + "id": "Acl", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2/Acl", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "RouteTable": { + "id": "RouteTable", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2/RouteTable", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::RouteTable", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "tags": [ + { + "key": "Name", + "value": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnRouteTable", + "version": "0.0.0" + } + }, + "RouteTableAssociation": { + "id": "RouteTableAssociation", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2/RouteTableAssociation", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::SubnetRouteTableAssociation", + "aws:cdk:cloudformation:props": { + "routeTableId": { + "Ref": "VPCPublicSubnet2RouteTable6F1A15F1" + }, + "subnetId": { + "Ref": "VPCPublicSubnet2Subnet74179F39" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnetRouteTableAssociation", + "version": "0.0.0" + } + }, + "DefaultRoute": { + "id": "DefaultRoute", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/PublicSubnet2/DefaultRoute", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::Route", + "aws:cdk:cloudformation:props": { + "routeTableId": { + "Ref": "VPCPublicSubnet2RouteTable6F1A15F1" + }, + "destinationCidrBlock": "0.0.0.0/0", + "gatewayId": { + "Ref": "VPCIGWB7E252D3" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnRoute", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.PublicSubnet", + "version": "0.0.0" + } + }, + "IsolatedSubnet1": { + "id": "IsolatedSubnet1", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet1", + "children": { + "Subnet": { + "id": "Subnet", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet1/Subnet", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::Subnet", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "availabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "cidrBlock": "10.0.128.0/18", + "ipv6CidrBlock": { + "Fn::Select": [ + 0, + { + "Fn::Cidr": [ + { + "Fn::Select": [ + 0, + { + "Fn::GetAtt": [ + "VPCB9E5F0B4", + "Ipv6CidrBlocks" + ] + } + ] + }, + 256, + "64" + ] + } + ] + }, + "mapPublicIpOnLaunch": false, + "tags": [ + { + "key": "aws-cdk:subnet-name", + "value": "Isolated" + }, + { + "key": "aws-cdk:subnet-type", + "value": "Isolated" + }, + { + "key": "Name", + "value": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet1" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnet", + "version": "0.0.0" + } + }, + "Acl": { + "id": "Acl", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet1/Acl", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "RouteTable": { + "id": "RouteTable", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet1/RouteTable", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::RouteTable", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "tags": [ + { + "key": "Name", + "value": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet1" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnRouteTable", + "version": "0.0.0" + } + }, + "RouteTableAssociation": { + "id": "RouteTableAssociation", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet1/RouteTableAssociation", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::SubnetRouteTableAssociation", + "aws:cdk:cloudformation:props": { + "routeTableId": { + "Ref": "VPCIsolatedSubnet1RouteTableEB156210" + }, + "subnetId": { + "Ref": "VPCIsolatedSubnet1SubnetEBD00FC6" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnetRouteTableAssociation", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.PrivateSubnet", + "version": "0.0.0" + } + }, + "IsolatedSubnet2": { + "id": "IsolatedSubnet2", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet2", + "children": { + "Subnet": { + "id": "Subnet", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet2/Subnet", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::Subnet", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "availabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "cidrBlock": "10.0.192.0/18", + "ipv6CidrBlock": { + "Fn::Select": [ + 1, + { + "Fn::Cidr": [ + { + "Fn::Select": [ + 0, + { + "Fn::GetAtt": [ + "VPCB9E5F0B4", + "Ipv6CidrBlocks" + ] + } + ] + }, + 256, + "64" + ] + } + ] + }, + "mapPublicIpOnLaunch": false, + "tags": [ + { + "key": "aws-cdk:subnet-name", + "value": "Isolated" + }, + { + "key": "aws-cdk:subnet-type", + "value": "Isolated" + }, + { + "key": "Name", + "value": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet2" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnet", + "version": "0.0.0" + } + }, + "Acl": { + "id": "Acl", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet2/Acl", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "RouteTable": { + "id": "RouteTable", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet2/RouteTable", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::RouteTable", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "tags": [ + { + "key": "Name", + "value": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet2" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnRouteTable", + "version": "0.0.0" + } + }, + "RouteTableAssociation": { + "id": "RouteTableAssociation", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/IsolatedSubnet2/RouteTableAssociation", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::SubnetRouteTableAssociation", + "aws:cdk:cloudformation:props": { + "routeTableId": { + "Ref": "VPCIsolatedSubnet2RouteTable9B4F78DC" + }, + "subnetId": { + "Ref": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnetRouteTableAssociation", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.PrivateSubnet", + "version": "0.0.0" + } + }, + "IGW": { + "id": "IGW", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/IGW", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::InternetGateway", + "aws:cdk:cloudformation:props": { + "tags": [ + { + "key": "Name", + "value": "aws-cdk-rds-cluster-dual-integ/VPC" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnInternetGateway", + "version": "0.0.0" + } + }, + "VPCGW": { + "id": "VPCGW", + "path": "aws-cdk-rds-cluster-dual-integ/VPC/VPCGW", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::VPCGatewayAttachment", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "internetGatewayId": { + "Ref": "VPCIGWB7E252D3" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnVPCGatewayAttachment", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.Vpc", + "version": "0.0.0" + } + }, + "Ipv6CidrBlock": { + "id": "Ipv6CidrBlock", + "path": "aws-cdk-rds-cluster-dual-integ/Ipv6CidrBlock", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::VPCCidrBlock", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "amazonProvidedIpv6CidrBlock": true + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnVPCCidrBlock", + "version": "0.0.0" + } + }, + "DualstackCluster": { + "id": "DualstackCluster", + "path": "aws-cdk-rds-cluster-dual-integ/DualstackCluster", + "children": { + "Subnets": { + "id": "Subnets", + "path": "aws-cdk-rds-cluster-dual-integ/DualstackCluster/Subnets", + "children": { + "Default": { + "id": "Default", + "path": "aws-cdk-rds-cluster-dual-integ/DualstackCluster/Subnets/Default", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::RDS::DBSubnetGroup", + "aws:cdk:cloudformation:props": { + "dbSubnetGroupDescription": "Subnets for DualstackCluster database", + "subnetIds": [ + { + "Ref": "VPCIsolatedSubnet1SubnetEBD00FC6" + }, + { + "Ref": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.CfnDBSubnetGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.SubnetGroup", + "version": "0.0.0" + } + }, + "SecurityGroup": { + "id": "SecurityGroup", + "path": "aws-cdk-rds-cluster-dual-integ/DualstackCluster/SecurityGroup", + "children": { + "Resource": { + "id": "Resource", + "path": "aws-cdk-rds-cluster-dual-integ/DualstackCluster/SecurityGroup/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::SecurityGroup", + "aws:cdk:cloudformation:props": { + "groupDescription": "RDS security group", + "securityGroupEgress": [ + { + "cidrIp": "0.0.0.0/0", + "description": "Allow all outbound traffic by default", + "ipProtocol": "-1" + } + ], + "vpcId": { + "Ref": "VPCB9E5F0B4" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSecurityGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.SecurityGroup", + "version": "0.0.0" + } + }, + "AuroraMySqlDatabaseClusterEngineDefaultParameterGroup": { + "id": "AuroraMySqlDatabaseClusterEngineDefaultParameterGroup", + "path": "aws-cdk-rds-cluster-dual-integ/DualstackCluster/AuroraMySqlDatabaseClusterEngineDefaultParameterGroup", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-rds-cluster-dual-integ/DualstackCluster/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::RDS::DBCluster", + "aws:cdk:cloudformation:props": { + "engine": "aurora-mysql", + "copyTagsToSnapshot": true, + "dbClusterParameterGroupName": "default.aurora-mysql8.0", + "dbSubnetGroupName": { + "Ref": "DualstackClusterSubnets00EA466E" + }, + "engineVersion": "8.0.mysql_aurora.3.02.0", + "masterUsername": "admin", + "masterUserPassword": "7959866cacc02c2d243ecfe177464fe6", + "networkType": "DUAL", + "vpcSecurityGroupIds": [ + { + "Fn::GetAtt": [ + "DualstackClusterSecurityGroupA8CDA208", + "GroupId" + ] + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.CfnDBCluster", + "version": "0.0.0" + } + }, + "Instance1": { + "id": "Instance1", + "path": "aws-cdk-rds-cluster-dual-integ/DualstackCluster/Instance1", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::RDS::DBInstance", + "aws:cdk:cloudformation:props": { + "dbClusterIdentifier": { + "Ref": "DualstackCluster84A5FE37" + }, + "dbInstanceClass": "db.t3.medium", + "dbSubnetGroupName": { + "Ref": "DualstackClusterSubnets00EA466E" + }, + "engine": "aurora-mysql", + "publiclyAccessible": false + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.CfnDBInstance", + "version": "0.0.0" + } + }, + "Instance2": { + "id": "Instance2", + "path": "aws-cdk-rds-cluster-dual-integ/DualstackCluster/Instance2", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::RDS::DBInstance", + "aws:cdk:cloudformation:props": { + "dbClusterIdentifier": { + "Ref": "DualstackCluster84A5FE37" + }, + "dbInstanceClass": "db.t3.medium", + "dbSubnetGroupName": { + "Ref": "DualstackClusterSubnets00EA466E" + }, + "engine": "aurora-mysql", + "publiclyAccessible": false + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.CfnDBInstance", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.DatabaseCluster", + "version": "0.0.0" + } + }, + "Ipv4Cluster": { + "id": "Ipv4Cluster", + "path": "aws-cdk-rds-cluster-dual-integ/Ipv4Cluster", + "children": { + "Subnets": { + "id": "Subnets", + "path": "aws-cdk-rds-cluster-dual-integ/Ipv4Cluster/Subnets", + "children": { + "Default": { + "id": "Default", + "path": "aws-cdk-rds-cluster-dual-integ/Ipv4Cluster/Subnets/Default", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::RDS::DBSubnetGroup", + "aws:cdk:cloudformation:props": { + "dbSubnetGroupDescription": "Subnets for Ipv4Cluster database", + "subnetIds": [ + { + "Ref": "VPCIsolatedSubnet1SubnetEBD00FC6" + }, + { + "Ref": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.CfnDBSubnetGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.SubnetGroup", + "version": "0.0.0" + } + }, + "SecurityGroup": { + "id": "SecurityGroup", + "path": "aws-cdk-rds-cluster-dual-integ/Ipv4Cluster/SecurityGroup", + "children": { + "Resource": { + "id": "Resource", + "path": "aws-cdk-rds-cluster-dual-integ/Ipv4Cluster/SecurityGroup/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::SecurityGroup", + "aws:cdk:cloudformation:props": { + "groupDescription": "RDS security group", + "securityGroupEgress": [ + { + "cidrIp": "0.0.0.0/0", + "description": "Allow all outbound traffic by default", + "ipProtocol": "-1" + } + ], + "vpcId": { + "Ref": "VPCB9E5F0B4" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSecurityGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.SecurityGroup", + "version": "0.0.0" + } + }, + "AuroraMySqlDatabaseClusterEngineDefaultParameterGroup": { + "id": "AuroraMySqlDatabaseClusterEngineDefaultParameterGroup", + "path": "aws-cdk-rds-cluster-dual-integ/Ipv4Cluster/AuroraMySqlDatabaseClusterEngineDefaultParameterGroup", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-rds-cluster-dual-integ/Ipv4Cluster/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::RDS::DBCluster", + "aws:cdk:cloudformation:props": { + "engine": "aurora-mysql", + "copyTagsToSnapshot": true, + "dbClusterParameterGroupName": "default.aurora-mysql8.0", + "dbSubnetGroupName": { + "Ref": "Ipv4ClusterSubnets5BD573AA" + }, + "engineVersion": "8.0.mysql_aurora.3.02.0", + "masterUsername": "admin", + "masterUserPassword": "7959866cacc02c2d243ecfe177464fe6", + "networkType": "IPV4", + "vpcSecurityGroupIds": [ + { + "Fn::GetAtt": [ + "Ipv4ClusterSecurityGroup90341172", + "GroupId" + ] + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.CfnDBCluster", + "version": "0.0.0" + } + }, + "Instance1": { + "id": "Instance1", + "path": "aws-cdk-rds-cluster-dual-integ/Ipv4Cluster/Instance1", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::RDS::DBInstance", + "aws:cdk:cloudformation:props": { + "dbClusterIdentifier": { + "Ref": "Ipv4Cluster5F67A28A" + }, + "dbInstanceClass": "db.t3.medium", + "dbSubnetGroupName": { + "Ref": "Ipv4ClusterSubnets5BD573AA" + }, + "engine": "aurora-mysql", + "publiclyAccessible": false + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.CfnDBInstance", + "version": "0.0.0" + } + }, + "Instance2": { + "id": "Instance2", + "path": "aws-cdk-rds-cluster-dual-integ/Ipv4Cluster/Instance2", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::RDS::DBInstance", + "aws:cdk:cloudformation:props": { + "dbClusterIdentifier": { + "Ref": "Ipv4Cluster5F67A28A" + }, + "dbInstanceClass": "db.t3.medium", + "dbSubnetGroupName": { + "Ref": "Ipv4ClusterSubnets5BD573AA" + }, + "engine": "aurora-mysql", + "publiclyAccessible": false + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.CfnDBInstance", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.DatabaseCluster", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/core.Stack", + "version": "0.0.0" + } + }, + "cluster-dual-test": { + "id": "cluster-dual-test", + "path": "cluster-dual-test", + "children": { + "DefaultTest": { + "id": "DefaultTest", + "path": "cluster-dual-test/DefaultTest", + "children": { + "Default": { + "id": "Default", + "path": "cluster-dual-test/DefaultTest/Default", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.1.133" + } + }, + "DeployAssert": { + "id": "DeployAssert", + "path": "cluster-dual-test/DefaultTest/DeployAssert", + "constructInfo": { + "fqn": "@aws-cdk/core.Stack", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests.IntegTestCase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests.IntegTest", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/core.App", + "version": "0.0.0" + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/cluster.test.ts b/packages/@aws-cdk/aws-rds/test/cluster.test.ts index 397a3828b200a..8c1ce0d86ee2f 100644 --- a/packages/@aws-cdk/aws-rds/test/cluster.test.ts +++ b/packages/@aws-cdk/aws-rds/test/cluster.test.ts @@ -8,7 +8,7 @@ import * as cdk from '@aws-cdk/core'; import { AuroraEngineVersion, AuroraMysqlEngineVersion, AuroraPostgresEngineVersion, CfnDBCluster, Credentials, DatabaseCluster, DatabaseClusterEngine, DatabaseClusterFromSnapshot, ParameterGroup, PerformanceInsightRetention, SubnetGroup, DatabaseSecret, - DatabaseInstanceEngine, SqlServerEngineVersion, SnapshotCredentials, InstanceUpdateBehaviour, + DatabaseInstanceEngine, SqlServerEngineVersion, SnapshotCredentials, InstanceUpdateBehaviour, NetworkType, } from '../lib'; describe('cluster', () => { @@ -457,6 +457,44 @@ describe('cluster', () => { }).toThrow(/You cannot specify both parameterGroup and parameters/); }); + test('instance with IPv4 network type', () => { + // GIVEN + const stack = testStack(); + const vpc = new ec2.Vpc(stack, 'VPC'); + + // WHEN + new DatabaseCluster(stack, 'Database', { + engine: DatabaseClusterEngine.AURORA_MYSQL, + instanceProps: { + vpc, + }, + networkType: NetworkType.IPV4, + }); + + Template.fromStack(stack).hasResourceProperties('AWS::RDS::DBCluster', { + NetworkType: 'IPV4', + }); + }); + + test('instance with dual-stack network type', () => { + // GIVEN + const stack = testStack(); + const vpc = new ec2.Vpc(stack, 'VPC'); + + // WHEN + new DatabaseCluster(stack, 'Database', { + engine: DatabaseClusterEngine.AURORA_MYSQL, + instanceProps: { + vpc, + }, + networkType: NetworkType.DUAL, + }); + + Template.fromStack(stack).hasResourceProperties('AWS::RDS::DBCluster', { + NetworkType: 'DUAL', + }); + }); + describe('performance insights', () => { test('cluster with all performance insights properties', () => { // GIVEN diff --git a/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/aws-cdk-rds-instance-dual-integ.assets.json b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/aws-cdk-rds-instance-dual-integ.assets.json new file mode 100644 index 0000000000000..bf08182dff29a --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/aws-cdk-rds-instance-dual-integ.assets.json @@ -0,0 +1,19 @@ +{ + "version": "21.0.0", + "files": { + "2cfbf4ae15417959d859c3a040d7c531ebed16f50bc7b64e958d09092535d712": { + "source": { + "path": "aws-cdk-rds-instance-dual-integ.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "2cfbf4ae15417959d859c3a040d7c531ebed16f50bc7b64e958d09092535d712.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/aws-cdk-rds-instance-dual-integ.template.json b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/aws-cdk-rds-instance-dual-integ.template.json new file mode 100644 index 0000000000000..292036af685f2 --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/aws-cdk-rds-instance-dual-integ.template.json @@ -0,0 +1,510 @@ +{ + "Resources": { + "VPCB9E5F0B4": { + "Type": "AWS::EC2::VPC", + "Properties": { + "CidrBlock": "10.0.0.0/16", + "EnableDnsHostnames": true, + "EnableDnsSupport": true, + "InstanceTenancy": "default", + "Tags": [ + { + "Key": "Name", + "Value": "aws-cdk-rds-instance-dual-integ/VPC" + } + ] + } + }, + "VPCPublicSubnet1SubnetB4246D30": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "AvailabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.0.0/18", + "MapPublicIpOnLaunch": true, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Public" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Public" + }, + { + "Key": "Name", + "Value": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1" + } + ] + } + }, + "VPCPublicSubnet1RouteTableFEE4B781": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "Tags": [ + { + "Key": "Name", + "Value": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1" + } + ] + } + }, + "VPCPublicSubnet1RouteTableAssociation0B0896DC": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VPCPublicSubnet1RouteTableFEE4B781" + }, + "SubnetId": { + "Ref": "VPCPublicSubnet1SubnetB4246D30" + } + } + }, + "VPCPublicSubnet1DefaultRoute91CEF279": { + "Type": "AWS::EC2::Route", + "Properties": { + "RouteTableId": { + "Ref": "VPCPublicSubnet1RouteTableFEE4B781" + }, + "DestinationCidrBlock": "0.0.0.0/0", + "GatewayId": { + "Ref": "VPCIGWB7E252D3" + } + }, + "DependsOn": [ + "VPCVPCGW99B986DC" + ] + }, + "VPCPublicSubnet2Subnet74179F39": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "AvailabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.64.0/18", + "MapPublicIpOnLaunch": true, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Public" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Public" + }, + { + "Key": "Name", + "Value": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2" + } + ] + } + }, + "VPCPublicSubnet2RouteTable6F1A15F1": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "Tags": [ + { + "Key": "Name", + "Value": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2" + } + ] + } + }, + "VPCPublicSubnet2RouteTableAssociation5A808732": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VPCPublicSubnet2RouteTable6F1A15F1" + }, + "SubnetId": { + "Ref": "VPCPublicSubnet2Subnet74179F39" + } + } + }, + "VPCPublicSubnet2DefaultRouteB7481BBA": { + "Type": "AWS::EC2::Route", + "Properties": { + "RouteTableId": { + "Ref": "VPCPublicSubnet2RouteTable6F1A15F1" + }, + "DestinationCidrBlock": "0.0.0.0/0", + "GatewayId": { + "Ref": "VPCIGWB7E252D3" + } + }, + "DependsOn": [ + "VPCVPCGW99B986DC" + ] + }, + "VPCIsolatedSubnet1SubnetEBD00FC6": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "AvailabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.128.0/18", + "Ipv6CidrBlock": { + "Fn::Select": [ + 0, + { + "Fn::Cidr": [ + { + "Fn::Select": [ + 0, + { + "Fn::GetAtt": [ + "VPCB9E5F0B4", + "Ipv6CidrBlocks" + ] + } + ] + }, + 256, + "64" + ] + } + ] + }, + "MapPublicIpOnLaunch": false, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Isolated" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Isolated" + }, + { + "Key": "Name", + "Value": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet1" + } + ] + }, + "DependsOn": [ + "Ipv6CidrBlock" + ] + }, + "VPCIsolatedSubnet1RouteTableEB156210": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "Tags": [ + { + "Key": "Name", + "Value": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet1" + } + ] + } + }, + "VPCIsolatedSubnet1RouteTableAssociationA2D18F7C": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VPCIsolatedSubnet1RouteTableEB156210" + }, + "SubnetId": { + "Ref": "VPCIsolatedSubnet1SubnetEBD00FC6" + } + } + }, + "VPCIsolatedSubnet2Subnet4B1C8CAA": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "AvailabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.192.0/18", + "Ipv6CidrBlock": { + "Fn::Select": [ + 1, + { + "Fn::Cidr": [ + { + "Fn::Select": [ + 0, + { + "Fn::GetAtt": [ + "VPCB9E5F0B4", + "Ipv6CidrBlocks" + ] + } + ] + }, + 256, + "64" + ] + } + ] + }, + "MapPublicIpOnLaunch": false, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Isolated" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Isolated" + }, + { + "Key": "Name", + "Value": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet2" + } + ] + }, + "DependsOn": [ + "Ipv6CidrBlock" + ] + }, + "VPCIsolatedSubnet2RouteTable9B4F78DC": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "Tags": [ + { + "Key": "Name", + "Value": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet2" + } + ] + } + }, + "VPCIsolatedSubnet2RouteTableAssociation7BF8E0EB": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VPCIsolatedSubnet2RouteTable9B4F78DC" + }, + "SubnetId": { + "Ref": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + } + }, + "VPCIGWB7E252D3": { + "Type": "AWS::EC2::InternetGateway", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "aws-cdk-rds-instance-dual-integ/VPC" + } + ] + } + }, + "VPCVPCGW99B986DC": { + "Type": "AWS::EC2::VPCGatewayAttachment", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "InternetGatewayId": { + "Ref": "VPCIGWB7E252D3" + } + } + }, + "Ipv6CidrBlock": { + "Type": "AWS::EC2::VPCCidrBlock", + "Properties": { + "VpcId": { + "Ref": "VPCB9E5F0B4" + }, + "AmazonProvidedIpv6CidrBlock": true + } + }, + "DualstackInstanceSubnetGroupB16A837F": { + "Type": "AWS::RDS::DBSubnetGroup", + "Properties": { + "DBSubnetGroupDescription": "Subnet group for DualstackInstance database", + "SubnetIds": [ + { + "Ref": "VPCIsolatedSubnet1SubnetEBD00FC6" + }, + { + "Ref": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + ] + } + }, + "DualstackInstanceSecurityGroupE7C05542": { + "Type": "AWS::EC2::SecurityGroup", + "Properties": { + "GroupDescription": "Security group for DualstackInstance database", + "SecurityGroupEgress": [ + { + "CidrIp": "0.0.0.0/0", + "Description": "Allow all outbound traffic by default", + "IpProtocol": "-1" + } + ], + "VpcId": { + "Ref": "VPCB9E5F0B4" + } + } + }, + "DualstackInstance4CB1897E": { + "Type": "AWS::RDS::DBInstance", + "Properties": { + "AllocatedStorage": "100", + "CopyTagsToSnapshot": true, + "DBInstanceClass": "db.t3.micro", + "DBSubnetGroupName": { + "Ref": "DualstackInstanceSubnetGroupB16A837F" + }, + "Engine": "postgres", + "EngineVersion": "11.12", + "MasterUsername": "postgres", + "MasterUserPassword": "7959866cacc02c2d243ecfe177464fe6", + "MultiAZ": false, + "NetworkType": "DUAL", + "PubliclyAccessible": false, + "StorageType": "gp2", + "VPCSecurityGroups": [ + { + "Fn::GetAtt": [ + "DualstackInstanceSecurityGroupE7C05542", + "GroupId" + ] + } + ] + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "Ipv4InstanceSubnetGroup6E04EDDC": { + "Type": "AWS::RDS::DBSubnetGroup", + "Properties": { + "DBSubnetGroupDescription": "Subnet group for Ipv4Instance database", + "SubnetIds": [ + { + "Ref": "VPCIsolatedSubnet1SubnetEBD00FC6" + }, + { + "Ref": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + ] + } + }, + "Ipv4InstanceSecurityGroup0E80CE00": { + "Type": "AWS::EC2::SecurityGroup", + "Properties": { + "GroupDescription": "Security group for Ipv4Instance database", + "SecurityGroupEgress": [ + { + "CidrIp": "0.0.0.0/0", + "Description": "Allow all outbound traffic by default", + "IpProtocol": "-1" + } + ], + "VpcId": { + "Ref": "VPCB9E5F0B4" + } + } + }, + "Ipv4Instance75869831": { + "Type": "AWS::RDS::DBInstance", + "Properties": { + "AllocatedStorage": "100", + "CopyTagsToSnapshot": true, + "DBInstanceClass": "db.t3.micro", + "DBSubnetGroupName": { + "Ref": "Ipv4InstanceSubnetGroup6E04EDDC" + }, + "Engine": "postgres", + "EngineVersion": "11.12", + "MasterUsername": "postgres", + "MasterUserPassword": "7959866cacc02c2d243ecfe177464fe6", + "MultiAZ": false, + "NetworkType": "IPV4", + "PubliclyAccessible": false, + "StorageType": "gp2", + "VPCSecurityGroups": [ + { + "Fn::GetAtt": [ + "Ipv4InstanceSecurityGroup0E80CE00", + "GroupId" + ] + } + ] + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/cdk.out b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/cdk.out new file mode 100644 index 0000000000000..8ecc185e9dbee --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/cdk.out @@ -0,0 +1 @@ +{"version":"21.0.0"} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/instancedualtestDefaultTestDeployAssertD87FA35D.assets.json b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/instancedualtestDefaultTestDeployAssertD87FA35D.assets.json new file mode 100644 index 0000000000000..d2761711e0cb1 --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/instancedualtestDefaultTestDeployAssertD87FA35D.assets.json @@ -0,0 +1,19 @@ +{ + "version": "21.0.0", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "source": { + "path": "instancedualtestDefaultTestDeployAssertD87FA35D.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/instancedualtestDefaultTestDeployAssertD87FA35D.template.json b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/instancedualtestDefaultTestDeployAssertD87FA35D.template.json new file mode 100644 index 0000000000000..ad9d0fb73d1dd --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/instancedualtestDefaultTestDeployAssertD87FA35D.template.json @@ -0,0 +1,36 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/integ.json b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/integ.json new file mode 100644 index 0000000000000..c2199fd329bd3 --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/integ.json @@ -0,0 +1,12 @@ +{ + "version": "21.0.0", + "testCases": { + "instance-dual-test/DefaultTest": { + "stacks": [ + "aws-cdk-rds-instance-dual-integ" + ], + "assertionStack": "instance-dual-test/DefaultTest/DeployAssert", + "assertionStackName": "instancedualtestDefaultTestDeployAssertD87FA35D" + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/manifest.json new file mode 100644 index 0000000000000..e10a9b910f689 --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/manifest.json @@ -0,0 +1,249 @@ +{ + "version": "21.0.0", + "artifacts": { + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } + }, + "aws-cdk-rds-instance-dual-integ.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "aws-cdk-rds-instance-dual-integ.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "aws-cdk-rds-instance-dual-integ": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "aws-cdk-rds-instance-dual-integ.template.json", + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2cfbf4ae15417959d859c3a040d7c531ebed16f50bc7b64e958d09092535d712.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "aws-cdk-rds-instance-dual-integ.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "aws-cdk-rds-instance-dual-integ.assets" + ], + "metadata": { + "/aws-cdk-rds-instance-dual-integ/VPC/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCB9E5F0B4" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet1SubnetB4246D30" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet1RouteTableFEE4B781" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet1RouteTableAssociation0B0896DC" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1/DefaultRoute": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet1DefaultRoute91CEF279" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet2Subnet74179F39" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet2RouteTable6F1A15F1" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet2RouteTableAssociation5A808732" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2/DefaultRoute": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCPublicSubnet2DefaultRouteB7481BBA" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet1/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIsolatedSubnet1SubnetEBD00FC6" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet1/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIsolatedSubnet1RouteTableEB156210" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet1/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIsolatedSubnet1RouteTableAssociationA2D18F7C" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet2/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet2/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIsolatedSubnet2RouteTable9B4F78DC" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet2/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIsolatedSubnet2RouteTableAssociation7BF8E0EB" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/IGW": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCIGWB7E252D3" + } + ], + "/aws-cdk-rds-instance-dual-integ/VPC/VPCGW": [ + { + "type": "aws:cdk:logicalId", + "data": "VPCVPCGW99B986DC" + } + ], + "/aws-cdk-rds-instance-dual-integ/Ipv6CidrBlock": [ + { + "type": "aws:cdk:logicalId", + "data": "Ipv6CidrBlock" + } + ], + "/aws-cdk-rds-instance-dual-integ/DualstackInstance/SubnetGroup/Default": [ + { + "type": "aws:cdk:logicalId", + "data": "DualstackInstanceSubnetGroupB16A837F" + } + ], + "/aws-cdk-rds-instance-dual-integ/DualstackInstance/SecurityGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "DualstackInstanceSecurityGroupE7C05542" + } + ], + "/aws-cdk-rds-instance-dual-integ/DualstackInstance/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "DualstackInstance4CB1897E" + } + ], + "/aws-cdk-rds-instance-dual-integ/Ipv4Instance/SubnetGroup/Default": [ + { + "type": "aws:cdk:logicalId", + "data": "Ipv4InstanceSubnetGroup6E04EDDC" + } + ], + "/aws-cdk-rds-instance-dual-integ/Ipv4Instance/SecurityGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "Ipv4InstanceSecurityGroup0E80CE00" + } + ], + "/aws-cdk-rds-instance-dual-integ/Ipv4Instance/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "Ipv4Instance75869831" + } + ], + "/aws-cdk-rds-instance-dual-integ/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/aws-cdk-rds-instance-dual-integ/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "aws-cdk-rds-instance-dual-integ" + }, + "instancedualtestDefaultTestDeployAssertD87FA35D.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "instancedualtestDefaultTestDeployAssertD87FA35D.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "instancedualtestDefaultTestDeployAssertD87FA35D": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "instancedualtestDefaultTestDeployAssertD87FA35D.template.json", + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "instancedualtestDefaultTestDeployAssertD87FA35D.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "instancedualtestDefaultTestDeployAssertD87FA35D.assets" + ], + "metadata": { + "/instance-dual-test/DefaultTest/DeployAssert/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/instance-dual-test/DefaultTest/DeployAssert/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "instance-dual-test/DefaultTest/DeployAssert" + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/tree.json b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/tree.json new file mode 100644 index 0000000000000..bb717be776949 --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/instance-dual.integ.snapshot/tree.json @@ -0,0 +1,857 @@ +{ + "version": "tree-0.1", + "tree": { + "id": "App", + "path": "", + "children": { + "Tree": { + "id": "Tree", + "path": "Tree", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.1.133" + } + }, + "aws-cdk-rds-instance-dual-integ": { + "id": "aws-cdk-rds-instance-dual-integ", + "path": "aws-cdk-rds-instance-dual-integ", + "children": { + "VPC": { + "id": "VPC", + "path": "aws-cdk-rds-instance-dual-integ/VPC", + "children": { + "Resource": { + "id": "Resource", + "path": "aws-cdk-rds-instance-dual-integ/VPC/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::VPC", + "aws:cdk:cloudformation:props": { + "cidrBlock": "10.0.0.0/16", + "enableDnsHostnames": true, + "enableDnsSupport": true, + "instanceTenancy": "default", + "tags": [ + { + "key": "Name", + "value": "aws-cdk-rds-instance-dual-integ/VPC" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnVPC", + "version": "0.0.0" + } + }, + "PublicSubnet1": { + "id": "PublicSubnet1", + "path": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1", + "children": { + "Subnet": { + "id": "Subnet", + "path": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1/Subnet", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::Subnet", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "availabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "cidrBlock": "10.0.0.0/18", + "mapPublicIpOnLaunch": true, + "tags": [ + { + "key": "aws-cdk:subnet-name", + "value": "Public" + }, + { + "key": "aws-cdk:subnet-type", + "value": "Public" + }, + { + "key": "Name", + "value": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnet", + "version": "0.0.0" + } + }, + "Acl": { + "id": "Acl", + "path": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1/Acl", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "RouteTable": { + "id": "RouteTable", + "path": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1/RouteTable", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::RouteTable", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "tags": [ + { + "key": "Name", + "value": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnRouteTable", + "version": "0.0.0" + } + }, + "RouteTableAssociation": { + "id": "RouteTableAssociation", + "path": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1/RouteTableAssociation", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::SubnetRouteTableAssociation", + "aws:cdk:cloudformation:props": { + "routeTableId": { + "Ref": "VPCPublicSubnet1RouteTableFEE4B781" + }, + "subnetId": { + "Ref": "VPCPublicSubnet1SubnetB4246D30" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnetRouteTableAssociation", + "version": "0.0.0" + } + }, + "DefaultRoute": { + "id": "DefaultRoute", + "path": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet1/DefaultRoute", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::Route", + "aws:cdk:cloudformation:props": { + "routeTableId": { + "Ref": "VPCPublicSubnet1RouteTableFEE4B781" + }, + "destinationCidrBlock": "0.0.0.0/0", + "gatewayId": { + "Ref": "VPCIGWB7E252D3" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnRoute", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.PublicSubnet", + "version": "0.0.0" + } + }, + "PublicSubnet2": { + "id": "PublicSubnet2", + "path": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2", + "children": { + "Subnet": { + "id": "Subnet", + "path": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2/Subnet", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::Subnet", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "availabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "cidrBlock": "10.0.64.0/18", + "mapPublicIpOnLaunch": true, + "tags": [ + { + "key": "aws-cdk:subnet-name", + "value": "Public" + }, + { + "key": "aws-cdk:subnet-type", + "value": "Public" + }, + { + "key": "Name", + "value": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnet", + "version": "0.0.0" + } + }, + "Acl": { + "id": "Acl", + "path": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2/Acl", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "RouteTable": { + "id": "RouteTable", + "path": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2/RouteTable", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::RouteTable", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "tags": [ + { + "key": "Name", + "value": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnRouteTable", + "version": "0.0.0" + } + }, + "RouteTableAssociation": { + "id": "RouteTableAssociation", + "path": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2/RouteTableAssociation", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::SubnetRouteTableAssociation", + "aws:cdk:cloudformation:props": { + "routeTableId": { + "Ref": "VPCPublicSubnet2RouteTable6F1A15F1" + }, + "subnetId": { + "Ref": "VPCPublicSubnet2Subnet74179F39" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnetRouteTableAssociation", + "version": "0.0.0" + } + }, + "DefaultRoute": { + "id": "DefaultRoute", + "path": "aws-cdk-rds-instance-dual-integ/VPC/PublicSubnet2/DefaultRoute", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::Route", + "aws:cdk:cloudformation:props": { + "routeTableId": { + "Ref": "VPCPublicSubnet2RouteTable6F1A15F1" + }, + "destinationCidrBlock": "0.0.0.0/0", + "gatewayId": { + "Ref": "VPCIGWB7E252D3" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnRoute", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.PublicSubnet", + "version": "0.0.0" + } + }, + "IsolatedSubnet1": { + "id": "IsolatedSubnet1", + "path": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet1", + "children": { + "Subnet": { + "id": "Subnet", + "path": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet1/Subnet", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::Subnet", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "availabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "cidrBlock": "10.0.128.0/18", + "ipv6CidrBlock": { + "Fn::Select": [ + 0, + { + "Fn::Cidr": [ + { + "Fn::Select": [ + 0, + { + "Fn::GetAtt": [ + "VPCB9E5F0B4", + "Ipv6CidrBlocks" + ] + } + ] + }, + 256, + "64" + ] + } + ] + }, + "mapPublicIpOnLaunch": false, + "tags": [ + { + "key": "aws-cdk:subnet-name", + "value": "Isolated" + }, + { + "key": "aws-cdk:subnet-type", + "value": "Isolated" + }, + { + "key": "Name", + "value": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet1" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnet", + "version": "0.0.0" + } + }, + "Acl": { + "id": "Acl", + "path": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet1/Acl", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "RouteTable": { + "id": "RouteTable", + "path": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet1/RouteTable", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::RouteTable", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "tags": [ + { + "key": "Name", + "value": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet1" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnRouteTable", + "version": "0.0.0" + } + }, + "RouteTableAssociation": { + "id": "RouteTableAssociation", + "path": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet1/RouteTableAssociation", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::SubnetRouteTableAssociation", + "aws:cdk:cloudformation:props": { + "routeTableId": { + "Ref": "VPCIsolatedSubnet1RouteTableEB156210" + }, + "subnetId": { + "Ref": "VPCIsolatedSubnet1SubnetEBD00FC6" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnetRouteTableAssociation", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.PrivateSubnet", + "version": "0.0.0" + } + }, + "IsolatedSubnet2": { + "id": "IsolatedSubnet2", + "path": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet2", + "children": { + "Subnet": { + "id": "Subnet", + "path": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet2/Subnet", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::Subnet", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "availabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "cidrBlock": "10.0.192.0/18", + "ipv6CidrBlock": { + "Fn::Select": [ + 1, + { + "Fn::Cidr": [ + { + "Fn::Select": [ + 0, + { + "Fn::GetAtt": [ + "VPCB9E5F0B4", + "Ipv6CidrBlocks" + ] + } + ] + }, + 256, + "64" + ] + } + ] + }, + "mapPublicIpOnLaunch": false, + "tags": [ + { + "key": "aws-cdk:subnet-name", + "value": "Isolated" + }, + { + "key": "aws-cdk:subnet-type", + "value": "Isolated" + }, + { + "key": "Name", + "value": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet2" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnet", + "version": "0.0.0" + } + }, + "Acl": { + "id": "Acl", + "path": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet2/Acl", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "RouteTable": { + "id": "RouteTable", + "path": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet2/RouteTable", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::RouteTable", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "tags": [ + { + "key": "Name", + "value": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet2" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnRouteTable", + "version": "0.0.0" + } + }, + "RouteTableAssociation": { + "id": "RouteTableAssociation", + "path": "aws-cdk-rds-instance-dual-integ/VPC/IsolatedSubnet2/RouteTableAssociation", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::SubnetRouteTableAssociation", + "aws:cdk:cloudformation:props": { + "routeTableId": { + "Ref": "VPCIsolatedSubnet2RouteTable9B4F78DC" + }, + "subnetId": { + "Ref": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSubnetRouteTableAssociation", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.PrivateSubnet", + "version": "0.0.0" + } + }, + "IGW": { + "id": "IGW", + "path": "aws-cdk-rds-instance-dual-integ/VPC/IGW", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::InternetGateway", + "aws:cdk:cloudformation:props": { + "tags": [ + { + "key": "Name", + "value": "aws-cdk-rds-instance-dual-integ/VPC" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnInternetGateway", + "version": "0.0.0" + } + }, + "VPCGW": { + "id": "VPCGW", + "path": "aws-cdk-rds-instance-dual-integ/VPC/VPCGW", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::VPCGatewayAttachment", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "internetGatewayId": { + "Ref": "VPCIGWB7E252D3" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnVPCGatewayAttachment", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.Vpc", + "version": "0.0.0" + } + }, + "Ipv6CidrBlock": { + "id": "Ipv6CidrBlock", + "path": "aws-cdk-rds-instance-dual-integ/Ipv6CidrBlock", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::VPCCidrBlock", + "aws:cdk:cloudformation:props": { + "vpcId": { + "Ref": "VPCB9E5F0B4" + }, + "amazonProvidedIpv6CidrBlock": true + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnVPCCidrBlock", + "version": "0.0.0" + } + }, + "DualstackInstance": { + "id": "DualstackInstance", + "path": "aws-cdk-rds-instance-dual-integ/DualstackInstance", + "children": { + "SubnetGroup": { + "id": "SubnetGroup", + "path": "aws-cdk-rds-instance-dual-integ/DualstackInstance/SubnetGroup", + "children": { + "Default": { + "id": "Default", + "path": "aws-cdk-rds-instance-dual-integ/DualstackInstance/SubnetGroup/Default", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::RDS::DBSubnetGroup", + "aws:cdk:cloudformation:props": { + "dbSubnetGroupDescription": "Subnet group for DualstackInstance database", + "subnetIds": [ + { + "Ref": "VPCIsolatedSubnet1SubnetEBD00FC6" + }, + { + "Ref": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.CfnDBSubnetGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.SubnetGroup", + "version": "0.0.0" + } + }, + "SecurityGroup": { + "id": "SecurityGroup", + "path": "aws-cdk-rds-instance-dual-integ/DualstackInstance/SecurityGroup", + "children": { + "Resource": { + "id": "Resource", + "path": "aws-cdk-rds-instance-dual-integ/DualstackInstance/SecurityGroup/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::SecurityGroup", + "aws:cdk:cloudformation:props": { + "groupDescription": "Security group for DualstackInstance database", + "securityGroupEgress": [ + { + "cidrIp": "0.0.0.0/0", + "description": "Allow all outbound traffic by default", + "ipProtocol": "-1" + } + ], + "vpcId": { + "Ref": "VPCB9E5F0B4" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSecurityGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.SecurityGroup", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-rds-instance-dual-integ/DualstackInstance/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::RDS::DBInstance", + "aws:cdk:cloudformation:props": { + "allocatedStorage": "100", + "copyTagsToSnapshot": true, + "dbInstanceClass": "db.t3.micro", + "dbSubnetGroupName": { + "Ref": "DualstackInstanceSubnetGroupB16A837F" + }, + "engine": "postgres", + "engineVersion": "11.12", + "masterUsername": "postgres", + "masterUserPassword": "7959866cacc02c2d243ecfe177464fe6", + "multiAz": false, + "networkType": "DUAL", + "publiclyAccessible": false, + "storageType": "gp2", + "vpcSecurityGroups": [ + { + "Fn::GetAtt": [ + "DualstackInstanceSecurityGroupE7C05542", + "GroupId" + ] + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.CfnDBInstance", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.DatabaseInstance", + "version": "0.0.0" + } + }, + "Ipv4Instance": { + "id": "Ipv4Instance", + "path": "aws-cdk-rds-instance-dual-integ/Ipv4Instance", + "children": { + "SubnetGroup": { + "id": "SubnetGroup", + "path": "aws-cdk-rds-instance-dual-integ/Ipv4Instance/SubnetGroup", + "children": { + "Default": { + "id": "Default", + "path": "aws-cdk-rds-instance-dual-integ/Ipv4Instance/SubnetGroup/Default", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::RDS::DBSubnetGroup", + "aws:cdk:cloudformation:props": { + "dbSubnetGroupDescription": "Subnet group for Ipv4Instance database", + "subnetIds": [ + { + "Ref": "VPCIsolatedSubnet1SubnetEBD00FC6" + }, + { + "Ref": "VPCIsolatedSubnet2Subnet4B1C8CAA" + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.CfnDBSubnetGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.SubnetGroup", + "version": "0.0.0" + } + }, + "SecurityGroup": { + "id": "SecurityGroup", + "path": "aws-cdk-rds-instance-dual-integ/Ipv4Instance/SecurityGroup", + "children": { + "Resource": { + "id": "Resource", + "path": "aws-cdk-rds-instance-dual-integ/Ipv4Instance/SecurityGroup/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::EC2::SecurityGroup", + "aws:cdk:cloudformation:props": { + "groupDescription": "Security group for Ipv4Instance database", + "securityGroupEgress": [ + { + "cidrIp": "0.0.0.0/0", + "description": "Allow all outbound traffic by default", + "ipProtocol": "-1" + } + ], + "vpcId": { + "Ref": "VPCB9E5F0B4" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.CfnSecurityGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ec2.SecurityGroup", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-rds-instance-dual-integ/Ipv4Instance/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::RDS::DBInstance", + "aws:cdk:cloudformation:props": { + "allocatedStorage": "100", + "copyTagsToSnapshot": true, + "dbInstanceClass": "db.t3.micro", + "dbSubnetGroupName": { + "Ref": "Ipv4InstanceSubnetGroup6E04EDDC" + }, + "engine": "postgres", + "engineVersion": "11.12", + "masterUsername": "postgres", + "masterUserPassword": "7959866cacc02c2d243ecfe177464fe6", + "multiAz": false, + "networkType": "IPV4", + "publiclyAccessible": false, + "storageType": "gp2", + "vpcSecurityGroups": [ + { + "Fn::GetAtt": [ + "Ipv4InstanceSecurityGroup0E80CE00", + "GroupId" + ] + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.CfnDBInstance", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-rds.DatabaseInstance", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/core.Stack", + "version": "0.0.0" + } + }, + "instance-dual-test": { + "id": "instance-dual-test", + "path": "instance-dual-test", + "children": { + "DefaultTest": { + "id": "DefaultTest", + "path": "instance-dual-test/DefaultTest", + "children": { + "Default": { + "id": "Default", + "path": "instance-dual-test/DefaultTest/Default", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.1.133" + } + }, + "DeployAssert": { + "id": "DeployAssert", + "path": "instance-dual-test/DefaultTest/DeployAssert", + "constructInfo": { + "fqn": "@aws-cdk/core.Stack", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests.IntegTestCase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests.IntegTest", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/core.App", + "version": "0.0.0" + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-rds/test/instance.test.ts b/packages/@aws-cdk/aws-rds/test/instance.test.ts index a6d61e829884a..14c26071f9926 100644 --- a/packages/@aws-cdk/aws-rds/test/instance.test.ts +++ b/packages/@aws-cdk/aws-rds/test/instance.test.ts @@ -321,6 +321,34 @@ describe('instance', () => { }); }); + test('instance with IPv4 network type', () => { + // WHEN + new rds.DatabaseInstance(stack, 'Database', { + engine: rds.DatabaseInstanceEngine.SQL_SERVER_EE, + instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2, ec2.InstanceSize.SMALL), + vpc, + networkType: rds.NetworkType.IPV4, + }); + + Template.fromStack(stack).hasResourceProperties('AWS::RDS::DBInstance', { + NetworkType: 'IPV4', + }); + }); + + test('instance with dual-stack network type', () => { + // WHEN + new rds.DatabaseInstance(stack, 'Database', { + engine: rds.DatabaseInstanceEngine.SQL_SERVER_EE, + instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2, ec2.InstanceSize.SMALL), + vpc, + networkType: rds.NetworkType.DUAL, + }); + + Template.fromStack(stack).hasResourceProperties('AWS::RDS::DBInstance', { + NetworkType: 'DUAL', + }); + }); + describe('DatabaseInstanceFromSnapshot', () => { test('create an instance from snapshot', () => { new rds.DatabaseInstanceFromSnapshot(stack, 'Instance', { diff --git a/packages/@aws-cdk/aws-rds/test/integ.cluster-dual.ts b/packages/@aws-cdk/aws-rds/test/integ.cluster-dual.ts new file mode 100644 index 0000000000000..cebeeeb8cec61 --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/integ.cluster-dual.ts @@ -0,0 +1,43 @@ +import * as ec2 from '@aws-cdk/aws-ec2'; +import * as cdk from '@aws-cdk/core'; +import { IntegTest } from '@aws-cdk/integ-tests'; +import * as rds from '../lib'; + +const app = new cdk.App(); +const stack = new cdk.Stack(app, 'aws-cdk-rds-cluster-dual-integ'); + +const vpc = new ec2.Vpc(stack, 'VPC', { maxAzs: 2, natGateways: 0 }); +const ipv6 = new ec2.CfnVPCCidrBlock(stack, 'Ipv6CidrBlock', { vpcId: vpc.vpcId, amazonProvidedIpv6CidrBlock: true }); +vpc.isolatedSubnets.forEach((subnet, idx) => { + const cfnSubnet = subnet.node.defaultChild as ec2.CfnSubnet; + cfnSubnet.ipv6CidrBlock = cdk.Fn.select(idx, cdk.Fn.cidr(cdk.Fn.select(0, vpc.vpcIpv6CidrBlocks), 256, '64')); + cfnSubnet.addDependsOn(ipv6); +}); + +new rds.DatabaseCluster(stack, 'DualstackCluster', { + engine: rds.DatabaseClusterEngine.auroraMysql({ version: rds.AuroraMysqlEngineVersion.VER_3_02_0 }), + credentials: rds.Credentials.fromUsername('admin', { password: cdk.SecretValue.unsafePlainText('7959866cacc02c2d243ecfe177464fe6') }), + instanceProps: { + instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.MEDIUM), + vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_ISOLATED }, + vpc, + }, + networkType: rds.NetworkType.DUAL, + removalPolicy: cdk.RemovalPolicy.DESTROY, +}); + +new rds.DatabaseCluster(stack, 'Ipv4Cluster', { + engine: rds.DatabaseClusterEngine.auroraMysql({ version: rds.AuroraMysqlEngineVersion.VER_3_02_0 }), + credentials: rds.Credentials.fromUsername('admin', { password: cdk.SecretValue.unsafePlainText('7959866cacc02c2d243ecfe177464fe6') }), + instanceProps: { + instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.MEDIUM), + vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_ISOLATED }, + vpc, + }, + networkType: rds.NetworkType.IPV4, + removalPolicy: cdk.RemovalPolicy.DESTROY, +}); + +new IntegTest(app, 'cluster-dual-test', { + testCases: [stack], +}); diff --git a/packages/@aws-cdk/aws-rds/test/integ.instance-dual.ts b/packages/@aws-cdk/aws-rds/test/integ.instance-dual.ts new file mode 100644 index 0000000000000..75be9c5ab7303 --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/integ.instance-dual.ts @@ -0,0 +1,43 @@ +import * as ec2 from '@aws-cdk/aws-ec2'; +import * as cdk from '@aws-cdk/core'; +import { IntegTest } from '@aws-cdk/integ-tests'; +import * as rds from '../lib'; + +const app = new cdk.App(); +const stack = new cdk.Stack(app, 'aws-cdk-rds-instance-dual-integ'); + +const vpc = new ec2.Vpc(stack, 'VPC', { maxAzs: 2, natGateways: 0 }); +const ipv6 = new ec2.CfnVPCCidrBlock(stack, 'Ipv6CidrBlock', { vpcId: vpc.vpcId, amazonProvidedIpv6CidrBlock: true }); +vpc.isolatedSubnets.forEach((subnet, idx) => { + const cfnSubnet = subnet.node.defaultChild as ec2.CfnSubnet; + cfnSubnet.ipv6CidrBlock = cdk.Fn.select(idx, cdk.Fn.cidr(cdk.Fn.select(0, vpc.vpcIpv6CidrBlocks), 256, '64')); + cfnSubnet.addDependsOn(ipv6); +}); + +new rds.DatabaseInstance(stack, 'DualstackInstance', { + engine: rds.DatabaseInstanceEngine.postgres({ version: rds.PostgresEngineVersion.VER_11_12 }), + credentials: rds.Credentials.fromUsername('postgres', { password: cdk.SecretValue.unsafePlainText('7959866cacc02c2d243ecfe177464fe6') }), + instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.MICRO), + vpc, + vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_ISOLATED }, + multiAz: false, + publiclyAccessible: false, + networkType: rds.NetworkType.DUAL, + removalPolicy: cdk.RemovalPolicy.DESTROY, +}); + +new rds.DatabaseInstance(stack, 'Ipv4Instance', { + engine: rds.DatabaseInstanceEngine.postgres({ version: rds.PostgresEngineVersion.VER_11_12 }), + credentials: rds.Credentials.fromUsername('postgres', { password: cdk.SecretValue.unsafePlainText('7959866cacc02c2d243ecfe177464fe6') }), + instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.MICRO), + vpc, + vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_ISOLATED }, + multiAz: false, + publiclyAccessible: false, + networkType: rds.NetworkType.IPV4, + removalPolicy: cdk.RemovalPolicy.DESTROY, +}); + +new IntegTest(app, 'instance-dual-test', { + testCases: [stack], +}); diff --git a/packages/@aws-cdk/aws-ssm/README.md b/packages/@aws-cdk/aws-ssm/README.md index a96bf50d7d752..7c8fdbb9bd003 100644 --- a/packages/@aws-cdk/aws-ssm/README.md +++ b/packages/@aws-cdk/aws-ssm/README.md @@ -18,7 +18,31 @@ This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aw You can reference existing SSM Parameter Store values that you want to use in your CDK app by using `ssm.StringParameter.fromStringParameterAttributes`: -[using SSM parameter](test/integ.parameter-store-string.lit.ts) +```ts +// Retrieve the latest value of the non-secret parameter +// with name "/My/String/Parameter". +const stringValue = ssm.StringParameter.fromStringParameterAttributes(this, 'MyValue', { + parameterName: '/My/Public/Parameter', + // 'version' can be specified but is optional. +}).stringValue; +const stringValueVersionFromToken = ssm.StringParameter.fromStringParameterAttributes(this, 'MyValueVersionFromToken', { + parameterName: '/My/Public/Parameter', + // parameter version from token + version: parameterVersion, +}).stringValue; + +// Retrieve a specific version of the secret (SecureString) parameter. +// 'version' is always required. +const secretValue = ssm.StringParameter.fromSecureStringParameterAttributes(this, 'MySecureValue', { + parameterName: '/My/Secret/Parameter', + version: 5, +}); +const secretValueVersionFromToken = ssm.StringParameter.fromSecureStringParameterAttributes(this, 'MySecureValueVersionFromToken', { + parameterName: '/My/Secret/Parameter', + // parameter version from token + version: parameterVersion, +}); +``` You can also reference an existing SSM Parameter Store value that matches an [AWS specific parameter type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#aws-specific-parameter-types): diff --git a/packages/@aws-cdk/aws-ssm/lib/parameter.ts b/packages/@aws-cdk/aws-ssm/lib/parameter.ts index f24e4d0375108..5721cd30e922d 100644 --- a/packages/@aws-cdk/aws-ssm/lib/parameter.ts +++ b/packages/@aws-cdk/aws-ssm/lib/parameter.ts @@ -492,7 +492,10 @@ export class StringParameter extends ParameterBase implements IStringParameter { */ public static fromSecureStringParameterAttributes(scope: Construct, id: string, attrs: SecureStringParameterAttributes): IStringParameter { const version = attrs.version ? Tokenization.stringifyNumber(attrs.version) : ''; - const stringValue = new CfnDynamicReference(CfnDynamicReferenceService.SSM_SECURE, `${attrs.parameterName}:${version}`).toString(); + const stringValue = new CfnDynamicReference( + CfnDynamicReferenceService.SSM_SECURE, + version ? `${attrs.parameterName}:${version}` : attrs.parameterName, + ).toString(); class Import extends ParameterBase { public readonly parameterName = attrs.parameterName; diff --git a/packages/@aws-cdk/aws-ssm/test/integ.parameter-store-string.lit.ts b/packages/@aws-cdk/aws-ssm/test/integ.parameter-store-string.ts similarity index 58% rename from packages/@aws-cdk/aws-ssm/test/integ.parameter-store-string.lit.ts rename to packages/@aws-cdk/aws-ssm/test/integ.parameter-store-string.ts index 09e0f6f17f01f..7386e9ff03fef 100644 --- a/packages/@aws-cdk/aws-ssm/test/integ.parameter-store-string.lit.ts +++ b/packages/@aws-cdk/aws-ssm/test/integ.parameter-store-string.ts @@ -1,14 +1,26 @@ -/// !cdk-integ * import * as cdk from '@aws-cdk/core'; +import * as integ from '@aws-cdk/integ-tests'; import * as ssm from '../lib'; +const SECURE_PARAM_NAME = '/My/Secret/Parameter'; + class CreatingStack extends cdk.Stack { constructor(scope: cdk.App, id: string) { super(scope, id); new ssm.StringParameter(this, 'String', { parameterName: '/My/Public/Parameter', - stringValue: 'abcdef', + stringValue: 'Abc123', + }); + + new integ.AwsApiCall(this, 'SecureParam', { + service: 'SSM', + api: 'putParameter', + parameters: { + Name: SECURE_PARAM_NAME, + Type: 'SecureString', + Value: 'Abc123', + }, }); } } @@ -24,7 +36,6 @@ class UsingStack extends cdk.Stack { default: 1, }).valueAsNumber; - /// !show // Retrieve the latest value of the non-secret parameter // with name "/My/String/Parameter". const stringValue = ssm.StringParameter.fromStringParameterAttributes(this, 'MyValue', { @@ -38,33 +49,54 @@ class UsingStack extends cdk.Stack { }).stringValue; // Retrieve a specific version of the secret (SecureString) parameter. - // 'version' is always required. const secretValue = ssm.StringParameter.fromSecureStringParameterAttributes(this, 'MySecureValue', { parameterName: '/My/Secret/Parameter', - version: 5, - }); + }).stringValue; + const secretValueVersion = ssm.StringParameter.fromSecureStringParameterAttributes(this, 'MySecureValueVersion', { + parameterName: '/My/Secret/Parameter', + version: 1, + }).stringValue; const secretValueVersionFromToken = ssm.StringParameter.fromSecureStringParameterAttributes(this, 'MySecureValueVersionFromToken', { parameterName: '/My/Secret/Parameter', // parameter version from token version: parameterVersion, - }); - - /// !hide - - new cdk.CfnResource(this, 'Dummy', { type: 'AWS::SNS::Topic' }); - new cdk.CfnOutput(this, 'TheValue', { value: stringValue }); - new cdk.CfnOutput(this, 'TheValueVersionFromToken', { value: stringValueVersionFromToken }); + }).stringValue; - // Cannot be provisioned so cannot be actually used - Array.isArray(secretValue); - Array.isArray(secretValueVersionFromToken); + const user = new cdk.CfnResource(this, 'DummyResourceUsingStringParameters', { + type: 'AWS::IAM::User', + properties: { + LoginProfile: { + Password: cdk.Fn.join('-', [ + stringValue, + stringValueVersionFromToken, + secretValue, + secretValueVersion, + secretValueVersionFromToken, + ]), + }, + }, + }); + user.applyRemovalPolicy(cdk.RemovalPolicy.DESTROY); } } const app = new cdk.App(); const creating = new CreatingStack(app, 'sspms-creating'); + const using = new UsingStack(app, 'sspms-using'); using.addDependency(creating); +const cleanup = new cdk.Stack(app, 'sspms-cleanup'); +cleanup.addDependency(using); + +const integTest = new integ.IntegTest(app, 'SSMParameterStoreTest', { + assertionStack: cleanup, + testCases: [using], +}); + +integTest.assertions.awsApiCall('SSM', 'deleteParameter', { + Name: SECURE_PARAM_NAME, +}); + app.synth(); diff --git a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/asset.3074b79e05e7b98930b6449e01baa3e68b32ecff86328933c2542f7b7fe6fdac.bundle/index.js b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/asset.b54b99043c35bd080b9d9d1afce31e3541cf15b679799ba980ed40c837dcb03b.bundle/index.js similarity index 99% rename from packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/asset.3074b79e05e7b98930b6449e01baa3e68b32ecff86328933c2542f7b7fe6fdac.bundle/index.js rename to packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/asset.b54b99043c35bd080b9d9d1afce31e3541cf15b679799ba980ed40c837dcb03b.bundle/index.js index 6bee1ced2a9b7..2d6c2f0e85497 100644 --- a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/asset.3074b79e05e7b98930b6449e01baa3e68b32ecff86328933c2542f7b7fe6fdac.bundle/index.js +++ b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/asset.b54b99043c35bd080b9d9d1afce31e3541cf15b679799ba980ed40c837dcb03b.bundle/index.js @@ -1,3 +1,4 @@ +"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; diff --git a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/cdk.out b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/cdk.out new file mode 100644 index 0000000000000..8ecc185e9dbee --- /dev/null +++ b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/cdk.out @@ -0,0 +1 @@ +{"version":"21.0.0"} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/integ.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/integ.json new file mode 100644 index 0000000000000..37dd1517a09fc --- /dev/null +++ b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/integ.json @@ -0,0 +1,12 @@ +{ + "version": "21.0.0", + "testCases": { + "SSMParameterStoreTest/DefaultTest": { + "stacks": [ + "sspms-using" + ], + "assertionStack": "sspms-cleanup", + "assertionStackName": "sspms-cleanup" + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/manifest.json similarity index 50% rename from packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/manifest.json rename to packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/manifest.json index 2452d22b89c04..b3dea0254e5ea 100644 --- a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/manifest.json @@ -7,27 +7,27 @@ "file": "tree.json" } }, - "integ-lambda-python-arm64.assets": { + "sspms-creating.assets": { "type": "cdk:asset-manifest", "properties": { - "file": "integ-lambda-python-arm64.assets.json", + "file": "sspms-creating.assets.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" } }, - "integ-lambda-python-arm64": { + "sspms-creating": { "type": "aws:cloudformation:stack", "environment": "aws://unknown-account/unknown-region", "properties": { - "templateFile": "integ-lambda-python-arm64.template.json", + "templateFile": "sspms-creating.template.json", "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d541f2115f9333bde1ef9d780fe0176c421e684cc754401b5de78b9a1d133b62.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/774681e523ca39cdb798d74ea486ac7874030c04a36debc6a623f24afe196859.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ - "integ-lambda-python-arm64.assets" + "sspms-creating.assets" ], "lookupRole": { "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", @@ -36,75 +36,69 @@ } }, "dependencies": [ - "integ-lambda-python-arm64.assets" + "sspms-creating.assets" ], "metadata": { - "/integ-lambda-python-arm64/Layer/Resource": [ + "/sspms-creating/String/Resource": [ { "type": "aws:cdk:logicalId", - "data": "LayerB20D2F06" + "data": "String0BA8456E" } ], - "/integ-lambda-python-arm64/Handler/ServiceRole/Resource": [ + "/sspms-creating/SecureParam/Default/Default": [ { "type": "aws:cdk:logicalId", - "data": "HandlerServiceRoleFCDC14AE" + "data": "SecureParam" } ], - "/integ-lambda-python-arm64/Handler/Resource": [ + "/sspms-creating/SingletonFunction1488541a7b23466481b69b4408076b81/Role": [ { "type": "aws:cdk:logicalId", - "data": "Handler886CB40B" - } - ], - "/integ-lambda-python-arm64/FunctionArn": [ - { - "type": "aws:cdk:logicalId", - "data": "FunctionArn" + "data": "SingletonFunction1488541a7b23466481b69b4408076b81Role37ABCE73" } ], - "/integ-lambda-python-arm64/Exports/Output{\"Ref\":\"Handler886CB40B\"}": [ + "/sspms-creating/SingletonFunction1488541a7b23466481b69b4408076b81/Handler": [ { "type": "aws:cdk:logicalId", - "data": "ExportsOutputRefHandler886CB40BD176DC16" + "data": "SingletonFunction1488541a7b23466481b69b4408076b81HandlerCD40AE9F" } ], - "/integ-lambda-python-arm64/BootstrapVersion": [ + "/sspms-creating/BootstrapVersion": [ { "type": "aws:cdk:logicalId", "data": "BootstrapVersion" } ], - "/integ-lambda-python-arm64/CheckBootstrapVersion": [ + "/sspms-creating/CheckBootstrapVersion": [ { "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } ] }, - "displayName": "integ-lambda-python-arm64" + "displayName": "sspms-creating" }, - "lambdapythonarm64DefaultTestDeployAssertAB537F34.assets": { + "sspms-using.assets": { "type": "cdk:asset-manifest", "properties": { - "file": "lambdapythonarm64DefaultTestDeployAssertAB537F34.assets.json", + "file": "sspms-using.assets.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" } }, - "lambdapythonarm64DefaultTestDeployAssertAB537F34": { + "sspms-using": { "type": "aws:cloudformation:stack", "environment": "aws://unknown-account/unknown-region", "properties": { - "templateFile": "lambdapythonarm64DefaultTestDeployAssertAB537F34.template.json", + "templateFile": "sspms-using.template.json", "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/42975a3b062a8d0733fa13d5857f7aee684ba7fdbf7b4518fd0f50e039bdf92f.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f6e392d82be8514b35d4085f6ff4e3df808815b1cf4cc7a119cb67ace46e03b9.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ - "lambdapythonarm64DefaultTestDeployAssertAB537F34.assets" + "sspms-using.assets" ], "lookupRole": { "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", @@ -113,54 +107,108 @@ } }, "dependencies": [ - "integ-lambda-python-arm64", - "lambdapythonarm64DefaultTestDeployAssertAB537F34.assets" + "sspms-creating", + "sspms-using.assets" ], "metadata": { - "/lambda-python-arm64/DefaultTest/DeployAssert/LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5/Default/Default": [ + "/sspms-using/MyParameterVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "MyParameterVersion" + } + ], + "/sspms-using/MyValue.Parameter": [ + { + "type": "aws:cdk:logicalId", + "data": "MyValueParameter" + } + ], + "/sspms-using/DummyResourceUsingStringParameters": [ { "type": "aws:cdk:logicalId", - "data": "LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5" + "data": "DummyResourceUsingStringParameters" } ], - "/lambda-python-arm64/DefaultTest/DeployAssert/LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5/Invoke": [ + "/sspms-using/BootstrapVersion": [ { "type": "aws:cdk:logicalId", - "data": "LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5Invoke30065BC0" + "data": "BootstrapVersion" } ], - "/lambda-python-arm64/DefaultTest/DeployAssert/LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5/AssertionResults": [ + "/sspms-using/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "sspms-using" + }, + "sspms-cleanup.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "sspms-cleanup.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "sspms-cleanup": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "sspms-cleanup.template.json", + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ed82f3ce48345002448971161c8bd7594b2f548f56641b70afb2f4688e4c0aef.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "sspms-cleanup.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "sspms-using", + "sspms-cleanup.assets" + ], + "metadata": { + "/sspms-cleanup/AwsApiCallSSMdeleteParameter/Default/Default": [ { "type": "aws:cdk:logicalId", - "data": "AssertionResultsLambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5" + "data": "AwsApiCallSSMdeleteParameter" } ], - "/lambda-python-arm64/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81/Role": [ + "/sspms-cleanup/SingletonFunction1488541a7b23466481b69b4408076b81/Role": [ { "type": "aws:cdk:logicalId", "data": "SingletonFunction1488541a7b23466481b69b4408076b81Role37ABCE73" } ], - "/lambda-python-arm64/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81/Handler": [ + "/sspms-cleanup/SingletonFunction1488541a7b23466481b69b4408076b81/Handler": [ { "type": "aws:cdk:logicalId", "data": "SingletonFunction1488541a7b23466481b69b4408076b81HandlerCD40AE9F" } ], - "/lambda-python-arm64/DefaultTest/DeployAssert/BootstrapVersion": [ + "/sspms-cleanup/BootstrapVersion": [ { "type": "aws:cdk:logicalId", "data": "BootstrapVersion" } ], - "/lambda-python-arm64/DefaultTest/DeployAssert/CheckBootstrapVersion": [ + "/sspms-cleanup/CheckBootstrapVersion": [ { "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } ] }, - "displayName": "lambda-python-arm64/DefaultTest/DeployAssert" + "displayName": "sspms-cleanup" } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/lambdapythonarm64DefaultTestDeployAssertAB537F34.assets.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-cleanup.assets.json similarity index 61% rename from packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/lambdapythonarm64DefaultTestDeployAssertAB537F34.assets.json rename to packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-cleanup.assets.json index 34facd6820e94..dd2d2b82e2cc2 100644 --- a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/lambdapythonarm64DefaultTestDeployAssertAB537F34.assets.json +++ b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-cleanup.assets.json @@ -1,28 +1,28 @@ { "version": "21.0.0", "files": { - "3074b79e05e7b98930b6449e01baa3e68b32ecff86328933c2542f7b7fe6fdac": { + "b54b99043c35bd080b9d9d1afce31e3541cf15b679799ba980ed40c837dcb03b": { "source": { - "path": "asset.3074b79e05e7b98930b6449e01baa3e68b32ecff86328933c2542f7b7fe6fdac.bundle", + "path": "asset.b54b99043c35bd080b9d9d1afce31e3541cf15b679799ba980ed40c837dcb03b.bundle", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3074b79e05e7b98930b6449e01baa3e68b32ecff86328933c2542f7b7fe6fdac.zip", + "objectKey": "b54b99043c35bd080b9d9d1afce31e3541cf15b679799ba980ed40c837dcb03b.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "42975a3b062a8d0733fa13d5857f7aee684ba7fdbf7b4518fd0f50e039bdf92f": { + "ed82f3ce48345002448971161c8bd7594b2f548f56641b70afb2f4688e4c0aef": { "source": { - "path": "lambdapythonarm64DefaultTestDeployAssertAB537F34.template.json", + "path": "sspms-cleanup.template.json", "packaging": "file" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "42975a3b062a8d0733fa13d5857f7aee684ba7fdbf7b4518fd0f50e039bdf92f.json", + "objectKey": "ed82f3ce48345002448971161c8bd7594b2f548f56641b70afb2f4688e4c0aef.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/integ-lambda-python-arm64.template.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-cleanup.template.json similarity index 53% rename from packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/integ-lambda-python-arm64.template.json rename to packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-cleanup.template.json index cf22196370fe0..a2af3eeea9e3d 100644 --- a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/integ-lambda-python-arm64.template.json +++ b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-cleanup.template.json @@ -1,26 +1,30 @@ { "Resources": { - "LayerB20D2F06": { - "Type": "AWS::Lambda::LayerVersion", + "AwsApiCallSSMdeleteParameter": { + "Type": "Custom::DeployAssert@SdkCallSSMdeleteParameter", "Properties": { - "Content": { - "S3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "S3Key": "8c04935671db7da18580bb01371198f54ead836061bcbac6b8bab4c2e4d1cf35.zip" + "ServiceToken": { + "Fn::GetAtt": [ + "SingletonFunction1488541a7b23466481b69b4408076b81HandlerCD40AE9F", + "Arn" + ] }, - "CompatibleArchitectures": [ - "arm64" - ], - "CompatibleRuntimes": [ - "python3.9" - ] - } + "service": "SSM", + "api": "deleteParameter", + "parameters": { + "Name": "/My/Secret/Parameter" + }, + "flattenResponse": "false", + "salt": "1666616854742" + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" }, - "HandlerServiceRoleFCDC14AE": { + "SingletonFunction1488541a7b23466481b69b4408076b81Role37ABCE73": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { + "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", @@ -29,71 +33,52 @@ "Service": "lambda.amazonaws.com" } } - ], - "Version": "2012-10-17" + ] }, "ManagedPolicyArns": [ { - "Fn::Join": [ - "", - [ - "arn:", + "Fn::Sub": "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + } + ], + "Policies": [ + { + "PolicyName": "Inline", + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + "Action": [ + "ssm:DeleteParameter" + ], + "Effect": "Allow", + "Resource": [ + "*" + ] + } ] - ] + } } ] } }, - "Handler886CB40B": { + "SingletonFunction1488541a7b23466481b69b4408076b81HandlerCD40AE9F": { "Type": "AWS::Lambda::Function", "Properties": { + "Runtime": "nodejs14.x", "Code": { "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "db453ad95b1e0fd185aa7ea88192ad521ced57f7bd163bcd0f002f20b441e424.zip" + "S3Key": "b54b99043c35bd080b9d9d1afce31e3541cf15b679799ba980ed40c837dcb03b.zip" }, + "Timeout": 120, + "Handler": "index.handler", "Role": { "Fn::GetAtt": [ - "HandlerServiceRoleFCDC14AE", + "SingletonFunction1488541a7b23466481b69b4408076b81Role37ABCE73", "Arn" ] - }, - "Architectures": [ - "arm64" - ], - "Handler": "index.handler", - "Layers": [ - { - "Ref": "LayerB20D2F06" - } - ], - "Runtime": "python3.9" - }, - "DependsOn": [ - "HandlerServiceRoleFCDC14AE" - ] - } - }, - "Outputs": { - "FunctionArn": { - "Value": { - "Fn::GetAtt": [ - "Handler886CB40B", - "Arn" - ] - } - }, - "ExportsOutputRefHandler886CB40BD176DC16": { - "Value": { - "Ref": "Handler886CB40B" - }, - "Export": { - "Name": "integ-lambda-python-arm64:ExportsOutputRefHandler886CB40BD176DC16" + } } } }, diff --git a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-creating.assets.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-creating.assets.json new file mode 100644 index 0000000000000..58c023eab8e3b --- /dev/null +++ b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-creating.assets.json @@ -0,0 +1,32 @@ +{ + "version": "21.0.0", + "files": { + "b54b99043c35bd080b9d9d1afce31e3541cf15b679799ba980ed40c837dcb03b": { + "source": { + "path": "asset.b54b99043c35bd080b9d9d1afce31e3541cf15b679799ba980ed40c837dcb03b.bundle", + "packaging": "zip" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "b54b99043c35bd080b9d9d1afce31e3541cf15b679799ba980ed40c837dcb03b.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, + "774681e523ca39cdb798d74ea486ac7874030c04a36debc6a623f24afe196859": { + "source": { + "path": "sspms-creating.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "774681e523ca39cdb798d74ea486ac7874030c04a36debc6a623f24afe196859.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/lambdapythonarm64DefaultTestDeployAssertAB537F34.template.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-creating.template.json similarity index 57% rename from packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/lambdapythonarm64DefaultTestDeployAssertAB537F34.template.json rename to packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-creating.template.json index 634c49f636e24..5300480f9984b 100644 --- a/packages/@aws-cdk/aws-lambda-python/test/function.arm64.integ.snapshot/lambdapythonarm64DefaultTestDeployAssertAB537F34.template.json +++ b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-creating.template.json @@ -1,7 +1,15 @@ { "Resources": { - "LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5": { - "Type": "Custom::DeployAssert@SdkCallLambdainvoke", + "String0BA8456E": { + "Type": "AWS::SSM::Parameter", + "Properties": { + "Type": "String", + "Value": "Abc123", + "Name": "/My/Public/Parameter" + } + }, + "SecureParam": { + "Type": "Custom::DeployAssert@SdkCallSSMputParameter", "Properties": { "ServiceToken": { "Fn::GetAtt": [ @@ -9,35 +17,19 @@ "Arn" ] }, - "service": "Lambda", - "api": "invoke", - "expected": "{\"$ObjectLike\":{\"Payload\":\"200\"}}", + "service": "SSM", + "api": "putParameter", "parameters": { - "FunctionName": { - "Fn::ImportValue": "integ-lambda-python-arm64:ExportsOutputRefHandler886CB40BD176DC16" - } + "Name": "/My/Secret/Parameter", + "Type": "SecureString", + "Value": "Abc123" }, "flattenResponse": "false", - "salt": "1666045944925" + "salt": "1666616854737" }, "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete" }, - "LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5Invoke30065BC0": { - "Type": "AWS::Lambda::Permission", - "Properties": { - "Action": "lambda:InvokeFunction", - "FunctionName": { - "Fn::ImportValue": "integ-lambda-python-arm64:ExportsOutputRefHandler886CB40BD176DC16" - }, - "Principal": { - "Fn::GetAtt": [ - "SingletonFunction1488541a7b23466481b69b4408076b81Role37ABCE73", - "Arn" - ] - } - } - }, "SingletonFunction1488541a7b23466481b69b4408076b81Role37ABCE73": { "Type": "AWS::IAM::Role", "Properties": { @@ -66,43 +58,12 @@ "Statement": [ { "Action": [ - "lambda:Invoke" + "ssm:PutParameter" ], "Effect": "Allow", "Resource": [ "*" ] - }, - { - "Action": [ - "lambda:InvokeFunction" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":lambda:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":function:", - { - "Fn::ImportValue": "integ-lambda-python-arm64:ExportsOutputRefHandler886CB40BD176DC16" - } - ] - ] - } - ] } ] } @@ -118,7 +79,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3074b79e05e7b98930b6449e01baa3e68b32ecff86328933c2542f7b7fe6fdac.zip" + "S3Key": "b54b99043c35bd080b9d9d1afce31e3541cf15b679799ba980ed40c837dcb03b.zip" }, "Timeout": 120, "Handler": "index.handler", @@ -131,16 +92,6 @@ } } }, - "Outputs": { - "AssertionResultsLambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5": { - "Value": { - "Fn::GetAtt": [ - "LambdaInvoke35ae3a38b93bc81e7b95e90f43eeaec5", - "assertion" - ] - } - } - }, "Parameters": { "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-using.assets.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-using.assets.json new file mode 100644 index 0000000000000..5b3b30e94ddf0 --- /dev/null +++ b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-using.assets.json @@ -0,0 +1,19 @@ +{ + "version": "21.0.0", + "files": { + "f6e392d82be8514b35d4085f6ff4e3df808815b1cf4cc7a119cb67ace46e03b9": { + "source": { + "path": "sspms-using.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "f6e392d82be8514b35d4085f6ff4e3df808815b1cf4cc7a119cb67ace46e03b9.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-using.template.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-using.template.json new file mode 100644 index 0000000000000..ed9e26d07c61c --- /dev/null +++ b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/sspms-using.template.json @@ -0,0 +1,90 @@ +{ + "Parameters": { + "MyParameterVersion": { + "Type": "Number", + "Default": 1 + }, + "MyValueParameter": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/My/Public/Parameter" + }, + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Resources": { + "DummyResourceUsingStringParameters": { + "Type": "AWS::IAM::User", + "Properties": { + "LoginProfile": { + "Password": { + "Fn::Join": [ + "-", + [ + { + "Ref": "MyValueParameter" + }, + { + "Fn::Join": [ + "", + [ + "{{resolve:ssm:/My/Public/Parameter:", + { + "Ref": "MyParameterVersion" + }, + "}}" + ] + ] + }, + "{{resolve:ssm-secure:/My/Secret/Parameter}}-{{resolve:ssm-secure:/My/Secret/Parameter:1}}", + { + "Fn::Join": [ + "", + [ + "{{resolve:ssm-secure:/My/Secret/Parameter:", + { + "Ref": "MyParameterVersion" + }, + "}}" + ] + ] + } + ] + ] + } + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/tree.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/tree.json new file mode 100644 index 0000000000000..89b9dbbcb8d05 --- /dev/null +++ b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.integ.snapshot/tree.json @@ -0,0 +1,329 @@ +{ + "version": "tree-0.1", + "tree": { + "id": "App", + "path": "", + "children": { + "Tree": { + "id": "Tree", + "path": "Tree", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.1.133" + } + }, + "sspms-creating": { + "id": "sspms-creating", + "path": "sspms-creating", + "children": { + "String": { + "id": "String", + "path": "sspms-creating/String", + "children": { + "Resource": { + "id": "Resource", + "path": "sspms-creating/String/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::SSM::Parameter", + "aws:cdk:cloudformation:props": { + "type": "String", + "value": "Abc123", + "name": "/My/Public/Parameter" + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ssm.CfnParameter", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-ssm.StringParameter", + "version": "0.0.0" + } + }, + "SecureParam": { + "id": "SecureParam", + "path": "sspms-creating/SecureParam", + "children": { + "SdkProvider": { + "id": "SdkProvider", + "path": "sspms-creating/SecureParam/SdkProvider", + "children": { + "AssertionsProvider": { + "id": "AssertionsProvider", + "path": "sspms-creating/SecureParam/SdkProvider/AssertionsProvider", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.1.133" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests.AssertionsProvider", + "version": "0.0.0" + } + }, + "Default": { + "id": "Default", + "path": "sspms-creating/SecureParam/Default", + "children": { + "Default": { + "id": "Default", + "path": "sspms-creating/SecureParam/Default/Default", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnResource", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/core.CustomResource", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests.AwsApiCall", + "version": "0.0.0" + } + }, + "SingletonFunction1488541a7b23466481b69b4408076b81": { + "id": "SingletonFunction1488541a7b23466481b69b4408076b81", + "path": "sspms-creating/SingletonFunction1488541a7b23466481b69b4408076b81", + "children": { + "Staging": { + "id": "Staging", + "path": "sspms-creating/SingletonFunction1488541a7b23466481b69b4408076b81/Staging", + "constructInfo": { + "fqn": "@aws-cdk/core.AssetStaging", + "version": "0.0.0" + } + }, + "Role": { + "id": "Role", + "path": "sspms-creating/SingletonFunction1488541a7b23466481b69b4408076b81/Role", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnResource", + "version": "0.0.0" + } + }, + "Handler": { + "id": "Handler", + "path": "sspms-creating/SingletonFunction1488541a7b23466481b69b4408076b81/Handler", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnResource", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.1.133" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/core.Stack", + "version": "0.0.0" + } + }, + "sspms-using": { + "id": "sspms-using", + "path": "sspms-using", + "children": { + "MyParameterVersion": { + "id": "MyParameterVersion", + "path": "sspms-using/MyParameterVersion", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnParameter", + "version": "0.0.0" + } + }, + "MyValue.Parameter": { + "id": "MyValue.Parameter", + "path": "sspms-using/MyValue.Parameter", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnParameter", + "version": "0.0.0" + } + }, + "MyValue": { + "id": "MyValue", + "path": "sspms-using/MyValue", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "MyValueVersionFromToken": { + "id": "MyValueVersionFromToken", + "path": "sspms-using/MyValueVersionFromToken", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "MySecureValue": { + "id": "MySecureValue", + "path": "sspms-using/MySecureValue", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "MySecureValueVersion": { + "id": "MySecureValueVersion", + "path": "sspms-using/MySecureValueVersion", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "MySecureValueVersionFromToken": { + "id": "MySecureValueVersionFromToken", + "path": "sspms-using/MySecureValueVersionFromToken", + "constructInfo": { + "fqn": "@aws-cdk/core.Resource", + "version": "0.0.0" + } + }, + "DummyResourceUsingStringParameters": { + "id": "DummyResourceUsingStringParameters", + "path": "sspms-using/DummyResourceUsingStringParameters", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnResource", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/core.Stack", + "version": "0.0.0" + } + }, + "sspms-cleanup": { + "id": "sspms-cleanup", + "path": "sspms-cleanup", + "children": { + "AwsApiCallSSMdeleteParameter": { + "id": "AwsApiCallSSMdeleteParameter", + "path": "sspms-cleanup/AwsApiCallSSMdeleteParameter", + "children": { + "SdkProvider": { + "id": "SdkProvider", + "path": "sspms-cleanup/AwsApiCallSSMdeleteParameter/SdkProvider", + "children": { + "AssertionsProvider": { + "id": "AssertionsProvider", + "path": "sspms-cleanup/AwsApiCallSSMdeleteParameter/SdkProvider/AssertionsProvider", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.1.133" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests.AssertionsProvider", + "version": "0.0.0" + } + }, + "Default": { + "id": "Default", + "path": "sspms-cleanup/AwsApiCallSSMdeleteParameter/Default", + "children": { + "Default": { + "id": "Default", + "path": "sspms-cleanup/AwsApiCallSSMdeleteParameter/Default/Default", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnResource", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/core.CustomResource", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests.AwsApiCall", + "version": "0.0.0" + } + }, + "SingletonFunction1488541a7b23466481b69b4408076b81": { + "id": "SingletonFunction1488541a7b23466481b69b4408076b81", + "path": "sspms-cleanup/SingletonFunction1488541a7b23466481b69b4408076b81", + "children": { + "Staging": { + "id": "Staging", + "path": "sspms-cleanup/SingletonFunction1488541a7b23466481b69b4408076b81/Staging", + "constructInfo": { + "fqn": "@aws-cdk/core.AssetStaging", + "version": "0.0.0" + } + }, + "Role": { + "id": "Role", + "path": "sspms-cleanup/SingletonFunction1488541a7b23466481b69b4408076b81/Role", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnResource", + "version": "0.0.0" + } + }, + "Handler": { + "id": "Handler", + "path": "sspms-cleanup/SingletonFunction1488541a7b23466481b69b4408076b81/Handler", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnResource", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.1.133" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/core.Stack", + "version": "0.0.0" + } + }, + "SSMParameterStoreTest": { + "id": "SSMParameterStoreTest", + "path": "SSMParameterStoreTest", + "children": { + "DefaultTest": { + "id": "DefaultTest", + "path": "SSMParameterStoreTest/DefaultTest", + "children": { + "Default": { + "id": "Default", + "path": "SSMParameterStoreTest/DefaultTest/Default", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.1.133" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests.IntegTestCase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests.IntegTest", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/core.App", + "version": "0.0.0" + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/cdk.out b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/cdk.out deleted file mode 100644 index 90bef2e09ad39..0000000000000 --- a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/cdk.out +++ /dev/null @@ -1 +0,0 @@ -{"version":"17.0.0"} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/integ.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/integ.json deleted file mode 100644 index 18726211c7a42..0000000000000 --- a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/integ.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "version": "20.0.0", - "testCases": { - "integ.parameter-store-string.lit": { - "stacks": [ - "*" - ], - "diffAssets": false, - "stackUpdateWorkflow": true - } - }, - "synthContext": {}, - "enableLookups": false -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/manifest.json deleted file mode 100644 index e28ecb16abfa8..0000000000000 --- a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/manifest.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "version": "17.0.0", - "artifacts": { - "Tree": { - "type": "cdk:tree", - "properties": { - "file": "tree.json" - } - }, - "sspms-creating": { - "type": "aws:cloudformation:stack", - "environment": "aws://unknown-account/unknown-region", - "properties": { - "templateFile": "sspms-creating.template.json", - "validateOnSynth": false - }, - "metadata": { - "/sspms-creating/String/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "String0BA8456E" - } - ] - }, - "displayName": "sspms-creating" - }, - "sspms-using": { - "type": "aws:cloudformation:stack", - "environment": "aws://unknown-account/unknown-region", - "properties": { - "templateFile": "sspms-using.template.json", - "validateOnSynth": false - }, - "dependencies": [ - "sspms-creating" - ], - "metadata": { - "/sspms-using/MyParameterVersion": [ - { - "type": "aws:cdk:logicalId", - "data": "MyParameterVersion" - } - ], - "/sspms-using/MyValue.Parameter": [ - { - "type": "aws:cdk:logicalId", - "data": "MyValueParameter" - } - ], - "/sspms-using/Dummy": [ - { - "type": "aws:cdk:logicalId", - "data": "Dummy" - } - ], - "/sspms-using/TheValue": [ - { - "type": "aws:cdk:logicalId", - "data": "TheValue" - } - ], - "/sspms-using/TheValueVersionFromToken": [ - { - "type": "aws:cdk:logicalId", - "data": "TheValueVersionFromToken" - } - ] - }, - "displayName": "sspms-using" - } - } -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/sspms-creating.template.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/sspms-creating.template.json deleted file mode 100644 index 1e9fc486b77c2..0000000000000 --- a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/sspms-creating.template.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Resources": { - "String0BA8456E": { - "Type": "AWS::SSM::Parameter", - "Properties": { - "Type": "String", - "Value": "abcdef", - "Name": "/My/Public/Parameter" - } - } - } -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/sspms-using.template.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/sspms-using.template.json deleted file mode 100644 index 00e99691afa6c..0000000000000 --- a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/sspms-using.template.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "Parameters": { - "MyParameterVersion": { - "Type": "Number", - "Default": 1 - }, - "MyValueParameter": { - "Type": "AWS::SSM::Parameter::Value", - "Default": "/My/Public/Parameter" - } - }, - "Resources": { - "Dummy": { - "Type": "AWS::SNS::Topic" - } - }, - "Outputs": { - "TheValue": { - "Value": { - "Ref": "MyValueParameter" - } - }, - "TheValueVersionFromToken": { - "Value": { - "Fn::Join": [ - "", - [ - "{{resolve:ssm:/My/Public/Parameter:", - { - "Ref": "MyParameterVersion" - }, - "}}" - ] - ] - } - } - } -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/tree.json b/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/tree.json deleted file mode 100644 index aeab51f8647c0..0000000000000 --- a/packages/@aws-cdk/aws-ssm/test/parameter-store-string.lit.integ.snapshot/tree.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "@aws-cdk/core.Construct", - "version": "0.0.0" - } - }, - "sspms-creating": { - "id": "sspms-creating", - "path": "sspms-creating", - "children": { - "String": { - "id": "String", - "path": "sspms-creating/String", - "children": { - "Resource": { - "id": "Resource", - "path": "sspms-creating/String/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SSM::Parameter", - "aws:cdk:cloudformation:props": { - "type": "String", - "value": "abcdef", - "name": "/My/Public/Parameter" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-ssm.CfnParameter", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-ssm.StringParameter", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/core.Stack", - "version": "0.0.0" - } - }, - "sspms-using": { - "id": "sspms-using", - "path": "sspms-using", - "children": { - "MyParameterVersion": { - "id": "MyParameterVersion", - "path": "sspms-using/MyParameterVersion", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnParameter", - "version": "0.0.0" - } - }, - "MyValue.Parameter": { - "id": "MyValue.Parameter", - "path": "sspms-using/MyValue.Parameter", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnParameter", - "version": "0.0.0" - } - }, - "MyValue": { - "id": "MyValue", - "path": "sspms-using/MyValue", - "constructInfo": { - "fqn": "@aws-cdk/core.Resource", - "version": "0.0.0" - } - }, - "MyValueVersionFromToken": { - "id": "MyValueVersionFromToken", - "path": "sspms-using/MyValueVersionFromToken", - "constructInfo": { - "fqn": "@aws-cdk/core.Resource", - "version": "0.0.0" - } - }, - "MySecureValue": { - "id": "MySecureValue", - "path": "sspms-using/MySecureValue", - "constructInfo": { - "fqn": "@aws-cdk/core.Resource", - "version": "0.0.0" - } - }, - "MySecureValueVersionFromToken": { - "id": "MySecureValueVersionFromToken", - "path": "sspms-using/MySecureValueVersionFromToken", - "constructInfo": { - "fqn": "@aws-cdk/core.Resource", - "version": "0.0.0" - } - }, - "Dummy": { - "id": "Dummy", - "path": "sspms-using/Dummy", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnResource", - "version": "0.0.0" - } - }, - "TheValue": { - "id": "TheValue", - "path": "sspms-using/TheValue", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnOutput", - "version": "0.0.0" - } - }, - "TheValueVersionFromToken": { - "id": "TheValueVersionFromToken", - "path": "sspms-using/TheValueVersionFromToken", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnOutput", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/core.Stack", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/core.App", - "version": "0.0.0" - } - } -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ssm/test/parameter.test.ts b/packages/@aws-cdk/aws-ssm/test/parameter.test.ts index 817eb4d264239..c33bfaa01305f 100644 --- a/packages/@aws-cdk/aws-ssm/test/parameter.test.ts +++ b/packages/@aws-cdk/aws-ssm/test/parameter.test.ts @@ -602,7 +602,7 @@ test('StringParameter.fromSecureStringParameterAttributes without version', () = }); // THEN - expect(stack.resolve(param.stringValue)).toEqual('{{resolve:ssm-secure:MyParamName:}}'); + expect(stack.resolve(param.stringValue)).toEqual('{{resolve:ssm-secure:MyParamName}}'); }); test('StringListParameter.fromName', () => { diff --git a/packages/@aws-cdk/aws-synthetics/README.md b/packages/@aws-cdk/aws-synthetics/README.md index 77e0b90640d81..0f68a385d998c 100644 --- a/packages/@aws-cdk/aws-synthetics/README.md +++ b/packages/@aws-cdk/aws-synthetics/README.md @@ -42,7 +42,7 @@ const canary = new synthetics.Canary(this, 'MyCanary', { code: synthetics.Code.fromAsset(path.join(__dirname, 'canary')), handler: 'index.handler', }), - runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_1, + runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_7, environmentVariables: { stage: 'prod', }, @@ -129,7 +129,7 @@ new synthetics.Canary(this, 'Inline Canary', { code: synthetics.Code.fromInline('/* Synthetics handler code */'), handler: 'index.handler', // must be 'index.handler' }), - runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_4, + runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_7, }); // To supply the code from your local filesystem: @@ -138,7 +138,7 @@ new synthetics.Canary(this, 'Asset Canary', { code: synthetics.Code.fromAsset(path.join(__dirname, 'canary')), handler: 'index.handler', // must end with '.handler' }), - runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_4, + runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_7, }); // To supply the code from a S3 bucket: @@ -149,7 +149,7 @@ new synthetics.Canary(this, 'Bucket Canary', { code: synthetics.Code.fromBucket(bucket, 'canary.zip'), handler: 'index.handler', // must end with '.handler' }), - runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_4, + runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_7, }); ``` @@ -188,7 +188,7 @@ new synthetics.Canary(this, 'Vpc Canary', { code: synthetics.Code.fromAsset(path.join(__dirname, 'canary')), handler: 'index.handler', }), - runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_4, + runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_7, vpc, }); ``` diff --git a/packages/@aws-cdk/aws-synthetics/lib/runtime.ts b/packages/@aws-cdk/aws-synthetics/lib/runtime.ts index ebeac63284695..f6eefc5e8ddde 100644 --- a/packages/@aws-cdk/aws-synthetics/lib/runtime.ts +++ b/packages/@aws-cdk/aws-synthetics/lib/runtime.ts @@ -144,6 +144,16 @@ export class Runtime { */ public static readonly SYNTHETICS_NODEJS_PUPPETEER_3_6 = new Runtime('syn-nodejs-puppeteer-3.6', RuntimeFamily.NODEJS); + /** + * `syn-nodejs-puppeteer-3.7` includes the following: + * - Lambda runtime Node.js 14.x + * - Puppeteer-core version 10.1.0 + * - Chromium version 92.0.4512 + * + * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.7 + */ + public static readonly SYNTHETICS_NODEJS_PUPPETEER_3_7 = new Runtime('syn-nodejs-puppeteer-3.7', RuntimeFamily.NODEJS); + /** * `syn-python-selenium-1.0` includes the following: * - Lambda runtime Python 3.8 diff --git a/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/canary-one.assets.json b/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/canary-one.assets.json index 34c6ee2541ad7..ca535da2aecc1 100644 --- a/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/canary-one.assets.json +++ b/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/canary-one.assets.json @@ -1,5 +1,5 @@ { - "version": "20.0.0", + "version": "21.0.0", "files": { "9d00e437db1f5f8788ce938a3f00a9a1b946820e78c9b4c36207c8475db882bb": { "source": { @@ -27,7 +27,7 @@ } } }, - "dd5cacd9987453c5d75cae0c956943b37b2fb0597ac6490e5b2e3eb1d0a5a6a0": { + "38dcc41263b1a009e2d7560d81dee9041f4f7941b66cd73b63df402a6fe3c22d": { "source": { "path": "canary-one.template.json", "packaging": "file" @@ -35,7 +35,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "dd5cacd9987453c5d75cae0c956943b37b2fb0597ac6490e5b2e3eb1d0a5a6a0.json", + "objectKey": "38dcc41263b1a009e2d7560d81dee9041f4f7941b66cd73b63df402a6fe3c22d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/canary-one.template.json b/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/canary-one.template.json index a960ab9caf898..c4a1a1232eeb4 100644 --- a/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/canary-one.template.json +++ b/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/canary-one.template.json @@ -728,6 +728,203 @@ "StartCanaryAfterCreation": true } }, + "MyCanaryFourArtifactsBucketE259973B": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "aws:kms" + } + } + ] + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "MyCanaryFourArtifactsBucketPolicy20BDB9D7": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "MyCanaryFourArtifactsBucketE259973B" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "MyCanaryFourArtifactsBucketE259973B", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "MyCanaryFourArtifactsBucketE259973B", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + } + } + }, + "MyCanaryFourServiceRoleA532F905": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:ListAllMyBuckets", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": "s3:GetBucketLocation", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "MyCanaryFourArtifactsBucketE259973B", + "Arn" + ] + } + }, + { + "Action": "s3:PutObject", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "MyCanaryFourArtifactsBucketE259973B", + "Arn" + ] + }, + "/*" + ] + ] + } + }, + { + "Action": "cloudwatch:PutMetricData", + "Condition": { + "StringEquals": { + "cloudwatch:namespace": "CloudWatchSynthetics" + } + }, + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/lambda/cwsyn-*" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "canaryPolicy" + } + ] + } + }, + "MyCanaryFour15095F40": { + "Type": "AWS::Synthetics::Canary", + "Properties": { + "ArtifactS3Location": { + "Fn::Join": [ + "", + [ + "s3://", + { + "Ref": "MyCanaryFourArtifactsBucketE259973B" + } + ] + ] + }, + "Code": { + "Handler": "canary.handler", + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "b1b777dcb79a2fa2790059927207d10bf5f4747d6dd1516e2780726d9d6fa820.zip" + }, + "ExecutionRoleArn": { + "Fn::GetAtt": [ + "MyCanaryFourServiceRoleA532F905", + "Arn" + ] + }, + "Name": "assetcanary-four", + "RuntimeVersion": "syn-nodejs-puppeteer-3.7", + "Schedule": { + "DurationInSeconds": "0", + "Expression": "rate(5 minutes)" + }, + "StartCanaryAfterCreation": true + } + }, "MyPythonCanaryArtifactsBucket7AE88133": { "Type": "AWS::S3::Bucket", "Properties": { diff --git a/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/cdk.out b/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/cdk.out index 588d7b269d34f..8ecc185e9dbee 100644 --- a/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/cdk.out +++ b/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/cdk.out @@ -1 +1 @@ -{"version":"20.0.0"} \ No newline at end of file +{"version":"21.0.0"} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/integ.json b/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/integ.json index 5e35a2eb40920..c8afc51228754 100644 --- a/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/integ.json +++ b/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "20.0.0", + "version": "21.0.0", "testCases": { "integ.canary": { "stacks": [ diff --git a/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/manifest.json index bcfd4a7e5686f..346dbfd1f3265 100644 --- a/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "20.0.0", + "version": "21.0.0", "artifacts": { "Tree": { "type": "cdk:tree", @@ -23,7 +23,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/dd5cacd9987453c5d75cae0c956943b37b2fb0597ac6490e5b2e3eb1d0a5a6a0.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/38dcc41263b1a009e2d7560d81dee9041f4f7941b66cd73b63df402a6fe3c22d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -129,6 +129,30 @@ "data": "MyCanaryThree968B1271" } ], + "/canary-one/MyCanaryFour/ArtifactsBucket/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "MyCanaryFourArtifactsBucketE259973B" + } + ], + "/canary-one/MyCanaryFour/ArtifactsBucket/Policy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "MyCanaryFourArtifactsBucketPolicy20BDB9D7" + } + ], + "/canary-one/MyCanaryFour/ServiceRole/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "MyCanaryFourServiceRoleA532F905" + } + ], + "/canary-one/MyCanaryFour/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "MyCanaryFour15095F40" + } + ], "/canary-one/MyPythonCanary/ArtifactsBucket/Resource": [ { "type": "aws:cdk:logicalId", diff --git a/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/tree.json b/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/tree.json index b3b68479060e3..688b06c0583c7 100644 --- a/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/tree.json +++ b/packages/@aws-cdk/aws-synthetics/test/canary.integ.snapshot/tree.json @@ -9,7 +9,7 @@ "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.85" + "version": "10.1.133" } }, "canary-one": { @@ -431,8 +431,8 @@ "id": "Stage", "path": "canary-one/MyCanaryOne/Code/Stage", "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.AssetStaging", + "version": "0.0.0" } }, "AssetBucket": { @@ -724,8 +724,8 @@ "id": "Stage", "path": "canary-one/MyCanaryTwo/Code/Stage", "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.AssetStaging", + "version": "0.0.0" } }, "AssetBucket": { @@ -1017,8 +1017,8 @@ "id": "Stage", "path": "canary-one/MyCanaryThree/Code/Stage", "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.AssetStaging", + "version": "0.0.0" } }, "AssetBucket": { @@ -1085,6 +1085,299 @@ "version": "0.0.0" } }, + "MyCanaryFour": { + "id": "MyCanaryFour", + "path": "canary-one/MyCanaryFour", + "children": { + "ArtifactsBucket": { + "id": "ArtifactsBucket", + "path": "canary-one/MyCanaryFour/ArtifactsBucket", + "children": { + "Resource": { + "id": "Resource", + "path": "canary-one/MyCanaryFour/ArtifactsBucket/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::S3::Bucket", + "aws:cdk:cloudformation:props": { + "bucketEncryption": { + "serverSideEncryptionConfiguration": [ + { + "serverSideEncryptionByDefault": { + "sseAlgorithm": "aws:kms" + } + } + ] + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-s3.CfnBucket", + "version": "0.0.0" + } + }, + "Policy": { + "id": "Policy", + "path": "canary-one/MyCanaryFour/ArtifactsBucket/Policy", + "children": { + "Resource": { + "id": "Resource", + "path": "canary-one/MyCanaryFour/ArtifactsBucket/Policy/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy", + "aws:cdk:cloudformation:props": { + "bucket": { + "Ref": "MyCanaryFourArtifactsBucketE259973B" + }, + "policyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "MyCanaryFourArtifactsBucketE259973B", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "MyCanaryFourArtifactsBucketE259973B", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-s3.CfnBucketPolicy", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-s3.BucketPolicy", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-s3.Bucket", + "version": "0.0.0" + } + }, + "ServiceRole": { + "id": "ServiceRole", + "path": "canary-one/MyCanaryFour/ServiceRole", + "children": { + "Resource": { + "id": "Resource", + "path": "canary-one/MyCanaryFour/ServiceRole/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "policies": [ + { + "policyName": "canaryPolicy", + "policyDocument": { + "Statement": [ + { + "Action": "s3:ListAllMyBuckets", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": "s3:GetBucketLocation", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "MyCanaryFourArtifactsBucketE259973B", + "Arn" + ] + } + }, + { + "Action": "s3:PutObject", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "MyCanaryFourArtifactsBucketE259973B", + "Arn" + ] + }, + "/*" + ] + ] + } + }, + { + "Action": "cloudwatch:PutMetricData", + "Condition": { + "StringEquals": { + "cloudwatch:namespace": "CloudWatchSynthetics" + } + }, + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/lambda/cwsyn-*" + ] + ] + } + } + ], + "Version": "2012-10-17" + } + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-iam.CfnRole", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-iam.Role", + "version": "0.0.0" + } + }, + "Code": { + "id": "Code", + "path": "canary-one/MyCanaryFour/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "canary-one/MyCanaryFour/Code/Stage", + "constructInfo": { + "fqn": "@aws-cdk/core.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "canary-one/MyCanaryFour/Code/AssetBucket", + "constructInfo": { + "fqn": "@aws-cdk/aws-s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-s3-assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "canary-one/MyCanaryFour/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Synthetics::Canary", + "aws:cdk:cloudformation:props": { + "artifactS3Location": { + "Fn::Join": [ + "", + [ + "s3://", + { + "Ref": "MyCanaryFourArtifactsBucketE259973B" + } + ] + ] + }, + "code": { + "handler": "canary.handler", + "s3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "s3Key": "b1b777dcb79a2fa2790059927207d10bf5f4747d6dd1516e2780726d9d6fa820.zip" + }, + "executionRoleArn": { + "Fn::GetAtt": [ + "MyCanaryFourServiceRoleA532F905", + "Arn" + ] + }, + "name": "assetcanary-four", + "runtimeVersion": "syn-nodejs-puppeteer-3.7", + "schedule": { + "durationInSeconds": "0", + "expression": "rate(5 minutes)" + }, + "startCanaryAfterCreation": true + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-synthetics.CfnCanary", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-synthetics.Canary", + "version": "0.0.0" + } + }, "MyPythonCanary": { "id": "MyPythonCanary", "path": "canary-one/MyPythonCanary", @@ -1310,8 +1603,8 @@ "id": "Stage", "path": "canary-one/MyPythonCanary/Code/Stage", "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.AssetStaging", + "version": "0.0.0" } }, "AssetBucket": { @@ -1380,14 +1673,14 @@ } }, "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.Stack", + "version": "0.0.0" } } }, "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.App", + "version": "0.0.0" } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-synthetics/test/integ.canary.ts b/packages/@aws-cdk/aws-synthetics/test/integ.canary.ts index 268667b8439f3..c4dde679acde3 100644 --- a/packages/@aws-cdk/aws-synthetics/test/integ.canary.ts +++ b/packages/@aws-cdk/aws-synthetics/test/integ.canary.ts @@ -12,6 +12,7 @@ import * as synthetics from '../lib'; * -- aws synthetics get-canary --name assetcanary-one has a state of 'RUNNING' * -- aws synthetics get-canary --name assetcanary-two has a state of 'RUNNING' * -- aws synthetics get-canary --name assetcanary-three has a state of 'RUNNING' + * -- aws synthetics get-canary --name assetcanary-four has a state of 'RUNNING' */ const app = new cdk.App(); const stack = new cdk.Stack(app, 'canary-one'); @@ -60,6 +61,15 @@ new synthetics.Canary(stack, 'MyCanaryThree', { runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_3, }); +new synthetics.Canary(stack, 'MyCanaryFour', { + canaryName: 'assetcanary-four', + test: synthetics.Test.custom({ + handler: 'canary.handler', + code: synthetics.Code.fromAsset(path.join(__dirname, 'canary.zip')), + }), + runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_7, +}); + new synthetics.Canary(stack, 'MyPythonCanary', { canaryName: 'py-canary-integ', test: synthetics.Test.custom({ diff --git a/packages/@aws-cdk/cfnspec/CHANGELOG.md b/packages/@aws-cdk/cfnspec/CHANGELOG.md index 40f817672cc8f..4202314c0e497 100644 --- a/packages/@aws-cdk/cfnspec/CHANGELOG.md +++ b/packages/@aws-cdk/cfnspec/CHANGELOG.md @@ -2,6 +2,45 @@ ## New Resource Types +* AWS::FSx::DataRepositoryAssociation + +## Attribute Changes + +* AWS::ApiGatewayV2::Api ApiId (__added__) + +## Property Changes + +* AWS::ACMPCA::CertificateAuthority UsageMode (__added__) +* AWS::ApiGatewayV2::Api Tags.PrimitiveType (__deleted__) +* AWS::ApiGatewayV2::Api Tags.PrimitiveItemType (__added__) +* AWS::ApiGatewayV2::Api Tags.Type (__added__) +* AWS::Cognito::UserPool DeletionProtection (__added__) +* AWS::EC2::FlowLog TrafficType.Required (__changed__) + * Old: true + * New: false + +## Property Type Changes + +* AWS::IoT::TopicRule.LocationAction (__added__) +* AWS::IoT::TopicRule.Timestamp (__added__) +* AWS::ApiGatewayV2::Api.Cors AllowHeaders.DuplicatesAllowed (__added__) +* AWS::ApiGatewayV2::Api.Cors AllowMethods.DuplicatesAllowed (__added__) +* AWS::ApiGatewayV2::Api.Cors AllowOrigins.DuplicatesAllowed (__added__) +* AWS::ApiGatewayV2::Api.Cors ExposeHeaders.DuplicatesAllowed (__added__) +* AWS::ECS::TaskDefinition.ContainerDefinition Image.Required (__changed__) + * Old: false + * New: true +* AWS::ECS::TaskDefinition.ContainerDefinition Name.Required (__changed__) + * Old: false + * New: true +* AWS::IoT::TopicRule.Action Location (__added__) +* AWS::IoT::TopicRule.TimestreamAction BatchMode (__deleted__) + + +# CloudFormation Resource Specification v94.0.0 + +## New Resource Types + * AWS::IdentityStore::Group * AWS::IdentityStore::GroupMembership diff --git a/packages/@aws-cdk/cfnspec/package.json b/packages/@aws-cdk/cfnspec/package.json index 2d347b1893cab..8a803eed2e243 100644 --- a/packages/@aws-cdk/cfnspec/package.json +++ b/packages/@aws-cdk/cfnspec/package.json @@ -37,7 +37,7 @@ "@types/md5": "^2.3.2", "fast-json-patch": "^2.2.1", "jest": "^27.5.1", - "json-diff": "^0.9.0", + "json-diff": "^0.9.1", "sort-json": "^2.0.1" }, "dependencies": { diff --git a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_ACMPCA.json b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_ACMPCA.json index 31a3e6f635383..1a80f9e678133 100644 --- a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_ACMPCA.json +++ b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_ACMPCA.json @@ -915,6 +915,12 @@ "PrimitiveType": "String", "Required": true, "UpdateType": "Immutable" + }, + "UsageMode": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html#cfn-acmpca-certificateauthority-usagemode", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" } } }, diff --git a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_ApiGatewayV2.json b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_ApiGatewayV2.json index 543f1b3e419ba..781eff2c8a2f9 100644 --- a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_ApiGatewayV2.json +++ b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_ApiGatewayV2.json @@ -41,6 +41,7 @@ }, "AllowHeaders": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html#cfn-apigatewayv2-api-cors-allowheaders", + "DuplicatesAllowed": true, "PrimitiveItemType": "String", "Required": false, "Type": "List", @@ -48,6 +49,7 @@ }, "AllowMethods": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html#cfn-apigatewayv2-api-cors-allowmethods", + "DuplicatesAllowed": true, "PrimitiveItemType": "String", "Required": false, "Type": "List", @@ -55,6 +57,7 @@ }, "AllowOrigins": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html#cfn-apigatewayv2-api-cors-alloworigins", + "DuplicatesAllowed": true, "PrimitiveItemType": "String", "Required": false, "Type": "List", @@ -62,6 +65,7 @@ }, "ExposeHeaders": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html#cfn-apigatewayv2-api-cors-exposeheaders", + "DuplicatesAllowed": true, "PrimitiveItemType": "String", "Required": false, "Type": "List", @@ -423,6 +427,9 @@ "Attributes": { "ApiEndpoint": { "PrimitiveType": "String" + }, + "ApiId": { + "PrimitiveType": "String" } }, "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html", @@ -513,8 +520,9 @@ }, "Tags": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-tags", - "PrimitiveType": "Json", + "PrimitiveItemType": "String", "Required": false, + "Type": "Map", "UpdateType": "Mutable" }, "Target": { diff --git a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_Cognito.json b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_Cognito.json index 97db0be0d5f30..7531b522622af 100644 --- a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_Cognito.json +++ b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_Cognito.json @@ -1026,6 +1026,12 @@ "Type": "List", "UpdateType": "Mutable" }, + "DeletionProtection": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-deletionprotection", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "DeviceConfiguration": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-deviceconfiguration", "Required": false, diff --git a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_EC2.json b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_EC2.json index 2605a0d230fd8..c649a58ca9c30 100644 --- a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_EC2.json +++ b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_EC2.json @@ -5224,7 +5224,7 @@ "TrafficType": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-traffictype", "PrimitiveType": "String", - "Required": true, + "Required": false, "UpdateType": "Immutable" } } diff --git a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_ECS.json b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_ECS.json index b66a0af56ae46..dacd862d27e4b 100644 --- a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_ECS.json +++ b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_ECS.json @@ -523,7 +523,7 @@ "Image": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-image", "PrimitiveType": "String", - "Required": false, + "Required": true, "UpdateType": "Immutable" }, "Interactive": { @@ -575,7 +575,7 @@ "Name": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-name", "PrimitiveType": "String", - "Required": false, + "Required": true, "UpdateType": "Immutable" }, "PortMappings": { diff --git a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_FSx.json b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_FSx.json index 8ff8ec8bf3cdd..c8f511f1dc3fc 100644 --- a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_FSx.json +++ b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_FSx.json @@ -1,6 +1,47 @@ { "$version": "94.0.0", "PropertyTypes": { + "AWS::FSx::DataRepositoryAssociation.AutoExportPolicy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-autoexportpolicy.html", + "Properties": { + "Events": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-autoexportpolicy.html#cfn-fsx-datarepositoryassociation-autoexportpolicy-events", + "PrimitiveItemType": "String", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::FSx::DataRepositoryAssociation.AutoImportPolicy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-autoimportpolicy.html", + "Properties": { + "Events": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-autoimportpolicy.html#cfn-fsx-datarepositoryassociation-autoimportpolicy-events", + "PrimitiveItemType": "String", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::FSx::DataRepositoryAssociation.S3": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-s3.html", + "Properties": { + "AutoExportPolicy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-s3.html#cfn-fsx-datarepositoryassociation-s3-autoexportpolicy", + "Required": false, + "Type": "AutoExportPolicy", + "UpdateType": "Mutable" + }, + "AutoImportPolicy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-s3.html#cfn-fsx-datarepositoryassociation-s3-autoimportpolicy", + "Required": false, + "Type": "AutoImportPolicy", + "UpdateType": "Mutable" + } + } + }, "AWS::FSx::FileSystem.AuditLogConfiguration": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html", "Properties": { @@ -723,6 +764,63 @@ } }, "ResourceTypes": { + "AWS::FSx::DataRepositoryAssociation": { + "Attributes": { + "AssociationId": { + "PrimitiveType": "String" + }, + "ResourceARN": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html", + "Properties": { + "BatchImportMetaDataOnCreate": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-batchimportmetadataoncreate", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Immutable" + }, + "DataRepositoryPath": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-datarepositorypath", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "FileSystemId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-filesystemid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "FileSystemPath": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-filesystempath", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "ImportedFileChunkSize": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-importedfilechunksize", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "S3": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-s3", + "Required": false, + "Type": "S3", + "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-tags", + "DuplicatesAllowed": true, + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, "AWS::FSx::FileSystem": { "Attributes": { "DNSName": { diff --git a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_IoT.json b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_IoT.json index fccd63cf92a72..d7d59e1e90fda 100644 --- a/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_IoT.json +++ b/packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_IoT.json @@ -658,6 +658,12 @@ "Type": "LambdaAction", "UpdateType": "Mutable" }, + "Location": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-location", + "Required": false, + "Type": "LocationAction", + "UpdateType": "Mutable" + }, "OpenSearch": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-opensearch", "Required": false, @@ -1198,6 +1204,47 @@ } } }, + "AWS::IoT::TopicRule.LocationAction": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html", + "Properties": { + "DeviceId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html#cfn-iot-topicrule-locationaction-deviceid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Latitude": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html#cfn-iot-topicrule-locationaction-latitude", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Longitude": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html#cfn-iot-topicrule-locationaction-longitude", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "RoleArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html#cfn-iot-topicrule-locationaction-rolearn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Timestamp": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html#cfn-iot-topicrule-locationaction-timestamp", + "Required": false, + "Type": "Timestamp", + "UpdateType": "Mutable" + }, + "TrackerName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html#cfn-iot-topicrule-locationaction-trackername", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, "AWS::IoT::TopicRule.OpenSearchAction": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html", "Properties": { @@ -1425,15 +1472,26 @@ } } }, - "AWS::IoT::TopicRule.TimestreamAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html", + "AWS::IoT::TopicRule.Timestamp": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestamp.html", "Properties": { - "BatchMode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html#cfn-iot-topicrule-timestreamaction-batchmode", - "PrimitiveType": "Boolean", + "Unit": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestamp.html#cfn-iot-topicrule-timestamp-unit", + "PrimitiveType": "String", "Required": false, "UpdateType": "Mutable" }, + "Value": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestamp.html#cfn-iot-topicrule-timestamp-value", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::IoT::TopicRule.TimestreamAction": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html", + "Properties": { "DatabaseName": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html#cfn-iot-topicrule-timestreamaction-databasename", "PrimitiveType": "String", diff --git a/packages/@aws-cdk/integ-runner/THIRD_PARTY_LICENSES b/packages/@aws-cdk/integ-runner/THIRD_PARTY_LICENSES index bf7b695677e05..0dff2def7a3cf 100644 --- a/packages/@aws-cdk/integ-runner/THIRD_PARTY_LICENSES +++ b/packages/@aws-cdk/integ-runner/THIRD_PARTY_LICENSES @@ -156,7 +156,7 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH RE ---------------- -** aws-sdk@2.1235.0 - https://www.npmjs.com/package/aws-sdk/v/2.1235.0 | Apache-2.0 +** aws-sdk@2.1240.0 - https://www.npmjs.com/package/aws-sdk/v/2.1240.0 | Apache-2.0 AWS SDK for JavaScript Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. @@ -2263,7 +2263,7 @@ OTHER DEALINGS IN THE SOFTWARE. ---------------- -** workerpool@6.2.1 - https://www.npmjs.com/package/workerpool/v/6.2.1 | Apache-2.0 +** workerpool@6.3.0 - https://www.npmjs.com/package/workerpool/v/6.3.0 | Apache-2.0 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -2452,7 +2452,7 @@ Apache License same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright {yyyy} {name of copyright owner} + Copyright (C) 2014-2022 Jos de Jong wjosdejong@gmail.com Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -2466,6 +2466,7 @@ Apache License See the License for the specific language governing permissions and limitations under the License. + ---------------- ** wrap-ansi@7.0.0 - https://www.npmjs.com/package/wrap-ansi/v/7.0.0 | MIT diff --git a/packages/@aws-cdk/integ-runner/package.json b/packages/@aws-cdk/integ-runner/package.json index 76cac1aa835eb..5e76cfcc1db57 100644 --- a/packages/@aws-cdk/integ-runner/package.json +++ b/packages/@aws-cdk/integ-runner/package.json @@ -71,7 +71,7 @@ "aws-cdk": "0.0.0", "chalk": "^4", "fs-extra": "^9.1.0", - "workerpool": "^6.2.1", + "workerpool": "^6.3.0", "yargs": "^16.2.0" }, "repository": { diff --git a/packages/aws-cdk-lib/package.json b/packages/aws-cdk-lib/package.json index 8075aa7ff1719..501fec96f0fb8 100644 --- a/packages/aws-cdk-lib/package.json +++ b/packages/aws-cdk-lib/package.json @@ -368,7 +368,7 @@ "@types/fs-extra": "^8.1.2", "@types/node": "^14.18.32", "constructs": "^10.0.0", - "esbuild": "^0.15.11", + "esbuild": "^0.15.12", "fs-extra": "^9.1.0", "ts-node": "^9.1.1", "typescript": "~3.8.3" diff --git a/packages/aws-cdk/THIRD_PARTY_LICENSES b/packages/aws-cdk/THIRD_PARTY_LICENSES index c98e5022c010f..62bbd19cd48ef 100644 --- a/packages/aws-cdk/THIRD_PARTY_LICENSES +++ b/packages/aws-cdk/THIRD_PARTY_LICENSES @@ -1,6 +1,6 @@ The aws-cdk package includes the following third-party software/licensing: -** @jsii/check-node@1.69.0 - https://www.npmjs.com/package/@jsii/check-node/v/1.69.0 | Apache-2.0 +** @jsii/check-node@1.70.0 - https://www.npmjs.com/package/@jsii/check-node/v/1.70.0 | Apache-2.0 jsii Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. @@ -37,7 +37,7 @@ THE SOFTWARE. ---------------- -** acorn@8.8.0 - https://www.npmjs.com/package/acorn/v/8.8.0 | MIT +** acorn@8.8.1 - https://www.npmjs.com/package/acorn/v/8.8.1 | MIT MIT License Copyright (C) 2012-2022 by various contributors (see AUTHORS) @@ -268,7 +268,7 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH RE ---------------- -** aws-sdk@2.1235.0 - https://www.npmjs.com/package/aws-sdk/v/2.1235.0 | Apache-2.0 +** aws-sdk@2.1240.0 - https://www.npmjs.com/package/aws-sdk/v/2.1240.0 | Apache-2.0 AWS SDK for JavaScript Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/packages/aws-cdk/lib/api/cloudformation-deployments.ts b/packages/aws-cdk/lib/api/cloudformation-deployments.ts index e23c3be1e8747..c2477c56fbc3f 100644 --- a/packages/aws-cdk/lib/api/cloudformation-deployments.ts +++ b/packages/aws-cdk/lib/api/cloudformation-deployments.ts @@ -2,7 +2,7 @@ import * as cxapi from '@aws-cdk/cx-api'; import { AssetManifest } from 'cdk-assets'; import { Tag } from '../cdk-toolkit'; import { debug, warning } from '../logging'; -import { buildAssets, publishAssets } from '../util/asset-publishing'; +import { buildAssets, publishAssets, BuildAssetsOptions, PublishAssetsOptions } from '../util/asset-publishing'; import { Mode } from './aws-auth/credentials'; import { ISDK } from './aws-auth/sdk'; import { SdkProvider } from './aws-auth/sdk-provider'; @@ -253,6 +253,13 @@ export interface DeployStackOptions { * @default true To remain backward compatible. */ readonly buildAssets?: boolean; + + /** + * Whether to build/publish assets in parallel + * + * @default true To remain backward compatible. + */ + readonly assetParallelism?: boolean; } export interface BuildStackAssetsOptions { @@ -274,6 +281,11 @@ export interface BuildStackAssetsOptions { * @default - Current role */ readonly roleArn?: string; + + /** + * Options to pass on to `buildAsests()` function + */ + readonly buildOptions?: BuildAssetsOptions; } interface PublishStackAssetsOptions { @@ -283,6 +295,11 @@ interface PublishStackAssetsOptions { * @default true To remain backward compatible. */ readonly buildAssets?: boolean; + + /** + * Options to pass on to `publishAsests()` function + */ + readonly publishOptions?: Omit; } export interface DestroyStackOptions { @@ -401,6 +418,9 @@ export class CloudFormationDeployments { if (options.resourcesToImport === undefined) { await this.publishStackAssets(options.stack, toolkitInfo, { buildAssets: options.buildAssets ?? true, + publishOptions: { + parallel: options.assetParallelism, + }, }); } @@ -434,6 +454,7 @@ export class CloudFormationDeployments { extraUserAgent: options.extraUserAgent, resourcesToImport: options.resourcesToImport, overrideTemplate: options.overrideTemplate, + assetParallelism: options.assetParallelism, }); } @@ -529,7 +550,7 @@ export class CloudFormationDeployments { toolkitInfo); const manifest = AssetManifest.fromFile(assetArtifact.file); - await buildAssets(manifest, this.sdkProvider, stackEnv); + await buildAssets(manifest, this.sdkProvider, stackEnv, options.buildOptions); } } @@ -549,6 +570,7 @@ export class CloudFormationDeployments { const manifest = AssetManifest.fromFile(assetArtifact.file); await publishAssets(manifest, this.sdkProvider, stackEnv, { + ...options.publishOptions, buildAssets: options.buildAssets ?? true, }); } diff --git a/packages/aws-cdk/lib/api/deploy-stack.ts b/packages/aws-cdk/lib/api/deploy-stack.ts index 23e16d14b989d..31dd7938b4cf2 100644 --- a/packages/aws-cdk/lib/api/deploy-stack.ts +++ b/packages/aws-cdk/lib/api/deploy-stack.ts @@ -198,6 +198,13 @@ export interface DeployStackOptions { * @default - Use the stored template */ readonly overrideTemplate?: any; + + /** + * Whether to build/publish assets in parallel + * + * @default true To remain backward compatible. + */ + readonly assetParallelism?: boolean; } export type DeploymentMethod = @@ -287,7 +294,9 @@ export async function deployStack(options: DeployStackOptions): Promise): Promise { + private async buildAllAssetsForSingleStack(stack: cxapi.CloudFormationStackArtifact, options: Pick): Promise { // Check whether the stack has an asset manifest before trying to build and publish. if (!stack.dependencies.some(cxapi.AssetManifestArtifact.isAssetManifestArtifact)) { return; @@ -775,6 +776,9 @@ export class CdkToolkit { stack, roleArn: options.roleArn, toolkitStackName: options.toolkitStackName, + buildOptions: { + parallel: options.assetParallelism, + }, }); print('\n%s: assets built\n', chalk.bold(stack.displayName)); } @@ -1029,6 +1033,15 @@ export interface DeployOptions extends CfnDeployOptions, WatchOptions { * @default 1 */ readonly concurrency?: number; + + /** + * Build/publish assets for a single stack in parallel + * + * Independent of whether stacks are being done in parallel or no. + * + * @default true + */ + readonly assetParallelism?: boolean; } export interface ImportOptions extends CfnDeployOptions { diff --git a/packages/aws-cdk/lib/cli.ts b/packages/aws-cdk/lib/cli.ts index 5716a29ed5e64..1f49d63430437 100644 --- a/packages/aws-cdk/lib/cli.ts +++ b/packages/aws-cdk/lib/cli.ts @@ -155,7 +155,8 @@ async function parseCommandLineArguments() { "'true' by default, use --no-logs to turn off. " + "Only in effect if specified alongside the '--watch' option", }) - .option('concurrency', { type: 'number', desc: 'Maximum number of simultaneous deployments (dependency permitting) to execute.', default: 1, requiresArg: true }), + .option('concurrency', { type: 'number', desc: 'Maximum number of simultaneous deployments (dependency permitting) to execute.', default: 1, requiresArg: true }) + .option('asset-parallelism', { type: 'boolean', desc: 'Whether to build/publish assets in parallel' }), ) .command('import [STACK]', 'Import existing resource(s) into the given STACK', (yargs: Argv) => yargs .option('execute', { type: 'boolean', desc: 'Whether to execute ChangeSet (--no-execute will NOT execute the ChangeSet)', default: true }) @@ -514,6 +515,7 @@ async function initCommandLine() { watch: args.watch, traceLogs: args.logs, concurrency: args.concurrency, + assetParallelism: args.assetParallelism, }); case 'import': diff --git a/packages/aws-cdk/lib/settings.ts b/packages/aws-cdk/lib/settings.ts index b94f563eb8365..b4e3a2f4ebf7d 100644 --- a/packages/aws-cdk/lib/settings.ts +++ b/packages/aws-cdk/lib/settings.ts @@ -289,6 +289,7 @@ export class Settings { lookups: argv.lookups, rollback: argv.rollback, notices: argv.notices, + assetParallelism: argv['asset-parallelism'], }); } diff --git a/packages/aws-cdk/lib/util/asset-publishing.ts b/packages/aws-cdk/lib/util/asset-publishing.ts index b4dbe49ceae0d..af53828106069 100644 --- a/packages/aws-cdk/lib/util/asset-publishing.ts +++ b/packages/aws-cdk/lib/util/asset-publishing.ts @@ -18,6 +18,13 @@ export interface PublishAssetsOptions { * @default true To remain backward compatible. */ readonly buildAssets?: boolean; + + /** + * Whether to build/publish assets in parallel + * + * @default true To remain backward compatible. + */ + readonly parallel?: boolean; } /** @@ -44,7 +51,7 @@ export async function publishAssets( aws: new PublishingAws(sdk, targetEnv), progressListener: new PublishingProgressListener(options.quiet ?? false), throwOnError: false, - publishInParallel: true, + publishInParallel: options.parallel ?? true, buildAssets: options.buildAssets ?? true, publishAssets: true, }); @@ -59,6 +66,13 @@ export interface BuildAssetsOptions { * Print progress at 'debug' level */ readonly quiet?: boolean; + + /** + * Build assets in parallel + * + * @default true + */ + readonly parallel?: boolean; } /** @@ -85,7 +99,7 @@ export async function buildAssets( aws: new PublishingAws(sdk, targetEnv), progressListener: new PublishingProgressListener(options.quiet ?? false), throwOnError: false, - publishInParallel: true, + publishInParallel: options.parallel ?? true, buildAssets: true, publishAssets: false, }); diff --git a/packages/aws-cdk/package.json b/packages/aws-cdk/package.json index f5719bcca40bd..3e0596a77dc15 100644 --- a/packages/aws-cdk/package.json +++ b/packages/aws-cdk/package.json @@ -96,7 +96,7 @@ "@aws-cdk/cloudformation-diff": "0.0.0", "@aws-cdk/cx-api": "0.0.0", "@aws-cdk/region-info": "0.0.0", - "@jsii/check-node": "1.69.0", + "@jsii/check-node": "1.70.0", "archiver": "^5.3.1", "aws-sdk": "^2.1211.0", "camelcase": "^6.3.0", @@ -106,7 +106,7 @@ "decamelize": "^5.0.1", "fs-extra": "^9.1.0", "glob": "^7.2.3", - "json-diff": "^0.9.0", + "json-diff": "^0.9.1", "minimatch": ">=3.1", "p-queue": "^6.6.2", "promptly": "^3.2.0", diff --git a/packages/aws-cdk/test/api/cloudformation-deployments.test.ts b/packages/aws-cdk/test/api/cloudformation-deployments.test.ts index 26fb0f8bc5d7b..c2ce217ca1941 100644 --- a/packages/aws-cdk/test/api/cloudformation-deployments.test.ts +++ b/packages/aws-cdk/test/api/cloudformation-deployments.test.ts @@ -904,7 +904,7 @@ test('building assets', async () => { name: 'aws://account/region', region: 'region', }); - expect(buildAssets).toBeCalledWith(expectedAssetManifest, sdkProvider, expectedEnvironment); + expect(buildAssets).toBeCalledWith(expectedAssetManifest, sdkProvider, expectedEnvironment, undefined); }); function pushStackResourceSummaries(stackName: string, ...items: CloudFormation.StackResourceSummary[]) { diff --git a/packages/aws-cdk/test/cdk-toolkit.test.ts b/packages/aws-cdk/test/cdk-toolkit.test.ts index b0359fbb6dbc7..205eb8b28910a 100644 --- a/packages/aws-cdk/test/cdk-toolkit.test.ts +++ b/packages/aws-cdk/test/cdk-toolkit.test.ts @@ -52,8 +52,11 @@ jest.mock('../lib/logging', () => ({ ...jest.requireActual('../lib/logging'), data: mockData, })); +jest.setTimeout(30_000); +import * as path from 'path'; import * as cxschema from '@aws-cdk/cloud-assembly-schema'; +import { Manifest } from '@aws-cdk/cloud-assembly-schema'; import * as cxapi from '@aws-cdk/cx-api'; import { Bootstrapper } from '../lib/api/bootstrap'; import { CloudFormationDeployments, DeployStackOptions, DestroyStackOptions } from '../lib/api/cloudformation-deployments'; @@ -62,7 +65,8 @@ import { Template } from '../lib/api/util/cloudformation'; import { CdkToolkit, Tag } from '../lib/cdk-toolkit'; import { RequireApproval } from '../lib/diff'; import { flatten } from '../lib/util'; -import { instanceMockFrom, MockCloudExecutable, TestStackArtifact } from './util'; +import { instanceMockFrom, MockCloudExecutable, TestStackArtifact, withMocked } from './util'; +import { MockSdkProvider } from './util/mock-sdk'; let cloudExecutable: MockCloudExecutable; let bootstrapper: jest.Mocked; @@ -555,6 +559,36 @@ describe('deploy', () => { expect(cloudExecutable.hasApp).toEqual(false); expect(mockSynthesize).not.toHaveBeenCalled(); }); + + test('can disable asset parallelism', async () => { + // GIVEN + cloudExecutable = new MockCloudExecutable({ + stacks: [MockStack.MOCK_STACK_WITH_ASSET], + }); + const fakeCloudFormation = new FakeCloudFormation({}); + + const toolkit = new CdkToolkit({ + cloudExecutable, + configuration: cloudExecutable.configuration, + sdkProvider: cloudExecutable.sdkProvider, + cloudFormation: fakeCloudFormation, + }); + + // WHEN + // Not the best test but following this through to the asset publishing library fails + await withMocked(fakeCloudFormation, 'buildStackAssets', async (mockBuildStackAssets) => { + await toolkit.deploy({ + selector: { patterns: ['Test-Stack-Asset'] }, + assetParallelism: false, + }); + + expect(mockBuildStackAssets).toHaveBeenCalledWith(expect.objectContaining({ + buildOptions: expect.objectContaining({ + parallel: false, + }), + })); + }); + }); }); }); @@ -911,6 +945,23 @@ class MockStack { }, displayName: 'Test-Stack-A/witherrors', } + public static readonly MOCK_STACK_WITH_ASSET: TestStackArtifact = { + stackName: 'Test-Stack-Asset', + template: { Resources: { TemplateName: 'Test-Stack-Asset' } }, + env: 'aws://123456789012/bermuda-triangle-1', + assetManifest: { + version: Manifest.version(), + files: { + xyz: { + source: { + path: path.resolve(__dirname, '..', 'LICENSE'), + }, + destinations: { + }, + }, + }, + }, + } } class FakeCloudFormation extends CloudFormationDeployments { @@ -921,7 +972,7 @@ class FakeCloudFormation extends CloudFormationDeployments { expectedTags: { [stackName: string]: { [key: string]: string } } = {}, expectedNotificationArns?: string[], ) { - super({ sdkProvider: undefined as any }); + super({ sdkProvider: new MockSdkProvider() }); for (const [stackName, tags] of Object.entries(expectedTags)) { this.expectedTags[stackName] = @@ -934,9 +985,17 @@ class FakeCloudFormation extends CloudFormationDeployments { } public deployStack(options: DeployStackOptions): Promise { - expect([MockStack.MOCK_STACK_A.stackName, MockStack.MOCK_STACK_B.stackName, MockStack.MOCK_STACK_C.stackName]) - .toContain(options.stack.stackName); - expect(options.tags).toEqual(this.expectedTags[options.stack.stackName]); + expect([ + MockStack.MOCK_STACK_A.stackName, + MockStack.MOCK_STACK_B.stackName, + MockStack.MOCK_STACK_C.stackName, + MockStack.MOCK_STACK_WITH_ASSET.stackName, + ]).toContain(options.stack.stackName); + + if (this.expectedTags[options.stack.stackName]) { + expect(options.tags).toEqual(this.expectedTags[options.stack.stackName]); + } + expect(options.notificationArns).toEqual(this.expectedNotificationArns); return Promise.resolve({ stackArn: `arn:aws:cloudformation:::stack/${options.stack.stackName}/MockedOut`, @@ -959,6 +1018,8 @@ class FakeCloudFormation extends CloudFormationDeployments { return Promise.resolve({}); case MockStack.MOCK_STACK_C.stackName: return Promise.resolve({}); + case MockStack.MOCK_STACK_WITH_ASSET.stackName: + return Promise.resolve({}); default: return Promise.reject(`Not an expected mock stack: ${stack.stackName}`); } diff --git a/packages/aws-cdk/test/util.ts b/packages/aws-cdk/test/util.ts index 82447948b83cb..751c1c1ad6bba 100644 --- a/packages/aws-cdk/test/util.ts +++ b/packages/aws-cdk/test/util.ts @@ -1,6 +1,7 @@ import * as fs from 'fs'; import * as path from 'path'; import * as cxschema from '@aws-cdk/cloud-assembly-schema'; +import { AssetManifest } from '@aws-cdk/cloud-assembly-schema'; import * as cxapi from '@aws-cdk/cx-api'; import { CloudExecutable } from '../lib/api/cxapp/cloud-executable'; import { Configuration } from '../lib/settings'; @@ -14,10 +15,15 @@ export interface TestStackArtifact { env?: string, depends?: string[]; metadata?: cxapi.StackMetadata; + + /** Old-style assets */ assets?: cxschema.AssetMetadataEntry[]; properties?: Partial; terminationProtection?: boolean; displayName?: string; + + /** New-style assets */ + assetManifest?: AssetManifest; } export interface TestAssembly { @@ -69,11 +75,26 @@ function addAttributes(assembly: TestAssembly, builder: cxapi.CloudAssemblyBuild builder.addMissing(missing); } + const dependencies = [...stack.depends ?? []]; + + if (stack.assetManifest) { + const manifestFile = `${stack.stackName}.assets.json`; + fs.writeFileSync(path.join(builder.outdir, manifestFile), JSON.stringify(stack.assetManifest, undefined, 2)); + dependencies.push(`${stack.stackName}.assets`); + builder.addArtifact(`${stack.stackName}.assets`, { + type: cxschema.ArtifactType.ASSET_MANIFEST, + environment: stack.env || 'aws://123456789012/here', + properties: { + file: manifestFile, + }, + }); + } + builder.addArtifact(stack.stackName, { type: cxschema.ArtifactType.AWS_CLOUDFORMATION_STACK, environment: stack.env || 'aws://123456789012/here', - dependencies: stack.depends, + dependencies, metadata, properties: { ...stack.properties, @@ -82,6 +103,7 @@ function addAttributes(assembly: TestAssembly, builder: cxapi.CloudAssemblyBuild }, displayName: stack.displayName, }); + } } diff --git a/packages/awslint/package.json b/packages/awslint/package.json index ec3d9a85cbdad..4baf80c0e8b90 100644 --- a/packages/awslint/package.json +++ b/packages/awslint/package.json @@ -18,11 +18,11 @@ "awslint": "bin/awslint" }, "dependencies": { - "@jsii/spec": "^1.69.0", + "@jsii/spec": "^1.70.0", "camelcase": "^6.3.0", "chalk": "^4", "fs-extra": "^9.1.0", - "jsii-reflect": "^1.69.0", + "jsii-reflect": "^1.70.0", "yargs": "^16.2.0" }, "devDependencies": { diff --git a/packages/cdk-dasm/package.json b/packages/cdk-dasm/package.json index 96e8aebfa6acf..96a8f8f458f48 100644 --- a/packages/cdk-dasm/package.json +++ b/packages/cdk-dasm/package.json @@ -30,7 +30,7 @@ }, "license": "Apache-2.0", "dependencies": { - "codemaker": "^1.69.0", + "codemaker": "^1.70.0", "yaml": "1.10.2" }, "devDependencies": { diff --git a/tools/@aws-cdk/cdk-build-tools/package.json b/tools/@aws-cdk/cdk-build-tools/package.json index 70194b85663c0..35eccc0ba4a4d 100644 --- a/tools/@aws-cdk/cdk-build-tools/package.json +++ b/tools/@aws-cdk/cdk-build-tools/package.json @@ -57,9 +57,9 @@ "fs-extra": "^9.1.0", "jest": "^27.5.1", "jest-junit": "^13.2.0", - "jsii": "^1.69.0", - "jsii-pacmak": "^1.69.0", - "jsii-reflect": "^1.69.0", + "jsii": "^1.70.0", + "jsii-pacmak": "^1.70.0", + "jsii-reflect": "^1.70.0", "markdownlint-cli": "^0.32.2", "nyc": "^15.1.0", "semver": "^7.3.8", diff --git a/tools/@aws-cdk/cfn2ts/package.json b/tools/@aws-cdk/cfn2ts/package.json index d5829ac90f67d..cf0946ee1b88e 100644 --- a/tools/@aws-cdk/cfn2ts/package.json +++ b/tools/@aws-cdk/cfn2ts/package.json @@ -32,7 +32,7 @@ "license": "Apache-2.0", "dependencies": { "@aws-cdk/cfnspec": "0.0.0", - "codemaker": "^1.69.0", + "codemaker": "^1.70.0", "fast-json-patch": "^3.1.1", "fs-extra": "^9.1.0", "yargs": "^16.2.0" diff --git a/tools/@aws-cdk/node-bundle/package.json b/tools/@aws-cdk/node-bundle/package.json index 609e64650eb6d..b4785f7c6fd18 100644 --- a/tools/@aws-cdk/node-bundle/package.json +++ b/tools/@aws-cdk/node-bundle/package.json @@ -40,13 +40,13 @@ "jest-junit": "^13", "json-schema": "^0.4.0", "npm-check-updates": "^12", - "projen": "^0.63.28", + "projen": "^0.65.1", "standard-version": "^9", "ts-jest": "^27", "typescript": "^4.5.5" }, "dependencies": { - "esbuild": "^0.15.11", + "esbuild": "^0.15.12", "fs-extra": "^10.1.0", "license-checker": "^25.0.1", "madge": "^5.0.1", diff --git a/yarn.lock b/yarn.lock index 01e6286b4ca4c..1e0983eb0cb15 100644 --- a/yarn.lock +++ b/yarn.lock @@ -35,6 +35,11 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" +"@aws-cdk/lambda-layer-kubectl-v22@2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@aws-cdk/lambda-layer-kubectl-v22/-/lambda-layer-kubectl-v22-2.0.0.tgz#18daadbb856a42377c04ea81b029debc1523ad3a" + integrity sha512-GdpZbfry6jJ+NGOxYNrmTm0TNU3xjhjROgIiy9fdFZzb6PaKBglLftBAJbyNldPbvWfl2G+PJWe2jBURUkeacw== + "@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" @@ -55,30 +60,30 @@ integrity sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw== "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0": - version "7.19.3" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" - integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== + version "7.19.6" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz#7122ae4f5c5a37c0946c066149abd8e75f81540f" + integrity sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.3" + "@babel/generator" "^7.19.6" "@babel/helper-compilation-targets" "^7.19.3" - "@babel/helper-module-transforms" "^7.19.0" - "@babel/helpers" "^7.19.0" - "@babel/parser" "^7.19.3" + "@babel/helper-module-transforms" "^7.19.6" + "@babel/helpers" "^7.19.4" + "@babel/parser" "^7.19.6" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.3" - "@babel/types" "^7.19.3" + "@babel/traverse" "^7.19.6" + "@babel/types" "^7.19.4" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.19.3", "@babel/generator@^7.19.4", "@babel/generator@^7.7.2": - version "7.19.5" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz#da3f4b301c8086717eee9cab14da91b1fa5dcca7" - integrity sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg== +"@babel/generator@^7.19.6", "@babel/generator@^7.7.2": + version "7.19.6" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz#9e481a3fe9ca6261c972645ae3904ec0f9b34a1d" + integrity sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA== dependencies: "@babel/types" "^7.19.4" "@jridgewell/gen-mapping" "^0.3.2" @@ -121,26 +126,26 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.19.0": - version "7.19.0" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" - integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== +"@babel/helper-module-transforms@^7.19.6": + version "7.19.6" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz#6c52cc3ac63b70952d33ee987cbee1c9368b533f" + integrity sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-simple-access" "^7.19.4" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" + "@babel/traverse" "^7.19.6" + "@babel/types" "^7.19.4" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.8.0": version "7.19.0" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== -"@babel/helper-simple-access@^7.18.6": +"@babel/helper-simple-access@^7.19.4": version "7.19.4" resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz#be553f4951ac6352df2567f7daa19a0ee15668e7" integrity sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg== @@ -169,7 +174,7 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helpers@^7.19.0": +"@babel/helpers@^7.19.4": version "7.19.4" resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz#42154945f87b8148df7203a25c31ba9a73be46c5" integrity sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw== @@ -187,10 +192,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3", "@babel/parser@^7.19.4": - version "7.19.4" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz#03c4339d2b8971eb3beca5252bafd9b9f79db3dc" - integrity sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.6": + version "7.19.6" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz#b923430cb94f58a7eae8facbffa9efd19130e7f8" + integrity sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -292,23 +297,23 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.3", "@babel/traverse@^7.19.4", "@babel/traverse@^7.7.2": - version "7.19.4" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz#f117820e18b1e59448a6c1fa9d0ff08f7ac459a8" - integrity sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g== +"@babel/traverse@^7.19.4", "@babel/traverse@^7.19.6", "@babel/traverse@^7.7.2": + version "7.19.6" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz#7b4c865611df6d99cb131eec2e8ac71656a490dc" + integrity sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.4" + "@babel/generator" "^7.19.6" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.19.4" + "@babel/parser" "^7.19.6" "@babel/types" "^7.19.4" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.19.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3": +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.19.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3": version "7.19.4" resolved "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== @@ -334,15 +339,15 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@esbuild/android-arm@0.15.11": - version "0.15.11" - resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.11.tgz#bdd9c3e098183bdca97075aa4c3e0152ed3e10ee" - integrity sha512-PzMcQLazLBkwDEkrNPi9AbjFt6+3I7HKbiYF2XtWQ7wItrHvEOeO3T8Am434zAozWtVP7lrTue1bEfc2nYWeCA== +"@esbuild/android-arm@0.15.12": + version "0.15.12" + resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.12.tgz#e548b10a5e55b9e10537a049ebf0bc72c453b769" + integrity sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA== -"@esbuild/linux-loong64@0.15.11": - version "0.15.11" - resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.11.tgz#2f4f9a1083dcb4fc65233b6f59003c406abf32e5" - integrity sha512-geWp637tUhNmhL3Xgy4Bj703yXB9dqiLJe05lCUfjSFDrQf9C/8pArusyPUbUbPwlC/EAUjBw32sxuIl/11dZw== +"@esbuild/linux-loong64@0.15.12": + version "0.15.12" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.12.tgz#475b33a2631a3d8ca8aa95ee127f9a61d95bf9c1" + integrity sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw== "@eslint/eslintrc@^0.4.3": version "0.4.3" @@ -379,10 +384,10 @@ resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@humanwhocodes/config-array@^0.10.5": - version "0.10.7" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz#6d53769fd0c222767e6452e8ebda825c22e9f0dc" - integrity sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w== +"@humanwhocodes/config-array@^0.11.6": + version "0.11.6" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz#6a51d603a3aaf8d4cf45b42b3f2ac9318a4adc4b" + integrity sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -661,18 +666,18 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@jsii/check-node@1.69.0": - version "1.69.0" - resolved "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.69.0.tgz#74f4db123f5dd1d4dd3d30cfa54a0a75d8b94d9d" - integrity sha512-a+g42wsMM1SB91f+/ZGqtEccaCfJkpfbKYczzLM8tN7P00TGHraTFBqd/G6jndRw4mrR+T+3GaAKlzmNLqYIUg== +"@jsii/check-node@1.70.0": + version "1.70.0" + resolved "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.70.0.tgz#b482e949fdd6dc0191934bb1b76ad80989cafeba" + integrity sha512-lebc8VgekEEStNn1K/khkRzs41sjC88tBE0xEkjDpsFNBMXNuek8I9dkaFbjQ9c+P0TsOa17JJUMLxjgCtjW5A== dependencies: chalk "^4.1.2" - semver "^7.3.7" + semver "^7.3.8" -"@jsii/spec@1.69.0", "@jsii/spec@^1.69.0": - version "1.69.0" - resolved "https://registry.npmjs.org/@jsii/spec/-/spec-1.69.0.tgz#aff2db2d930b04fb832a04ecb8f166b1cf21982f" - integrity sha512-Dj41jQc6GgbXHyc/IzhmKdrMJSuF7hetRmCkwMvj0/T2WWNAUK/UNNw40QnksfIhB8yooDAoMqGVU/71fbDyaA== +"@jsii/spec@1.70.0", "@jsii/spec@^1.70.0": + version "1.70.0" + resolved "https://registry.npmjs.org/@jsii/spec/-/spec-1.70.0.tgz#9c9392397fa1d1a6fccd004bef3e8c0e92b45c15" + integrity sha512-2l09VaZvT8OLRMwtVm+JxzrzpO6+eR4Scn9B8+zvE9NptX5jN+X68V0VngDuWTJqHs7ntbYCmHQDWuLm0bPr1A== dependencies: ajv "^8.11.0" @@ -1360,7 +1365,7 @@ resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -1922,9 +1927,9 @@ integrity sha512-uv53RrNdhbkV/3VmVCtfImfYCWC3GTTRn3R11Whni3EJ+gb178tkZBVNj2edLY5CMrB749dQi+SJkg87jsN8UQ== "@types/node@*": - version "18.11.2" - resolved "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz#c59b7641832531264fda3f1ba610362dc9a7dfc8" - integrity sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw== + version "18.11.6" + resolved "https://registry.npmjs.org/@types/node/-/node-18.11.6.tgz#4f91b0b30d405fdf76e0029b11ef5df6a0da4261" + integrity sha512-j3CEDa2vd96K0AXF8Wur7UucACvnjkk8hYyQAHhUNciabZLDl9nfAEVUSwmh245OOZV15bRA3Y590Gi5jUcDJg== "@types/node@^14.18.32": version "14.18.32" @@ -1932,9 +1937,9 @@ integrity sha512-Y6S38pFr04yb13qqHf8uk1nHE3lXgQ30WZbv1mLliV9pt0NjvqdWttLcrOYLnXbOafknVYRHZGoMSpR9UwfYow== "@types/node@^16.9.2": - version "16.11.68" - resolved "https://registry.npmjs.org/@types/node/-/node-16.11.68.tgz#30ee923f4d940793e0380f5ce61c0bd4b7196b6c" - integrity sha512-JkRpuVz3xCNCWaeQ5EHLR/6woMbHZz/jZ7Kmc63AkU+1HxnoUugzSWMck7dsR4DvNYX8jp9wTi9K7WvnxOIQZQ== + version "16.18.1" + resolved "https://registry.npmjs.org/@types/node/-/node-16.18.1.tgz#fd860a5efc505a5417d25a99cbff78077447a391" + integrity sha512-Z659t5cj2Tt2SaqbJxXRo5EaU86E4l2CxtklCY1VftxYXhR81Z75UsugwdI7l5MUAR1I+l8sdt3B5Y++ZV76WQ== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -2079,13 +2084,13 @@ tsutils "^3.21.0" "@typescript-eslint/eslint-plugin@^5": - version "5.40.1" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.40.1.tgz#3203a6ff396b1194083faaa6e5110c401201d7d5" - integrity sha512-FsWboKkWdytGiXT5O1/R9j37YgcjO8MKHSUmWnIEjVaz0krHkplPnYi7mwdb+5+cs0toFNQb0HIrN7zONdIEWg== + version "5.41.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.41.0.tgz#f8eeb1c6bb2549f795f3ba71aec3b38d1ab6b1e1" + integrity sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA== dependencies: - "@typescript-eslint/scope-manager" "5.40.1" - "@typescript-eslint/type-utils" "5.40.1" - "@typescript-eslint/utils" "5.40.1" + "@typescript-eslint/scope-manager" "5.41.0" + "@typescript-eslint/type-utils" "5.41.0" + "@typescript-eslint/utils" "5.41.0" debug "^4.3.4" ignore "^5.2.0" regexpp "^3.2.0" @@ -2115,13 +2120,13 @@ debug "^4.3.1" "@typescript-eslint/parser@^5": - version "5.40.1" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.40.1.tgz#e7f8295dd8154d0d37d661ddd8e2f0ecfdee28dd" - integrity sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg== + version "5.41.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.41.0.tgz#0414a6405007e463dc527b459af1f19430382d67" + integrity sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA== dependencies: - "@typescript-eslint/scope-manager" "5.40.1" - "@typescript-eslint/types" "5.40.1" - "@typescript-eslint/typescript-estree" "5.40.1" + "@typescript-eslint/scope-manager" "5.41.0" + "@typescript-eslint/types" "5.41.0" + "@typescript-eslint/typescript-estree" "5.41.0" debug "^4.3.4" "@typescript-eslint/scope-manager@4.33.0": @@ -2132,21 +2137,21 @@ "@typescript-eslint/types" "4.33.0" "@typescript-eslint/visitor-keys" "4.33.0" -"@typescript-eslint/scope-manager@5.40.1": - version "5.40.1" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.40.1.tgz#a7a5197dfd234622a2421ea590ee0ccc02e18dfe" - integrity sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg== +"@typescript-eslint/scope-manager@5.41.0": + version "5.41.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.41.0.tgz#28e3a41d626288d0628be14cf9de8d49fc30fadf" + integrity sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ== dependencies: - "@typescript-eslint/types" "5.40.1" - "@typescript-eslint/visitor-keys" "5.40.1" + "@typescript-eslint/types" "5.41.0" + "@typescript-eslint/visitor-keys" "5.41.0" -"@typescript-eslint/type-utils@5.40.1": - version "5.40.1" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.40.1.tgz#091e4ce3bebbdb68f4980bae9dee2e4e1725f601" - integrity sha512-DLAs+AHQOe6n5LRraXiv27IYPhleF0ldEmx6yBqBgBLaNRKTkffhV1RPsjoJBhVup2zHxfaRtan8/YRBgYhU9Q== +"@typescript-eslint/type-utils@5.41.0": + version "5.41.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.41.0.tgz#2371601171e9f26a4e6da918a7913f7266890cdf" + integrity sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA== dependencies: - "@typescript-eslint/typescript-estree" "5.40.1" - "@typescript-eslint/utils" "5.40.1" + "@typescript-eslint/typescript-estree" "5.41.0" + "@typescript-eslint/utils" "5.41.0" debug "^4.3.4" tsutils "^3.21.0" @@ -2155,10 +2160,10 @@ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== -"@typescript-eslint/types@5.40.1": - version "5.40.1" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.40.1.tgz#de37f4f64de731ee454bb2085d71030aa832f749" - integrity sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw== +"@typescript-eslint/types@5.41.0": + version "5.41.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.41.0.tgz#6800abebc4e6abaf24cdf220fb4ce28f4ab09a85" + integrity sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA== "@typescript-eslint/typescript-estree@4.33.0", "@typescript-eslint/typescript-estree@^4.33.0": version "4.33.0" @@ -2173,29 +2178,29 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.40.1": - version "5.40.1" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.1.tgz#9a7d25492f02c69882ce5e0cd1857b0c55645d72" - integrity sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA== +"@typescript-eslint/typescript-estree@5.41.0": + version "5.41.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.41.0.tgz#bf5c6b3138adbdc73ba4871d060ae12c59366c61" + integrity sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg== dependencies: - "@typescript-eslint/types" "5.40.1" - "@typescript-eslint/visitor-keys" "5.40.1" + "@typescript-eslint/types" "5.41.0" + "@typescript-eslint/visitor-keys" "5.41.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.40.1": - version "5.40.1" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.40.1.tgz#3204fb73a559d3b7bab7dc9d3c44487c2734a9ca" - integrity sha512-a2TAVScoX9fjryNrW6BZRnreDUszxqm9eQ9Esv8n5nXApMW0zeANUYlwh/DED04SC/ifuBvXgZpIK5xeJHQ3aw== +"@typescript-eslint/utils@5.41.0": + version "5.41.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.41.0.tgz#f41ae5883994a249d00b2ce69f4188f3a23fa0f9" + integrity sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.40.1" - "@typescript-eslint/types" "5.40.1" - "@typescript-eslint/typescript-estree" "5.40.1" + "@typescript-eslint/scope-manager" "5.41.0" + "@typescript-eslint/types" "5.41.0" + "@typescript-eslint/typescript-estree" "5.41.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" @@ -2208,15 +2213,15 @@ "@typescript-eslint/types" "4.33.0" eslint-visitor-keys "^2.0.0" -"@typescript-eslint/visitor-keys@5.40.1": - version "5.40.1" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.1.tgz#f3d2bf5af192f4432b84cec6fdcb387193518754" - integrity sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw== +"@typescript-eslint/visitor-keys@5.41.0": + version "5.41.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.41.0.tgz#d3510712bc07d5540160ed3c0f8f213b73e3bcd9" + integrity sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw== dependencies: - "@typescript-eslint/types" "5.40.1" + "@typescript-eslint/types" "5.41.0" eslint-visitor-keys "^3.3.0" -"@xmldom/xmldom@^0.8.2": +"@xmldom/xmldom@^0.8.3": version "0.8.3" resolved "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.3.tgz#beaf980612532aa9a3004aff7e428943aeaa0711" integrity sha512-Lv2vySXypg4nfa51LY1nU8yDAGo/5YwF+EY/rUZgIbfvwVARcd67ttCM8SMsTeJy51YhHYavEq+FS6R0hW9PFQ== @@ -2273,9 +2278,9 @@ acorn@^7.1.1, acorn@^7.4.0: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.0, acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + version "8.8.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== add-stream@^1.0.0: version "1.0.0" @@ -2597,6 +2602,21 @@ available-typed-arrays@^1.0.5: resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +aws-cdk-lib@^2.47.0: + version "2.47.0" + resolved "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.47.0.tgz#0f4f6adf2439caffd26686393a6e58ced3995833" + integrity sha512-XnxA7FMhJljsj6OtMMDbUi5lPPYcrehAxqpui5b2Nv2cBWhiG7Wb5baOuQy7niyPhZEX03A4k0vYFas/nnB91g== + dependencies: + "@balena/dockerignore" "^1.0.2" + case "1.6.3" + fs-extra "^9.1.0" + ignore "^5.2.0" + jsonschema "^1.4.1" + minimatch "^3.1.2" + punycode "^2.1.1" + semver "^7.3.8" + yaml "1.10.2" + aws-sdk-mock@5.6.0: version "5.6.0" resolved "https://registry.npmjs.org/aws-sdk-mock/-/aws-sdk-mock-5.6.0.tgz#8cd44e2e8d65f7f38dea8d1ad073fa38f9c719d8" @@ -2607,9 +2627,9 @@ aws-sdk-mock@5.6.0: traverse "^0.6.6" aws-sdk@^2.1211.0, aws-sdk@^2.596.0, aws-sdk@^2.928.0: - version "2.1235.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1235.0.tgz#60495275360956120ef39b25804c0e54da95414f" - integrity sha512-EV2C/GaQh1LBNnNqXfpGdyHR4/8ppQ1BnUfK9voNWMPuFHr1nJ8meIqfo+zwQE8rvGenqcZQBO0lrvauBeNBqw== + version "2.1240.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1240.0.tgz#9692bdf44b96e8769fad84ee126cd692eda08806" + integrity sha512-WmZHnvka7SFKOwnGV0tDwjBPz5j9jJ7KU4BfvOZ/1y+hwcXsUY2JjKj9T7KKMjjG/L3m2H5b9JpS+r/gtcjnog== dependencies: buffer "4.9.2" events "1.1.1" @@ -2965,9 +2985,9 @@ camelcase@^6.2.0, camelcase@^6.3.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001400: - version "1.0.30001422" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz#f2d7c6202c49a8359e6e35add894d88ef93edba1" - integrity sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog== + version "1.0.30001425" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001425.tgz#52917791a453eb3265143d2cd08d80629e82c735" + integrity sha512-/pzFv0OmNG6W0ym80P3NtapU0QEiDS3VuYAZMGoLLqiC7f6FJFe1MjpQDREGApeenD9wloeytmVDj+JLXPC6qw== case@1.6.3, case@^1.6.3: version "1.6.3" @@ -2979,16 +2999,16 @@ caseless@~0.12.0: resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -cdk-generate-synthetic-examples@^0.1.36: - version "0.1.36" - resolved "https://registry.npmjs.org/cdk-generate-synthetic-examples/-/cdk-generate-synthetic-examples-0.1.36.tgz#2e2e28e323510be0fbfee320538694050f5c3e96" - integrity sha512-LlHJK3F1pydiKArClsbIYUK/dhndbIE1Re1fM5L9yRMq+hWEaRqotE63Pys7+FuMhvPhUWBjer7JdFCZg36zPA== +cdk-generate-synthetic-examples@^0.1.43: + version "0.1.43" + resolved "https://registry.npmjs.org/cdk-generate-synthetic-examples/-/cdk-generate-synthetic-examples-0.1.43.tgz#e9319d34aae0a11d4a22eff6102a4362ddc1fd74" + integrity sha512-JOBke/NPPgzPAoGeQf3kUfeKuQheyadBdX2PM0XXfWWaSE+Pkw5L9VZPaPfeznzZlzIyp9wlyVKGAn2VqGO1iQ== dependencies: - "@jsii/spec" "^1.69.0" + "@jsii/spec" "^1.70.0" fs-extra "^10.1.0" - jsii "^1.69.0" - jsii-reflect "^1.69.0" - jsii-rosetta "^1.69.0" + jsii "^1.70.0" + jsii-reflect "^1.70.0" + jsii-rosetta "^1.70.0" yargs "^17.6.0" cdk8s-plus-21@^2.0.0-beta.12: @@ -2999,10 +3019,10 @@ cdk8s-plus-21@^2.0.0-beta.12: minimatch "^3.1.2" safe-stable-stringify "*" -cdk8s@^2.5.21: - version "2.5.21" - resolved "https://registry.npmjs.org/cdk8s/-/cdk8s-2.5.21.tgz#791a1d5a5d0db1bd037d87f141d0d85af1465968" - integrity sha512-vlRlQbsdGKDbV3xeYa29ow6uRC0PFJCRcU1pQ+n8LsQ7LuqnsRc5JZdCqaeicP8tRl1OaI4QcnYHJxmc/Hhivw== +cdk8s@^2.5.28: + version "2.5.28" + resolved "https://registry.npmjs.org/cdk8s/-/cdk8s-2.5.28.tgz#0f041e2d9cc16d7653ce5cb3d2018ad6376751ee" + integrity sha512-jJvg5SwBXhokjEhqkhhmn/g6IfDo1ynoX9ztMuPJI9BvaKIdsvym+jkIrPNdrrtL7IV2pEmn+3MaZqoQrxqzIw== dependencies: fast-json-patch "^3.1.1" follow-redirects "^1.15.2" @@ -3203,10 +3223,10 @@ co@^4.6.0: resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== -codemaker@^1.69.0: - version "1.69.0" - resolved "https://registry.npmjs.org/codemaker/-/codemaker-1.69.0.tgz#e8432ee60bf84ac59630be8390a18a422eb8707c" - integrity sha512-FbJeIr6isHvABZ56wdujvRLQOJOmS6MoptN4ylLKDNr/dp/+tzpa9kY2R2Y7eWxMW5sTYFBNsVJDpErMcMwhig== +codemaker@^1.70.0: + version "1.70.0" + resolved "https://registry.npmjs.org/codemaker/-/codemaker-1.70.0.tgz#37fe0745556a65a45789a6ce3b6cf6ee77b989ce" + integrity sha512-ZiS349YLSwzoe9ZVfupMBd794x3IO4Au6JsyYCchFjbBCzU10TllLigFWSQuVKXBpaBk3I6QhaDuK+JsosDKsg== dependencies: camelcase "^6.3.0" decamelize "^5.0.1" @@ -3355,9 +3375,9 @@ console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control- integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== constructs@^10.0.0: - version "10.1.133" - resolved "https://registry.npmjs.org/constructs/-/constructs-10.1.133.tgz#5fb04fa6283bec999fdc27673df442f2a03c5d78" - integrity sha512-KZmT2ebsPXZnZnMhqfCd70ufdG7I2JSG2knsar4HdOZYzFnbUQ9oGueM3UL/jAkzQadVR0bArOET5KyixmFbIg== + version "10.1.140" + resolved "https://registry.npmjs.org/constructs/-/constructs-10.1.140.tgz#d198528dd449ee50e5a413f85874f268e9451c73" + integrity sha512-EPF2H7YKWYfMPYvZZaLKX7uxNvUx+yUXqLhALew3pf+jR4+kKnc9xhto8IjfEekAMyY5M+RfKgeoXXAwr+srHw== conventional-changelog-angular@^5.0.12: version "5.0.13" @@ -4235,133 +4255,133 @@ es6-weak-map@^2.0.3: es6-iterator "^2.0.3" es6-symbol "^3.1.1" -esbuild-android-64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.11.tgz#50402129c3e85bb06434e212374c5f693e4c5f01" - integrity sha512-rrwoXEiuI1kaw4k475NJpexs8GfJqQUKcD08VR8sKHmuW9RUuTR2VxcupVvHdiGh9ihxL9m3lpqB1kju92Ialw== - -esbuild-android-arm64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.11.tgz#49bee35218ea2ccf1a0c5f187af77c1c0a5dee71" - integrity sha512-/hDubOg7BHOhUUsT8KUIU7GfZm5bihqssvqK5PfO4apag7YuObZRZSzViyEKcFn2tPeHx7RKbSBXvAopSHDZJQ== - -esbuild-darwin-64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.11.tgz#89a90c8cf6f0029ac4169bfedd012a0412c1575f" - integrity sha512-1DqHD0ms3AhiwkKnjRUzmiW7JnaJJr5FKrPiR7xuyMwnjDqvNWDdMq4rKSD9OC0piFNK6n0LghsglNMe2MwJtA== - -esbuild-darwin-arm64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.11.tgz#556f4385c6de806cc81132dd7b8af00fe9d292df" - integrity sha512-OMzhxSbS0lwwrW40HHjRCeVIJTURdXFA8c3GU30MlHKuPCcvWNUIKVucVBtNpJySXmbkQMDJdJNrXzNDyvoqvQ== - -esbuild-freebsd-64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.11.tgz#fd86fd1b3b65366048f35b996d9cdf3547384eee" - integrity sha512-8dKP26r0/Qyez8nTCwpq60QbuYKOeBygdgOAWGCRalunyeqWRoSZj9TQjPDnTTI9joxd3QYw3UhVZTKxO9QdRg== - -esbuild-freebsd-arm64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.11.tgz#d346bcacfe9779ebc1a11edac1bdedeff6dda3b1" - integrity sha512-aSGiODiukLGGnSg/O9+cGO2QxEacrdCtCawehkWYTt5VX1ni2b9KoxpHCT9h9Y6wGqNHmXFnB47RRJ8BIqZgmQ== - -esbuild-linux-32@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.11.tgz#64b50e774bf75af7dcc6a73ad509f2eb0ac4487b" - integrity sha512-lsrAfdyJBGx+6aHIQmgqUonEzKYeBnyfJPkT6N2dOf1RoXYYV1BkWB6G02tjsrz1d5wZzaTc3cF+TKmuTo/ZwA== - -esbuild-linux-64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.11.tgz#fba3a78b95769772863f8f6dc316abca55cf8416" - integrity sha512-Y2Rh+PcyVhQqXKBTacPCltINN3uIw2xC+dsvLANJ1SpK5NJUtxv8+rqWpjmBgaNWKQT1/uGpMmA9olALy9PLVA== - -esbuild-linux-arm64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.11.tgz#c0cb31980eee066bfd39a4593660a0ecebe926cb" - integrity sha512-uhcXiTwTmD4OpxJu3xC5TzAAw6Wzf9O1XGWL448EE9bqGjgV1j+oK3lIHAfsHnuIn8K4nDW8yjX0Sv5S++oRuw== - -esbuild-linux-arm@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.11.tgz#7824d20099977aa671016c7de7a5038c9870010f" - integrity sha512-TJllTVk5aSyqPFvvcHTvf6Wu1ZKhWpJ/qNmZO8LL/XeB+LXCclm7HQHNEIz6MT7IX8PmlC1BZYrOiw2sXSB95A== - -esbuild-linux-mips64le@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.11.tgz#10627331c90164e553429ed25e025184bba485b6" - integrity sha512-WD61y/R1M4BLe4gxXRypoQ0Ci+Vjf714QYzcPNkiYv5I8K8WDz2ZR8Bm6cqKxd6rD+e/rZgPDbhQ9PCf7TMHmA== - -esbuild-linux-ppc64le@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.11.tgz#be42679a36a5246b893fc8b898135ebacb5a0a14" - integrity sha512-JVleZS9oPVLTlBhPTWgOwxFWU/wMUdlBwTbGA4GF8c38sLbS13cupj+C8bLq929jU7EMWry4SaL+tKGIaTlqKg== - -esbuild-linux-riscv64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.11.tgz#3ac2f328e3db73cbff833ada94314d8e79503e54" - integrity sha512-9aLIalZ2HFHIOZpmVU11sEAS9F8TnHw49daEjcgMpBXHFF57VuT9f9/9LKJhw781Gda0P9jDkuCWJ0tFbErvJw== - -esbuild-linux-s390x@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.11.tgz#e774e0df061b6847d86783bf3c8c4300a72e03ad" - integrity sha512-sZHtiXXOKsLI3XGBGoYO4qKBzJlb8xNsWmvFiwFMHFzA4AXgDP1KDp7Dawe9C2pavTRBDvl+Ok4n/DHQ59oaTg== - -esbuild-netbsd-64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.11.tgz#55e265fa4489e3f396b16c81f6f5a11d6ca2a9a4" - integrity sha512-hUC9yN06K9sg7ju4Vgu9ChAPdsEgtcrcLfyNT5IKwKyfpLvKUwCMZSdF+gRD3WpyZelgTQfJ+pDx5XFbXTlB0A== - -esbuild-openbsd-64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.11.tgz#bc04103ccfd8c2f2241e1add0b51a095955b73c4" - integrity sha512-0bBo9SQR4t66Wd91LGMAqmWorzO0TTzVjYiifwoFtel8luFeXuPThQnEm5ztN4g0fnvcp7AnUPPzS/Depf17wQ== - -esbuild-sunos-64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.11.tgz#ccd580305d31fde07b5c386da79c942aaf069013" - integrity sha512-EuBdTGlsMTjEl1sQnBX2jfygy7iR6CKfvOzi+gEOfhDqbHXsmY1dcpbVtcwHAg9/2yUZSfMJHMAgf1z8M4yyyw== - -esbuild-windows-32@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.11.tgz#40fe1d48f9b20a76f6db5109aaaf1511aed58c71" - integrity sha512-O0/Wo1Wk6dc0rZSxkvGpmTNIycEznHmkObTFz2VHBhjPsO4ZpCgfGxNkCpz4AdAIeMczpTXt/8d5vdJNKEGC+Q== - -esbuild-windows-64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.11.tgz#80c58b1ef2ff030c78e3a06e7a922776cc4cb687" - integrity sha512-x977Q4HhNjnHx00b4XLAnTtj5vfbdEvkxaQwC1Zh5AN8g5EX+izgZ6e5QgqJgpzyRNJqh4hkgIJF1pyy1be0mQ== - -esbuild-windows-arm64@0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.11.tgz#018624023b5c3f0cca334cc99f5ef7134d396333" - integrity sha512-VwUHFACuBahrvntdcMKZteUZ9HaYrBRODoKe4tIWxguQRvvYoYb7iu5LrcRS/FQx8KPZNaa72zuqwVtHeXsITw== - -esbuild@^0.15.11: - version "0.15.11" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.15.11.tgz#524d48612a9aa7edc1753c83459cb6fcae0cb66e" - integrity sha512-OgHGuhlfZ//mToxjte1D5iiiQgWfJ2GByVMwEC/IuoXsBGkuyK1+KrjYu0laSpnN/L1UmLUCv0s25vObdc1bVg== +esbuild-android-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.12.tgz#5e8151d5f0a748c71a7fbea8cee844ccf008e6fc" + integrity sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q== + +esbuild-android-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.12.tgz#5ee72a6baa444bc96ffcb472a3ba4aba2cc80666" + integrity sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA== + +esbuild-darwin-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.12.tgz#70047007e093fa1b3ba7ef86f9b3fa63db51fe25" + integrity sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q== + +esbuild-darwin-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.12.tgz#41c951f23d9a70539bcca552bae6e5196696ae04" + integrity sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw== + +esbuild-freebsd-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.12.tgz#a761b5afd12bbedb7d56c612e9cfa4d2711f33f0" + integrity sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw== + +esbuild-freebsd-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.12.tgz#6b0839d4d58deabc6cbd96276eb8cbf94f7f335e" + integrity sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g== + +esbuild-linux-32@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.12.tgz#bd50bfe22514d434d97d5150977496e2631345b4" + integrity sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA== + +esbuild-linux-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.12.tgz#074bb2b194bf658245f8490f29c01ffcdfa8c931" + integrity sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA== + +esbuild-linux-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.12.tgz#3bf789c4396dc032875a122988efd6f3733f28f5" + integrity sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ== + +esbuild-linux-arm@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.12.tgz#b91b5a8d470053f6c2c9c8a5e67ec10a71fe4a67" + integrity sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A== + +esbuild-linux-mips64le@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.12.tgz#2fb54099ada3c950a7536dfcba46172c61e580e2" + integrity sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A== + +esbuild-linux-ppc64le@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.12.tgz#9e3b8c09825fb27886249dfb3142a750df29a1b7" + integrity sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg== + +esbuild-linux-riscv64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.12.tgz#923d0f5b6e12ee0d1fe116b08e4ae4478fe40693" + integrity sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA== + +esbuild-linux-s390x@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.12.tgz#3b1620220482b96266a0c6d9d471d451a1eab86f" + integrity sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww== + +esbuild-netbsd-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.12.tgz#276730f80da646859b1af5a740e7802d8cd73e42" + integrity sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w== + +esbuild-openbsd-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.12.tgz#bd0eea1dd2ca0722ed489d88c26714034429f8ae" + integrity sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw== + +esbuild-sunos-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.12.tgz#5e56bf9eef3b2d92360d6d29dcde7722acbecc9e" + integrity sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg== + +esbuild-windows-32@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.12.tgz#a4f1a301c1a2fa7701fcd4b91ef9d2620cf293d0" + integrity sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw== + +esbuild-windows-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.12.tgz#bc2b467541744d653be4fe64eaa9b0dbbf8e07f6" + integrity sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA== + +esbuild-windows-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.12.tgz#9a7266404334a86be800957eaee9aef94c3df328" + integrity sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA== + +esbuild@^0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.15.12.tgz#6c8e22d6d3b7430d165c33848298d3fc9a1f251c" + integrity sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng== optionalDependencies: - "@esbuild/android-arm" "0.15.11" - "@esbuild/linux-loong64" "0.15.11" - esbuild-android-64 "0.15.11" - esbuild-android-arm64 "0.15.11" - esbuild-darwin-64 "0.15.11" - esbuild-darwin-arm64 "0.15.11" - esbuild-freebsd-64 "0.15.11" - esbuild-freebsd-arm64 "0.15.11" - esbuild-linux-32 "0.15.11" - esbuild-linux-64 "0.15.11" - esbuild-linux-arm "0.15.11" - esbuild-linux-arm64 "0.15.11" - esbuild-linux-mips64le "0.15.11" - esbuild-linux-ppc64le "0.15.11" - esbuild-linux-riscv64 "0.15.11" - esbuild-linux-s390x "0.15.11" - esbuild-netbsd-64 "0.15.11" - esbuild-openbsd-64 "0.15.11" - esbuild-sunos-64 "0.15.11" - esbuild-windows-32 "0.15.11" - esbuild-windows-64 "0.15.11" - esbuild-windows-arm64 "0.15.11" + "@esbuild/android-arm" "0.15.12" + "@esbuild/linux-loong64" "0.15.12" + esbuild-android-64 "0.15.12" + esbuild-android-arm64 "0.15.12" + esbuild-darwin-64 "0.15.12" + esbuild-darwin-arm64 "0.15.12" + esbuild-freebsd-64 "0.15.12" + esbuild-freebsd-arm64 "0.15.12" + esbuild-linux-32 "0.15.12" + esbuild-linux-64 "0.15.12" + esbuild-linux-arm "0.15.12" + esbuild-linux-arm64 "0.15.12" + esbuild-linux-mips64le "0.15.12" + esbuild-linux-ppc64le "0.15.12" + esbuild-linux-riscv64 "0.15.12" + esbuild-linux-s390x "0.15.12" + esbuild-netbsd-64 "0.15.12" + esbuild-openbsd-64 "0.15.12" + esbuild-sunos-64 "0.15.12" + esbuild-windows-32 "0.15.12" + esbuild-windows-64 "0.15.12" + esbuild-windows-arm64 "0.15.12" escalade@^3.1.1: version "3.1.1" @@ -4596,13 +4616,14 @@ eslint@^7.32.0: v8-compile-cache "^2.0.3" eslint@^8: - version "8.25.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz#00eb962f50962165d0c4ee3327708315eaa8058b" - integrity sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A== + version "8.26.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz#2bcc8836e6c424c4ac26a5674a70d44d84f2181d" + integrity sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg== dependencies: "@eslint/eslintrc" "^1.3.3" - "@humanwhocodes/config-array" "^0.10.5" + "@humanwhocodes/config-array" "^0.11.6" "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -4618,14 +4639,14 @@ eslint@^8: fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" - glob-parent "^6.0.1" + glob-parent "^6.0.2" globals "^13.15.0" - globby "^11.1.0" grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" + is-path-inside "^3.0.3" js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" @@ -5319,7 +5340,7 @@ glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1: +glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -5942,7 +5963,7 @@ is-object@~1.0.1: resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== -is-path-inside@^3.0.2: +is-path-inside@^3.0.2, is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -6704,79 +6725,79 @@ jsesc@^2.5.1: resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -jsii-diff@^1.69.0: - version "1.69.0" - resolved "https://registry.npmjs.org/jsii-diff/-/jsii-diff-1.69.0.tgz#2f9663f439e57e10f97066978789a1452a8b3ad4" - integrity sha512-QIJzD9Kr77M1xD8l7CHTfJubk9qxzTEtVwI5ISEK49+p67Ho2Sxp5rncdXBYoruXD/FmO1CT52aNmNHiNbhkig== +jsii-diff@^1.70.0: + version "1.70.0" + resolved "https://registry.npmjs.org/jsii-diff/-/jsii-diff-1.70.0.tgz#67c67f713401d82799b52d997d104f20f74d4f75" + integrity sha512-of9otOfqkK/nAX7YwGu7OCifbXVkm2KvIvuMCotfAa8lqpiFnXJOi1On52mT8Vx31op74Mn15RLAO/k8DsFgzA== dependencies: - "@jsii/check-node" "1.69.0" - "@jsii/spec" "^1.69.0" + "@jsii/check-node" "1.70.0" + "@jsii/spec" "^1.70.0" fs-extra "^10.1.0" - jsii-reflect "^1.69.0" - log4js "^6.6.1" + jsii-reflect "^1.70.0" + log4js "^6.7.0" yargs "^16.2.0" -jsii-pacmak@^1.69.0: - version "1.69.0" - resolved "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.69.0.tgz#e72a7c92b00ab86eb754450f97a411474ba4521a" - integrity sha512-dMNyKOV+5mlRm7nT1UjpbXiYCPwHfiULH0JnBQWpGZBD3k8o9vVbMlV4oecxufTVrZH9DH39Mh+GQjR9yS9g1w== +jsii-pacmak@^1.70.0: + version "1.70.0" + resolved "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.70.0.tgz#2971d3469097994b74c4bb08918b88db398bc6f6" + integrity sha512-BbfIT21BVx1QB1EBLytHxO/CeI+zseI2sp+7wA/Uzfg7U1zS7DoqvsGjZwdl0RvinIJOvkzS55vP5qY5i7btcA== dependencies: - "@jsii/check-node" "1.69.0" - "@jsii/spec" "^1.69.0" + "@jsii/check-node" "1.70.0" + "@jsii/spec" "^1.70.0" clone "^2.1.2" - codemaker "^1.69.0" + codemaker "^1.70.0" commonmark "^0.30.0" escape-string-regexp "^4.0.0" fs-extra "^10.1.0" - jsii-reflect "^1.69.0" - jsii-rosetta "^1.69.0" - semver "^7.3.7" + jsii-reflect "^1.70.0" + jsii-rosetta "^1.70.0" + semver "^7.3.8" spdx-license-list "^6.6.0" xmlbuilder "^15.1.1" yargs "^16.2.0" -jsii-reflect@^1.69.0: - version "1.69.0" - resolved "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.69.0.tgz#72d12449d64628086241768f71c0b592fddf007a" - integrity sha512-gQA4Yu3OlHVmD1X8ysYwgolV5JKS8WbY8p9AKCUQsNbflxUGpYwJrX/Otl+VdiYnIhBZ7+v+VvOG9eYGMUH6IQ== +jsii-reflect@^1.70.0: + version "1.70.0" + resolved "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.70.0.tgz#09929607ebe3380a56d5187978b9da9a8686a97d" + integrity sha512-1enHoO6/G5o6RB+lzbQEUkXBFoZZRGJCfgYboLcYiH0tITX/FjipeTR9Wgkh9QumwdlBlMTXuxEPyRFVjQ7jcg== dependencies: - "@jsii/check-node" "1.69.0" - "@jsii/spec" "^1.69.0" + "@jsii/check-node" "1.70.0" + "@jsii/spec" "^1.70.0" chalk "^4" fs-extra "^10.1.0" - oo-ascii-tree "^1.69.0" + oo-ascii-tree "^1.70.0" yargs "^16.2.0" -jsii-rosetta@^1.69.0: - version "1.69.0" - resolved "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.69.0.tgz#f2b4ca0f1da310e2ac17a2228938e1b09268d823" - integrity sha512-zAvvzRShVMmUxNRLtbR4HShGEn17kyiED5XSo1CrVu4JzG6I7YEtYO1WrNFe1XTh76Bbi4OoamZm3Um91DPtXg== +jsii-rosetta@^1.70.0: + version "1.70.0" + resolved "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.70.0.tgz#2618c4661410638f7a7ae432359e512bede94076" + integrity sha512-iLfogMZ7tTP0g6iMGPHZOHCjn5+K4agb6oalFYbN8iUXVgf+DwKCOGTIN0TxNpy3YFvb4YhCWVENdYPDu/5Nvw== dependencies: - "@jsii/check-node" "1.69.0" - "@jsii/spec" "1.69.0" - "@xmldom/xmldom" "^0.8.2" + "@jsii/check-node" "1.70.0" + "@jsii/spec" "1.70.0" + "@xmldom/xmldom" "^0.8.3" commonmark "^0.30.0" fast-glob "^3.2.12" - jsii "1.69.0" - semver "^7.3.7" + jsii "1.70.0" + semver "^7.3.8" semver-intersect "^1.4.0" typescript "~3.9.10" workerpool "^6.2.1" yargs "^16.2.0" -jsii@1.69.0, jsii@^1.69.0: - version "1.69.0" - resolved "https://registry.npmjs.org/jsii/-/jsii-1.69.0.tgz#f3ec71ea710db8d3a0d677d39c32aa55930a903c" - integrity sha512-gusMQ8inlV2/51KsZmZ/H+FeoExrloksgeg8ohvIgF3tvqZKZDh0LvJFGNEeqcJzr+P1OZ3KHVEUI2M0XXicRw== +jsii@1.70.0, jsii@^1.70.0: + version "1.70.0" + resolved "https://registry.npmjs.org/jsii/-/jsii-1.70.0.tgz#ad5265f9d5a2f02c212deae987c2fe4426e8f73f" + integrity sha512-RDr/D6IPhCpx5A53qIS99rtwMlDVbjt5F0frCmgalXs2DNiqIm2C8OTUGToVQUrCbX1Lx8eZBmsYWLxG0bQLcg== dependencies: - "@jsii/check-node" "1.69.0" - "@jsii/spec" "^1.69.0" + "@jsii/check-node" "1.70.0" + "@jsii/spec" "^1.70.0" case "^1.6.3" chalk "^4" fast-deep-equal "^3.1.3" fs-extra "^10.1.0" - log4js "^6.6.1" - semver "^7.3.7" + log4js "^6.7.0" + semver "^7.3.8" semver-intersect "^1.4.0" sort-json "^2.0.1" spdx-license-list "^6.6.0" @@ -6788,10 +6809,10 @@ json-buffer@3.0.0: resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== -json-diff@^0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/json-diff/-/json-diff-0.9.0.tgz#e7c536798053cb409113d7403c774849e8a0d7ff" - integrity sha512-cVnggDrVkAAA3OvFfHpFEhOnmcsUpleEKq4d4O8sQWWSH40MBrWstKigVB1kGrgLWzuom+7rRdaCsnBD6VyObQ== +json-diff@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/json-diff/-/json-diff-0.9.1.tgz#86c0893f7c30a60bc44b98bd54762e101e2e5c6b" + integrity sha512-Z3eMg6kbVTBr3g/IpmF6z28yL2sqi4kkIlJWDQSt0auQW2y0QFu3RmSKizvj880E/EUyNanvWY3oi/T5Z7ZA1g== dependencies: cli-color "^2.0.0" difflib "~0.2.1" @@ -7221,7 +7242,7 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -log4js@^6.6.1: +log4js@^6.7.0: version "6.7.0" resolved "https://registry.npmjs.org/log4js/-/log4js-6.7.0.tgz#fff671a74b2f6e956d135c3c756c79072809a23b" integrity sha512-KA0W9ffgNBLDj6fZCq/lRbgR6ABAodRIDHrZnS48vOtfKa4PzWImb0Md1lmGCdO3n3sbCm/n1/WmrNlZ8kCI3Q== @@ -8279,10 +8300,10 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -oo-ascii-tree@^1.69.0: - version "1.69.0" - resolved "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.69.0.tgz#6bc33967798cca797be480d66dbf776e34d34cd8" - integrity sha512-U5bHVg5nC4OHPNd6ZDSotQ1ccRA+4Rb+bWcY+IJuf4imtO3wrJeSDlKVgMf92mwdVDHMZJ3QKJgElCASdr9Bgw== +oo-ascii-tree@^1.70.0: + version "1.70.0" + resolved "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.70.0.tgz#30ce0ee1a17b420cbba47a6989f1a69f30749d20" + integrity sha512-vu/NGcQKC6f3fz2C7qmDW1WP2WFK3CvG1JbweyKlnRsZrdbY0VCH9RKsNaoYUTu9tzafCZ4HWeLEkgXALQMsUg== open@^7.4.2: version "7.4.2" @@ -8630,24 +8651,25 @@ parse5@6.0.1: resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -patch-package@^6.4.7: - version "6.4.7" - resolved "https://registry.npmjs.org/patch-package/-/patch-package-6.4.7.tgz#2282d53c397909a0d9ef92dae3fdeb558382b148" - integrity sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ== +patch-package@^6.5.0: + version "6.5.0" + resolved "https://registry.npmjs.org/patch-package/-/patch-package-6.5.0.tgz#feb058db56f0005da59cfa316488321de585e88a" + integrity sha512-tC3EqJmo74yKqfsMzELaFwxOAu6FH6t+FzFOsnWAuARm7/n2xB5AOeOueE221eM9gtMuIKMKpF9tBy/X2mNP0Q== dependencies: "@yarnpkg/lockfile" "^1.1.0" - chalk "^2.4.2" + chalk "^4.1.2" cross-spawn "^6.0.5" find-yarn-workspace-root "^2.0.0" fs-extra "^7.0.1" is-ci "^2.0.0" klaw-sync "^6.0.0" - minimist "^1.2.0" + minimist "^1.2.6" open "^7.4.2" rimraf "^2.6.3" semver "^5.6.0" slash "^2.0.0" tmp "^0.0.33" + yaml "^1.10.2" path-equal@^1.1.2: version "1.2.2" @@ -8864,10 +8886,10 @@ progress@^2.0.0, progress@^2.0.3: resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -projen@^0.63.28: - version "0.63.28" - resolved "https://registry.npmjs.org/projen/-/projen-0.63.28.tgz#4288517cc276265dfc91f6748a0c6175bf3dd093" - integrity sha512-xkumo4JSwXXLW4nf7F4Ra7WOPquL+0b6Qjp6hV04vh3ziIhYvq29J8TKryG7N+TtbmUnvF0Zc+B7wqOikwciHQ== +projen@^0.65.1: + version "0.65.1" + resolved "https://registry.npmjs.org/projen/-/projen-0.65.1.tgz#aa215acf2b89d4ca717b0f6d8d8c32df4366cec1" + integrity sha512-j3mizyvSc5q253bSyPS7y6xrFm9w5E8AqZoRPS6HLMqqe5unVEIQyA7ciijQVyxsED/b1FKdA9H0XhptJy4elA== dependencies: "@iarna/toml" "^2.2.5" case "^1.6.3" @@ -10577,9 +10599,9 @@ uc.micro@^1.0.1, uc.micro@^1.0.5: integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.17.3" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.3.tgz#f0feedf019c4510f164099e8d7e72ff2d7304377" - integrity sha512-JmMFDME3iufZnBpyKL+uS78LRiC+mK55zWfM5f/pWBJfpOttXAqYfdDGRukYhJuyRinvPVAtUhvy7rlDybNtFg== + version "3.17.4" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== uid-number@0.0.6: version "0.0.6" @@ -10978,10 +11000,10 @@ wordwrap@>=0.0.2, wordwrap@^1.0.0: resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -workerpool@^6.2.1: - version "6.2.1" - resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== +workerpool@^6.2.1, workerpool@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.3.0.tgz#82f5e5e1fb01d48f0399fe52a117c8a15cd1b972" + integrity sha512-2rVusseHGwxEEESx/szO2SHfi982WQavL2YlWGHsZE2ynZ4gaHT7kmCXph9k9fUivKOwx7PBn6vn4nXUxxdKcw== wrap-ansi@^6.2.0: version "6.2.0"