Skip to content

Commit 3a3509b

Browse files
committed
add inline kubernetes template
1 parent 13ca9e4 commit 3a3509b

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed

scaletest/terraform/coder.tf

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,3 +167,106 @@ coder:
167167
EOF
168168
]
169169
}
170+
171+
resource "local_file" "kubernetes_template" {
172+
filename = "${path.module}/templates/kubernetes/main.tf"
173+
content = <<EOF
174+
terraform {
175+
required_providers {
176+
coder = {
177+
source = "coder/coder"
178+
version = "~> 0.7.0"
179+
}
180+
kubernetes = {
181+
source = "hashicorp/kubernetes"
182+
version = "~> 2.18"
183+
}
184+
}
185+
}
186+
187+
provider "coder" {}
188+
189+
provider "kubernetes" {
190+
config_path = null # always use host
191+
}
192+
193+
data "coder_workspace" "me" {}
194+
195+
resource "coder_agent" "main" {
196+
os = "linux"
197+
arch = "amd64"
198+
startup_script_timeout = 180
199+
startup_script = ""
200+
}
201+
202+
resource "kubernetes_pod" "main" {
203+
count = data.coder_workspace.me.start_count
204+
metadata {
205+
name = "coder-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}"
206+
namespace = var.namespace
207+
labels = {
208+
"app.kubernetes.io/name" = "coder-workspace"
209+
"app.kubernetes.io/instance" = "coder-workspace-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}"
210+
}
211+
}
212+
spec {
213+
security_context {
214+
run_as_user = "1000"
215+
fs_group = "1000"
216+
}
217+
container {
218+
name = "dev"
219+
image = "gcr.io/coder-dev-1/coder-cian/minimal:ubuntu"
220+
image_pull_policy = "Always"
221+
command = ["sh", "-c", coder_agent.main.init_script]
222+
security_context {
223+
run_as_user = "1000"
224+
}
225+
env {
226+
name = "CODER_AGENT_TOKEN"
227+
value = coder_agent.main.token
228+
}
229+
resources {
230+
requests = {
231+
"cpu" = "1"
232+
"memory" = "1Gi"
233+
}
234+
limits = {
235+
"cpu" = "1"
236+
"memory" = "1Gi"
237+
}
238+
}
239+
}
240+
241+
affinity {
242+
node_affinity {
243+
required_during_scheduling_ignored_during_execution {
244+
node_selector_terms {
245+
match_expressions {
246+
key = "cloud.google.com/gke-nodepool"
247+
operator = "in"
248+
values = ["${google_container_node_pool.workspaces.name}"]
249+
}
250+
}
251+
}
252+
}
253+
pod_affinity {
254+
preferred_during_scheduling_ignored_during_execution {
255+
weight = 1
256+
pod_affinity_term {
257+
topology_key = "kubernetes.io/hostname"
258+
label_selector {
259+
match_expressions {
260+
key = "app.kubernetes.io/name"
261+
operator = "In"
262+
values = ["coder-workspace"]
263+
}
264+
}
265+
}
266+
}
267+
}
268+
}
269+
}
270+
}
271+
EOF
272+
}

0 commit comments

Comments
 (0)