Skip to content

Commit baec89e

Browse files
committed
[terraform/aks] break out separate node pools for services, regular-workspaces, and headless-workspaces
1 parent 69b7b2a commit baec89e

File tree

2 files changed

+25
-27
lines changed

2 files changed

+25
-27
lines changed

Diff for: install/infra/modules/aks/kubernetes.tf

+25-8
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ resource "azurerm_kubernetes_cluster" "k8s" {
2626
http_application_routing_enabled = false
2727

2828
default_node_pool {
29-
name = local.nodes.0.name
29+
name = "services"
3030
vm_size = local.machine
3131

3232

@@ -38,7 +38,11 @@ resource "azurerm_kubernetes_cluster" "k8s" {
3838
min_count = 1
3939
max_count = 10
4040
orchestrator_version = var.cluster_version
41-
node_labels = local.nodes.0.labels
41+
node_labels = {
42+
"gitpod.io/workload_meta" = true
43+
"gitpod.io/workload_ide" = true
44+
"gitpod.io/workload_workspace_services" = true
45+
}
4246

4347
type = "VirtualMachineScaleSets"
4448
vnet_subnet_id = azurerm_subnet.network.id
@@ -59,18 +63,29 @@ resource "azurerm_kubernetes_cluster" "k8s" {
5963
}
6064
}
6165

62-
resource "azurerm_kubernetes_cluster_node_pool" "pools" {
63-
count = length(local.nodes) - 1
66+
resource "azurerm_kubernetes_cluster_node_pool" "regularws" {
67+
kubernetes_cluster_id = azurerm_kubernetes_cluster.k8s.id
68+
name = "regularws"
69+
vm_size = local.machine
70+
71+
enable_auto_scaling = true
72+
min_count = 1
73+
max_count = 10
74+
orchestrator_version = var.cluster_version
75+
node_labels = { "gitpod.io/workload_workspace_regular" = true }
76+
vnet_subnet_id = azurerm_subnet.network.id
77+
}
6478

79+
resource "azurerm_kubernetes_cluster_node_pool" "headlessws" {
6580
kubernetes_cluster_id = azurerm_kubernetes_cluster.k8s.id
66-
name = local.nodes[count.index + 1].name
81+
name = "headlessws"
6782
vm_size = local.machine
6883

6984
enable_auto_scaling = true
7085
min_count = 1
7186
max_count = 10
7287
orchestrator_version = var.cluster_version
73-
node_labels = local.nodes[count.index + 1].labels
88+
node_labels = { "gitpod.io/workload_workspace_headless" = true }
7489
vnet_subnet_id = azurerm_subnet.network.id
7590
}
7691

@@ -82,7 +97,8 @@ data "azurerm_resources" "k8s" {
8297

8398
depends_on = [
8499
azurerm_kubernetes_cluster.k8s,
85-
azurerm_kubernetes_cluster_node_pool.pools
100+
azurerm_kubernetes_cluster_node_pool.regularws,
101+
azurerm_kubernetes_cluster_node_pool.headlessws,
86102
]
87103
}
88104

@@ -107,7 +123,8 @@ resource "azurerm_network_security_rule" "k8s" {
107123

108124
resource "local_file" "kubeconfig" {
109125
depends_on = [
110-
resource.azurerm_kubernetes_cluster_node_pool.pools,
126+
resource.azurerm_kubernetes_cluster_node_pool.regularws,
127+
resource.azurerm_kubernetes_cluster_node_pool.headlessws,
111128
]
112129
filename = var.kubeconfig
113130
content = azurerm_kubernetes_cluster.k8s.kube_config_raw

Diff for: install/infra/modules/aks/local.tf

-19
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
11
locals {
2-
labels = tomap({
3-
workload_meta : "gitpod.io/workload_meta"
4-
workload_ide : "gitpod.io/workload_ide"
5-
workspace_services : "gitpod.io/workload_workspace_services"
6-
workspace_regular : "gitpod.io/workload_workspace_regular"
7-
workspace_headless : "gitpod.io/workload_workspace_headless"
8-
})
92
dns_enabled = var.domain_name != null
103

114
name_format = join("-", [
@@ -75,16 +68,4 @@ locals {
7568
priority = 4096
7669
}
7770
] : []
78-
nodes = [
79-
{
80-
name = "services"
81-
labels = {
82-
lookup(local.labels, "workload_meta") = true
83-
lookup(local.labels, "workload_ide") = true
84-
lookup(local.labels, "workspace_services") = true
85-
lookup(local.labels, "workspace_regular") = true
86-
lookup(local.labels, "workspace_headless") = true
87-
}
88-
}
89-
]
9071
}

0 commit comments

Comments
 (0)