2023-02-02 17:15:17 -08:00
|
|
|
# Copyright (c) HashiCorp, Inc.
|
|
|
|
|
# SPDX-License-Identifier: BUSL-1.1
|
|
|
|
|
|
2022-07-28 14:48:51 -06:00
|
|
|
/*
|
|
|
|
|
terraform {
|
|
|
|
|
required_providers {
|
|
|
|
|
aws = {
|
|
|
|
|
source = "hashicorp/aws"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
variable "instance_type" {
|
|
|
|
|
default = ["t3.small"]
|
|
|
|
|
type = list(string)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
data "aws_ec2_instance_type_offerings" "infra" {
|
2025-07-17 16:30:27 -04:00
|
|
|
for_each = toset(var.instance_type)
|
2022-07-28 14:48:51 -06:00
|
|
|
filter {
|
|
|
|
|
name = "instance-type"
|
2025-07-17 16:30:27 -04:00
|
|
|
values = [each.key]
|
2022-07-28 14:48:51 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
location_type = "availability-zone"
|
|
|
|
|
}
|
|
|
|
|
|
2025-07-17 16:30:27 -04:00
|
|
|
locals {
|
|
|
|
|
az_sets = [for d in data.aws_ec2_instance_type_offerings.infra : toset(d.locations)]
|
|
|
|
|
common_azs = length(local.az_sets) > 0 ? setintersection(local.az_sets...) : []
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-28 14:48:51 -06:00
|
|
|
output "availability_zones" {
|
2025-07-17 16:30:27 -04:00
|
|
|
value = local.common_azs
|
2022-07-28 14:48:51 -06:00
|
|
|
}
|