cdk-factory 0.18.0__py3-none-any.whl → 0.18.3__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/configurations/resources/ecs_cluster.py +5 -0
- cdk_factory/stack_library/ecs/ecs_cluster_stack_standardized.py +33 -5
- cdk_factory/version.py +1 -1
- {cdk_factory-0.18.0.dist-info → cdk_factory-0.18.3.dist-info}/METADATA +1 -1
- {cdk_factory-0.18.0.dist-info → cdk_factory-0.18.3.dist-info}/RECORD +8 -8
- {cdk_factory-0.18.0.dist-info → cdk_factory-0.18.3.dist-info}/WHEEL +0 -0
- {cdk_factory-0.18.0.dist-info → cdk_factory-0.18.3.dist-info}/entry_points.txt +0 -0
- {cdk_factory-0.18.0.dist-info → cdk_factory-0.18.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -18,6 +18,11 @@ class EcsClusterConfig:
|
|
|
18
18
|
def __init__(self, config: Dict[str, Any]) -> None:
|
|
19
19
|
self._config = config or {}
|
|
20
20
|
|
|
21
|
+
@property
|
|
22
|
+
def dictionary(self) -> Dict[str, Any]:
|
|
23
|
+
"""Access to the underlying configuration dictionary (for compatibility with SSM mixin)"""
|
|
24
|
+
return self._config
|
|
25
|
+
|
|
21
26
|
@property
|
|
22
27
|
def name(self) -> str:
|
|
23
28
|
"""Name of the ECS cluster. Supports template variables like {{WORKLOAD_NAME}}-{{ENVIRONMENT}}-cluster"""
|
|
@@ -118,7 +118,9 @@ class EcsClusterStack(IStack, VPCProviderMixin, StandardizedSsmMixin):
|
|
|
118
118
|
self._export_cluster_info()
|
|
119
119
|
|
|
120
120
|
# Export SSM parameters
|
|
121
|
+
logger.info("Starting SSM parameter export for ECS cluster")
|
|
121
122
|
self._export_ssm_parameters()
|
|
123
|
+
logger.info("Completed SSM parameter export for ECS cluster")
|
|
122
124
|
|
|
123
125
|
logger.info(f"ECS Cluster stack created: {cluster_name}")
|
|
124
126
|
|
|
@@ -174,6 +176,8 @@ class EcsClusterStack(IStack, VPCProviderMixin, StandardizedSsmMixin):
|
|
|
174
176
|
|
|
175
177
|
def _create_iam_roles(self):
|
|
176
178
|
"""Create IAM roles for the ECS cluster if configured."""
|
|
179
|
+
logger.info(f"create_instance_role setting: {self.ecs_config.create_instance_role}")
|
|
180
|
+
|
|
177
181
|
if not self.ecs_config.create_instance_role:
|
|
178
182
|
logger.info("Skipping instance role creation (disabled in config)")
|
|
179
183
|
return
|
|
@@ -193,14 +197,18 @@ class EcsClusterStack(IStack, VPCProviderMixin, StandardizedSsmMixin):
|
|
|
193
197
|
role_name=f"{self.ecs_config.name}-ecs-instance-role",
|
|
194
198
|
)
|
|
195
199
|
|
|
200
|
+
logger.info(f"Created ECS instance role: {self.instance_role.role_name}")
|
|
201
|
+
|
|
196
202
|
# Create instance profile
|
|
197
203
|
self.instance_profile = iam.CfnInstanceProfile(
|
|
198
204
|
self,
|
|
199
205
|
"ECSInstanceProfile",
|
|
200
|
-
roles=[self.instance_role.role_name],
|
|
201
206
|
instance_profile_name=f"{self.ecs_config.name}-ecs-instance-profile",
|
|
207
|
+
roles=[self.instance_role.role_name],
|
|
202
208
|
)
|
|
203
209
|
|
|
210
|
+
logger.info(f"Created ECS instance profile: {self.instance_profile.instance_profile_name}")
|
|
211
|
+
|
|
204
212
|
logger.info("ECS instance role and profile created")
|
|
205
213
|
|
|
206
214
|
def _export_cluster_info(self):
|
|
@@ -254,31 +262,51 @@ class EcsClusterStack(IStack, VPCProviderMixin, StandardizedSsmMixin):
|
|
|
254
262
|
|
|
255
263
|
def _export_ssm_parameters(self) -> None:
|
|
256
264
|
"""Export SSM parameters using standardized approach"""
|
|
265
|
+
logger.info("=== Starting SSM Parameter Export ===")
|
|
266
|
+
|
|
257
267
|
if not self.ecs_cluster:
|
|
258
268
|
logger.warning("No ECS cluster to export")
|
|
259
269
|
return
|
|
260
270
|
|
|
271
|
+
logger.info(f"ECS cluster found: {self.ecs_cluster.cluster_name}")
|
|
272
|
+
logger.info(f"SSM exports configured: {self.ssm_config.get('exports', {})}")
|
|
273
|
+
|
|
261
274
|
# Prepare resource values for export
|
|
262
275
|
resource_values = {
|
|
263
276
|
"cluster_name": self.ecs_cluster.cluster_name,
|
|
264
277
|
"cluster_arn": self.ecs_cluster.cluster_arn,
|
|
265
|
-
"instance_role_arn": self.instance_role.role_arn,
|
|
266
278
|
}
|
|
267
279
|
|
|
280
|
+
# Add instance role ARN if created
|
|
281
|
+
if self.instance_role:
|
|
282
|
+
resource_values["instance_role_arn"] = self.instance_role.role_arn
|
|
283
|
+
logger.info(f"Instance role ARN added: {self.instance_role.role_name}")
|
|
284
|
+
else:
|
|
285
|
+
logger.info("No instance role to export")
|
|
286
|
+
|
|
268
287
|
# Add security group ID if available
|
|
269
288
|
if hasattr(self.ecs_cluster, 'connections') and self.ecs_cluster.connections:
|
|
270
289
|
security_groups = self.ecs_cluster.connections.security_groups
|
|
271
290
|
if security_groups:
|
|
272
291
|
resource_values["security_group_id"] = security_groups[0].security_group_id
|
|
292
|
+
logger.info(f"Security group ID added: {security_groups[0].security_group_id}")
|
|
273
293
|
|
|
274
294
|
# Add instance profile ARN if created
|
|
275
295
|
if self.instance_profile:
|
|
276
296
|
resource_values["instance_profile_arn"] = self.instance_profile.attr_arn
|
|
297
|
+
logger.info(f"Instance profile ARN added: {self.instance_profile.instance_profile_name}")
|
|
277
298
|
|
|
278
299
|
# Export using standardized SSM mixin
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
300
|
+
logger.info(f"Resource values available for export: {list(resource_values.keys())}")
|
|
301
|
+
for key, value in resource_values.items():
|
|
302
|
+
logger.info(f" {key}: {value}")
|
|
303
|
+
|
|
304
|
+
try:
|
|
305
|
+
exported_params = self.export_standardized_ssm_parameters(resource_values)
|
|
306
|
+
logger.info(f"Successfully exported SSM parameters: {exported_params}")
|
|
307
|
+
except Exception as e:
|
|
308
|
+
logger.error(f"Failed to export SSM parameters: {str(e)}")
|
|
309
|
+
raise
|
|
282
310
|
|
|
283
311
|
# Backward compatibility methods
|
|
284
312
|
def process_ssm_imports(self, config: Any, deployment: DeploymentConfig, resource_type: str = "resource") -> None:
|
cdk_factory/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.18.
|
|
1
|
+
__version__ = "0.18.3"
|
|
@@ -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=gFZ2jBuhpo2tEeGzLqhbiYFDJrpaFW_VBCOIhFFdh2I,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
|
|
@@ -31,7 +31,7 @@ cdk_factory/configurations/resources/cognito.py,sha256=udX2AJ1ITLhy4f1XiJQwrva6F
|
|
|
31
31
|
cdk_factory/configurations/resources/docker.py,sha256=hUbuxkuhcQu9LnLX7I8_57eTmHefEAGVnOHO37MkqC4,2166
|
|
32
32
|
cdk_factory/configurations/resources/dynamodb.py,sha256=HsZMOaRwfuNPwKIzokeeE3f5zAQLTB5hRb_GzYq2ibg,2903
|
|
33
33
|
cdk_factory/configurations/resources/ecr.py,sha256=iJEtKqBT7vQU0LU4urIglraIR7cPZqp3HQBs_2An7kA,8303
|
|
34
|
-
cdk_factory/configurations/resources/ecs_cluster.py,sha256=
|
|
34
|
+
cdk_factory/configurations/resources/ecs_cluster.py,sha256=mQYJu7SUPDl5E4dMR6HCPFoWvFA3RGIb0iMNn-K7LX8,3635
|
|
35
35
|
cdk_factory/configurations/resources/ecs_service.py,sha256=iwUVewUy9fQSLpkfRTNuIaWy7eQYWTHFiiD1jIYt9zU,5452
|
|
36
36
|
cdk_factory/configurations/resources/exisiting.py,sha256=EVOLnkB-DGfTlmDgyQ5DD5k2zYfpFxqI3gugDR7mifI,478
|
|
37
37
|
cdk_factory/configurations/resources/lambda_edge.py,sha256=MjmiwDkys4aoRvDQhH3MT6BgeShzJXNWL7761HJrLtQ,3404
|
|
@@ -98,7 +98,7 @@ cdk_factory/stack_library/dynamodb/dynamodb_stack.py,sha256=3_8lQP91GnBY77-61mtn
|
|
|
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=ebM8vVboNBplK0ua6bMSpNjewcFFkdvJ5wvVYEL1ONQ,302
|
|
101
|
-
cdk_factory/stack_library/ecs/ecs_cluster_stack_standardized.py,sha256
|
|
101
|
+
cdk_factory/stack_library/ecs/ecs_cluster_stack_standardized.py,sha256=-NK1U9vCFad8CcW6dOTguQgr0IBL_bhtg5cxyU2MR6U,12832
|
|
102
102
|
cdk_factory/stack_library/ecs/ecs_service_stack.py,sha256=3en447kWBOqd0d_i2C8mRRBscO2GqN9-B2l_PW7kZuM,27409
|
|
103
103
|
cdk_factory/stack_library/lambda_edge/__init__.py,sha256=ByBJ_CWdc4UtTmFBZH-6pzBMNkjkdtE65AmnB0Fs6lM,156
|
|
104
104
|
cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py,sha256=ft5AxHy8__F90ZYDaoJwTjACGIfrn2Sd9Zr2CdHO7GE,16398
|
|
@@ -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.18.
|
|
140
|
-
cdk_factory-0.18.
|
|
141
|
-
cdk_factory-0.18.
|
|
142
|
-
cdk_factory-0.18.
|
|
143
|
-
cdk_factory-0.18.
|
|
139
|
+
cdk_factory-0.18.3.dist-info/METADATA,sha256=bjGa--we56QRn-Mf3pRHKvva3If16v1JH85-uiX3KOc,2451
|
|
140
|
+
cdk_factory-0.18.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
141
|
+
cdk_factory-0.18.3.dist-info/entry_points.txt,sha256=S1DPe0ORcdiwEALMN_WIo3UQrW_g4YdQCLEsc_b0Swg,53
|
|
142
|
+
cdk_factory-0.18.3.dist-info/licenses/LICENSE,sha256=NOtdOeLwg2il_XBJdXUPFPX8JlV4dqTdDGAd2-khxT8,1066
|
|
143
|
+
cdk_factory-0.18.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|