cdk-factory 0.16.6__tar.gz → 0.16.8__tar.gz

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.

Files changed (164) hide show
  1. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/PKG-INFO +1 -1
  2. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/pyproject.toml +1 -1
  3. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py +70 -3
  4. cdk_factory-0.16.8/src/cdk_factory/version.py +1 -0
  5. cdk_factory-0.16.6/src/cdk_factory/version.py +0 -1
  6. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/.gitignore +0 -0
  7. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/.windsurfrules +0 -0
  8. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/LICENSE +0 -0
  9. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/README.md +0 -0
  10. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/REFACTORING_PLAN.md +0 -0
  11. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/archive/README.md +0 -0
  12. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/archive/migrate_to_enhanced_ssm.py +0 -0
  13. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/examples/json-imports/README.md +0 -0
  14. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/examples/separate-api-gateway/README.md +0 -0
  15. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/examples/separate-api-gateway/api-gateway-stack.json +0 -0
  16. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/examples/separate-api-gateway/config.json +0 -0
  17. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/examples/separate-api-gateway/lambda-stack.json +0 -0
  18. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/mypy.ini +0 -0
  19. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/publish_to_pypi.py +0 -0
  20. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/publish_to_pypi.sh +0 -0
  21. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/pysetup.py +0 -0
  22. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/pysetup.sh +0 -0
  23. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/requirements.dev.txt +0 -0
  24. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/requirements.tests.txt +0 -0
  25. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/requirements.txt +0 -0
  26. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/run-checks.sh +0 -0
  27. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/run-tests-clean-venv.sh +0 -0
  28. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/run-tests.sh +0 -0
  29. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/scripts/cloudfront-cleanup.sh +0 -0
  30. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/__init__.py +0 -0
  31. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/app.py +0 -0
  32. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/builds/README.md +0 -0
  33. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/cdk.json +0 -0
  34. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/cli.py +0 -0
  35. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/commands/command_loader.py +0 -0
  36. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/base_config.py +0 -0
  37. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/cdk_config.py +0 -0
  38. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/deployment.py +0 -0
  39. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/deployment_wave.py +0 -0
  40. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/devops.py +0 -0
  41. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/enhanced_base_config.py +0 -0
  42. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/enhanced_ssm_config.py +0 -0
  43. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/management.py +0 -0
  44. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/pipeline.py +0 -0
  45. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/pipeline_stage.py +0 -0
  46. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/_resources.py +0 -0
  47. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/acm.py +0 -0
  48. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/api_gateway.py +0 -0
  49. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/apigateway_route_config.py +0 -0
  50. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/auto_scaling.py +0 -0
  51. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/cloudfront.py +0 -0
  52. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/cloudwatch_widget.py +0 -0
  53. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/code_artifact.py +0 -0
  54. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/code_artifact_login.py +0 -0
  55. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/code_repository.py +0 -0
  56. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/cognito.py +0 -0
  57. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/docker.py +0 -0
  58. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/dynamodb.py +0 -0
  59. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/ecr.py +0 -0
  60. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/ecs_service.py +0 -0
  61. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/exisiting.py +0 -0
  62. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/lambda_edge.py +0 -0
  63. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/lambda_function.py +0 -0
  64. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/lambda_layers.py +0 -0
  65. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/lambda_triggers.py +0 -0
  66. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/load_balancer.py +0 -0
  67. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/monitoring.py +0 -0
  68. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/rds.py +0 -0
  69. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/resource_mapping.py +0 -0
  70. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/resource_naming.py +0 -0
  71. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/resource_types.py +0 -0
  72. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/route53.py +0 -0
  73. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/route53_hosted_zone.py +0 -0
  74. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/rum.py +0 -0
  75. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/s3.py +0 -0
  76. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/security_group.py +0 -0
  77. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/security_group_full_stack.py +0 -0
  78. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/sqs.py +0 -0
  79. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/resources/vpc.py +0 -0
  80. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/stack.py +0 -0
  81. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/configurations/workload.py +0 -0
  82. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/constructs/cloudfront/cloudfront_distribution_construct.py +0 -0
  83. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/constructs/ecr/ecr_construct.py +0 -0
  84. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/constructs/lambdas/lambda_function_construct.py +0 -0
  85. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/constructs/lambdas/lambda_function_docker_construct.py +0 -0
  86. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/constructs/lambdas/lambda_function_role_construct.py +0 -0
  87. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py +0 -0
  88. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/constructs/lambdas/policies/policy_statements.py +0 -0
  89. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/constructs/s3_buckets/s3_bucket_construct.py +0 -0
  90. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_destination_construct.py +0 -0
  91. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_source_construct.py +0 -0
  92. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py +0 -0
  93. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/interfaces/enhanced_ssm_parameter_mixin.py +0 -0
  94. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/interfaces/istack.py +0 -0
  95. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/interfaces/live_ssm_resolver.py +0 -0
  96. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/interfaces/networked_stack_mixin.py +0 -0
  97. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/interfaces/ssm_parameter_mixin.py +0 -0
  98. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/interfaces/vpc_provider_mixin.py +0 -0
  99. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/lambdas/edge/ip_gate/handler.py +0 -0
  100. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/lambdas/health_handler.py +0 -0
  101. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/pipeline/path_utils.py +0 -0
  102. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/pipeline/pipeline_factory.py +0 -0
  103. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/pipeline/security/policies.py +0 -0
  104. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/pipeline/security/roles.py +0 -0
  105. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/pipeline/stage.py +0 -0
  106. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack/istack.py +0 -0
  107. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack/stack_factory.py +0 -0
  108. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack/stack_module_loader.py +0 -0
  109. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack/stack_module_registry.py +0 -0
  110. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack/stack_modules.py +0 -0
  111. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/__init__.py +0 -0
  112. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/acm/__init__.py +0 -0
  113. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/acm/acm_stack.py +0 -0
  114. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/api_gateway/api_gateway_stack.py +0 -0
  115. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/auto_scaling/__init__.py +0 -0
  116. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py +0 -0
  117. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/buckets/README.md +0 -0
  118. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/buckets/bucket_stack.py +0 -0
  119. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/cloudfront/__init__.py +0 -0
  120. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/cloudfront/cloudfront_stack.py +0 -0
  121. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/code_artifact/code_artifact_stack.py +0 -0
  122. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/cognito/cognito_stack.py +0 -0
  123. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py +0 -0
  124. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/ecr/README.md +0 -0
  125. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/ecr/ecr_stack.py +0 -0
  126. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/ecs/__init__.py +0 -0
  127. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py +0 -0
  128. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/lambda_edge/__init__.py +0 -0
  129. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +0 -0
  130. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/load_balancer/__init__.py +0 -0
  131. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/load_balancer/load_balancer_stack.py +0 -0
  132. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/monitoring/__init__.py +0 -0
  133. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/monitoring/monitoring_stack.py +0 -0
  134. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/rds/__init__.py +0 -0
  135. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/rds/rds_stack.py +0 -0
  136. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/route53/__init__.py +0 -0
  137. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/route53/route53_stack.py +0 -0
  138. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/rum/__init__.py +0 -0
  139. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/rum/rum_stack.py +0 -0
  140. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/security_group/__init__.py +0 -0
  141. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/security_group/security_group_full_stack.py +0 -0
  142. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/security_group/security_group_stack.py +0 -0
  143. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/simple_queue_service/sqs_stack.py +0 -0
  144. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/stack_base.py +0 -0
  145. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/vpc/__init__.py +0 -0
  146. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/vpc/vpc_stack.py +0 -0
  147. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stack_library/websites/static_website_stack.py +0 -0
  148. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/stages/websites/static_website_stage.py +0 -0
  149. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/templates/README.md +0 -0
  150. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/templates/app.py.template +0 -0
  151. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/templates/cdk.json.template +0 -0
  152. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/utilities/api_gateway_integration_utility.py +0 -0
  153. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/utilities/commandline_args.py +0 -0
  154. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/utilities/configuration_loader.py +0 -0
  155. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/utilities/docker_utilities.py +0 -0
  156. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/utilities/environment_services.py +0 -0
  157. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/utilities/file_operations.py +0 -0
  158. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/utilities/git_utilities.py +0 -0
  159. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/utilities/json_loading_utility.py +0 -0
  160. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/utilities/lambda_function_utilities.py +0 -0
  161. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/utilities/os_execute.py +0 -0
  162. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/utils/api_gateway_utilities.py +0 -0
  163. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/cdk_factory/workload/workload_factory.py +0 -0
  164. {cdk_factory-0.16.6 → cdk_factory-0.16.8}/src/handlers/test/handler.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cdk_factory
