Add modules
parent
a25b637c46
commit
a69f41951d
@ -0,0 +1,65 @@
|
|||||||
|
---
|
||||||
|
display_name: AWS Region
|
||||||
|
description: A parameter with human region names and icons
|
||||||
|
icon: ../.icons/aws.svg
|
||||||
|
maintainer_github: coder
|
||||||
|
verified: true
|
||||||
|
tags: [helper, parameter]
|
||||||
|
---
|
||||||
|
|
||||||
|
# AWS Regions
|
||||||
|
|
||||||
|
A parameter with all AWS regions. This allows developers to select
|
||||||
|
the region closest to them.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Default Region
|
||||||
|
|
||||||
|
Customize the preselected parameter value:
|
||||||
|
|
||||||
|
```hcl
|
||||||
|
module "aws-region" {
|
||||||
|
source = "https://registry.coder.com/modules/aws-region"
|
||||||
|
default = "us-east-1"
|
||||||
|
}
|
||||||
|
|
||||||
|
provider "aws" {
|
||||||
|
region = module.aws_region.value
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Customize Regions
|
||||||
|
|
||||||
|
Change the display name and icon for a region:
|
||||||
|
|
||||||
|
```hcl
|
||||||
|
module "aws-region" {
|
||||||
|
source = "https://registry.coder.com/modules/aws-region"
|
||||||
|
custom_names = {
|
||||||
|
"fra": "Awesome Germany!"
|
||||||
|
}
|
||||||
|
custom_icons = {
|
||||||
|
"fra": "/icons/smiley.svg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
provider "aws" {
|
||||||
|
region = module.aws_region.value
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Exclude Regions
|
||||||
|
|
||||||
|
Hide the `fra` region:
|
||||||
|
|
||||||
|
```hcl
|
||||||
|
module "aws-region" {
|
||||||
|
source = "https://registry.coder.com/modules/aws-region"
|
||||||
|
exclude = [ "fra" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
provider "aws" {
|
||||||
|
region = module.aws_region.value
|
||||||
|
}
|
||||||
|
```
|
@ -0,0 +1,145 @@
|
|||||||
|
terraform {
|
||||||
|
required_version = ">= 1.0"
|
||||||
|
|
||||||
|
required_providers {
|
||||||
|
coder = {
|
||||||
|
source = "coder/coder"
|
||||||
|
version = ">= 0.12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "display_name" {
|
||||||
|
default = "AWS Region"
|
||||||
|
description = "The display name of the parameter."
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "description" {
|
||||||
|
default = "The region to deploy workspace infrastructure."
|
||||||
|
description = "The description of the parameter."
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "default" {
|
||||||
|
default = "us-east-1"
|
||||||
|
description = "The default region to use if no region is specified."
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "mutable" {
|
||||||
|
default = false
|
||||||
|
description = "Whether the parameter can be changed after creation."
|
||||||
|
type = bool
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "custom_names" {
|
||||||
|
default = {}
|
||||||
|
description = "A map of custom display names for region IDs."
|
||||||
|
type = map(string)
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "custom_icons" {
|
||||||
|
default = {}
|
||||||
|
description = "A map of custom icons for region IDs."
|
||||||
|
type = map(string)
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "exclude" {
|
||||||
|
default = []
|
||||||
|
description = "A list of region IDs to exclude."
|
||||||
|
type = list(string)
|
||||||
|
}
|
||||||
|
|
||||||
|
locals {
|
||||||
|
regions = {
|
||||||
|
"ap-northeast-1" = {
|
||||||
|
name = "Asia Pacific (Tokyo)"
|
||||||
|
icon = "/emojis/1f1ef-1f1f5.png"
|
||||||
|
}
|
||||||
|
"ap-northeast-2" = {
|
||||||
|
name = "Asia Pacific (Seoul)"
|
||||||
|
icon = "/emojis/1f1f0-1f1f7.png"
|
||||||
|
}
|
||||||
|
"ap-northeast-3" = {
|
||||||
|
name = "Asia Pacific (Osaka)"
|
||||||
|
icon = "/emojis/1f1ef-1f1f5.png"
|
||||||
|
}
|
||||||
|
"ap-south-1" = {
|
||||||
|
name = "Asia Pacific (Mumbai)"
|
||||||
|
icon = "/emojis/1f1ee-1f1f3.png"
|
||||||
|
}
|
||||||
|
"ap-southeast-1" = {
|
||||||
|
name = "Asia Pacific (Singapore)"
|
||||||
|
icon = "/emojis/1f1f8-1f1ec.png"
|
||||||
|
}
|
||||||
|
"ap-southeast-2" = {
|
||||||
|
name = "Asia Pacific (Sydney)"
|
||||||
|
icon = "/emojis/1f1e6-1f1fa.png"
|
||||||
|
}
|
||||||
|
"ca-central-1" = {
|
||||||
|
name = "Canada (Central)"
|
||||||
|
icon = "/emojis/1f1e8-1f1e6.png"
|
||||||
|
}
|
||||||
|
"eu-central-1" = {
|
||||||
|
name = "EU (Frankfurt)"
|
||||||
|
icon = "/emojis/1f1ea-1f1fa.png"
|
||||||
|
}
|
||||||
|
"eu-north-1" = {
|
||||||
|
name = "EU (Stockholm)"
|
||||||
|
icon = "/emojis/1f1ea-1f1fa.png"
|
||||||
|
}
|
||||||
|
"eu-west-1" = {
|
||||||
|
name = "EU (Ireland)"
|
||||||
|
icon = "/emojis/1f1ea-1f1fa.png"
|
||||||
|
}
|
||||||
|
"eu-west-2" = {
|
||||||
|
name = "EU (London)"
|
||||||
|
icon = "/emojis/1f1ea-1f1fa.png"
|
||||||
|
}
|
||||||
|
"eu-west-3" = {
|
||||||
|
name = "EU (Paris)"
|
||||||
|
icon = "/emojis/1f1ea-1f1fa.png"
|
||||||
|
}
|
||||||
|
"sa-east-1" = {
|
||||||
|
name = "South America (São Paulo)"
|
||||||
|
icon = "/emojis/1f1e7-1f1f7.png"
|
||||||
|
}
|
||||||
|
"us-east-1" = {
|
||||||
|
name = "US East (N. Virginia)"
|
||||||
|
icon = "/emojis/1f1fa-1f1f8.png"
|
||||||
|
}
|
||||||
|
"us-east-2" = {
|
||||||
|
name = "US East (Ohio)"
|
||||||
|
icon = "/emojis/1f1fa-1f1f8.png"
|
||||||
|
}
|
||||||
|
"us-west-1" = {
|
||||||
|
name = "US West (N. California)"
|
||||||
|
icon = "/emojis/1f1fa-1f1f8.png"
|
||||||
|
}
|
||||||
|
"us-west-2" = {
|
||||||
|
name = "US West (Oregon)"
|
||||||
|
icon = "/emojis/1f1fa-1f1f8.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
data "coder_parameter" "region" {
|
||||||
|
name = "aws_region"
|
||||||
|
display_name = var.display_name
|
||||||
|
description = var.description
|
||||||
|
default = var.default
|
||||||
|
mutable = var.mutable
|
||||||
|
dynamic "option" {
|
||||||
|
for_each = { for k, v in var.regions : k => v if !(contains(var.exclude, k)) }
|
||||||
|
content {
|
||||||
|
name = try(var.custom_names[option.key], option.value.name)
|
||||||
|
icon = try(var.custom_icons[option.key], option.value.icon)
|
||||||
|
value = option.key
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
output "value" {
|
||||||
|
value = data.coder_parameter.region.value
|
||||||
|
}
|
@ -0,0 +1 @@
|
|||||||
|
# azure-regions
|
@ -0,0 +1 @@
|
|||||||
|
# fly-regions
|
@ -0,0 +1 @@
|
|||||||
|
# gcp-regions
|
Loading…
Reference in New Issue