Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
6499d6b
Rename variables in docker-compose.yml in universal/scalardl module
ymorimo Oct 29, 2020
a34e3b9
Rename variable names in universal/scalardl module
ymorimo Oct 30, 2020
0edf4d5
Rename variables related to Cassandra in scalardl modules
ymorimo Oct 31, 2020
63351b5
Rename replication_factor to cassandra_replication_factor
ymorimo Oct 31, 2020
e7e6e74
Update READMEs
ymorimo Nov 6, 2020
4c0576b
Merge pull request #232 from scalar-labs/remove-cassandra-deps-from-u…
feeblefakie Nov 6, 2020
0471af8
Add datbase variables to universal/scalardl module
ymorimo Nov 1, 2020
fa38782
Add database variables to aws/azure scalardl module
ymorimo Nov 10, 2020
5830734
Add default values to example.tfvars
ymorimo Nov 10, 2020
9cdc6bb
Update READMEs
ymorimo Nov 12, 2020
d9ca5f2
Add variable to specify region for DynamoDB
ymorimo Nov 12, 2020
b5ca3e2
Add storage and port options to scalar-ledger container
ymorimo Nov 12, 2020
0197bc7
Add trigger for schema_loader_image
ymorimo Nov 12, 2020
096ecdb
Add database variables to triggers for scalardl_container
ymorimo Nov 13, 2020
324454c
Remove dynamo_region variable
ymorimo Nov 13, 2020
fcf2512
Update descriptions for variables
ymorimo Nov 13, 2020
154e70f
Enable Cassandra related variables only if database is Cassandra
ymorimo Nov 16, 2020
382f5c7
Merge pull request #238 from scalar-labs/add-trigger-to-schema-loader…
feeblefakie Nov 18, 2020
430b265
Update scalardl-schema-loader version to 1.2.0
ymorimo Nov 24, 2020
7ee898c
Update the default version of scalar-ledger to 2.1.0
ymorimo Nov 24, 2020
96cb192
Merge pull request #237 from scalar-labs/add-database-option-to-unive…
feeblefakie Nov 24, 2020
01a4253
Merge pull request #242 from scalar-labs/upgrade-scalar-ledger-and-sc…
feeblefakie Nov 26, 2020
c9933b7
Fix local variable in aws/scalardl module
ymorimo Dec 3, 2020
046a547
Merge pull request #246 from scalar-labs/fix-scalardl-locals
feeblefakie Dec 4, 2020
79f340a
Merge branch 'master' into dynamodb
ymorimo Dec 7, 2020
b523c94
Add triggers to resource null_resource.scalardl_schema
ymorimo Dec 11, 2020
0281685
Merge branch 'master' into dynamodb
ymorimo Dec 11, 2020
6c514f0
Merge branch 'master' into dynamodb
ymorimo Dec 11, 2020
ea40cfc
Remove triggers from null_resource.scalardl_container
ymorimo Dec 11, 2020
beb2b82
Terraform fmt
ymorimo Dec 11, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 17 additions & 14 deletions examples/aws/scalardl/example.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,23 @@ region = "ap-northeast-1"
base = "default" # bai, chiku, sho

scalardl = {
# resource_type = "t3.medium"
# resource_root_volume_size = "64"
# blue_resource_count = "3"
# blue_image_tag = "2.1.0"
# blue_image_name = "scalarlabs/scalar-ledger"
# blue_discoverable_by_envoy = "true"
# green_resource_count = "0"
# green_image_tag = "2.1.0"
# replication_factor = "3"
# green_image_name = "scalarlabs/scalar-ledger"
# green_discoverable_by_envoy = "false"
# enable_tdagent = "true"
# cassandra_username = ""
# cassandra_password = ""
# resource_type = "t3.medium"
# resource_root_volume_size = "64"
# blue_resource_count = "3"
# blue_image_tag = "2.1.0"
# blue_image_name = "scalarlabs/scalar-ledger"
# blue_discoverable_by_envoy = "true"
# green_resource_count = "0"
# green_image_tag = "2.1.0"
# 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"
}

