Skip to content

Commit 2751240

Browse files
committed
scenarios
1 parent 186d316 commit 2751240

File tree

8 files changed

+78
-156
lines changed

8 files changed

+78
-156
lines changed

scaletest/terraform/action/deployments.tf

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,37 @@ locals {
2222
cidr = "10.202.0.0/24"
2323
}
2424
}
25+
26+
scenarios = {
27+
small = {
28+
coder = {
29+
nodepool_size = 1
30+
machine_type = "t2d-standard-4"
31+
replicas = 1
32+
cpu_request = "1000m"
33+
mem_request = "6Gi"
34+
cpu_limit = "2000m"
35+
mem_limit = "12Gi"
36+
}
37+
provisionerd = {
38+
replicas = 1
39+
cpu_request = "100m"
40+
mem_request = "1Gi"
41+
cpu_limit = "1000m"
42+
mem_limit = "1Gi"
43+
}
44+
workspaces = {
45+
nodepool_size = 1
46+
machine_type = "t2d-standard-4"
47+
cpu_request = "100m"
48+
mem_request = "128Mi"
49+
cpu_limit = "100m"
50+
mem_limit = "128Mi"
51+
}
52+
cloudsql = {
53+
tier = "db-f1-micro"
54+
replicas = 1
55+
}
56+
}
57+
}
2558
}

