-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinfra.tf
58 lines (48 loc) · 1.62 KB
/
infra.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
data "atlas_artifact" "base" {
name = "${var.packer_image}"
type = "digitalocean.image"
version = "${var.version}"
}
resource "digitalocean_droplet" "master" {
name = "${terraform.env}-manager-0"
image = "${element(split(":", data.atlas_artifact.base.id), 1)}"
region = "sfo2"
size = "s-1vcpu-3gb"
private_networking = true
resize_disk = false
user_data = "${file("./prov-master.sh")}"
ssh_keys = ["${var.ssh_keys}"]
}
output "sshmaster" {
value = "root@${digitalocean_droplet.master.ipv4_address}"
}
resource "digitalocean_droplet" "manager" {
ssh_keys = ["${var.ssh_keys}"]
count = "${var.swarm_managers}"
name = "${terraform.env}-manager-${count.index + 1}"
image = "${element(split(":", data.atlas_artifact.base.id), 1)}"
region = "sfo2"
size = "s-1vcpu-3gb"
private_networking = true
resize_disk = false
user_data = <<EOF
#!/bin/bash
export SWARM_TOKEN=$(curl -s http://${digitalocean_droplet.master.ipv4_address_private}:8000/manager)
docker swarm join --token $SWARM_TOKEN ${digitalocean_droplet.master.ipv4_address_private}:2377
EOF
}
resource "digitalocean_droplet" "worker" {
ssh_keys = ["${var.ssh_keys}"]
count = "${var.swarm_workers}"
name = "${terraform.env}-worker-${count.index + 1}"
image = "${element(split(":", data.atlas_artifact.base.id), 1)}"
region = "sfo2"
size = "s-1vcpu-3gb"
private_networking = true
resize_disk = false
user_data = <<EOF
#!/bin/bash
export SWARM_TOKEN=$(curl -s http://${digitalocean_droplet.master.ipv4_address_private}:8000/worker)
docker swarm join --token $SWARM_TOKEN ${digitalocean_droplet.master.ipv4_address_private}:2377
EOF
}