diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/cdk.out b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/cdk.out new file mode 100644 index 0000000000000..188478b55560e --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/cdk.out @@ -0,0 +1 @@ +{"version":"41.0.0"} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/efs-from-imported-subnet.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/efs-from-imported-subnet.assets.json new file mode 100644 index 0000000000000..78cedcab89393 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/efs-from-imported-subnet.assets.json @@ -0,0 +1,20 @@ +{ + "version": "41.0.0", + "files": { + "2a39fbf7192f71f2ade2c1ddeba447fe088dc986596356a56b2871ac5c8325a7": { + "displayName": "efs-from-imported-subnet Template", + "source": { + "path": "efs-from-imported-subnet.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "2a39fbf7192f71f2ade2c1ddeba447fe088dc986596356a56b2871ac5c8325a7.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-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/efs-from-imported-subnet.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/efs-from-imported-subnet.template.json new file mode 100644 index 0000000000000..8ea3ab9cbe360 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/efs-from-imported-subnet.template.json @@ -0,0 +1,330 @@ +{ + "Resources": { + "Vpc8378EB38": { + "Type": "AWS::EC2::VPC", + "Properties": { + "CidrBlock": "10.0.0.0/16", + "EnableDnsHostnames": true, + "EnableDnsSupport": true, + "InstanceTenancy": "default", + "Tags": [ + { + "Key": "Name", + "Value": "efs-from-imported-subnet/Vpc" + } + ] + } + }, + "VpctestSubnet1Subnet43126774": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.0.0/17", + "MapPublicIpOnLaunch": true, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "test" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Public" + }, + { + "Key": "Name", + "Value": "efs-from-imported-subnet/Vpc/testSubnet1" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpctestSubnet1RouteTableF77D2377": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "efs-from-imported-subnet/Vpc/testSubnet1" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpctestSubnet1RouteTableAssociationE292CAA1": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VpctestSubnet1RouteTableF77D2377" + }, + "SubnetId": { + "Ref": "VpctestSubnet1Subnet43126774" + } + } + }, + "VpctestSubnet1DefaultRouteA2DE75B7": { + "Type": "AWS::EC2::Route", + "Properties": { + "DestinationCidrBlock": "0.0.0.0/0", + "GatewayId": { + "Ref": "VpcIGWD7BA715C" + }, + "RouteTableId": { + "Ref": "VpctestSubnet1RouteTableF77D2377" + } + }, + "DependsOn": [ + "VpcVPCGWBF912B6E" + ] + }, + "VpctestSubnet1EIPEE8206FB": { + "Type": "AWS::EC2::EIP", + "Properties": { + "Domain": "vpc", + "Tags": [ + { + "Key": "Name", + "Value": "efs-from-imported-subnet/Vpc/testSubnet1" + } + ] + } + }, + "VpctestSubnet1NATGateway4E5EAED1": { + "Type": "AWS::EC2::NatGateway", + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ + "VpctestSubnet1EIPEE8206FB", + "AllocationId" + ] + }, + "SubnetId": { + "Ref": "VpctestSubnet1Subnet43126774" + }, + "Tags": [ + { + "Key": "Name", + "Value": "efs-from-imported-subnet/Vpc/testSubnet1" + } + ] + }, + "DependsOn": [ + "VpctestSubnet1DefaultRouteA2DE75B7", + "VpctestSubnet1RouteTableAssociationE292CAA1" + ] + }, + "VpctestSubnet2Subnet3B2E5192": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.128.0/17", + "MapPublicIpOnLaunch": true, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "test" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Public" + }, + { + "Key": "Name", + "Value": "efs-from-imported-subnet/Vpc/testSubnet2" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpctestSubnet2RouteTable25D207BE": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "efs-from-imported-subnet/Vpc/testSubnet2" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpctestSubnet2RouteTableAssociationFA920AD0": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VpctestSubnet2RouteTable25D207BE" + }, + "SubnetId": { + "Ref": "VpctestSubnet2Subnet3B2E5192" + } + } + }, + "VpctestSubnet2DefaultRoute31936D04": { + "Type": "AWS::EC2::Route", + "Properties": { + "DestinationCidrBlock": "0.0.0.0/0", + "GatewayId": { + "Ref": "VpcIGWD7BA715C" + }, + "RouteTableId": { + "Ref": "VpctestSubnet2RouteTable25D207BE" + } + }, + "DependsOn": [ + "VpcVPCGWBF912B6E" + ] + }, + "VpcIGWD7BA715C": { + "Type": "AWS::EC2::InternetGateway", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "efs-from-imported-subnet/Vpc" + } + ] + } + }, + "VpcVPCGWBF912B6E": { + "Type": "AWS::EC2::VPCGatewayAttachment", + "Properties": { + "InternetGatewayId": { + "Ref": "VpcIGWD7BA715C" + }, + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "FileSystem8A8E25C0": { + "Type": "AWS::EFS::FileSystem", + "Properties": { + "Encrypted": true, + "FileSystemPolicy": { + "Statement": [ + { + "Action": [ + "elasticfilesystem:ClientRootAccess", + "elasticfilesystem:ClientWrite" + ], + "Condition": { + "Bool": { + "elasticfilesystem:AccessedViaMountTarget": "true" + } + }, + "Effect": "Allow", + "Principal": { + "AWS": "*" + } + } + ], + "Version": "2012-10-17" + }, + "FileSystemTags": [ + { + "Key": "Name", + "Value": "efs-from-imported-subnet/FileSystem" + } + ] + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "FileSystemEfsSecurityGroup212D3ACB": { + "Type": "AWS::EC2::SecurityGroup", + "Properties": { + "GroupDescription": "efs-from-imported-subnet/FileSystem/EfsSecurityGroup", + "SecurityGroupEgress": [ + { + "CidrIp": "0.0.0.0/0", + "Description": "Allow all outbound traffic by default", + "IpProtocol": "-1" + } + ], + "Tags": [ + { + "Key": "Name", + "Value": "efs-from-imported-subnet/FileSystem" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "FileSystemEfsMountTargetSubnetE0FBE03C": { + "Type": "AWS::EFS::MountTarget", + "Properties": { + "FileSystemId": { + "Ref": "FileSystem8A8E25C0" + }, + "SecurityGroups": [ + { + "Fn::GetAtt": [ + "FileSystemEfsSecurityGroup212D3ACB", + "GroupId" + ] + } + ], + "SubnetId": { + "Ref": "VpctestSubnet1Subnet43126774" + } + } + } + }, + "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-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C.assets.json new file mode 100644 index 0000000000000..8241bd4adeb0d --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C.assets.json @@ -0,0 +1,20 @@ +{ + "version": "41.0.0", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C Template", + "source": { + "path": "efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C.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-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C.template.json new file mode 100644 index 0000000000000..ad9d0fb73d1dd --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C.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-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/integ.json b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/integ.json new file mode 100644 index 0000000000000..efd5abe5d7247 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/integ.json @@ -0,0 +1,12 @@ +{ + "version": "41.0.0", + "testCases": { + "efs-from-imported-subnet-test/DefaultTest": { + "stacks": [ + "efs-from-imported-subnet" + ], + "assertionStack": "efs-from-imported-subnet-test/DefaultTest/DeployAssert", + "assertionStackName": "efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C" + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/manifest.json b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/manifest.json new file mode 100644 index 0000000000000..f7d12c7715109 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/manifest.json @@ -0,0 +1,315 @@ +{ + "version": "42.0.0", + "artifacts": { + "efs-from-imported-subnet.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "efs-from-imported-subnet.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "efs-from-imported-subnet": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "efs-from-imported-subnet.template.json", + "terminationProtection": false, + "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}/2a39fbf7192f71f2ade2c1ddeba447fe088dc986596356a56b2871ac5c8325a7.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "efs-from-imported-subnet.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": [ + "efs-from-imported-subnet.assets" + ], + "metadata": { + "/efs-from-imported-subnet/Vpc": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "natGateways": "*", + "restrictDefaultSecurityGroup": false, + "subnetConfiguration": [ + { + "name": "*", + "subnetType": "Public" + } + ] + } + } + ], + "/efs-from-imported-subnet/Vpc/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "Vpc8378EB38" + } + ], + "/efs-from-imported-subnet/Vpc/testSubnet1": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": true, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": true, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": {} + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addNatGateway": [ + "*" + ] + } + } + ], + "/efs-from-imported-subnet/Vpc/testSubnet1/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VpctestSubnet1Subnet43126774" + } + ], + "/efs-from-imported-subnet/Vpc/testSubnet1/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VpctestSubnet1RouteTableF77D2377" + } + ], + "/efs-from-imported-subnet/Vpc/testSubnet1/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VpctestSubnet1RouteTableAssociationE292CAA1" + } + ], + "/efs-from-imported-subnet/Vpc/testSubnet1/DefaultRoute": [ + { + "type": "aws:cdk:logicalId", + "data": "VpctestSubnet1DefaultRouteA2DE75B7" + } + ], + "/efs-from-imported-subnet/Vpc/testSubnet1/EIP": [ + { + "type": "aws:cdk:logicalId", + "data": "VpctestSubnet1EIPEE8206FB" + } + ], + "/efs-from-imported-subnet/Vpc/testSubnet1/NATGateway": [ + { + "type": "aws:cdk:logicalId", + "data": "VpctestSubnet1NATGateway4E5EAED1" + } + ], + "/efs-from-imported-subnet/Vpc/testSubnet2": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": true, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": true, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": {} + } + ], + "/efs-from-imported-subnet/Vpc/testSubnet2/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VpctestSubnet2Subnet3B2E5192" + } + ], + "/efs-from-imported-subnet/Vpc/testSubnet2/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VpctestSubnet2RouteTable25D207BE" + } + ], + "/efs-from-imported-subnet/Vpc/testSubnet2/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VpctestSubnet2RouteTableAssociationFA920AD0" + } + ], + "/efs-from-imported-subnet/Vpc/testSubnet2/DefaultRoute": [ + { + "type": "aws:cdk:logicalId", + "data": "VpctestSubnet2DefaultRoute31936D04" + } + ], + "/efs-from-imported-subnet/Vpc/IGW": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcIGWD7BA715C" + } + ], + "/efs-from-imported-subnet/Vpc/VPCGW": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcVPCGWBF912B6E" + } + ], + "/efs-from-imported-subnet/Subnet": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:warning", + "data": "No routeTableId was provided to the subnet at 'efs-from-imported-subnet/Subnet'. Attempting to read its .routeTable.routeTableId will return null/undefined. (More info: https://github.com/aws/aws-cdk/pull/3171) [ack: @aws-cdk/aws-ec2:noSubnetRouteTableId]" + } + ], + "/efs-from-imported-subnet/FileSystem": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "vpc": "*", + "vpcSubnets": { + "subnets": [ + "*" + ] + }, + "removalPolicy": "destroy" + } + } + ], + "/efs-from-imported-subnet/FileSystem/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "FileSystem8A8E25C0" + } + ], + "/efs-from-imported-subnet/FileSystem/EfsSecurityGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "vpc": "*" + } + } + ], + "/efs-from-imported-subnet/FileSystem/EfsSecurityGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "FileSystemEfsSecurityGroup212D3ACB" + } + ], + "/efs-from-imported-subnet/FileSystem/EfsMountTarget-Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "FileSystemEfsMountTargetSubnetE0FBE03C" + } + ], + "/efs-from-imported-subnet/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/efs-from-imported-subnet/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "efs-from-imported-subnet" + }, + "efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C.template.json", + "terminationProtection": false, + "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": [ + "efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C.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": [ + "efsfromimportedsubnettestDefaultTestDeployAssertC5BA6A6C.assets" + ], + "metadata": { + "/efs-from-imported-subnet-test/DefaultTest/DeployAssert/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/efs-from-imported-subnet-test/DefaultTest/DeployAssert/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "efs-from-imported-subnet-test/DefaultTest/DeployAssert" + }, + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } + } + }, + "minimumCliVersion": "2.1006.0" +} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/tree.json b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/tree.json new file mode 100644 index 0000000000000..11cc2c77b1d16 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.js.snapshot/tree.json @@ -0,0 +1 @@ +{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"efs-from-imported-subnet":{"id":"efs-from-imported-subnet","path":"efs-from-imported-subnet","children":{"Vpc":{"id":"Vpc","path":"efs-from-imported-subnet/Vpc","children":{"Resource":{"id":"Resource","path":"efs-from-imported-subnet/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":"efs-from-imported-subnet/Vpc"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"}},"testSubnet1":{"id":"testSubnet1","path":"efs-from-imported-subnet/Vpc/testSubnet1","children":{"Subnet":{"id":"Subnet","path":"efs-from-imported-subnet/Vpc/testSubnet1/Subnet","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/17","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"test"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"efs-from-imported-subnet/Vpc/testSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"}},"Acl":{"id":"Acl","path":"efs-from-imported-subnet/Vpc/testSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"efs-from-imported-subnet/Vpc/testSubnet1/RouteTable","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"efs-from-imported-subnet/Vpc/testSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"efs-from-imported-subnet/Vpc/testSubnet1/RouteTableAssociation","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpctestSubnet1RouteTableF77D2377"},"subnetId":{"Ref":"VpctestSubnet1Subnet43126774"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"}},"DefaultRoute":{"id":"DefaultRoute","path":"efs-from-imported-subnet/Vpc/testSubnet1/DefaultRoute","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpctestSubnet1RouteTableF77D2377"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"}},"EIP":{"id":"EIP","path":"efs-from-imported-subnet/Vpc/testSubnet1/EIP","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"efs-from-imported-subnet/Vpc/testSubnet1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"}},"NATGateway":{"id":"NATGateway","path":"efs-from-imported-subnet/Vpc/testSubnet1/NATGateway","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpctestSubnet1EIPEE8206FB","AllocationId"]},"subnetId":{"Ref":"VpctestSubnet1Subnet43126774"},"tags":[{"key":"Name","value":"efs-from-imported-subnet/Vpc/testSubnet1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]}},"testSubnet2":{"id":"testSubnet2","path":"efs-from-imported-subnet/Vpc/testSubnet2","children":{"Subnet":{"id":"Subnet","path":"efs-from-imported-subnet/Vpc/testSubnet2/Subnet","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/17","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"test"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"efs-from-imported-subnet/Vpc/testSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"}},"Acl":{"id":"Acl","path":"efs-from-imported-subnet/Vpc/testSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"efs-from-imported-subnet/Vpc/testSubnet2/RouteTable","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"efs-from-imported-subnet/Vpc/testSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"efs-from-imported-subnet/Vpc/testSubnet2/RouteTableAssociation","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpctestSubnet2RouteTable25D207BE"},"subnetId":{"Ref":"VpctestSubnet2Subnet3B2E5192"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"}},"DefaultRoute":{"id":"DefaultRoute","path":"efs-from-imported-subnet/Vpc/testSubnet2/DefaultRoute","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpctestSubnet2RouteTable25D207BE"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]}},"IGW":{"id":"IGW","path":"efs-from-imported-subnet/Vpc/IGW","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"efs-from-imported-subnet/Vpc"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"}},"VPCGW":{"id":"VPCGW","path":"efs-from-imported-subnet/Vpc/VPCGW","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*","restrictDefaultSecurityGroup":false,"subnetConfiguration":[{"name":"*","subnetType":"Public"}]}]}},"Subnet":{"id":"Subnet","path":"efs-from-imported-subnet/Subnet","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"FileSystem":{"id":"FileSystem","path":"efs-from-imported-subnet/FileSystem","children":{"Resource":{"id":"Resource","path":"efs-from-imported-subnet/FileSystem/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::EFS::FileSystem","aws:cdk:cloudformation:props":{"encrypted":true,"fileSystemPolicy":{"Statement":[{"Action":["elasticfilesystem:ClientRootAccess","elasticfilesystem:ClientWrite"],"Condition":{"Bool":{"elasticfilesystem:AccessedViaMountTarget":"true"}},"Effect":"Allow","Principal":{"AWS":"*"}}],"Version":"2012-10-17"},"fileSystemTags":[{"key":"Name","value":"efs-from-imported-subnet/FileSystem"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_efs.CfnFileSystem","version":"0.0.0"}},"EfsSecurityGroup":{"id":"EfsSecurityGroup","path":"efs-from-imported-subnet/FileSystem/EfsSecurityGroup","children":{"Resource":{"id":"Resource","path":"efs-from-imported-subnet/FileSystem/EfsSecurityGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"efs-from-imported-subnet/FileSystem/EfsSecurityGroup","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"tags":[{"key":"Name","value":"efs-from-imported-subnet/FileSystem"}],"vpcId":{"Ref":"Vpc8378EB38"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*"}]}},"EfsMountTarget-Subnet":{"id":"EfsMountTarget-Subnet","path":"efs-from-imported-subnet/FileSystem/EfsMountTarget-Subnet","attributes":{"aws:cdk:cloudformation:type":"AWS::EFS::MountTarget","aws:cdk:cloudformation:props":{"fileSystemId":{"Ref":"FileSystem8A8E25C0"},"securityGroups":[{"Fn::GetAtt":["FileSystemEfsSecurityGroup212D3ACB","GroupId"]}],"subnetId":{"Ref":"VpctestSubnet1Subnet43126774"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_efs.CfnMountTarget","version":"0.0.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_efs.FileSystem","version":"0.0.0","metadata":[{"vpc":"*","vpcSubnets":{"subnets":["*"]},"removalPolicy":"destroy"}]}},"BootstrapVersion":{"id":"BootstrapVersion","path":"efs-from-imported-subnet/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"efs-from-imported-subnet/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"}},"efs-from-imported-subnet-test":{"id":"efs-from-imported-subnet-test","path":"efs-from-imported-subnet-test","children":{"DefaultTest":{"id":"DefaultTest","path":"efs-from-imported-subnet-test/DefaultTest","children":{"Default":{"id":"Default","path":"efs-from-imported-subnet-test/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"efs-from-imported-subnet-test/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"efs-from-imported-subnet-test/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"efs-from-imported-subnet-test/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"}}} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.ts b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.ts new file mode 100644 index 0000000000000..4abb26a62fb26 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-efs/test/integ.efs-from-imported-subnet.ts @@ -0,0 +1,34 @@ +import * as ec2 from 'aws-cdk-lib/aws-ec2'; +import { App, RemovalPolicy, Stack } from 'aws-cdk-lib'; +import { FileSystem } from 'aws-cdk-lib/aws-efs'; +import { IntegTest } from '@aws-cdk/integ-tests-alpha'; + +const app = new App(); +const stack = new Stack(app, 'efs-from-imported-subnet'); + +const vpc = new ec2.Vpc(stack, 'Vpc', { + natGateways: 1, + restrictDefaultSecurityGroup: false, + subnetConfiguration: [ + { + name: 'test', + subnetType: ec2.SubnetType.PUBLIC, + }, + ], +}); + +const subnet = ec2.Subnet.fromSubnetAttributes(stack, 'Subnet', { + subnetId: vpc.publicSubnets[0].subnetId, +}); + +new FileSystem(stack, 'FileSystem', { + vpc, + vpcSubnets: { + subnets: [subnet], + }, + removalPolicy: RemovalPolicy.DESTROY, +}); + +new IntegTest(app, 'efs-from-imported-subnet-test', { + testCases: [stack], +}); diff --git a/packages/aws-cdk-lib/aws-efs/lib/efs-file-system.ts b/packages/aws-cdk-lib/aws-efs/lib/efs-file-system.ts index 37b775d593598..86e3a56fab38b 100644 --- a/packages/aws-cdk-lib/aws-efs/lib/efs-file-system.ts +++ b/packages/aws-cdk-lib/aws-efs/lib/efs-file-system.ts @@ -4,7 +4,7 @@ import { CfnFileSystem, CfnMountTarget } from './efs.generated'; import * as ec2 from '../../aws-ec2'; import * as iam from '../../aws-iam'; import * as kms from '../../aws-kms'; -import { ArnFormat, FeatureFlags, Lazy, RemovalPolicy, Resource, Size, Stack, Tags, Token, ValidationError } from '../../core'; +import { ArnFormat, FeatureFlags, Lazy, Names, RemovalPolicy, Resource, Size, Stack, Tags, Token, ValidationError } from '../../core'; import { addConstructMetadata, MethodMetadata } from '../../core/lib/metadata-resource'; import * as cxapi from '../../cx-api'; @@ -863,8 +863,10 @@ export class FileSystem extends FileSystemBase { this.mountTargetsAvailable = []; if (useMountTargetOrderInsensitiveLogicalID) { subnets.subnets.forEach((subnet) => { + const subnetUniqueId = Token.isUnresolved(subnet.node.id) ? Names.uniqueResourceName(subnet, { maxLength: 16 }) : subnet.node.id; + const mountTarget = new CfnMountTarget(this, - `EfsMountTarget-${subnet.node.id}`, + `EfsMountTarget-${subnetUniqueId}`, { fileSystemId: this.fileSystemId, securityGroups: Array.of(securityGroup.securityGroupId), diff --git a/packages/aws-cdk-lib/aws-efs/test/efs-file-system.test.ts b/packages/aws-cdk-lib/aws-efs/test/efs-file-system.test.ts index 55fbca40933cf..fb8a453b69fd6 100644 --- a/packages/aws-cdk-lib/aws-efs/test/efs-file-system.test.ts +++ b/packages/aws-cdk-lib/aws-efs/test/efs-file-system.test.ts @@ -615,6 +615,46 @@ test('mountTargetOrderInsensitiveLogicalId flag is true', () => { }); }); +test('mountTargetOrderInsensitiveLogicalId flag is true with imported subnet', () => { + // WHEN + const customStack = new Stack(); + customStack.node.setContext('@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId', true); + + const customVpc = new ec2.Vpc(customStack, 'VPC'); + + new FileSystem(customVpc, 'EfsFileSystem', { + vpc: customVpc, + vpcSubnets: { + subnets: [ + ec2.Subnet.fromSubnetAttributes(customStack, 'my-subnet-id', { + subnetId: 'my-subnet-id', + }), + ec2.Subnet.fromSubnetAttributes(customStack, 'my-other-subnet-id', { + subnetId: 'my-other-subnet-id', + }), + ], + }, + }); + + // THEN + Template.fromStack(customStack).templateMatches({ + Resources: { + VPCEfsFileSystemEfsMountTargetmyothersubnetidA1DA462D: { + Properties: { + SubnetId: 'my-other-subnet-id', + }, + Type: 'AWS::EFS::MountTarget', + }, + VPCEfsFileSystemEfsMountTargetmysubnetidED4A4CD9: { + Properties: { + SubnetId: 'my-subnet-id', + }, + Type: 'AWS::EFS::MountTarget', + }, + }, + }); +}); + test('mountTargetOrderInsensitiveLogicalId flag is false', () => { // WHEN const customStack = new Stack();