From 0471af822724608d80817eb2c3c1fcd1c8f48f82 Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Sun, 1 Nov 2020 22:02:55 +0900 Subject: [PATCH 01/10] Add datbase variables to universal/scalardl module Add `database` and `database_contact_port` variables to the universal/scalardl module --- modules/universal/scalardl/main.tf | 8 +++++++- modules/universal/scalardl/vars.tf | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/modules/universal/scalardl/main.tf b/modules/universal/scalardl/main.tf index c79c1afc2..12da47f1c 100644 --- a/modules/universal/scalardl/main.tf +++ b/modules/universal/scalardl/main.tf @@ -189,7 +189,13 @@ resource "null_resource" "scalardl_schema" { provisioner "remote-exec" { inline = [ - "docker run --rm ${var.schema_loader_image} --cassandra -h ${var.database_contact_points} -u ${var.database_username} -p ${var.database_password} -n NetworkTopologyStrategy -R ${var.cassandra_replication_factor}" + format( + "%s %s", + "docker run --rm ${var.schema_loader_image} -h ${var.database_contact_points} -u ${var.database_username} -p ${var.database_password}", + var.database == "cassandra" ? "--cassandra -P ${var.database_contact_port} -n NetworkTopologyStrategy -R ${var.cassandra_replication_factor}" : + var.database == "dynamo" ? "--dynamo --region ${var.dynamo_region}" : + "" + ) ] } } diff --git a/modules/universal/scalardl/vars.tf b/modules/universal/scalardl/vars.tf index 4e091ba4d..73e393f7d 100644 --- a/modules/universal/scalardl/vars.tf +++ b/modules/universal/scalardl/vars.tf @@ -51,10 +51,20 @@ variable "internal_domain" { description = "Internal domain" } +variable "database" { + default = "cassandra" + description = "The database. This should be \"cassandra\" or \"dynamo\"" +} + variable "database_contact_points" { description = "The database contact points" } +variable "database_contact_port" { + default = 9042 + description = "The database contact port" +} + variable "database_username" { description = "The database username" } @@ -67,3 +77,8 @@ variable "cassandra_replication_factor" { default = 3 description = "The replication factor for the Cassandra schema" } + +variable "dynamo_region" { + default = "" + description = "The AWS region name where DynamoDB tables are created" +} From fa3878271eeef37084c0fa7e346940e286abcc63 Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Tue, 10 Nov 2020 17:42:52 +0900 Subject: [PATCH 02/10] Add database variables to aws/azure scalardl module --- modules/aws/scalardl/cluster/main.tf | 4 +++- modules/aws/scalardl/cluster/vars.tf | 12 ++++++++++++ modules/aws/scalardl/locals.tf | 3 +++ modules/aws/scalardl/scalardl.tf | 6 ++++++ modules/azure/scalardl/cluster/main.tf | 4 +++- modules/azure/scalardl/cluster/vars.tf | 12 ++++++++++++ modules/azure/scalardl/locals.tf | 3 +++ modules/azure/scalardl/scalardl.tf | 6 ++++++ 8 files changed, 48 insertions(+), 2 deletions(-) diff --git a/modules/aws/scalardl/cluster/main.tf b/modules/aws/scalardl/cluster/main.tf index 2c7a1a7b6..f5ec89dfd 100644 --- a/modules/aws/scalardl/cluster/main.tf +++ b/modules/aws/scalardl/cluster/main.tf @@ -56,7 +56,9 @@ module "scalardl_provision" { scalardl_image_name = var.scalardl_image_name scalardl_image_tag = var.scalardl_image_tag internal_domain = var.internal_domain - database_contact_points = "cassandra-lb.${var.internal_domain}" # TODO: add to variables + database = var.database + database_contact_points = var.database_contact_points + database_contact_port = var.database_contact_port database_username = var.database_username database_password = var.database_password cassandra_replication_factor = var.cassandra_replication_factor diff --git a/modules/aws/scalardl/cluster/vars.tf b/modules/aws/scalardl/cluster/vars.tf index b619b4b93..93b0330e0 100644 --- a/modules/aws/scalardl/cluster/vars.tf +++ b/modules/aws/scalardl/cluster/vars.tf @@ -73,6 +73,18 @@ variable "internal_domain" { description = "Internal domain" } +variable "database" { + description = "The database" +} + +variable "database_contact_points" { + description = "The database contact points" +} + +variable "database_contact_port" { + description = "The database contact port" +} + variable "database_username" { description = "The database username" } diff --git a/modules/aws/scalardl/locals.tf b/modules/aws/scalardl/locals.tf index 966f72d38..0b765da0d 100644 --- a/modules/aws/scalardl/locals.tf +++ b/modules/aws/scalardl/locals.tf @@ -37,6 +37,9 @@ locals { listen_port = 50051 privileged_listen_port = 50052 enable_tdagent = true + database = "cassandra" + database_contact_points = "cassandra-lb.${local.internal_domain}" + database_contact_port = 9042 database_username = "cassandra" database_password = "cassandra" cassandra_replication_factor = 3 diff --git a/modules/aws/scalardl/scalardl.tf b/modules/aws/scalardl/scalardl.tf index 1c1e204d0..64bf67b47 100644 --- a/modules/aws/scalardl/scalardl.tf +++ b/modules/aws/scalardl/scalardl.tf @@ -19,6 +19,9 @@ module "scalardl_blue" { scalardl_image_tag = local.scalardl.blue_image_tag enable_tdagent = local.scalardl.enable_tdagent internal_domain = local.internal_domain + database = local.scalardl.database + database_contact_points = local.scalardl.database_contact_points + database_contact_port = local.scalardl.database_contact_port database_username = local.scalardl.database_username database_password = local.scalardl.database_password cassandra_replication_factor = local.scalardl.cassandra_replication_factor @@ -46,6 +49,9 @@ module "scalardl_green" { scalardl_image_tag = local.scalardl.green_image_tag enable_tdagent = local.scalardl.enable_tdagent internal_domain = local.internal_domain + database = local.scalardl.database + database_contact_points = local.scalardl.database_contact_points + database_contact_port = local.scalardl.database_contact_port database_username = local.scalardl.database_username database_password = local.scalardl.database_password cassandra_replication_factor = local.scalardl.cassandra_replication_factor diff --git a/modules/azure/scalardl/cluster/main.tf b/modules/azure/scalardl/cluster/main.tf index cf40efa8d..01b6ef423 100644 --- a/modules/azure/scalardl/cluster/main.tf +++ b/modules/azure/scalardl/cluster/main.tf @@ -33,7 +33,9 @@ module "scalardl_provision" { scalardl_image_name = var.scalardl_image_name scalardl_image_tag = var.scalardl_image_tag internal_domain = var.internal_domain - database_contact_points = "cassandra-lb.${var.internal_domain}" # TODO: add to variables + database = var.database + database_contact_points = var.database_contact_points + database_contact_port = var.database_contact_port database_username = var.database_username database_password = var.database_password cassandra_replication_factor = var.cassandra_replication_factor diff --git a/modules/azure/scalardl/cluster/vars.tf b/modules/azure/scalardl/cluster/vars.tf index bc7da1aef..15e683d04 100644 --- a/modules/azure/scalardl/cluster/vars.tf +++ b/modules/azure/scalardl/cluster/vars.tf @@ -81,6 +81,18 @@ variable "internal_domain" { description = "Internal domain" } +variable "database" { + description = "The database" +} + +variable "database_contact_points" { + description = "The database contact points" +} + +variable "database_contact_port" { + description = "The database contact port" +} + variable "database_username" { description = "The database username" } diff --git a/modules/azure/scalardl/locals.tf b/modules/azure/scalardl/locals.tf index 774dfa5e7..c30a87351 100644 --- a/modules/azure/scalardl/locals.tf +++ b/modules/azure/scalardl/locals.tf @@ -34,6 +34,9 @@ locals { green_discoverable_by_envoy = false green_enable_accelerated_networking = false enable_tdagent = true + database = "cassandra" + database_contact_points = "cassandra-lb.${local.internal_domain}" + database_contact_port = 9042 database_username = "cassandra" database_password = "cassandra" cassandra_replication_factor = 3 diff --git a/modules/azure/scalardl/scalardl.tf b/modules/azure/scalardl/scalardl.tf index b4fef5552..000e400d0 100644 --- a/modules/azure/scalardl/scalardl.tf +++ b/modules/azure/scalardl/scalardl.tf @@ -28,6 +28,9 @@ module "scalardl_blue" { enable_tdagent = local.scalardl.enable_tdagent availability_set_id = azurerm_availability_set.scalar_availability_set.id internal_domain = local.internal_domain + database = local.scalardl.database + database_contact_points = local.scalardl.database_contact_points + database_contact_port = local.scalardl.database_contact_port database_username = local.scalardl.database_username database_password = local.scalardl.database_password cassandra_replication_factor = local.scalardl.cassandra_replication_factor @@ -58,6 +61,9 @@ module "scalardl_green" { enable_tdagent = local.scalardl.enable_tdagent availability_set_id = azurerm_availability_set.scalar_availability_set.id internal_domain = local.internal_domain + database = local.scalardl.database + database_contact_points = local.scalardl.database_contact_points + database_contact_port = local.scalardl.database_contact_port database_username = local.scalardl.database_username database_password = local.scalardl.database_password cassandra_replication_factor = local.scalardl.cassandra_replication_factor From 5830734987de665ed54c76594f76512346f31408 Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Tue, 10 Nov 2020 17:58:39 +0900 Subject: [PATCH 03/10] Add default values to example.tfvars --- examples/aws/scalardl/example.tfvars | 3 +++ examples/azure/scalardl/example.tfvars | 3 +++ 2 files changed, 6 insertions(+) diff --git a/examples/aws/scalardl/example.tfvars b/examples/aws/scalardl/example.tfvars index a2ffb3bbf..217a39c9d 100644 --- a/examples/aws/scalardl/example.tfvars +++ b/examples/aws/scalardl/example.tfvars @@ -14,6 +14,9 @@ scalardl = { # green_image_name = "scalarlabs/scalar-ledger" # green_discoverable_by_envoy = "false" # enable_tdagent = "true" + # database = "cassandra" + # database_contact_points = "cassandra-lb.internal.scalar-labs.com" + # database_contact_port = 9042 # database_username = "cassandra" # database_password = "cassandra" # cassandra_replication_factor = "3" diff --git a/examples/azure/scalardl/example.tfvars b/examples/azure/scalardl/example.tfvars index 61036ab30..95627037a 100644 --- a/examples/azure/scalardl/example.tfvars +++ b/examples/azure/scalardl/example.tfvars @@ -14,6 +14,9 @@ scalardl = { # green_discoverable_by_envoy = "false" # green_enable_accelerated_networking = "false" # enable_tdagent = "true" + # database = "cassandra" + # database_contact_points = "cassandra-lb.internal.scalar-labs.com" + # database_contact_port = 9042 # database_username = "cassandra" # database_password = "cassandra" # cassandra_replication_factor = "3" From 9cdc6bbb3823568dc1079e9856ca262a0f8ecfab Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Thu, 12 Nov 2020 13:01:58 +0900 Subject: [PATCH 04/10] Update READMEs --- modules/aws/scalardl/cluster/README.md | 3 +++ modules/azure/scalardl/cluster/README.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/modules/aws/scalardl/cluster/README.md b/modules/aws/scalardl/cluster/README.md index c6cba3859..84c4ae825 100644 --- a/modules/aws/scalardl/cluster/README.md +++ b/modules/aws/scalardl/cluster/README.md @@ -14,6 +14,9 @@ The Cluster module deploys a Scalar DL cluster. | bastion_ip | The IP to bastion host used for provisioning | `any` | n/a | yes | | cassandra_replication_factor | The replication factor for the Cassandra schema | `number` | `3` | no | | custom_tags | The map of custom tags | `map(string)` | `{}` | no | +| database | The database | `any` | n/a | yes | +| database_contact_points | The database contact points | `any` | n/a | yes | +| database_contact_port | The database contact port | `any` | n/a | yes | | database_password | The database password | `any` | n/a | yes | | database_username | The database username | `any` | n/a | yes | | enable_tdagent | A flag to install td-agent that forwards logs to the monitor host | `bool` | `true` | no | diff --git a/modules/azure/scalardl/cluster/README.md b/modules/azure/scalardl/cluster/README.md index 6f51f8476..a242f5b20 100644 --- a/modules/azure/scalardl/cluster/README.md +++ b/modules/azure/scalardl/cluster/README.md @@ -15,6 +15,9 @@ The Cluster module deploys a Scalar DL cluster on Azure. | availability_set_id | n/a | `string` | `""` | no | | bastion_ip | The IP to bastion host used for provisioning | `any` | n/a | yes | | cassandra_replication_factor | The replication factor for the Cassandra schema | `number` | `3` | no | +| database | The database | `any` | n/a | yes | +| database_contact_points | The database contact points | `any` | n/a | yes | +| database_contact_port | The database contact port | `any` | n/a | yes | | database_password | The database password | `any` | n/a | yes | | database_username | The database username | `any` | n/a | yes | | enable_accelerated_networking | A flag to enable accelerated networking on network interface | `bool` | `false` | no | From d9ca5f293cf9a863b7af46613936ce29ff0d9279 Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Thu, 12 Nov 2020 13:56:02 +0900 Subject: [PATCH 05/10] Add variable to specify region for DynamoDB --- examples/aws/scalardl/locals.tf | 1 + modules/aws/scalardl/cluster/README.md | 1 + modules/aws/scalardl/cluster/main.tf | 1 + modules/aws/scalardl/cluster/vars.tf | 5 +++++ modules/aws/scalardl/locals.tf | 1 + modules/aws/scalardl/scalardl.tf | 2 ++ 6 files changed, 11 insertions(+) diff --git a/examples/aws/scalardl/locals.tf b/examples/aws/scalardl/locals.tf index d7b699a65..2300ac368 100644 --- a/examples/aws/scalardl/locals.tf +++ b/examples/aws/scalardl/locals.tf @@ -4,6 +4,7 @@ locals { name = data.terraform_remote_state.network.outputs.network_name dns = data.terraform_remote_state.network.outputs.network_dns id = data.terraform_remote_state.network.outputs.network_id + region = data.terraform_remote_state.network.outputs.region locations = join(",", data.terraform_remote_state.network.outputs.locations) image_id = data.terraform_remote_state.network.outputs.image_id diff --git a/modules/aws/scalardl/cluster/README.md b/modules/aws/scalardl/cluster/README.md index 84c4ae825..313cdda86 100644 --- a/modules/aws/scalardl/cluster/README.md +++ b/modules/aws/scalardl/cluster/README.md @@ -19,6 +19,7 @@ The Cluster module deploys a Scalar DL cluster. | database_contact_port | The database contact port | `any` | n/a | yes | | database_password | The database password | `any` | n/a | yes | | database_username | The database username | `any` | n/a | yes | +| dynamo_region | The region for DynamoDB | `string` | `""` | no | | enable_tdagent | A flag to install td-agent that forwards logs to the monitor host | `bool` | `true` | no | | image_id | The image id to initiate | `any` | n/a | yes | | internal_domain | Internal domain | `any` | n/a | yes | diff --git a/modules/aws/scalardl/cluster/main.tf b/modules/aws/scalardl/cluster/main.tf index f5ec89dfd..598e30572 100644 --- a/modules/aws/scalardl/cluster/main.tf +++ b/modules/aws/scalardl/cluster/main.tf @@ -62,4 +62,5 @@ module "scalardl_provision" { database_username = var.database_username database_password = var.database_password cassandra_replication_factor = var.cassandra_replication_factor + dynamo_region = var.dynamo_region } diff --git a/modules/aws/scalardl/cluster/vars.tf b/modules/aws/scalardl/cluster/vars.tf index 93b0330e0..d4b1fe3a1 100644 --- a/modules/aws/scalardl/cluster/vars.tf +++ b/modules/aws/scalardl/cluster/vars.tf @@ -98,6 +98,11 @@ variable "cassandra_replication_factor" { description = "The replication factor for the Cassandra schema" } +variable "dynamo_region" { + default = "" + description = "The region for DynamoDB" +} + variable "custom_tags" { type = map(string) default = {} diff --git a/modules/aws/scalardl/locals.tf b/modules/aws/scalardl/locals.tf index 0b765da0d..d439611d3 100644 --- a/modules/aws/scalardl/locals.tf +++ b/modules/aws/scalardl/locals.tf @@ -4,6 +4,7 @@ locals { network_name = var.network.name network_dns = var.network.dns network_id = var.network.id + region = var.network.region locations = split(",", var.network.locations) image_id = var.network.image_id key_name = var.network.key_name diff --git a/modules/aws/scalardl/scalardl.tf b/modules/aws/scalardl/scalardl.tf index 64bf67b47..0bf441fc4 100644 --- a/modules/aws/scalardl/scalardl.tf +++ b/modules/aws/scalardl/scalardl.tf @@ -25,6 +25,7 @@ module "scalardl_blue" { database_username = local.scalardl.database_username database_password = local.scalardl.database_password cassandra_replication_factor = local.scalardl.cassandra_replication_factor + dynamo_region = local.region custom_tags = var.custom_tags } @@ -55,6 +56,7 @@ module "scalardl_green" { database_username = local.scalardl.database_username database_password = local.scalardl.database_password cassandra_replication_factor = local.scalardl.cassandra_replication_factor + dynamo_region = local.region custom_tags = var.custom_tags } From b5ca3e2fc5b819ffe5debe727142e5d638272e59 Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Thu, 12 Nov 2020 13:28:10 +0900 Subject: [PATCH 06/10] Add storage and port options to scalar-ledger container --- modules/universal/scalardl/main.tf | 2 ++ modules/universal/scalardl/provision/docker-compose.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/modules/universal/scalardl/main.tf b/modules/universal/scalardl/main.tf index 12da47f1c..142c7bfe5 100644 --- a/modules/universal/scalardl/main.tf +++ b/modules/universal/scalardl/main.tf @@ -219,7 +219,9 @@ resource "null_resource" "scalardl_container" { inline = [ "cd $HOME/provision", "echo export SCALAR_IMAGE=${local.scalar_image} > env", + "echo export SCALAR_DB_STORAGE=${var.database} >> env", "echo export SCALAR_DB_CONTACT_POINTS=${var.database_contact_points} >> env", + "echo export SCALAR_DB_CONTACT_PORT=${var.database_contact_port} >> env", "echo export SCALAR_DB_USERNAME=${var.database_username} >> env", "echo export SCALAR_DB_PASSWORD=${var.database_password} >> env", "source ./env", diff --git a/modules/universal/scalardl/provision/docker-compose.yml b/modules/universal/scalardl/provision/docker-compose.yml index da0ce68d9..7295deb1b 100644 --- a/modules/universal/scalardl/provision/docker-compose.yml +++ b/modules/universal/scalardl/provision/docker-compose.yml @@ -4,7 +4,9 @@ services: scalar: image: ${SCALAR_IMAGE} environment: + - SCALAR_DB_STORAGE=${SCALAR_DB_STORAGE} - SCALAR_DB_CONTACT_POINTS=${SCALAR_DB_CONTACT_POINTS} + - SCALAR_DB_CONTACT_PORT=${SCALAR_DB_CONTACT_PORT} - SCALAR_DB_USERNAME=${SCALAR_DB_USERNAME} - SCALAR_DB_PASSWORD=${SCALAR_DB_PASSWORD} ports: From 096ecdb0aa7ddf0831760aded6ba69fa9310943a Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Sat, 14 Nov 2020 00:52:45 +0900 Subject: [PATCH 07/10] Add database variables to triggers for scalardl_container --- modules/universal/scalardl/main.tf | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/universal/scalardl/main.tf b/modules/universal/scalardl/main.tf index 142c7bfe5..544e5b2b3 100644 --- a/modules/universal/scalardl/main.tf +++ b/modules/universal/scalardl/main.tf @@ -204,7 +204,13 @@ resource "null_resource" "scalardl_container" { count = var.provision_count triggers = { - triggers = "${null_resource.scalardl_load[count.index].id}${null_resource.scalardl_schema[0].id}" + scalardl_load = null_resource.scalardl_load[count.index].id + scalardl_schema = null_resource.scalardl_schema[0].id + database = var.database + database_contact_points = var.database_contact_points + database_contact_port = var.database_contact_port + database_username = var.database_username + database_password = var.database_password } connection { From 324454cc9fb613edc2900c9a45d53e2255013485 Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Sat, 14 Nov 2020 01:11:54 +0900 Subject: [PATCH 08/10] Remove dynamo_region variable The DynamoDB resion should be specified in `database_contact_points` instead since scalardb uses contact_points as a region. --- examples/aws/scalardl/locals.tf | 1 - modules/aws/scalardl/cluster/README.md | 1 - modules/aws/scalardl/cluster/main.tf | 1 - modules/aws/scalardl/cluster/vars.tf | 5 ----- modules/aws/scalardl/locals.tf | 1 - modules/aws/scalardl/scalardl.tf | 2 -- modules/universal/scalardl/main.tf | 2 +- modules/universal/scalardl/vars.tf | 5 ----- 8 files changed, 1 insertion(+), 17 deletions(-) diff --git a/examples/aws/scalardl/locals.tf b/examples/aws/scalardl/locals.tf index 2300ac368..d7b699a65 100644 --- a/examples/aws/scalardl/locals.tf +++ b/examples/aws/scalardl/locals.tf @@ -4,7 +4,6 @@ locals { name = data.terraform_remote_state.network.outputs.network_name dns = data.terraform_remote_state.network.outputs.network_dns id = data.terraform_remote_state.network.outputs.network_id - region = data.terraform_remote_state.network.outputs.region locations = join(",", data.terraform_remote_state.network.outputs.locations) image_id = data.terraform_remote_state.network.outputs.image_id diff --git a/modules/aws/scalardl/cluster/README.md b/modules/aws/scalardl/cluster/README.md index 313cdda86..84c4ae825 100644 --- a/modules/aws/scalardl/cluster/README.md +++ b/modules/aws/scalardl/cluster/README.md @@ -19,7 +19,6 @@ The Cluster module deploys a Scalar DL cluster. | database_contact_port | The database contact port | `any` | n/a | yes | | database_password | The database password | `any` | n/a | yes | | database_username | The database username | `any` | n/a | yes | -| dynamo_region | The region for DynamoDB | `string` | `""` | no | | enable_tdagent | A flag to install td-agent that forwards logs to the monitor host | `bool` | `true` | no | | image_id | The image id to initiate | `any` | n/a | yes | | internal_domain | Internal domain | `any` | n/a | yes | diff --git a/modules/aws/scalardl/cluster/main.tf b/modules/aws/scalardl/cluster/main.tf index 598e30572..f5ec89dfd 100644 --- a/modules/aws/scalardl/cluster/main.tf +++ b/modules/aws/scalardl/cluster/main.tf @@ -62,5 +62,4 @@ module "scalardl_provision" { database_username = var.database_username database_password = var.database_password cassandra_replication_factor = var.cassandra_replication_factor - dynamo_region = var.dynamo_region } diff --git a/modules/aws/scalardl/cluster/vars.tf b/modules/aws/scalardl/cluster/vars.tf index d4b1fe3a1..93b0330e0 100644 --- a/modules/aws/scalardl/cluster/vars.tf +++ b/modules/aws/scalardl/cluster/vars.tf @@ -98,11 +98,6 @@ variable "cassandra_replication_factor" { description = "The replication factor for the Cassandra schema" } -variable "dynamo_region" { - default = "" - description = "The region for DynamoDB" -} - variable "custom_tags" { type = map(string) default = {} diff --git a/modules/aws/scalardl/locals.tf b/modules/aws/scalardl/locals.tf index d439611d3..0b765da0d 100644 --- a/modules/aws/scalardl/locals.tf +++ b/modules/aws/scalardl/locals.tf @@ -4,7 +4,6 @@ locals { network_name = var.network.name network_dns = var.network.dns network_id = var.network.id - region = var.network.region locations = split(",", var.network.locations) image_id = var.network.image_id key_name = var.network.key_name diff --git a/modules/aws/scalardl/scalardl.tf b/modules/aws/scalardl/scalardl.tf index 0bf441fc4..64bf67b47 100644 --- a/modules/aws/scalardl/scalardl.tf +++ b/modules/aws/scalardl/scalardl.tf @@ -25,7 +25,6 @@ module "scalardl_blue" { database_username = local.scalardl.database_username database_password = local.scalardl.database_password cassandra_replication_factor = local.scalardl.cassandra_replication_factor - dynamo_region = local.region custom_tags = var.custom_tags } @@ -56,7 +55,6 @@ module "scalardl_green" { database_username = local.scalardl.database_username database_password = local.scalardl.database_password cassandra_replication_factor = local.scalardl.cassandra_replication_factor - dynamo_region = local.region custom_tags = var.custom_tags } diff --git a/modules/universal/scalardl/main.tf b/modules/universal/scalardl/main.tf index 544e5b2b3..d22f7d070 100644 --- a/modules/universal/scalardl/main.tf +++ b/modules/universal/scalardl/main.tf @@ -193,7 +193,7 @@ resource "null_resource" "scalardl_schema" { "%s %s", "docker run --rm ${var.schema_loader_image} -h ${var.database_contact_points} -u ${var.database_username} -p ${var.database_password}", var.database == "cassandra" ? "--cassandra -P ${var.database_contact_port} -n NetworkTopologyStrategy -R ${var.cassandra_replication_factor}" : - var.database == "dynamo" ? "--dynamo --region ${var.dynamo_region}" : + var.database == "dynamo" ? "--dynamo --region ${var.database_contact_points}" : "" ) ] diff --git a/modules/universal/scalardl/vars.tf b/modules/universal/scalardl/vars.tf index 73e393f7d..78a9b1f0d 100644 --- a/modules/universal/scalardl/vars.tf +++ b/modules/universal/scalardl/vars.tf @@ -77,8 +77,3 @@ variable "cassandra_replication_factor" { default = 3 description = "The replication factor for the Cassandra schema" } - -variable "dynamo_region" { - default = "" - description = "The AWS region name where DynamoDB tables are created" -} From fcf25120963f3e338179bf29d404f0437b7a5a76 Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Sat, 14 Nov 2020 01:33:04 +0900 Subject: [PATCH 09/10] Update descriptions for variables --- modules/aws/scalardl/cluster/README.md | 10 +++++----- modules/aws/scalardl/cluster/vars.tf | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/aws/scalardl/cluster/README.md b/modules/aws/scalardl/cluster/README.md index 84c4ae825..e9fd9f08f 100644 --- a/modules/aws/scalardl/cluster/README.md +++ b/modules/aws/scalardl/cluster/README.md @@ -14,11 +14,11 @@ The Cluster module deploys a Scalar DL cluster. | bastion_ip | The IP to bastion host used for provisioning | `any` | n/a | yes | | cassandra_replication_factor | The replication factor for the Cassandra schema | `number` | `3` | no | | custom_tags | The map of custom tags | `map(string)` | `{}` | no | -| database | The database | `any` | n/a | yes | -| database_contact_points | The database contact points | `any` | n/a | yes | -| database_contact_port | The database contact port | `any` | n/a | yes | -| database_password | The database password | `any` | n/a | yes | -| database_username | The database username | `any` | n/a | yes | +| database | The database. cassandra and dynamo are supported. | `any` | n/a | yes | +| database_contact_points | The database contact points. Specify the region name if the database is dynamo. | `any` | n/a | yes | +| database_contact_port | The database contact port. Ignored if the database is dynamo. | `any` | n/a | yes | +| database_password | The database password. Specify AWS_SECRET_ACCESS_KEY if the database is dynamo. | `any` | n/a | yes | +| database_username | The database username. Specify AWS_ACCESS_KEY_ID if the database is dynamo. | `any` | n/a | yes | | enable_tdagent | A flag to install td-agent that forwards logs to the monitor host | `bool` | `true` | no | | image_id | The image id to initiate | `any` | n/a | yes | | internal_domain | Internal domain | `any` | n/a | yes | diff --git a/modules/aws/scalardl/cluster/vars.tf b/modules/aws/scalardl/cluster/vars.tf index 93b0330e0..9ae185a6f 100644 --- a/modules/aws/scalardl/cluster/vars.tf +++ b/modules/aws/scalardl/cluster/vars.tf @@ -74,23 +74,23 @@ variable "internal_domain" { } variable "database" { - description = "The database" + description = "The database. cassandra and dynamo are supported." } variable "database_contact_points" { - description = "The database contact points" + description = "The database contact points. Specify the region name if the database is dynamo." } variable "database_contact_port" { - description = "The database contact port" + description = "The database contact port. Ignored if the database is dynamo." } variable "database_username" { - description = "The database username" + description = "The database username. Specify AWS_ACCESS_KEY_ID if the database is dynamo." } variable "database_password" { - description = "The database password" + description = "The database password. Specify AWS_SECRET_ACCESS_KEY if the database is dynamo." } variable "cassandra_replication_factor" { From 154e70f80512ca4b3943b3cf46397bed7dcd6d77 Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Mon, 16 Nov 2020 09:16:09 +0900 Subject: [PATCH 10/10] Enable Cassandra related variables only if database is Cassandra --- examples/aws/scalardl/locals.tf | 4 ++-- modules/aws/scalardl/locals.tf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/aws/scalardl/locals.tf b/examples/aws/scalardl/locals.tf index d7b699a65..ded1f5a16 100644 --- a/examples/aws/scalardl/locals.tf +++ b/examples/aws/scalardl/locals.tf @@ -23,8 +23,8 @@ locals { } cassandra = { - start_on_initial_boot = data.terraform_remote_state.cassandra.outputs.cassandra_start_on_initial_boot - provision_ids = join(",", data.terraform_remote_state.cassandra.outputs.cassandra_provision_ids) + start_on_initial_boot = var.scalardl.database == "cassandra" ? data.terraform_remote_state.cassandra.outputs.cassandra_start_on_initial_boot : false + provision_ids = var.scalardl.database == "cassandra" ? join(",", data.terraform_remote_state.cassandra.outputs.cassandra_provision_ids) : "" } custom_tags = data.terraform_remote_state.network.outputs.custom_tags diff --git a/modules/aws/scalardl/locals.tf b/modules/aws/scalardl/locals.tf index 0b765da0d..e8d26ee86 100644 --- a/modules/aws/scalardl/locals.tf +++ b/modules/aws/scalardl/locals.tf @@ -16,7 +16,7 @@ locals { green_subnet_ids = split(",", var.network.green_subnet_ids) internal_domain = var.network.internal_domain - triggers = [var.cassandra.start_on_initial_boot ? var.cassandra.provision_ids : var.network.bastion_provision_id] + triggers = [var.scalardl.database == "cassandra" && var.cassandra.start_on_initial_boot ? var.cassandra.provision_ids : var.network.bastion_provision_id] } ### default