scaletest/terraform/action/gcp_clusters.tf

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,47 +8,38 @@ locals {
88
primary_coder = {
99
name = "coder"
1010
cluster = "primary"
11-
size = 1
1211
}
1312
primary_workspaces = {
1413
name = "workspaces"
1514
cluster = "primary"
16-
size = 1
1715
}
1816
primary_misc = {
1917
name = "misc"
2018
cluster = "primary"
21-
size = 1
2219
}
2320
europe_coder = {
2421
name = "coder"
2522
cluster = "europe"
26-
size = 1
2723
}
2824
europe_workspaces = {
2925
name = "workspaces"
3026
cluster = "europe"
31-
size = 1
3227
}
3328
europe_misc = {
3429
name = "misc"
3530
cluster = "europe"
36-
size = 1
3731
}
3832
asia_coder = {
3933
name = "coder"
4034
cluster = "asia"
41-
size = 1
4235
}
4336
asia_workspaces = {
4437
name = "workspaces"
4538
cluster = "asia"
46-
size = 1
4739
}
4840
asia_misc = {
4941
name = "misc"
5042
cluster = "asia"
51-
size = 1
5243
}
5344
}
5445
}
@@ -104,10 +95,7 @@ resource "google_container_node_pool" "node_pool" {
10495
location = local.deployments[each.value.cluster].zone
10596
project = var.project_id
10697
cluster = google_container_cluster.cluster[each.value.cluster].name
107-
autoscaling {
108-
min_node_count = 1
109-
max_node_count = each.value.size
110-
}
98+
node_count = local.scenarios[var.scenario][each.value.name].nodepool_size
11199
node_config {
112100
oauth_scopes = [
113101
"https://www.googleapis.com/auth/logging.write",
@@ -117,10 +105,9 @@ resource "google_container_node_pool" "node_pool" {
117105
"https://www.googleapis.com/auth/service.management.readonly",
118106
"https://www.googleapis.com/auth/servicecontrol",
119107
]
120-
disk_size_gb = var.node_disk_size_gb
121-
machine_type = var.nodepool_machine_type_coder
122-
image_type = var.node_image_type
123-
preemptible = var.node_preemptible
108+
disk_size_gb = 100
109+
machine_type = local.scenarios[var.scenario][each.value.name].machine_type
110+
image_type = "cos_containerd"
124111
service_account = data.google_compute_default_service_account.default.email
125112
tags = ["gke-node", "${var.project_id}-gke"]
126113
labels = {

scaletest/terraform/action/gcp_db.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ resource "google_sql_database_instance" "db" {
22
name = "${var.name}-coder"
33
project = var.project_id
44
region = local.deployments.primary.region
5-
database_version = var.cloudsql_version
5+
database_version = "POSTGRES_14"
66
deletion_protection = false
77

88
depends_on = [google_service_networking_connection.private_vpc_connection]
99

1010
settings {
11-
tier = var.cloudsql_tier
11+
tier = local.scenarios[var.scenario].cloudsql.tier
1212
activation_policy = "ALWAYS"
1313
availability_type = "ZONAL"
1414

@@ -18,7 +18,7 @@ resource "google_sql_database_instance" "db" {
1818

1919
database_flags {
2020
name = "max_connections"
21-
value = var.cloudsql_max_connections
21+
value = local.scenarios[var.scenario].cloudsql.max_connections
2222
}
2323

2424
ip_configuration {

scaletest/terraform/action/k8s_coder_asia.tf

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,14 @@ coder:
113113
image:
114114
repo: ${var.coder_image_repo}
115115
tag: ${var.coder_image_tag}
116-
replicaCount: "${var.coder_replicas}"
116+
replicaCount: "${local.scenarios[var.scenario].coder.replicas}"
117117
resources:
118118
requests:
119-
cpu: "${var.coder_cpu_request}"
120-
memory: "${var.coder_mem_request}"
119+
cpu: "${local.scenarios[var.scenario].coder.cpu_request}"
120+
memory: "${local.scenarios[var.scenario].coder.mem_request}"
121121
limits:
122-
cpu: "${var.coder_cpu_limit}"
123-
memory: "${var.coder_mem_limit}"
122+
cpu: "${local.scenarios[var.scenario].coder.cpu_limit}"
123+
memory: "${local.scenarios[var.scenario].coder.mem_limit}"
124124
securityContext:
125125
readOnlyRootFilesystem: true
126126
service:
@@ -189,14 +189,14 @@ coder:
189189
image:
190190
repo: ${var.provisionerd_image_repo}
191191
tag: ${var.provisionerd_image_tag}
192-
replicaCount: "${var.provisionerd_replicas}"
192+
replicaCount: "${local.scenarios[var.scenario].provisionerd.replicas}"
193193
resources:
194194
requests:
195-
cpu: "${var.provisionerd_cpu_request}"
196-
memory: "${var.provisionerd_mem_request}"
195+
cpu: "${local.scenarios[var.scenario].provisionerd.request}"
196+
memory: "${local.scenarios[var.scenario].provisionerd.mem_request}"
197197
limits:
198-
cpu: "${var.provisionerd_cpu_limit}"
199-
memory: "${var.provisionerd_mem_limit}"
198+
cpu: "${local.scenarios[var.scenario].provisionerd.cpu_limit}"
199+
memory: "${local.scenarios[var.scenario].provisionerd.mem_limit}"
200200
securityContext:
201201
readOnlyRootFilesystem: true
202202
volumeMounts:

scaletest/terraform/action/k8s_coder_europe.tf

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,14 @@ coder:
113113
image:
114114
repo: ${var.coder_image_repo}
115115
tag: ${var.coder_image_tag}
116-
replicaCount: "${var.coder_replicas}"
116+
replicaCount: "${local.scenarios[var.scenario].coder.replicas}"
117117
resources:
118118
requests:
119-
cpu: "${var.coder_cpu_request}"
120-
memory: "${var.coder_mem_request}"
119+
cpu: "${local.scenarios[var.scenario].coder.cpu_request}"
120+
memory: "${local.scenarios[var.scenario].coder.mem_request}"
121121
limits:
122-
cpu: "${var.coder_cpu_limit}"
123-
memory: "${var.coder_mem_limit}"
122+
cpu: "${local.scenarios[var.scenario].coder.cpu_limit}"
123+
memory: "${local.scenarios[var.scenario].coder.mem_limit}"
124124
securityContext:
125125
readOnlyRootFilesystem: true
126126
service:
@@ -189,14 +189,14 @@ coder:
189189
image:
190190
repo: ${var.provisionerd_image_repo}
191191
tag: ${var.provisionerd_image_tag}
192-
replicaCount: "${var.provisionerd_replicas}"
192+
replicaCount: "${local.scenarios[var.scenario].provisionerd.replicas}"
193193
resources:
194194
requests:
195-
cpu: "${var.provisionerd_cpu_request}"
196-
memory: "${var.provisionerd_mem_request}"
195+
cpu: "${local.scenarios[var.scenario].provisionerd.request}"
196+
memory: "${local.scenarios[var.scenario].provisionerd.mem_request}"
197197
limits:
198-
cpu: "${var.provisionerd_cpu_limit}"
199-
memory: "${var.provisionerd_mem_limit}"
198+
cpu: "${local.scenarios[var.scenario].provisionerd.cpu_limit}"
199+
memory: "${local.scenarios[var.scenario].provisionerd.mem_limit}"
200200
securityContext:
201201
readOnlyRootFilesystem: true
202202
volumeMounts:

scaletest/terraform/action/k8s_coder_primary.tf

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -130,14 +130,14 @@ coder:
130130
image:
131131
repo: ${var.coder_image_repo}
132132
tag: ${var.coder_image_tag}
133-
replicaCount: "${var.coder_replicas}"
133+
replicaCount: "${local.scenarios[var.scenario].coder.replicas}"
134134
resources:
135135
requests:
136-
cpu: "${var.coder_cpu_request}"
137-
memory: "${var.coder_mem_request}"
136+
cpu: "${local.scenarios[var.scenario].coder.cpu_request}"
137+
memory: "${local.scenarios[var.scenario].coder.mem_request}"
138138
limits:
139-
cpu: "${var.coder_cpu_limit}"
140-
memory: "${var.coder_mem_limit}"
139+
cpu: "${local.scenarios[var.scenario].coder.cpu_limit}"
140+
memory: "${local.scenarios[var.scenario].coder.mem_limit}"
141141
securityContext:
142142
readOnlyRootFilesystem: true
143143
service:
@@ -206,14 +206,14 @@ coder:
206206
image:
207207
repo: ${var.provisionerd_image_repo}
208208
tag: ${var.provisionerd_image_tag}
209-
replicaCount: "${var.provisionerd_replicas}"
209+
replicaCount: "${local.scenarios[var.scenario].provisionerd.replicas}"
210210
resources:
211211
requests:
212-
cpu: "${var.provisionerd_cpu_request}"
213-
memory: "${var.provisionerd_mem_request}"
212+
cpu: "${local.scenarios[var.scenario].provisionerd.request}"
213+
memory: "${local.scenarios[var.scenario].provisionerd.mem_request}"
214214
limits:
215-
cpu: "${var.provisionerd_cpu_limit}"
216-
memory: "${var.provisionerd_mem_limit}"
215+
cpu: "${local.scenarios[var.scenario].provisionerd.cpu_limit}"
216+
memory: "${local.scenarios[var.scenario].provisionerd.mem_limit}"
217217
securityContext:
218218
readOnlyRootFilesystem: true
219219
volumeMounts:

scaletest/terraform/action/vars.tf

Lines changed: 8 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@ variable "name" {
22
description = "The name all resources will be prefixed with"
33
}
44

5+
variable "scenario" {
6+
description = "The scenario to deploy"
7+
validation {
8+
condition = contains(["small", "medium", "large"], var.scenario)
9+
error_message = "Scenario must be one of small, medium, or large"
10+
}
11+
}
12+
513
// GCP
614
variable "project_id" {
715
description = "The project in which to provision resources"
@@ -12,41 +20,6 @@ variable "k8s_version" {
1220
default = "1.24"
1321
}
1422

15-
variable "node_disk_size_gb" {
16-
description = "Size of the root disk for cluster nodes."
17-
default = 100
18-
}
19-
20-
variable "node_image_type" {
21-
description = "Image type to use for cluster nodes."
22-
default = "cos_containerd"
23-
}
24-
25-
variable "node_preemptible" {
26-
description = "Use preemptible nodes."
27-
default = false
28-
}
29-
30-
variable "nodepool_machine_type_coder" {
31-
description = "Machine type to use for Coder control plane nodepool."
32-
default = "t2d-standard-4"
33-
}
34-
35-
variable "cloudsql_version" {
36-
description = "CloudSQL version to provision"
37-
default = "POSTGRES_14"
38-
}
39-
40-
variable "cloudsql_tier" {
41-
description = "CloudSQL database tier."
42-
default = "db-f1-micro"
43-
}
44-
45-
variable "cloudsql_max_connections" {
46-
description = "CloudSQL database max_connections"
47-
default = 500
48-
}
49-
5023
// Cloudflare
5124
variable "cloudflare_api_token" {
5225
description = "Cloudflare API token."
@@ -87,31 +60,6 @@ variable "coder_image_repo" {
8760
default = "ghcr.io/coder/coder"
8861
}
8962

90-
variable "coder_replicas" {
91-
description = "Number of Coder replicas to provision."
92-
default = 1
93-
}
94-
95-
variable "coder_cpu_request" {
96-
description = "CPU request to allocate to Coder."
97-
default = "500m"
98-
}
99-
100-
variable "coder_mem_request" {
101-
description = "Memory request to allocate to Coder."
102-
default = "512Mi"
103-
}
104-
105-
variable "coder_cpu_limit" {
106-
description = "CPU limit to allocate to Coder."
107-
default = "1000m"
108-
}
109-
110-
variable "coder_mem_limit" {
111-
description = "Memory limit to allocate to Coder."
112-
default = "1024Mi"
113-
}
114-
11563
variable "coder_experiments" {
11664
description = "Coder Experiments to enable."
11765
default = ""
@@ -123,52 +71,6 @@ variable "workspace_image" {
12371
default = "docker.io/codercom/enterprise-minimal:ubuntu"
12472
}
12573

126-
variable "workspace_cpu_request" {
127-
description = "CPU request to allocate to workspaces."
128-
default = "100m"
129-
}
130-
131-
variable "workspace_cpu_limit" {
132-
description = "CPU limit to allocate to workspaces."
133-
default = "100m"
134-
}
135-
136-
variable "workspace_mem_request" {
137-
description = "Memory request to allocate to workspaces."
138-
default = "128Mi"
139-
}
140-
141-
variable "workspace_mem_limit" {
142-
description = "Memory limit to allocate to workspaces."
143-
default = "128Mi"
144-
}
145-
146-
// Provisioners
147-
variable "provisionerd_cpu_request" {
148-
description = "CPU request to allocate to provisionerd."
149-
default = "100m"
150-
}
151-
152-
variable "provisionerd_mem_request" {
153-
description = "Memory request to allocate to provisionerd."
154-
default = "1Gi"
155-
}
156-
157-
variable "provisionerd_cpu_limit" {
158-
description = "CPU limit to allocate to provisionerd."
159-
default = "1000m"
160-
}
161-
162-
variable "provisionerd_mem_limit" {
163-
description = "Memory limit to allocate to provisionerd."
164-
default = "1Gi"
165-
}
166-
167-
variable "provisionerd_replicas" {
168-
description = "Number of Provisionerd replicas."
169-
default = 1
170-
}
171-
17274
variable "provisionerd_chart_version" {
17375
description = "Version of the Provisionerd Helm chart to install. Defaults to latest."
17476
default = null

0 commit comments

Comments
 (0)