From c0f190174f9c3aabf03b49e208159fcc175177ff Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Thu, 17 Sep 2020 16:35:42 +0900 Subject: [PATCH 1/7] Add enable_cosmosdb_service_endpoint option to kubernetes tf files --- modules/azure/kubernetes/example.tfvars | 2 ++ modules/azure/kubernetes/main.tf | 9 +++++---- modules/azure/kubernetes/output.tf | 4 ++++ modules/azure/kubernetes/vars.tf | 6 ++++++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/modules/azure/kubernetes/example.tfvars b/modules/azure/kubernetes/example.tfvars index 3f6f109f6..2436ca706 100644 --- a/modules/azure/kubernetes/example.tfvars +++ b/modules/azure/kubernetes/example.tfvars @@ -31,6 +31,8 @@ kubernetes_scalar_apps_pool = { # cluster_auto_scaling_max_count = "6" } +# enable_cosmosdb_service_endpoint = false + custom_tags = { # "environment" = "example" } diff --git a/modules/azure/kubernetes/main.tf b/modules/azure/kubernetes/main.tf index a4fc2d34d..8c70a0373 100644 --- a/modules/azure/kubernetes/main.tf +++ b/modules/azure/kubernetes/main.tf @@ -5,8 +5,9 @@ module "kubernetes" { network = local.network # Optional variables - kubernetes_cluster = var.kubernetes_cluster - kubernetes_default_node_pool = var.kubernetes_default_node_pool - kubernetes_scalar_apps_pool = var.kubernetes_scalar_apps_pool - custom_tags = var.custom_tags + kubernetes_cluster = var.kubernetes_cluster + kubernetes_default_node_pool = var.kubernetes_default_node_pool + kubernetes_scalar_apps_pool = var.kubernetes_scalar_apps_pool + enable_cosmosdb_service_endpoint = var.enable_cosmosdb_service_endpoint + custom_tags = var.custom_tags } diff --git a/modules/azure/kubernetes/output.tf b/modules/azure/kubernetes/output.tf index 9c66f3653..28697626d 100644 --- a/modules/azure/kubernetes/output.tf +++ b/modules/azure/kubernetes/output.tf @@ -1,3 +1,7 @@ +output "node_pool_subnet_id" { + value = module.kubernetes.node_pool_subnet_id +} + output "kube_config" { value = module.kubernetes.kube_config description = "kubectl configuration e.g: ~/.kube/config" diff --git a/modules/azure/kubernetes/vars.tf b/modules/azure/kubernetes/vars.tf index 94a092c9e..010d9063c 100644 --- a/modules/azure/kubernetes/vars.tf +++ b/modules/azure/kubernetes/vars.tf @@ -22,6 +22,12 @@ variable "kubernetes_scalar_apps_pool" { description = "Custom definition kubernetes scalar apps node pools, same as default_node_pool" } +variable "enable_cosmosdb_service_endpoint" { + type = bool + default = false + description = "Whether to enable the Cosmos DB service endpoint" +} + variable "custom_tags" { type = map default = {} From 5597d20858f2b93da3f1191faa77afadcd263fb5 Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Thu, 17 Sep 2020 17:19:53 +0900 Subject: [PATCH 2/7] Add tf files to deploy cosmosdb --- modules/azure/cosmosdb/azure.tf | 3 +++ modules/azure/cosmosdb/locals.tf | 18 ++++++++++++++++ modules/azure/cosmosdb/main.tf | 7 +++++++ modules/azure/cosmosdb/output.tf | 35 ++++++++++++++++++++++++++++++++ modules/azure/cosmosdb/remote.tf | 15 ++++++++++++++ 5 files changed, 78 insertions(+) create mode 100644 modules/azure/cosmosdb/azure.tf create mode 100644 modules/azure/cosmosdb/locals.tf create mode 100644 modules/azure/cosmosdb/main.tf create mode 100644 modules/azure/cosmosdb/output.tf create mode 100644 modules/azure/cosmosdb/remote.tf diff --git a/modules/azure/cosmosdb/azure.tf b/modules/azure/cosmosdb/azure.tf new file mode 100644 index 000000000..8ec729873 --- /dev/null +++ b/modules/azure/cosmosdb/azure.tf @@ -0,0 +1,3 @@ +provider "azurerm" { + version = "=1.38.0" +} diff --git a/modules/azure/cosmosdb/locals.tf b/modules/azure/cosmosdb/locals.tf new file mode 100644 index 000000000..bb7cfb490 --- /dev/null +++ b/modules/azure/cosmosdb/locals.tf @@ -0,0 +1,18 @@ +locals { + network = { + cidr = data.terraform_remote_state.network.outputs.network_cidr + name = data.terraform_remote_state.network.outputs.network_name + dns = data.terraform_remote_state.network.outputs.dns_zone_id + id = data.terraform_remote_state.network.outputs.network_id + region = data.terraform_remote_state.network.outputs.region + + bastion_ip = data.terraform_remote_state.network.outputs.bastion_ip + bastion_provision_id = data.terraform_remote_state.network.outputs.bastion_provision_id + + internal_domain = data.terraform_remote_state.network.outputs.internal_domain + } + + kubernetes = { + node_pool_subnet_id = data.terraform_remote_state.kubernetes.outputs.node_pool_subnet_id + } +} diff --git a/modules/azure/cosmosdb/main.tf b/modules/azure/cosmosdb/main.tf new file mode 100644 index 000000000..744399c66 --- /dev/null +++ b/modules/azure/cosmosdb/main.tf @@ -0,0 +1,7 @@ +module "cosmosdb" { + source = "git::https://github.com/scalar-labs/scalar-terraform.git//modules/azure/cosmosdb?ref=master" + + # Required Variables + network = local.network + kubernetes = local.kubernetes +} diff --git a/modules/azure/cosmosdb/output.tf b/modules/azure/cosmosdb/output.tf new file mode 100644 index 000000000..c0783b642 --- /dev/null +++ b/modules/azure/cosmosdb/output.tf @@ -0,0 +1,35 @@ +output "cosmosdb_account_id" { + value = module.cosmosdb.cosmosdb_account_id +} + +output "cosmosdb_account_endpoint" { + value = module.cosmosdb.cosmosdb_account_endpoint +} + +output "cosmosdb_account_read_endpoints" { + value = module.cosmosdb.cosmosdb_account_read_endpoints +} + +output "cosmosdb_account_write_endpoints" { + value = module.cosmosdb.cosmosdb_account_write_endpoints +} + +output "cosmosdb_account_primary_master_key" { + value = module.cosmosdb.cosmosdb_account_primary_master_key +} + +output "cosmosdb_account_secondary_master_key" { + value = module.cosmosdb.cosmosdb_account_secondary_master_key +} + +output "cosmosdb_account_primary_readonly_master_key" { + value = module.cosmosdb.cosmosdb_account_primary_readonly_master_key +} + +output "cosmosdb_account_secondary_readonly_master_key" { + value = module.cosmosdb.cosmosdb_account_secondary_readonly_master_key +} + +output "cosmosdb_account_connection_strings" { + value = module.cosmosdb.cosmosdb_account_connection_strings +} diff --git a/modules/azure/cosmosdb/remote.tf b/modules/azure/cosmosdb/remote.tf new file mode 100644 index 000000000..8b6ee82ff --- /dev/null +++ b/modules/azure/cosmosdb/remote.tf @@ -0,0 +1,15 @@ +data "terraform_remote_state" "network" { + backend = "local" + + config = { + path = "../network/terraform.tfstate" + } +} + +data "terraform_remote_state" "kubernetes" { + backend = "local" + + config = { + path = "../kubernetes/terraform.tfstate" + } +} From d0836961780b7d22a2e04a1da005e551e2fa9a7a Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Thu, 17 Sep 2020 17:22:49 +0900 Subject: [PATCH 3/7] Output only needed configurations from cosmosdb --- modules/azure/cosmosdb/output.tf | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/modules/azure/cosmosdb/output.tf b/modules/azure/cosmosdb/output.tf index c0783b642..df7f0a2d6 100644 --- a/modules/azure/cosmosdb/output.tf +++ b/modules/azure/cosmosdb/output.tf @@ -1,19 +1,7 @@ -output "cosmosdb_account_id" { - value = module.cosmosdb.cosmosdb_account_id -} - output "cosmosdb_account_endpoint" { value = module.cosmosdb.cosmosdb_account_endpoint } -output "cosmosdb_account_read_endpoints" { - value = module.cosmosdb.cosmosdb_account_read_endpoints -} - -output "cosmosdb_account_write_endpoints" { - value = module.cosmosdb.cosmosdb_account_write_endpoints -} - output "cosmosdb_account_primary_master_key" { value = module.cosmosdb.cosmosdb_account_primary_master_key } @@ -21,15 +9,3 @@ output "cosmosdb_account_primary_master_key" { output "cosmosdb_account_secondary_master_key" { value = module.cosmosdb.cosmosdb_account_secondary_master_key } - -output "cosmosdb_account_primary_readonly_master_key" { - value = module.cosmosdb.cosmosdb_account_primary_readonly_master_key -} - -output "cosmosdb_account_secondary_readonly_master_key" { - value = module.cosmosdb.cosmosdb_account_secondary_readonly_master_key -} - -output "cosmosdb_account_connection_strings" { - value = module.cosmosdb.cosmosdb_account_connection_strings -} From 62b4a8a0be6a8dd5e35be736d1667c5fdae54c6f Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Fri, 18 Sep 2020 08:20:33 +0900 Subject: [PATCH 4/7] Rename variable enable_cosmosdb_service_endpoint to use_cosmosdb --- modules/azure/kubernetes/example.tfvars | 2 +- modules/azure/kubernetes/main.tf | 10 +++++----- modules/azure/kubernetes/vars.tf | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/azure/kubernetes/example.tfvars b/modules/azure/kubernetes/example.tfvars index 2436ca706..3a6257c4e 100644 --- a/modules/azure/kubernetes/example.tfvars +++ b/modules/azure/kubernetes/example.tfvars @@ -31,7 +31,7 @@ kubernetes_scalar_apps_pool = { # cluster_auto_scaling_max_count = "6" } -# enable_cosmosdb_service_endpoint = false +# use_cosmosdb = false custom_tags = { # "environment" = "example" diff --git a/modules/azure/kubernetes/main.tf b/modules/azure/kubernetes/main.tf index 8c70a0373..fd65a86fa 100644 --- a/modules/azure/kubernetes/main.tf +++ b/modules/azure/kubernetes/main.tf @@ -5,9 +5,9 @@ module "kubernetes" { network = local.network # Optional variables - kubernetes_cluster = var.kubernetes_cluster - kubernetes_default_node_pool = var.kubernetes_default_node_pool - kubernetes_scalar_apps_pool = var.kubernetes_scalar_apps_pool - enable_cosmosdb_service_endpoint = var.enable_cosmosdb_service_endpoint - custom_tags = var.custom_tags + kubernetes_cluster = var.kubernetes_cluster + kubernetes_default_node_pool = var.kubernetes_default_node_pool + kubernetes_scalar_apps_pool = var.kubernetes_scalar_apps_pool + use_cosmosdb = var.use_cosmosdb + custom_tags = var.custom_tags } diff --git a/modules/azure/kubernetes/vars.tf b/modules/azure/kubernetes/vars.tf index 010d9063c..f08cea873 100644 --- a/modules/azure/kubernetes/vars.tf +++ b/modules/azure/kubernetes/vars.tf @@ -22,10 +22,10 @@ variable "kubernetes_scalar_apps_pool" { description = "Custom definition kubernetes scalar apps node pools, same as default_node_pool" } -variable "enable_cosmosdb_service_endpoint" { +variable "use_cosmosdb" { type = bool default = false - description = "Whether to enable the Cosmos DB service endpoint" + description = "Whether to use Cosmos DB. If true, a service endpoint for Cosmos DB is enabled." } variable "custom_tags" { From cf75a56d9cbe234bab613c5c1b051d0315843725 Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Thu, 24 Sep 2020 12:20:16 +0900 Subject: [PATCH 5/7] Add backend.tf.azurerm --- modules/azure/cosmosdb/backend.tf.azurerm | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 modules/azure/cosmosdb/backend.tf.azurerm diff --git a/modules/azure/cosmosdb/backend.tf.azurerm b/modules/azure/cosmosdb/backend.tf.azurerm new file mode 100644 index 000000000..c1fba0933 --- /dev/null +++ b/modules/azure/cosmosdb/backend.tf.azurerm @@ -0,0 +1,8 @@ +terraform { + backend "azurerm" { + resource_group_name = "example-tfstate" + storage_account_name = "exampletfstate" + container_name = "tfstate" + key = "cosmosdb/terraform.tfstate" + } +} From 1f85c6faefc4bbe2cdea7cd417936f888afa9030 Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Tue, 29 Sep 2020 16:00:53 +0900 Subject: [PATCH 6/7] Remove unecessary keys from local.network --- modules/azure/cosmosdb/locals.tf | 8 -------- 1 file changed, 8 deletions(-) diff --git a/modules/azure/cosmosdb/locals.tf b/modules/azure/cosmosdb/locals.tf index bb7cfb490..64a50a274 100644 --- a/modules/azure/cosmosdb/locals.tf +++ b/modules/azure/cosmosdb/locals.tf @@ -1,15 +1,7 @@ locals { network = { - cidr = data.terraform_remote_state.network.outputs.network_cidr name = data.terraform_remote_state.network.outputs.network_name - dns = data.terraform_remote_state.network.outputs.dns_zone_id - id = data.terraform_remote_state.network.outputs.network_id region = data.terraform_remote_state.network.outputs.region - - bastion_ip = data.terraform_remote_state.network.outputs.bastion_ip - bastion_provision_id = data.terraform_remote_state.network.outputs.bastion_provision_id - - internal_domain = data.terraform_remote_state.network.outputs.internal_domain } kubernetes = { From e84f0ffa7643e96e04a1488aa3708db58051ac3a Mon Sep 17 00:00:00 2001 From: Yusuke Morimoto Date: Wed, 30 Sep 2020 15:09:42 +0900 Subject: [PATCH 7/7] Add remote.tf.azurerm --- modules/azure/cosmosdb/remote.tf.azurerm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 modules/azure/cosmosdb/remote.tf.azurerm diff --git a/modules/azure/cosmosdb/remote.tf.azurerm b/modules/azure/cosmosdb/remote.tf.azurerm new file mode 100644 index 000000000..e4412e6c1 --- /dev/null +++ b/modules/azure/cosmosdb/remote.tf.azurerm @@ -0,0 +1,19 @@ +data "terraform_remote_state" "network" { + backend = "azurerm" + + config = { + storage_account_name = "exampletfstate" + container_name = "tfstate" + key = "network/terraform.tfstate" + } +} + +data "terraform_remote_state" "kubernetes" { + backend = "azurerm" + + config = { + storage_account_name = "exampletfstate" + container_name = "tfstate" + key = "kubernetes/terraform.tfstate" + } +}