Skip to content

Commit d371076

Browse files
committed
3 templates
1 parent 9753819 commit d371076

File tree

5 files changed

+200
-38
lines changed

5 files changed

+200
-38
lines changed

scaletest/terraform/action/coder_helm_values.tftpl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ coder:
3434
- name: "CODER_URL"
3535
value: "${access_url}"
3636
- name: "CODER_PROVISIONERD_TAGS"
37-
value: "scope=organization"
37+
value: "scope=organization,deployment=${deployment}"
38+
- name: "CODER_PROVISIONER_DAEMON_NAME"
39+
value: "${deployment}"
3840
- name: "CODER_CONFIG_DIR"
3941
value: "/tmp/config"
4042
%{~ endif ~}

scaletest/terraform/action/coder_templates.tf

Lines changed: 158 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ resource "local_file" "kubernetes_template" {
8585
EOF
8686
}
8787

88-
resource "kubernetes_config_map" "template" {
88+
resource "kubernetes_config_map" "template_primary" {
8989
provider = kubernetes.primary
9090

9191
metadata {
@@ -98,7 +98,7 @@ resource "kubernetes_config_map" "template" {
9898
}
9999
}
100100

101-
resource "kubernetes_job" "push_template" {
101+
resource "kubernetes_job" "push_template_primary" {
102102
provider = kubernetes.primary
103103

104104
metadata {
@@ -137,8 +137,10 @@ resource "kubernetes_job" "push_template" {
137137
"templates",
138138
"push",
139139
"--directory=/home/coder/template",
140+
"--provisioner-tag=scope=organization",
141+
"--provisioner-tag=deployment=primary",
140142
"--yes",
141-
"kubernetes"
143+
"kubernetes-primary"
142144
]
143145
volume_mount {
144146
name = "coder-template"
@@ -149,7 +151,159 @@ resource "kubernetes_job" "push_template" {
149151
volume {
150152
name = "coder-template"
151153
config_map {
152-
name = kubernetes_config_map.template.metadata.0.name
154+
name = kubernetes_config_map.template_primary.metadata.0.name
155+
}
156+
}
157+
restart_policy = "Never"
158+
}
159+
}
160+
}
161+
wait_for_completion = true
162+
}
163+
164+
resource "kubernetes_config_map" "template_europe" {
165+
provider = kubernetes.europe
166+
167+
metadata {
168+
name = "coder-template"
169+
namespace = kubernetes_namespace.coder_europe.metadata.0.name
170+
}
171+
172+
data = {
173+
"main.tf" = local_file.kubernetes_template.content
174+
}
175+
}
176+
177+
resource "kubernetes_job" "push_template_europe" {
178+
provider = kubernetes.europe
179+
180+
metadata {
181+
name = "${var.name}-push-template"
182+
namespace = kubernetes_namespace.coder_europe.metadata.0.name
183+
labels = {
184+
"app.kubernetes.io/name" = "${var.name}-push-template"
185+
}
186+
}
187+
spec {
188+
completions = 1
189+
template {
190+
metadata {}
191+
spec {
192+
affinity {
193+
node_affinity {
194+
required_during_scheduling_ignored_during_execution {
195+
node_selector_term {
196+
match_expressions {
197+
key = "cloud.google.com/gke-nodepool"
198+
operator = "In"
199+
values = ["${google_container_node_pool.node_pool["europe_misc"].name}"]
200+
}
201+
}
202+
}
203+
}
204+
}
205+
container {
206+
name = "cli"
207+
image = "${var.coder_image_repo}:${var.coder_image_tag}"
208+
command = [
209+
"/opt/coder",
210+
"--verbose",
211+
"--url=${local.deployments.primary.url}",
212+
"--token=${trimspace(data.local_file.api_key.content)}",
213+
"templates",
214+
"push",
215+
"--directory=/home/coder/template",
216+
"--provisioner-tag=scope=organization",
217+
"--provisioner-tag=deployment=europe",
218+
"--yes",
219+
"kubernetes-europe"
220+
]
221+
volume_mount {
222+
name = "coder-template"
223+
mount_path = "/home/coder/template/main.tf"
224+
sub_path = "main.tf"
225+
}
226+
}
227+
volume {
228+
name = "coder-template"
229+
config_map {
230+
name = kubernetes_config_map.template_europe.metadata.0.name
231+
}
232+
}
233+
restart_policy = "Never"
234+
}
235+
}
236+
}
237+
wait_for_completion = true
238+
}
239+
240+
resource "kubernetes_config_map" "template_asia" {
241+
provider = kubernetes.asia
242+
243+
metadata {
244+
name = "coder-template"
245+
namespace = kubernetes_namespace.coder_asia.metadata.0.name
246+
}
247+
248+
data = {
249+
"main.tf" = local_file.kubernetes_template.content
250+
}
251+
}
252+
253+
resource "kubernetes_job" "push_template_asia" {
254+
provider = kubernetes.asia
255+
256+
metadata {
257+
name = "${var.name}-push-template"
258+
namespace = kubernetes_namespace.coder_asia.metadata.0.name
259+
labels = {
260+
"app.kubernetes.io/name" = "${var.name}-push-template"
261+
}
262+
}
263+
spec {
264+
completions = 1
265+
template {
266+
metadata {}
267+
spec {
268+
affinity {
269+
node_affinity {
270+
required_during_scheduling_ignored_during_execution {
271+
node_selector_term {
272+
match_expressions {
273+
key = "cloud.google.com/gke-nodepool"
274+
operator = "In"
275+
values = ["${google_container_node_pool.node_pool["asia_misc"].name}"]
276+
}
277+
}
278+
}
279+
}
280+
}
281+
container {
282+
name = "cli"
283+
image = "${var.coder_image_repo}:${var.coder_image_tag}"
284+
command = [
285+
"/opt/coder",
286+
"--verbose",
287+
"--url=${local.deployments.primary.url}",
288+
"--token=${trimspace(data.local_file.api_key.content)}",
289+
"templates",
290+
"push",
291+
"--directory=/home/coder/template",
292+
"--provisioner-tag=scope=organization",
293+
"--provisioner-tag=deployment=asia",
294+
"--yes",
295+
"kubernetes-asia"
296+
]
297+
volume_mount {
298+
name = "coder-template"
299+
mount_path = "/home/coder/template/main.tf"
300+
sub_path = "main.tf"
301+
}
302+
}
303+
volume {
304+
name = "coder-template"
305+
config_map {
306+
name = kubernetes_config_map.template_asia.metadata.0.name
153307
}
154308
}
155309
restart_policy = "Never"

scaletest/terraform/action/k8s_coder_asia.tf

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ resource "helm_release" "coder_asia" {
7070
mem_request = local.scenarios[var.scenario].coder.mem_request,
7171
cpu_limit = local.scenarios[var.scenario].coder.cpu_limit,
7272
mem_limit = local.scenarios[var.scenario].coder.mem_limit,
73+
deployment = "asia",
7374
})]
7475
}
7576

@@ -89,16 +90,17 @@ resource "helm_release" "provisionerd_asia" {
8990
db_secret = null,
9091
ip_address = null,
9192
provisionerd_psk = kubernetes_secret.provisionerd_psk_asia.metadata.0.name,
92-
access_url = local.deployments.primary.url,
93-
node_pool = google_container_node_pool.node_pool["asia_coder"].name,
94-
release_name = local.coder_release_name,
95-
experiments = var.coder_experiments,
96-
image_repo = var.coder_image_repo,
97-
image_tag = var.coder_image_tag,
98-
replicas = local.scenarios[var.scenario].provisionerd.replicas,
99-
cpu_request = local.scenarios[var.scenario].provisionerd.cpu_request,
100-
mem_request = local.scenarios[var.scenario].provisionerd.mem_request,
101-
cpu_limit = local.scenarios[var.scenario].provisionerd.cpu_limit,
102-
mem_limit = local.scenarios[var.scenario].provisionerd.mem_limit,
93+
access_url = local.deployments.primary.url,
94+
node_pool = google_container_node_pool.node_pool["asia_coder"].name,
95+
release_name = local.coder_release_name,
96+
experiments = var.coder_experiments,
97+
image_repo = var.coder_image_repo,
98+
image_tag = var.coder_image_tag,
99+
replicas = local.scenarios[var.scenario].provisionerd.replicas,
100+
cpu_request = local.scenarios[var.scenario].provisionerd.cpu_request,
101+
mem_request = local.scenarios[var.scenario].provisionerd.mem_request,
102+
cpu_limit = local.scenarios[var.scenario].provisionerd.cpu_limit,
103+
mem_limit = local.scenarios[var.scenario].provisionerd.mem_limit,
104+
deployment = "asia",
103105
})]
104106
}

scaletest/terraform/action/k8s_coder_europe.tf

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ resource "helm_release" "coder_europe" {
7070
mem_request = local.scenarios[var.scenario].coder.mem_request,
7171
cpu_limit = local.scenarios[var.scenario].coder.cpu_limit,
7272
mem_limit = local.scenarios[var.scenario].coder.mem_limit,
73+
deployment = "europe",
7374
})]
7475
}
7576

