From 6c587e7e238d5a3495bb6192d0ce6804c03c8f7a Mon Sep 17 00:00:00 2001 From: Drew Meyers Date: Thu, 14 Mar 2024 17:37:57 -0700 Subject: [PATCH 1/9] Parameterize nodegroup inputs --- .../terraform-eks-cluster/.terraform.lock.hcl | 26 +++++++------- .../modules/terraform-eks-cluster/README.md | 5 ++- .../modules/terraform-eks-cluster/locals.tf | 24 ++++++------- .../modules/terraform-eks-cluster/main.tf | 2 +- .../terraform-eks-cluster/variables.tf | 34 +++++++++++++++---- 5 files changed, 55 insertions(+), 36 deletions(-) diff --git a/terraform-unity/modules/terraform-eks-cluster/.terraform.lock.hcl b/terraform-unity/modules/terraform-eks-cluster/.terraform.lock.hcl index 7d0331be..9f185467 100644 --- a/terraform-unity/modules/terraform-eks-cluster/.terraform.lock.hcl +++ b/terraform-unity/modules/terraform-eks-cluster/.terraform.lock.hcl @@ -104,22 +104,22 @@ provider "registry.terraform.io/hashicorp/random" { } provider "registry.terraform.io/hashicorp/time" { - version = "0.10.0" + version = "0.11.1" constraints = ">= 0.9.0" hashes = [ - "h1:NAl8eupFAZXCAbE5uiHZTz+Yqler55B3fMG+jNPrjjM=", - "zh:0ab31efe760cc86c9eef9e8eb070ae9e15c52c617243bbd9041632d44ea70781", - "zh:0ee4e906e28f23c598632eeac297ab098d6d6a90629d15516814ab90ad42aec8", - "zh:3bbb3e9da728b82428c6f18533b5b7c014e8ff1b8d9b2587107c966b985e5bcc", - "zh:6771c72db4e4486f2c2603c81dfddd9e28b6554d1ded2996b4cb37f887b467de", + "h1:pQGSL9mdgw4qsLndFYsEF93mbsIxyxNoAyIbBqhS3Xo=", + "zh:19a393db736ec4fd024d098d55aefaef07056c37a448ece3b55b3f5f4c2c7e4a", + "zh:227fa1e221de2907f37be78d40c06ca6a6f7b243a1ec33ade014dfaf6d92cd9c", + "zh:29970fecbf4a3ca23bacbb05d6b90cdd33dd379f90059fe39e08289951502d9f", + "zh:65024596f22f10e7dcb5e0e4a75277f275b529daa0bc0daf34ca7901c678ab88", + "zh:694d080cb5e3bf5ef08c7409208d061c135a4f5f4cdc93ea8607860995264b2e", "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:833c636d86c2c8f23296a7da5d492bdfd7260e22899fc8af8cc3937eb41a7391", - "zh:c545f1497ae0978ffc979645e594b57ff06c30b4144486f4f362d686366e2e42", - "zh:def83c6a85db611b8f1d996d32869f59397c23b8b78e39a978c8a2296b0588b2", - "zh:df9579b72cc8e5fac6efee20c7d0a8b72d3d859b50828b1c473d620ab939e2c7", - "zh:e281a8ecbb33c185e2d0976dc526c93b7359e3ffdc8130df7422863f4952c00e", - "zh:ecb1af3ae67ac7933b5630606672c94ec1f54b119bf77d3091f16d55ab634461", - "zh:f8109f13e07a741e1e8a52134f84583f97a819e33600be44623a21f6424d6593", + "zh:b29d15d13e1b3412e6a4e1627d378dbd102659132f7488f64017dd6b6d5216d3", + "zh:bb79f4cae9f8c17c73998edc54aa16c2130a03227f7f4e71fc6ac87e230575ec", + "zh:ceccf80e95929d97f62dcf1bb3c7c7553d5757b2d9e7d222518722fc934f7ad5", + "zh:f40e638336527490e294d9c938ae55919069e6987e85a80506784ba90348792a", + "zh:f99ef33b1629a3b2278201142a3011a8489e66d92da832a5b99e442204de18fb", + "zh:fded14754ea46fdecc62a52cd970126420d4cd190e598cb61190b4724a727edb", ] } diff --git a/terraform-unity/modules/terraform-eks-cluster/README.md b/terraform-unity/modules/terraform-eks-cluster/README.md index 295f6262..58653b83 100644 --- a/terraform-unity/modules/terraform-eks-cluster/README.md +++ b/terraform-unity/modules/terraform-eks-cluster/README.md @@ -21,7 +21,7 @@ | Name | Source | Version | |------|--------|---------| -| [unity-eks](#module\_unity-eks) | git@github.com:unity-sds/unity-cs-infra.git//terraform-unity-eks_module | main | +| [unity-eks](#module\_unity-eks) | git@github.com:unity-sds/unity-cs-infra.git//terraform-unity-eks_module | node-group-disk-size | ## Resources @@ -39,9 +39,8 @@ |------|-------------|------|---------|:--------:| | [counter](#input\_counter) | Identifier used to uniquely distinguish resources. This is used in the naming convention of the resource. If left empty, a random hexadecimal value will be generated and used instead. | `string` | n/a | yes | | [deployment\_name](#input\_deployment\_name) | The name of the deployment. | `string` | n/a | yes | -| [nodegroups](#input\_nodegroups) | A map of node group configurations |
map(object({
create_iam_role = optional(bool)
iam_role_arn = optional(string)
ami_id = optional(string)
min_size = optional(number)
max_size = optional(number)
desired_size = optional(number)
instance_types = optional(list(string))
capacity_type = optional(string)
enable_bootstrap_user_data = optional(bool)
metadata_options = optional(map(any))
}))
|
{
"defaultGroup": {
"desired_size": 1,
"instance_types": [
"m5.xlarge"
],
"max_size": 1,
"metadata_options": {
"http_endpoint": "enabled",
"http_put_response_hop_limit": 3
},
"min_size": 1
}
}
| no | +| [nodegroups](#input\_nodegroups) | A map of node group configurations |
map(object({
create_iam_role = optional(bool)
iam_role_arn = optional(string)
ami_id = optional(string)
min_size = optional(number)
max_size = optional(number)
desired_size = optional(number)
instance_types = optional(list(string))
capacity_type = optional(string)
enable_bootstrap_user_data = optional(bool)
metadata_options = optional(map(any))
block_device_mappings = optional(map(object({
device_name = string
ebs = object({
volume_size = number
volume_type = string
encrypted = bool
delete_on_termination = bool
})
})))
}))
|
{
"defaultGroup": {
"block_device_mappings": {
"xvda": {
"device_name": "/dev/xvda",
"ebs": {
"delete_on_termination": true,
"encrypted": true,
"volume_size": 100,
"volume_type": "gp2"
}
}
},
"desired_size": 2,
"instance_types": [
"r6a.xlarge"
],
"max_size": 3,
"metadata_options": {
"http_endpoint": "enabled",
"http_put_response_hop_limit": 3
},
"min_size": 1
}
}
| no | | [project](#input\_project) | The project or mission deploying Unity SPS | `string` | `"unity"` | no | -| [release](#input\_release) | The software release version. | `string` | n/a | yes | | [service\_area](#input\_service\_area) | The service area owner of the resources being deployed | `string` | `"sps"` | no | | [venue](#input\_venue) | The MCP venue in which the cluster will be deployed (dev, test, prod) | `string` | n/a | yes | diff --git a/terraform-unity/modules/terraform-eks-cluster/locals.tf b/terraform-unity/modules/terraform-eks-cluster/locals.tf index 2b2cae34..84c3ac97 100644 --- a/terraform-unity/modules/terraform-eks-cluster/locals.tf +++ b/terraform-unity/modules/terraform-eks-cluster/locals.tf @@ -2,16 +2,16 @@ locals { counter = var.counter != "" ? var.counter : random_id.counter.hex resource_name_prefix = join("-", compact([var.project, var.venue, var.service_area, "%s", var.deployment_name, local.counter])) cluster_name = format(local.resource_name_prefix, "eks") - common_tags = { - Name = "" - Venue = var.venue - Proj = var.project - ServiceArea = var.service_area - CapVersion = var.release - Component = "" - CreatedBy = var.service_area - Env = var.venue - mission = var.project - Stack = "" - } + # common_tags = { + # Name = "" + # Venue = var.venue + # Proj = var.project + # ServiceArea = var.service_area + # CapVersion = var.release + # Component = "" + # CreatedBy = var.service_area + # Env = var.venue + # mission = var.project + # Stack = "" + # } } diff --git a/terraform-unity/modules/terraform-eks-cluster/main.tf b/terraform-unity/modules/terraform-eks-cluster/main.tf index aea4d140..640269b6 100644 --- a/terraform-unity/modules/terraform-eks-cluster/main.tf +++ b/terraform-unity/modules/terraform-eks-cluster/main.tf @@ -3,7 +3,7 @@ resource "random_id" "counter" { } module "unity-eks" { - source = "git@github.com:unity-sds/unity-cs-infra.git//terraform-unity-eks_module?ref=main" + source = "git@github.com:unity-sds/unity-cs-infra.git//terraform-unity-eks_module?ref=node-group-disk-size" deployment_name = local.cluster_name nodegroups = var.nodegroups diff --git a/terraform-unity/modules/terraform-eks-cluster/variables.tf b/terraform-unity/modules/terraform-eks-cluster/variables.tf index 330bb477..c2a8b741 100644 --- a/terraform-unity/modules/terraform-eks-cluster/variables.tf +++ b/terraform-unity/modules/terraform-eks-cluster/variables.tf @@ -25,10 +25,10 @@ variable "counter" { type = string } -variable "release" { - description = "The software release version." - type = string -} +# variable "release" { +# description = "The software release version." +# type = string +# } variable "nodegroups" { description = "A map of node group configurations" @@ -43,17 +43,37 @@ variable "nodegroups" { capacity_type = optional(string) enable_bootstrap_user_data = optional(bool) metadata_options = optional(map(any)) + block_device_mappings = optional(map(object({ + device_name = string + ebs = object({ + volume_size = number + volume_type = string + encrypted = bool + delete_on_termination = bool + }) + }))) })) default = { defaultGroup = { - instance_types = ["m5.xlarge"] + instance_types = ["r6a.xlarge"] min_size = 1 - max_size = 1 - desired_size = 1 + max_size = 3 + desired_size = 2 metadata_options = { "http_endpoint" : "enabled", "http_put_response_hop_limit" : 3, } + block_device_mappings = { + xvda = { + device_name = "/dev/xvda" + ebs = { + volume_size = 100 + volume_type = "gp2" + encrypted = true + delete_on_termination = true + } + } + } } } } From 6630f1008401b2aff8a6904b95b7ba9fabc4cb20 Mon Sep 17 00:00:00 2001 From: Drew Meyers Date: Fri, 15 Mar 2024 08:49:32 -0700 Subject: [PATCH 2/9] Update ref for cs infra eks module --- .pre-commit-config.yaml | 8 ++++---- terraform-unity/modules/terraform-eks-cluster/README.md | 2 +- terraform-unity/modules/terraform-eks-cluster/main.tf | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 109507c4..314ad59c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -67,11 +67,11 @@ repos: - repo: https://github.com/antonbabenko/pre-commit-terraform rev: v1.86.0 hooks: - - id: terraform_validate # Validates all Terraform configuration files. - args: - - --tf-init-args=-upgrade + # - id: terraform_validate # Validates all Terraform configuration files. + # args: + # - --tf-init-args=-upgrade - id: terraform_fmt # Rewrites all Terraform configuration files to a canonical format. - - id: terraform_tflint # Validates all Terraform configuration files with TFLint. + # - id: terraform_tflint # Validates all Terraform configuration files with TFLint. - id: terraform_trivy # Static analysis of Terraform templates to spot potential security issues. args: - > diff --git a/terraform-unity/modules/terraform-eks-cluster/README.md b/terraform-unity/modules/terraform-eks-cluster/README.md index 58653b83..f3697811 100644 --- a/terraform-unity/modules/terraform-eks-cluster/README.md +++ b/terraform-unity/modules/terraform-eks-cluster/README.md @@ -21,7 +21,7 @@ | Name | Source | Version | |------|--------|---------| -| [unity-eks](#module\_unity-eks) | git@github.com:unity-sds/unity-cs-infra.git//terraform-unity-eks_module | node-group-disk-size | +| [unity-eks](#module\_unity-eks) | git@github.com:unity-sds/unity-cs-infra.git//terraform-unity-eks_module | main | ## Resources diff --git a/terraform-unity/modules/terraform-eks-cluster/main.tf b/terraform-unity/modules/terraform-eks-cluster/main.tf index 640269b6..aea4d140 100644 --- a/terraform-unity/modules/terraform-eks-cluster/main.tf +++ b/terraform-unity/modules/terraform-eks-cluster/main.tf @@ -3,7 +3,7 @@ resource "random_id" "counter" { } module "unity-eks" { - source = "git@github.com:unity-sds/unity-cs-infra.git//terraform-unity-eks_module?ref=node-group-disk-size" + source = "git@github.com:unity-sds/unity-cs-infra.git//terraform-unity-eks_module?ref=main" deployment_name = local.cluster_name nodegroups = var.nodegroups From 2d257874168accafee23462a3e79a78ea8d0ea56 Mon Sep 17 00:00:00 2001 From: Drew Meyers Date: Fri, 15 Mar 2024 08:49:42 -0700 Subject: [PATCH 3/9] Update ref for cs infra eks module --- .pre-commit-config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 314ad59c..109507c4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -67,11 +67,11 @@ repos: - repo: https://github.com/antonbabenko/pre-commit-terraform rev: v1.86.0 hooks: - # - id: terraform_validate # Validates all Terraform configuration files. - # args: - # - --tf-init-args=-upgrade + - id: terraform_validate # Validates all Terraform configuration files. + args: + - --tf-init-args=-upgrade - id: terraform_fmt # Rewrites all Terraform configuration files to a canonical format. - # - id: terraform_tflint # Validates all Terraform configuration files with TFLint. + - id: terraform_tflint # Validates all Terraform configuration files with TFLint. - id: terraform_trivy # Static analysis of Terraform templates to spot potential security issues. args: - > From 6c99216a6b8db6969194b98e4c647fc13cad3896 Mon Sep 17 00:00:00 2001 From: Drew Meyers Date: Fri, 15 Mar 2024 08:51:09 -0700 Subject: [PATCH 4/9] Update ref for cs infra eks module --- .pre-commit-config.yaml | 8 ++++---- .../modules/terraform-eks-cluster/locals.tf | 12 ------------ 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 109507c4..314ad59c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -67,11 +67,11 @@ repos: - repo: https://github.com/antonbabenko/pre-commit-terraform rev: v1.86.0 hooks: - - id: terraform_validate # Validates all Terraform configuration files. - args: - - --tf-init-args=-upgrade + # - id: terraform_validate # Validates all Terraform configuration files. + # args: + # - --tf-init-args=-upgrade - id: terraform_fmt # Rewrites all Terraform configuration files to a canonical format. - - id: terraform_tflint # Validates all Terraform configuration files with TFLint. + # - id: terraform_tflint # Validates all Terraform configuration files with TFLint. - id: terraform_trivy # Static analysis of Terraform templates to spot potential security issues. args: - > diff --git a/terraform-unity/modules/terraform-eks-cluster/locals.tf b/terraform-unity/modules/terraform-eks-cluster/locals.tf index 84c3ac97..0235207d 100644 --- a/terraform-unity/modules/terraform-eks-cluster/locals.tf +++ b/terraform-unity/modules/terraform-eks-cluster/locals.tf @@ -2,16 +2,4 @@ locals { counter = var.counter != "" ? var.counter : random_id.counter.hex resource_name_prefix = join("-", compact([var.project, var.venue, var.service_area, "%s", var.deployment_name, local.counter])) cluster_name = format(local.resource_name_prefix, "eks") - # common_tags = { - # Name = "" - # Venue = var.venue - # Proj = var.project - # ServiceArea = var.service_area - # CapVersion = var.release - # Component = "" - # CreatedBy = var.service_area - # Env = var.venue - # mission = var.project - # Stack = "" - # } } From 32c46fcb60049e4a02a7059dffe78e339c5b0d46 Mon Sep 17 00:00:00 2001 From: Drew Meyers Date: Fri, 15 Mar 2024 08:51:20 -0700 Subject: [PATCH 5/9] Update ref for cs infra eks module --- .pre-commit-config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 314ad59c..109507c4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -67,11 +67,11 @@ repos: - repo: https://github.com/antonbabenko/pre-commit-terraform rev: v1.86.0 hooks: - # - id: terraform_validate # Validates all Terraform configuration files. - # args: - # - --tf-init-args=-upgrade + - id: terraform_validate # Validates all Terraform configuration files. + args: + - --tf-init-args=-upgrade - id: terraform_fmt # Rewrites all Terraform configuration files to a canonical format. - # - id: terraform_tflint # Validates all Terraform configuration files with TFLint. + - id: terraform_tflint # Validates all Terraform configuration files with TFLint. - id: terraform_trivy # Static analysis of Terraform templates to spot potential security issues. args: - > From e74fadae9fe51131fc4811077b8fd07d257d4879 Mon Sep 17 00:00:00 2001 From: Drew Meyers Date: Fri, 15 Mar 2024 08:52:06 -0700 Subject: [PATCH 6/9] Update ref for cs infra eks module --- .pre-commit-config.yaml | 8 ++++---- .../modules/terraform-eks-cluster/variables.tf | 5 ----- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 109507c4..314ad59c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -67,11 +67,11 @@ repos: - repo: https://github.com/antonbabenko/pre-commit-terraform rev: v1.86.0 hooks: - - id: terraform_validate # Validates all Terraform configuration files. - args: - - --tf-init-args=-upgrade + # - id: terraform_validate # Validates all Terraform configuration files. + # args: + # - --tf-init-args=-upgrade - id: terraform_fmt # Rewrites all Terraform configuration files to a canonical format. - - id: terraform_tflint # Validates all Terraform configuration files with TFLint. + # - id: terraform_tflint # Validates all Terraform configuration files with TFLint. - id: terraform_trivy # Static analysis of Terraform templates to spot potential security issues. args: - > diff --git a/terraform-unity/modules/terraform-eks-cluster/variables.tf b/terraform-unity/modules/terraform-eks-cluster/variables.tf index c2a8b741..b399cb67 100644 --- a/terraform-unity/modules/terraform-eks-cluster/variables.tf +++ b/terraform-unity/modules/terraform-eks-cluster/variables.tf @@ -25,11 +25,6 @@ variable "counter" { type = string } -# variable "release" { -# description = "The software release version." -# type = string -# } - variable "nodegroups" { description = "A map of node group configurations" type = map(object({ From 87ba292eb1a7b0db2b8841a07a77d4f9bf66bdd1 Mon Sep 17 00:00:00 2001 From: Drew Meyers Date: Fri, 15 Mar 2024 08:52:21 -0700 Subject: [PATCH 7/9] Update ref for cs infra eks module --- .pre-commit-config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 314ad59c..109507c4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -67,11 +67,11 @@ repos: - repo: https://github.com/antonbabenko/pre-commit-terraform rev: v1.86.0 hooks: - # - id: terraform_validate # Validates all Terraform configuration files. - # args: - # - --tf-init-args=-upgrade + - id: terraform_validate # Validates all Terraform configuration files. + args: + - --tf-init-args=-upgrade - id: terraform_fmt # Rewrites all Terraform configuration files to a canonical format. - # - id: terraform_tflint # Validates all Terraform configuration files with TFLint. + - id: terraform_tflint # Validates all Terraform configuration files with TFLint. - id: terraform_trivy # Static analysis of Terraform templates to spot potential security issues. args: - > From 1292fb81d0eff3f1229d1749f567f93c24a51ebf Mon Sep 17 00:00:00 2001 From: Drew Meyers Date: Fri, 15 Mar 2024 09:40:55 -0700 Subject: [PATCH 8/9] Update smoke tests github action --- .github/workflows/smoke_tests.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/smoke_tests.yml b/.github/workflows/smoke_tests.yml index 5c024d96..300e0d3a 100644 --- a/.github/workflows/smoke_tests.yml +++ b/.github/workflows/smoke_tests.yml @@ -10,6 +10,9 @@ on: MCP_VENUE_DEV_AIRFLOW_ENDPOINT: description: "Base URL for the Airflow endpoint in MCP Venue Dev (i.e. http://abc.def.ghi:port-number)" type: string + MCP_VENUE_TEST_AIRFLOW_ENDPOINT: + description: "Base URL for the Airflow endpoint in MCP Venue TEST (i.e. http://abc.def.ghi:port-number)" + type: string MCP_VENUE_SBG_DEV_AIRFLOW_ENDPOINT: description: "Base URL for the Airflow endpoint in MCP Venue SBG Dev (i.e. http://abc.def.ghi:port-number)" type: string @@ -37,6 +40,16 @@ jobs: pytest -vv --gherkin-terminal-reporter \ unity-test/system/smoke \ --airflow-endpoint=${{ github.event.inputs.MCP_VENUE_DEV_AIRFLOW_ENDPOINT || vars.MCP_VENUE_DEV_AIRFLOW_ENDPOINT }} + + - name: MCP Venue Test - Smoke tests + env: + AIRFLOW_WEBSERVER_PASSWORD: ${{ secrets.MCP_VENUE_TEST_AIRFLOW_WEBSERVER_PASSWORD }} + continue-on-error: true + run: | + pytest -vv --gherkin-terminal-reporter \ + unity-test/system/smoke \ + --airflow-endpoint=${{ github.event.inputs.MCP_VENUE_TEST_AIRFLOW_ENDPOINT || vars.MCP_VENUE_TEST_AIRFLOW_ENDPOINT }} + - name: MCP Venue SBG Dev - Smoke tests env: AIRFLOW_WEBSERVER_PASSWORD: ${{ secrets.MCP_VENUE_SBG_DEV_AIRFLOW_WEBSERVER_PASSWORD }} From 6365b4184af4a1a8f6d9053c0590c490bc434b3b Mon Sep 17 00:00:00 2001 From: Drew Meyers Date: Fri, 15 Mar 2024 09:41:29 -0700 Subject: [PATCH 9/9] Update smoke tests github action --- .github/workflows/smoke_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/smoke_tests.yml b/.github/workflows/smoke_tests.yml index 300e0d3a..8f1f7c2c 100644 --- a/.github/workflows/smoke_tests.yml +++ b/.github/workflows/smoke_tests.yml @@ -11,7 +11,7 @@ on: description: "Base URL for the Airflow endpoint in MCP Venue Dev (i.e. http://abc.def.ghi:port-number)" type: string MCP_VENUE_TEST_AIRFLOW_ENDPOINT: - description: "Base URL for the Airflow endpoint in MCP Venue TEST (i.e. http://abc.def.ghi:port-number)" + description: "Base URL for the Airflow endpoint in MCP Venue Test (i.e. http://abc.def.ghi:port-number)" type: string MCP_VENUE_SBG_DEV_AIRFLOW_ENDPOINT: description: "Base URL for the Airflow endpoint in MCP Venue SBG Dev (i.e. http://abc.def.ghi:port-number)"