Skip to content

Commit c25d0c2

Browse files
committed
Changing to adhere to standards
1 parent 112c5b5 commit c25d0c2

3 files changed

Lines changed: 229 additions & 229 deletions

File tree

Lines changed: 208 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,209 @@
1-
terraform {
2-
3-
required_version = ">=0.12"
4-
5-
required_providers {
6-
azurerm = {
7-
source = "hashicorp/azurerm"
8-
version = "~>2.0"
9-
}
10-
}
11-
backend "azurerm" {
12-
resource_group_name = var.resource_group_name
13-
storage_account_name = var.storage_account_name
14-
container_name = "tfstate"
15-
key = "codelab.microsoft.tfstate"
16-
}
17-
}
18-
19-
provider "azurerm" {
20-
features {}
1+
# # Locals block for hardcoded names.
2+
locals {
3+
backend_address_pool_name = "${azurerm_virtual_network.test.name}-beap"
4+
frontend_port_name = "${azurerm_virtual_network.test.name}-feport"
5+
frontend_ip_configuration_name = "${azurerm_virtual_network.test.name}-feip"
6+
http_setting_name = "${azurerm_virtual_network.test.name}-be-htst"
7+
listener_name = "${azurerm_virtual_network.test.name}-httplstn"
8+
request_routing_rule_name = "${azurerm_virtual_network.test.name}-rqrt"
9+
app_gateway_subnet_name = "appgwsubnet"
10+
}
11+
12+
data "azurerm_resource_group" "rg" {
13+
name = var.resource_group_name
14+
}
15+
16+
# User Assigned Identities
17+
resource "azurerm_user_assigned_identity" "testIdentity" {
18+
resource_group_name = data.azurerm_resource_group.rg.name
19+
location = data.azurerm_resource_group.rg.location
20+
21+
name = "identity1"
22+
23+
tags = var.tags
24+
}
25+
26+
resource "azurerm_virtual_network" "test" {
27+
name = var.virtual_network_name
28+
location = data.azurerm_resource_group.rg.location
29+
resource_group_name = data.azurerm_resource_group.rg.name
30+
address_space = [var.virtual_network_address_prefix]
31+
32+
subnet {
33+
name = var.aks_subnet_name
34+
address_prefix = var.aks_subnet_address_prefix
35+
}
36+
37+
subnet {
38+
name = "appgwsubnet"
39+
address_prefix = var.app_gateway_subnet_address_prefix
40+
}
41+
42+
tags = var.tags
43+
}
44+
45+
data "azurerm_subnet" "kubesubnet" {
46+
name = var.aks_subnet_name
47+
virtual_network_name = azurerm_virtual_network.test.name
48+
resource_group_name = data.azurerm_resource_group.rg.name
49+
depends_on = [azurerm_virtual_network.test]
50+
}
51+
52+
data "azurerm_subnet" "appgwsubnet" {
53+
name = "appgwsubnet"
54+
virtual_network_name = azurerm_virtual_network.test.name
55+
resource_group_name = data.azurerm_resource_group.rg.name
56+
depends_on = [azurerm_virtual_network.test]
57+
}
58+
59+
# Public Ip
60+
resource "azurerm_public_ip" "test" {
61+
name = "publicIp1"
62+
location = data.azurerm_resource_group.rg.location
63+
resource_group_name = data.azurerm_resource_group.rg.name
64+
allocation_method = "Static"
65+
sku = "Standard"
66+
67+
tags = var.tags
68+
}
69+
70+
resource "azurerm_application_gateway" "network" {
71+
name = var.app_gateway_name
72+
resource_group_name = data.azurerm_resource_group.rg.name
73+
location = data.azurerm_resource_group.rg.location
74+
75+
sku {
76+
name = var.app_gateway_sku
77+
tier = "Standard_v2"
78+
capacity = 2
79+
}
80+
81+
gateway_ip_configuration {
82+
name = "appGatewayIpConfig"
83+
subnet_id = data.azurerm_subnet.appgwsubnet.id
84+
}
85+
86+
frontend_port {
87+
name = local.frontend_port_name
88+
port = 80
89+
}
90+
91+
frontend_port {
92+
name = "httpsPort"
93+
port = 443
94+
}
95+
96+
frontend_ip_configuration {
97+
name = local.frontend_ip_configuration_name
98+
public_ip_address_id = azurerm_public_ip.test.id
99+
}
100+
101+
backend_address_pool {
102+
name = local.backend_address_pool_name
103+
}
104+
105+
backend_http_settings {
106+
name = local.http_setting_name
107+
cookie_based_affinity = "Disabled"
108+
port = 80
109+
protocol = "Http"
110+
request_timeout = 1
111+
}
112+
113+
http_listener {
114+
name = local.listener_name
115+
frontend_ip_configuration_name = local.frontend_ip_configuration_name
116+
frontend_port_name = local.frontend_port_name
117+
protocol = "Http"
118+
}
119+
120+
request_routing_rule {
121+
name = local.request_routing_rule_name
122+
rule_type = "Basic"
123+
http_listener_name = local.listener_name
124+
backend_address_pool_name = local.backend_address_pool_name
125+
backend_http_settings_name = local.http_setting_name
126+
}
127+
128+
tags = var.tags
129+
130+
depends_on = [azurerm_virtual_network.test, azurerm_public_ip.test]
131+
}
132+
133+
resource "azurerm_role_assignment" "ra1" {
134+
scope = data.azurerm_subnet.kubesubnet.id
135+
role_definition_name = "Network Contributor"
136+
principal_id = var.aks_service_principal_object_id
137+
138+
depends_on = [azurerm_virtual_network.test]
139+
}
140+
141+
resource "azurerm_role_assignment" "ra2" {
142+
scope = azurerm_user_assigned_identity.testIdentity.id
143+
role_definition_name = "Managed Identity Operator"
144+
principal_id = var.aks_service_principal_object_id
145+
depends_on = [azurerm_user_assigned_identity.testIdentity]
146+
}
147+
148+
resource "azurerm_role_assignment" "ra3" {
149+
scope = azurerm_application_gateway.network.id
150+
role_definition_name = "Contributor"
151+
principal_id = azurerm_user_assigned_identity.testIdentity.principal_id
152+
depends_on = [azurerm_user_assigned_identity.testIdentity, azurerm_application_gateway.network]
153+
}
154+
155+
resource "azurerm_role_assignment" "ra4" {
156+
scope = data.azurerm_resource_group.rg.id
157+
role_definition_name = "Reader"
158+
principal_id = azurerm_user_assigned_identity.testIdentity.principal_id
159+
depends_on = [azurerm_user_assigned_identity.testIdentity, azurerm_application_gateway.network]
160+
}
161+
162+
resource "azurerm_kubernetes_cluster" "k8s" {
163+
name = var.aks_name
164+
location = data.azurerm_resource_group.rg.location
165+
dns_prefix = var.aks_dns_prefix
166+
167+
resource_group_name = data.azurerm_resource_group.rg.name
168+
169+
linux_profile {
170+
admin_username = var.vm_user_name
171+
172+
ssh_key {
173+
key_data = file(var.public_ssh_key_path)
174+
}
175+
}
176+
177+
addon_profile {
178+
http_application_routing {
179+
enabled = false
180+
}
181+
}
182+
183+
default_node_pool {
184+
name = "agentpool"
185+
node_count = var.aks_agent_count
186+
vm_size = var.aks_agent_vm_size
187+
os_disk_size_gb = var.aks_agent_os_disk_size
188+
vnet_subnet_id = data.azurerm_subnet.kubesubnet.id
189+
}
190+
191+
service_principal {
192+
client_id = var.aks_service_principal_app_id
193+
client_secret = var.aks_service_principal_client_secret
194+
}
195+
196+
network_profile {
197+
network_plugin = "azure"
198+
dns_service_ip = var.aks_dns_service_ip
199+
docker_bridge_cidr = var.aks_docker_bridge_cidr
200+
service_cidr = var.aks_service_cidr
201+
}
202+
203+
role_based_access_control {
204+
enabled = var.aks_enable_rbac
205+
}
206+
207+
depends_on = [azurerm_virtual_network.test, azurerm_application_gateway.network]
208+
tags = var.tags
21209
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
terraform {
2+
3+
required_version = ">=0.12"
4+
5+
required_providers {
6+
azurerm = {
7+
source = "hashicorp/azurerm"
8+
version = "~>2.0"
9+
}
10+
}
11+
backend "azurerm" {
12+
resource_group_name = var.resource_group_name
13+
storage_account_name = var.storage_account_name
14+
container_name = "tfstate"
15+
key = "codelab.microsoft.tfstate"
16+
}
17+
}
18+
19+
provider "azurerm" {
20+
features {}
21+
}

0 commit comments

Comments
 (0)