cdk-factory 0.18.27__py3-none-any.whl → 0.19.0__py3-none-any.whl
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.
Potentially problematic release.
This version of cdk-factory might be problematic. Click here for more details.
- cdk_factory/stack_library/acm/acm_stack.py +4 -15
- cdk_factory/stack_library/code_artifact/code_artifact_stack.py +3 -25
- cdk_factory/stack_library/ecs/ecs_service_stack.py +4 -25
- cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +0 -23
- cdk_factory/stack_library/load_balancer/load_balancer_stack.py +2 -59
- cdk_factory/stack_library/rds/rds_stack.py +1 -25
- cdk_factory/stack_library/route53/route53_stack.py +1 -34
- cdk_factory/stack_library/security_group/security_group_full_stack.py +1 -31
- cdk_factory/stack_library/security_group/security_group_stack.py +1 -8
- cdk_factory/stack_library/simple_queue_service/sqs_stack.py +1 -34
- cdk_factory/stack_library/vpc/vpc_stack.py +2 -109
- cdk_factory/version.py +1 -1
- {cdk_factory-0.18.27.dist-info → cdk_factory-0.19.0.dist-info}/METADATA +1 -1
- {cdk_factory-0.18.27.dist-info → cdk_factory-0.19.0.dist-info}/RECORD +17 -17
- {cdk_factory-0.18.27.dist-info → cdk_factory-0.19.0.dist-info}/WHEEL +0 -0
- {cdk_factory-0.18.27.dist-info → cdk_factory-0.19.0.dist-info}/entry_points.txt +0 -0
- {cdk_factory-0.18.27.dist-info → cdk_factory-0.19.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -153,18 +153,7 @@ class AcmStack(IStack, StandardizedSsmMixin):
|
|
|
153
153
|
|
|
154
154
|
def _add_outputs(self, cert_name: str) -> None:
|
|
155
155
|
"""Add CloudFormation outputs"""
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
description=f"Certificate ARN for {self.acm_config.domain_name}",
|
|
161
|
-
export_name=f"{cert_name}-arn",
|
|
162
|
-
)
|
|
163
|
-
|
|
164
|
-
cdk.CfnOutput(
|
|
165
|
-
self,
|
|
166
|
-
"DomainName",
|
|
167
|
-
value=self.acm_config.domain_name,
|
|
168
|
-
description="Primary domain name for the certificate",
|
|
169
|
-
export_name=f"{cert_name}-domain",
|
|
170
|
-
)
|
|
156
|
+
|
|
157
|
+
return
|
|
158
|
+
|
|
159
|
+
|
|
@@ -140,32 +140,10 @@ class CodeArtifactStack(IStack, StandardizedSsmMixin):
|
|
|
140
140
|
|
|
141
141
|
def _add_outputs(self) -> None:
|
|
142
142
|
"""Add CloudFormation outputs for the CodeArtifact resources"""
|
|
143
|
+
|
|
144
|
+
|
|
143
145
|
# Domain outputs
|
|
144
146
|
if self.domain:
|
|
145
147
|
domain_name = self.code_artifact_config.domain_name
|
|
146
148
|
|
|
147
|
-
|
|
148
|
-
cdk.CfnOutput(
|
|
149
|
-
self,
|
|
150
|
-
f"{domain_name}-domain-arn",
|
|
151
|
-
value=self.domain.attr_arn,
|
|
152
|
-
export_name=f"{self.deployment.build_resource_name(domain_name)}-domain-arn"
|
|
153
|
-
)
|
|
154
|
-
|
|
155
|
-
# Domain URL
|
|
156
|
-
cdk.CfnOutput(
|
|
157
|
-
self,
|
|
158
|
-
f"{domain_name}-domain-url",
|
|
159
|
-
value=f"https://{self.code_artifact_config.account}.d.codeartifact.{self.code_artifact_config.region}.amazonaws.com/",
|
|
160
|
-
export_name=f"{self.deployment.build_resource_name(domain_name)}-domain-url"
|
|
161
|
-
)
|
|
162
|
-
|
|
163
|
-
# Repository outputs
|
|
164
|
-
for repo_name, repo in self.repositories.items():
|
|
165
|
-
# Repository ARN
|
|
166
|
-
cdk.CfnOutput(
|
|
167
|
-
self,
|
|
168
|
-
f"{repo_name}-repo-arn",
|
|
169
|
-
value=repo.attr_arn,
|
|
170
|
-
export_name=f"{self.deployment.build_resource_name(repo_name)}-repo-arn"
|
|
171
|
-
)
|
|
149
|
+
|
|
@@ -101,6 +101,7 @@ class EcsServiceStack(IStack, VPCProviderMixin, StandardizedSsmMixin):
|
|
|
101
101
|
|
|
102
102
|
# Add outputs
|
|
103
103
|
self._add_outputs(service_name)
|
|
104
|
+
self._export_to_ssm(service_name)
|
|
104
105
|
|
|
105
106
|
def _load_vpc(self) -> None:
|
|
106
107
|
"""Load VPC using the centralized VPC provider mixin."""
|
|
@@ -603,35 +604,13 @@ class EcsServiceStack(IStack, VPCProviderMixin, StandardizedSsmMixin):
|
|
|
603
604
|
scale_out_cooldown=cdk.Duration.seconds(60),
|
|
604
605
|
)
|
|
605
606
|
|
|
607
|
+
|
|
608
|
+
|
|
606
609
|
def _add_outputs(self, service_name: str) -> None:
|
|
607
610
|
"""Add CloudFormation outputs"""
|
|
611
|
+
return
|
|
608
612
|
|
|
609
|
-
# Service name output
|
|
610
|
-
cdk.CfnOutput(
|
|
611
|
-
self,
|
|
612
|
-
"ServiceName",
|
|
613
|
-
value=self.service.service_name,
|
|
614
|
-
description=f"ECS Service Name: {service_name}",
|
|
615
|
-
)
|
|
616
|
-
|
|
617
|
-
# Service ARN output
|
|
618
|
-
cdk.CfnOutput(
|
|
619
|
-
self,
|
|
620
|
-
"ServiceArn",
|
|
621
|
-
value=self.service.service_arn,
|
|
622
|
-
description=f"ECS Service ARN: {service_name}",
|
|
623
|
-
)
|
|
624
|
-
|
|
625
|
-
# Cluster name output
|
|
626
|
-
cdk.CfnOutput(
|
|
627
|
-
self,
|
|
628
|
-
"ClusterName",
|
|
629
|
-
value=self.cluster.cluster_name,
|
|
630
|
-
description=f"ECS Cluster Name for {service_name}",
|
|
631
|
-
)
|
|
632
613
|
|
|
633
|
-
# Export to SSM if configured
|
|
634
|
-
self._export_to_ssm(service_name)
|
|
635
614
|
|
|
636
615
|
def _export_to_ssm(self, service_name: str) -> None:
|
|
637
616
|
"""Export resource ARNs and names to SSM Parameter Store"""
|
|
@@ -303,30 +303,7 @@ class LambdaEdgeStack(IStack, StandardizedSsmMixin):
|
|
|
303
303
|
def _add_outputs(self, function_name: str) -> None:
|
|
304
304
|
"""Add CloudFormation outputs and SSM exports"""
|
|
305
305
|
|
|
306
|
-
# CloudFormation outputs
|
|
307
|
-
cdk.CfnOutput(
|
|
308
|
-
self,
|
|
309
|
-
"FunctionName",
|
|
310
|
-
value=self.function.function_name,
|
|
311
|
-
description="Lambda function name",
|
|
312
|
-
export_name=f"{function_name}-name"
|
|
313
|
-
)
|
|
314
306
|
|
|
315
|
-
cdk.CfnOutput(
|
|
316
|
-
self,
|
|
317
|
-
"FunctionArn",
|
|
318
|
-
value=self.function.function_arn,
|
|
319
|
-
description="Lambda function ARN (unversioned)",
|
|
320
|
-
export_name=f"{function_name}-arn"
|
|
321
|
-
)
|
|
322
|
-
|
|
323
|
-
cdk.CfnOutput(
|
|
324
|
-
self,
|
|
325
|
-
"FunctionVersionArn",
|
|
326
|
-
value=self.function_version.function_arn,
|
|
327
|
-
description="Lambda function version ARN (use this for Lambda@Edge)",
|
|
328
|
-
export_name=f"{function_name}-version-arn"
|
|
329
|
-
)
|
|
330
307
|
|
|
331
308
|
# SSM Parameter Store exports (if configured)
|
|
332
309
|
ssm_exports = self.edge_config.dictionary.get("ssm", {}).get("exports", {})
|
|
@@ -656,36 +656,7 @@ class LoadBalancerStack(IStack, VPCProviderMixin, StandardizedSsmMixin):
|
|
|
656
656
|
|
|
657
657
|
def _export_cfn_outputs(self, lb_name: str) -> None:
|
|
658
658
|
"""Add CloudFormation outputs for the Load Balancer"""
|
|
659
|
-
|
|
660
|
-
# Load Balancer DNS Name
|
|
661
|
-
cdk.CfnOutput(
|
|
662
|
-
self,
|
|
663
|
-
f"{lb_name}-dns-name",
|
|
664
|
-
value=self.load_balancer.load_balancer_dns_name,
|
|
665
|
-
export_name=f"{self.deployment.build_resource_name(lb_name)}-dns-name",
|
|
666
|
-
)
|
|
667
|
-
|
|
668
|
-
# Load Balancer ARN
|
|
669
|
-
cdk.CfnOutput(
|
|
670
|
-
self,
|
|
671
|
-
f"{lb_name}-arn",
|
|
672
|
-
value=self.load_balancer.load_balancer_arn,
|
|
673
|
-
export_name=f"{self.deployment.build_resource_name(lb_name)}-arn",
|
|
674
|
-
)
|
|
675
|
-
|
|
676
|
-
# Target Group ARNs
|
|
677
|
-
for tg_name, target_group in self.target_groups.items():
|
|
678
|
-
# Normalize target group name for consistent CloudFormation export naming
|
|
679
|
-
normalized_tg_name = self.normalize_resource_name(
|
|
680
|
-
tg_name, for_export=True
|
|
681
|
-
)
|
|
682
|
-
cdk.CfnOutput(
|
|
683
|
-
self,
|
|
684
|
-
f"{lb_name}-{normalized_tg_name}-arn",
|
|
685
|
-
value=target_group.target_group_arn,
|
|
686
|
-
export_name=f"{self.deployment.build_resource_name(lb_name)}-{normalized_tg_name}-arn",
|
|
687
|
-
)
|
|
688
|
-
|
|
659
|
+
return
|
|
689
660
|
def _export_ssm_parameters(self, lb_name: str) -> None:
|
|
690
661
|
"""Export Load Balancer resources to SSM Parameter Store if configured"""
|
|
691
662
|
if not self.load_balancer:
|
|
@@ -716,32 +687,4 @@ class LoadBalancerStack(IStack, VPCProviderMixin, StandardizedSsmMixin):
|
|
|
716
687
|
|
|
717
688
|
def _export_cfn_outputs(self, lb_name: str) -> None:
|
|
718
689
|
"""Add CloudFormation outputs for the Load Balancer"""
|
|
719
|
-
|
|
720
|
-
# Load Balancer DNS Name
|
|
721
|
-
cdk.CfnOutput(
|
|
722
|
-
self,
|
|
723
|
-
f"{lb_name}-dns-name",
|
|
724
|
-
value=self.load_balancer.load_balancer_dns_name,
|
|
725
|
-
export_name=f"{self.deployment.build_resource_name(lb_name)}-dns-name",
|
|
726
|
-
)
|
|
727
|
-
|
|
728
|
-
# Load Balancer ARN
|
|
729
|
-
cdk.CfnOutput(
|
|
730
|
-
self,
|
|
731
|
-
f"{lb_name}-arn",
|
|
732
|
-
value=self.load_balancer.load_balancer_arn,
|
|
733
|
-
export_name=f"{self.deployment.build_resource_name(lb_name)}-arn",
|
|
734
|
-
)
|
|
735
|
-
|
|
736
|
-
# Target Group ARNs
|
|
737
|
-
for tg_name, target_group in self.target_groups.items():
|
|
738
|
-
# Normalize target group name for consistent CloudFormation export naming
|
|
739
|
-
normalized_tg_name = self.normalize_resource_name(
|
|
740
|
-
tg_name, for_export=True
|
|
741
|
-
)
|
|
742
|
-
cdk.CfnOutput(
|
|
743
|
-
self,
|
|
744
|
-
f"{lb_name}-{normalized_tg_name}-arn",
|
|
745
|
-
value=target_group.target_group_arn,
|
|
746
|
-
export_name=f"{self.deployment.build_resource_name(lb_name)}-{normalized_tg_name}-arn",
|
|
747
|
-
)
|
|
690
|
+
return
|
|
@@ -285,31 +285,7 @@ class RdsStack(IStack, VPCProviderMixin, StandardizedSsmMixin):
|
|
|
285
285
|
|
|
286
286
|
def _add_outputs(self, db_name: str) -> None:
|
|
287
287
|
"""Add CloudFormation outputs for the RDS instance"""
|
|
288
|
-
|
|
289
|
-
# Database endpoint
|
|
290
|
-
cdk.CfnOutput(
|
|
291
|
-
self,
|
|
292
|
-
f"{db_name}-endpoint",
|
|
293
|
-
value=self.db_instance.db_instance_endpoint_address,
|
|
294
|
-
export_name=f"{self.deployment.build_resource_name(db_name)}-endpoint",
|
|
295
|
-
)
|
|
296
|
-
|
|
297
|
-
# Database port
|
|
298
|
-
cdk.CfnOutput(
|
|
299
|
-
self,
|
|
300
|
-
f"{db_name}-port",
|
|
301
|
-
value=self.db_instance.db_instance_endpoint_port,
|
|
302
|
-
export_name=f"{self.deployment.build_resource_name(db_name)}-port",
|
|
303
|
-
)
|
|
304
|
-
|
|
305
|
-
# Secret ARN (if available)
|
|
306
|
-
if hasattr(self.db_instance, "secret") and self.db_instance.secret:
|
|
307
|
-
cdk.CfnOutput(
|
|
308
|
-
self,
|
|
309
|
-
f"{db_name}-secret-arn",
|
|
310
|
-
value=self.db_instance.secret.secret_arn,
|
|
311
|
-
export_name=f"{self.deployment.build_resource_name(db_name)}-secret-arn",
|
|
312
|
-
)
|
|
288
|
+
return
|
|
313
289
|
|
|
314
290
|
def _export_ssm_parameters(self, db_name: str) -> None:
|
|
315
291
|
"""Export RDS connection info and credentials to SSM Parameter Store"""
|
|
@@ -413,37 +413,4 @@ class Route53Stack(IStack, StandardizedSsmMixin):
|
|
|
413
413
|
def _add_outputs(self) -> None:
|
|
414
414
|
"""Add CloudFormation outputs for the Route53 resources"""
|
|
415
415
|
# Hosted Zone ID
|
|
416
|
-
|
|
417
|
-
cdk.CfnOutput(
|
|
418
|
-
self,
|
|
419
|
-
"HostedZoneId",
|
|
420
|
-
value=self.hosted_zone.hosted_zone_id,
|
|
421
|
-
export_name=f"{self.deployment.build_resource_name('hosted-zone')}-id"
|
|
422
|
-
)
|
|
423
|
-
|
|
424
|
-
# Hosted Zone Name Servers
|
|
425
|
-
if hasattr(self.hosted_zone, "name_servers") and self.hosted_zone.name_servers:
|
|
426
|
-
cdk.CfnOutput(
|
|
427
|
-
self,
|
|
428
|
-
"NameServers",
|
|
429
|
-
value=",".join(self.hosted_zone.name_servers),
|
|
430
|
-
export_name=f"{self.deployment.build_resource_name('hosted-zone')}-name-servers"
|
|
431
|
-
)
|
|
432
|
-
|
|
433
|
-
# Certificate ARN
|
|
434
|
-
if self.certificate:
|
|
435
|
-
cdk.CfnOutput(
|
|
436
|
-
self,
|
|
437
|
-
"CertificateArn",
|
|
438
|
-
value=self.certificate.certificate_arn,
|
|
439
|
-
export_name=f"{self.deployment.build_resource_name('certificate')}-arn"
|
|
440
|
-
)
|
|
441
|
-
|
|
442
|
-
# Record names
|
|
443
|
-
for name, record in self.records.items():
|
|
444
|
-
cdk.CfnOutput(
|
|
445
|
-
self,
|
|
446
|
-
f"Record-{name}",
|
|
447
|
-
value=name,
|
|
448
|
-
export_name=f"{self.deployment.build_resource_name('record')}-{name}"
|
|
449
|
-
)
|
|
416
|
+
return
|
|
@@ -194,37 +194,7 @@ class SecurityGroupsStack(IStack, VPCProviderMixin):
|
|
|
194
194
|
description="Uptime Robot",
|
|
195
195
|
)
|
|
196
196
|
|
|
197
|
-
|
|
198
|
-
# Outputs (exports)
|
|
199
|
-
# =========================================================
|
|
200
|
-
cdk.CfnOutput(
|
|
201
|
-
self,
|
|
202
|
-
"WebFleetAlbSecurityGroupOut",
|
|
203
|
-
value=alb_sg.ref,
|
|
204
|
-
description="Web Fleet Application Load Balancer Security Group",
|
|
205
|
-
export_name=f"{self.deployment.environment}-{self.workload.name}-WebFleetAlbSecurityGroup",
|
|
206
|
-
)
|
|
207
|
-
cdk.CfnOutput(
|
|
208
|
-
self,
|
|
209
|
-
"WebFleetInstancesSecurityGroupOut",
|
|
210
|
-
value=web_fleet_sg.ref,
|
|
211
|
-
description="Web Fleet Instances Security Group",
|
|
212
|
-
export_name=f"{self.deployment.environment}-{self.workload.name}-WebFleetInstancesSecurityGroup",
|
|
213
|
-
)
|
|
214
|
-
cdk.CfnOutput(
|
|
215
|
-
self,
|
|
216
|
-
"MySqlDbSecurityGroupOut",
|
|
217
|
-
value=mysql_sg.ref,
|
|
218
|
-
description="MySql Security Group",
|
|
219
|
-
export_name=f"{self.deployment.environment}-{self.workload.name}-MySqlDbSecurityGroup",
|
|
220
|
-
)
|
|
221
|
-
cdk.CfnOutput(
|
|
222
|
-
self,
|
|
223
|
-
"WebMonitoringSecurityGroupOut",
|
|
224
|
-
value=monitoring_sg.ref,
|
|
225
|
-
description="Web Fleet Application Load Balancer Security Group",
|
|
226
|
-
export_name=f"{self.deployment.environment}-{self.workload.name}-WebMonitoringSecurityGroup",
|
|
227
|
-
)
|
|
197
|
+
|
|
228
198
|
|
|
229
199
|
# =========================================================
|
|
230
200
|
# SSM Parameter Store Exports
|
|
@@ -337,14 +337,7 @@ class SecurityGroupStack(IStack, VPCProviderMixin, StandardizedSsmMixin):
|
|
|
337
337
|
|
|
338
338
|
def _export_cfn_outputs(self, sg_name: str) -> None:
|
|
339
339
|
"""Add CloudFormation outputs for the Security Group"""
|
|
340
|
-
|
|
341
|
-
# Security Group ID
|
|
342
|
-
cdk.CfnOutput(
|
|
343
|
-
self,
|
|
344
|
-
f"{sg_name}-id",
|
|
345
|
-
value=self.security_group.security_group_id,
|
|
346
|
-
export_name=f"{self.deployment.build_resource_name(sg_name)}-id",
|
|
347
|
-
)
|
|
340
|
+
return
|
|
348
341
|
|
|
349
342
|
def _export_ssm_parameters(self, sg_name: str) -> None:
|
|
350
343
|
"""Add SSM parameters for the Security Group"""
|
|
@@ -131,37 +131,4 @@ class SQSStack(IStack):
|
|
|
131
131
|
|
|
132
132
|
def _add_outputs(self) -> None:
|
|
133
133
|
"""Add CloudFormation outputs for the SQS queues"""
|
|
134
|
-
|
|
135
|
-
# Queue ARN
|
|
136
|
-
cdk.CfnOutput(
|
|
137
|
-
self,
|
|
138
|
-
f"{queue_name}-arn",
|
|
139
|
-
value=queue.queue_arn,
|
|
140
|
-
export_name=f"{self.deployment.build_resource_name(queue_name)}-arn"
|
|
141
|
-
)
|
|
142
|
-
|
|
143
|
-
# Queue URL
|
|
144
|
-
cdk.CfnOutput(
|
|
145
|
-
self,
|
|
146
|
-
f"{queue_name}-url",
|
|
147
|
-
value=queue.queue_url,
|
|
148
|
-
export_name=f"{self.deployment.build_resource_name(queue_name)}-url"
|
|
149
|
-
)
|
|
150
|
-
|
|
151
|
-
# Also add outputs for DLQs
|
|
152
|
-
for dlq_name, dlq in self.dead_letter_queues.items():
|
|
153
|
-
# DLQ ARN
|
|
154
|
-
cdk.CfnOutput(
|
|
155
|
-
self,
|
|
156
|
-
f"{dlq_name}-arn",
|
|
157
|
-
value=dlq.queue_arn,
|
|
158
|
-
export_name=f"{self.deployment.build_resource_name(dlq_name)}-arn"
|
|
159
|
-
)
|
|
160
|
-
|
|
161
|
-
# DLQ URL
|
|
162
|
-
cdk.CfnOutput(
|
|
163
|
-
self,
|
|
164
|
-
f"{dlq_name}-url",
|
|
165
|
-
value=dlq.queue_url,
|
|
166
|
-
export_name=f"{self.deployment.build_resource_name(dlq_name)}-url"
|
|
167
|
-
)
|
|
134
|
+
return
|
|
@@ -241,115 +241,8 @@ class VpcStack(IStack, StandardizedSsmMixin):
|
|
|
241
241
|
|
|
242
242
|
def _add_outputs(self, vpc_name: str) -> None:
|
|
243
243
|
"""Add CloudFormation outputs for the VPC"""
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
# VPC outputs
|
|
248
|
-
# Use workload environment for consistency
|
|
249
|
-
workload_env = self.workload.dictionary.get("environment", self.deployment.environment)
|
|
250
|
-
workload_name = self.workload.dictionary.get("name", self.deployment.workload_name)
|
|
251
|
-
|
|
252
|
-
cdk.CfnOutput(
|
|
253
|
-
self,
|
|
254
|
-
f"{vpc_name}-VpcId",
|
|
255
|
-
value=self.vpc.vpc_id,
|
|
256
|
-
description=f"VPC ID for {vpc_name}",
|
|
257
|
-
export_name=f"{workload_name}-{workload_env}-vpc-id",
|
|
258
|
-
)
|
|
259
|
-
|
|
260
|
-
# Subnet outputs
|
|
261
|
-
public_subnet_ids = [subnet.subnet_id for subnet in self.vpc.public_subnets]
|
|
262
|
-
if public_subnet_ids:
|
|
263
|
-
cdk.CfnOutput(
|
|
264
|
-
self,
|
|
265
|
-
f"{vpc_name}-PublicSubnetIds",
|
|
266
|
-
value=",".join(public_subnet_ids),
|
|
267
|
-
description=f"Public subnet IDs for {vpc_name}",
|
|
268
|
-
export_name=f"{workload_name}-{workload_env}-public-subnet-ids",
|
|
269
|
-
)
|
|
270
|
-
|
|
271
|
-
private_subnet_ids = [subnet.subnet_id for subnet in self.vpc.private_subnets]
|
|
272
|
-
if private_subnet_ids:
|
|
273
|
-
cdk.CfnOutput(
|
|
274
|
-
self,
|
|
275
|
-
f"{vpc_name}-PrivateSubnetIds",
|
|
276
|
-
value=",".join(private_subnet_ids),
|
|
277
|
-
description=f"Private subnet IDs for {vpc_name}",
|
|
278
|
-
export_name=f"{workload_name}-{workload_env}-private-subnet-ids",
|
|
279
|
-
)
|
|
280
|
-
|
|
281
|
-
isolated_subnet_ids = [subnet.subnet_id for subnet in self.vpc.isolated_subnets]
|
|
282
|
-
if isolated_subnet_ids:
|
|
283
|
-
cdk.CfnOutput(
|
|
284
|
-
self,
|
|
285
|
-
f"{vpc_name}-IsolatedSubnetIds",
|
|
286
|
-
value=",".join(isolated_subnet_ids),
|
|
287
|
-
description=f"Isolated subnet IDs for {vpc_name}",
|
|
288
|
-
export_name=f"{workload_name}-{workload_env}-isolated-subnet-ids",
|
|
289
|
-
)
|
|
290
|
-
|
|
291
|
-
# Route table outputs - simplified to avoid route table access issues
|
|
292
|
-
# Skip route table outputs for now as they're causing CDK API issues
|
|
293
|
-
# public_route_table_ids = []
|
|
294
|
-
# if self.vpc.public_subnets:
|
|
295
|
-
# for subnet in self.vpc.public_subnets:
|
|
296
|
-
# # Access route table through the subnet's route table association
|
|
297
|
-
# for association in subnet.node.children:
|
|
298
|
-
# if hasattr(association, 'route_table_id') and association.route_table_id:
|
|
299
|
-
# public_route_table_ids.append(association.route_table_id)
|
|
300
|
-
#
|
|
301
|
-
# if public_route_table_ids:
|
|
302
|
-
# cdk.CfnOutput(
|
|
303
|
-
# self,
|
|
304
|
-
# f"{vpc_name}-PublicRouteTableIds",
|
|
305
|
-
# value=",".join(public_route_table_ids),
|
|
306
|
-
# description=f"Public route table IDs for {vpc_name}",
|
|
307
|
-
# export_name=f"{self.deployment.workload_name}-{self.deployment.environment}-public-route-table-ids",
|
|
308
|
-
# )
|
|
309
|
-
#
|
|
310
|
-
# private_route_table_ids = []
|
|
311
|
-
# if self.vpc.private_subnets:
|
|
312
|
-
# for subnet in self.vpc.private_subnets:
|
|
313
|
-
# # Access route table through the subnet's route table association
|
|
314
|
-
# for association in subnet.node.children:
|
|
315
|
-
# if hasattr(association, 'route_table_id') and association.route_table_id:
|
|
316
|
-
# private_route_table_ids.append(association.route_table_id)
|
|
317
|
-
#
|
|
318
|
-
# if private_route_table_ids:
|
|
319
|
-
# cdk.CfnOutput(
|
|
320
|
-
# self,
|
|
321
|
-
# f"{vpc_name}-PrivateRouteTableIds",
|
|
322
|
-
# value=",".join(private_route_table_ids),
|
|
323
|
-
# description=f"Private route table IDs for {vpc_name}",
|
|
324
|
-
# export_name=f"{self.deployment.workload_name}-{self.deployment.environment}-private-route-table-ids",
|
|
325
|
-
# )
|
|
326
|
-
|
|
327
|
-
# Internet Gateway output
|
|
328
|
-
if hasattr(self.vpc, 'internet_gateway_id') and self.vpc.internet_gateway_id:
|
|
329
|
-
cdk.CfnOutput(
|
|
330
|
-
self,
|
|
331
|
-
f"{vpc_name}-InternetGatewayId",
|
|
332
|
-
value=self.vpc.internet_gateway_id,
|
|
333
|
-
description=f"Internet Gateway ID for {vpc_name}",
|
|
334
|
-
export_name=f"{workload_name}-{workload_env}-internet-gateway-id",
|
|
335
|
-
)
|
|
336
|
-
|
|
337
|
-
# NAT Gateway outputs - simplified to avoid None values
|
|
338
|
-
nat_gateway_ids = []
|
|
339
|
-
for subnet in self.vpc.public_subnets:
|
|
340
|
-
if hasattr(subnet, 'node') and subnet.node:
|
|
341
|
-
for child in subnet.node.children:
|
|
342
|
-
if hasattr(child, 'nat_gateway_id') and child.nat_gateway_id:
|
|
343
|
-
nat_gateway_ids.append(child.nat_gateway_id)
|
|
344
|
-
|
|
345
|
-
if nat_gateway_ids:
|
|
346
|
-
cdk.CfnOutput(
|
|
347
|
-
self,
|
|
348
|
-
f"{vpc_name}-NatGatewayIds",
|
|
349
|
-
value=",".join(nat_gateway_ids),
|
|
350
|
-
description=f"NAT Gateway IDs for {vpc_name}",
|
|
351
|
-
export_name=f"{workload_name}-{workload_env}-nat-gateway-ids",
|
|
352
|
-
)
|
|
244
|
+
return
|
|
245
|
+
|
|
353
246
|
|
|
354
247
|
def _export_ssm_parameters(self) -> None:
|
|
355
248
|
"""Export SSM parameters using standardized approach"""
|
cdk_factory/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.
|
|
1
|
+
__version__ = "0.19.0"
|
|
@@ -2,7 +2,7 @@ cdk_factory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
2
2
|
cdk_factory/app.py,sha256=RnX0-pwdTAPAdKJK_j13Zl8anf9zYKBwboR0KA8K8xM,10346
|
|
3
3
|
cdk_factory/cdk.json,sha256=SKZKhJ2PBpFH78j-F8S3VDYW-lf76--Q2I3ON-ZIQfw,3106
|
|
4
4
|
cdk_factory/cli.py,sha256=FGbCTS5dYCNsfp-etshzvFlGDCjC28r6rtzYbe7KoHI,6407
|
|
5
|
-
cdk_factory/version.py,sha256=
|
|
5
|
+
cdk_factory/version.py,sha256=IPTpw_ZRkJdPKjp9ROF6sfDyeEv2IvChuvliVauZWvE,23
|
|
6
6
|
cdk_factory/builds/README.md,sha256=9BBWd7bXpyKdMU_g2UljhQwrC9i5O_Tvkb6oPvndoZk,90
|
|
7
7
|
cdk_factory/commands/command_loader.py,sha256=QbLquuP_AdxtlxlDy-2IWCQ6D-7qa58aphnDPtp_uTs,3744
|
|
8
8
|
cdk_factory/configurations/base_config.py,sha256=eJ3Pl3GWk1jVr_bYQaaWlw4_-ZiFGaiXllI_fOOX1i0,9323
|
|
@@ -83,7 +83,7 @@ cdk_factory/stack/stack_modules.py,sha256=kgEK-j0smZPozVwTCfM1g1V17EyTBT0TXAQZq4
|
|
|
83
83
|
cdk_factory/stack_library/__init__.py,sha256=_v4kz9EYAjox6strrTK_4fb9GloJ2Kyhf63VRPivl2U,638
|
|
84
84
|
cdk_factory/stack_library/stack_base.py,sha256=Cu3qeqPQf33QaaXoxk_EaziNCIXcyspOo5AU3eX_wyM,5140
|
|
85
85
|
cdk_factory/stack_library/acm/__init__.py,sha256=4FNRLykblcKZvq_wieYwvv9N_jgrZnJ7ECH9xKh-0Ls,81
|
|
86
|
-
cdk_factory/stack_library/acm/acm_stack.py,sha256=
|
|
86
|
+
cdk_factory/stack_library/acm/acm_stack.py,sha256=LW4QgzcMDvtSpqwfc4ykgpzDGvXe4udvWVE_DtBN4Zg,5414
|
|
87
87
|
cdk_factory/stack_library/api_gateway/api_gateway_stack.py,sha256=PvLdGvcopGpLP0FwpfUcfXNiTIfYLTXqrG-TniE38yc,39643
|
|
88
88
|
cdk_factory/stack_library/auto_scaling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
89
89
|
cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py,sha256=G8OOgTAfsTDVArvuDfzuNpuGHzqz8kREHnnkMtjulAQ,25334
|
|
@@ -92,32 +92,32 @@ cdk_factory/stack_library/buckets/README.md,sha256=XkK3UNVtRLE7NtUvbhCOBBYUYi8hl
|
|
|
92
92
|
cdk_factory/stack_library/buckets/bucket_stack.py,sha256=SLoZqSffAqmeBBEVUQg54D_8Ad5UKdkjEAmKAVgAqQo,1778
|
|
93
93
|
cdk_factory/stack_library/cloudfront/__init__.py,sha256=Zfx50q4xIJ4ZEoVIzUBDTKbRE9DKDM6iyVIFhtQXvww,153
|
|
94
94
|
cdk_factory/stack_library/cloudfront/cloudfront_stack.py,sha256=yuNs_W5b85JSXXv6_17OAD-e-wUitDPrRlZV4bxjChU,31459
|
|
95
|
-
cdk_factory/stack_library/code_artifact/code_artifact_stack.py,sha256=
|
|
95
|
+
cdk_factory/stack_library/code_artifact/code_artifact_stack.py,sha256=o86cmC_ZV82z-K7DoAR0u1nAieoTi-vxRF01tyJn-9M,5297
|
|
96
96
|
cdk_factory/stack_library/cognito/cognito_stack.py,sha256=3tjKCNcIwXZn7fd4EDQdY6H9m6CnZohI4uTQ4TpacRQ,25327
|
|
97
97
|
cdk_factory/stack_library/dynamodb/dynamodb_stack.py,sha256=-_Ij1zXIxUuZIWgdevam_1vD3LEJ6pFs9U0hmw0KwIw,6743
|
|
98
98
|
cdk_factory/stack_library/ecr/README.md,sha256=xw2wPx9WN03Y4BBwqvbi9lAFGNyaD1FUNpqxVJX14Oo,179
|
|
99
99
|
cdk_factory/stack_library/ecr/ecr_stack.py,sha256=KLbd5WN5-ZiojsS5wJ4PX-tIL0cCylCSvXjO6sVrgWY,2102
|
|
100
100
|
cdk_factory/stack_library/ecs/__init__.py,sha256=o5vGDtD_h-gVXb3-Ysr8xUNpEcMsnmMVgZv2Pupcdow,219
|
|
101
101
|
cdk_factory/stack_library/ecs/ecs_cluster_stack.py,sha256=sAPTLU5CAwMoLTW_pNy_cd0OtVkfDR7IxxsSq5AE0yo,12091
|
|
102
|
-
cdk_factory/stack_library/ecs/ecs_service_stack.py,sha256=
|
|
102
|
+
cdk_factory/stack_library/ecs/ecs_service_stack.py,sha256=oZdFfCPrLJpNwERCj1vr1pGq1AExOE6Tt4lwdTPQfaw,27049
|
|
103
103
|
cdk_factory/stack_library/lambda_edge/__init__.py,sha256=ByBJ_CWdc4UtTmFBZH-6pzBMNkjkdtE65AmnB0Fs6lM,156
|
|
104
|
-
cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py,sha256=
|
|
104
|
+
cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py,sha256=OyiODGPu0_U8t3DQjggQ4VdHx-1ZFAoNwXoG_ZUR2pw,15637
|
|
105
105
|
cdk_factory/stack_library/load_balancer/__init__.py,sha256=wZpKw2OecLJGdF5mPayCYAEhu2H3c2gJFFIxwXftGDU,52
|
|
106
|
-
cdk_factory/stack_library/load_balancer/load_balancer_stack.py,sha256=
|
|
106
|
+
cdk_factory/stack_library/load_balancer/load_balancer_stack.py,sha256=ApW5q3SAvSJtiK0RInNljmubqXqKZU5QBAaUoeIW-pM,28287
|
|
107
107
|
cdk_factory/stack_library/monitoring/__init__.py,sha256=k1G_KDx47Aw0UugaL99PN_TKlyLK4nkJVApCaAK7GJg,153
|
|
108
108
|
cdk_factory/stack_library/monitoring/monitoring_stack.py,sha256=N_1YvEXE7fboH_S3kv_dSKZsufxMuPdFMjGzlNFpuSo,19283
|
|
109
109
|
cdk_factory/stack_library/rds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
110
|
-
cdk_factory/stack_library/rds/rds_stack.py,sha256=
|
|
110
|
+
cdk_factory/stack_library/rds/rds_stack.py,sha256=VToW-uFKAfilyhN4T8-TXaFW8f_VuXEIuUoBHvDN0Ns,14398
|
|
111
111
|
cdk_factory/stack_library/route53/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
112
|
-
cdk_factory/stack_library/route53/route53_stack.py,sha256=
|
|
112
|
+
cdk_factory/stack_library/route53/route53_stack.py,sha256=taREOw-s7i1NZcdR-za1lKkj-Cj8UPmr4BO5txS18fI,18348
|
|
113
113
|
cdk_factory/stack_library/rum/__init__.py,sha256=gUrWQdzd4rZ2J0YzAQC8PsEGAS7QgyYjB2ZCUKWasy4,90
|
|
114
114
|
cdk_factory/stack_library/rum/rum_stack.py,sha256=c67m0Jbyx8hx9TTx9TBBhZMDqtSK7QCqKx_Ec1t8LgY,14067
|
|
115
115
|
cdk_factory/stack_library/security_group/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
116
|
-
cdk_factory/stack_library/security_group/security_group_full_stack.py,sha256=
|
|
117
|
-
cdk_factory/stack_library/security_group/security_group_stack.py,sha256=
|
|
118
|
-
cdk_factory/stack_library/simple_queue_service/sqs_stack.py,sha256=
|
|
116
|
+
cdk_factory/stack_library/security_group/security_group_full_stack.py,sha256=Y9JYD0QpKNe11fuCPjWlV1rucX1DMm7bs8Eu4t4XDqw,12204
|
|
117
|
+
cdk_factory/stack_library/security_group/security_group_stack.py,sha256=uthk_MX2gNfA6a7gR7PjEfjov4WgTTtJ09G0cJOFWko,14168
|
|
118
|
+
cdk_factory/stack_library/simple_queue_service/sqs_stack.py,sha256=HSJgWo4Wl6nQ5rJFQXOkDTyd_6PuHhx5VyaZLVvmYM8,4891
|
|
119
119
|
cdk_factory/stack_library/vpc/__init__.py,sha256=7pIqP97Gf2AJbv9Ebp1WbQGHYhgEbWJ52L1MzeXBybA,42
|
|
120
|
-
cdk_factory/stack_library/vpc/vpc_stack.py,sha256=
|
|
120
|
+
cdk_factory/stack_library/vpc/vpc_stack.py,sha256=8uFyPIhAu-4A3iclTFlOiJrEZuYu67gI5UtiDSzmFF4,14461
|
|
121
121
|
cdk_factory/stack_library/websites/static_website_stack.py,sha256=jnB-u6x37w2tsheG7WrKBY50WIx1AnCKoVh7mbT4rZU,11254
|
|
122
122
|
cdk_factory/stages/websites/static_website_stage.py,sha256=X4fpKXkhb0zIbSHx3QyddBhVSLBryb1vf1Cg2fMTqog,755
|
|
123
123
|
cdk_factory/templates/README.md,sha256=ATBEjG6beYvbEAdLtZ_8xnxgFD5X0cgZoI_6pToqH90,2679
|
|
@@ -136,8 +136,8 @@ cdk_factory/utilities/os_execute.py,sha256=5Op0LY_8Y-pUm04y1k8MTpNrmQvcLmQHPQITE
|
|
|
136
136
|
cdk_factory/utils/api_gateway_utilities.py,sha256=If7Xu5s_UxmuV-kL3JkXxPLBdSVUKoLtohm0IUFoiV8,4378
|
|
137
137
|
cdk_factory/validation/config_validator.py,sha256=Pb0TkLiPFzUplBOgMorhRCVm08vEzZhRU5xXCDTa5CA,17602
|
|
138
138
|
cdk_factory/workload/workload_factory.py,sha256=yDI3cRhVI5ELNDcJPLpk9UY54Uind1xQoV3spzT4z7E,6068
|
|
139
|
-
cdk_factory-0.
|
|
140
|
-
cdk_factory-0.
|
|
141
|
-
cdk_factory-0.
|
|
142
|
-
cdk_factory-0.
|
|
143
|
-
cdk_factory-0.
|
|
139
|
+
cdk_factory-0.19.0.dist-info/METADATA,sha256=8tnTfkIobNZDfAHuuRv-R2Dz48ZsAxwaFafrTHEk__0,2451
|
|
140
|
+
cdk_factory-0.19.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
141
|
+
cdk_factory-0.19.0.dist-info/entry_points.txt,sha256=S1DPe0ORcdiwEALMN_WIo3UQrW_g4YdQCLEsc_b0Swg,53
|
|
142
|
+
cdk_factory-0.19.0.dist-info/licenses/LICENSE,sha256=NOtdOeLwg2il_XBJdXUPFPX8JlV4dqTdDGAd2-khxT8,1066
|
|
143
|
+
cdk_factory-0.19.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|