diff --git a/examples/packer-basic-example/build.pkr.hcl b/examples/packer-basic-example/build.pkr.hcl index a38de4b81..72d14114d 100644 --- a/examples/packer-basic-example/build.pkr.hcl +++ b/examples/packer-basic-example/build.pkr.hcl @@ -51,11 +51,11 @@ variable "oci_subnet_ocid" { default = "" } -data "amazon-ami" "ubuntu-xenial" { +data "amazon-ami" "ubuntu-jammy" { filters = { architecture = "x86_64" "block-device-mapping.volume-type" = "gp2" - name = "*ubuntu-xenial-16.04-amd64-server-*" + name = "*ubuntu-jammy-22.04-amd64-server-*" root-device-type = "ebs" virtualization-type = "hvm" } @@ -70,7 +70,7 @@ source "amazon-ebs" "ubuntu-example" { encrypt_boot = false instance_type = var.instance_type region = var.aws_region - source_ami = data.amazon-ami.ubuntu-xenial.id + source_ami = data.amazon-ami.ubuntu-jammy.id ssh_username = "ubuntu" } diff --git a/examples/terraform-asg-scp-example/main.tf b/examples/terraform-asg-scp-example/main.tf index d665e1e48..e3aa4cab2 100644 --- a/examples/terraform-asg-scp-example/main.tf +++ b/examples/terraform-asg-scp-example/main.tf @@ -94,7 +94,7 @@ data "aws_ami" "ubuntu" { filter { name = "name" - values = ["ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-*"] + values = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*"] } } diff --git a/examples/terraform-aws-example/main.tf b/examples/terraform-aws-example/main.tf index 8e864a622..e660e64fb 100644 --- a/examples/terraform-aws-example/main.tf +++ b/examples/terraform-aws-example/main.tf @@ -49,7 +49,7 @@ data "aws_ami" "ubuntu" { filter { name = "name" - values = ["ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-*"] + values = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*"] } } diff --git a/examples/terraform-http-example/main.tf b/examples/terraform-http-example/main.tf index a0be8cfd0..bf11b92cd 100644 --- a/examples/terraform-http-example/main.tf +++ b/examples/terraform-http-example/main.tf @@ -90,7 +90,7 @@ data "aws_ami" "ubuntu" { filter { name = "name" - values = ["ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-*"] + values = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*"] } } diff --git a/examples/terraform-remote-exec-example/main.tf b/examples/terraform-remote-exec-example/main.tf index 8d221844e..2d6a1df96 100644 --- a/examples/terraform-remote-exec-example/main.tf +++ b/examples/terraform-remote-exec-example/main.tf @@ -124,7 +124,7 @@ data "aws_ami" "ubuntu" { filter { name = "name" - values = ["ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-*"] + values = ["ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"] } } diff --git a/examples/terraform-ssh-example/main.tf b/examples/terraform-ssh-example/main.tf index 2ab6a1fd3..63d7c45fc 100644 --- a/examples/terraform-ssh-example/main.tf +++ b/examples/terraform-ssh-example/main.tf @@ -105,7 +105,7 @@ data "aws_ami" "ubuntu" { filter { name = "name" - values = ["ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-*"] + values = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*"] } } diff --git a/modules/aws/ami.go b/modules/aws/ami.go index 44329339b..8fcc5c7dd 100644 --- a/modules/aws/ami.go +++ b/modules/aws/ami.go @@ -192,6 +192,50 @@ func GetUbuntu1604AmiE(t testing.TestingT, region string) (string, error) { return GetMostRecentAmiIdE(t, region, CanonicalAccountId, filters) } +// GetUbuntu2004Ami gets the ID of the most recent Ubuntu 20.04 HVM x86_64 EBS GP2 AMI in the given region. +func GetUbuntu2004Ami(t testing.TestingT, region string) string { + amiID, err := GetUbuntu2004AmiE(t, region) + if err != nil { + t.Fatal(err) + } + return amiID +} + +// GetUbuntu2004AmiE gets the ID of the most recent Ubuntu 20.04 HVM x86_64 EBS GP2 AMI in the given region. +func GetUbuntu2004AmiE(t testing.TestingT, region string) (string, error) { + filters := map[string][]string{ + "name": {"*ubuntu-focal-20.04-amd64-server-*"}, + "virtualization-type": {"hvm"}, + "architecture": {"x86_64"}, + "root-device-type": {"ebs"}, + "block-device-mapping.volume-type": {"gp2"}, + } + + return GetMostRecentAmiIdE(t, region, CanonicalAccountId, filters) +} + +// GetUbuntu2204Ami gets the ID of the most recent Ubuntu 22.04 HVM x86_64 EBS GP2 AMI in the given region. +func GetUbuntu2204Ami(t testing.TestingT, region string) string { + amiID, err := GetUbuntu2204AmiE(t, region) + if err != nil { + t.Fatal(err) + } + return amiID +} + +// GetUbuntu2204AmiE gets the ID of the most recent Ubuntu 22.04 HVM x86_64 EBS GP2 AMI in the given region. +func GetUbuntu2204AmiE(t testing.TestingT, region string) (string, error) { + filters := map[string][]string{ + "name": {"*ubuntu-jammy-22.04-amd64-server-*"}, + "virtualization-type": {"hvm"}, + "architecture": {"x86_64"}, + "root-device-type": {"ebs"}, + "block-device-mapping.volume-type": {"gp2"}, + } + + return GetMostRecentAmiIdE(t, region, CanonicalAccountId, filters) +} + // GetCentos7Ami returns a CentOS 7 public AMI from the given region. // WARNING: you may have to accept the terms & conditions of this AMI in AWS MarketPlace for your AWS Account before // you can successfully launch the AMI. diff --git a/modules/aws/ami_test.go b/modules/aws/ami_test.go index 6692034bc..95cfb2cfc 100644 --- a/modules/aws/ami_test.go +++ b/modules/aws/ami_test.go @@ -20,6 +20,20 @@ func TestGetUbuntu1604AmiReturnsSomeAmi(t *testing.T) { assert.Regexp(t, "^ami-[[:alnum:]]+$", amiID) } +func TestGetUbuntu2004AmiReturnsSomeAmi(t *testing.T) { + t.Parallel() + + amiID := GetUbuntu2004Ami(t, "us-west-1") + assert.Regexp(t, "^ami-[[:alnum:]]+$", amiID) +} + +func TestGetUbuntu2204AmiReturnsSomeAmi(t *testing.T) { + t.Parallel() + + amiID := GetUbuntu2204Ami(t, "us-west-1") + assert.Regexp(t, "^ami-[[:alnum:]]+$", amiID) +} + func TestGetCentos7AmiReturnsSomeAmi(t *testing.T) { t.Parallel()