Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 9 additions & 34 deletions registry/coder/templates/aws-envbuilder/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ terraform {

module "aws_region" {
source = "registry.coder.com/coder/aws-region/coder"
version = "~> 1.0"
version = "~> 1.1"
default = "us-east-1"
}

Expand Down Expand Up @@ -60,36 +60,11 @@ data "aws_ami" "ubuntu" {
owners = ["099720109477"] # Canonical
}

data "coder_parameter" "instance_type" {
name = "instance_type"
display_name = "Instance type"
description = "What instance type should your workspace use?"
default = "t3.micro"
mutable = false
option {
name = "2 vCPU, 1 GiB RAM"
value = "t3.micro"
}
option {
name = "2 vCPU, 2 GiB RAM"
value = "t3.small"
}
option {
name = "2 vCPU, 4 GiB RAM"
value = "t3.medium"
}
option {
name = "2 vCPU, 8 GiB RAM"
value = "t3.large"
}
option {
name = "4 vCPU, 16 GiB RAM"
value = "t3.xlarge"
}
option {
name = "8 vCPU, 32 GiB RAM"
value = "t3.2xlarge"
}
# See https://registry.coder.com/modules/coder/aws-ec2-instance-type
module "aws_ec2_instance_type" {
source = "registry.coder.com/coder/aws-ec2-instance-type/coder"
version = "~> 1.0"
default = "t3.micro"
}

data "coder_parameter" "root_volume_size_gb" {
Expand Down Expand Up @@ -156,7 +131,7 @@ data "aws_iam_instance_profile" "vm_instance_profile" {
# Be careful when modifying the below locals!
locals {
# TODO: provide a way to pick the availability zone.
aws_availability_zone = "${module.aws_region.value}a"
aws_availability_zone = module.aws_region.default_availability_zone

hostname = lower(data.coder_workspace.me.name)
linux_user = "coder"
Expand Down Expand Up @@ -247,7 +222,7 @@ data "cloudinit_config" "user_data" {
resource "aws_instance" "vm" {
ami = data.aws_ami.ubuntu.id
availability_zone = local.aws_availability_zone
instance_type = data.coder_parameter.instance_type.value
instance_type = module.aws_ec2_instance_type.value
iam_instance_profile = try(data.aws_iam_instance_profile.vm_instance_profile[0].name, null)
root_block_device {
volume_size = data.coder_parameter.root_volume_size_gb.value
Expand Down Expand Up @@ -306,7 +281,7 @@ resource "coder_metadata" "info" {
}
item {
key = "instance_type"
value = data.coder_parameter.instance_type.value
value = module.aws_ec2_instance_type.value
}
item {
key = "ssh_pubkey"
Expand Down
141 changes: 14 additions & 127 deletions registry/coder/templates/aws-linux/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -12,135 +12,22 @@ terraform {
}
}

# Last updated 2023-03-14
# aws ec2 describe-regions | jq -r '[.Regions[].RegionName] | sort'
data "coder_parameter" "region" {
name = "region"
display_name = "Region"
description = "The region to deploy the workspace in."
default = "us-east-1"
mutable = false
option {
name = "Asia Pacific (Tokyo)"
value = "ap-northeast-1"
icon = "/emojis/1f1ef-1f1f5.png"
}
option {
name = "Asia Pacific (Seoul)"
value = "ap-northeast-2"
icon = "/emojis/1f1f0-1f1f7.png"
}
option {
name = "Asia Pacific (Osaka)"
value = "ap-northeast-3"
icon = "/emojis/1f1ef-1f1f5.png"
}
option {
name = "Asia Pacific (Mumbai)"
value = "ap-south-1"
icon = "/emojis/1f1ee-1f1f3.png"
}
option {
name = "Asia Pacific (Singapore)"
value = "ap-southeast-1"
icon = "/emojis/1f1f8-1f1ec.png"
}
option {
name = "Asia Pacific (Sydney)"
value = "ap-southeast-2"
icon = "/emojis/1f1e6-1f1fa.png"
}
option {
name = "Canada (Central)"
value = "ca-central-1"
icon = "/emojis/1f1e8-1f1e6.png"
}
option {
name = "EU (Frankfurt)"
value = "eu-central-1"
icon = "/emojis/1f1ea-1f1fa.png"
}
option {
name = "EU (Stockholm)"
value = "eu-north-1"
icon = "/emojis/1f1ea-1f1fa.png"
}
option {
name = "EU (Ireland)"
value = "eu-west-1"
icon = "/emojis/1f1ea-1f1fa.png"
}
option {
name = "EU (London)"
value = "eu-west-2"
icon = "/emojis/1f1ea-1f1fa.png"
}
option {
name = "EU (Paris)"
value = "eu-west-3"
icon = "/emojis/1f1ea-1f1fa.png"
}
option {
name = "South America (São Paulo)"
value = "sa-east-1"
icon = "/emojis/1f1e7-1f1f7.png"
}
option {
name = "US East (N. Virginia)"
value = "us-east-1"
icon = "/emojis/1f1fa-1f1f8.png"
}
option {
name = "US East (Ohio)"
value = "us-east-2"
icon = "/emojis/1f1fa-1f1f8.png"
}
option {
name = "US West (N. California)"
value = "us-west-1"
icon = "/emojis/1f1fa-1f1f8.png"
}
option {
name = "US West (Oregon)"
value = "us-west-2"
icon = "/emojis/1f1fa-1f1f8.png"
}
# See https://registry.coder.com/modules/coder/aws-region
module "aws_region" {
source = "registry.coder.com/coder/aws-region/coder"
version = "~> 1.1"
Comment thread
phorcys420 marked this conversation as resolved.
default = "us-east-1"
}

data "coder_parameter" "instance_type" {
name = "instance_type"
display_name = "Instance type"
description = "What instance type should your workspace use?"
default = "t3.micro"
mutable = false
option {
name = "2 vCPU, 1 GiB RAM"
value = "t3.micro"
}
option {
name = "2 vCPU, 2 GiB RAM"
value = "t3.small"
}
option {
name = "2 vCPU, 4 GiB RAM"
value = "t3.medium"
}
option {
name = "2 vCPU, 8 GiB RAM"
value = "t3.large"
}
option {
name = "4 vCPU, 16 GiB RAM"
value = "t3.xlarge"
}
option {
name = "8 vCPU, 32 GiB RAM"
value = "t3.2xlarge"
}
# See https://registry.coder.com/modules/coder/aws-ec2-instance-type
module "aws_ec2_instance_type" {
source = "registry.coder.com/coder/aws-ec2-instance-type/coder"
version = "~> 1.0"
default = "t3.micro"
}

provider "aws" {
region = data.coder_parameter.region.value
region = module.aws_region.value
}

data "coder_workspace" "me" {}
Expand Down Expand Up @@ -240,8 +127,8 @@ data "cloudinit_config" "user_data" {

resource "aws_instance" "dev" {
ami = data.aws_ami.ubuntu.id
availability_zone = "${data.coder_parameter.region.value}a"
instance_type = data.coder_parameter.instance_type.value
availability_zone = module.aws_region.default_availability_zone
instance_type = module.aws_ec2_instance_type.value

user_data = data.cloudinit_config.user_data.rendered
tags = {
Expand All @@ -258,7 +145,7 @@ resource "coder_metadata" "workspace_info" {
resource_id = aws_instance.dev.id
item {
key = "region"
value = data.coder_parameter.region.value
value = module.aws_region.value
}
item {
key = "instance type"
Expand Down
Loading
Loading