cluster-leader-image/leader.pkr.hcl
2022-12-16 17:52:40 -06:00

95 lines
1.9 KiB
HCL

// Leader image - Contains the tools required by the leaders
variable "cpus" {
type = number
default = 2
}
variable "memory" {
type = number
default = 1024
}
variable "disk_size" {
type = string
default = "4G"
}
variable "iso_url" {
type = string
# This should be hosted by an artifact repo (or be lazy and python -m http.server)
default = "http://localhost:8000/output/arch.img"
}
variable "iso_checksum" {
type = string
default = "file:http://localhost:8000/packer_arch_qemu_sha256.checksum"
}
variable "ssh_username" {
type = string
default = "deploy"
}
variable "ssh_password" {
type = string
default = "deploy"
}
source "qemu" "leader" {
headless = true
accelerator = "kvm"
vm_name = "leader.img"
http_directory = "http"
output_directory = "output"
cpus = var.cpus
memory = var.memory
disk_size = var.disk_size
format = "raw"
disk_image = true
iso_url = var.iso_url
iso_checksum = var.iso_checksum
iso_target_path = "cache/arch.img"
boot_wait = "2s"
boot_key_interval = "25ms"
boot_command = [
"<enter>",
"<wait30s>"
]
ssh_username = var.ssh_username
ssh_password = var.ssh_password
shutdown_command = "sudo -S shutdown -P now"
}
build {
sources = ["source.qemu.leader"]
provisioner "shell" {
inline = [
"sudo pacman -Sy --noconfirm",
"sudo pacman -S --noconfirm consul",
"sudo pacman -Scc --noconfirm",
"sudo docker pull hashicorp/nomad-pack:0.0.1-techpreview.3"
]
}
// TODO: Add consul and nomad config files
post-processor "checksum" {
checksum_types = ["sha256"]
keep_input_artifact = true
}
# Validate that the image is good
// post-processor "shell-local" {
// inline = ["qemu-system-x86_64 -drive file=output/arch.img -m 1024"]
// }
}