terraform { required_providers { coder = { source = "coder/coder" version = "0.6.6" } } } # Last updated 2022-05-31 # aws ec2 describe-regions | jq -r '[.Regions[].RegionName] | sort' variable "region" { description = "What region should your workspace live in?" default = "us-east-1" validation { condition = contains([ "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-south-1", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "eu-central-1", "eu-north-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "us-east-1", "us-east-2", "us-west-1", "us-west-2" ], var.region) error_message = "Invalid region!" } } variable "instance_type" { description = "What instance type should your workspace use?" default = "t3.micro" validation { condition = contains([ "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", ], var.instance_type) error_message = "Invalid instance type!" } } provider "aws" { region = var.region } data "coder_workspace" "me" { } data "aws_ami" "ubuntu" { most_recent = true filter { name = "name" values = ["ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"] } filter { name = "virtualization-type" values = ["hvm"] } owners = ["099720109477"] # Canonical } resource "coder_agent" "main" { arch = "amd64" auth = "aws-instance-identity" os = "linux" startup_script = <