@go-to-k/cdkd 0.260.8 → 0.260.9
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.
- package/dist/{asg-provider-rcNqhfPS.js → asg-provider-GUSV9-p0.js} +2 -2
- package/dist/{asg-provider-rcNqhfPS.js.map → asg-provider-GUSV9-p0.js.map} +1 -1
- package/dist/cli.js +156 -13
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-Dg51mHCV.js → deploy-engine-CM5GZI1O.js} +109 -3
- package/dist/deploy-engine-CM5GZI1O.js.map +1 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-Dg51mHCV.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as getBootstrapMarkerKey, A as refStateLookupFromResource, At as resolveBucketRegion, B as S3StateBackend, Bt as LocalMigrateError, C as findActionableSilentDrops, Ct as CFN_TEMPLATE_URL_LIMIT, D as isTerminationProtectionPropagationError, Dt as expectedOwnerParam, E as disableInstanceApiTermination, Et as uploadCfnTemplate, F as applyRoleArnIfSet, G as WorkGraph, Gt as PartialFailureError, H as shouldRetainResource, I as DiffCalculator, It as CdkdError, J as loadPublishableAssetManifest, Jt as ResourceUpdateNotSupportedError, K as buildAssetRedirectMap, Kt as ProvisioningError, L as DagBuilder, M as normalizeAwsTagsToCfn, Mt as getAwsClients, N as resolveExplicitPhysicalId, Nt as resetAwsClients, O as IntrinsicFunctionResolver, Ot as AssemblyReader, P as assertRegionMatch, Pt as setAwsClients, Q as ensureAssetStorage, R as TemplateParser, S as ProviderRegistry, St as CFN_TEMPLATE_BODY_LIMIT, T as slowCcOperationTimeoutMs, Tt as findLargeInlineResources, U as AssetPublisher, Ut as MissingCdkCliError, V as rebuildClientForBucketRegion, Vt as LocalStartServiceError, W as stringifyValue, Wt as NestedStackChildDirectDestroyError, X as AssetModeResolver, Xt as StackTerminationProtectionError, Y as rewriteTemplateAssetReferences, Yt as StackHasActiveImportsError, Z as BOOTSTRAP_MARKER_PREFIX, _ as green, _t as resolveSkipPrefix, a as withRetry, at as getDockerCmd, b as IAMRoleProvider, bt as resolveUseCdkBootstrapAssets, c as computeImplicitDeleteEdges, ct as AssetManifestLoader, d as isStatefulRecreateTargetSync, dt as synthesisStatusMessage, et as parseBootstrapMarker, f as renderStatefulReason, ft as getDefaultStateBucketName, g as gray, gt as resolveCaptureObservedState, h as cyan, ht as resolveAutoAssetStorage, i as withResourceDeadline, it as formatDockerLoginError, j as WAFv2WebACLProvider, jt as AwsClients, k as cfnRefValueFromPhysicalId, l as extractDeploymentEventError, lt as getDockerImageBySourceHash, m as bold, mt as resolveApp, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as withErrorHandling, nt as validateContainerRepoName, o as isRetryableTransientError, ot as runDockerForeground, p as formatResourceLine, pt as getLegacyStateBucketName, q as createAssetRedirectResolver, qt as ResourceTimeoutError, r as DeployEngine, rt as buildDockerImage, s as IMPLICIT_DELETE_DEPENDENCIES, st as runDockerStreaming, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as normalizeAwsError, tt as validateAssetBucketName, u as MULTI_REGION_RECREATE_BLOCKED_TYPES, ut as Synthesizer, v as red, vt as resolveStateBucketWithDefault, w as CloudControlProvider, wt as MIGRATE_TMP_PREFIX, x as collectInlinePolicyNamesManagedBySiblings, xt as warnDeprecatedNoPrefixCliFlag, y as yellow, yt as resolveStateBucketWithDefaultAndSource, z as LockManager, zt as LocalInvokeBuildError$1 } from "./deploy-engine-
|
|
2
|
+
import { $ as getBootstrapMarkerKey, A as refStateLookupFromResource, At as resolveBucketRegion, B as S3StateBackend, Bt as LocalMigrateError, C as findActionableSilentDrops, Ct as CFN_TEMPLATE_URL_LIMIT, D as isTerminationProtectionPropagationError, Dt as expectedOwnerParam, E as disableInstanceApiTermination, Et as uploadCfnTemplate, F as applyRoleArnIfSet, G as WorkGraph, Gt as PartialFailureError, H as shouldRetainResource, I as DiffCalculator, It as CdkdError, J as loadPublishableAssetManifest, Jt as ResourceUpdateNotSupportedError, K as buildAssetRedirectMap, Kt as ProvisioningError, L as DagBuilder, M as normalizeAwsTagsToCfn, Mt as getAwsClients, N as resolveExplicitPhysicalId, Nt as resetAwsClients, O as IntrinsicFunctionResolver, Ot as AssemblyReader, P as assertRegionMatch, Pt as setAwsClients, Q as ensureAssetStorage, R as TemplateParser, S as ProviderRegistry, St as CFN_TEMPLATE_BODY_LIMIT, T as slowCcOperationTimeoutMs, Tt as findLargeInlineResources, U as AssetPublisher, Ut as MissingCdkCliError, V as rebuildClientForBucketRegion, Vt as LocalStartServiceError, W as stringifyValue, Wt as NestedStackChildDirectDestroyError, X as AssetModeResolver, Xt as StackTerminationProtectionError, Y as rewriteTemplateAssetReferences, Yt as StackHasActiveImportsError, Z as BOOTSTRAP_MARKER_PREFIX, _ as green, _t as resolveSkipPrefix, a as withRetry, at as getDockerCmd, b as IAMRoleProvider, bt as resolveUseCdkBootstrapAssets, c as computeImplicitDeleteEdges, ct as AssetManifestLoader, d as isStatefulRecreateTargetSync, dt as synthesisStatusMessage, et as parseBootstrapMarker, f as renderStatefulReason, ft as getDefaultStateBucketName, g as gray, gt as resolveCaptureObservedState, h as cyan, ht as resolveAutoAssetStorage, i as withResourceDeadline, it as formatDockerLoginError, j as WAFv2WebACLProvider, jt as AwsClients, k as cfnRefValueFromPhysicalId, l as extractDeploymentEventError, lt as getDockerImageBySourceHash, m as bold, mt as resolveApp, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as withErrorHandling, nt as validateContainerRepoName, o as isRetryableTransientError, ot as runDockerForeground, p as formatResourceLine, pt as getLegacyStateBucketName, q as createAssetRedirectResolver, qt as ResourceTimeoutError, r as DeployEngine, rt as buildDockerImage, s as IMPLICIT_DELETE_DEPENDENCIES, st as runDockerStreaming, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as normalizeAwsError, tt as validateAssetBucketName, u as MULTI_REGION_RECREATE_BLOCKED_TYPES, ut as Synthesizer, v as red, vt as resolveStateBucketWithDefault, w as CloudControlProvider, wt as MIGRATE_TMP_PREFIX, x as collectInlinePolicyNamesManagedBySiblings, xt as warnDeprecatedNoPrefixCliFlag, y as yellow, yt as resolveStateBucketWithDefaultAndSource, z as LockManager, zt as LocalInvokeBuildError$1 } from "./deploy-engine-CM5GZI1O.js";
|
|
3
3
|
import { a as getLiveRenderer, c as PATTERN_B_RESOURCE_TYPES, d as generateResourceNameWithFallback, f as withSkipPrefix, i as runStackBuffered, n as getLogger, o as PATTERN_B_NAME_OPTIONS, p as withStackName, s as PATTERN_B_NAME_PROPERTIES, u as generateResourceName } from "./logger-BYMEE-BS.js";
|
|
4
|
-
import { t as ASGProvider } from "./asg-provider-
|
|
4
|
+
import { t as ASGProvider } from "./asg-provider-GUSV9-p0.js";
|
|
5
5
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
6
6
|
import { createHash, randomBytes, randomUUID } from "node:crypto";
|
|
7
7
|
import { CopyObjectCommand, CreateBucketCommand, DeleteBucketAnalyticsConfigurationCommand, DeleteBucketCommand, DeleteBucketCorsCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, HeadBucketCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchBucket, PutBucketAccelerateConfigurationCommand, PutBucketAnalyticsConfigurationCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketIntelligentTieringConfigurationCommand, PutBucketInventoryConfigurationCommand, PutBucketLifecycleConfigurationCommand, PutBucketLoggingCommand, PutBucketMetricsConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketOwnershipControlsCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutBucketWebsiteCommand, PutObjectCommand, PutObjectLockConfigurationCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
|
|
@@ -10,7 +10,7 @@ import { CreateQueueCommand, DeleteQueueCommand, GetQueueAttributesCommand, GetQ
|
|
|
10
10
|
import { CreateTopicCommand, DeleteTopicCommand, GetSubscriptionAttributesCommand, GetTopicAttributesCommand, ListSubscriptionsByTopicCommand, ListTagsForResourceCommand, ListTopicsCommand, NotFoundException, SNSClient, SetTopicAttributesCommand, SubscribeCommand, TagResourceCommand, UnsubscribeCommand, UntagResourceCommand } from "@aws-sdk/client-sns";
|
|
11
11
|
import { AddPermissionCommand, CreateEventSourceMappingCommand, CreateFunctionCommand, CreateFunctionUrlConfigCommand, DeleteEventSourceMappingCommand, DeleteFunctionCommand, DeleteFunctionConcurrencyCommand, DeleteFunctionEventInvokeConfigCommand, DeleteFunctionUrlConfigCommand, DeleteLayerVersionCommand, GetEventSourceMappingCommand, GetFunctionCommand, GetFunctionConcurrencyCommand, GetFunctionEventInvokeConfigCommand, GetFunctionRecursionConfigCommand, GetFunctionUrlConfigCommand, GetLayerVersionByArnCommand, GetPolicyCommand as GetPolicyCommand$1, LambdaClient, ListTagsCommand, PublishLayerVersionCommand, PutFunctionConcurrencyCommand, PutFunctionEventInvokeConfigCommand, PutFunctionRecursionConfigCommand, RemovePermissionCommand, ResourceNotFoundException, TagResourceCommand as TagResourceCommand$1, UntagResourceCommand as UntagResourceCommand$1, UpdateEventSourceMappingCommand, UpdateFunctionCodeCommand, UpdateFunctionConfigurationCommand, UpdateFunctionUrlConfigCommand, waitUntilFunctionUpdatedV2 } from "@aws-sdk/client-lambda";
|
|
12
12
|
import { AssumeRoleCommand, GetCallerIdentityCommand, STSClient } from "@aws-sdk/client-sts";
|
|
13
|
-
import { AssociateIamInstanceProfileCommand, AssociateRouteTableCommand, AttachInternetGatewayCommand, AuthorizeSecurityGroupEgressCommand, AuthorizeSecurityGroupIngressCommand, CreateInternetGatewayCommand, CreateNatGatewayCommand, CreateNetworkAclCommand, CreateNetworkAclEntryCommand, CreateRouteCommand, CreateRouteTableCommand, CreateSecurityGroupCommand, CreateSubnetCommand, CreateTagsCommand, CreateVpcCommand, DeleteInternetGatewayCommand, DeleteNatGatewayCommand, DeleteNetworkAclCommand, DeleteNetworkAclEntryCommand, DeleteNetworkInterfaceCommand, DeleteRouteCommand, DeleteRouteTableCommand, DeleteSecurityGroupCommand, DeleteSubnetCommand, DeleteTagsCommand, DeleteVpcCommand, DescribeAvailabilityZonesCommand, DescribeIamInstanceProfileAssociationsCommand, DescribeInstanceAttributeCommand, DescribeInstanceCreditSpecificationsCommand, DescribeInstancesCommand, DescribeInternetGatewaysCommand, DescribeNatGatewaysCommand, DescribeNetworkAclsCommand, DescribeNetworkInterfacesCommand, DescribeRouteTablesCommand, DescribeSecurityGroupsCommand, DescribeSubnetsCommand, DescribeVolumesCommand, DescribeVpcAttributeCommand, DescribeVpcsCommand, DetachInternetGatewayCommand, DisassociateRouteTableCommand, EC2Client, ModifyInstanceAttributeCommand, ModifyInstanceCreditSpecificationCommand, ModifyInstanceMetadataOptionsCommand, ModifySubnetAttributeCommand, ModifyVpcAttributeCommand, MonitorInstancesCommand, ReplaceNetworkAclAssociationCommand, RevokeSecurityGroupEgressCommand, RevokeSecurityGroupIngressCommand, RunInstancesCommand, TerminateInstancesCommand, UnmonitorInstancesCommand, waitUntilInstanceRunning, waitUntilInstanceTerminated, waitUntilNatGatewayAvailable, waitUntilNatGatewayDeleted } from "@aws-sdk/client-ec2";
|
|
13
|
+
import { AllocateAddressCommand, AssociateAddressCommand, AssociateIamInstanceProfileCommand, AssociateRouteTableCommand, AttachInternetGatewayCommand, AuthorizeSecurityGroupEgressCommand, AuthorizeSecurityGroupIngressCommand, CreateInternetGatewayCommand, CreateNatGatewayCommand, CreateNetworkAclCommand, CreateNetworkAclEntryCommand, CreateRouteCommand, CreateRouteTableCommand, CreateSecurityGroupCommand, CreateSubnetCommand, CreateTagsCommand, CreateVpcCommand, DeleteInternetGatewayCommand, DeleteNatGatewayCommand, DeleteNetworkAclCommand, DeleteNetworkAclEntryCommand, DeleteNetworkInterfaceCommand, DeleteRouteCommand, DeleteRouteTableCommand, DeleteSecurityGroupCommand, DeleteSubnetCommand, DeleteTagsCommand, DeleteVpcCommand, DescribeAddressesCommand, DescribeAvailabilityZonesCommand, DescribeIamInstanceProfileAssociationsCommand, DescribeInstanceAttributeCommand, DescribeInstanceCreditSpecificationsCommand, DescribeInstancesCommand, DescribeInternetGatewaysCommand, DescribeNatGatewaysCommand, DescribeNetworkAclsCommand, DescribeNetworkInterfacesCommand, DescribeRouteTablesCommand, DescribeSecurityGroupsCommand, DescribeSubnetsCommand, DescribeVolumesCommand, DescribeVpcAttributeCommand, DescribeVpcsCommand, DetachInternetGatewayCommand, DisassociateAddressCommand, DisassociateRouteTableCommand, EC2Client, ModifyInstanceAttributeCommand, ModifyInstanceCreditSpecificationCommand, ModifyInstanceMetadataOptionsCommand, ModifySubnetAttributeCommand, ModifyVpcAttributeCommand, MonitorInstancesCommand, ReleaseAddressCommand, ReplaceNetworkAclAssociationCommand, RevokeSecurityGroupEgressCommand, RevokeSecurityGroupIngressCommand, RunInstancesCommand, TerminateInstancesCommand, UnmonitorInstancesCommand, waitUntilInstanceRunning, waitUntilInstanceTerminated, waitUntilNatGatewayAvailable, waitUntilNatGatewayDeleted } from "@aws-sdk/client-ec2";
|
|
14
14
|
import { CreateTableCommand, DeleteResourcePolicyCommand, DeleteTableCommand, DescribeContinuousBackupsCommand, DescribeContributorInsightsCommand, DescribeKinesisStreamingDestinationCommand, DescribeTableCommand, DescribeTimeToLiveCommand, DisableKinesisStreamingDestinationCommand, DynamoDBClient, EnableKinesisStreamingDestinationCommand, GetResourcePolicyCommand, ListTagsOfResourceCommand, PutResourcePolicyCommand, ResourceNotFoundException as ResourceNotFoundException$1, TagResourceCommand as TagResourceCommand$2, UntagResourceCommand as UntagResourceCommand$2, UpdateContinuousBackupsCommand, UpdateContributorInsightsCommand, UpdateTableCommand, UpdateTimeToLiveCommand } from "@aws-sdk/client-dynamodb";
|
|
15
15
|
import { CloudFormationClient, CreateChangeSetCommand, DeleteChangeSetCommand, DeleteStackCommand, DescribeChangeSetCommand, DescribeStackEventsCommand, DescribeStackResourcesCommand, DescribeStacksCommand, DescribeTypeCommand, ExecuteChangeSetCommand, GetTemplateCommand, UpdateStackCommand, waitUntilChangeSetCreateComplete, waitUntilStackDeleteComplete, waitUntilStackImportComplete, waitUntilStackUpdateComplete } from "@aws-sdk/client-cloudformation";
|
|
16
16
|
import { APIGatewayClient, CreateAuthorizerCommand, CreateDeploymentCommand, CreateResourceCommand, CreateStageCommand, DeleteAuthorizerCommand, DeleteDeploymentCommand, DeleteMethodCommand, DeleteResourceCommand, DeleteStageCommand, GetAccountCommand, GetAuthorizerCommand, GetDeploymentCommand, GetMethodCommand, GetResourceCommand, GetStageCommand, NotFoundException as NotFoundException$1, PutIntegrationCommand, PutIntegrationResponseCommand, PutMethodCommand, PutMethodResponseCommand, TagResourceCommand as TagResourceCommand$3, UntagResourceCommand as UntagResourceCommand$3, UpdateAccountCommand, UpdateAuthorizerCommand, UpdateMethodCommand, UpdateStageCommand } from "@aws-sdk/client-api-gateway";
|
|
@@ -1901,7 +1901,7 @@ const FLUSH_INTERVAL_MS = 2e3;
|
|
|
1901
1901
|
const FLUSH_EVENT_THRESHOLD = 50;
|
|
1902
1902
|
/** Build-time cdkd version, with a dev fallback for non-built contexts. */
|
|
1903
1903
|
function getCdkdVersion() {
|
|
1904
|
-
return "0.260.
|
|
1904
|
+
return "0.260.9";
|
|
1905
1905
|
}
|
|
1906
1906
|
/**
|
|
1907
1907
|
* Generate a time-sortable unique run id, e.g.
|
|
@@ -15032,6 +15032,13 @@ var EC2Provider = class {
|
|
|
15032
15032
|
"Tags"
|
|
15033
15033
|
])],
|
|
15034
15034
|
["AWS::EC2::InternetGateway", /* @__PURE__ */ new Set(["Tags"])],
|
|
15035
|
+
["AWS::EC2::EIP", /* @__PURE__ */ new Set([
|
|
15036
|
+
"Domain",
|
|
15037
|
+
"InstanceId",
|
|
15038
|
+
"NetworkBorderGroup",
|
|
15039
|
+
"PublicIpv4Pool",
|
|
15040
|
+
"Tags"
|
|
15041
|
+
])],
|
|
15035
15042
|
["AWS::EC2::VPCGatewayAttachment", /* @__PURE__ */ new Set(["VpcId", "InternetGatewayId"])],
|
|
15036
15043
|
["AWS::EC2::NatGateway", /* @__PURE__ */ new Set([
|
|
15037
15044
|
"AllocationId",
|
|
@@ -15111,7 +15118,12 @@ var EC2Provider = class {
|
|
|
15111
15118
|
unhandledByDesign = /* @__PURE__ */ new Map([
|
|
15112
15119
|
["AWS::EC2::Instance", /* @__PURE__ */ new Map([["ElasticGpuSpecifications", "AWS Elastic GPU end-of-life (announced 2023-11); no replacement API"], ["ElasticInferenceAccelerators", "AWS Elastic Inference end-of-life 2024-04; use AWS Inferentia / Trainium accelerator instance families instead"]])],
|
|
15113
15120
|
["AWS::EC2::SecurityGroupIngress", /* @__PURE__ */ new Map([["GroupName", "EC2-Classic-only — use GroupId for VPC security groups (EC2-Classic retired 2022-08-15)"], ["SourceSecurityGroupName", "EC2-Classic-only — use SourceSecurityGroupId for VPC peer security groups (EC2-Classic retired 2022-08-15)"]])],
|
|
15114
|
-
["AWS::EC2::NatGateway", /* @__PURE__ */ new Map([["VpcId", "AWS derives the VPC from SubnetId; the ec2:CreateNatGateway API has no VpcId parameter"]])]
|
|
15121
|
+
["AWS::EC2::NatGateway", /* @__PURE__ */ new Map([["VpcId", "AWS derives the VPC from SubnetId; the ec2:CreateNatGateway API has no VpcId parameter"]])],
|
|
15122
|
+
["AWS::EC2::EIP", /* @__PURE__ */ new Map([
|
|
15123
|
+
["Address", "Bring-your-own-IP: allocating a specific address you own is not yet supported; cdkd allocates an Amazon-owned address"],
|
|
15124
|
+
["IpamPoolId", "Allocation from an IPAM pool is not yet supported"],
|
|
15125
|
+
["TransferAddress", "Accepting a transferred Elastic IP is not yet supported (out-of-band EIP transfer flow)"]
|
|
15126
|
+
])]
|
|
15115
15127
|
]);
|
|
15116
15128
|
constructor() {
|
|
15117
15129
|
const awsClients = getAwsClients();
|
|
@@ -15122,6 +15134,7 @@ var EC2Provider = class {
|
|
|
15122
15134
|
case "AWS::EC2::VPC": return this.createVpc(logicalId, resourceType, properties);
|
|
15123
15135
|
case "AWS::EC2::Subnet": return this.createSubnet(logicalId, resourceType, properties);
|
|
15124
15136
|
case "AWS::EC2::InternetGateway": return this.createInternetGateway(logicalId, resourceType, properties);
|
|
15137
|
+
case "AWS::EC2::EIP": return this.createEip(logicalId, resourceType, properties);
|
|
15125
15138
|
case "AWS::EC2::VPCGatewayAttachment": return this.createVpcGatewayAttachment(logicalId, resourceType, properties);
|
|
15126
15139
|
case "AWS::EC2::NatGateway": return this.createNatGateway(logicalId, resourceType, properties);
|
|
15127
15140
|
case "AWS::EC2::RouteTable": return this.createRouteTable(logicalId, resourceType, properties);
|
|
@@ -15141,6 +15154,7 @@ var EC2Provider = class {
|
|
|
15141
15154
|
case "AWS::EC2::VPC": return this.updateVpc(logicalId, physicalId, resourceType, properties, previousProperties);
|
|
15142
15155
|
case "AWS::EC2::Subnet": return this.updateSubnet(logicalId, physicalId);
|
|
15143
15156
|
case "AWS::EC2::InternetGateway": return this.updateInternetGateway(logicalId, physicalId);
|
|
15157
|
+
case "AWS::EC2::EIP": return this.updateEip(logicalId, physicalId, properties, previousProperties);
|
|
15144
15158
|
case "AWS::EC2::VPCGatewayAttachment": return this.updateVpcGatewayAttachment(logicalId, physicalId);
|
|
15145
15159
|
case "AWS::EC2::NatGateway": return this.updateNatGateway(logicalId, physicalId);
|
|
15146
15160
|
case "AWS::EC2::RouteTable": return this.updateRouteTable(logicalId, physicalId);
|
|
@@ -15160,6 +15174,7 @@ var EC2Provider = class {
|
|
|
15160
15174
|
case "AWS::EC2::VPC": return this.deleteVpc(logicalId, physicalId, resourceType, context);
|
|
15161
15175
|
case "AWS::EC2::Subnet": return this.deleteSubnet(logicalId, physicalId, resourceType, context);
|
|
15162
15176
|
case "AWS::EC2::InternetGateway": return this.deleteInternetGateway(logicalId, physicalId, resourceType, context);
|
|
15177
|
+
case "AWS::EC2::EIP": return this.deleteEip(logicalId, physicalId, resourceType, context);
|
|
15163
15178
|
case "AWS::EC2::VPCGatewayAttachment": return this.deleteVpcGatewayAttachment(logicalId, physicalId, resourceType, context);
|
|
15164
15179
|
case "AWS::EC2::NatGateway": return this.deleteNatGateway(logicalId, physicalId, resourceType, context);
|
|
15165
15180
|
case "AWS::EC2::RouteTable": return this.deleteRouteTable(logicalId, physicalId, resourceType, context);
|
|
@@ -15182,6 +15197,7 @@ var EC2Provider = class {
|
|
|
15182
15197
|
case "AWS::EC2::Subnet": return this.getSubnetAttribute(physicalId, attributeName);
|
|
15183
15198
|
case "AWS::EC2::SecurityGroup": return this.getSecurityGroupAttribute(physicalId, attributeName);
|
|
15184
15199
|
case "AWS::EC2::Instance": return this.getInstanceAttribute(physicalId, attributeName);
|
|
15200
|
+
case "AWS::EC2::EIP": return this.getEipAttribute(physicalId, attributeName);
|
|
15185
15201
|
default: return;
|
|
15186
15202
|
}
|
|
15187
15203
|
}
|
|
@@ -15490,6 +15506,111 @@ var EC2Provider = class {
|
|
|
15490
15506
|
throw new ProvisioningError(`Failed to delete InternetGateway ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
|
|
15491
15507
|
}
|
|
15492
15508
|
}
|
|
15509
|
+
eipPhysicalId(publicIp, allocationId) {
|
|
15510
|
+
return `${publicIp}|${allocationId}`;
|
|
15511
|
+
}
|
|
15512
|
+
parseEipPhysicalId(physicalId) {
|
|
15513
|
+
if (physicalId.includes("|")) {
|
|
15514
|
+
const [publicIp, allocationId] = physicalId.split("|");
|
|
15515
|
+
return {
|
|
15516
|
+
publicIp,
|
|
15517
|
+
allocationId
|
|
15518
|
+
};
|
|
15519
|
+
}
|
|
15520
|
+
if (physicalId.startsWith("eipalloc-")) return { allocationId: physicalId };
|
|
15521
|
+
return { publicIp: physicalId };
|
|
15522
|
+
}
|
|
15523
|
+
async createEip(logicalId, resourceType, properties) {
|
|
15524
|
+
this.logger.debug(`Creating EIP ${logicalId}`);
|
|
15525
|
+
try {
|
|
15526
|
+
const response = await this.ec2Client.send(new AllocateAddressCommand({
|
|
15527
|
+
Domain: properties["Domain"] ?? "vpc",
|
|
15528
|
+
NetworkBorderGroup: properties["NetworkBorderGroup"],
|
|
15529
|
+
PublicIpv4Pool: properties["PublicIpv4Pool"]
|
|
15530
|
+
}));
|
|
15531
|
+
const allocationId = response.AllocationId;
|
|
15532
|
+
const publicIp = response.PublicIp;
|
|
15533
|
+
await this.applyTags(allocationId, properties, logicalId);
|
|
15534
|
+
const instanceId = properties["InstanceId"];
|
|
15535
|
+
if (instanceId) {
|
|
15536
|
+
await this.ec2Client.send(new AssociateAddressCommand({
|
|
15537
|
+
AllocationId: allocationId,
|
|
15538
|
+
InstanceId: instanceId
|
|
15539
|
+
}));
|
|
15540
|
+
this.logger.debug(`Associated EIP ${logicalId} (${allocationId}) to ${instanceId}`);
|
|
15541
|
+
}
|
|
15542
|
+
this.logger.debug(`Successfully created EIP ${logicalId}: ${allocationId} (${publicIp})`);
|
|
15543
|
+
return {
|
|
15544
|
+
physicalId: this.eipPhysicalId(publicIp, allocationId),
|
|
15545
|
+
attributes: {
|
|
15546
|
+
AllocationId: allocationId,
|
|
15547
|
+
PublicIp: publicIp
|
|
15548
|
+
}
|
|
15549
|
+
};
|
|
15550
|
+
} catch (error) {
|
|
15551
|
+
const cause = error instanceof Error ? error : void 0;
|
|
15552
|
+
throw new ProvisioningError(`Failed to create EIP ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, void 0, cause);
|
|
15553
|
+
}
|
|
15554
|
+
}
|
|
15555
|
+
async updateEip(logicalId, physicalId, properties, previousProperties) {
|
|
15556
|
+
this.logger.debug(`Updating EIP ${logicalId}: ${physicalId}`);
|
|
15557
|
+
const { allocationId } = this.parseEipPhysicalId(physicalId);
|
|
15558
|
+
if (allocationId) {
|
|
15559
|
+
await this.applyTagDiff(allocationId, previousProperties["Tags"], properties["Tags"]);
|
|
15560
|
+
const oldInstanceId = previousProperties["InstanceId"];
|
|
15561
|
+
const newInstanceId = properties["InstanceId"];
|
|
15562
|
+
if (oldInstanceId !== newInstanceId) if (newInstanceId) await this.ec2Client.send(new AssociateAddressCommand({
|
|
15563
|
+
AllocationId: allocationId,
|
|
15564
|
+
InstanceId: newInstanceId,
|
|
15565
|
+
AllowReassociation: true
|
|
15566
|
+
}));
|
|
15567
|
+
else {
|
|
15568
|
+
const associationId = (await this.ec2Client.send(new DescribeAddressesCommand({ AllocationIds: [allocationId] }))).Addresses?.[0]?.AssociationId;
|
|
15569
|
+
if (associationId) await this.ec2Client.send(new DisassociateAddressCommand({ AssociationId: associationId }));
|
|
15570
|
+
}
|
|
15571
|
+
}
|
|
15572
|
+
return {
|
|
15573
|
+
physicalId,
|
|
15574
|
+
wasReplaced: false
|
|
15575
|
+
};
|
|
15576
|
+
}
|
|
15577
|
+
async deleteEip(logicalId, physicalId, resourceType, context) {
|
|
15578
|
+
this.logger.debug(`Deleting EIP ${logicalId}: ${physicalId}`);
|
|
15579
|
+
const parsed = this.parseEipPhysicalId(physicalId);
|
|
15580
|
+
let allocationId = parsed.allocationId;
|
|
15581
|
+
if (!allocationId && parsed.publicIp) {
|
|
15582
|
+
allocationId = (await this.ec2Client.send(new DescribeAddressesCommand({ PublicIps: [parsed.publicIp] }))).Addresses?.[0]?.AllocationId;
|
|
15583
|
+
if (!allocationId) {
|
|
15584
|
+
this.logger.debug(`EIP ${physicalId} not found on lookup, skipping deletion`);
|
|
15585
|
+
return;
|
|
15586
|
+
}
|
|
15587
|
+
}
|
|
15588
|
+
try {
|
|
15589
|
+
await this.withDependencyViolationRetry(() => this.ec2Client.send(new ReleaseAddressCommand({ AllocationId: allocationId })), { description: `ReleaseAddress ${logicalId} (${allocationId})` });
|
|
15590
|
+
this.logger.debug(`Successfully deleted EIP ${logicalId}`);
|
|
15591
|
+
} catch (error) {
|
|
15592
|
+
if (this.isNotFoundError(error)) {
|
|
15593
|
+
assertRegionMatch(await this.ec2Client.config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
|
|
15594
|
+
this.logger.debug(`EIP ${physicalId} does not exist, skipping deletion`);
|
|
15595
|
+
return;
|
|
15596
|
+
}
|
|
15597
|
+
const cause = error instanceof Error ? error : void 0;
|
|
15598
|
+
throw new ProvisioningError(`Failed to delete EIP ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
|
|
15599
|
+
}
|
|
15600
|
+
}
|
|
15601
|
+
async getEipAttribute(physicalId, attributeName) {
|
|
15602
|
+
const { publicIp, allocationId } = this.parseEipPhysicalId(physicalId);
|
|
15603
|
+
if (attributeName === "AllocationId" && allocationId) return allocationId;
|
|
15604
|
+
if (attributeName === "PublicIp" && publicIp) return publicIp;
|
|
15605
|
+
const filter = allocationId ? { AllocationIds: [allocationId] } : { PublicIps: publicIp ? [publicIp] : [] };
|
|
15606
|
+
const addr = (await this.ec2Client.send(new DescribeAddressesCommand(filter))).Addresses?.[0];
|
|
15607
|
+
if (!addr) return void 0;
|
|
15608
|
+
switch (attributeName) {
|
|
15609
|
+
case "AllocationId": return addr.AllocationId;
|
|
15610
|
+
case "PublicIp": return addr.PublicIp;
|
|
15611
|
+
default: return;
|
|
15612
|
+
}
|
|
15613
|
+
}
|
|
15493
15614
|
async createVpcGatewayAttachment(logicalId, resourceType, properties) {
|
|
15494
15615
|
this.logger.debug(`Creating VPCGatewayAttachment ${logicalId}`);
|
|
15495
15616
|
const vpcId = properties["VpcId"];
|
|
@@ -15554,7 +15675,9 @@ var EC2Provider = class {
|
|
|
15554
15675
|
this.logger.debug(`Waiting for NatGateway ${natGatewayId} to reach available state...`);
|
|
15555
15676
|
await waitUntilNatGatewayAvailable({
|
|
15556
15677
|
client: this.ec2Client,
|
|
15557
|
-
maxWaitTime: 900
|
|
15678
|
+
maxWaitTime: 900,
|
|
15679
|
+
minDelay: 5,
|
|
15680
|
+
maxDelay: 15
|
|
15558
15681
|
}, { NatGatewayIds: [natGatewayId] });
|
|
15559
15682
|
this.logger.debug(`NatGateway ${natGatewayId} is available`);
|
|
15560
15683
|
} else this.logger.debug(`NatGateway ${natGatewayId} created (skipping available-state wait per --no-wait)`);
|
|
@@ -15588,7 +15711,9 @@ var EC2Provider = class {
|
|
|
15588
15711
|
try {
|
|
15589
15712
|
await waitUntilNatGatewayDeleted({
|
|
15590
15713
|
client: this.ec2Client,
|
|
15591
|
-
maxWaitTime: 900
|
|
15714
|
+
maxWaitTime: 900,
|
|
15715
|
+
minDelay: 5,
|
|
15716
|
+
maxDelay: 15
|
|
15592
15717
|
}, { NatGatewayIds: [physicalId] });
|
|
15593
15718
|
} catch (error) {
|
|
15594
15719
|
this.logger.warn(`Wait for NatGateway ${physicalId} deletion did not complete cleanly: ${error instanceof Error ? error.message : String(error)} — proceeding with downstream delete steps`);
|
|
@@ -15996,7 +16121,9 @@ var EC2Provider = class {
|
|
|
15996
16121
|
this.logger.debug(`Waiting for instance ${instanceId} to be running...`);
|
|
15997
16122
|
await waitUntilInstanceRunning({
|
|
15998
16123
|
client: this.ec2Client,
|
|
15999
|
-
maxWaitTime: 300
|
|
16124
|
+
maxWaitTime: 300,
|
|
16125
|
+
minDelay: 5,
|
|
16126
|
+
maxDelay: 15
|
|
16000
16127
|
}, { InstanceIds: [instanceId] });
|
|
16001
16128
|
if (iamInstanceProfile) await this.ensureIamInstanceProfileAssociated(instanceId, iamInstanceProfile.arn, iamInstanceProfile.name, logicalId);
|
|
16002
16129
|
const runningInstance = (await this.ec2Client.send(new DescribeInstancesCommand({ InstanceIds: [instanceId] }))).Reservations?.[0]?.Instances?.[0];
|
|
@@ -16245,7 +16372,9 @@ var EC2Provider = class {
|
|
|
16245
16372
|
this.logger.debug(`Terminate requested for EC2 Instance ${logicalId}, waiting...`);
|
|
16246
16373
|
await waitUntilInstanceTerminated({
|
|
16247
16374
|
client: this.ec2Client,
|
|
16248
|
-
maxWaitTime: 300
|
|
16375
|
+
maxWaitTime: 300,
|
|
16376
|
+
minDelay: 5,
|
|
16377
|
+
maxDelay: 15
|
|
16249
16378
|
}, { InstanceIds: [physicalId] });
|
|
16250
16379
|
this.logger.debug(`EC2 Instance ${logicalId} terminated: ${physicalId}`);
|
|
16251
16380
|
return;
|
|
@@ -16748,7 +16877,7 @@ var EC2Provider = class {
|
|
|
16748
16877
|
if (!(error instanceof Error)) return false;
|
|
16749
16878
|
const message = error.message.toLowerCase();
|
|
16750
16879
|
const name = error.name ?? "";
|
|
16751
|
-
return message.includes("not found") || message.includes("does not exist") || message.includes("invalidparametervalue") || name === "InvalidVpcID.NotFound" || name === "InvalidSubnetID.NotFound" || name === "InvalidInternetGatewayID.NotFound" || name === "InvalidRouteTableID.NotFound" || name === "InvalidGroup.NotFound" || name === "InvalidAssociationID.NotFound" || name === "InvalidRoute.NotFound" || name === "InvalidInstanceID.NotFound" || name === "InvalidNetworkAclID.NotFound" || name === "InvalidNetworkAclEntry.NotFound";
|
|
16880
|
+
return message.includes("not found") || message.includes("does not exist") || message.includes("invalidparametervalue") || name === "InvalidVpcID.NotFound" || name === "InvalidSubnetID.NotFound" || name === "InvalidInternetGatewayID.NotFound" || name === "InvalidRouteTableID.NotFound" || name === "InvalidGroup.NotFound" || name === "InvalidAssociationID.NotFound" || name === "InvalidRoute.NotFound" || name === "InvalidInstanceID.NotFound" || name === "InvalidNetworkAclID.NotFound" || name === "InvalidNetworkAclEntry.NotFound" || name === "InvalidAllocationID.NotFound" || name === "InvalidAddressID.NotFound";
|
|
16752
16881
|
}
|
|
16753
16882
|
/**
|
|
16754
16883
|
* Adopt an existing EC2 networking resource into cdkd state.
|
|
@@ -17289,6 +17418,19 @@ var EC2Provider = class {
|
|
|
17289
17418
|
physicalId,
|
|
17290
17419
|
attributes: {}
|
|
17291
17420
|
} : null;
|
|
17421
|
+
case "AWS::EC2::EIP": {
|
|
17422
|
+
const { allocationId, publicIp } = this.parseEipPhysicalId(physicalId);
|
|
17423
|
+
const filter = allocationId ? { AllocationIds: [allocationId] } : { PublicIps: publicIp ? [publicIp] : [] };
|
|
17424
|
+
const addr = (await this.ec2Client.send(new DescribeAddressesCommand(filter))).Addresses?.[0];
|
|
17425
|
+
if (!addr?.AllocationId || !addr.PublicIp) return null;
|
|
17426
|
+
return {
|
|
17427
|
+
physicalId: this.eipPhysicalId(addr.PublicIp, addr.AllocationId),
|
|
17428
|
+
attributes: {
|
|
17429
|
+
AllocationId: addr.AllocationId,
|
|
17430
|
+
PublicIp: addr.PublicIp
|
|
17431
|
+
}
|
|
17432
|
+
};
|
|
17433
|
+
}
|
|
17292
17434
|
default: return null;
|
|
17293
17435
|
}
|
|
17294
17436
|
} catch (error) {
|
|
@@ -20251,9 +20393,9 @@ var CloudFrontDistributionProvider = class {
|
|
|
20251
20393
|
* Uses exponential backoff polling.
|
|
20252
20394
|
*/
|
|
20253
20395
|
async waitForDistributionStable(distributionId, expectedEnabled) {
|
|
20254
|
-
const maxAttempts =
|
|
20396
|
+
const maxAttempts = 120;
|
|
20255
20397
|
let delay = 5e3;
|
|
20256
|
-
const maxDelay =
|
|
20398
|
+
const maxDelay = 1e4;
|
|
20257
20399
|
let interrupted = false;
|
|
20258
20400
|
const sigintHandler = () => {
|
|
20259
20401
|
interrupted = true;
|
|
@@ -42308,6 +42450,7 @@ function registerAllProviders(registry) {
|
|
|
42308
42450
|
registry.register("AWS::EC2::VPC", ec2Provider);
|
|
42309
42451
|
registry.register("AWS::EC2::Subnet", ec2Provider);
|
|
42310
42452
|
registry.register("AWS::EC2::InternetGateway", ec2Provider);
|
|
42453
|
+
registry.register("AWS::EC2::EIP", ec2Provider);
|
|
42311
42454
|
registry.register("AWS::EC2::VPCGatewayAttachment", ec2Provider);
|
|
42312
42455
|
registry.register("AWS::EC2::NatGateway", ec2Provider);
|
|
42313
42456
|
registry.register("AWS::EC2::RouteTable", ec2Provider);
|
|
@@ -61867,7 +62010,7 @@ function createMigrateCommand() {
|
|
|
61867
62010
|
*/
|
|
61868
62011
|
function buildProgram() {
|
|
61869
62012
|
const program = new Command();
|
|
61870
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.260.
|
|
62013
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.260.9");
|
|
61871
62014
|
program.addCommand(createBootstrapCommand());
|
|
61872
62015
|
program.addCommand(createSynthCommand());
|
|
61873
62016
|
program.addCommand(createListCommand());
|