diff --git a/src/providers/gcp/cli.ts b/src/providers/gcp/cli.ts index 8dc03212..c1fa2549 100644 --- a/src/providers/gcp/cli.ts +++ b/src/providers/gcp/cli.ts @@ -145,7 +145,8 @@ export class GcpInputPrompter extends AbstractInputPrompter { - if (diskSize) return diskSize; + private async rootDiskSize(diskSize?: number): Promise { + if (diskSize) { + return diskSize; + } - const selectedDiskSize = await input({ - message: 'Enter desired disk size (GB):', - default: "100" - }) - return Number.parseInt(selectedDiskSize) + // If not overridden, use a static default value + // As OS disk size is managed by Cloudy Pad and should not impact user + // except for specific customizations + return 20 + } + + private async dataDiskSize(diskSize?: number): Promise { + if (diskSize !== undefined) { // allow 0 meaning explicit no data disk + return diskSize + } + + let selectedDiskSize: string + let parsedDiskSize: number | undefined = undefined + + while (parsedDiskSize === undefined || isNaN(parsedDiskSize)) { + selectedDiskSize = await input({ + message: 'Data disk size in GB (OS will use another independent disk)', + default: "100" + }) + parsedDiskSize = Number.parseInt(selectedDiskSize) + } + + return parsedDiskSize } private async region(client: GcpApi, region?: string): Promise { diff --git a/test/unit/providers/gcp/cli-region-zone.spec.ts b/test/unit/providers/gcp/cli-region-zone.spec.ts index 0afdf4dc..bc27a9a2 100644 --- a/test/unit/providers/gcp/cli-region-zone.spec.ts +++ b/test/unit/providers/gcp/cli-region-zone.spec.ts @@ -39,6 +39,7 @@ describe('GCP CLI region/zone selection (cli-region-zone)', () => { machineType: 'n1-standard-8', acceleratorType: 'nvidia-tesla-t4', diskSize: 100, + dataDiskSizeGb: 200, diskType: DEFAULT_DISK_TYPE, networkTier: DEFAULT_NETWORK_TIER, nicType: DEFAULT_NIC_TYPE,