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.
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:
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/findmodel. E.g.: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
DescribeFileSystemTypeOfferingsthe 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.