|
|
@ -9,16 +9,28 @@ terraform {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
variable "gcp_regions" {
|
|
|
|
variable "display_name" {
|
|
|
|
|
|
|
|
default = "GCP 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" {
|
|
|
|
description = "List of GCP regions to include."
|
|
|
|
description = "List of GCP regions to include."
|
|
|
|
type = list(string)
|
|
|
|
type = list(string)
|
|
|
|
default = []
|
|
|
|
default = ["us-central1"]
|
|
|
|
validation {
|
|
|
|
validation {
|
|
|
|
condition = length(var.gcp_regions) > 0
|
|
|
|
condition = length(var.default) > 0
|
|
|
|
error_message = "At least one region must be selected."
|
|
|
|
error_message = "At least one region must be selected."
|
|
|
|
}
|
|
|
|
}
|
|
|
|
validation {
|
|
|
|
validation {
|
|
|
|
condition = can(regexall("^[a-z0-9-]+$", var.gcp_regions))
|
|
|
|
condition = can(regexall("^[a-z0-9-]+$", var.default))
|
|
|
|
error_message = "All regions must be valid names."
|
|
|
|
error_message = "All regions must be valid names."
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -29,193 +41,688 @@ variable "gpu_only" {
|
|
|
|
default = false
|
|
|
|
default = false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
locals {
|
|
|
|
locals {
|
|
|
|
all_zones = [
|
|
|
|
zones = {
|
|
|
|
# US Central
|
|
|
|
# US Central
|
|
|
|
{ zone = "us-central1-a", has_gpu = true, location = "Council Bluffs, Iowa, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
"us-central1-a" = {
|
|
|
|
{ zone = "us-central1-b", has_gpu = true, location = "Council Bluffs, Iowa, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "us-central1-c", has_gpu = true, location = "Council Bluffs, Iowa, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
name = "Council Bluffs, Iowa, USA"
|
|
|
|
{ zone = "us-central1-f", has_gpu = true, location = "Council Bluffs, Iowa, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-central1-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Council Bluffs, Iowa, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-central1-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Council Bluffs, Iowa, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-central1-f" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Council Bluffs, Iowa, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# US East
|
|
|
|
# US East
|
|
|
|
{ zone = "us-east1-b", has_gpu = true, location = "Moncks Corner, S. Carolina, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
"us-east1-b" = {
|
|
|
|
{ zone = "us-east1-c", has_gpu = true, location = "Moncks Corner, S. Carolina, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "us-east1-d", has_gpu = true, location = "Moncks Corner, S. Carolina, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
name = "Moncks Corner, S. Carolina, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-east1-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Moncks Corner, S. Carolina, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-east1-d" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Moncks Corner, S. Carolina, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "us-east4-a", has_gpu = true, location = "Ashburn, Virginia, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
"us-east4-a" = {
|
|
|
|
{ zone = "us-east4-b", has_gpu = true, location = "Ashburn, Virginia, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "us-east4-c", has_gpu = true, location = "Ashburn, Virginia, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
name = "Ashburn, Virginia, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-east4-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Ashburn, Virginia, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-east4-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Ashburn, Virginia, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "us-east5-a", has_gpu = false, location = "Columbus, Ohio, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
"us-east5-a" = {
|
|
|
|
{ zone = "us-east5-b", has_gpu = true, location = "Columbus, Ohio, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "us-east5-c", has_gpu = false, location = "Columbus, Ohio, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
name = "Columbus, Ohio, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-east5-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Columbus, Ohio, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-east5-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Columbus, Ohio, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Us West
|
|
|
|
# Us West
|
|
|
|
{ zone = "us-west1-a", has_gpu = true, location = "The Dalles, Oregon, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
"us-west1-a" = {
|
|
|
|
{ zone = "us-west1-b", has_gpu = true, location = "The Dalles, Oregon, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "us-west1-c", has_gpu = false, location = "The Dalles, Oregon, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
name = "The Dalles, Oregon, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-west1-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "The Dalles, Oregon, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-west1-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "The Dalles, Oregon, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "us-west2-a", has_gpu = false, location = "Los Angeles, California, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
"us-west2-a" = {
|
|
|
|
{ zone = "us-west2-b", has_gpu = true, location = "Los Angeles, California, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "us-west2-c", has_gpu = true, location = "Los Angeles, California, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
name = "Los Angeles, California, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-west2-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Los Angeles, California, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-west2-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Los Angeles, California, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "us-west3-a", has_gpu = true, location = "Salt Lake City, Utah, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
"us-west3-a" = {
|
|
|
|
{ zone = "us-west3-b", has_gpu = true, location = "Salt Lake City, Utah, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "us-west3-c", has_gpu = true, location = "Salt Lake City, Utah, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
name = "Salt Lake City, Utah, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-west3-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Salt Lake City, Utah, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-west3-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Salt Lake City, Utah, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "us-west4-a", has_gpu = true, location = "Las Vegas, Nevada, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
"us-west4-a" = {
|
|
|
|
{ zone = "us-west4-b", has_gpu = true, location = "Las Vegas, Nevada, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "us-west4-c", has_gpu = true, location = "Las Vegas, Nevada, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
name = "Las Vegas, Nevada, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-west4-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Las Vegas, Nevada, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-west4-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Las Vegas, Nevada, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# US South
|
|
|
|
# US South
|
|
|
|
{ zone = "us-south1-a", has_gpu = false, location = "Dallas, Texas, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
"us-south1-a" = {
|
|
|
|
{ zone = "us-south1-b", has_gpu = false, location = "Dallas, Texas, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "us-south1-c", has_gpu = false, location = "Dallas, Texas, USA", icon = "/emojis/1f1fa-1f1f8.png" },
|
|
|
|
name = "Dallas, Texas, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-south1-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Dallas, Texas, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"us-south1-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Dallas, Texas, USA"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1fa-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Canada
|
|
|
|
# Canada
|
|
|
|
{ zone = "northamerica-northeast1-a", has_gpu = true, location = "Montréal, Québec, Canada", icon = "/emojis/1f1e8-1f1f6.png" },
|
|
|
|
"northamerica-northeast1-a" = {
|
|
|
|
{ zone = "northamerica-northeast1-b", has_gpu = true, location = "Montréal, Québec, Canada", icon = "/emojis/1f1e8-1f1f6.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "northamerica-northeast1-c", has_gpu = true, location = "Montréal, Québec, Canada", icon = "/emojis/1f1e8-1f1f6.png" },
|
|
|
|
name = "Montréal, Québec, Canada"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e8-1f1f6.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"northamerica-northeast1-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Montréal, Québec, Canada"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e8-1f1f6.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"northamerica-northeast1-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Montréal, Québec, Canada"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e8-1f1f6.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "northamerica-northeast2-a", has_gpu = false, location = "Toronto, Ontario, Canada", icon = "/emojis/1f1e8-1f1f6.png" },
|
|
|
|
"northamerica-northeast2-a" = {
|
|
|
|
{ zone = "northamerica-northeast2-b", has_gpu = false, location = "Toronto, Ontario, Canada", icon = "/emojis/1f1e8-1f1f6.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "northamerica-northeast2-c", has_gpu = false, location = "Toronto, Ontario, Canada", icon = "/emojis/1f1e8-1f1f6.png" },
|
|
|
|
name = "Toronto, Ontario, Canada"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e8-1f1f6.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"northamerica-northeast2-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Toronto, Ontario, Canada"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e8-1f1f6.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"northamerica-northeast2-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Toronto, Ontario, Canada"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e8-1f1f6.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# South America East (Brazil, Chile)
|
|
|
|
# South America East (Brazil, Chile)
|
|
|
|
{ zone = "southamerica-east1-a", has_gpu = true, location = "Osasco, São Paulo, Brazil", icon = "/emojis/1f1e7-1f1f7.png" },
|
|
|
|
"southamerica-east1-a" = {
|
|
|
|
{ zone = "southamerica-east1-b", has_gpu = false, location = "Osasco, São Paulo, Brazil", icon = "/emojis/1f1e7-1f1f7.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "southamerica-east1-c", has_gpu = true, location = "Osasco, São Paulo, Brazil", icon = "/emojis/1f1e7-1f1f7.png" },
|
|
|
|
name = "Osasco, São Paulo, Brazil"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e7-1f1f7.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"southamerica-east1-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Osasco, São Paulo, Brazil"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e7-1f1f7.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"southamerica-east1-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Osasco, São Paulo, Brazil"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e7-1f1f7.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "southamerica-west1-a", has_gpu = false, location = "Santiago, Chile", icon = "/emojis/1f1e8-1f1f1.png" },
|
|
|
|
"southamerica-west1-a" = {
|
|
|
|
{ zone = "southamerica-west1-b", has_gpu = false, location = "Santiago, Chile", icon = "/emojis/1f1e8-1f1f1.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "southamerica-west1-c", has_gpu = false, location = "Santiago, Chile", icon = "/emojis/1f1e8-1f1f1.png" },
|
|
|
|
name = "Santiago, Chile"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e8-1f1f1.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"southamerica-west1-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Santiago, Chile"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e8-1f1f1.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"southamerica-west1-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Santiago, Chile"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e8-1f1f1.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Europe North (Finland)
|
|
|
|
# Europe North (Finland)
|
|
|
|
{ zone = "europe-north1-a", has_gpu = false, location = "Hamina, Finland", icon = "/emojis/1f1e7-1f1ee.png" },
|
|
|
|
"europe-north1-a" = {
|
|
|
|
{ zone = "europe-north1-b", has_gpu = false, location = "Hamina, Finland", icon = "/emojis/1f1e7-1f1ee.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "europe-north1-c", has_gpu = false, location = "Hamina, Finland", icon = "/emojis/1f1e7-1f1ee.png" },
|
|
|
|
name = "Hamina, Finland"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e7-1f1ee.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-north1-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Hamina, Finland"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e7-1f1ee.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-north1-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Hamina, Finland"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e7-1f1ee.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Europe Central (Poland)
|
|
|
|
# Europe Central (Poland)
|
|
|
|
{ zone = "europe-central2-a", has_gpu = false, location = "Warsaw, Poland", icon = "/emojis/1f1f5-1f1f1.png" },
|
|
|
|
"europe-central2-a" = {
|
|
|
|
{ zone = "europe-central2-b", has_gpu = true, location = "Warsaw, Poland", icon = "/emojis/1f1f5-1f1f1.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "europe-central2-c", has_gpu = true, location = "Warsaw, Poland", icon = "/emojis/1f1f5-1f1f1.png" },
|
|
|
|
name = "Warsaw, Poland"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f5-1f1f1.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-central2-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Warsaw, Poland"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f5-1f1f1.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-central2-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Warsaw, Poland"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f5-1f1f1.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Europe Southwest (Spain)
|
|
|
|
# Europe Southwest (Spain)
|
|
|
|
{ zone = "europe-southwest1-a", has_gpu = false, location = "Madrid, Spain", icon = "/emojis/1f1ea-1f1f8.png" },
|
|
|
|
"europe-southwest1-a" = {
|
|
|
|
{ zone = "europe-southwest1-b", has_gpu = false, location = "Madrid, Spain", icon = "/emojis/1f1ea-1f1f8.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "europe-southwest1-c", has_gpu = false, location = "Madrid, Spain", icon = "/emojis/1f1ea-1f1f8.png" },
|
|
|
|
name = "Madrid, Spain"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ea-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-southwest1-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Madrid, Spain"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ea-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-southwest1-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Madrid, Spain"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ea-1f1f8.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Europe West
|
|
|
|
# Europe West
|
|
|
|
{ zone = "europe-west1-b", has_gpu = true, location = "St. Ghislain, Belgium", icon = "/emojis/1f1e7-1f1ea.png" },
|
|
|
|
"europe-west1-b" = {
|
|
|
|
{ zone = "europe-west1-c", has_gpu = true, location = "St. Ghislain, Belgium", icon = "/emojis/1f1e7-1f1ea.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "europe-west1-d", has_gpu = true, location = "St. Ghislain, Belgium", icon = "/emojis/1f1e7-1f1ea.png" },
|
|
|
|
name = "St. Ghislain, Belgium"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e7-1f1ea.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west1-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "St. Ghislain, Belgium"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e7-1f1ea.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west1-d" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "St. Ghislain, Belgium"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e7-1f1ea.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "europe-west2-a", has_gpu = true, location = "London, England", icon = "/emojis/1f173–1f1ff.png" },
|
|
|
|
"europe-west2-a" = {
|
|
|
|
{ zone = "europe-west2-b", has_gpu = true, location = "London, England", icon = "/emojis/1f173–1f1ff.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "europe-west2-c", has_gpu = false, location = "London, England", icon = "/emojis/1f173–1f1ff.png" },
|
|
|
|
name = "London, England"
|
|
|
|
|
|
|
|
icon = "/emojis/1f173-1f1ff.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west2-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "London, England"
|
|
|
|
|
|
|
|
icon = "/emojis/1f173-1f1ff.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west2-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "London, England"
|
|
|
|
|
|
|
|
icon = "/emojis/1f173-1f1ff.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "europe-west3-b", has_gpu = false, location = "Frankfurt, Germany", icon = "/emojis/1f1e9-1f1ea.png" },
|
|
|
|
"europe-west3-b" = {
|
|
|
|
{ zone = "europe-west3-c", has_gpu = true, location = "Frankfurt, Germany", icon = "/emojis/1f1e9-1f1ea.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "europe-west3-d", has_gpu = false, location = "Frankfurt, Germany", icon = "/emojis/1f1e9-1f1ea.png" },
|
|
|
|
name = "Frankfurt, Germany"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e9-1f1ea.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west3-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Frankfurt, Germany"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e9-1f1ea.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west3-d" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Frankfurt, Germany"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e9-1f1ea.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "europe-west4-a", has_gpu = true, location = "Eemshaven, Netherlands", icon = "/emojis/1f1f3-1f1f1.png" },
|
|
|
|
"europe-west4-a" = {
|
|
|
|
{ zone = "europe-west4-b", has_gpu = true, location = "Eemshaven, Netherlands", icon = "/emojis/1f1f3-1f1f1.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "europe-west4-c", has_gpu = true, location = "Eemshaven, Netherlands", icon = "/emojis/1f1f3-1f1f1.png" },
|
|
|
|
name = "Eemshaven, Netherlands"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f3-1f1f1.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west4-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Eemshaven, Netherlands"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f3-1f1f1.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west4-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Eemshaven, Netherlands"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f3-1f1f1.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "europe-west6-a", has_gpu = false, location = "Zurich, Switzerland", icon = "/emojis/1f1e8-1f1ed.png" },
|
|
|
|
"europe-west6-a" = {
|
|
|
|
{ zone = "europe-west6-b", has_gpu = false, location = "Zurich, Switzerland", icon = "/emojis/1f1e8-1f1ed.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "europe-west6-c", has_gpu = false, location = "Zurich, Switzerland", icon = "/emojis/1f1e8-1f1ed.png" },
|
|
|
|
name = "Zurich, Switzerland"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e8-1f1ed.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west6-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Zurich, Switzerland"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e8-1f1ed.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west6-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Zurich, Switzerland"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e8-1f1ed.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "europe-west8-a", has_gpu = false, location = "Milan, Italy", icon = "/emojis/1f1ee-1f1f9.png" },
|
|
|
|
"europe-west8-a" = {
|
|
|
|
{ zone = "europe-west8-b", has_gpu = false, location = "Milan, Italy", icon = "/emojis/1f1ee-1f1f9.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "europe-west8-c", has_gpu = false, location = "Milan, Italy", icon = "/emojis/1f1ee-1f1f9.png" },
|
|
|
|
name = "Milan, Italy"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f9.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west8-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Milan, Italy"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f9.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west8-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Milan, Italy"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f9.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "europe-west9-a", has_gpu = false, location = "Paris, France", icon = "/emojis/1f1eb-1f1f7.png" },
|
|
|
|
"europe-west9-a" = {
|
|
|
|
{ zone = "europe-west9-b", has_gpu = false, location = "Paris, France", icon = "/emojis/1f1eb-1f1f7.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "europe-west9-c", has_gpu = false, location = "Paris, France", icon = "/emojis/1f1eb-1f1f7.png" },
|
|
|
|
name = "Paris, France"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1eb-1f1f7.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west9-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Paris, France"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1eb-1f1f7.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west9-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Paris, France"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1eb-1f1f7.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "europe-west10-a", has_gpu = false, location = "Berlin, Germany", icon = "/emojis/1f1e9-1f1ea.png" },
|
|
|
|
"europe-west10-a" = {
|
|
|
|
{ zone = "europe-west10-b", has_gpu = false, location = "Berlin, Germany", icon = "/emojis/1f1e9-1f1ea.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "europe-west10-c", has_gpu = false, location = "Berlin, Germany", icon = "/emojis/1f1e9-1f1ea.png" },
|
|
|
|
name = "Berlin, Germany"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e9-1f1ea.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west10-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Berlin, Germany"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e9-1f1ea.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west10-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Berlin, Germany"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e9-1f1ea.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "europe-west12-a", has_gpu = false, location = "Turin, Italy", icon = "/emojis/1f1ee-1f1f9.png" },
|
|
|
|
"europe-west12-a" = {
|
|
|
|
{ zone = "europe-west12-b", has_gpu = false, location = "Turin, Italy", icon = "/emojis/1f1ee-1f1f9.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "europe-west12-c", has_gpu = false, location = "Turin, Italy", icon = "/emojis/1f1ee-1f1f9.png" },
|
|
|
|
name = "Turin, Italy"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f9.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west12-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Turin, Italy"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f9.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"europe-west12-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Turin, Italy"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f9.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Middleeast Central (Qatar, Saudi Arabia)
|
|
|
|
# Middleeast Central (Qatar, Saudi Arabia)
|
|
|
|
{ zone = "me-central1-a", has_gpu = false, location = "Doha, Qatar", icon = "/emojis/1f1f6-1f1e6.png" },
|
|
|
|
"me-central1-a" = {
|
|
|
|
{ zone = "me-central1-b", has_gpu = false, location = "Doha, Qatar", icon = "/emojis/1f1f6-1f1e6.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "me-central1-c", has_gpu = false, location = "Doha, Qatar", icon = "/emojis/1f1f6-1f1e6.png" },
|
|
|
|
name = "Doha, Qatar"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f6-1f1e6.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"me-central1-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Doha, Qatar"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f6-1f1e6.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"me-central1-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Doha, Qatar"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f6-1f1e6.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "me-central2-a", has_gpu = false, location = "Dammam, Saudi Arabia", icon = "/emojis/1f1f8-1f1e6.png" },
|
|
|
|
"me-central2-a" = {
|
|
|
|
{ zone = "me-central2-b", has_gpu = false, location = "Dammam, Saudi Arabia", icon = "/emojis/1f1f8-1f1e6.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "me-central2-c", has_gpu = false, location = "Dammam, Saudi Arabia", icon = "/emojis/1f1f8-1f1e6.png" },
|
|
|
|
name = "Dammam, Saudi Arabia"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f8-1f1e6.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"me-central2-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Dammam, Saudi Arabia"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f8-1f1e6.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"me-central2-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Dammam, Saudi Arabia"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f8-1f1e6.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Middleeast West (Israel)
|
|
|
|
# Middleeast West (Israel)
|
|
|
|
{ zone = "me-west1-a", has_gpu = false, location = "Tel Aviv, Israel", icon = "/emojis/1f1ee-1f1f1.png" },
|
|
|
|
"me-west1-a" = {
|
|
|
|
{ zone = "me-west1-b", has_gpu = true, location = "Tel Aviv, Israel", icon = "/emojis/1f1ee-1f1f1.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "me-west1-c", has_gpu = true, location = "Tel Aviv, Israel", icon = "/emojis/1f1ee-1f1f1.png" },
|
|
|
|
name = "Tel Aviv, Israel"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f1.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"me-west1-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Tel Aviv, Israel"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f1.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"me-west1-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Tel Aviv, Israel"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f1.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Asia East (Taiwan, Hong Kong)
|
|
|
|
# Asia East (Taiwan, Hong Kong)
|
|
|
|
{ zone = "asia-east1-a", has_gpu = true, location = "Changhua County, Taiwan", icon = "/emojis/1f1f9-1f1fc.png" },
|
|
|
|
"asia-east1-a" = {
|
|
|
|
{ zone = "asia-east1-b", has_gpu = true, location = "Changhua County, Taiwan", icon = "/emojis/1f1f9-1f1fc.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "asia-east1-c", has_gpu = true, location = "Changhua County, Taiwan", icon = "/emojis/1f1f9-1f1fc.png" },
|
|
|
|
name = "Changhua County, Taiwan"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f9-1f1fc.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-east1-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Changhua County, Taiwan"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f9-1f1fc.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-east1-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Changhua County, Taiwan"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f9-1f1fc.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{ zone = "asia-east2-a", has_gpu = true, location = "Hong Kong", icon = "/emojis/1f1ed-1f1f0.png" },
|
|
|
|
"asia-east2-a" = {
|
|
|
|
{ zone = "asia-east2-b", has_gpu = false, location = "Hong Kong", icon = "/emojis/1f1ed-1f1f0.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "asia-east2-c", has_gpu = true, location = "Hong Kong", icon = "/emojis/1f1ed-1f1f0.png" },
|
|
|
|
name = "Hong Kong"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ed-1f1f0.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-east2-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Hong Kong"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ed-1f1f0.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-east2-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Hong Kong"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ed-1f1f0.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Asia Northeast (Japan, South Korea)
|
|
|
|
# Asia Northeast (Japan, South Korea)
|
|
|
|
{ zone = "asia-northeast1-a", has_gpu = true, location = "Tokyo, Japan", icon = "/emojis/1f1ef-1f1f5.png" },
|
|
|
|
"asia-northeast1-a" = {
|
|
|
|
{ zone = "asia-northeast1-b", has_gpu = false, location = "Tokyo, Japan", icon = "/emojis/1f1ef-1f1f5.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "asia-northeast1-c", has_gpu = true, location = "Tokyo, Japan", icon = "/emojis/1f1ef-1f1f5.png" },
|
|
|
|
name = "Tokyo, Japan"
|
|
|
|
{ zone = "asia-northeast2-a", has_gpu = false, location = "Osaka, Japan", icon = "/emojis/1f1ef-1f1f5.png" },
|
|
|
|
icon = "/emojis/1f1ef-1f1f5.png"
|
|
|
|
{ zone = "asia-northeast2-b", has_gpu = false, location = "Osaka, Japan", icon = "/emojis/1f1ef-1f1f5.png" },
|
|
|
|
}
|
|
|
|
{ zone = "asia-northeast2-c", has_gpu = false, location = "Osaka, Japan", icon = "/emojis/1f1ef-1f1f5.png" },
|
|
|
|
"asia-northeast1-b" = {
|
|
|
|
{ zone = "asia-northeast3-a", has_gpu = true, location = "Seoul, South Korea", icon = "/emojis/1f1f0-1f1f7.png" },
|
|
|
|
has_gpu = false
|
|
|
|
{ zone = "asia-northeast3-b", has_gpu = true, location = "Seoul, South Korea", icon = "/emojis/1f1f0-1f1f7.png" },
|
|
|
|
name = "Tokyo, Japan"
|
|
|
|
{ zone = "asia-northeast3-c", has_gpu = true, location = "Seoul, South Korea", icon = "/emojis/1f1f0-1f1f7.png" },
|
|
|
|
icon = "/emojis/1f1ef-1f1f5.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-northeast1-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Tokyo, Japan"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ef-1f1f5.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-northeast2-a" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Osaka, Japan"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ef-1f1f5.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-northeast2-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Osaka, Japan"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ef-1f1f5.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-northeast2-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Osaka, Japan"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ef-1f1f5.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-northeast3-a" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Seoul, South Korea"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f0-1f1f7.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-northeast3-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Seoul, South Korea"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f0-1f1f7.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-northeast3-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Seoul, South Korea"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f0-1f1f7.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Asia South (India)
|
|
|
|
# Asia South (India)
|
|
|
|
{ zone = "asia-south1-a", has_gpu = true, location = "Mumbai, India", icon = "/emojis/1f1ee-1f1f3.png" },
|
|
|
|
"asia-south1-a" = {
|
|
|
|
{ zone = "asia-south1-b", has_gpu = true, location = "Mumbai, India", icon = "/emojis/1f1ee-1f1f3.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "asia-south1-c", has_gpu = false, location = "Mumbai, India", icon = "/emojis/1f1ee-1f1f3.png" },
|
|
|
|
name = "Mumbai, India"
|
|
|
|
{ zone = "asia-south2-a", has_gpu = false, location = "Delhi, India", icon = "/emojis/1f1ee-1f1f3.png" },
|
|
|
|
icon = "/emojis/1f1ee-1f1f3.png"
|
|
|
|
{ zone = "asia-south2-b", has_gpu = false, location = "Delhi, India", icon = "/emojis/1f1ee-1f1f3.png" },
|
|
|
|
}
|
|
|
|
{ zone = "asia-south2-c", has_gpu = false, location = "Delhi, India", icon = "/emojis/1f1ee-1f1f3.png" },
|
|
|
|
"asia-south1-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Mumbai, India"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f3.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-south1-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Mumbai, India"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f3.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-south2-a" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Delhi, India"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f3.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-south2-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Delhi, India"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f3.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-south2-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Delhi, India"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1f3.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Asia Southeast (Singapore, Indonesia)
|
|
|
|
# Asia Southeast (Singapore, Indonesia)
|
|
|
|
{ zone = "asia-southeast1-a", has_gpu = true, location = "Jurong West, Singapore", icon = "/emojis/1f1f8-1f1ec.png" },
|
|
|
|
"asia-southeast1-a" = {
|
|
|
|
{ zone = "asia-southeast1-b", has_gpu = true, location = "Jurong West, Singapore", icon = "/emojis/1f1f8-1f1ec.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "asia-southeast1-c", has_gpu = true, location = "Jurong West, Singapore", icon = "/emojis/1f1f8-1f1ec.png" },
|
|
|
|
name = "Jurong West, Singapore"
|
|
|
|
{ zone = "asia-southeast2-a", has_gpu = true, location = "Jakarta, Indonesia", icon = "/emojis/1f1ee-1f1e9.png" },
|
|
|
|
icon = "/emojis/1f1f8-1f1ec.png"
|
|
|
|
{ zone = "asia-southeast2-b", has_gpu = true, location = "Jakarta, Indonesia", icon = "/emojis/1f1ee-1f1e9.png" },
|
|
|
|
}
|
|
|
|
{ zone = "asia-southeast2-c", has_gpu = true, location = "Jakarta, Indonesia", icon = "/emojis/1f1ee-1f1e9.png" },
|
|
|
|
"asia-southeast1-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Jurong West, Singapore"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f8-1f1ec.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-southeast1-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Jurong West, Singapore"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1f8-1f1ec.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-southeast2-a" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Jakarta, Indonesia"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1e9.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-southeast2-b" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Jakarta, Indonesia"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1e9.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"asia-southeast2-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Jakarta, Indonesia"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1ee-1f1e9.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Australia (Sydney, Melbourne)
|
|
|
|
# Australia (Sydney, Melbourne)
|
|
|
|
{ zone = "australia-southeast1-a", has_gpu = true, location = "Sydney, Australia", icon = "/emojis/1f1e6-1f1fa.png" },
|
|
|
|
"australia-southeast1-a" = {
|
|
|
|
{ zone = "australia-southeast1-b", has_gpu = true, location = "Sydney, Australia", icon = "/emojis/1f1e6-1f1fa.png" },
|
|
|
|
has_gpu = true
|
|
|
|
{ zone = "australia-southeast1-c", has_gpu = true, location = "Sydney, Australia", icon = "/emojis/1f1e6-1f1fa.png" },
|
|
|
|
name = "Sydney, Australia"
|
|
|
|
{ zone = "australia-southeast2-a", has_gpu = false, location = "Melbourne, Australia", icon = "/emojis/1f1e6-1f1fa.png" },
|
|
|
|
icon = "/emojis/1f1e6-1f1fa.png"
|
|
|
|
{ zone = "australia-southeast2-b", has_gpu = false, location = "Melbourne, Australia", icon = "/emojis/1f1e6-1f1fa.png" },
|
|
|
|
}
|
|
|
|
{ zone = "australia-southeast2-c", has_gpu = false, location = "Melbourne, Australia", icon = "/emojis/1f1e6-1f1fa.png" },
|
|
|
|
"australia-southeast1-b" = {
|
|
|
|
]
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Sydney, Australia"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e6-1f1fa.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"australia-southeast1-c" = {
|
|
|
|
|
|
|
|
has_gpu = true
|
|
|
|
|
|
|
|
name = "Sydney, Australia"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e6-1f1fa.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"australia-southeast2-a" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Melbourne, Australia"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e6-1f1fa.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"australia-southeast2-b" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Melbourne, Australia"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e6-1f1fa.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"australia-southeast2-c" = {
|
|
|
|
|
|
|
|
has_gpu = false
|
|
|
|
|
|
|
|
name = "Melbourne, Australia"
|
|
|
|
|
|
|
|
icon = "/emojis/1f1e6-1f1fa.png"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
data "coder_parameter" "gcp_zones" {
|
|
|
|
data "coder_parameter" "region" {
|
|
|
|
type = "list(string)"
|
|
|
|
type = "list(string)"
|
|
|
|
name = "gcp_zones"
|
|
|
|
name = "gcp_region"
|
|
|
|
display_name = "GCP Zones"
|
|
|
|
display_name = var.display_name
|
|
|
|
|
|
|
|
description = var.description
|
|
|
|
icon = "/icon/gcp.svg"
|
|
|
|
icon = "/icon/gcp.svg"
|
|
|
|
mutable = true
|
|
|
|
mutable = var.mutable
|
|
|
|
|
|
|
|
|
|
|
|
dynamic "option" {
|
|
|
|
dynamic "option" {
|
|
|
|
for_each = [for z in local.all_zones : z if contains(var.gcp_regions, substr(z.zone, 0, index(z.zone, "-"))) && (!var.gpu_only || z.has_gpu)]
|
|
|
|
for_each = { for k, v in local.zones : k => v if contains(var.default, k) && (!var.gpu_only || v.has_gpu) }
|
|
|
|
content {
|
|
|
|
content {
|
|
|
|
icon = option.value.icon
|
|
|
|
icon = try(var.custom_icons[option.key], option.value.icon)
|
|
|
|
name = option.value.location
|
|
|
|
name = try(var.custom_names[option.key], option.value.name)
|
|
|
|
description = option.value.zone
|
|
|
|
description = option.key
|
|
|
|
value = option.value.zone
|
|
|
|
value = option.key
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
output "value" {
|
|
|
|
|
|
|
|
value = data.coder_parameter.region.value
|
|
|
|
|
|
|
|
}
|
|
|
|