Skip to content

Commit 769b5d3

Browse files
committed
tpl
1 parent 5385e88 commit 769b5d3

File tree

4 files changed

+225
-447
lines changed

4 files changed

+225
-447
lines changed
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
coder:
2+
workspaceProxy: ${workspace_proxy}
3+
affinity:
4+
nodeAffinity:
5+
requiredDuringSchedulingIgnoredDuringExecution:
6+
nodeSelectorTerms:
7+
- matchExpressions:
8+
- key: "cloud.google.com/gke-nodepool"
9+
operator: "In"
10+
values: ["${node_pool}"]
11+
podAntiAffinity:
12+
preferredDuringSchedulingIgnoredDuringExecution:
13+
- weight: 1
14+
podAffinityTerm:
15+
topologyKey: "kubernetes.io/hostname"
16+
labelSelector:
17+
matchExpressions:
18+
- key: "app.kubernetes.io/instance"
19+
operator: "In"
20+
values: ["${release_name}"]
21+
env:
22+
%{~ if workspace_proxy ~}
23+
- name: "CODER_ACCESS_URL"
24+
value: "${access_url}"
25+
- name: CODER_PRIMARY_ACCESS_URL
26+
value: "${primary_url}"
27+
- name: CODER_PROXY_SESSION_TOKEN
28+
valueFrom:
29+
secretKeyRef:
30+
key: token
31+
name: "${proxy_token}"
32+
%{~ endif ~}
33+
%{~ if provisionerd ~}
34+
- name: "CODER_URL"
35+
value: "${access_url}"
36+
- name: "CODER_PROVISIONERD_TAGS"
37+
value: "scope=organization"
38+
- name: "CODER_CONFIG_DIR"
39+
value: "/tmp/config"
40+
%{~ endif ~}
41+
%{~ if !workspace_proxy && !provisionerd ~}
42+
- name: "CODER_ACCESS_URL"
43+
value: "${access_url}"
44+
- name: "CODER_PG_CONNECTION_URL"
45+
valueFrom:
46+
secretKeyRef:
47+
name: "${db_secret}"
48+
key: url
49+
- name: "CODER_PROVISIONER_DAEMONS"
50+
value: "0"
51+
- name: CODER_PROVISIONER_DAEMON_PSK
52+
valueFrom:
53+
secretKeyRef:
54+
key: psk
55+
name: "${provisionerd_psk}"
56+
- name: "CODER_PROMETHEUS_COLLECT_AGENT_STATS"
57+
value: "true"
58+
- name: "CODER_PROMETHEUS_COLLECT_DB_METRICS"
59+
value: "true"
60+
- name: "CODER_PPROF_ENABLE"
61+
value: "true"
62+
%{~ endif ~}
63+
- name: "CODER_CACHE_DIRECTORY"
64+
value: "/tmp/coder"
65+
- name: "CODER_TELEMETRY_ENABLE"
66+
value: "false"
67+
- name: "CODER_LOGGING_HUMAN"
68+
value: "/dev/null"
69+
- name: "CODER_LOGGING_STACKDRIVER"
70+
value: "/dev/stderr"
71+
- name: "CODER_PROMETHEUS_ENABLE"
72+
value: "true"
73+
- name: "CODER_VERBOSE"
74+
value: "true"
75+
- name: "CODER_EXPERIMENTS"
76+
value: "${experiments}"
77+
- name: "CODER_DANGEROUS_DISABLE_RATE_LIMITS"
78+
value: "true"
79+
image:
80+
repo: ${image_repo}
81+
tag: ${image_tag}
82+
replicaCount: "${replicas}"
83+
resources:
84+
requests:
85+
cpu: "${cpu_request}"
86+
memory: "${mem_request}"
87+
limits:
88+
cpu: "${cpu_limit}"
89+
memory: "${mem_limit}"
90+
securityContext:
91+
readOnlyRootFilesystem: true
92+
%{~ if !provisionerd ~}
93+
service:
94+
enable: true
95+
sessionAffinity: None
96+
loadBalancerIP: "${ip_address}"
97+
%{~ endif ~}
98+
volumeMounts:
99+
- mountPath: "/tmp"
100+
name: cache
101+
readOnly: false
102+
volumes:
103+
- emptyDir:
104+
sizeLimit: 1024Mi
105+
name: cache