@@ -89,16 +90,17 @@ resource "helm_release" "provisionerd_europe" {
8990
db_secret = null,
9091
ip_address = null,
9192
provisionerd_psk = kubernetes_secret.provisionerd_psk_europe.metadata.0.name,
92-
access_url = local.deployments.primary.url,
93-
node_pool = google_container_node_pool.node_pool["europe_coder"].name,
94-
release_name = local.coder_release_name,
95-
experiments = var.coder_experiments,
96-
image_repo = var.coder_image_repo,
97-
image_tag = var.coder_image_tag,
98-
replicas = local.scenarios[var.scenario].provisionerd.replicas,
99-
cpu_request = local.scenarios[var.scenario].provisionerd.cpu_request,
100-
mem_request = local.scenarios[var.scenario].provisionerd.mem_request,
101-
cpu_limit = local.scenarios[var.scenario].provisionerd.cpu_limit,
102-
mem_limit = local.scenarios[var.scenario].provisionerd.mem_limit,
93+
access_url = local.deployments.primary.url,
94+
node_pool = google_container_node_pool.node_pool["europe_coder"].name,
95+
release_name = local.coder_release_name,
96+
experiments = var.coder_experiments,
97+
image_repo = var.coder_image_repo,
98+
image_tag = var.coder_image_tag,
99+
replicas = local.scenarios[var.scenario].provisionerd.replicas,
100+
cpu_request = local.scenarios[var.scenario].provisionerd.cpu_request,
101+
mem_request = local.scenarios[var.scenario].provisionerd.mem_request,
102+
cpu_limit = local.scenarios[var.scenario].provisionerd.cpu_limit,
103+
mem_limit = local.scenarios[var.scenario].provisionerd.mem_limit,
104+
deployment = "europe",
103105
})]
104106
}

