-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathk3s-droplets.tf
38 lines (29 loc) · 1.22 KB
/
k3s-droplets.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
resource "digitalocean_droplet" "k3s" {
for_each = {for i, v in var.nodes: v.name => v.tag}
image = "ubuntu-20-04-x64"
name = each.key
region = "fra1"
size = "s-1vcpu-1gb"
private_networking = true
ssh_keys = [
data.digitalocean_ssh_key.terraform.id
]
tags = [ each.value ]
provisioner "remote-exec" {
inline = ["sudo apt update", "sudo apt install python3 -y", "echo Done!"]
connection {
host = self.ipv4_address
type = "ssh"
user = "root"
private_key = file(var.pvt_key)
}
}
provisioner "local-exec" {
working_dir = "${path.cwd}/../ansible"
command = <<-EOF
do-ansible-inventory --group-by-tag > hosts.ini
ansible-playbook setup_cluster_playbook.yaml -u root --private-key ~/.ssh/digitalocean_rsa --extra-vars "loadbalancer_ip=${digitalocean_loadbalancer.k3s-lb.ip} database_host=${digitalocean_database_cluster.postgres.host} database_user=admin database_password=${digitalocean_database_user.dbuser.password} database_name=${digitalocean_database_cluster.postgres.database} database_port=${digitalocean_database_cluster.postgres.port}"
EOF
}
depends_on = [ digitalocean_database_cluster.postgres, digitalocean_loadbalancer.k3s-lb ]
}