Skip to content

Commit 2773b7a

Browse files
Merge pull request #627 from gradientedge/feature/ipv6_only_subnets
feat(vpc): Add ipv6 only subnet property
2 parents daaab9d + 2d59e1a commit 2773b7a

File tree

2 files changed

+84
-6
lines changed

2 files changed

+84
-6
lines changed

src/lib/aws/services/virtual-private-cloud/ipv6.ts

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ export class Ipv6Vpc extends Vpc {
2828
_.forEach([...this.publicSubnets, ...this.privateSubnets, ...this.isolatedSubnets], (subnet, index) => {
2929
subnet.node.addDependency(cfnVpcCidrBlock)
3030
const cfnSubnet = subnet.node.defaultChild as CfnSubnet
31+
cfnSubnet.cidrBlock = undefined
32+
cfnSubnet.mapPublicIpOnLaunch = false
3133
cfnSubnet.ipv6CidrBlock = Fn.select(index, subnetIpv6CidrBlocks)
3234
cfnSubnet.assignIpv6AddressOnCreation = true
3335
cfnSubnet.ipv6Native = true

src/test/aws/services/vpc-manager.test.ts

+82-6
Original file line numberDiff line numberDiff line change
@@ -152,26 +152,102 @@ describe('TestVpcConstruct', () => {
152152
})
153153
template.hasResourceProperties('AWS::EC2::Subnet', {
154154
AvailabilityZone: 'dummy1a',
155-
CidrBlock: '10.0.128.0/18',
155+
Ipv6CidrBlock: {
156+
'Fn::Select': [
157+
0,
158+
{
159+
'Fn::Cidr': [
160+
{
161+
'Fn::Select': [
162+
0,
163+
{
164+
'Fn::GetAtt': ['testcommonstacktestipv6vpcB91AA9CB', 'Ipv6CidrBlocks'],
165+
},
166+
],
167+
},
168+
256,
169+
'64',
170+
],
171+
},
172+
],
173+
},
174+
Ipv6Native: true,
156175
MapPublicIpOnLaunch: false,
157176
VpcId: { Ref: 'testcommonstacktestipv6vpcB91AA9CB' },
158177
})
159178
template.hasResourceProperties('AWS::EC2::Subnet', {
160179
AvailabilityZone: 'dummy1a',
161-
CidrBlock: '10.0.0.0/18',
162-
MapPublicIpOnLaunch: true,
180+
Ipv6CidrBlock: {
181+
'Fn::Select': [
182+
0,
183+
{
184+
'Fn::Cidr': [
185+
{
186+
'Fn::Select': [
187+
0,
188+
{
189+
'Fn::GetAtt': ['testcommonstacktestipv6vpcB91AA9CB', 'Ipv6CidrBlocks'],
190+
},
191+
],
192+
},
193+
256,
194+
'64',
195+
],
196+
},
197+
],
198+
},
199+
Ipv6Native: true,
200+
MapPublicIpOnLaunch: false,
163201
VpcId: { Ref: 'testcommonstacktestipv6vpcB91AA9CB' },
164202
})
165203
template.hasResourceProperties('AWS::EC2::Subnet', {
166204
AvailabilityZone: 'dummy1b',
167-
CidrBlock: '10.0.192.0/18',
205+
Ipv6CidrBlock: {
206+
'Fn::Select': [
207+
1,
208+
{
209+
'Fn::Cidr': [
210+
{
211+
'Fn::Select': [
212+
0,
213+
{
214+
'Fn::GetAtt': ['testcommonstacktestipv6vpcB91AA9CB', 'Ipv6CidrBlocks'],
215+
},
216+
],
217+
},
218+
256,
219+
'64',
220+
],
221+
},
222+
],
223+
},
224+
Ipv6Native: true,
168225
MapPublicIpOnLaunch: false,
169226
VpcId: { Ref: 'testcommonstacktestipv6vpcB91AA9CB' },
170227
})
171228
template.hasResourceProperties('AWS::EC2::Subnet', {
172229
AvailabilityZone: 'dummy1b',
173-
CidrBlock: '10.0.64.0/18',
174-
MapPublicIpOnLaunch: true,
230+
Ipv6CidrBlock: {
231+
'Fn::Select': [
232+
3,
233+
{
234+
'Fn::Cidr': [
235+
{
236+
'Fn::Select': [
237+
0,
238+
{
239+
'Fn::GetAtt': ['testcommonstacktestipv6vpcB91AA9CB', 'Ipv6CidrBlocks'],
240+
},
241+
],
242+
},
243+
256,
244+
'64',
245+
],
246+
},
247+
],
248+
},
249+
Ipv6Native: true,
250+
MapPublicIpOnLaunch: false,
175251
VpcId: { Ref: 'testcommonstacktestipv6vpcB91AA9CB' },
176252
})
177253
})

0 commit comments

Comments
 (0)