@go-to-k/cdkd 0.250.0 → 0.251.0
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/cli.js +193 -43
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1888,7 +1888,7 @@ const FLUSH_INTERVAL_MS = 2e3;
|
|
|
1888
1888
|
const FLUSH_EVENT_THRESHOLD = 50;
|
|
1889
1889
|
/** Build-time cdkd version, with a dev fallback for non-built contexts. */
|
|
1890
1890
|
function getCdkdVersion() {
|
|
1891
|
-
return "0.
|
|
1891
|
+
return "0.251.0";
|
|
1892
1892
|
}
|
|
1893
1893
|
/**
|
|
1894
1894
|
* Generate a time-sortable unique run id, e.g.
|
|
@@ -34494,6 +34494,11 @@ const VARIANT_CONFIG_KEY = {
|
|
|
34494
34494
|
ONTAP: "OntapConfiguration",
|
|
34495
34495
|
OPENZFS: "OpenZFSConfiguration"
|
|
34496
34496
|
};
|
|
34497
|
+
/**
|
|
34498
|
+
* Exported so a unit test can assert every declared-mutable sub-property has
|
|
34499
|
+
* a matching `apply*UpdateField` case — the invariant the unreachable
|
|
34500
|
+
* `default:` guard enforces at runtime.
|
|
34501
|
+
*/
|
|
34497
34502
|
const VARIANT_MUTABLE_SUBPROPS = {
|
|
34498
34503
|
LustreConfiguration: LUSTRE_MUTABLE_SUBPROPS,
|
|
34499
34504
|
WindowsConfiguration: WINDOWS_MUTABLE_SUBPROPS,
|
|
@@ -34501,6 +34506,21 @@ const VARIANT_MUTABLE_SUBPROPS = {
|
|
|
34501
34506
|
OpenZFSConfiguration: OPENZFS_MUTABLE_SUBPROPS
|
|
34502
34507
|
};
|
|
34503
34508
|
/**
|
|
34509
|
+
* Copy `value` into `target[key]` only when AWS actually returned it, so the
|
|
34510
|
+
* snapshot carries no `undefined`-valued keys.
|
|
34511
|
+
*
|
|
34512
|
+
* The drift comparator walks the BASELINE's keys (`observedProperties`, or
|
|
34513
|
+
* `properties` when a resource predates observed-capture), not the AWS side —
|
|
34514
|
+
* so an omitted key here is not itself phantom drift. It matters because this
|
|
34515
|
+
* snapshot BECOMES the next baseline: `deploy-engine` stores it as
|
|
34516
|
+
* `observedProperties`, and an explicit `Foo: undefined` would then be walked
|
|
34517
|
+
* as a real key on every later comparison. Omitting is also what keeps the
|
|
34518
|
+
* emitted shape a faithful subset of the CFn input shape.
|
|
34519
|
+
*/
|
|
34520
|
+
const putIfDefined = (target, key, value) => {
|
|
34521
|
+
if (value !== void 0) target[key] = value;
|
|
34522
|
+
};
|
|
34523
|
+
/**
|
|
34504
34524
|
* Compute the Add/Remove route-table-id deltas an ONTAP / OpenZFS
|
|
34505
34525
|
* `UpdateFileSystem` needs from the previous vs. next `RouteTableIds` list.
|
|
34506
34526
|
* Route table membership is an unordered set, so a pure reorder yields no
|
|
@@ -34927,14 +34947,30 @@ var FSxFileSystemProvider = class {
|
|
|
34927
34947
|
const prevVal = prev[key];
|
|
34928
34948
|
if (JSON.stringify(nextVal) === JSON.stringify(prevVal)) continue;
|
|
34929
34949
|
if (!mutable.has(key)) throw new ResourceUpdateNotSupportedError(resourceType, logicalId, `AWS FSx FileSystem ${configKey}.${key} is immutable on AWS — UpdateFileSystem cannot change it after creation. Re-deploy with cdkd deploy --replace, or destroy + redeploy the stack.`);
|
|
34930
|
-
|
|
34950
|
+
const ctx = {
|
|
34951
|
+
resourceType,
|
|
34952
|
+
logicalId,
|
|
34953
|
+
configKey
|
|
34954
|
+
};
|
|
34955
|
+
if (configKey === "LustreConfiguration" ? this.applyLustreUpdateField(ctx, key, nextVal, diff) : configKey === "WindowsConfiguration" ? this.applyWindowsUpdateField(ctx, key, nextVal, diff) : configKey === "OntapConfiguration" ? this.applyOntapUpdateField(ctx, key, nextVal, prevVal, diff) : this.applyOpenZFSUpdateField(ctx, key, nextVal, prevVal, diff)) hasMutableDiff = true;
|
|
34931
34956
|
}
|
|
34932
34957
|
return {
|
|
34933
34958
|
diff,
|
|
34934
34959
|
hasMutableDiff
|
|
34935
34960
|
};
|
|
34936
34961
|
}
|
|
34937
|
-
|
|
34962
|
+
/**
|
|
34963
|
+
* A sub-property listed in a `*_MUTABLE_SUBPROPS` set with no matching
|
|
34964
|
+
* `apply*UpdateField` case. Reaching here is a cdkd bug, not user error:
|
|
34965
|
+
* `computeVariantConfigDiff` already accepted the key as mutable, so
|
|
34966
|
+
* falling through would issue a no-op `UpdateFileSystem` (`hasMutableDiff`
|
|
34967
|
+
* true, empty diff) and silently drop the user's change. Fail loudly
|
|
34968
|
+
* instead so the missing mapping surfaces the moment it is added.
|
|
34969
|
+
*/
|
|
34970
|
+
unmappedMutableSubprop(ctx, key) {
|
|
34971
|
+
throw new ProvisioningError(`AWS FSx FileSystem ${ctx.configKey}.${key} is declared mutable but has no UpdateFileSystem mapping in cdkd. This is a cdkd bug — please report it at https://github.com/go-to-k/cdkd/issues`, ctx.resourceType, ctx.logicalId);
|
|
34972
|
+
}
|
|
34973
|
+
applyLustreUpdateField(ctx, key, next, diff) {
|
|
34938
34974
|
const out = diff;
|
|
34939
34975
|
switch (key) {
|
|
34940
34976
|
case "WeeklyMaintenanceStartTime":
|
|
@@ -34966,10 +35002,11 @@ var FSxFileSystemProvider = class {
|
|
|
34966
35002
|
} : void 0;
|
|
34967
35003
|
break;
|
|
34968
35004
|
}
|
|
35005
|
+
default: this.unmappedMutableSubprop(ctx, key);
|
|
34969
35006
|
}
|
|
34970
35007
|
return true;
|
|
34971
35008
|
}
|
|
34972
|
-
applyWindowsUpdateField(key, next, diff) {
|
|
35009
|
+
applyWindowsUpdateField(ctx, key, next, diff) {
|
|
34973
35010
|
const out = diff;
|
|
34974
35011
|
switch (key) {
|
|
34975
35012
|
case "WeeklyMaintenanceStartTime":
|
|
@@ -34992,10 +35029,11 @@ var FSxFileSystemProvider = class {
|
|
|
34992
35029
|
case "FsrmConfiguration":
|
|
34993
35030
|
out.FsrmConfiguration = this.toWindowsFsrmConfiguration(next);
|
|
34994
35031
|
break;
|
|
35032
|
+
default: this.unmappedMutableSubprop(ctx, key);
|
|
34995
35033
|
}
|
|
34996
35034
|
return true;
|
|
34997
35035
|
}
|
|
34998
|
-
applyOntapUpdateField(key, next, prev, diff) {
|
|
35036
|
+
applyOntapUpdateField(ctx, key, next, prev, diff) {
|
|
34999
35037
|
const out = diff;
|
|
35000
35038
|
switch (key) {
|
|
35001
35039
|
case "DailyAutomaticBackupStartTime":
|
|
@@ -35019,10 +35057,11 @@ var FSxFileSystemProvider = class {
|
|
|
35019
35057
|
if (remove) out.RemoveRouteTableIds = remove;
|
|
35020
35058
|
return add !== void 0 || remove !== void 0;
|
|
35021
35059
|
}
|
|
35060
|
+
default: this.unmappedMutableSubprop(ctx, key);
|
|
35022
35061
|
}
|
|
35023
35062
|
return true;
|
|
35024
35063
|
}
|
|
35025
|
-
applyOpenZFSUpdateField(key, next, prev, diff) {
|
|
35064
|
+
applyOpenZFSUpdateField(ctx, key, next, prev, diff) {
|
|
35026
35065
|
const out = diff;
|
|
35027
35066
|
switch (key) {
|
|
35028
35067
|
case "DailyAutomaticBackupStartTime":
|
|
@@ -35050,6 +35089,7 @@ var FSxFileSystemProvider = class {
|
|
|
35050
35089
|
if (remove) out.RemoveRouteTableIds = remove;
|
|
35051
35090
|
return add !== void 0 || remove !== void 0;
|
|
35052
35091
|
}
|
|
35092
|
+
default: this.unmappedMutableSubprop(ctx, key);
|
|
35053
35093
|
}
|
|
35054
35094
|
return true;
|
|
35055
35095
|
}
|
|
@@ -35223,28 +35263,122 @@ var FSxFileSystemProvider = class {
|
|
|
35223
35263
|
default: return;
|
|
35224
35264
|
}
|
|
35225
35265
|
}
|
|
35266
|
+
/** Map the read-side `WindowsConfiguration` back to CFn input shape. */
|
|
35267
|
+
readWindowsConfiguration(windows) {
|
|
35268
|
+
const config = {};
|
|
35269
|
+
putIfDefined(config, "ActiveDirectoryId", windows.ActiveDirectoryId);
|
|
35270
|
+
putIfDefined(config, "DeploymentType", windows.DeploymentType);
|
|
35271
|
+
putIfDefined(config, "PreferredSubnetId", windows.PreferredSubnetId);
|
|
35272
|
+
putIfDefined(config, "ThroughputCapacity", windows.ThroughputCapacity);
|
|
35273
|
+
putIfDefined(config, "WeeklyMaintenanceStartTime", windows.WeeklyMaintenanceStartTime);
|
|
35274
|
+
putIfDefined(config, "DailyAutomaticBackupStartTime", windows.DailyAutomaticBackupStartTime);
|
|
35275
|
+
putIfDefined(config, "AutomaticBackupRetentionDays", windows.AutomaticBackupRetentionDays);
|
|
35276
|
+
putIfDefined(config, "CopyTagsToBackups", windows.CopyTagsToBackups);
|
|
35277
|
+
if (windows.Aliases !== void 0) config["Aliases"] = windows.Aliases.map((alias) => alias.Name).filter((name) => name !== void 0);
|
|
35278
|
+
if (windows.SelfManagedActiveDirectoryConfiguration) {
|
|
35279
|
+
const ad = windows.SelfManagedActiveDirectoryConfiguration;
|
|
35280
|
+
const adConfig = {};
|
|
35281
|
+
putIfDefined(adConfig, "DomainName", ad.DomainName);
|
|
35282
|
+
putIfDefined(adConfig, "OrganizationalUnitDistinguishedName", ad.OrganizationalUnitDistinguishedName);
|
|
35283
|
+
putIfDefined(adConfig, "FileSystemAdministratorsGroup", ad.FileSystemAdministratorsGroup);
|
|
35284
|
+
putIfDefined(adConfig, "UserName", ad.UserName);
|
|
35285
|
+
putIfDefined(adConfig, "DnsIps", ad.DnsIps ? [...ad.DnsIps] : void 0);
|
|
35286
|
+
putIfDefined(adConfig, "DomainJoinServiceAccountSecret", ad.DomainJoinServiceAccountSecret);
|
|
35287
|
+
if (Object.keys(adConfig).length > 0) config["SelfManagedActiveDirectoryConfiguration"] = adConfig;
|
|
35288
|
+
}
|
|
35289
|
+
if (windows.AuditLogConfiguration) {
|
|
35290
|
+
const audit = {};
|
|
35291
|
+
putIfDefined(audit, "FileAccessAuditLogLevel", windows.AuditLogConfiguration.FileAccessAuditLogLevel);
|
|
35292
|
+
putIfDefined(audit, "FileShareAccessAuditLogLevel", windows.AuditLogConfiguration.FileShareAccessAuditLogLevel);
|
|
35293
|
+
putIfDefined(audit, "AuditLogDestination", windows.AuditLogConfiguration.AuditLogDestination);
|
|
35294
|
+
if (Object.keys(audit).length > 0) config["AuditLogConfiguration"] = audit;
|
|
35295
|
+
}
|
|
35296
|
+
const diskIops = this.readDiskIopsConfiguration(windows.DiskIopsConfiguration);
|
|
35297
|
+
if (diskIops) config["DiskIopsConfiguration"] = diskIops;
|
|
35298
|
+
if (windows.FsrmConfiguration) {
|
|
35299
|
+
const fsrm = {};
|
|
35300
|
+
putIfDefined(fsrm, "FsrmServiceEnabled", windows.FsrmConfiguration.FsrmServiceEnabled);
|
|
35301
|
+
putIfDefined(fsrm, "EventLogDestination", windows.FsrmConfiguration.EventLogDestination);
|
|
35302
|
+
if (Object.keys(fsrm).length > 0) config["FsrmConfiguration"] = fsrm;
|
|
35303
|
+
}
|
|
35304
|
+
return config;
|
|
35305
|
+
}
|
|
35306
|
+
/** Map the read-side `OntapConfiguration` back to CFn input shape. */
|
|
35307
|
+
readOntapConfiguration(ontap) {
|
|
35308
|
+
const config = {};
|
|
35309
|
+
putIfDefined(config, "DeploymentType", ontap.DeploymentType);
|
|
35310
|
+
putIfDefined(config, "AutomaticBackupRetentionDays", ontap.AutomaticBackupRetentionDays);
|
|
35311
|
+
putIfDefined(config, "DailyAutomaticBackupStartTime", ontap.DailyAutomaticBackupStartTime);
|
|
35312
|
+
putIfDefined(config, "WeeklyMaintenanceStartTime", ontap.WeeklyMaintenanceStartTime);
|
|
35313
|
+
putIfDefined(config, "EndpointIpAddressRange", ontap.EndpointIpAddressRange);
|
|
35314
|
+
putIfDefined(config, "PreferredSubnetId", ontap.PreferredSubnetId);
|
|
35315
|
+
putIfDefined(config, "ThroughputCapacity", ontap.ThroughputCapacity);
|
|
35316
|
+
putIfDefined(config, "ThroughputCapacityPerHAPair", ontap.ThroughputCapacityPerHAPair);
|
|
35317
|
+
putIfDefined(config, "HAPairs", ontap.HAPairs);
|
|
35318
|
+
putIfDefined(config, "RouteTableIds", ontap.RouteTableIds ? [...ontap.RouteTableIds] : void 0);
|
|
35319
|
+
putIfDefined(config, "EndpointIpv6AddressRange", ontap.EndpointIpv6AddressRange);
|
|
35320
|
+
const diskIops = this.readDiskIopsConfiguration(ontap.DiskIopsConfiguration);
|
|
35321
|
+
if (diskIops) config["DiskIopsConfiguration"] = diskIops;
|
|
35322
|
+
return config;
|
|
35323
|
+
}
|
|
35324
|
+
/** Map the read-side `OpenZFSConfiguration` back to CFn input shape. */
|
|
35325
|
+
readOpenZFSConfiguration(openzfs) {
|
|
35326
|
+
const config = {};
|
|
35327
|
+
putIfDefined(config, "DeploymentType", openzfs.DeploymentType);
|
|
35328
|
+
putIfDefined(config, "AutomaticBackupRetentionDays", openzfs.AutomaticBackupRetentionDays);
|
|
35329
|
+
putIfDefined(config, "CopyTagsToBackups", openzfs.CopyTagsToBackups);
|
|
35330
|
+
putIfDefined(config, "CopyTagsToVolumes", openzfs.CopyTagsToVolumes);
|
|
35331
|
+
putIfDefined(config, "DailyAutomaticBackupStartTime", openzfs.DailyAutomaticBackupStartTime);
|
|
35332
|
+
putIfDefined(config, "WeeklyMaintenanceStartTime", openzfs.WeeklyMaintenanceStartTime);
|
|
35333
|
+
putIfDefined(config, "ThroughputCapacity", openzfs.ThroughputCapacity);
|
|
35334
|
+
putIfDefined(config, "PreferredSubnetId", openzfs.PreferredSubnetId);
|
|
35335
|
+
putIfDefined(config, "EndpointIpAddressRange", openzfs.EndpointIpAddressRange);
|
|
35336
|
+
putIfDefined(config, "RouteTableIds", openzfs.RouteTableIds ? [...openzfs.RouteTableIds] : void 0);
|
|
35337
|
+
putIfDefined(config, "EndpointIpv6AddressRange", openzfs.EndpointIpv6AddressRange);
|
|
35338
|
+
const diskIops = this.readDiskIopsConfiguration(openzfs.DiskIopsConfiguration);
|
|
35339
|
+
if (diskIops) config["DiskIopsConfiguration"] = diskIops;
|
|
35340
|
+
if (openzfs.ReadCacheConfiguration) {
|
|
35341
|
+
const readCache = {};
|
|
35342
|
+
putIfDefined(readCache, "SizingMode", openzfs.ReadCacheConfiguration.SizingMode);
|
|
35343
|
+
putIfDefined(readCache, "SizeGiB", openzfs.ReadCacheConfiguration.SizeGiB);
|
|
35344
|
+
if (Object.keys(readCache).length > 0) config["ReadCacheConfiguration"] = readCache;
|
|
35345
|
+
}
|
|
35346
|
+
return config;
|
|
35347
|
+
}
|
|
35348
|
+
/** Shared `DiskIopsConfiguration` reverse-mapper (Windows / ONTAP / OpenZFS). */
|
|
35349
|
+
readDiskIopsConfiguration(diskIops) {
|
|
35350
|
+
if (!diskIops) return void 0;
|
|
35351
|
+
const out = {};
|
|
35352
|
+
putIfDefined(out, "Mode", diskIops.Mode);
|
|
35353
|
+
putIfDefined(out, "Iops", diskIops.Iops);
|
|
35354
|
+
return Object.keys(out).length > 0 ? out : void 0;
|
|
35355
|
+
}
|
|
35226
35356
|
/**
|
|
35227
35357
|
* State property paths this provider cannot read back from AWS:
|
|
35228
35358
|
* - `SecurityGroupIds` — `DescribeFileSystems` returns network
|
|
35229
35359
|
* interface ids, never the original security group list.
|
|
35230
35360
|
* - `BackupId` — creation-source input, not surfaced on the deployed
|
|
35231
35361
|
* file system.
|
|
35232
|
-
* - `WindowsConfiguration`
|
|
35233
|
-
*
|
|
35234
|
-
*
|
|
35235
|
-
*
|
|
35236
|
-
*
|
|
35237
|
-
*
|
|
35238
|
-
*
|
|
35362
|
+
* - `WindowsConfiguration.SelfManagedActiveDirectoryConfiguration.Password`
|
|
35363
|
+
* / `OntapConfiguration.FsxAdminPassword` — write-only credentials; the
|
|
35364
|
+
* API never echoes them back.
|
|
35365
|
+
* - `OpenZFSConfiguration.RootVolumeConfiguration` — configured on the
|
|
35366
|
+
* root VOLUME, not the file system; `DescribeFileSystems` returns only
|
|
35367
|
+
* `RootVolumeId`, so reading it back would need a separate
|
|
35368
|
+
* `DescribeVolumes` call (out of scope here).
|
|
35369
|
+
*
|
|
35370
|
+
* The whole-block `WindowsConfiguration` / `OntapConfiguration` /
|
|
35371
|
+
* `OpenZFSConfiguration` entries are gone as of the variant reverse-mappers
|
|
35372
|
+
* — only the individually-unreadable leaves above stay unknown.
|
|
35239
35373
|
*/
|
|
35240
35374
|
getDriftUnknownPaths(resourceType) {
|
|
35241
35375
|
if (resourceType !== "AWS::FSx::FileSystem") return [];
|
|
35242
35376
|
return [
|
|
35243
35377
|
"SecurityGroupIds",
|
|
35244
35378
|
"BackupId",
|
|
35245
|
-
"WindowsConfiguration",
|
|
35246
|
-
"OntapConfiguration",
|
|
35247
|
-
"OpenZFSConfiguration"
|
|
35379
|
+
"WindowsConfiguration.SelfManagedActiveDirectoryConfiguration.Password",
|
|
35380
|
+
"OntapConfiguration.FsxAdminPassword",
|
|
35381
|
+
"OpenZFSConfiguration.RootVolumeConfiguration"
|
|
35248
35382
|
];
|
|
35249
35383
|
}
|
|
35250
35384
|
/**
|
|
@@ -35252,7 +35386,11 @@ var FSxFileSystemProvider = class {
|
|
|
35252
35386
|
* via `DescribeFileSystems`. Lustre data-repository fields (`ImportPath`
|
|
35253
35387
|
* / `ExportPath` / `AutoImportPolicy` / `ImportedFileChunkSize`) are
|
|
35254
35388
|
* mapped back from the nested `DataRepositoryConfiguration` the API
|
|
35255
|
-
* returns.
|
|
35389
|
+
* returns. The Windows / ONTAP / OpenZFS variant blocks are reverse-mapped
|
|
35390
|
+
* by their respective `read*Configuration` helpers; the few inputs AWS
|
|
35391
|
+
* never returns stay listed in {@link getDriftUnknownPaths}. At most one
|
|
35392
|
+
* variant block is ever present (they key off `FileSystemType`).
|
|
35393
|
+
* Returns `undefined` when the file system is gone.
|
|
35256
35394
|
*/
|
|
35257
35395
|
async readCurrentState(physicalId, _logicalId, resourceType) {
|
|
35258
35396
|
if (resourceType !== "AWS::FSx::FileSystem") return void 0;
|
|
@@ -35265,47 +35403,59 @@ var FSxFileSystemProvider = class {
|
|
|
35265
35403
|
}
|
|
35266
35404
|
if (!fs) return void 0;
|
|
35267
35405
|
const result = {};
|
|
35268
|
-
|
|
35269
|
-
|
|
35270
|
-
|
|
35271
|
-
|
|
35272
|
-
|
|
35273
|
-
|
|
35274
|
-
|
|
35406
|
+
putIfDefined(result, "FileSystemType", fs.FileSystemType);
|
|
35407
|
+
putIfDefined(result, "StorageCapacity", fs.StorageCapacity);
|
|
35408
|
+
putIfDefined(result, "StorageType", fs.StorageType);
|
|
35409
|
+
putIfDefined(result, "SubnetIds", fs.SubnetIds ? [...fs.SubnetIds] : void 0);
|
|
35410
|
+
putIfDefined(result, "KmsKeyId", fs.KmsKeyId);
|
|
35411
|
+
putIfDefined(result, "FileSystemTypeVersion", fs.FileSystemTypeVersion);
|
|
35412
|
+
putIfDefined(result, "NetworkType", fs.NetworkType);
|
|
35275
35413
|
const lustre = fs.LustreConfiguration;
|
|
35276
35414
|
if (lustre) {
|
|
35277
35415
|
const config = {};
|
|
35278
|
-
|
|
35279
|
-
|
|
35280
|
-
|
|
35281
|
-
|
|
35282
|
-
|
|
35283
|
-
|
|
35284
|
-
|
|
35285
|
-
|
|
35286
|
-
|
|
35287
|
-
|
|
35416
|
+
putIfDefined(config, "WeeklyMaintenanceStartTime", lustre.WeeklyMaintenanceStartTime);
|
|
35417
|
+
putIfDefined(config, "DeploymentType", lustre.DeploymentType);
|
|
35418
|
+
putIfDefined(config, "PerUnitStorageThroughput", lustre.PerUnitStorageThroughput);
|
|
35419
|
+
putIfDefined(config, "DailyAutomaticBackupStartTime", lustre.DailyAutomaticBackupStartTime);
|
|
35420
|
+
putIfDefined(config, "AutomaticBackupRetentionDays", lustre.AutomaticBackupRetentionDays);
|
|
35421
|
+
putIfDefined(config, "CopyTagsToBackups", lustre.CopyTagsToBackups);
|
|
35422
|
+
putIfDefined(config, "DriveCacheType", lustre.DriveCacheType);
|
|
35423
|
+
putIfDefined(config, "DataCompressionType", lustre.DataCompressionType);
|
|
35424
|
+
putIfDefined(config, "EfaEnabled", lustre.EfaEnabled);
|
|
35425
|
+
putIfDefined(config, "ThroughputCapacity", lustre.ThroughputCapacity);
|
|
35288
35426
|
if (lustre.MetadataConfiguration) {
|
|
35289
35427
|
const metadata = {};
|
|
35290
|
-
|
|
35291
|
-
|
|
35428
|
+
putIfDefined(metadata, "Mode", lustre.MetadataConfiguration.Mode);
|
|
35429
|
+
putIfDefined(metadata, "Iops", lustre.MetadataConfiguration.Iops);
|
|
35292
35430
|
if (Object.keys(metadata).length > 0) config["MetadataConfiguration"] = metadata;
|
|
35293
35431
|
}
|
|
35294
35432
|
if (lustre.DataReadCacheConfiguration) {
|
|
35295
35433
|
const readCache = {};
|
|
35296
|
-
|
|
35297
|
-
|
|
35434
|
+
putIfDefined(readCache, "SizingMode", lustre.DataReadCacheConfiguration.SizingMode);
|
|
35435
|
+
putIfDefined(readCache, "SizeGiB", lustre.DataReadCacheConfiguration.SizeGiB);
|
|
35298
35436
|
if (Object.keys(readCache).length > 0) config["DataReadCacheConfiguration"] = readCache;
|
|
35299
35437
|
}
|
|
35300
35438
|
const dataRepo = lustre.DataRepositoryConfiguration;
|
|
35301
35439
|
if (dataRepo) {
|
|
35302
|
-
|
|
35303
|
-
|
|
35304
|
-
|
|
35305
|
-
|
|
35440
|
+
putIfDefined(config, "ImportPath", dataRepo.ImportPath);
|
|
35441
|
+
putIfDefined(config, "ExportPath", dataRepo.ExportPath);
|
|
35442
|
+
putIfDefined(config, "AutoImportPolicy", dataRepo.AutoImportPolicy);
|
|
35443
|
+
putIfDefined(config, "ImportedFileChunkSize", dataRepo.ImportedFileChunkSize);
|
|
35306
35444
|
}
|
|
35307
35445
|
if (Object.keys(config).length > 0) result["LustreConfiguration"] = config;
|
|
35308
35446
|
}
|
|
35447
|
+
if (fs.WindowsConfiguration) {
|
|
35448
|
+
const config = this.readWindowsConfiguration(fs.WindowsConfiguration);
|
|
35449
|
+
if (Object.keys(config).length > 0) result["WindowsConfiguration"] = config;
|
|
35450
|
+
}
|
|
35451
|
+
if (fs.OntapConfiguration) {
|
|
35452
|
+
const config = this.readOntapConfiguration(fs.OntapConfiguration);
|
|
35453
|
+
if (Object.keys(config).length > 0) result["OntapConfiguration"] = config;
|
|
35454
|
+
}
|
|
35455
|
+
if (fs.OpenZFSConfiguration) {
|
|
35456
|
+
const config = this.readOpenZFSConfiguration(fs.OpenZFSConfiguration);
|
|
35457
|
+
if (Object.keys(config).length > 0) result["OpenZFSConfiguration"] = config;
|
|
35458
|
+
}
|
|
35309
35459
|
result["Tags"] = normalizeAwsTagsToCfn(fs.Tags);
|
|
35310
35460
|
return result;
|
|
35311
35461
|
}
|
|
@@ -61608,7 +61758,7 @@ function reorderArgs(argv) {
|
|
|
61608
61758
|
async function main() {
|
|
61609
61759
|
installPipeCloseHandler();
|
|
61610
61760
|
const program = new Command();
|
|
61611
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.
|
|
61761
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.251.0");
|
|
61612
61762
|
program.addCommand(createBootstrapCommand());
|
|
61613
61763
|
program.addCommand(createSynthCommand());
|
|
61614
61764
|
program.addCommand(createListCommand());
|