cdk-factory 0.16.12__py3-none-any.whl → 0.16.13__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/cdk_config.py +5 -3
- cdk_factory/configurations/resources/ecs_cluster.py +14 -0
- cdk_factory/stack_library/ecs/ecs_cluster_stack.py +104 -98
- cdk_factory/version.py +1 -1
- {cdk_factory-0.16.12.dist-info → cdk_factory-0.16.13.dist-info}/METADATA +1 -1
- {cdk_factory-0.16.12.dist-info → cdk_factory-0.16.13.dist-info}/RECORD +9 -9
- {cdk_factory-0.16.12.dist-info → cdk_factory-0.16.13.dist-info}/WHEEL +0 -0
- {cdk_factory-0.16.12.dist-info → cdk_factory-0.16.13.dist-info}/entry_points.txt +0 -0
- {cdk_factory-0.16.12.dist-info → cdk_factory-0.16.13.dist-info}/licenses/LICENSE +0 -0
|
@@ -183,9 +183,11 @@ class CdkConfig:
|
|
|
183
183
|
if self._resolved_config_file_path is None:
|
|
184
184
|
raise ValueError("Config file path is not set")
|
|
185
185
|
|
|
186
|
-
file_name =
|
|
186
|
+
file_name = os.path.join(".dynamic", os.path.basename(self._resolved_config_file_path))
|
|
187
187
|
path = os.path.join(Path(self._resolved_config_file_path).parent, file_name)
|
|
188
|
-
|
|
188
|
+
|
|
189
|
+
if not os.path.exists(Path(path).parent):
|
|
190
|
+
os.makedirs(Path(path).parent)
|
|
189
191
|
cdk = config.get("cdk", {})
|
|
190
192
|
if replacements and len(replacements) > 0:
|
|
191
193
|
config = JsonLoadingUtility.recursive_replace(config, replacements)
|
|
@@ -214,7 +216,7 @@ class CdkConfig:
|
|
|
214
216
|
value = static_value
|
|
215
217
|
elif environment_variable_name is not None and not value:
|
|
216
218
|
value = os.environ.get(environment_variable_name, None)
|
|
217
|
-
if value is None and required:
|
|
219
|
+
if (value is None or str(value).strip() == "") and required:
|
|
218
220
|
raise ValueError(
|
|
219
221
|
f"Failed to get value for environment variable {environment_variable_name}"
|
|
220
222
|
)
|
|
@@ -85,3 +85,17 @@ class EcsClusterConfig:
|
|
|
85
85
|
def export_ssm_parameters(self) -> bool:
|
|
86
86
|
"""Whether to export cluster information to SSM parameters"""
|
|
87
87
|
return self._config.get("export_ssm_parameters", True)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
@property
|
|
91
|
+
def ssm_exports(self) -> Dict[str, str]:
|
|
92
|
+
"""SSM parameter exports"""
|
|
93
|
+
return self._config.get("ssm_exports", {})
|
|
94
|
+
|
|
95
|
+
@property
|
|
96
|
+
def ssm_imports(self) -> Dict[str, Any]:
|
|
97
|
+
"""SSM parameter imports"""
|
|
98
|
+
# Check both nested and flat structures for backwards compatibility
|
|
99
|
+
if "ssm" in self._config and "imports" in self._config["ssm"]:
|
|
100
|
+
return self._config["ssm"]["imports"]
|
|
101
|
+
return self._config.get("ssm_imports", {})
|
|
@@ -6,33 +6,31 @@ with proper configurability and explicit resource management.
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
import logging
|
|
9
|
-
from typing import Optional, Dict, Any
|
|
9
|
+
from typing import Optional, Dict, Any
|
|
10
10
|
|
|
11
11
|
from aws_cdk import (
|
|
12
12
|
aws_ecs as ecs,
|
|
13
|
-
aws_ec2 as ec2,
|
|
14
13
|
aws_iam as iam,
|
|
15
|
-
|
|
16
|
-
RemovalPolicy,
|
|
17
|
-
Stack,
|
|
18
|
-
CfnOutput
|
|
14
|
+
CfnOutput,
|
|
19
15
|
)
|
|
20
16
|
from constructs import Construct
|
|
21
17
|
|
|
22
18
|
from cdk_factory.configurations.stack import StackConfig
|
|
23
19
|
from cdk_factory.configurations.deployment import DeploymentConfig
|
|
24
20
|
from cdk_factory.configurations.workload import WorkloadConfig
|
|
25
|
-
from cdk_factory.interfaces.
|
|
21
|
+
from cdk_factory.interfaces.vpc_provider_mixin import VPCProviderMixin
|
|
26
22
|
from cdk_factory.configurations.resources.ecs_cluster import EcsClusterConfig
|
|
27
|
-
|
|
23
|
+
from cdk_factory.stack.stack_module_registry import register_stack
|
|
24
|
+
from cdk_factory.interfaces.istack import IStack
|
|
28
25
|
|
|
29
26
|
logger = logging.getLogger(__name__)
|
|
30
27
|
|
|
31
28
|
|
|
32
|
-
|
|
29
|
+
@register_stack("ecs_cluster_stack")
|
|
30
|
+
class EcsClusterStack(IStack, VPCProviderMixin):
|
|
33
31
|
"""
|
|
34
32
|
A dedicated stack for creating and managing ECS clusters.
|
|
35
|
-
|
|
33
|
+
|
|
36
34
|
This stack provides explicit configuration of ECS clusters including:
|
|
37
35
|
- Cluster naming
|
|
38
36
|
- Container insights
|
|
@@ -40,38 +38,64 @@ class EcsClusterStack(Stack, SsmParameterMixin):
|
|
|
40
38
|
- SSM parameter exports
|
|
41
39
|
- IAM role configurations
|
|
42
40
|
"""
|
|
43
|
-
|
|
44
|
-
def __init__(
|
|
45
|
-
self,
|
|
46
|
-
scope: Construct,
|
|
47
|
-
construct_id: str,
|
|
48
|
-
stack_config: StackConfig,
|
|
49
|
-
deployment: DeploymentConfig,
|
|
50
|
-
workload: WorkloadConfig,
|
|
51
|
-
**kwargs
|
|
52
|
-
):
|
|
41
|
+
|
|
42
|
+
def __init__(self, scope: Construct, id: str, **kwargs) -> None:
|
|
53
43
|
"""
|
|
54
44
|
Initialize the ECS Cluster stack.
|
|
55
45
|
|
|
56
46
|
Args:
|
|
57
47
|
scope: The CDK construct scope
|
|
58
|
-
|
|
59
|
-
stack_config: Stack configuration
|
|
60
|
-
deployment: Deployment configuration
|
|
61
|
-
workload: Workload configuration
|
|
48
|
+
id: The construct ID
|
|
62
49
|
"""
|
|
63
|
-
super().__init__(scope,
|
|
50
|
+
super().__init__(scope, id, **kwargs)
|
|
51
|
+
|
|
52
|
+
self._initialize_vpc_cache()
|
|
53
|
+
|
|
54
|
+
self.ecs_config: Optional[EcsClusterConfig] = None
|
|
55
|
+
self.stack_config: Optional[StackConfig] = None
|
|
56
|
+
self.deployment: Optional[DeploymentConfig] = None
|
|
57
|
+
self.workload: Optional[WorkloadConfig] = None
|
|
58
|
+
self.ecs_cluster: Optional[ecs.Cluster] = None
|
|
59
|
+
self.instance_role: Optional[iam.Role] = None
|
|
60
|
+
self.instance_profile: Optional[iam.CfnInstanceProfile] = None
|
|
64
61
|
|
|
62
|
+
# SSM imported values
|
|
63
|
+
self.ssm_imported_values: Dict[str, Any] = {}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def build(
|
|
68
|
+
self,
|
|
69
|
+
stack_config: StackConfig,
|
|
70
|
+
deployment: DeploymentConfig,
|
|
71
|
+
workload: WorkloadConfig,
|
|
72
|
+
) -> None:
|
|
73
|
+
"""Build the ECS Cluster stack"""
|
|
74
|
+
self._build(stack_config, deployment, workload)
|
|
75
|
+
|
|
76
|
+
def _build(
|
|
77
|
+
self,
|
|
78
|
+
stack_config: StackConfig,
|
|
79
|
+
deployment: DeploymentConfig,
|
|
80
|
+
workload: WorkloadConfig,
|
|
81
|
+
) -> None:
|
|
82
|
+
"""Internal build method for the ECS Cluster stack"""
|
|
65
83
|
self.stack_config = stack_config
|
|
66
84
|
self.deployment = deployment
|
|
67
85
|
self.workload = workload
|
|
68
86
|
|
|
87
|
+
# Initialize VPC cache from mixin
|
|
88
|
+
self._initialize_vpc_cache()
|
|
89
|
+
|
|
69
90
|
# Load ECS cluster configuration
|
|
70
91
|
self.ecs_config: EcsClusterConfig = EcsClusterConfig(
|
|
71
92
|
stack_config.dictionary.get("ecs_cluster", {})
|
|
72
93
|
)
|
|
73
94
|
|
|
74
|
-
logger.info(f"Creating ECS Cluster stack: {
|
|
95
|
+
logger.info(f"Creating ECS Cluster stack: {self.stack_name}")
|
|
96
|
+
|
|
97
|
+
# Process SSM imports first
|
|
98
|
+
self.process_ssm_imports(self.ecs_config, deployment, "ECS Cluster")
|
|
75
99
|
|
|
76
100
|
# Create the ECS cluster
|
|
77
101
|
self._create_ecs_cluster()
|
|
@@ -82,159 +106,141 @@ class EcsClusterStack(Stack, SsmParameterMixin):
|
|
|
82
106
|
# Export cluster information
|
|
83
107
|
self._export_cluster_info()
|
|
84
108
|
|
|
85
|
-
logger.info(f"ECS Cluster stack created: {
|
|
86
|
-
|
|
109
|
+
logger.info(f"ECS Cluster stack created: {self.stack_name}")
|
|
110
|
+
|
|
87
111
|
def _create_ecs_cluster(self):
|
|
88
112
|
"""Create the ECS cluster with explicit configuration."""
|
|
89
113
|
logger.info(f"Creating ECS cluster: {self.ecs_config.name}")
|
|
90
|
-
|
|
114
|
+
|
|
91
115
|
# Build cluster settings
|
|
92
116
|
cluster_settings = []
|
|
93
|
-
|
|
117
|
+
|
|
94
118
|
# Add container insights if enabled
|
|
95
119
|
if self.ecs_config.container_insights:
|
|
96
|
-
cluster_settings.append({
|
|
97
|
-
|
|
98
|
-
"value": "enabled"
|
|
99
|
-
})
|
|
100
|
-
|
|
120
|
+
cluster_settings.append({"name": "containerInsights", "value": "enabled"})
|
|
121
|
+
|
|
101
122
|
# Add custom cluster settings
|
|
102
123
|
if self.ecs_config.cluster_settings:
|
|
103
124
|
cluster_settings.extend(self.ecs_config.cluster_settings)
|
|
104
|
-
|
|
125
|
+
|
|
105
126
|
# Create the ECS cluster
|
|
127
|
+
self.vpc = self.resolve_vpc(
|
|
128
|
+
config=self.ecs_config,
|
|
129
|
+
deployment=self.deployment,
|
|
130
|
+
workload=self.workload
|
|
131
|
+
)
|
|
132
|
+
|
|
106
133
|
self.ecs_cluster = ecs.Cluster(
|
|
107
134
|
self,
|
|
108
135
|
"ECSCluster",
|
|
109
136
|
cluster_name=self.ecs_config.name,
|
|
110
|
-
vpc=self.
|
|
137
|
+
vpc=self.vpc,
|
|
111
138
|
container_insights=self.ecs_config.container_insights,
|
|
112
139
|
default_cloud_map_namespace=(
|
|
113
|
-
self.ecs_config.cloud_map_namespace
|
|
114
|
-
if self.ecs_config.cloud_map_namespace
|
|
140
|
+
self.ecs_config.cloud_map_namespace
|
|
141
|
+
if self.ecs_config.cloud_map_namespace
|
|
142
|
+
else None
|
|
115
143
|
),
|
|
116
144
|
execute_command_configuration=(
|
|
117
|
-
self.ecs_config.execute_command_configuration
|
|
118
|
-
if self.ecs_config.execute_command_configuration
|
|
119
|
-
|
|
145
|
+
self.ecs_config.execute_command_configuration
|
|
146
|
+
if self.ecs_config.execute_command_configuration
|
|
147
|
+
else None
|
|
148
|
+
),
|
|
120
149
|
)
|
|
121
|
-
|
|
150
|
+
|
|
122
151
|
logger.info(f"Created ECS cluster: {self.ecs_config.name}")
|
|
123
|
-
|
|
152
|
+
|
|
124
153
|
def _create_iam_roles(self):
|
|
125
154
|
"""Create IAM roles for the ECS cluster if configured."""
|
|
126
155
|
if not self.ecs_config.create_instance_role:
|
|
127
156
|
return
|
|
128
|
-
|
|
157
|
+
|
|
129
158
|
logger.info("Creating ECS instance role")
|
|
130
|
-
|
|
159
|
+
|
|
131
160
|
# Create the instance role
|
|
132
161
|
self.instance_role = iam.Role(
|
|
133
162
|
self,
|
|
134
163
|
"ECSInstanceRole",
|
|
135
164
|
assumed_by=iam.ServicePrincipal("ec2.amazonaws.com"),
|
|
136
|
-
role_name=self.ecs_config.instance_role_name
|
|
165
|
+
role_name=self.ecs_config.instance_role_name
|
|
166
|
+
or f"{self.ecs_config.name}-instance-role",
|
|
137
167
|
)
|
|
138
|
-
|
|
168
|
+
|
|
139
169
|
# Add managed policies
|
|
140
170
|
for policy in self.ecs_config.managed_policies:
|
|
141
171
|
self.instance_role.add_managed_policy(
|
|
142
172
|
iam.ManagedPolicy.from_aws_managed_policy_name(policy)
|
|
143
173
|
)
|
|
144
|
-
|
|
174
|
+
|
|
145
175
|
# Add inline policies if provided
|
|
146
176
|
if self.ecs_config.inline_policies:
|
|
147
177
|
for policy_name, policy_document in self.ecs_config.inline_policies.items():
|
|
148
178
|
self.instance_role.add_to_policy(
|
|
149
179
|
iam.PolicyStatement.from_json(policy_document)
|
|
150
180
|
)
|
|
151
|
-
|
|
181
|
+
|
|
152
182
|
# Create instance profile
|
|
153
183
|
self.instance_profile = iam.CfnInstanceProfile(
|
|
154
184
|
self,
|
|
155
185
|
"ECSInstanceProfile",
|
|
156
186
|
roles=[self.instance_role.role_name],
|
|
157
|
-
instance_profile_name=self.ecs_config.instance_profile_name
|
|
187
|
+
instance_profile_name=self.ecs_config.instance_profile_name
|
|
188
|
+
or f"{self.ecs_config.name}-instance-profile",
|
|
158
189
|
)
|
|
159
|
-
|
|
190
|
+
|
|
160
191
|
logger.info("Created ECS instance role and profile")
|
|
161
|
-
|
|
162
|
-
def _get_vpc(self):
|
|
163
|
-
"""Get the VPC for the ECS cluster."""
|
|
164
|
-
if self.ecs_config.vpc_id:
|
|
165
|
-
# Import VPC by ID
|
|
166
|
-
return ec2.Vpc.from_lookup(
|
|
167
|
-
self,
|
|
168
|
-
"VPC",
|
|
169
|
-
vpc_id=self.ecs_config.vpc_id
|
|
170
|
-
)
|
|
171
|
-
elif self.ecs_config.ssm_vpc_id:
|
|
172
|
-
# Import VPC from SSM
|
|
173
|
-
vpc_id = self._import_ssm_parameter_value(
|
|
174
|
-
self.ecs_config.ssm_vpc_id,
|
|
175
|
-
required=True
|
|
176
|
-
)
|
|
177
|
-
return ec2.Vpc.from_lookup(
|
|
178
|
-
self,
|
|
179
|
-
"VPC",
|
|
180
|
-
vpc_id=vpc_id
|
|
181
|
-
)
|
|
182
|
-
else:
|
|
183
|
-
# Use default VPC
|
|
184
|
-
return ec2.Vpc.from_lookup(
|
|
185
|
-
self,
|
|
186
|
-
"VPC",
|
|
187
|
-
is_default=True
|
|
188
|
-
)
|
|
189
|
-
|
|
192
|
+
|
|
190
193
|
def _export_cluster_info(self):
|
|
191
194
|
"""Export cluster information via SSM parameters and CloudFormation outputs."""
|
|
192
195
|
logger.info("Exporting ECS cluster information")
|
|
193
|
-
|
|
196
|
+
|
|
194
197
|
# Export cluster name
|
|
195
198
|
self.export_ssm_parameter(
|
|
196
|
-
|
|
199
|
+
self, "ClusterNameParameter",
|
|
197
200
|
self.ecs_config.name,
|
|
198
|
-
"
|
|
201
|
+
f"/{self.deployment.name}/{self.workload.name}/ecs/cluster/name",
|
|
202
|
+
"ECS Cluster Name",
|
|
199
203
|
)
|
|
200
|
-
|
|
204
|
+
|
|
201
205
|
# Export cluster ARN
|
|
202
206
|
self.export_ssm_parameter(
|
|
203
|
-
|
|
207
|
+
self, "ClusterArnParameter",
|
|
204
208
|
self.ecs_cluster.cluster_arn,
|
|
205
|
-
"
|
|
209
|
+
f"/{self.deployment.name}/{self.workload.name}/ecs/cluster/arn",
|
|
210
|
+
"ECS Cluster ARN",
|
|
206
211
|
)
|
|
207
|
-
|
|
212
|
+
|
|
208
213
|
# Export instance role ARN if created
|
|
209
|
-
if hasattr(self,
|
|
214
|
+
if hasattr(self, "instance_role"):
|
|
210
215
|
self.export_ssm_parameter(
|
|
211
|
-
|
|
216
|
+
self, "InstanceRoleArnParameter",
|
|
212
217
|
self.instance_role.role_arn,
|
|
213
|
-
"
|
|
218
|
+
f"/{self.deployment.name}/{self.workload.name}/ecs/instance-role/arn",
|
|
219
|
+
"ECS Instance Role ARN",
|
|
214
220
|
)
|
|
215
|
-
|
|
221
|
+
|
|
216
222
|
# CloudFormation outputs
|
|
217
223
|
CfnOutput(
|
|
218
224
|
self,
|
|
219
225
|
"cluster-name",
|
|
220
226
|
value=self.ecs_config.name,
|
|
221
227
|
description=f"Name of the ECS cluster: {self.ecs_config.name}",
|
|
222
|
-
export_name=f"{self.deployment.name}-ecs-cluster-name"
|
|
228
|
+
export_name=f"{self.deployment.name}-ecs-cluster-name",
|
|
223
229
|
)
|
|
224
|
-
|
|
230
|
+
|
|
225
231
|
CfnOutput(
|
|
226
232
|
self,
|
|
227
233
|
"cluster-arn",
|
|
228
234
|
value=self.ecs_cluster.cluster_arn,
|
|
229
235
|
description=f"ARN of the ECS cluster: {self.ecs_config.name}",
|
|
230
|
-
export_name=f"{self.deployment.name}-ecs-cluster-arn"
|
|
236
|
+
export_name=f"{self.deployment.name}-ecs-cluster-arn",
|
|
231
237
|
)
|
|
232
|
-
|
|
233
|
-
if hasattr(self,
|
|
238
|
+
|
|
239
|
+
if hasattr(self, "instance_role"):
|
|
234
240
|
CfnOutput(
|
|
235
241
|
self,
|
|
236
242
|
"instance-role-arn",
|
|
237
243
|
value=self.instance_role.role_arn,
|
|
238
244
|
description=f"ARN of the ECS instance role: {self.ecs_config.name}",
|
|
239
|
-
export_name=f"{self.deployment.name}-ecs-instance-role-arn"
|
|
245
|
+
export_name=f"{self.deployment.name}-ecs-instance-role-arn",
|
|
240
246
|
)
|
cdk_factory/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.16.
|
|
1
|
+
__version__ = "0.16.13"
|
|
@@ -2,11 +2,11 @@ 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=DRHGpx4GSQ3Kn3g7_X9lliE5ploF5wGkMt49I03ESBQ,24
|
|
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=JKjhNsy0RCUZy1s8n5D_aXXI-upR9izaLtCTfKYiV9k,9624
|
|
9
|
-
cdk_factory/configurations/cdk_config.py,sha256=
|
|
9
|
+
cdk_factory/configurations/cdk_config.py,sha256=I1mgDcGJgDCoS_WelJUQdUJLAZgyUA1NVF2q2UJ1hBw,8939
|
|
10
10
|
cdk_factory/configurations/deployment.py,sha256=LO2gd1yv1nqlX_2MIjRXptylFybWiTKsMKZU0N58rSM,12110
|
|
11
11
|
cdk_factory/configurations/deployment_wave.py,sha256=TFX7CYgr5SmLyziEb-R_OTteFWtlMHB4pT53ekV3d1Y,233
|
|
12
12
|
cdk_factory/configurations/devops.py,sha256=PG-s2ldZmMULheWdKf2lf2LSugLoKiOKyLELTZJJxu8,2506
|
|
@@ -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=o9hHzEBVPoxUvWZGXGbRJ-98FmP6fMLY5a1-qg42jL0,8253
|
|
34
|
-
cdk_factory/configurations/resources/ecs_cluster.py,sha256=
|
|
34
|
+
cdk_factory/configurations/resources/ecs_cluster.py,sha256=oz8bXdW8dxYWQX0VIjvgAQA8quXJFF0NBTvtksS2vN4,3527
|
|
35
35
|
cdk_factory/configurations/resources/ecs_service.py,sha256=fAW4EuBNhPrE7G0QcHXongKoAnFeGMRS6iP7OuGP5Fw,4926
|
|
36
36
|
cdk_factory/configurations/resources/exisiting.py,sha256=EVOLnkB-DGfTlmDgyQ5DD5k2zYfpFxqI3gugDR7mifI,478
|
|
37
37
|
cdk_factory/configurations/resources/lambda_edge.py,sha256=MjmiwDkys4aoRvDQhH3MT6BgeShzJXNWL7761HJrLtQ,3404
|
|
@@ -99,7 +99,7 @@ cdk_factory/stack_library/dynamodb/dynamodb_stack.py,sha256=TVyOrUhgaSuN8uymkpaQ
|
|
|
99
99
|
cdk_factory/stack_library/ecr/README.md,sha256=xw2wPx9WN03Y4BBwqvbi9lAFGNyaD1FUNpqxVJX14Oo,179
|
|
100
100
|
cdk_factory/stack_library/ecr/ecr_stack.py,sha256=1xA68sxFVyqreYjXrP_7U9I8RF9RtFeR6KeEfSWuC2U,2118
|
|
101
101
|
cdk_factory/stack_library/ecs/__init__.py,sha256=ZZLBmuSt6z_cnFz6OkIFv_APmjqf706wWROruZGyFEI,289
|
|
102
|
-
cdk_factory/stack_library/ecs/ecs_cluster_stack.py,sha256=
|
|
102
|
+
cdk_factory/stack_library/ecs/ecs_cluster_stack.py,sha256=zAsaQsIWa9cOHcMngdWUAOXZ2PybC3Oc0JADqRgO2dg,8326
|
|
103
103
|
cdk_factory/stack_library/ecs/ecs_service_stack.py,sha256=c6K3BjlXyldr8ikvEhfC9C-LpKJILQQkwwU9DNlepH4,27747
|
|
104
104
|
cdk_factory/stack_library/lambda_edge/__init__.py,sha256=ByBJ_CWdc4UtTmFBZH-6pzBMNkjkdtE65AmnB0Fs6lM,156
|
|
105
105
|
cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py,sha256=CdId_1kcZmYr1lLI9AD3-KqtE6voC3641PIloJmWiNI,16414
|
|
@@ -136,8 +136,8 @@ cdk_factory/utilities/lambda_function_utilities.py,sha256=S1GvBsY_q2cyUiaud3HORJ
|
|
|
136
136
|
cdk_factory/utilities/os_execute.py,sha256=5Op0LY_8Y-pUm04y1k8MTpNrmQvcLmQHPQITEP7EuSU,1019
|
|
137
137
|
cdk_factory/utils/api_gateway_utilities.py,sha256=If7Xu5s_UxmuV-kL3JkXxPLBdSVUKoLtohm0IUFoiV8,4378
|
|
138
138
|
cdk_factory/workload/workload_factory.py,sha256=yDI3cRhVI5ELNDcJPLpk9UY54Uind1xQoV3spzT4z7E,6068
|
|
139
|
-
cdk_factory-0.16.
|
|
140
|
-
cdk_factory-0.16.
|
|
141
|
-
cdk_factory-0.16.
|
|
142
|
-
cdk_factory-0.16.
|
|
143
|
-
cdk_factory-0.16.
|
|
139
|
+
cdk_factory-0.16.13.dist-info/METADATA,sha256=PDyT7iE3uveBVxNrEwsLMvpD0_J5yoVMh7L1DkoAjUE,2452
|
|
140
|
+
cdk_factory-0.16.13.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
141
|
+
cdk_factory-0.16.13.dist-info/entry_points.txt,sha256=S1DPe0ORcdiwEALMN_WIo3UQrW_g4YdQCLEsc_b0Swg,53
|
|
142
|
+
cdk_factory-0.16.13.dist-info/licenses/LICENSE,sha256=NOtdOeLwg2il_XBJdXUPFPX8JlV4dqTdDGAd2-khxT8,1066
|
|
143
|
+
cdk_factory-0.16.13.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|