Skip to content

Commit add8f50

Browse files
committed
make k8s terraform apply somewhat cleanly
1 parent 913599d commit add8f50

File tree

3 files changed

+51
-31
lines changed

3 files changed

+51
-31
lines changed

scaletest/terraform/k8s/coder.tf

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
data "google_client_config" "default" {}
22

33
locals {
4-
coder_access_url = "http://${var.coder_address}"
4+
coder_url = var.coder_access_url == "" ? "http://${var.coder_address}" : var.coder_access_url
55
coder_admin_email = "admin@coder.com"
66
coder_admin_user = "coder"
77
coder_helm_repo = "https://helm.coder.com/v2"
@@ -16,6 +16,9 @@ resource "kubernetes_namespace" "coder_namespace" {
1616
metadata {
1717
name = local.coder_namespace
1818
}
19+
lifecycle {
20+
ignore_changes = [timeouts, wait_for_default_service_account]
21+
}
1922
}
2023

2124
resource "random_password" "provisionerd_psk" {
@@ -31,6 +34,9 @@ resource "kubernetes_secret" "coder-db" {
3134
data = {
3235
url = var.coder_db_url
3336
}
37+
lifecycle {
38+
ignore_changes = [timeouts, wait_for_service_account_token]
39+
}
3440
}
3541

3642
resource "kubernetes_secret" "provisionerd_psk" {
@@ -42,6 +48,9 @@ resource "kubernetes_secret" "provisionerd_psk" {
4248
data = {
4349
psk = random_password.provisionerd_psk.result
4450
}
51+
lifecycle {
52+
ignore_changes = [timeouts, wait_for_service_account_token]
53+
}
4554
}
4655

4756
# OIDC secret needs to be manually provisioned for now.
@@ -96,10 +105,10 @@ coder:
96105
values: ["${local.coder_release_name}"]
97106
env:
98107
- name: "CODER_ACCESS_URL"
99-
value: "${local.coder_access_url}"
108+
value: "${local.coder_url}"
100109
- name: "CODER_CACHE_DIRECTORY"
101110
value: "/tmp/coder"
102-
- name: "CODER_ENABLE_TELEMETRY"
111+
- name: "CODER_TELEMETRY_ENABLE"
103112
value: "false"
104113
- name: "CODER_LOGGING_HUMAN"
105114
value: "/dev/null"
@@ -189,7 +198,7 @@ EOF
189198
]
190199
}
191200

192-
resource "helm_release" "provisionerd_chart" {
201+
resource "helm_release" "provisionerd-chart" {
193202
repository = local.coder_helm_repo
194203
chart = local.provisionerd_helm_chart
195204
name = local.provisionerd_release_name
@@ -217,40 +226,34 @@ coder:
217226
values: ["${local.coder_release_name}"]
218227
env:
219228
- name: "CODER_URL"
220-
value: "${local.coder_access_url}"
229+
value: "${local.coder_url}"
230+
- name: "CODER_VERBOSE"
231+
value: "true"
221232
- name: "CODER_CACHE_DIRECTORY"
222233
value: "/tmp/coder"
223-
- name: "CODER_ENABLE_TELEMETRY"
234+
- name: "CODER_TELEMETRY_ENABLE"
224235
value: "false"
225236
- name: "CODER_LOGGING_HUMAN"
226237
value: "/dev/null"
227238
- name: "CODER_LOGGING_STACKDRIVER"
228239
value: "/dev/stderr"
229-
- name: "CODER_PPROF_ENABLE"
230-
value: "true"
231240
- name: "CODER_PROMETHEUS_ENABLE"
232241
value: "true"
233-
- name: "CODER_VERBOSE"
234-
value: "true"
235242
- name: "CODER_PROVISIONERD_TAGS"
236243
value = "socpe=organization"
237244
image:
238-
repo: ${var.coder_image_repo}
239-
tag: ${var.coder_image_tag}
240-
replicaCount: "${var.coder_replicas}"
245+
repo: ${var.provisionerd_image_repo}
246+
tag: ${var.provisionerd_image_tag}
247+
replicaCount: "${var.provisionerd_replicas}"
241248
resources:
242249
requests:
243-
cpu: "${var.coder_cpu_request}"
244-
memory: "${var.coder_mem_request}"
250+
cpu: "${var.provisionerd_cpu_request}"
251+
memory: "${var.provisionerd_mem_request}"
245252
limits:
246-
cpu: "${var.coder_cpu_limit}"
247-
memory: "${var.coder_mem_limit}"
253+
cpu: "${var.provisionerd_cpu_limit}"
254+
memory: "${var.provisionerd_mem_limit}"
248255
securityContext:
249256
readOnlyRootFilesystem: true
250-
service:
251-
enable: true
252-
sessionAffinity: None
253-
loadBalancerIP: "${var.coder_address}"
254257
volumeMounts:
255258
- mountPath: "/tmp"
256259
name: cache
@@ -353,10 +356,10 @@ resource "local_file" "kubernetes_template" {
353356

354357
resource "local_file" "output_vars" {
355358
filename = "${path.module}/../../.coderv2/url"
356-
content = local.coder_access_url
359+
content = local.coder_url
357360
}
358361

359362
output "coder_url" {
360363
description = "URL of the Coder deployment"
361-
value = local.coder_access_url
364+
value = local.coder_url
362365
}

scaletest/terraform/k8s/prometheus.tf

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ resource "kubernetes_namespace" "prometheus_namespace" {
1414
metadata {
1515
name = local.prometheus_namespace
1616
}
17+
lifecycle {
18+
ignore_changes = [timeouts, wait_for_default_service_account]
19+
}
1720
}
1821

1922
# Create a secret to store the remote write key
@@ -29,6 +32,9 @@ resource "kubernetes_secret" "prometheus-credentials" {
2932
username = var.prometheus_remote_write_user
3033
password = var.prometheus_remote_write_password
3134
}
35+
lifecycle {
36+
ignore_changes = [timeouts, wait_for_service_account_token]
37+
}
3238
}
3339

3440
# Install Prometheus using the Bitnami Prometheus helm chart.
@@ -105,6 +111,9 @@ resource "kubernetes_secret" "prometheus-postgres-password" {
105111
username = var.prometheus_postgres_user
106112
password = var.prometheus_postgres_password
107113
}
114+
lifecycle {
115+
ignore_changes = [timeouts, wait_for_service_account_token]
116+
}
108117
}
109118

110119
# Install Prometheus Postgres exporter helm chart

scaletest/terraform/k8s/vars.tf

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ variable "kubernetes_nodepool_misc" {
2828
}
2929

3030
// These variables control the Coder deployment.
31+
variable "coder_access_url" {
32+
description = "Access URL for the Coder deployment."
33+
}
3134
variable "coder_replicas" {
3235
description = "Number of Coder replicas to provision."
3336
default = 1
@@ -68,12 +71,12 @@ variable "coder_mem_limit" {
6871
// Allow independently scaling provisionerd resources
6972
variable "provisionerd_cpu_request" {
7073
description = "CPU request to allocate to provisionerd."
71-
default = "500m"
74+
default = "100m"
7275
}
7376

7477
variable "provisionerd_mem_request" {
7578
description = "Memory request to allocate to provisionerd."
76-
default = "512Mi"
79+
default = "1Gi"
7780
}
7881

7982
variable "provisionerd_cpu_limit" {
@@ -83,24 +86,29 @@ variable "provisionerd_cpu_limit" {
8386

8487
variable "provisionerd_mem_limit" {
8588
description = "Memory limit to allocate to provisionerd."
86-
default = "1024Mi"
89+
default = "1Gi"
8790
}
8891

8992
variable "provisionerd_replicas" {
9093
description = "Number of Provisionerd replicas."
9194
default = 1
9295
}
9396

94-
variable "provisionerd_concurrency" {
95-
description = "Number of concurrent provisioner jobs per provisionerd instance."
96-
default = 3
97-
}
98-
9997
variable "provisionerd_chart_version" {
10098
description = "Version of the Provisionerd Helm chart to install. Defaults to latest."
10199
default = null
102100
}
103101

102+
variable "provisionerd_image_repo" {
103+
description = "Repository to use for Provisionerd image."
104+
default = "ghcr.io/coder/coder"
105+
}
106+
107+
variable "provisionerd_image_tag" {
108+
description = "Tag to use for Provisionerd image."
109+
default = "latest"
110+
}
111+
104112
variable "coder_chart_version" {
105113
description = "Version of the Coder Helm chart to install. Defaults to latest."
106114
default = null

0 commit comments

Comments
 (0)