# ------------------------------------------------------------ # Terraform and provider versions # ------------------------------------------------------------ terraform { required_version = ">= 1.5.0" required_providers { aws = { source = "hashicorp/aws" version = "= 5.0" } tls = { source = "hashicorp/tls" version = "= 4.0.4" } } } # ------------------------------------------------------------ # Provider # ------------------------------------------------------------ provider "aws" { region = local.region default_tags { tags = { Project = local.name } } } # ------------------------------------------------------------ # Local values # ------------------------------------------------------------ locals { name = "qnx-on-aws-ws-xx" # Replace `xx` with 2-digit ID region = "ap-northeast-1" # Specify your AWS region account_id = data.aws_caller_identity.current.account_id vpc = { cidr = "10.1.0.0/16" # VPC IPv4 CIDR } # Parameters for EC2 QNX OS for Safety ec2_qnx_safety = { ami = "${local.ec2_qnx_safety_2_2_x_amis[local.region]}" # Default QNX OS for Safety 2.2.3 AMI # ami = "<YOUR_CUSTOM_AMI_ID>" # Custom QNX OS for Safety AMI instance_type = "m6g.medium" instance_profile_name = "AmazonSSMRoleForInstancesQuickSetup" } # Parameters for EC2 QNX Neutrino # Comment out the following code block in case you use QNX Neutrino. # ec2_qnx_neutrino = { # ami = "${local.ec2_qnx_neutrino_7_1_amis[local.region]}" # Default QNX Neutrino RTOS 7.1 AMI # # ami = "<YOUR_CUSTOM_AMI_ID>" # Custom Neutrino RTOS AMI # instance_type = "m6g.medium" # instance_profile_name = "AmazonSSMRoleForInstancesQuickSetup" # } # Parameters for EC2 Ubuntu instance ec2_ubuntu = { ami = data.aws_ami.ec2_ubuntu.id instance_type = "t3.xlarge" instance_profile_name = "AmazonSSMRoleForInstancesQuickSetup" ebs_root_volume_size = "20" } # Parameters for CodeCommit codecommit = { repository_name = "${local.name}-hello-world" # CodeCommit repository name for QNX project } # Parameters for CodeBuild codebuild = { tf_version = "1.5.0" } # QNX OS for Safety 2.2.x AMI (https://aws.amazon.com/marketplace/pp/prodview-26pvihq76slfa) ec2_qnx_safety_2_2_x_amis = { ap-northeast-1 = "ami-09352f59561991aef" ap-northeast-2 = "ami-04330ff60902f1525" ap-northeast-3 = "ami-04b9463581c14e468" ap-southeast-1 = "ami-0afeb3ff59cab9116" eu-centeral-1 = "ami-006851ceb56ab3141" eu-west-1 = "ami-024a7cf21d6096a4b" us-east-1 = "ami-04ae083d500cf2201" us-west-2 = "ami-0f8b7081e08fbac0d" } # QNX Neutrino RTOS 7.1 AMI (https://aws.amazon.com/marketplace/pp/prodview-wjqoq2mq7hrhc) ec2_qnx_neutrino_7_1_amis = { ap-northeast-1 = "ami-07b27cce4ff4e52ec" ap-northeast-2 = "ami-0b7d0d03145f7c9f5" ap-northeast-3 = "ami-031d96cdfee759e61" ap-southeast-1 = "ami-0f8d843109d5a98fe" eu-centeral-1 = "ami-02018df98dd15096e" eu-west-1 = "ami-0b5fb49dadf512bf9" us-east-1 = "ami-02bd7b9e243f4d1bc" us-west-2 = "ami-0b6bcbf3a14628bdb" } } # ------------------------------------------------------------ # Data sources # ------------------------------------------------------------ data "aws_caller_identity" "current" {} data "aws_region" "current" {} data "aws_availability_zones" "region" { state = "available" } # Ubuntu Server 22.04 LTS AMI data "aws_ami" "ec2_ubuntu" { most_recent = true filter { name = "name" values = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*"] } filter { name = "virtualization-type" values = ["hvm"] } owners = ["099720109477"] }