scaletest/terraform/action/k8s_coder_asia.tf

Lines changed: 40 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -51,94 +51,26 @@ resource "helm_release" "coder_asia" {
5151
name = local.coder_release_name
5252
version = var.coder_chart_version
5353
namespace = kubernetes_namespace.coder_asia.metadata.0.name
54-
values = [<<EOF
55-
coder:
56-
workspaceProxy: true
57-
affinity:
58-
nodeAffinity:
59-
requiredDuringSchedulingIgnoredDuringExecution:
60-
nodeSelectorTerms:
61-
- matchExpressions:
62-
- key: "cloud.google.com/gke-nodepool"
63-
operator: "In"
64-
values: ["${google_container_node_pool.node_pool["asia_coder"].name}"]
65-
podAntiAffinity:
66-
preferredDuringSchedulingIgnoredDuringExecution:
67-
- weight: 1
68-
podAffinityTerm:
69-
topologyKey: "kubernetes.io/hostname"
70-
labelSelector:
71-
matchExpressions:
72-
- key: "app.kubernetes.io/instance"
73-
operator: "In"
74-
values: ["${local.coder_release_name}"]
75-
env:
76-
- name: CODER_PRIMARY_ACCESS_URL
77-
value: "${local.deployments.primary.url}"
78-
- name: CODER_PROXY_SESSION_TOKEN
79-
valueFrom:
80-
secretKeyRef:
81-
key: token
82-
name: "${kubernetes_secret.proxy_token_asia.metadata.0.name}"
83-
- name: "CODER_ACCESS_URL"
84-
value: "${local.deployments.asia.url}"
85-
- name: "CODER_CACHE_DIRECTORY"
86-
value: "/tmp/coder"
87-
- name: "CODER_TELEMETRY_ENABLE"
88-
value: "false"
89-
- name: "CODER_LOGGING_HUMAN"
90-
value: "/dev/null"
91-
- name: "CODER_LOGGING_STACKDRIVER"
92-
value: "/dev/stderr"
93-
- name: "CODER_PPROF_ENABLE"
94-
value: "true"
95-
- name: "CODER_PROMETHEUS_ENABLE"
96-
value: "true"
97-
- name: "CODER_PROMETHEUS_COLLECT_AGENT_STATS"
98-
value: "true"
99-
- name: "CODER_PROMETHEUS_COLLECT_DB_METRICS"
100-
value: "true"
101-
- name: "CODER_VERBOSE"
102-
value: "true"
103-
- name: "CODER_EXPERIMENTS"
104-
value: "${var.coder_experiments}"
105-
- name: "CODER_DANGEROUS_DISABLE_RATE_LIMITS"
106-
value: "true"
107-
# Disabling built-in provisioner daemons
108-
- name: "CODER_PROVISIONER_DAEMONS"
109-
value: "0"
110-
- name: CODER_PROVISIONER_DAEMON_PSK
111-
valueFrom:
112-
secretKeyRef:
113-
key: psk
114-
name: "${kubernetes_secret.provisionerd_psk_asia.metadata.0.name}"
115-
image:
116-
repo: ${var.coder_image_repo}
117-
tag: ${var.coder_image_tag}
118-
replicaCount: "${local.scenarios[var.scenario].coder.replicas}"
119-
resources:
120-
requests:
121-
cpu: "${local.scenarios[var.scenario].coder.cpu_request}"
122-
memory: "${local.scenarios[var.scenario].coder.mem_request}"
123-
limits:
124-
cpu: "${local.scenarios[var.scenario].coder.cpu_limit}"
125-
memory: "${local.scenarios[var.scenario].coder.mem_limit}"
126-
securityContext:
127-
readOnlyRootFilesystem: true
128-
service:
129-
enable: true
130-
sessionAffinity: None
131-
loadBalancerIP: "${google_compute_address.coder["asia"].address}"
132-
volumeMounts:
133-
- mountPath: "/tmp"
134-
name: cache
135-
readOnly: false
136-
volumes:
137-
- emptyDir:
138-
sizeLimit: 1024Mi
139-
name: cache
140-
EOF
141-
]
54+
values = [templatefile("${path.module}/coder_helm_values.tftpl", {
55+
workspace_proxy = true,
56+
provisionerd = false,
57+
primary_url = local.deployments.primary.url,
58+
proxy_token = kubernetes_secret.proxy_token_asia.metadata.0.name,
59+
db_secret = null,
60+
ip_address = google_compute_address.coder["asia"].address,
61+
provisionerd_psk = null,
62+
access_url = local.deployments.asia.url,
63+
node_pool = google_container_node_pool.node_pool["asia_coder"].name,
64+
release_name = local.coder_release_name,
65+
experiments = var.coder_experiments,
66+
image_repo = var.coder_image_repo,
67+
image_tag = var.coder_image_tag,
68+
replicas = local.scenarios[var.scenario].coder.replicas,
69+
cpu_request = local.scenarios[var.scenario].coder.cpu_request,
70+
mem_request = local.scenarios[var.scenario].coder.mem_request,
71+
cpu_limit = local.scenarios[var.scenario].coder.cpu_limit,
72+
mem_limit = local.scenarios[var.scenario].coder.mem_limit,
73+
})]
14274
}
14375

