-
Notifications
You must be signed in to change notification settings - Fork 12
Implement Terraform #512
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Implement Terraform #512
Changes from 17 commits
7f4f089
af0e05d
09180b9
d93bf06
655455a
d61bdee
35ff247
0a1dfc3
85eca65
e831f77
97e93d4
5ed6970
68db66f
dd13984
e21270d
650f6f8
f59d851
e538831
4d469dd
eeaf94e
2f0184d
62d9e25
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| # Configure Azure storage to manage Terraform State | ||
| # ref: https://docs.microsoft.com/en-us/azure/developer/terraform/store-state-in-azure-storage | ||
| terraform { | ||
| backend "azurerm" { | ||
| resource_group_name = "tstate" | ||
| storage_account_name = "tstate31414" | ||
| container_name = "tstate" | ||
| key = "terraform.tfstate" | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thoughts on making the key dynamic, e.g. based on branch name via the
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sure can! That makes a lot of sense. |
||
| } | ||
| } | ||
|
|
||
| # Configure the Microsoft Azure Provider | ||
| provider "azurerm" { | ||
| version = "=2.23.0" | ||
|
|
||
| features {} | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,280 @@ | ||
| # ------------------------------ | ||
| # Data Resource Group | ||
| # ------------------------------ | ||
|
|
||
| # Create a data resource group if it doesn't exist | ||
| resource "azurerm_resource_group" "data" { | ||
| name = "${var.RESOURCE_GROUP_NAME}data" | ||
| location = var.location | ||
|
|
||
| tags = {} | ||
| } | ||
|
|
||
| # Generate random text for a unique storage account name | ||
| resource "random_id" "randomId" { | ||
| keepers = { | ||
| # Generate a new ID only when a new resource group is defined | ||
| resource_group = azurerm_resource_group.vm.name | ||
| } | ||
|
|
||
| byte_length = 3 | ||
| } | ||
|
|
||
| # Create server table storage account if it doesn't exist | ||
| resource "azurerm_storage_account" "serverTablesName" { | ||
| name = "${var.serverTablesName}${random_id.randomId.hex}" | ||
| resource_group_name = azurerm_resource_group.data.name | ||
| location = azurerm_resource_group.data.location | ||
| account_kind = "Storage" | ||
| account_tier = "Standard" | ||
| account_replication_type = "GRS" | ||
| allow_blob_public_access = true | ||
|
sbathgate marked this conversation as resolved.
Outdated
|
||
| enable_https_traffic_only = false | ||
|
|
||
| network_rules { | ||
| default_action = "Allow" | ||
| bypass = ["AzureServices"] | ||
| ip_rules = [] | ||
| } | ||
|
|
||
| tags = {} | ||
|
sbathgate marked this conversation as resolved.
Outdated
|
||
| } | ||
|
|
||
| # Create server blob storage account if it doesn't exist | ||
| resource "azurerm_storage_account" "serverBlobsName" { | ||
| name = "${var.serverBlobsName}${random_id.randomId.hex}" | ||
| resource_group_name = azurerm_resource_group.data.name | ||
| location = azurerm_resource_group.data.location | ||
| account_kind = "Storage" | ||
| account_tier = "Standard" | ||
| account_replication_type = "GRS" | ||
| allow_blob_public_access = true | ||
| enable_https_traffic_only = false | ||
|
|
||
| network_rules { | ||
| default_action = "Allow" | ||
| bypass = ["AzureServices"] | ||
| ip_rules = [] | ||
| } | ||
|
|
||
| tags = {} | ||
| } | ||
|
|
||
| # Create client blob storage account if it doesn't exist | ||
| resource "azurerm_storage_account" "clientBlobsName" { | ||
| name = "${var.clientBlobsName}${random_id.randomId.hex}" | ||
| resource_group_name = azurerm_resource_group.data.name | ||
| location = azurerm_resource_group.data.location | ||
| account_kind = "Storage" | ||
| account_tier = "Standard" | ||
| account_replication_type = "GRS" | ||
| allow_blob_public_access = true | ||
| enable_https_traffic_only = false | ||
|
|
||
| network_rules { | ||
| default_action = "Allow" | ||
| bypass = ["AzureServices"] | ||
| ip_rules = [] | ||
| } | ||
|
|
||
| tags = {} | ||
| } | ||
|
|
||
| resource "azurerm_storage_container" "clientsauth" { | ||
| name = "clientsauth" | ||
| storage_account_name = azurerm_storage_account.serverTablesName.name | ||
| container_access_type = "private" | ||
| } | ||
|
|
||
| resource "azurerm_storage_container" "pendingemails" { | ||
| name = "pendingemails" | ||
| storage_account_name = azurerm_storage_account.serverTablesName.name | ||
| container_access_type = "private" | ||
| } | ||
|
|
||
| resource "azurerm_storage_container" "users" { | ||
| name = "users" | ||
| storage_account_name = azurerm_storage_account.serverTablesName.name | ||
| container_access_type = "private" | ||
| } | ||
|
|
||
| resource "azurerm_storage_container" "emails" { | ||
| name = "emails" | ||
| storage_account_name = azurerm_storage_account.serverBlobsName.name | ||
| container_access_type = "private" | ||
| } | ||
|
|
||
| resource "azurerm_storage_container" "mailbox" { | ||
| name = "mailbox" | ||
| storage_account_name = azurerm_storage_account.serverBlobsName.name | ||
| container_access_type = "private" | ||
| } | ||
|
|
||
| resource "azurerm_storage_container" "secretsopwencluster" { | ||
| name = "secretsopwencluster" | ||
| storage_account_name = azurerm_storage_account.serverBlobsName.name | ||
| container_access_type = "private" | ||
| } | ||
|
|
||
| resource "azurerm_storage_container" "sendgridinboundemails" { | ||
| name = "sendgridinboundemails" | ||
| storage_account_name = azurerm_storage_account.serverBlobsName.name | ||
| container_access_type = "private" | ||
| } | ||
|
|
||
| resource "azurerm_storage_container" "compressedpackages" { | ||
| name = "compressedpackages" | ||
| storage_account_name = azurerm_storage_account.clientBlobsName.name | ||
| container_access_type = "private" | ||
| } | ||
|
|
||
| # Create a server queue if it doesn't exist | ||
| resource "azurerm_servicebus_namespace" "data" { | ||
| name = var.serverQueuesName | ||
| location = azurerm_resource_group.data.location | ||
| resource_group_name = azurerm_resource_group.data.name | ||
| sku = "Standard" | ||
| zone_redundant = false | ||
| } | ||
|
|
||
| resource "azurerm_servicebus_namespace_authorization_rule" "data" { | ||
| name = var.serverQueuesSasName | ||
| namespace_name = azurerm_servicebus_namespace.data.name | ||
| resource_group_name = azurerm_resource_group.data.name | ||
| send = true | ||
| listen = true | ||
| manage = true | ||
| } | ||
|
|
||
| resource "azurerm_servicebus_queue" "serverQueueSendgridMime" { | ||
| name = var.serverQueueSendgridMime | ||
| resource_group_name = azurerm_resource_group.data.name | ||
| namespace_name = azurerm_servicebus_namespace.data.name | ||
| max_size_in_megabytes = 5120 | ||
|
|
||
| # Optional Values | ||
| lock_duration = "PT1M" | ||
| requires_duplicate_detection = false | ||
| requires_session = false | ||
| default_message_ttl = "P14D" | ||
| dead_lettering_on_message_expiration = false | ||
| duplicate_detection_history_time_window = "PT10M" | ||
| max_delivery_count = 10 | ||
| status = "Active" | ||
| enable_partitioning = false | ||
| enable_express = false | ||
| } | ||
|
|
||
| resource "azurerm_servicebus_queue" "serverQueueEmailSend" { | ||
| name = var.serverQueueEmailSend | ||
| resource_group_name = azurerm_resource_group.data.name | ||
| namespace_name = azurerm_servicebus_namespace.data.name | ||
| max_size_in_megabytes = 5120 | ||
|
|
||
| # Optional Values | ||
| lock_duration = "PT1M" | ||
| requires_duplicate_detection = false | ||
| requires_session = false | ||
| default_message_ttl = "P14D" | ||
| dead_lettering_on_message_expiration = false | ||
| duplicate_detection_history_time_window = "PT10M" | ||
| max_delivery_count = 10 | ||
| status = "Active" | ||
| enable_partitioning = false | ||
| enable_express = false | ||
| } | ||
|
|
||
| resource "azurerm_servicebus_queue" "serverQueueClientPackage" { | ||
| name = var.serverQueueClientPackage | ||
| resource_group_name = azurerm_resource_group.data.name | ||
| namespace_name = azurerm_servicebus_namespace.data.name | ||
| max_size_in_megabytes = 5120 | ||
|
|
||
| # Optional Values | ||
| lock_duration = "PT1M" | ||
| requires_duplicate_detection = false | ||
| requires_session = false | ||
| default_message_ttl = "P14D" | ||
| dead_lettering_on_message_expiration = false | ||
| duplicate_detection_history_time_window = "PT10M" | ||
| max_delivery_count = 10 | ||
| status = "Active" | ||
| enable_partitioning = false | ||
| enable_express = false | ||
| } | ||
|
|
||
| resource "azurerm_servicebus_queue" "mailboxreceived" { | ||
| name = "mailboxreceived" | ||
| resource_group_name = azurerm_resource_group.data.name | ||
| namespace_name = azurerm_servicebus_namespace.data.name | ||
| max_size_in_megabytes = 1024 | ||
|
|
||
| # Optional Values | ||
| lock_duration = "PT1M" | ||
| requires_duplicate_detection = false | ||
| requires_session = false | ||
| default_message_ttl = "P14D" | ||
| dead_lettering_on_message_expiration = false | ||
| duplicate_detection_history_time_window = "PT10M" | ||
| max_delivery_count = 10 | ||
| status = "Active" | ||
| enable_partitioning = false | ||
| enable_express = false | ||
| } | ||
|
|
||
| resource "azurerm_servicebus_queue" "mailboxsent" { | ||
| name = "mailboxsent" | ||
| resource_group_name = azurerm_resource_group.data.name | ||
| namespace_name = azurerm_servicebus_namespace.data.name | ||
| max_size_in_megabytes = 1024 | ||
|
|
||
| # Optional Values | ||
| lock_duration = "PT1M" | ||
| requires_duplicate_detection = false | ||
| requires_session = false | ||
| default_message_ttl = "P14D" | ||
| dead_lettering_on_message_expiration = false | ||
| duplicate_detection_history_time_window = "PT10M" | ||
| max_delivery_count = 10 | ||
| status = "Active" | ||
| enable_partitioning = false | ||
| enable_express = false | ||
| } | ||
|
|
||
| resource "azurerm_servicebus_queue" "register" { | ||
| name = "register" | ||
| resource_group_name = azurerm_resource_group.data.name | ||
| namespace_name = azurerm_servicebus_namespace.data.name | ||
| max_size_in_megabytes = 1024 | ||
|
|
||
| # Optional Values | ||
| lock_duration = "PT1M" | ||
| requires_duplicate_detection = false | ||
| requires_session = false | ||
| default_message_ttl = "P14D" | ||
| dead_lettering_on_message_expiration = false | ||
| duplicate_detection_history_time_window = "PT10M" | ||
| max_delivery_count = 10 | ||
| status = "Active" | ||
| enable_partitioning = false | ||
| enable_express = false | ||
| } | ||
|
|
||
| resource "azurerm_servicebus_queue" "service" { | ||
| name = "service" | ||
| resource_group_name = azurerm_resource_group.data.name | ||
| namespace_name = azurerm_servicebus_namespace.data.name | ||
| max_size_in_megabytes = 1024 | ||
|
|
||
| # Optional Values | ||
| lock_duration = "PT1M" | ||
| requires_duplicate_detection = false | ||
| requires_session = false | ||
| default_message_ttl = "P14D" | ||
| dead_lettering_on_message_expiration = false | ||
| duplicate_detection_history_time_window = "PT10M" | ||
| max_delivery_count = 10 | ||
| status = "Active" | ||
| enable_partitioning = false | ||
| enable_express = false | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| # ------------------------------ | ||
| # Server Resource Group | ||
| # ------------------------------ | ||
|
|
||
| # Create the server resource group if it doesn't exist | ||
| resource "azurerm_resource_group" "server" { | ||
| name = "${var.RESOURCE_GROUP_NAME}server" | ||
| location = var.location | ||
|
|
||
| tags = {} | ||
| } |
Uh oh!
There was an error while loading. Please reload this page.