Skip to content

Extend AZ/region discovery to FSx deployment types (which AZs offer PERSISTENT_2 Lustre?) #66

Description

@scttfrdmn

Motivation

truffle's core value is 'discover which AWS regions and AZs support specific EC2 instance types' — via DescribeInstanceTypeOfferings(LocationType=AvailabilityZone). The same discovery question exists for FSx, and there's no read-only way to answer it today.

Concrete case that motivated this: trying to create an FSx for Lustre PERSISTENT_2 filesystem in us-east-1, every attempt in us-east-1a/1b/1c failed with:

BadRequest: The requested Lustre configuration: PERSISTENT_2 is not available in this availability zone.

Quota was NOT the issue (Persistent_2 file systems = 100, storage = 100,800 GB — full headroom). It's a per-AZ service-offering condition. With no lookup API exposed, the only way to find a working AZ was to blind-probe by issuing real create-file-system calls across AZs — billable, slow, and exactly the kind of trial-and-error truffle exists to eliminate for EC2.

Proposal

Add FSx deployment-type AZ/region discovery, mirroring the existing az/find model. E.g.:

truffle fsx lustre persistent_2 --regions us-east-1     # which AZs offer it
truffle az --service fsx --offering lustre:persistent_2 # AZ-first view, like EC2

Output: per-AZ availability (✓/✗) for the FSx type, same shape as instance-type-per-AZ today. This lets a caller (e.g. spawn --fsx-create, or a benchmark harness) pick a viable AZ up front instead of discovering unavailability via a failed create.

Implementation note

AWS doesn't expose a clean DescribeFileSystemTypeOfferings the way EC2 has DescribeInstanceTypeOfferings, so this likely needs either (a) the FSx/pricing/SSM offering data if available, or (b) a documented static map of FSx-type × AZ availability refreshed periodically, or (c) a safe capability probe. Worth investigating which AWS surface (pricing API / SSM /aws/service/ parameters / FSx itself) exposes per-AZ deployment-type availability without a create call.

Context

Consumer: aws-microbiome-demo, which already uses truffle for EC2 vCPU-quota + spot discovery to size a Nextflow fan-out. It needs a shared FSx Lustre (PERSISTENT_2) for a wide-fan-out reference-DB mount (see nf-spawn#67, spawn#206); picking the right AZ is currently blind. Filing as a feature request — not modifying truffle.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions