5
5
coder_helm_chart = " coder"
6
6
coder_release_name = " coder-${ var . name } "
7
7
coder_namespace = " coder-${ var . name } "
8
+ coder_admin_email = " admin@coder.com"
9
+ coder_admin_user = " coder"
8
10
}
9
11
10
12
provider "kubernetes" {
@@ -45,7 +47,7 @@ resource "kubernetes_secret" "coder-db" {
45
47
namespace = kubernetes_namespace. coder_namespace . metadata . 0 . name
46
48
}
47
49
data = {
48
- url = " postgres://coder:${ urlencode (random_password. coder-postgres-password . result )} @${ google_sql_database_instance . db . private_ip_address } /${ google_sql_database . coder . name } ?sslmode=disable"
50
+ url = " postgres://${ google_sql_user . coder . name } :${ urlencode (random_password. coder-postgres-password . result )} @${ google_sql_database_instance . db . private_ip_address } /${ google_sql_database . coder . name } ?sslmode=disable"
49
51
}
50
52
}
51
53
@@ -71,6 +73,10 @@ resource "tls_self_signed_cert" "coder" {
71
73
" ${ local . coder_release_name } .${ local . coder_namespace } " ,
72
74
" ${ local . coder_release_name } " ,
73
75
]
76
+
77
+ ip_addresses = [
78
+ google_compute_address . coder . address
79
+ ]
74
80
}
75
81
76
82
resource "kubernetes_secret" "coder-tls" {
@@ -108,9 +114,29 @@ resource "helm_release" "coder-chart" {
108
114
]
109
115
values = [<< EOF
110
116
coder:
117
+ affinity:
118
+ nodeAffinity:
119
+ requiredDuringSchedulingIgnoredDuringExecution:
120
+ nodeSelectorTerms:
121
+ - matchExpressions:
122
+ - key: "cloud.google.com/gke-nodepool"
123
+ operator: "In"
124
+ values: ["${ google_container_node_pool . workspaces . name } "]
125
+ podAntiAffinity:
126
+ preferredDuringSchedulingIgnoredDuringExecution:
127
+ - weight: 1
128
+ podAffinityTerm:
129
+ topologyKey: "kubernetes.io/hostname"
130
+ labelSelector:
131
+ matchExpressions:
132
+ - key: "app.kubernetes.io/instance"
133
+ operator: "In"
134
+ values: ["${ local . coder_release_name } "]
111
135
env:
112
136
- name: "CODER_CACHE_DIRECTORY"
113
137
value: "/tmp/coder"
138
+ - name: "CODER_ENABLE_TELEMETRY"
139
+ value: "false"
114
140
- name: "CODER_LOGGING_HUMAN"
115
141
value: "/dev/null"
116
142
- name: "CODER_LOGGING_STACKDRIVER"
@@ -122,6 +148,8 @@ coder:
122
148
key: url
123
149
- name: "CODER_PROMETHEUS_ENABLE"
124
150
value: "true"
151
+ - name: "CODER_TLS_REDIRECT_HTTP_TO_HTTPS"
152
+ value: "true"
125
153
- name: "CODER_VERBOSE"
126
154
value: "true"
127
155
image:
@@ -139,6 +167,7 @@ coder:
139
167
readOnlyRootFilesystem: true
140
168
service:
141
169
enable: true
170
+ loadBalancerIP: "${ google_compute_address . coder . address } "
142
171
tls:
143
172
secretNames:
144
173
- "${ kubernetes_secret . coder-tls . metadata . 0 . name } "
169
198
]
170
199
}
171
200
201
+ resource "local_file" "url" {
202
+ filename = " ${ path . module } /coder_url"
203
+ content = " https://${ google_compute_address . coder . address } "
204
+ }
205
+
172
206
resource "local_file" "kubernetes_template" {
173
207
filename = " ${ path . module } /.coderv2/templates/kubernetes/main.tf"
174
208
content = << EOF
@@ -242,10 +276,10 @@ resource "local_file" "kubernetes_template" {
242
276
affinity {
243
277
node_affinity {
244
278
required_during_scheduling_ignored_during_execution {
245
- node_selector_terms {
279
+ node_selector_term {
246
280
match_expressions {
247
281
key = "cloud.google.com/gke-nodepool"
248
- operator = "in "
282
+ operator = "In "
249
283
values = ["${ google_container_node_pool . workspaces . name } "]
250
284
}
251
285
}
0 commit comments