imfreedom/bamboo-terraform

A bunch of updates
draft
2019-02-06, Gary Kramlich
d3cb1067774e
A bunch of updates
variable "worker_count" { default = "1" }
variable "worker_disk_size" { default = "21474836480" } # 20gb
variable "worker_memory" { default="1024" } # 1gb
variable "worker_cpu" { default="1" }
resource "libvirt_volume" "worker" {
count = "${var.worker_count}"
name = "worker-${count.index}-root"
format = "qcow2"
base_volume_id = "${libvirt_volume.debian_base.id}"
size = "${var.worker_disk_size}"
pool = "${var.volume_pool}"
}
data "template_file" "worker_user_data" {
count = "${var.worker_count > 0 ? var.worker_count : 0}"
template = <<EOF
#cloud-config
fqdn: worker-$${index}
users:
- name: root
ssh_authorized_keys:
- $${admin_ssh_pubkey}
growpart:
mode: auto
devices: ['/']
ignore_growroot_disabled: false
EOF
vars {
admin_ssh_pubkey = "${var.admin_ssh_pubkey}"
index = "${count.index}"
}
}
resource "libvirt_cloudinit_disk" "worker" {
count = "${var.worker_count}"
name = "worker-${count.index}-init.iso"
user_data = "${element(data.template_file.worker_user_data.*.rendered, count.index)}"
}
resource "libvirt_domain" "worker" {
count = "${var.worker_count}"
name = "worker-${count.index}"
memory = "${var.worker_memory}"
vcpu = "${var.worker_cpu}"
autostart = true
cloudinit = "${element(libvirt_cloudinit_disk.worker.*.id, count.index)}"
console {
type = "pty"
target_port = "0"
target_type = "serial"
}
disk {
volume_id = "${element(libvirt_volume.worker.*.id, count.index)}"
}
network_interface {
network_name = "default"
wait_for_lease = true
}
boot_device {
dev = ["hd"]
}
}
output "worker_ips" {
value = "${libvirt_domain.worker.*.network_interface.0.addresses}"
}