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