14476
resource "helm_release" "provisionerd_asia" {
@@ -149,66 +81,24 @@ resource "helm_release" "provisionerd_asia" {
14981
name = local.provisionerd_release_name
15082
version = var.provisionerd_chart_version
15183
namespace = kubernetes_namespace.coder_asia.metadata.0.name
152-
values = [<<EOF
153-
coder:
154-
affinity:
155-
nodeAffinity:
156-
requiredDuringSchedulingIgnoredDuringExecution:
157-
nodeSelectorTerms:
158-
- matchExpressions:
159-
- key: "cloud.google.com/gke-nodepool"
160-
operator: "In"
161-
values: ["${google_container_node_pool.node_pool["asia_coder"].name}"]
162-
podAntiAffinity:
163-
preferredDuringSchedulingIgnoredDuringExecution:
164-
- weight: 1
165-
podAffinityTerm:
166-
topologyKey: "kubernetes.io/hostname"
167-
labelSelector:
168-
matchExpressions:
169-
- key: "app.kubernetes.io/instance"
170-
operator: "In"
171-
values: ["${local.coder_release_name}"]
172-
env:
173-
- name: "CODER_URL"
174-
value: "${local.deployments.primary.url}"
175-
- name: "CODER_VERBOSE"
176-
value: "true"
177-
- name: "CODER_CONFIG_DIR"
178-
value: "/tmp/config"
179-
- name: "CODER_CACHE_DIRECTORY"
180-
value: "/tmp/coder"
181-
- name: "CODER_TELEMETRY_ENABLE"
182-
value: "false"
183-
- name: "CODER_LOGGING_HUMAN"
184-
value: "/dev/null"
185-
- name: "CODER_LOGGING_STACKDRIVER"
186-
value: "/dev/stderr"
187-
- name: "CODER_PROMETHEUS_ENABLE"
188-
value: "true"
189-
- name: "CODER_PROVISIONERD_TAGS"
190-
value: "scope=organization"
191-
image:
192-
repo: ${var.provisionerd_image_repo}
193-
tag: ${var.provisionerd_image_tag}
194-
replicaCount: "${local.scenarios[var.scenario].provisionerd.replicas}"
195-
resources:
196-
requests:
197-
cpu: "${local.scenarios[var.scenario].provisionerd.cpu_request}"
198-
memory: "${local.scenarios[var.scenario].provisionerd.mem_request}"
199-
limits:
200-
cpu: "${local.scenarios[var.scenario].provisionerd.cpu_limit}"
201-
memory: "${local.scenarios[var.scenario].provisionerd.mem_limit}"
202-
securityContext:
203-
readOnlyRootFilesystem: true
204-
volumeMounts:
205-
- mountPath: "/tmp"
206-
name: cache
207-
readOnly: false
208-
volumes:
209-
- emptyDir:
210-
sizeLimit: 1024Mi
211-
name: cache
212-
EOF
213-
]
84+
values = [templatefile("${path.module}/coder_helm_values.tftpl", {
85+
workspace_proxy = false,
86+
provisionerd = true,
87+
primary_url = null,
88+
proxy_token = null,
89+
db_secret = null,
90+
ip_address = null,
91+
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,
103+
})]
214104
}

0 commit comments

Comments
 (0)