3
- Version: 0.16.6
3
+ Version: 0.16.8
4
4
  Summary: CDK Factory. A QuickStarter and best practices setup for CDK projects
5
5
  Author-email: Eric Wilson <eric.wilson@geekcafe.com>
6
6
  License: MIT License
@@ -33,7 +33,7 @@ markers = [
33
33
  [project]
34
34
 
35
35
  name = "cdk_factory"
36
- version = "0.16.6"
36
+ version = "0.16.8"
37
37
  authors = [
38
38
  { name="Eric Wilson", email="eric.wilson@geekcafe.com" }
39
39
  ]
@@ -12,6 +12,7 @@ from aws_cdk import aws_autoscaling as autoscaling
12
12
  from aws_cdk import aws_cloudwatch as cloudwatch
13
13
  from aws_cdk import aws_iam as iam
14
14
  from aws_cdk import aws_ssm as ssm
15
+ from aws_cdk import aws_ecs as ecs
15
16
  from aws_cdk import Duration, Stack
16
17
  from aws_lambda_powertools import Logger
17
18
  from constructs import Construct
@@ -49,6 +50,8 @@ class AutoScalingStack(IStack):
49
50
  self.launch_template = None
50
51
  self.instance_role = None
51
52
  self.user_data = None
53
+ self.ecs_cluster = None
54
+ self._vpc = None
52
55
 
53
56
  # SSM imports storage is now handled by the enhanced SsmParameterMixin via IStack
54
57
 
@@ -92,6 +95,9 @@ class AutoScalingStack(IStack):
92
95
  # Create launch template
93
96
  self.launch_template = self._create_launch_template(asg_name)
94
97
 
98
+ # Create ECS cluster if ECS configuration is detected
99
+ self._create_ecs_cluster_if_needed(asg_name)
100
+
95
101
  # Create Auto Scaling Group
96
102
  self.auto_scaling_group = self._create_auto_scaling_group(asg_name)
97
103
 
@@ -110,6 +116,10 @@ class AutoScalingStack(IStack):
110
116
  if not self.asg_config:
111
117
  raise AttributeError("AutoScalingStack not properly initialized. Call build() first.")
112
118
 
119
+ # Return cached VPC if already created
120
+ if self._vpc:
121
+ return self._vpc
122
+
113
123
  # Check SSM imported values first using enhanced mixin
114
124
  if self.has_ssm_import("vpc_id"):
115
125
  vpc_id = self.get_ssm_imported_value("vpc_id")
@@ -138,11 +148,14 @@ class AutoScalingStack(IStack):
138
148
  vpc_attrs["public_subnet_ids"] = ["subnet-dummy1", "subnet-dummy2"]
139
149
 
140
150
  # Use from_vpc_attributes() for SSM tokens
141
- return ec2.Vpc.from_vpc_attributes(self, "VPC", **vpc_attrs)
151
+ self._vpc = ec2.Vpc.from_vpc_attributes(self, f"{self.stack_name}-VPC", **vpc_attrs)
152
+ return self._vpc
142
153
  elif self.asg_config.vpc_id:
143
- return ec2.Vpc.from_lookup(self, "VPC", vpc_id=self.asg_config.vpc_id)
154
+ self._vpc = ec2.Vpc.from_lookup(self, f"{self.stack_name}-VPC", vpc_id=self.asg_config.vpc_id)
155
+ return self._vpc
144
156
  elif self.workload.vpc_id:
145
- return ec2.Vpc.from_lookup(self, "VPC", vpc_id=self.workload.vpc_id)
157
+ self._vpc = ec2.Vpc.from_lookup(self, f"{self.stack_name}-VPC", vpc_id=self.workload.vpc_id)
158
+ return self._vpc
146
159
  else:
147
160
  # Use default VPC if not provided
148
161
  raise ValueError(
@@ -605,6 +618,60 @@ class AutoScalingStack(IStack):
605
618
  # Scheduled action implementation would go here
606
619
  pass
607
620
 
621
+ def _create_ecs_cluster_if_needed(self, asg_name: str) -> None:
622
+ """Create ECS cluster if ECS configuration is detected"""
623
+ # Check if this is an ECS configuration by looking for ECS-related patterns
624
+ is_ecs_config = (
625
+ # Check if ECS cluster name is in user data
626
+ (self.user_data and "ECS_CLUSTER=" in str(self.user_data)) or
627
+ # Check if ECS managed policy is attached
628
+ any("AmazonEC2ContainerServiceforEC2Role" in policy for policy in self.asg_config.managed_policies) or
629
+ # Check for explicit ECS configuration
630
+ self.stack_config.dictionary.get("auto_scaling", {}).get("enable_ecs_cluster", False)
631
+ )
632
+
633
+ if not is_ecs_config:
634
+ logger.debug("No ECS configuration detected, skipping cluster creation")
635
+ return
636
+
637
+ # Extract cluster name from user data or use default
638
+ cluster_name = f"{self.deployment.build_resource_name('cluster')}"
639
+
640
+ # Try to extract cluster name from user data if available
641
+ if self.user_data:
642
+ user_data_str = str(self.user_data)
643
+ for line in user_data_str.split('\n'):
644
+ if 'ECS_CLUSTER=' in line:
645
+ cluster_name = line.split('ECS_CLUSTER=')[1].strip()
646
+ break
647
+
648
+ logger.info(f"Creating ECS cluster: {cluster_name}")
649
+
650
+ # Create ECS cluster
651
+ self.ecs_cluster = ecs.Cluster(
652
+ self,
653
+ "ECSCluster",
654
+ cluster_name=cluster_name,
655
+ vpc=self.vpc,
656
+ container_insights=True
657
+ )
658
+
659
+ # Export cluster name
660
+ cdk.CfnOutput(
661
+ self,
662
+ f"{cluster_name}-name",
663
+ value=self.ecs_cluster.cluster_name,
664
+ export_name=f"{self.deployment.build_resource_name(cluster_name)}-name",
665
+ )
666
+
667
+ # Export cluster ARN
668
+ cdk.CfnOutput(
669
+ self,
670
+ f"{cluster_name}-arn",
671
+ value=self.ecs_cluster.cluster_arn,
672
+ export_name=f"{self.deployment.build_resource_name(cluster_name)}-arn",
673
+ )
674
+
608
675
  def _export_resources(self, asg_name: str) -> None:
609
676
  """Export stack resources to SSM and CloudFormation outputs"""
610
677
  # Export ASG name
@@ -0,0 +1 @@
1
+ __version__ = "0.16.8"
@@ -1 +0,0 @@
1
- __version__ = "0.16.6"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes