@go-to-k/cdkd 0.268.3 → 0.268.5
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-bxS6B6Ja.js → asg-provider-Beq_IUQH.js} +2 -2
- package/dist/{asg-provider-bxS6B6Ja.js.map → asg-provider-Beq_IUQH.js.map} +1 -1
- package/dist/cli.js +107 -15
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-DEi5-8x-.js → deploy-engine-IGjv53i5.js} +18 -9
- package/dist/deploy-engine-IGjv53i5.js.map +1 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-DEi5-8x-.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as WorkGraph, A as slowCcOperationTimeoutMs, At as warnDeprecatedNoPrefixCliFlag, B as applyRoleArnIfSet, Bt as resolveBucketRegion, C as yellow, Ct as resolveAutoAssetStorage, D as ProviderRegistry, Dt as resolveStateBucketWithDefaultAndSource, E as clearOnUpdateRemoval, Et as resolveStateBucketWithDefault, F as refStateLookupFromResource, Ft as uploadCfnTemplate, G as DagBuilder, H as describeTypeWithThrottleRetry, Ht as getAwsClients, I as WAFv2WebACLProvider, It as expectedOwnerParam, J as S3StateBackend, K as TemplateParser, Kt as CdkdError, L as normalizeAwsTagsToCfn, Lt as AssemblyReader, M as isTerminationProtectionPropagationError, Mt as CFN_TEMPLATE_URL_LIMIT, N as IntrinsicFunctionResolver, Nt as MIGRATE_TMP_PREFIX, O as findActionableSilentDrops, Ot as resolveUseCdkBootstrapAssets, P as cfnRefValueFromPhysicalId, Pt as findLargeInlineResources, Q as stringifyValue, Qt as LocalStartServiceError, R as resolveExplicitPhysicalId, Rt as processStackMessages, S as red, St as resolveApp, T as collectInlinePolicyNamesManagedBySiblings, Tt as resolveSkipPrefix, U as withRetry, Ut as resetAwsClients, V as DiffCalculator, Vt as AwsClients, W as isRetryableTransientError, Wt as setAwsClients, X as shouldRetainResource, Xt as LocalInvokeBuildError$1, Y as rebuildClientForBucketRegion, Yt as DeployCancelledError, Z as AssetPublisher, Zt as LocalMigrateError, _ as formatResourceLine, _t as getDockerImageBySourceHash, a as DeploymentEventsStore, an as ResourceUpdateNotSupportedError, at as BOOTSTRAP_MARKER_PREFIX, b as gray, bt as getDefaultStateBucketName, c as replayFailedOperations, ct as parseBootstrapMarker, d as IMPLICIT_DELETE_DEPENDENCIES, dt as buildDockerImage, en as MissingCdkCliError, et as buildAssetRedirectMap, f as computeImplicitDeleteEdges, fn as normalizeAwsError, ft as formatDockerLoginError, g as renderStatefulReason, gt as AssetManifestLoader, h as isStatefulRecreateTargetSync, ht as runDockerStreaming, i as DeploymentEventsReader, in as ResourceTimeoutError, it as AssetModeResolver, j as disableInstanceApiTermination, jt as CFN_TEMPLATE_BODY_LIMIT, k as CloudControlProvider, kt as stateBucketExistenceConfirmed, l as replayRollback, lt as validateAssetBucketName, m as MULTI_REGION_RECREATE_BLOCKED_TYPES, mt as runDockerForeground, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as PartialFailureError, nt as loadPublishableAssetManifest, o as planFailedOps, on as StackHasActiveImportsError, ot as ensureAssetStorage, p as extractDeploymentEventError, pn as withErrorHandling, pt as getDockerCmd, q as LockManager, r as DeployEngine, rn as ProvisioningError, rt as rewriteTemplateAssetReferences, s as planRollback, sn as StackTerminationProtectionError, st as getBootstrapMarkerKey, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as NestedStackChildDirectDestroyError, tt as createAssetRedirectResolver, u as withResourceDeadline, ut as validateContainerRepoName, v as bold, vt as Synthesizer, w as IAMRoleProvider, wt as resolveCaptureObservedState, x as green, xt as getLegacyStateBucketName, y as cyan, yt as synthesisStatusMessage, z as assertRegionMatch } from "./deploy-engine-
|
|
2
|
+
import { $ as WorkGraph, A as slowCcOperationTimeoutMs, At as warnDeprecatedNoPrefixCliFlag, B as applyRoleArnIfSet, Bt as resolveBucketRegion, C as yellow, Ct as resolveAutoAssetStorage, D as ProviderRegistry, Dt as resolveStateBucketWithDefaultAndSource, E as clearOnUpdateRemoval, Et as resolveStateBucketWithDefault, F as refStateLookupFromResource, Ft as uploadCfnTemplate, G as DagBuilder, H as describeTypeWithThrottleRetry, Ht as getAwsClients, I as WAFv2WebACLProvider, It as expectedOwnerParam, J as S3StateBackend, K as TemplateParser, Kt as CdkdError, L as normalizeAwsTagsToCfn, Lt as AssemblyReader, M as isTerminationProtectionPropagationError, Mt as CFN_TEMPLATE_URL_LIMIT, N as IntrinsicFunctionResolver, Nt as MIGRATE_TMP_PREFIX, O as findActionableSilentDrops, Ot as resolveUseCdkBootstrapAssets, P as cfnRefValueFromPhysicalId, Pt as findLargeInlineResources, Q as stringifyValue, Qt as LocalStartServiceError, R as resolveExplicitPhysicalId, Rt as processStackMessages, S as red, St as resolveApp, T as collectInlinePolicyNamesManagedBySiblings, Tt as resolveSkipPrefix, U as withRetry, Ut as resetAwsClients, V as DiffCalculator, Vt as AwsClients, W as isRetryableTransientError, Wt as setAwsClients, X as shouldRetainResource, Xt as LocalInvokeBuildError$1, Y as rebuildClientForBucketRegion, Yt as DeployCancelledError, Z as AssetPublisher, Zt as LocalMigrateError, _ as formatResourceLine, _t as getDockerImageBySourceHash, a as DeploymentEventsStore, an as ResourceUpdateNotSupportedError, at as BOOTSTRAP_MARKER_PREFIX, b as gray, bt as getDefaultStateBucketName, c as replayFailedOperations, ct as parseBootstrapMarker, d as IMPLICIT_DELETE_DEPENDENCIES, dt as buildDockerImage, en as MissingCdkCliError, et as buildAssetRedirectMap, f as computeImplicitDeleteEdges, fn as normalizeAwsError, ft as formatDockerLoginError, g as renderStatefulReason, gt as AssetManifestLoader, h as isStatefulRecreateTargetSync, ht as runDockerStreaming, i as DeploymentEventsReader, in as ResourceTimeoutError, it as AssetModeResolver, j as disableInstanceApiTermination, jt as CFN_TEMPLATE_BODY_LIMIT, k as CloudControlProvider, kt as stateBucketExistenceConfirmed, l as replayRollback, lt as validateAssetBucketName, m as MULTI_REGION_RECREATE_BLOCKED_TYPES, mt as runDockerForeground, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as PartialFailureError, nt as loadPublishableAssetManifest, o as planFailedOps, on as StackHasActiveImportsError, ot as ensureAssetStorage, p as extractDeploymentEventError, pn as withErrorHandling, pt as getDockerCmd, q as LockManager, r as DeployEngine, rn as ProvisioningError, rt as rewriteTemplateAssetReferences, s as planRollback, sn as StackTerminationProtectionError, st as getBootstrapMarkerKey, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as NestedStackChildDirectDestroyError, tt as createAssetRedirectResolver, u as withResourceDeadline, ut as validateContainerRepoName, v as bold, vt as Synthesizer, w as IAMRoleProvider, wt as resolveCaptureObservedState, x as green, xt as getLegacyStateBucketName, y as cyan, yt as synthesisStatusMessage, z as assertRegionMatch } from "./deploy-engine-IGjv53i5.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-Beq_IUQH.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";
|
|
@@ -404,6 +404,28 @@ function validateWaitFlags(opts) {
|
|
|
404
404
|
if (opts.wait === false && opts.fullWait === true) throw new Error("--no-wait and --full-wait cannot be combined: --no-wait skips stabilization waits, --full-wait adds them. Pick one.");
|
|
405
405
|
}
|
|
406
406
|
/**
|
|
407
|
+
* Validate the wait-flag pair and project it onto the process env the
|
|
408
|
+
* providers read. One helper instead of three separate lines in deploy.ts
|
|
409
|
+
* so the validation, the two mode envs, and the availability marker cannot
|
|
410
|
+
* drift apart individually (issue #1291 item 6 — the wiring had no unit
|
|
411
|
+
* coverage because it lived inline in the deploy command's action).
|
|
412
|
+
*
|
|
413
|
+
* - `CDKD_NO_WAIT` — set when `--no-wait` was passed; providers skip
|
|
414
|
+
* convenience stabilization waits.
|
|
415
|
+
* - `CDKD_FULL_WAIT` — set when `--full-wait` was passed; providers add
|
|
416
|
+
* the CloudFormation-side waits cdkd skips by default.
|
|
417
|
+
* - `CDKD_WAIT_FLAGS_AVAILABLE` — set unconditionally by commands that
|
|
418
|
+
* DECLARE the wait flags (today: deploy). Providers gate flag-mentioning
|
|
419
|
+
* hints on it, so `cdkd drift --revert` reaching the same provider code
|
|
420
|
+
* never advertises a flag drift does not accept (issue #1291 item 1).
|
|
421
|
+
*/
|
|
422
|
+
function applyWaitFlagEnv(opts) {
|
|
423
|
+
validateWaitFlags(opts);
|
|
424
|
+
process.env["CDKD_WAIT_FLAGS_AVAILABLE"] = "true";
|
|
425
|
+
if (opts.wait === false) process.env["CDKD_NO_WAIT"] = "true";
|
|
426
|
+
if (opts.fullWait === true) process.env["CDKD_FULL_WAIT"] = "true";
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
407
429
|
* Drop the CDK-injected defensive `DependsOn` edges from VPC Lambdas (and
|
|
408
430
|
* adjacent IAM Role / Policy / Lambda::Url / EventSourceMapping resources)
|
|
409
431
|
* onto the private subnet's `DefaultRoute` / `RouteTableAssociation`. CDK
|
|
@@ -8446,7 +8468,9 @@ var LambdaFunctionProvider = class {
|
|
|
8446
8468
|
try {
|
|
8447
8469
|
await waitUntilFunctionUpdatedV2({
|
|
8448
8470
|
client: this.lambdaClient,
|
|
8449
|
-
maxWaitTime: this.functionUpdateMaxWaitSeconds
|
|
8471
|
+
maxWaitTime: this.functionUpdateMaxWaitSeconds,
|
|
8472
|
+
minDelay: 1,
|
|
8473
|
+
maxDelay: 5
|
|
8450
8474
|
}, { FunctionName: functionName });
|
|
8451
8475
|
} catch (error) {
|
|
8452
8476
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -14821,6 +14845,7 @@ var EC2Provider = class {
|
|
|
14821
14845
|
"BlockDeviceMappings",
|
|
14822
14846
|
"Tags",
|
|
14823
14847
|
"AvailabilityZone",
|
|
14848
|
+
"NetworkInterfaces",
|
|
14824
14849
|
"DisableApiTermination",
|
|
14825
14850
|
"MetadataOptions",
|
|
14826
14851
|
"Monitoring",
|
|
@@ -15893,10 +15918,12 @@ var EC2Provider = class {
|
|
|
15893
15918
|
const securityGroupIds = properties["SecurityGroupIds"];
|
|
15894
15919
|
const securityGroups = properties["SecurityGroups"];
|
|
15895
15920
|
const iamInstanceProfile = this.normalizeIamInstanceProfile(properties["IamInstanceProfile"]);
|
|
15921
|
+
const networkInterfaces = this.buildNetworkInterfaces(properties);
|
|
15896
15922
|
const instance = (await this.ec2Client.send(new RunInstancesCommand({
|
|
15897
15923
|
ImageId: imageId,
|
|
15898
15924
|
InstanceType: instanceType,
|
|
15899
15925
|
KeyName: properties["KeyName"] ?? void 0,
|
|
15926
|
+
NetworkInterfaces: networkInterfaces,
|
|
15900
15927
|
SecurityGroupIds: securityGroupIds ?? void 0,
|
|
15901
15928
|
SecurityGroups: securityGroups ?? void 0,
|
|
15902
15929
|
SubnetId: properties["SubnetId"] ?? void 0,
|
|
@@ -16293,6 +16320,48 @@ var EC2Provider = class {
|
|
|
16293
16320
|
return { AvailabilityZone: az };
|
|
16294
16321
|
}
|
|
16295
16322
|
/**
|
|
16323
|
+
* Map the CFn `AWS::EC2::Instance.NetworkInterfaces` list onto
|
|
16324
|
+
* RunInstances' `NetworkInterfaces` input (issue #1281). Every CFn
|
|
16325
|
+
* sub-field is mapped (dropping a sub-field silently would be the #1225
|
|
16326
|
+
* bug class one level down): the two casing/shape divergences are
|
|
16327
|
+
* `GroupSet` -> `Groups` and CFn's stringly-typed numerics
|
|
16328
|
+
* (`DeviceIndex`, `Ipv6AddressCount`, `SecondaryPrivateIpAddressCount`
|
|
16329
|
+
* arrive as strings from CDK) -> numbers.
|
|
16330
|
+
*/
|
|
16331
|
+
buildNetworkInterfaces(properties) {
|
|
16332
|
+
const raw = properties["NetworkInterfaces"];
|
|
16333
|
+
if (!Array.isArray(raw) || raw.length === 0) return void 0;
|
|
16334
|
+
return raw.map((entry) => {
|
|
16335
|
+
const ni = entry ?? {};
|
|
16336
|
+
return {
|
|
16337
|
+
DeviceIndex: this.coerceNumber(ni["DeviceIndex"]),
|
|
16338
|
+
SubnetId: ni["SubnetId"] ?? void 0,
|
|
16339
|
+
Groups: ni["GroupSet"] ?? void 0,
|
|
16340
|
+
AssociatePublicIpAddress: this.coerceBool(ni["AssociatePublicIpAddress"]),
|
|
16341
|
+
AssociateCarrierIpAddress: this.coerceBool(ni["AssociateCarrierIpAddress"]),
|
|
16342
|
+
DeleteOnTermination: this.coerceBool(ni["DeleteOnTermination"]),
|
|
16343
|
+
Description: ni["Description"] ?? void 0,
|
|
16344
|
+
NetworkInterfaceId: ni["NetworkInterfaceId"] ?? void 0,
|
|
16345
|
+
PrivateIpAddress: ni["PrivateIpAddress"] ?? void 0,
|
|
16346
|
+
Ipv6AddressCount: this.coerceNumber(ni["Ipv6AddressCount"]),
|
|
16347
|
+
Ipv6Addresses: Array.isArray(ni["Ipv6Addresses"]) ? ni["Ipv6Addresses"].map((a) => ({ Ipv6Address: a?.["Ipv6Address"] ?? void 0 })) : void 0,
|
|
16348
|
+
PrivateIpAddresses: Array.isArray(ni["PrivateIpAddresses"]) ? ni["PrivateIpAddresses"].map((a) => ({
|
|
16349
|
+
Primary: this.coerceBool(a?.["Primary"]),
|
|
16350
|
+
PrivateIpAddress: a?.["PrivateIpAddress"] ?? void 0
|
|
16351
|
+
})) : void 0,
|
|
16352
|
+
SecondaryPrivateIpAddressCount: this.coerceNumber(ni["SecondaryPrivateIpAddressCount"])
|
|
16353
|
+
};
|
|
16354
|
+
});
|
|
16355
|
+
}
|
|
16356
|
+
/**
|
|
16357
|
+
* CFn numerics are stringly typed on the wire ("0", not 0); RunInstances
|
|
16358
|
+
* wants numbers. Tolerate both, return undefined for anything else.
|
|
16359
|
+
*/
|
|
16360
|
+
coerceNumber(value) {
|
|
16361
|
+
if (typeof value === "number" && Number.isFinite(value)) return value;
|
|
16362
|
+
if (typeof value === "string" && value.trim() !== "" && Number.isFinite(Number(value))) return Number(value);
|
|
16363
|
+
}
|
|
16364
|
+
/**
|
|
16296
16365
|
* Build the RunInstances `CreditSpecification` shape from the CFn
|
|
16297
16366
|
* `CreditSpecification` object. CFn uses `CPUCredits` (capital CPU, the
|
|
16298
16367
|
* canonical CDK `CfnInstance` emission); accept the SDK-style `CpuCredits`
|
|
@@ -16870,6 +16939,7 @@ var EC2Provider = class {
|
|
|
16870
16939
|
*/
|
|
16871
16940
|
getDriftUnknownPaths(resourceType) {
|
|
16872
16941
|
switch (resourceType) {
|
|
16942
|
+
case "AWS::EC2::Instance": return ["NetworkInterfaces"];
|
|
16873
16943
|
case "AWS::EC2::Route":
|
|
16874
16944
|
case "AWS::EC2::VPCGatewayAttachment":
|
|
16875
16945
|
case "AWS::EC2::SubnetRouteTableAssociation":
|
|
@@ -16979,6 +17049,15 @@ var EC2Provider = class {
|
|
|
16979
17049
|
}
|
|
16980
17050
|
if (instance.Placement?.Tenancy !== void 0) result["Tenancy"] = instance.Placement.Tenancy;
|
|
16981
17051
|
if (instance.IamInstanceProfile?.Arn !== void 0) result["IamInstanceProfile"] = instance.IamInstanceProfile.Arn;
|
|
17052
|
+
else if (process.env["CDKD_NO_WAIT"] === "true" && instance.State?.Name === "pending") try {
|
|
17053
|
+
const live = (await this.ec2Client.send(new DescribeIamInstanceProfileAssociationsCommand({ Filters: [{
|
|
17054
|
+
Name: "instance-id",
|
|
17055
|
+
Values: [physicalId]
|
|
17056
|
+
}] }))).IamInstanceProfileAssociations?.find((a) => a.State === "associated" || a.State === "associating");
|
|
17057
|
+
if (live?.IamInstanceProfile?.Arn !== void 0) result["IamInstanceProfile"] = live.IamInstanceProfile.Arn;
|
|
17058
|
+
} catch (error) {
|
|
17059
|
+
this.logger.warn(`Could not backfill IamInstanceProfile for ${physicalId} during the --no-wait capture (${error instanceof Error ? error.message : String(error)}); the field is omitted from the observed snapshot`);
|
|
17060
|
+
}
|
|
16982
17061
|
const volumeIds = (instance.BlockDeviceMappings ?? []).filter((m) => m.Ebs?.VolumeId !== void 0).map((m) => m.Ebs.VolumeId);
|
|
16983
17062
|
let volumesById = /* @__PURE__ */ new Map();
|
|
16984
17063
|
if (volumeIds.length > 0) try {
|
|
@@ -22533,7 +22612,8 @@ var ECSProvider = class {
|
|
|
22533
22612
|
return;
|
|
22534
22613
|
}
|
|
22535
22614
|
const clusterArg = cluster ? ` --cluster ${cluster}` : "";
|
|
22536
|
-
|
|
22615
|
+
const fullWaitHint = process.env["CDKD_WAIT_FLAGS_AVAILABLE"] === "true" ? "; pass --full-wait to wait" : "";
|
|
22616
|
+
this.logger.info(`ECS service ${logicalId} accepted (not waiting for steady state${fullWaitHint}). To wait manually: aws ecs wait services-stable${clusterArg} --services ${serviceRef}`);
|
|
22537
22617
|
}
|
|
22538
22618
|
async updateService(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
22539
22619
|
this.logger.debug(`Updating ECS service ${logicalId}: ${physicalId}`);
|
|
@@ -43079,13 +43159,11 @@ async function deployCommand(stacks, options) {
|
|
|
43079
43159
|
}
|
|
43080
43160
|
warnIfDeprecatedRegion(options);
|
|
43081
43161
|
validateResourceTimeouts(options);
|
|
43082
|
-
|
|
43162
|
+
applyWaitFlagEnv(options);
|
|
43083
43163
|
await applyRoleArnIfSet({
|
|
43084
43164
|
roleArn: options.roleArn,
|
|
43085
43165
|
region: options.region
|
|
43086
43166
|
});
|
|
43087
|
-
if (!options.wait) process.env["CDKD_NO_WAIT"] = "true";
|
|
43088
|
-
if (options.fullWait) process.env["CDKD_FULL_WAIT"] = "true";
|
|
43089
43167
|
warnDeprecatedNoPrefixCliFlag();
|
|
43090
43168
|
const skipPrefix = resolveSkipPrefix({ prefixUserSuppliedNames: options.prefixUserSuppliedNames });
|
|
43091
43169
|
if (skipPrefix) logger.debug("Skipping stack-name prefix on user-supplied physical names (default since v0.94.0)");
|
|
@@ -43944,7 +44022,9 @@ async function retireCloudFormationStack(options) {
|
|
|
43944
44022
|
}
|
|
43945
44023
|
if (updateRan) await waitUntilStackUpdateComplete({
|
|
43946
44024
|
client: cfnClient,
|
|
43947
|
-
maxWaitTime: 1800
|
|
44025
|
+
maxWaitTime: 1800,
|
|
44026
|
+
minDelay: 5,
|
|
44027
|
+
maxDelay: 10
|
|
43948
44028
|
}, { StackName: cfnStackName });
|
|
43949
44029
|
} finally {
|
|
43950
44030
|
const allCleanups = [...s3Cleanup ? [s3Cleanup] : [], ...nestedCleanups];
|
|
@@ -43960,7 +44040,9 @@ async function retireCloudFormationStack(options) {
|
|
|
43960
44040
|
await cfnClient.send(new DeleteStackCommand({ StackName: cfnStackName }));
|
|
43961
44041
|
await waitUntilStackDeleteComplete({
|
|
43962
44042
|
client: cfnClient,
|
|
43963
|
-
maxWaitTime: 1800
|
|
44043
|
+
maxWaitTime: 1800,
|
|
44044
|
+
minDelay: 5,
|
|
44045
|
+
maxDelay: 10
|
|
43964
44046
|
}, { StackName: cfnStackName });
|
|
43965
44047
|
logger.info(`✓ CloudFormation stack '${cfnStackName}' retired. AWS resources are now solely managed by cdkd.`);
|
|
43966
44048
|
return { outcome: modified ? "retired" : "no-template-change" };
|
|
@@ -48153,7 +48235,9 @@ async function submitImportChangeSet(cfnClient, stackName, template, resourcesTo
|
|
|
48153
48235
|
try {
|
|
48154
48236
|
await waitUntilChangeSetCreateComplete({
|
|
48155
48237
|
client: cfnClient,
|
|
48156
|
-
maxWaitTime: 600
|
|
48238
|
+
maxWaitTime: 600,
|
|
48239
|
+
minDelay: 2,
|
|
48240
|
+
maxDelay: 5
|
|
48157
48241
|
}, {
|
|
48158
48242
|
StackName: stackName,
|
|
48159
48243
|
ChangeSetName: changeSetName
|
|
@@ -48182,7 +48266,9 @@ async function submitImportChangeSet(cfnClient, stackName, template, resourcesTo
|
|
|
48182
48266
|
}));
|
|
48183
48267
|
await waitUntilStackImportComplete({
|
|
48184
48268
|
client: cfnClient,
|
|
48185
|
-
maxWaitTime: 3600
|
|
48269
|
+
maxWaitTime: 3600,
|
|
48270
|
+
minDelay: 5,
|
|
48271
|
+
maxDelay: 10
|
|
48186
48272
|
}, { StackName: stackName });
|
|
48187
48273
|
} catch (err) {
|
|
48188
48274
|
const failureSummary = await collectImportFailureSummary(cfnClient, stackName).catch(() => "");
|
|
@@ -48282,7 +48368,9 @@ async function flipStackToUpdateComplete(cfnClient, cfnStackName, parameters) {
|
|
|
48282
48368
|
}));
|
|
48283
48369
|
await waitUntilStackUpdateComplete({
|
|
48284
48370
|
client: cfnClient,
|
|
48285
|
-
maxWaitTime: 1800
|
|
48371
|
+
maxWaitTime: 1800,
|
|
48372
|
+
minDelay: 5,
|
|
48373
|
+
maxDelay: 10
|
|
48286
48374
|
}, { StackName: cfnStackName });
|
|
48287
48375
|
}
|
|
48288
48376
|
/**
|
|
@@ -48881,7 +48969,9 @@ async function executeUpdateChangeSet(cfnClient, stackName, template, parameters
|
|
|
48881
48969
|
try {
|
|
48882
48970
|
await waitUntilChangeSetCreateComplete({
|
|
48883
48971
|
client: cfnClient,
|
|
48884
|
-
maxWaitTime: 600
|
|
48972
|
+
maxWaitTime: 600,
|
|
48973
|
+
minDelay: 2,
|
|
48974
|
+
maxDelay: 5
|
|
48885
48975
|
}, {
|
|
48886
48976
|
StackName: stackName,
|
|
48887
48977
|
ChangeSetName: changeSetName
|
|
@@ -48910,7 +49000,9 @@ async function executeUpdateChangeSet(cfnClient, stackName, template, parameters
|
|
|
48910
49000
|
}));
|
|
48911
49001
|
await waitUntilStackUpdateComplete({
|
|
48912
49002
|
client: cfnClient,
|
|
48913
|
-
maxWaitTime: 3600
|
|
49003
|
+
maxWaitTime: 3600,
|
|
49004
|
+
minDelay: 5,
|
|
49005
|
+
maxDelay: 10
|
|
48914
49006
|
}, { StackName: stackName });
|
|
48915
49007
|
} catch (err) {
|
|
48916
49008
|
await cfnClient.send(new DeleteChangeSetCommand({
|
|
@@ -62725,7 +62817,7 @@ function createMigrateCommand() {
|
|
|
62725
62817
|
*/
|
|
62726
62818
|
function buildProgram() {
|
|
62727
62819
|
const program = new Command();
|
|
62728
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.268.
|
|
62820
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.268.5");
|
|
62729
62821
|
program.hook("preAction", (_thisCommand, actionCommand) => {
|
|
62730
62822
|
const { profile } = actionCommand.optsWithGlobals();
|
|
62731
62823
|
if (profile !== void 0) process.env["AWS_PROFILE"] = profile;
|