scaletest/terraform/action/k8s_coder_primary.tf

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ resource "helm_release" "coder_primary" {
9090
mem_request = local.scenarios[var.scenario].coder.mem_request,
9191
cpu_limit = local.scenarios[var.scenario].coder.cpu_limit,
9292
mem_limit = local.scenarios[var.scenario].coder.mem_limit,
93+
deployment = "primary",
9394
})]
9495
}
9596

@@ -109,16 +110,17 @@ resource "helm_release" "provisionerd_chart" {
109110
db_secret = null,
110111
ip_address = null,
111112
provisionerd_psk = kubernetes_secret.provisionerd_psk_primary.metadata.0.name,
112-
access_url = local.deployments.primary.url,
113-
node_pool = google_container_node_pool.node_pool["primary_coder"].name,
114-
release_name = local.coder_release_name,
115-
experiments = var.coder_experiments,
116-
image_repo = var.coder_image_repo,
117-
image_tag = var.coder_image_tag,
118-
replicas = local.scenarios[var.scenario].provisionerd.replicas,
119-
cpu_request = local.scenarios[var.scenario].provisionerd.cpu_request,
120-
mem_request = local.scenarios[var.scenario].provisionerd.mem_request,
121-
cpu_limit = local.scenarios[var.scenario].provisionerd.cpu_limit,
122-
mem_limit = local.scenarios[var.scenario].provisionerd.mem_limit,
113+
access_url = local.deployments.primary.url,
114+
node_pool = google_container_node_pool.node_pool["primary_coder"].name,
115+
release_name = local.coder_release_name,
116+
experiments = var.coder_experiments,
117+
image_repo = var.coder_image_repo,
118+
image_tag = var.coder_image_tag,
119+
replicas = local.scenarios[var.scenario].provisionerd.replicas,
120+
cpu_request = local.scenarios[var.scenario].provisionerd.cpu_request,
121+
mem_request = local.scenarios[var.scenario].provisionerd.mem_request,
122+
cpu_limit = local.scenarios[var.scenario].provisionerd.cpu_limit,
123+
mem_limit = local.scenarios[var.scenario].provisionerd.mem_limit,
124+
deployment = "primary",
123125
})]
124126
}

0 commit comments

Comments
 (0)