| # Copyright (c) HashiCorp, Inc. |
| # SPDX-License-Identifier: BUSL-1.1 |
| |
| locals { |
| architectures = toset(["arm64", "x86_64"]) |
| canonical_owner_id = "099720109477" |
| rhel_owner_id = "309956199498" |
| ids = { |
| "arm64" = { |
| "rhel" = { |
| "8.8" = data.aws_ami.rhel_88["arm64"].id |
| "9.1" = data.aws_ami.rhel_91["arm64"].id |
| } |
| "ubuntu" = { |
| "18.04" = data.aws_ami.ubuntu_1804["arm64"].id |
| "20.04" = data.aws_ami.ubuntu_2004["arm64"].id |
| "22.04" = data.aws_ami.ubuntu_2204["arm64"].id |
| } |
| } |
| "amd64" = { |
| "rhel" = { |
| "7.9" = data.aws_ami.rhel_79.id |
| "8.8" = data.aws_ami.rhel_88["x86_64"].id |
| "9.1" = data.aws_ami.rhel_91["x86_64"].id |
| } |
| "ubuntu" = { |
| "18.04" = data.aws_ami.ubuntu_1804["x86_64"].id |
| "20.04" = data.aws_ami.ubuntu_2004["x86_64"].id |
| "22.04" = data.aws_ami.ubuntu_2204["x86_64"].id |
| } |
| } |
| } |
| } |
| |
| data "aws_ami" "ubuntu_1804" { |
| most_recent = true |
| for_each = local.architectures |
| |
| filter { |
| name = "name" |
| values = ["ubuntu/images/hvm-ssd/ubuntu-*-18.04-*-server-*"] |
| } |
| |
| filter { |
| name = "virtualization-type" |
| values = ["hvm"] |
| } |
| |
| filter { |
| name = "architecture" |
| values = [each.value] |
| } |
| |
| owners = [local.canonical_owner_id] |
| } |
| |
| data "aws_ami" "ubuntu_2004" { |
| most_recent = true |
| for_each = local.architectures |
| |
| filter { |
| name = "name" |
| values = ["ubuntu/images/hvm-ssd/ubuntu-*-20.04-*-server-*"] |
| } |
| |
| filter { |
| name = "virtualization-type" |
| values = ["hvm"] |
| } |
| |
| filter { |
| name = "architecture" |
| values = [each.value] |
| } |
| |
| owners = [local.canonical_owner_id] |
| } |
| |
| data "aws_ami" "ubuntu_2204" { |
| most_recent = true |
| for_each = local.architectures |
| |
| filter { |
| name = "name" |
| values = ["ubuntu/images/hvm-ssd/ubuntu-*-22.04-*-server-*"] |
| } |
| |
| filter { |
| name = "virtualization-type" |
| values = ["hvm"] |
| } |
| |
| filter { |
| name = "architecture" |
| values = [each.value] |
| } |
| |
| owners = [local.canonical_owner_id] |
| } |
| |
| data "aws_ami" "rhel_79" { |
| most_recent = true |
| |
| # Currently latest latest point release-1 |
| filter { |
| name = "name" |
| values = ["RHEL-7.9*HVM-20*"] |
| } |
| |
| filter { |
| name = "virtualization-type" |
| values = ["hvm"] |
| } |
| |
| filter { |
| name = "architecture" |
| values = ["x86_64"] |
| } |
| |
| owners = [local.rhel_owner_id] |
| } |
| |
| data "aws_ami" "rhel_88" { |
| most_recent = true |
| for_each = local.architectures |
| |
| # Currently latest latest point release-1 |
| filter { |
| name = "name" |
| values = ["RHEL-8.8*HVM-20*"] |
| } |
| |
| filter { |
| name = "virtualization-type" |
| values = ["hvm"] |
| } |
| |
| filter { |
| name = "architecture" |
| values = [each.value] |
| } |
| |
| owners = [local.rhel_owner_id] |
| } |
| |
| data "aws_ami" "rhel_91" { |
| most_recent = true |
| for_each = local.architectures |
| |
| # Currently latest latest point release-1 |
| filter { |
| name = "name" |
| values = ["RHEL-9.1*HVM-20*"] |
| } |
| |
| filter { |
| name = "virtualization-type" |
| values = ["hvm"] |
| } |
| |
| filter { |
| name = "architecture" |
| values = [each.value] |
| } |
| |
| owners = [local.rhel_owner_id] |
| } |
| |
| data "aws_region" "current" {} |
| |
| data "aws_availability_zones" "available" { |
| state = "available" |
| |
| filter { |
| name = "zone-name" |
| values = ["*"] |
| } |
| } |
| |
| output "ami_ids" { |
| value = local.ids |
| } |
| |
| output "current_region" { |
| value = data.aws_region.current |
| } |
| |
| output "availability_zones" { |
| value = data.aws_availability_zones.available |
| } |