envoy = {
Expand Down
4 changes: 2 additions & 2 deletions examples/aws/scalardl/locals.tf
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 6 additions & 3 deletions examples/azure/scalardl/example.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,16 @@ scalardl = {
# blue_enable_accelerated_networking = "false"
# green_resource_count = "0"
# green_image_tag = "2.1.0"
# replication_factor = "3"
# green_image_name = "scalarlabs/scalar-ledger"
# green_discoverable_by_envoy = "false"
# green_enable_accelerated_networking = "false"
# enable_tdagent = "true"
# cassandra_username = "cassandra"
# cassandra_password = "cassandra"
# 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"
}

envoy = {
Expand Down
2 changes: 1 addition & 1 deletion modules/aws/monitor/locals.tf
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ locals {
cassandra_resource_count = lookup(var.cassandra, "resource_count", 0)
scalardl_blue_resource_count = lookup(var.scalardl, "blue_resource_count", 0)
scalardl_green_resource_count = lookup(var.scalardl, "green_resource_count", 0)
scalardl_replication_factor = lookup(var.scalardl, "replication_factor", 0)
scalardl_replication_factor = lookup(var.scalardl, "cassandra_replication_factor", 0)
}

### default
Expand Down
17 changes: 13 additions & 4 deletions modules/aws/scalardl/cluster/README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,31 @@
# Cluster Module of Scalar DL
The Cluster module deploys a Scalar DL cluster.

## Requirements

| Name | Version |
|------|---------|
| terraform | >= 0.12 |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:-----:|
|------|-------------|------|---------|:--------:|
| bastion_ip | The IP to bastion host used for provisioning | `any` | n/a | yes |
| cassandra_password | The password of cassandra cluster | `any` | n/a | yes |
| cassandra_username | The username of cassandra cluster | `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. 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 |
| key_name | The key-pair name to assign to cluster resources | `any` | n/a | yes |
| network_dns | The ID for the internal DNS zone | `any` | n/a | yes |
| network_name | The name of the network resources: should be generated by provider/universal/name-generator | `any` | n/a | yes |
| private_key_path | The path to the private key for SSH access | `any` | n/a | yes |
| replication_factor | Set the replication factor for schema | `number` | `3` | no |
| resource_cluster_name | The name to assign the resource cluster | `any` | n/a | yes |
| resource_count | The number of resources to create | `any` | n/a | yes |
| resource_root_volume_size | The size of resource root volume size | `any` | n/a | yes |
Expand Down
15 changes: 9 additions & 6 deletions modules/aws/scalardl/cluster/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,13 @@ module "scalardl_provision" {
provision_count = var.resource_count
enable_tdagent = var.enable_tdagent

scalardl_image_name = var.scalardl_image_name
scalardl_image_tag = var.scalardl_image_tag
replication_factor = var.replication_factor
internal_domain = var.internal_domain
cassandra_username = var.cassandra_username
cassandra_password = var.cassandra_password
scalardl_image_name = var.scalardl_image_name
scalardl_image_tag = var.scalardl_image_tag
internal_domain = var.internal_domain
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
}
38 changes: 25 additions & 13 deletions modules/aws/scalardl/cluster/vars.tf
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,6 @@ variable "scalardl_image_tag" {
description = "The docker image tag for Scalar DL"
}

variable "replication_factor" {
default = 3
description = "Set the replication factor for schema"
}

variable "enable_tdagent" {
default = true
description = "A flag to install td-agent that forwards logs to the monitor host"
Expand All @@ -78,16 +73,33 @@ variable "internal_domain" {
description = "Internal domain"
}

variable "custom_tags" {
type = map(string)
default = {}
description = "The map of custom tags"
variable "database" {
description = "The database. cassandra and dynamo are supported."
}

variable "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. Ignored if the database is dynamo."
}

variable "database_username" {
description = "The database username. Specify AWS_ACCESS_KEY_ID if the database is dynamo."
}

variable "database_password" {
description = "The database password. Specify AWS_SECRET_ACCESS_KEY if the database is dynamo."
}

variable "cassandra_username" {
description = "The username of cassandra cluster"
variable "cassandra_replication_factor" {
default = 3
description = "The replication factor for the Cassandra schema"
}

variable "cassandra_password" {
description = "The password of cassandra cluster"
variable "custom_tags" {
type = map(string)
default = {}
description = "The map of custom tags"
}
45 changes: 26 additions & 19 deletions modules/aws/scalardl/locals.tf
Original file line number Diff line number Diff line change
Expand Up @@ -16,30 +16,37 @@ 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 = [
(lookup(var.scalardl, "database", "cassandra") == "cassandra" && var.cassandra.start_on_initial_boot) ?
var.cassandra.provision_ids :
var.network.bastion_provision_id
]
}

### default
locals {
scalardl_default = {
resource_type = "t3.medium"
resource_root_volume_size = 64
blue_resource_count = 3
blue_image_tag = "2.1.0"
blue_image_name = "scalarlabs/scalar-ledger"
blue_discoverable_by_envoy = true
green_resource_count = 0
green_image_tag = "2.1.0"
replication_factor = 3
green_image_name = "scalarlabs/scalar-ledger"
green_discoverable_by_envoy = false
target_port = 50051
privileged_target_port = 50052
listen_port = 50051
privileged_listen_port = 50052
enable_tdagent = true
cassandra_username = "cassandra"
cassandra_password = "cassandra"
resource_type = "t3.medium"
resource_root_volume_size = 64
blue_resource_count = 3
blue_image_tag = "2.1.0"
blue_image_name = "scalarlabs/scalar-ledger"
blue_discoverable_by_envoy = true
green_resource_count = 0
green_image_tag = "2.1.0"
green_image_name = "scalarlabs/scalar-ledger"
green_discoverable_by_envoy = false
target_port = 50051
privileged_target_port = 50052
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
}
}

Expand Down
2 changes: 1 addition & 1 deletion modules/aws/scalardl/output.tf
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ output "scalardl_green_resource_count" {
}

output "scalardl_replication_factor" {
value = local.scalardl.replication_factor
value = local.scalardl.cassandra_replication_factor
description = "The replication factor for the schema of scalardl."
}

Expand Down
94 changes: 50 additions & 44 deletions modules/aws/scalardl/scalardl.tf
Original file line number Diff line number Diff line change
@@ -1,55 +1,61 @@
module "scalardl_blue" {
source = "./cluster"

security_group_ids = aws_security_group.scalardl.*.id
bastion_ip = local.bastion_ip
network_name = local.network_name
resource_type = local.scalardl.resource_type
resource_count = local.scalardl.blue_resource_count
resource_cluster_name = "blue"
resource_root_volume_size = local.scalardl.resource_root_volume_size
triggers = local.triggers
private_key_path = local.private_key_path
user_name = local.user_name
subnet_ids = local.blue_subnet_ids
image_id = local.image_id
key_name = local.key_name
network_dns = local.network_dns
scalardl_image_name = local.scalardl.blue_image_name
scalardl_image_tag = local.scalardl.blue_image_tag
replication_factor = local.scalardl.replication_factor
enable_tdagent = local.scalardl.enable_tdagent
internal_domain = local.internal_domain
custom_tags = var.custom_tags
cassandra_username = local.scalardl.cassandra_username
cassandra_password = local.scalardl.cassandra_password
security_group_ids = aws_security_group.scalardl.*.id
bastion_ip = local.bastion_ip
network_name = local.network_name
resource_type = local.scalardl.resource_type
resource_count = local.scalardl.blue_resource_count
resource_cluster_name = "blue"
resource_root_volume_size = local.scalardl.resource_root_volume_size
triggers = local.triggers
private_key_path = local.private_key_path
user_name = local.user_name
subnet_ids = local.blue_subnet_ids
image_id = local.image_id
key_name = local.key_name
network_dns = local.network_dns
scalardl_image_name = local.scalardl.blue_image_name
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
custom_tags = var.custom_tags
}

module "scalardl_green" {
source = "./cluster"

security_group_ids = aws_security_group.scalardl.*.id
bastion_ip = local.bastion_ip
network_name = local.network_name
resource_type = local.scalardl.resource_type
resource_count = local.scalardl.green_resource_count
resource_cluster_name = "green"
resource_root_volume_size = local.scalardl.resource_root_volume_size
triggers = local.triggers
private_key_path = local.private_key_path
user_name = local.user_name
subnet_ids = local.green_subnet_ids
image_id = local.image_id
key_name = local.key_name
network_dns = local.network_dns
scalardl_image_name = local.scalardl.green_image_name
scalardl_image_tag = local.scalardl.green_image_tag
replication_factor = local.scalardl.replication_factor
enable_tdagent = local.scalardl.enable_tdagent
internal_domain = local.internal_domain
custom_tags = var.custom_tags
cassandra_username = local.scalardl.cassandra_username
cassandra_password = local.scalardl.cassandra_password
security_group_ids = aws_security_group.scalardl.*.id
bastion_ip = local.bastion_ip
network_name = local.network_name
resource_type = local.scalardl.resource_type
resource_count = local.scalardl.green_resource_count
resource_cluster_name = "green"
resource_root_volume_size = local.scalardl.resource_root_volume_size
triggers = local.triggers
private_key_path = local.private_key_path
user_name = local.user_name
subnet_ids = local.green_subnet_ids
image_id = local.image_id
key_name = local.key_name
network_dns = local.network_dns
scalardl_image_name = local.scalardl.green_image_name
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
custom_tags = var.custom_tags
}

resource "aws_security_group" "scalardl" {
Expand Down
2 changes: 1 addition & 1 deletion modules/azure/monitor/locals.tf
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ locals {
cassandra_resource_count = lookup(var.cassandra, "resource_count", 0)
scalardl_blue_resource_count = lookup(var.scalardl, "blue_resource_count", 0)
scalardl_green_resource_count = lookup(var.scalardl, "green_resource_count", 0)
scalardl_replication_factor = lookup(var.scalardl, "replication_factor", 0)
scalardl_replication_factor = lookup(var.scalardl, "cassandra_replication_factor", 0)
}

### default
Expand Down
Loading