Skip to content

Commit 62d569b

Browse files
committed
feat: TT-509 Use terraform to provision ui infraestructure
1 parent 2dafbcd commit 62d569b

File tree

6 files changed

+32712
-152
lines changed

6 files changed

+32712
-152
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,6 @@ Thumbs.db
5555

5656
#ENV VARIABLES
5757
.env
58+
59+
# Terraform files
60+
**/.terraform**

infraestructure/main.tf

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
terraform {
2+
required_version = "~> 1.1.2"
3+
required_providers {
4+
azurerm = {
5+
source = "hashicorp/azurerm"
6+
version = "~> 2.90"
7+
}
8+
}
9+
10+
backend "azurerm" {
11+
resource_group_name = "ioet-infra-tf-state"
12+
storage_account_name = "timetrackertfstate"
13+
container_name = "time-tracker-tf-state"
14+
key = "time-tracker-ui.tfstate"
15+
}
16+
17+
}
18+
19+
provider "azurerm" {
20+
features {}
21+
skip_provider_registration = true
22+
}
23+
24+
data "terraform_remote_state" "service" {
25+
backend = "azurerm"
26+
workspace = terraform.workspace
27+
config = {
28+
resource_group_name = "ioet-infra-tf-state"
29+
storage_account_name = "timetrackertfstate"
30+
container_name = "time-tracker-tf-state"
31+
key = "this.tfstate"
32+
}
33+
}
34+
35+
data "azurerm_container_registry" "registry" {
36+
name = data.terraform_remote_state.service.outputs.container_registry_name
37+
resource_group_name = data.terraform_remote_state.service.outputs.resource_group_name
38+
}
39+
40+
data "azurerm_resource_group" "root" {
41+
name = data.terraform_remote_state.service.outputs.resource_group_name
42+
}
43+
44+
locals {
45+
common_name = "time-tracker-ui"
46+
environment = terraform.workspace
47+
service_name = "${local.common_name}-${local.environment}"
48+
create_app_service_plan = true
49+
service_plan_kind = "Linux"
50+
}
51+
52+
module "ui" {
53+
source = "[email protected]:ioet/infra-terraform-modules.git//azure-app-service?ref=tags/v0.0.5"
54+
app_service_name = local.service_name
55+
create_app_service_plan = local.create_app_service_plan
56+
docker_image_name = var.docker_image_name
57+
docker_image_namespace = data.azurerm_container_registry.registry.login_server
58+
docker_registry_password = data.azurerm_container_registry.registry.admin_password
59+
docker_registry_url = data.azurerm_container_registry.registry.login_server
60+
docker_registry_username = data.azurerm_container_registry.registry.admin_username
61+
location = data.azurerm_resource_group.root.location
62+
resource_group_name = data.azurerm_resource_group.root.name
63+
service_plan_kind = local.service_plan_kind
64+
service_plan_name = local.service_name
65+
service_plan_size = var.service_plan_size
66+
service_plan_tier = var.service_plan_tier
67+
68+
}

infraestructure/prod.tfvars

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
service_plan_size = "S1"
2+
service_plan_tier = "Standard"

infraestructure/stage.tfvars

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
service_plan_size = "S1"
2+
service_plan_tier = "Standard"

infraestructure/variables.tf

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
variable "docker_image_name" {
2+
type = string
3+
description = "Specifies the docker image name that is stored in a private container registry like ACR (Azure Container Registry)."
4+
sensitive = true
5+
}
6+
7+
variable "service_plan_size" {
8+
default = "S1"
9+
type = string
10+
description = "Specifies the size of the service plan. This variable format is: Tier (letter) + Size (number). Size could be: 1 = Small (1 Core 1.75GB RAM), 2 = Medium (2 Core 3.5 GB RAM), 3 = Large (4 Core 7GB RAM)"
11+
}
12+
13+
variable "service_plan_tier" {
14+
default = "Standard"
15+
type = string
16+
description = "Specifies the tier of the service plan. Tier is the pricing plan of the service plan resource."
17+
}
18+

0 commit comments

Comments
 (0)