|
1 | 1 | data "google_client_config" "default" {}
|
2 | 2 |
|
3 | 3 | locals {
|
4 |
| - coder_helm_repo = "https://helm.coder.com/v2" |
5 |
| - coder_helm_chart = "coder" |
6 |
| - coder_release_name = "coder-${var.name}" |
7 |
| - coder_namespace = "coder-${var.name}" |
8 |
| - coder_admin_email = "admin@coder.com" |
9 |
| - coder_admin_user = "coder" |
| 4 | + coder_helm_repo = "https://helm.coder.com/v2" |
| 5 | + coder_helm_chart = "coder" |
| 6 | + coder_release_name = "coder-${var.name}" |
| 7 | + coder_namespace = "coder-${var.name}" |
| 8 | + coder_admin_email = "admin@coder.com" |
| 9 | + coder_admin_user = "coder" |
| 10 | + coder_address = "${google_compute_address.coder.address}" |
| 11 | + coder_url = "https://${google_compute_address.coder.address}" |
| 12 | + rebuilt_workspace_image = "gcr.io/coder-dev-1/v2-loadtest/${var.name}/workspace:latest" |
10 | 13 | }
|
11 | 14 |
|
12 | 15 | provider "kubernetes" {
|
@@ -167,7 +170,7 @@ coder:
|
167 | 170 | readOnlyRootFilesystem: true
|
168 | 171 | service:
|
169 | 172 | enable: true
|
170 |
| - loadBalancerIP: "${google_compute_address.coder.address}" |
| 173 | + loadBalancerIP: "${local.coder_address}" |
171 | 174 | tls:
|
172 | 175 | secretNames:
|
173 | 176 | - "${kubernetes_secret.coder-tls.metadata.0.name}"
|
|
200 | 203 |
|
201 | 204 | resource "local_file" "url" {
|
202 | 205 | filename = "${path.module}/coder_url"
|
203 |
| - content = "https://${google_compute_address.coder.address}" |
| 206 | + content = "${local.coder_url}" |
| 207 | +} |
| 208 | + |
| 209 | +# Because we use a self-signed certificate, we need to also rebuild the base image. |
| 210 | +resource "local_file" "workspace_dockerfile" { |
| 211 | + filename = "${path.module}/.coderv2/dockerfile/workspace/Dockerfile" |
| 212 | + content = <<EOF |
| 213 | + FROM ${var.workspace_image} |
| 214 | + USER root |
| 215 | + RUN openssl s_client -connect ${local.coder_address}:443 -servername ${local.coder_url} </dev/null 2>/dev/null |\ |
| 216 | + sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | tee /usr/local/share/ca-certificates/coder.crt && \ |
| 217 | + update-ca-certificates |
| 218 | + USER coder |
| 219 | + EOF |
| 220 | +} |
| 221 | + |
| 222 | +resource "docker_image" "workspace" { |
| 223 | + name = local.rebuilt_workspace_image |
| 224 | + build { |
| 225 | + context = dirname(abspath(local_file.workspace_dockerfile.filename)) |
| 226 | + } |
| 227 | +} |
| 228 | + |
| 229 | +resource "null_resource" "push_workspace_image" { |
| 230 | + depends_on = [ docker_image.workspace ] |
| 231 | + provisioner "local-exec" { |
| 232 | + command = "docker push ${local.rebuilt_workspace_image}" |
| 233 | + } |
204 | 234 | }
|
205 | 235 |
|
206 | 236 | resource "local_file" "kubernetes_template" {
|
@@ -251,7 +281,7 @@ resource "local_file" "kubernetes_template" {
|
251 | 281 | }
|
252 | 282 | container {
|
253 | 283 | name = "dev"
|
254 |
| - image = "gcr.io/coder-dev-1/coder-cian/minimal:ubuntu" |
| 284 | + image = "${local.rebuilt_workspace_image}" |
255 | 285 | image_pull_policy = "Always"
|
256 | 286 | command = ["sh", "-c", coder_agent.main.init_script]
|
257 | 287 | security_context {
|
|
0 commit comments