@@ -21,6 +21,23 @@ variable "number_of_workers" {}
21
21
variable "hypercube_version" {
22
22
default = " v1.3.6_coreos.0"
23
23
}
24
+
25
+ variable "prefix" {
26
+ default = " "
27
+ }
28
+
29
+ variable "size_etcd" {
30
+ default = " 512mb"
31
+ }
32
+
33
+ variable "size_master" {
34
+ default = " 512mb"
35
+ }
36
+
37
+ variable "size_worker" {
38
+ default = " 512mb"
39
+ }
40
+
24
41
# ##############################################################################
25
42
#
26
43
# Specify provider
@@ -42,26 +59,24 @@ provider "digitalocean" {
42
59
43
60
resource "digitalocean_droplet" "k8s_etcd" {
44
61
image = " coreos-stable"
45
- name = " k8s-etcd"
62
+ name = " ${ var . prefix } k8s-etcd"
46
63
region = " ${ var . do_region } "
47
64
private_networking = true
48
- size = " 512mb"
49
- user_data = " ${ file (" 00-etcd.yaml" )} "
50
- ssh_keys = [
51
- " ${ var . ssh_fingerprint } "
52
- ]
65
+ size = " ${ var . size_etcd } "
66
+ user_data = " ${ file (" ${ path . module } /00-etcd.yaml" )} "
67
+ ssh_keys = [" ${ split (" ," , var. ssh_fingerprint )} " ]
53
68
54
69
# Generate the Certificate Authority
55
70
provisioner "local-exec" {
56
71
command = << EOF
57
- $PWD /cfssl/generate_ca.sh
72
+ ${ path . module } /cfssl/generate_ca.sh
58
73
EOF
59
74
}
60
75
61
76
# Generate k8s-etcd server certificate
62
77
provisioner "local-exec" {
63
78
command = << EOF
64
- $PWD /cfssl/generate_server.sh k8s_etcd ${ digitalocean_droplet . k8s_etcd . ipv4_address_private }
79
+ ${ path . module } /cfssl/generate_server.sh k8s_etcd ${ digitalocean_droplet . k8s_etcd . ipv4_address_private }
65
80
EOF
66
81
}
67
82
120
135
121
136
122
137
data "template_file" "master_yaml" {
123
- template = " ${ file (" 01-master.yaml" )} "
138
+ template = " ${ file (" ${ path . module } / 01-master.yaml" )} "
124
139
vars {
125
140
DNS_SERVICE_IP = " 10.3.0.10"
126
141
ETCD_IP = " ${ digitalocean_droplet . k8s_etcd . ipv4_address_private } "
@@ -140,19 +155,17 @@ data "template_file" "master_yaml" {
140
155
141
156
resource "digitalocean_droplet" "k8s_master" {
142
157
image = " coreos-stable"
143
- name = " k8s-master"
158
+ name = " ${ var . prefix } k8s-master"
144
159
region = " ${ var . do_region } "
145
160
private_networking = true
146
- size = " 512mb "
161
+ size = " ${ var . size_master } "
147
162
user_data = " ${ data . template_file . master_yaml . rendered } "
148
- ssh_keys = [
149
- " ${ var . ssh_fingerprint } "
150
- ]
163
+ ssh_keys = [" ${ split (" ," , var. ssh_fingerprint )} " ]
151
164
152
165
# Generate k8s_master server certificate
153
166
provisioner "local-exec" {
154
167
command = << EOF
155
- $PWD /cfssl/generate_server.sh k8s_master "${ digitalocean_droplet . k8s_master . ipv4_address } ,${ digitalocean_droplet . k8s_master . ipv4_address_private } ,10.3.0.1,kubernetes.default,kubernetes"
168
+ ${ path . module } /cfssl/generate_server.sh k8s_master "${ digitalocean_droplet . k8s_master . ipv4_address } ,${ digitalocean_droplet . k8s_master . ipv4_address_private } ,10.3.0.1,kubernetes.default,kubernetes"
156
169
EOF
157
170
}
158
171
182
195
# Generate k8s_master client certificate
183
196
provisioner "local-exec" {
184
197
command = << EOF
185
- $PWD /cfssl/generate_client.sh k8s_master
198
+ ${ path . module } /cfssl/generate_client.sh k8s_master
186
199
EOF
187
200
}
188
201
243
256
244
257
245
258
data "template_file" "worker_yaml" {
246
- template = " ${ file (" 02-worker.yaml" )} "
259
+ template = " ${ file (" ${ path . module } / 02-worker.yaml" )} "
247
260
vars {
248
261
DNS_SERVICE_IP = " 10.3.0.10"
249
262
ETCD_IP = " ${ digitalocean_droplet . k8s_etcd . ipv4_address_private } "
@@ -263,21 +276,19 @@ data "template_file" "worker_yaml" {
263
276
resource "digitalocean_droplet" "k8s_worker" {
264
277
count = " ${ var . number_of_workers } "
265
278
image = " coreos-stable"
266
- name = " ${ format (" k8s-worker-%02d" , count. index + 1 )} "
279
+ name = " ${ var . prefix } ${ format (" k8s-worker-%02d" , count. index + 1 )} "
267
280
region = " ${ var . do_region } "
268
- size = " 512mb "
281
+ size = " ${ var . size_worker } "
269
282
private_networking = true
270
283
user_data = " ${ data . template_file . worker_yaml . rendered } "
271
- ssh_keys = [
272
- " ${ var . ssh_fingerprint } "
273
- ]
284
+ ssh_keys = [" ${ split (" ," , var. ssh_fingerprint )} " ]
274
285
275
286
276
287
277
288
# Generate k8s_worker client certificate
278
289
provisioner "local-exec" {
279
290
command = << EOF
280
- $PWD /cfssl/generate_client.sh k8s_worker
291
+ ${ path . module } /cfssl/generate_client.sh k8s_worker
281
292
EOF
282
293
}
283
294
@@ -343,11 +354,11 @@ resource "null_resource" "make_admin_key" {
343
354
depends_on = [" digitalocean_droplet.k8s_worker" ]
344
355
provisioner "local-exec" {
345
356
command = << EOF
346
- $PWD /cfssl/generate_admin.sh
357
+ ${ path . module } /cfssl/generate_admin.sh
347
358
EOF
348
359
}
349
360
}
350
-
361
+
351
362
resource "null_resource" "setup_kubectl" {
352
363
depends_on = [" null_resource.make_admin_key" ]
353
364
provisioner "local-exec" {
@@ -372,7 +383,7 @@ resource "null_resource" "deploy_dns_addon" {
372
383
provisioner "local-exec" {
373
384
command = << EOF
374
385
until kubectl get pods 2>/dev/null; do printf '.'; sleep 5; done
375
- kubectl create -f 03-dns-addon.yaml
386
+ kubectl create -f ${ path . module } / 03-dns-addon.yaml
376
387
EOF
377
388
}
378
389
}
@@ -381,7 +392,7 @@ resource "null_resource" "deploy_microbot" {
381
392
depends_on = [" null_resource.setup_kubectl" ]
382
393
provisioner "local-exec" {
383
394
command = << EOF
384
- sed -e "s/\$EXT_IP1/${ digitalocean_droplet . k8s_worker . 0 . ipv4_address } /" < 04-microbot.yaml > ./secrets/04-microbot.rendered.yaml
395
+ sed -e "s/\$EXT_IP1/${ digitalocean_droplet . k8s_worker . 0 . ipv4_address } /" < ${ path . module } / 04-microbot.yaml > ./secrets/04-microbot.rendered.yaml
385
396
until kubectl get pods 2>/dev/null; do printf '.'; sleep 5; done
386
397
kubectl create -f ./secrets/04-microbot.rendered.yaml
387
398
0 commit comments