@friggframework/devtools 2.0.0--canary.461.ef65c13.0 → 2.0.0--canary.461.4e47399.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -614,6 +614,23 @@ class VpcBuilder extends InfrastructureBuilder {
|
|
|
614
614
|
},
|
|
615
615
|
};
|
|
616
616
|
|
|
617
|
+
// Associate route table with private subnets
|
|
618
|
+
result.resources.FriggPrivateSubnet1RouteTableAssociation = {
|
|
619
|
+
Type: 'AWS::EC2::SubnetRouteTableAssociation',
|
|
620
|
+
Properties: {
|
|
621
|
+
SubnetId: { Ref: 'FriggPrivateSubnet1' },
|
|
622
|
+
RouteTableId: { Ref: 'FriggLambdaRouteTable' },
|
|
623
|
+
},
|
|
624
|
+
};
|
|
625
|
+
|
|
626
|
+
result.resources.FriggPrivateSubnet2RouteTableAssociation = {
|
|
627
|
+
Type: 'AWS::EC2::SubnetRouteTableAssociation',
|
|
628
|
+
Properties: {
|
|
629
|
+
SubnetId: { Ref: 'FriggPrivateSubnet2' },
|
|
630
|
+
RouteTableId: { Ref: 'FriggLambdaRouteTable' },
|
|
631
|
+
},
|
|
632
|
+
};
|
|
633
|
+
|
|
617
634
|
console.log(' ✅ NAT Gateway infrastructure created');
|
|
618
635
|
}
|
|
619
636
|
|
|
@@ -543,6 +543,46 @@ describe('VpcBuilder', () => {
|
|
|
543
543
|
expect(result.resources.FriggNATGateway.Type).toBe('AWS::EC2::NatGateway');
|
|
544
544
|
});
|
|
545
545
|
|
|
546
|
+
it('should create route table associations for private subnets with NAT Gateway', async () => {
|
|
547
|
+
const appDefinition = {
|
|
548
|
+
vpc: {
|
|
549
|
+
enable: true,
|
|
550
|
+
management: 'discover',
|
|
551
|
+
subnets: { management: 'create' },
|
|
552
|
+
natGateway: {
|
|
553
|
+
management: 'createAndManage',
|
|
554
|
+
},
|
|
555
|
+
selfHeal: true,
|
|
556
|
+
},
|
|
557
|
+
};
|
|
558
|
+
|
|
559
|
+
const discoveredResources = {
|
|
560
|
+
defaultVpcId: 'vpc-123',
|
|
561
|
+
publicSubnetId: 'subnet-public',
|
|
562
|
+
};
|
|
563
|
+
|
|
564
|
+
const result = await vpcBuilder.build(appDefinition, discoveredResources);
|
|
565
|
+
|
|
566
|
+
// Verify route table is created
|
|
567
|
+
expect(result.resources.FriggLambdaRouteTable).toBeDefined();
|
|
568
|
+
expect(result.resources.FriggLambdaRouteTable.Type).toBe('AWS::EC2::RouteTable');
|
|
569
|
+
|
|
570
|
+
// Verify route to NAT Gateway
|
|
571
|
+
expect(result.resources.FriggPrivateRoute).toBeDefined();
|
|
572
|
+
expect(result.resources.FriggPrivateRoute.Properties.NatGatewayId).toEqual({ Ref: 'FriggNATGateway' });
|
|
573
|
+
|
|
574
|
+
// Verify subnet route table associations
|
|
575
|
+
expect(result.resources.FriggPrivateSubnet1RouteTableAssociation).toBeDefined();
|
|
576
|
+
expect(result.resources.FriggPrivateSubnet1RouteTableAssociation.Type).toBe('AWS::EC2::SubnetRouteTableAssociation');
|
|
577
|
+
expect(result.resources.FriggPrivateSubnet1RouteTableAssociation.Properties.SubnetId).toEqual({ Ref: 'FriggPrivateSubnet1' });
|
|
578
|
+
expect(result.resources.FriggPrivateSubnet1RouteTableAssociation.Properties.RouteTableId).toEqual({ Ref: 'FriggLambdaRouteTable' });
|
|
579
|
+
|
|
580
|
+
expect(result.resources.FriggPrivateSubnet2RouteTableAssociation).toBeDefined();
|
|
581
|
+
expect(result.resources.FriggPrivateSubnet2RouteTableAssociation.Type).toBe('AWS::EC2::SubnetRouteTableAssociation');
|
|
582
|
+
expect(result.resources.FriggPrivateSubnet2RouteTableAssociation.Properties.SubnetId).toEqual({ Ref: 'FriggPrivateSubnet2' });
|
|
583
|
+
expect(result.resources.FriggPrivateSubnet2RouteTableAssociation.Properties.RouteTableId).toEqual({ Ref: 'FriggLambdaRouteTable' });
|
|
584
|
+
});
|
|
585
|
+
|
|
546
586
|
it('should not create NAT when existing NAT is properly placed', async () => {
|
|
547
587
|
const appDefinition = {
|
|
548
588
|
vpc: {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@friggframework/devtools",
|
|
3
3
|
"prettier": "@friggframework/prettier-config",
|
|
4
|
-
"version": "2.0.0--canary.461.
|
|
4
|
+
"version": "2.0.0--canary.461.4e47399.0",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@aws-sdk/client-ec2": "^3.835.0",
|
|
7
7
|
"@aws-sdk/client-kms": "^3.835.0",
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"@babel/eslint-parser": "^7.18.9",
|
|
12
12
|
"@babel/parser": "^7.25.3",
|
|
13
13
|
"@babel/traverse": "^7.25.3",
|
|
14
|
-
"@friggframework/schemas": "2.0.0--canary.461.
|
|
15
|
-
"@friggframework/test": "2.0.0--canary.461.
|
|
14
|
+
"@friggframework/schemas": "2.0.0--canary.461.4e47399.0",
|
|
15
|
+
"@friggframework/test": "2.0.0--canary.461.4e47399.0",
|
|
16
16
|
"@hapi/boom": "^10.0.1",
|
|
17
17
|
"@inquirer/prompts": "^5.3.8",
|
|
18
18
|
"axios": "^1.7.2",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"serverless-http": "^2.7.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@friggframework/eslint-config": "2.0.0--canary.461.
|
|
38
|
-
"@friggframework/prettier-config": "2.0.0--canary.461.
|
|
37
|
+
"@friggframework/eslint-config": "2.0.0--canary.461.4e47399.0",
|
|
38
|
+
"@friggframework/prettier-config": "2.0.0--canary.461.4e47399.0",
|
|
39
39
|
"aws-sdk-client-mock": "^4.1.0",
|
|
40
40
|
"aws-sdk-client-mock-jest": "^4.1.0",
|
|
41
41
|
"jest": "^30.1.3",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"publishConfig": {
|
|
71
71
|
"access": "public"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "4e4739922e59468d0c85a3f2c15df25b240082d9"
|
|
74
74
|
}
|